chiark / gitweb /
Initial push
[termux-packages] / packages / dpkg / help.c.patch
1 (1) Do not check for ldconfig in checkpath()
2 (2) Handle EROFS in ensure_pathname_nonexisting().
3     This is since ensure_pathname_nonexisting() will be called with
4         '/data.dpkg-tmp'
5         '/data/data.dpkg-tmp'
6         '/data/data/com.termux.dpkg-tmp'
7         '/data/data/com.termux/files.dpkg-tmp'
8         '/data/data/com.termux/files/usr.dpkg-tmp'
9     and the first call will get a EROFS, read-only file system error.
10
11 diff -u -r ../dpkg-1.17.23/src/help.c ./src/help.c
12 --- ../dpkg-1.17.23/src/help.c  2014-12-27 17:21:19.000000000 -0500
13 +++ ./src/help.c        2015-01-01 19:08:58.868327880 -0500
14 @@ -89,12 +89,14 @@
15      TAR,
16      FIND,
17      BACKEND,
18 +#ifndef __ANDROID__
19      /* Mac OS X uses dyld (Mach-O) instead of ld.so (ELF), and does not have
20       * an ldconfig. */
21 -#if defined(__APPLE__) && defined(__MACH__)
22 +# if defined(__APPLE__) && defined(__MACH__)
23      "update_dyld_shared_cache",
24 -#else
25 +# else
26      "ldconfig",
27 +# endif
28  #endif
29  #if BUILD_START_STOP_DAEMON
30      "start-stop-daemon",
31 @@ -376,7 +378,7 @@
32    debug(dbg_eachfile, "ensure_pathname_nonexisting '%s'", pathname);
33    if (!rmdir(pathname))
34      return; /* Deleted it OK, it was a directory. */
35 -  if (errno == ENOENT || errno == ELOOP) return;
36 +  if (errno == ENOENT || errno == ELOOP || errno == EROFS) return;
37    if (errno == ENOTDIR) {
38      /* Either it's a file, or one of the path components is. If one
39       * of the path components is this will fail again ... */