X-Git-Url: http://git.annexia.org/?p=febootstrap.git;a=blobdiff_plain;f=fakechroot-2.8-relchroot.patch;h=4d2b0930777bc18128f9c34ca574e2ae0aa0b721;hp=9ba4d80e01b1c72a8ec2630585e04e695fa27fe7;hb=9acbbf00f0cba3d4fcfea7e4261ccc4e113a1673;hpb=1ef78043a28df140e5302a4e00635e3d0792dbeb diff --git a/fakechroot-2.8-relchroot.patch b/fakechroot-2.8-relchroot.patch index 9ba4d80..4d2b093 100644 --- a/fakechroot-2.8-relchroot.patch +++ b/fakechroot-2.8-relchroot.patch @@ -1,9 +1,13 @@ -This patch must be applied to fakeroot 2.8 in order to +This patch must be applied to fakechroot 2.8 or SVN in order to enable correct handling of relative chroots, for rpm and yum. ---- fakechroot-2.8.orig/src/libfakechroot.c 2009-03-18 11:39:33.000000000 +0000 -+++ fakechroot-2.8.rpm/src/libfakechroot.c 2009-03-18 12:43:51.000000000 +0000 -@@ -1110,7 +1110,7 @@ int chroot (const char *path) +Note this patch has been included in upstream fakechroot >= 2.9 + +Index: src/libfakechroot.c +=================================================================== +--- src/libfakechroot.c (revision 311) ++++ src/libfakechroot.c (working copy) +@@ -1147,7 +1147,7 @@ { char *ptr, *ld_library_path, *tmp, *fakechroot_path; int status, len; @@ -12,7 +16,18 @@ enable correct handling of relative chroots, for rpm and yum. #if !defined(HAVE_SETENV) char *envbuf; #endif -@@ -1134,23 +1134,21 @@ int chroot (const char *path) +@@ -1162,7 +1162,9 @@ + return -1; + } + if (*path != '/') { +- if (getcwd(cwd, FAKECHROOT_MAXPATH) == NULL) { ++ if (next_getcwd == NULL) fakechroot_init(); ++ ++ if (next_getcwd(cwd, FAKECHROOT_MAXPATH) == NULL) { + errno = ENAMETOOLONG; + return -1; + } +@@ -1171,24 +1173,22 @@ return -1; } if (strcmp(cwd, "/") == 0) { @@ -27,15 +42,12 @@ enable correct handling of relative chroots, for rpm and yum. else { - snprintf(full_path, FAKECHROOT_MAXPATH, "%s", path); - } -- -- fakechroot_path = getenv("FAKECHROOT_BASE"); + fakechroot_path = getenv("FAKECHROOT_BASE"); +- fakechroot_path = getenv("FAKECHROOT_BASE"); +- - if (fakechroot_path != NULL) { - snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, full_path); -- } -- else { -- snprintf(dir, FAKECHROOT_MAXPATH, "%s", full_path); + if (fakechroot_path != NULL) { + snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, path); + } @@ -43,5 +55,9 @@ enable correct handling of relative chroots, for rpm and yum. + snprintf(dir, FAKECHROOT_MAXPATH, "%s", path); + } } +- else { +- snprintf(dir, FAKECHROOT_MAXPATH, "%s", full_path); +- } #if defined(HAVE___XSTAT) && defined(_STAT_VER) + if ((status = next___xstat(_STAT_VER, dir, &sb)) != 0) {