As probably many people, I prefer to use USE="-* ..." in /etc/make.conf to be independent of the defaults. Since some portage versions this has become a problem, since this also resets all USE_EXPAND variables whose defaults I usually want to keep. Although I can understand that this behavior is more consistent, it is somewhat irritating for things like ALSA_PCM_PLUGINS for which most people will want to activate everything available. So it would be nice if one could configure somehow that USE_EXPAND variables (or at least certain of these variables) are excluded from USE="-*". Setting ALSA_PCM_PLUGINS="*" was so far a good workaround. However, since portage_2.1.3_rc9 this seems no longer to be working. So if you do not want to follow my previous suggestion, I hope that you will at least re-enable the "*" functionality for USE_EXPAND variables...
Errr... This will make any debugging a nightmare. Either don't use USE="-*" or live with the consequences. The behaviour should be consistent on every system.
The reason(In reply to comment #0) > Setting ALSA_PCM_PLUGINS="*" was so far a good workaround. However, since > portage_2.1.3_rc9 this seems no longer to be working. So if you do not want to > follow my previous suggestion, I hope that you will at least re-enable the "*" > functionality for USE_EXPAND variables... It works for me with 2.1.3_rc9: $ USE="-*" emerge -pv alsa-lib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-libs/alsa-lib-1.0.14a-r1 USE="-alisp -debug -doc -midi*" ALSA_PCM_PLUGINS="-adpcm* -alaw* -asym* -copy* -dmix* -dshare* -dsnoop* -empty* -extplug* -file* -hooks* -iec958* -ioplug* -ladspa* -lfloat* -linear* -meter* -mulaw* -multi* -null* -plug* -rate* -route* -share* -shm* -softvol*" 0 kB [?=>0] Total: 1 package (1 reinstall), Size of downloads: 0 kB Portage tree and overlays: [0] /usr/portage [?] indicates that the source repository could not be determined $ USE="-*" ALSA_PCM_PLUGINS="*" emerge -pv alsa-lib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-libs/alsa-lib-1.0.14a-r1 USE="-alisp -debug -doc -midi*" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" 0 kB [?=>0] Please post your emerge output if it doesn't work work you.
(In reply to comment #2) > $ USE="-*" ALSA_PCM_PLUGINS="*" emerge -pv alsa-lib Now this suddenly also worked for me, and it took me some hours to find out how to reproduce the bug (emerge --info is not necessary, since I ran the testing now with an empty /etc/make.conf and env -i): 1. With emerge -pv the bug is never triggered, only with emerge -pvNu *if* the IUSE of the ALSA_PCM_PLUGINS-variables has changed. [In particular, after I had emerged the new version of the alsa-lib-1.0.14a-r1 (where some ALSA_PCM_PLUGINS-variables were dropped) I was not able to reproduce the bug anymore...] 2. So my way to reproduce the bug is the following: Step 1: Add alsa_pcm_plugins_fantasy to /var/db/pkg/media-libs/alsa-lib-*/IUSE Step 2: Remove /var/cache/edb completely (just removing the *.pickle files was not enough!) Step 3: >/etc/make.conf (renaming the old one before, of course) Step 4: env -i emerge -p world (to force recreation of /var/cache/edb) Step 5: Finally: # env -i USE="-*" ALSA_PCM_PLUGINS="*" emerge -pvNu alsa-lib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-devel/autoconf-2.61 USE="-emacs*" 1,365 kB [?=>0] [ebuild R ] media-libs/alsa-lib-1.0.14a-r1 USE="-alisp -debug -doc -midi*" ALSA_PCM_PLUGINS="-adpcm* -alaw* -copy* -dshare* -dsnoop* -extplug* -file* -hooks* -ladspa* -lfloat* -linear* -meter* -mulaw* -multi* -null* -rate* -route* -share* -shm* (-fantasy%)" [...] (BTW: I do not understand why autoconf is shown here - maybe this is another bug?) Note that, in contrast, the behavior is completely different without -u: # env -i USE="-*" ALSA_PCM_PLUGINS="*" emerge -pvN alsa-lib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-libs/alsa-lib-1.0.14a-r1 USE="-alisp -debug -doc -midi*" ALSA_PCM_PLUGINS="adpcm alaw copy dshare dsnoop extplug file hooks ladspa lfloat linear meter mulaw multi null rate route share shm (-fantasy%)" [...] (in reply to comment #1): Of course the behavior should be consistent on every system. One simple and non-confusing solution would be e.g. to make the default-values of the USE_EXPAND-variables accessible from /etc/make.conf so that one could for instance type in /etc/make.conf USE="-* ..." ALSA_PCM_PLUGINS="${ALSA_PCM_PLUGINS_DEFAULT}" instead of retyping all the defaults manually...
Created attachment 126492 [details, diff] properly pass a dbapi instance into setcpv() so that USE_EXPAND wildcards work correctly This fixes it. If you save the patch as /tmp/setcpv.patch then you can apply it like this: patch /usr/lib/portage/bin/emerge < /tmp/setcpv.patch (In reply to comment #3) > (BTW: I do not understand why autoconf is shown here - maybe this is another > bug?) It's normal for --update to pull in direct dependencies of packages that are given as arguments.
Thanks. The patch works smoothly on my two (x86 and amd64) systems. (I guess that I should leave the bug open until the patch is in an official portage release.)
*** Bug 187269 has been marked as a duplicate of this bug. ***
Jakub, thanks, I couldn't find this bug. Just for confirmation, the patch here indeed fixes my problem too.
(In reply to comment #7) > Just for confirmation, the patch here indeed fixes my problem too. Yeah, zmedico rocks... :D
This has been released in 2.1.3.1.