When using "emerge -b" and a tbz2 being younger than the ebuildfile is in the packages tree, -b implies -k. But if i change CFLAGS or USE vars, the ebuild didnt change and touching the ebuildfile clobbers an information that has nothing to do with the change i made. Pleas decouple this behaviour. If someone wants -k, let him give the -k option to emerge instead of guessing what the user might have meant by saying -b... I think this will make the behaviour of emerge easier to understand and saves some IFs i'd have to take care about manually or in scripts.
is your problem that it also installs the package or that it *just* installs the package ?
...to comment #1: imagine having built a binary package previously and change a USE var after that. if you just emerge -b packagename again, emerge will use the binary package with the outdated USE vars definition instead of compiling a new one. the ebuildfile itself hasn't changed and so the timestamp guessing of emerge will lead to the wrong decission. so if you are used to building binary packages, this behaviour will screw you up someday... so basically you would have to touch all ebuildfiles of all packages you have built if you change some USE var. but this will be lost on the next emerge rsync... decoupling -b and -k will only be a small action but at least emerge -b would *always* build a package then and not recycle previously built tbz2s. the price to type -k if you mean -k is low on one hand and makes the behaviour of these options more understandable on the other hand...
Portage 2.0.22 and newer should function correctly in this regard. Can you verify that this bug hasn't been fixed?
Created attachment 2826 [details] manually deESCified log this is portage-2.0.23 in action. i have packages compiled on neighbour-systems in my packages dir and requested emerge -bu world but emerge reuses the prebuilt package. i'd like emerge to do what i say instead of guessing what i might have meant. i request a buildpackage and emerge does a usepackage instead... btw: this behaviour is not documented in the manpage. to give the -k option when i mean use a precompiled package is no big deal. so i simply suggest -b should not reuse precompiled packages. that is all i wanted to say. i never wrote "this is a bug". this is just a feature i'd like to see implemented differently.
Is there anything due to happen on this? I'm hitting the same problem in various scripts (with portage 2.0.38) and I see four possible options I can take: 1. portage gets updated - I agree with Ulf that -b and -k should be decoupled 2. I touch every ebuild before emerging it - does this have any effect on emerge sync in terms of comparing files to decide on updating? 3. I delete the tbz2 before emerging but then it's gone if anything goes wrong 4. I take the pain and move the tbz2 file and then manage the various versions. TIA George
Now that we have -cvs ebuilds this is starting to become worse. Do we really want to use packages for something that has an infinite modification date? (technically)
*** Bug 12550 has been marked as a duplicate of this bug. ***
i dont think -b should *ever* imply -k ... this is useful for cross compiling ... building packages for chroots ... make a pkg on a live machine release it on another ...
*** Bug 4991 has been marked as a duplicate of this bug. ***
*** Bug 12497 has been marked as a duplicate of this bug. ***
*** Bug 6514 has been marked as a duplicate of this bug. ***
It doesn't. I disabled that a couple revisions about... 46-r9 through 46-r11 don't do that.