1 This patch must be applied to fakeroot 2.8 or SVN in order to
2 enable correct handling of relative chroots, for rpm and yum.
4 Index: src/libfakechroot.c
5 ===================================================================
6 --- src/libfakechroot.c (revision 311)
7 +++ src/libfakechroot.c (working copy)
10 char *ptr, *ld_library_path, *tmp, *fakechroot_path;
12 - char dir[FAKECHROOT_MAXPATH], cwd[FAKECHROOT_MAXPATH], full_path[FAKECHROOT_MAXPATH];
13 + char dir[FAKECHROOT_MAXPATH], cwd[FAKECHROOT_MAXPATH];
14 #if !defined(HAVE_SETENV)
21 - if (getcwd(cwd, FAKECHROOT_MAXPATH) == NULL) {
22 + if (next_getcwd == NULL) fakechroot_init();
24 + if (next_getcwd(cwd, FAKECHROOT_MAXPATH) == NULL) {
28 @@ -1171,24 +1173,22 @@
31 if (strcmp(cwd, "/") == 0) {
32 - snprintf(full_path, FAKECHROOT_MAXPATH, "/%s", path);
33 + snprintf(dir, FAKECHROOT_MAXPATH, "/%s", path);
36 - snprintf(full_path, FAKECHROOT_MAXPATH, "%s/%s", cwd, path);
37 + snprintf(dir, FAKECHROOT_MAXPATH, "%s/%s", cwd, path);
41 - snprintf(full_path, FAKECHROOT_MAXPATH, "%s", path);
43 + fakechroot_path = getenv("FAKECHROOT_BASE");
45 - fakechroot_path = getenv("FAKECHROOT_BASE");
47 - if (fakechroot_path != NULL) {
48 - snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, full_path);
49 + if (fakechroot_path != NULL) {
50 + snprintf(dir, FAKECHROOT_MAXPATH, "%s%s", fakechroot_path, path);
53 + snprintf(dir, FAKECHROOT_MAXPATH, "%s", path);
57 - snprintf(dir, FAKECHROOT_MAXPATH, "%s", full_path);
60 #if defined(HAVE___XSTAT) && defined(_STAT_VER)
61 if ((status = next___xstat(_STAT_VER, dir, &sb)) != 0) {