termux-packages/packages/dpkg/src-configure.c.patch

28 lines
1.2 KiB
Diff

diff -u -r ../dpkg-1.18.15/src/configure.c ./src/configure.c
--- ../dpkg-1.18.15/src/configure.c 2016-11-11 22:18:40.000000000 -0500
+++ ./src/configure.c 2016-12-03 16:32:43.719508056 -0500
@@ -497,8 +497,10 @@
pkg_name(pkg, pnaw_nonambig), cdr2.buf,
strerror(errno));
if (!(what & CFOF_USER_DEL))
- if (link(cdr.buf, cdr2.buf))
- warning(_("%s: failed to link '%.250s' to '%.250s': %s"),
+ /** Termux modification: Use rename(2) instead of link(2), to avoid hard
+ links which does not work on Android 6.0 or later. */
+ if (rename(cdr.buf, cdr2.buf))
+ warning(_("%s: failed to rename '%.250s' to '%.250s': %s"),
pkg_name(pkg, pnaw_nonambig), cdr.buf,
cdr2.buf, strerror(errno));
/* Fall through. */
@@ -757,7 +759,9 @@
pkg_name(pkg, pnaw_nonambig), in,
result->buf, strerror(errno));
return -1;
- } else if (r != stab.st_size) {
+ } else if (r > stab.st_size) {
+ /* Termux patch: In some cases st_size is too large, ignore that.
+ See https://github.com/corbinlc/GNURootDebian/issues/103 */
warning(_("symbolic link '%.250s' size has "
"changed from %jd to %zd"),
result->buf, (intmax_t)stab.st_size, r);