Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 342827 - perl-cleaner does not reinstall packages if --update is in EMERGE_DEFAULT_OPTS
Summary: perl-cleaner does not reinstall packages if --update is in EMERGE_DEFAULT_OPTS
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-26 21:19 UTC by Nik Warburton
Modified: 2010-10-27 19:19 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Output of 'perl-cleaner --all' (perlcleaner.txt,179.50 KB, text/plain)
2010-10-26 21:20 UTC, Nik Warburton
Details
output of 'emerge --info' (emerge.txt,12.10 KB, text/plain)
2010-10-26 21:20 UTC, Nik Warburton
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nik Warburton 2010-10-26 21:19:06 UTC
I just upgraded from perl 5.8.8 to perl 5.12 - the actual installation seemed to work fine and when I ran perl-cleaner, it found a lot of packages (145) that needed to be reinstalled - it passed these to portage, but portage then said none of them needed installing (presumably as they're the same versions already installed). It then listed a huge number of files (2770) which it said it couldn't fix as they were installed manually - a quick check seems to be all the packages it sent to portage. The problem now is that nothing that links to perl is working properly, as they're all still linking to the old library. 

Reproducible: Didn't try

Steps to Reproduce:
Couldn't reproduce as perl-5.1.2 is now installed and I don't want to risk trying to uninstall perl completely...

Steps I took initially...
1. 'emerge @world' (included perl-5.1.2, perlcleaner, & libperl)
2. ran 'perlcleaner --all' after the installation
Actual Results:  
perlcleaner found 145 packages that needed emerging, passed them to portage ("emerge -vD1 media-sound/gnump3d:0 dev-perl/net-server:0 dev-perl/BerkeleyDB:0 ....") but it said "nothing to merge". None of the perl modules I had in 5.8.8 that don't come bundled with the core perl package are now working with 5.12. 

Even passing the names of packages I know to be broken (such as spamassassin) straight to emerge did nothing. I've managed to get SpamAssassin working again by going into CPAN and reinstalling all it's missing dependencies, but there is still the problem of nothing else working properly.

Expected Results:  
I expected that portage would have re-emerged all the broken packages and that perl would work.

I've had a similar problem before where something will update (the most recent case being OpenSSL) then there'll be a list of things which is says can be fixed by "emerge @preserved-rebuild", but running this just says "nothing to merge". After upgrading perl, libperl is now mentioned in the list of Preserved libs...

!!! existing preserved libs:
>>> package: dev-libs/openssl-1.0.0a-r3
 *  - /usr/lib64/libcrypto.so.0.9.8
 *      used by /usr/bin/bincimap-up (net-mail/bincimap-1.2.13)
 *      used by /usr/bin/snmpusm (net-analyzer/net-snmp-5.4.2.1-r4)
 *      used by /usr/bin/ssh (net-misc/openssh-5.5_p1-r2)
 *      used by 63 other files
>>> package: sys-devel/libperl-5.10.1
 *  - /usr/lib64/libperl.so.1
 *  - /usr/lib64/libperl.so.1.5.8
 *      used by /usr/lib64/libnetsnmpagent.so.15.1.2 (net-analyzer/net-snmp-5.4.2.1-r4)
 *      used by /usr/lib64/libnetsnmphelpers.so.15.1.2 (net-analyzer/net-snmp-5.4.2.1-r4)
 *      used by /usr/lib64/libnetsnmpmibs.so.15.1.2 (net-analyzer/net-snmp-5.4.2.1-r4)
 *      used by /usr/lib64/libnetsnmptrapd.so.15.1.2 (net-analyzer/net-snmp-5.4.2.1-r4)
Use emerge @preserved-rebuild to rebuild packages using these libraries

Output of perlcleaner & emerge --info attached
Comment 1 Nik Warburton 2010-10-26 21:20:12 UTC
Created attachment 252111 [details]
Output of 'perl-cleaner --all'
Comment 2 Nik Warburton 2010-10-26 21:20:38 UTC
Created attachment 252113 [details]
output of 'emerge --info'
Comment 3 Torsten Veller (RETIRED) gentoo-dev 2010-10-26 21:35:44 UTC
As you already wrote, it's a reinstall not an update. Try again without --update in EMERGE_DEFAULT_OPTS:

EMERGE_DEFAULT_OPTS="--alphabetical --ask --deep --keep-going --newuse --verbose --with-bdeps y" perl-cleaner --all
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2010-10-26 22:54:13 UTC
Having --update in EMERGE_DEFAULT_OPTS is a problem all on its own, as would be all the ACTIONS listed in emerge(1). If this were my bug, I'd mark it INVALID for that reason, and as an example to portage users to come.

In general, tools have been adapted to unset EMERGE_DEFAULT_OPTS, or to ignore them only when querying the portage db or configuration info through emerge, and only if the reason was deemed valid, but only in cases of OPTIONS (not ACTIONS), such as --ask (bug #137637, bug #170540, bug #181309), --use-pkg{,only} (bug #232304).
Comment 5 Torsten Veller (RETIRED) gentoo-dev 2010-10-27 07:00:30 UTC
(In reply to comment #4)
> Having --update in EMERGE_DEFAULT_OPTS is a problem all on its own, as would be
> all the ACTIONS listed in emerge(1). If this were my bug, I'd mark it INVALID
> for that reason, and as an example to portage users to come.

Sounds good.

> In general, tools have been adapted to unset EMERGE_DEFAULT_OPTS, or to ignore
> them only when querying the portage db or configuration info through emerge,
> and only if the reason was deemed valid, but only in cases of OPTIONS (not
> ACTIONS), such as --ask (bug #137637, bug #170540, bug #181309),
> --use-pkg{,only} (bug #232304).

perl-cleaner uses (or once used) the same code as python-updater wrt binary packages.


@Nik: Please followup if it doesn't solve your problem.
Comment 6 Nik Warburton 2010-10-27 19:19:45 UTC
Thanks everyone for the help - I feel a bit stupid now! It's literally years since I looked at the EMERGE_DEFAULT_OPTS - I can't even remember why I added all those options in the first place. Removing --update alone did not work, but reducing it  to just "--alphabetical --ask --keep-going --verbose" has set it off reinstalling 145 packages - which so far are installing without a problem.