+++ /dev/null
-This patch must be applied to fakechroot 2.8 or SVN in order to
-enable correct handling of relative chroots, for rpm and yum.
-
-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;
-- char dir[FAKECHROOT_MAXPATH], cwd[FAKECHROOT_MAXPATH], full_path[FAKECHROOT_MAXPATH];
-+ char dir[FAKECHROOT_MAXPATH], cwd[FAKECHROOT_MAXPATH];
- #if !defined(HAVE_SETENV)
- char *envbuf;
- #endif
-@@ -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) {
-- snprintf(full_path, FAKECHROOT_MAXPATH, "/%s", path);
-+ snprintf(dir, FAKECHROOT_MAXPATH, "/%s", path);
- }
- else {
-- snprintf(full_path, FAKECHROOT_MAXPATH, "%s/%s", cwd, path);
-+ snprintf(dir, FAKECHROOT_MAXPATH, "%s/%s", cwd, path);
- }
- }
- else {
-- snprintf(full_path, FAKECHROOT_MAXPATH, "%s", path);
-- }
-+ fakechroot_path = getenv("FAKECHROOT_BASE");
-
-- fakechroot_path = getenv("FAKECHROOT_BASE");
--
-- if (fakechroot_path != NULL) {
-- snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, full_path);
-+ if (fakechroot_path != NULL) {
-+ snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, path);
-+ }
-+ else {
-+ 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) {