Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 187142

Summary: USE from USE_EXPAND wildcards don't always display correctly
Product: Portage Development Reporter: Martin Väth <martin>
Component: Enhancement/Feature RequestsAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: jakub, truedfx
Priority: High Keywords: InVCS, REGRESSION
Version: 2.1   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 181949    
Attachments: properly pass a dbapi instance into setcpv() so that USE_EXPAND wildcards work correctly

Description Martin Väth 2007-07-30 15:39:38 UTC
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...
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2007-07-30 18:57:37 UTC
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.

Comment 2 Zac Medico gentoo-dev 2007-07-30 19:24:33 UTC
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.
Comment 3 Martin Väth 2007-07-30 21:46:33 UTC
(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...

Comment 4 Zac Medico gentoo-dev 2007-07-30 22:59:24 UTC
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.
Comment 5 Martin Väth 2007-07-30 23:41:29 UTC
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.)
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2007-07-31 18:56:32 UTC
*** Bug 187269 has been marked as a duplicate of this bug. ***
Comment 7 Harald van Dijk (RETIRED) gentoo-dev 2007-07-31 19:06:11 UTC
Jakub, thanks, I couldn't find this bug. Just for confirmation, the patch here indeed fixes my problem too.
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2007-07-31 19:12:50 UTC
(In reply to comment #7)
> Just for confirmation, the patch here indeed fixes my problem too.

Yeah, zmedico rocks... :D


Comment 9 Zac Medico gentoo-dev 2007-08-01 23:31:53 UTC
This has been released in 2.1.3.1.