After asking and asking and asking on #gentoo for help nobody knew anything, so I had sat down to track down the problem . The problem was that often during an emerge (towards the end; when the files actually get merged) I would often get '!!!' next to a filename and the file would not get merged. Here's the basic code flow in portage.py check if source and destination is on the same physical device (yes) call os.rename() which fails the python manual says that os.rename() might fail on cross-filesystem operations (which I presume it means it's hard-linking). The problem is that my /var/tmp partition is actually mounted from another directory (using the 'bind' method present in 2.4 kernels) and that apparently causes os.rename() to fail internally.
I *could* specify the real location of the temp directory in make.globs, but then every time portage is updated, I would get a message saying that make.globals needs to be updated, etc, etc which is why I turned to using 'bind' in the first place.
could you show some examples ? i have /var/tmp/portage mounted via bind to another fs and i never have any problems ...
Assuming you're using a post-2.0.20(ish) portage, it should not prompt you to update your configs unless there are changes to it. You're changes are not considered, only changes between default configs.
Fake Example that's representative of my setup /drivex/share is mounted on /usr/share /drivex/tmp is mounted on /tmp /drivex/share and /drivex/tmp are on the same physical device. If portage tries to move from tmp -> /bin, /lib, /usr/bin, etc everything is OK (which is on another physical device) if portage tries to move from tmp -> /usr/share (the 'bound' dir), it fails. I guess for the error to occur both the temp directory and the target directory must be mountet using 'bind' and must be physically on the same drive. I am using portage 2.0.38 As for config, I'm not entirely sure what you mean. If I change the tmp dir to something rather than default and then install a newer version of portage that changes something in the config file, I then have to manually merge the new version and the change to the tmp path. (My goal of using bind was to avoid that)
Oi. I didn't mean /tmp, I meant /var/tmp. (when's bugzilla getting edit caps already .. )
*** Bug 9924 has been marked as a duplicate of this bug. ***
*** Bug 12237 has been marked as a duplicate of this bug. ***
from 9192 ... add info to Portage Users Guide maybe
This should be remedied in 2.0.46-r10