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

Bug 206993

Summary: sys-kernel/module-rebuild doesn't unset default emerge options
Product: Gentoo Linux Reporter: giovanni.bobbio
Component: Current packagesAssignee: Gentoo Kernel Miscellaneous <kernel-misc>
Status: RESOLVED DUPLICATE    
Severity: minor    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description giovanni.bobbio 2008-01-22 08:50:53 UTC
The option "--reinstall changed-use" prevents "--oneshot" from working, i.e. no package is re-emerged, although this is quite likely the intention when one issues --oneshot in the first place...
As one of the annoying consequences of this, if you have "--reinstall changed-use" among the default options (a good choice, IMO), then 'module rebuild rebuild' won't work.

Reproducible: Always
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2008-01-22 09:17:54 UTC
(In reply to comment #0)
> As one of the annoying consequences of this, if you have "--reinstall
> changed-use" among the default options (a good choice, IMO), then 'module
> rebuild rebuild' won't work.

--ignore-default-opts

Also, cannot reproduce this, you should post your emerge --info output.

# emerge -uDpv1 --reinstall changed-use world

These are the packages that would be merged, in order:

Calculating world dependencies... done!
[ebuild   R   ] x11-misc/xscreensaver-5.04  USE="jpeg -new-login (-offensive%*) opengl pam -suid xinerama" 0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB
Comment 2 giovanni.bobbio 2008-01-22 09:35:55 UTC
(In reply to comment #1)
> (In reply to comment #0)
> > As one of the annoying consequences of this, if you have "--reinstall
> > changed-use" among the default options (a good choice, IMO), then 'module
> > rebuild rebuild' won't work.
> 
> --ignore-default-opts

That's what I use with emerge, but it doesn't work with module-rebuild.
(I'd love a short option for --ignore-default-opts).

> Also, cannot reproduce this, you should post your emerge --info output.

You do, actually. I am stipulating that explicitly adding --oneshot whould force a recompilation of the package. Instead, as in your example below, --oneshot is ignored.

> # emerge -uDpv1 --reinstall changed-use world
> 
> These are the packages that would be merged, in order:
> 
> Calculating world dependencies... done!
> [ebuild   R   ] x11-misc/xscreensaver-5.04  USE="jpeg -new-login (-offensive%*)
> opengl pam -suid xinerama" 0 kB 
> 
> Total: 1 package (1 reinstall), Size of downloads: 0 kB

Even if you think that my stipulation is not best, with which I would be ok, the module-rebuild issue is a nuisance that's worth a workaround.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2008-01-22 11:08:47 UTC
(In reply to comment #2)
> You do, actually. I am stipulating that explicitly adding --oneshot whould
> force a recompilation of the package. Instead, as in your example below,
> --oneshot is ignored.

How is it ignored??? It works perfectly fine - nothing is added to world. 





Comment 4 giovanni.bobbio 2008-01-22 13:53:41 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > You do, actually. I am stipulating that explicitly adding --oneshot whould
> > force a recompilation of the package. Instead, as in your example below,
> > --oneshot is ignored.
> 
> How is it ignored??? It works perfectly fine - nothing is added to world. 

Sorry, I realize that we're talking at cross purposes.
I mean that the --oneshot option is ignored as in: nothing is recompiled.
I normally use that option in order to have something re-emerged but not added to world. I don't normally issue the --oneshot option if I don't want to actually re-emerge something.

The module-rebuild case is the same: I issue that command because I know that something has to be recompiled, and it doesn't work.

See another case, revdep-rebuild. This is a sample output after I removed a library for this test:

[snip]
 * All prepared. Starting rebuild
emerge --oneshot --pretend =dev-libs/libusb-0.1.12-r1 =dev-libs/openobex-1.3 =sys-apps/usbutils-0.73 =sys-apps/hal-0.5.10 =app-cdr/k3b-1.0.4 =app-mobilephone/obexftp-0.22_rc9 =sys-auth/thinkfinger-0.3 =app-pda/libsyncml-9999 =net-wireless/bluez-utils-3.24 =app-mobilephone/gnokii-0.6.22-r2 =net-wireless/kdebluetooth-1.0_beta8 =kde-base/kaddressbook-3.5.8 =x11-base/xorg-server-1.4.0.90-r2

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] dev-libs/libusb-0.1.12-r1
[ebuild   R   ] dev-libs/openobex-1.3
[ebuild   R   ] sys-apps/usbutils-0.73
[ebuild   R   ] app-mobilephone/gnokii-0.6.22-r2
[ebuild   R   ] sys-auth/thinkfinger-0.3
[ebuild   R   ] sys-apps/hal-0.5.10
[ebuild   R   ] app-mobilephone/obexftp-0.22_rc9
[ebuild   R   ] app-pda/libsyncml-9999
[ebuild   R   ] kde-base/kaddressbook-3.5.8
[ebuild   R   ] net-wireless/bluez-utils-3.24
[ebuild   R   ] app-cdr/k3b-1.0.4
[ebuild   R   ] x11-base/xorg-server-1.4.0.90-r2
[ebuild   R   ] net-wireless/kdebluetooth-1.0_beta8
 * Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.

Say you now take that emerge command and remove the --pretend option. Guess what? Nothing is recompiled.

# emerge --oneshot =dev-libs/libusb-0.1.12-r1 =dev-libs/openobex-1.3 =sys-apps/usbutils-0.73 =sys-apps/hal-0.5.10 =app-cdr/k3b-1.0.4 =app-mobilephone/obexftp-0.22_rc9 =sys-auth/thinkfinger-0.3 =app-pda/libsyncml-9999 =net-wireless/bluez-utils-3.24 =app-mobilephone/gnokii-0.6.22-r2 =net-wireless/kdebluetooth-1.0_beta8 =kde-base/kaddressbook-3.5.8 =x11-base/xorg-server-1.4.0.90-r2
Calculating dependencies... done!
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

I suppose that revdep-rebuild silently adds the --ignore-default-opts option.

I hope I cleared up a little my intentions, but I'm not sure. :-)
Comment 5 Marius Mauch (RETIRED) gentoo-dev 2008-01-22 18:58:05 UTC
(In reply to comment #4)
> Sorry, I realize that we're talking at cross purposes.
> I mean that the --oneshot option is ignored as in: nothing is recompiled.
> I normally use that option in order to have something re-emerged but not added
> to world. I don't normally issue the --oneshot option if I don't want to
> actually re-emerge something.

That's not the purpose of --oneshot, it *only* is for determining if a package will be added to "world".

> I suppose that revdep-rebuild silently adds the --ignore-default-opts option.

As should all tools that expect default emerge behavior, which makes this a bug in modules-rebuild.
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2008-01-27 14:18:12 UTC

*** This bug has been marked as a duplicate of bug 137056 ***