This commit should probably be merged into the trunk.
authorFabian Groffen <grobian@gentoo.org>
Wed, 30 Jan 2008 18:13:29 +0000 (18:13 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 30 Jan 2008 18:13:29 +0000 (18:13 -0000)
commitd39921fcd6c80e5642be8c8e52e60dea7791ea9c
treec62fed8b4d020c9053e9f1ea761b9a0f4cd9f88d
parentda179e5583a11af08aff81bf75783386dbeeea04
This commit should probably be merged into the trunk.

Fix a bug in preserve libs backtracing.

Issue: copy2 raised an error because the destination path didn't exist

Cause: os.path.join was used with absolute paths on the 2nd arguments,
which results in not a join, but the 2nd argument only.

Result: the os.path.exists/makedirs was only called based on the
existing installation (x), causing no directory ever to be made in the
image dir.  Because x is absolute the join always returned x, hence when
preserve libs was run for a lib in a dir not yet existing in the image
it bailed out.

I caught this issue on FreeBSD when upgrading binutils from
18.whatever.2 to 18.whatever.3, when preserve libs tried to preserve
libopcodes.18.whatever.2.so which is in a directory 18.whatever.2,
whereas only 18.whatever.3 existed.

svn path=/main/branches/prefix/; revision=9228
pym/portage/dbapi/vartree.py