Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 275713 - emerge --depclean needs always emerge --update * --newuse --deep world
Summary: emerge --depclean needs always emerge --update * --newuse --deep world
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-28 17:24 UTC by R. May
Modified: 2009-07-03 23:51 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description R. May 2009-06-28 17:24:53 UTC
I already run a

revdep-rebuild 
 * Configuring search environment for revdep-rebuild

 * Checking reverse dependencies
 * Packages containing binaries and libraries broken by a package update
 * will be emerged.

 * Collecting system binaries and libraries
 * Generated new 1_files.rr
 * Collecting complete LD_LIBRARY_PATH
 * Generated new 2_ldpath.rr
 * Checking dynamic linking consistency
[ 100% ]                 

 * Dynamic linking on your system is consistent... All done. 

emerge --update --newuse --deep world

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Calculating dependencies... done!
>>> Auto-cleaning packages...

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

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


 emerge virtual/perl-IO-Compress-Bzip2 -pv

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

Calculating dependencies... done!
[ebuild  N    ] virtual/perl-IO-Compress-Bzip2-2.020  0 kB

Total: 1 package (1 new), Size of downloads: 0 kB

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.











Calculating dependencies... done!
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   >=virtual/perl-IO-Compress-Bzip2-2.012 pulled in by:
 *     perl-core/Archive-Tar-1.40
 * 
 * Have you forgotten to run `emerge --update --newuse --deep world` prior
 * to depclean? It may be necessary to manually uninstall packages that no longer
 * exist in the portage tree since it may not be possible to satisfy their
 * dependencies.  Also, be aware of the --with-bdeps option that is documented
 * in `man emerge`.

Reproducible: Always
Comment 1 Mike Auty (RETIRED) gentoo-dev 2009-07-03 23:51:58 UTC
The relevant part of the error message you received is "Also, be aware of the --with-bdeps option".

From the man page:

       --with-bdeps < y | n >
              In dependency calculations, pull in build time dependencies that
              are not strictly required. This defaults to �n� for installation
              actions, meaning they will not be installed,  and  �y�  for  the
              --depclean  action, meaning they will not be removed.  This set-
              ting can be added to EMERGE_DEFAULT_OPTS (see make.conf(5))  and
              later overridden via the command line.

What this means is that "--depclean" tries to calculate the dependencies based on the build time dependencies (things that may only be necessary to build a package, but not necessarily to run it), whilst "emerge --update --newuse --deep world" does not.  As such, emerge -unD world doesn't need the virtual perl package, but depclean thinks it can't figure out the dependencies without it.

There are three solutions to your problem:

1) Install the missing package (with -1 so it doesn't get added to world) and try the depclean again.  It should work this time, and might even suggest that the package be cleaned, but only if it's not needed by anything else anymore (which is unlikely given it was necessary for building the dep graph).

2) Try "emerge --update --newuse --deep --with-bdeps y world".  This will take build-time dependencies into account, and should require that the virtual perl package be installed.

3) Try "emerge --with-bdeps n (-pv) --depclean".  This will turn off build-time dependencies when trying to clean dependencies and will remove any packages you may have installed that you didn't specifically ask for (this may include packages that were needed to build packages you wanted, but are no longer necessary).

Hopefully that explains the situation, as such I'm going to mark this as WORKSFORME.  However, if you still feel there is a bug present in the way the --with-bdeps flag works, please explain it clearly and reopen this bug.  Thanks...  5:)