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

Bug 379509

Summary: sys-libs/e2fsprogs-libs blocked by sys-libs/com_err and sys-libs/ss
Product: Gentoo Linux Reporter: Dave Kemper <saint.snit>
Component: [OLD] Core systemAssignee: Portage team <dev-portage>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --color n --pretend --debug sys-fs/e2fsprogs

Description Dave Kemper 2011-08-17 05:46:03 UTC
Created attachment 283629 [details]
emerge --color n --pretend --debug sys-fs/e2fsprogs

This is the same bug reported in bug 234907.  That bug's comment 105 states:

> It should resolve automatically now as long as you have
> >=sys-apps/portage-2.1.5 and /var/lib/portage/world contains neither
> sys-libs/com_err nor sys-libs/ss. If you still have trouble then please file a
> new bug and attach emerge --debug output for the case where it bails out due to
> blockers.

Three years later, I am still hitting this bug despite my system meeting the conditions of the above comment.  Portage is more recent than 2.1.5:

# portageq match / portage
sys-apps/portage-2.1.10.3

and neither of the problem libraries are in the world file:

# fgrep sys-libs /var/lib/portage/world
sys-libs/glibc:2.2
sys-libs/libstdc++-v3

As requested in the comment, output of "emerge --color n --pretend --debug sys-fs/e2fsprogs" is attached.

The comments to bug 234907 offer numerous ideas for workarounds, and I'm sure one of these will allow me to proceed with the emerge, but I'm opening this bug to report that it is still broken, in at least one instance, when attempting a normal update.
Comment 1 Dave Kemper 2011-08-17 10:13:39 UTC
Bug 234907 comment 37 gives the simplest workaround of the lot: masking sys-libs/com_err and sys-libs/ss.  However, this does not work for my case.  (It is unclear to me whether this workaround was intended only to fix the mit-krb5 package, or any package which generates this impossible set of dependencies.)
Comment 2 Zac Medico gentoo-dev 2011-08-17 14:16:56 UTC
It looks like the blocker isn't going to solve unless you update app-crypt/mit-krb5, since the old version that you have installed is what's pulling in the obsolete sys-libs/ss-1.39 package:

  (sys-libs/ss-1.39::__unknown__, installed) pulled in by
    sys-libs/ss required by (app-crypt/mit-krb5-1.5.3-r1::gentoo, installed)

Maybe something like this will solve it:

  emerge -1 app-crypt/mit-krb5 sys-fs/e2fsprogs
Comment 3 Dave Kemper 2011-08-17 20:56:00 UTC
(In reply to comment #2)
> Maybe something like this will solve it:
> 
>   emerge -1 app-crypt/mit-krb5 sys-fs/e2fsprogs

Yes, that made portage happy:

Calculating dependencies... done!
[ebuild  N     ] virtual/os-headers-0 
[ebuild  N     ] sys-apps/keyutils-1.2-r2 
[ebuild  N     ] sys-libs/e2fsprogs-libs-1.41.12  USE="nls" 
[ebuild     U  ] sys-apps/util-linux-2.19.1 [2.12r-r5] USE="cramfs%* ncurses%* unicode%* -loop-aes% -old-linux% -slang% (-uclibc)" 
[uninstall     ] sys-libs/ss-1.39 
[blocks b      ] sys-libs/ss ("sys-libs/ss" is blocking sys-libs/e2fsprogs-libs-1.41.12)
[uninstall     ] sys-libs/com_err-1.39 
[blocks b      ] sys-libs/com_err ("sys-libs/com_err" is blocking sys-libs/e2fsprogs-libs-1.41.12)
[ebuild     U  ] sys-fs/e2fsprogs-1.41.12 [1.39]
[blocks b      ] <sys-fs/e2fsprogs-1.41.8 ("<sys-fs/e2fsprogs-1.41.8" is blocking sys-libs/e2fsprogs-libs-1.41.12, sys-apps/util-linux-2.19.1)
[ebuild     U  ] app-crypt/mit-krb5-1.9.1 [1.5.3-r1] USE="keyutils%* pkinit%* threads%* -openldap% -test% -xinetd%"

So that leaves me with two followup questions.

1. Is this a case of a missing dependency?  If portage had pulled in app-crypt/mit-krb5 on its own, the build would have been able to proceed.

2. After reading the comments in bug 234907, I'm a little concerned about running this command as-is: there were multiple reports that the removal of sys-libs/ss and sys-libs/com_err breaks wget.  If the installs and uninstalls proceed in the order above, would that cause the sys-fs/e2fsprogs update -- following the two uninstalls -- to fail?  Should I do a --fetchonly run first (as per bug 234907 comment 7)?
Comment 4 Zac Medico gentoo-dev 2011-08-17 23:28:12 UTC
(In reply to comment #3)
> 1. Is this a case of a missing dependency?  If portage had pulled in
> app-crypt/mit-krb5 on its own, the build would have been able to proceed.

You can check for reverse dependencies like this:

  emerge -pv --depclean app-crypt/mit-krb5

> 2. After reading the comments in bug 234907, I'm a little concerned about
> running this command as-is: there were multiple reports that the removal of
> sys-libs/ss and sys-libs/com_err breaks wget.  If the installs and uninstalls
> proceed in the order above, would that cause the sys-fs/e2fsprogs update --
> following the two uninstalls -- to fail?

It should work flawlessly, since sys-libs/e2fsprogs-libs is merged into place before the obsolete packages are unmerged.

> Should I do a --fetchonly run first (as per bug 234907 comment 7)?

You can if you want to. Better yet, install busybox with USE=static and check busybox --help to verify that the wget applet is enabled. Then if wget breaks then you can always replace it with a symlink to busybox.
Comment 5 Dave Kemper 2011-08-18 20:30:15 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > 1. Is this a case of a missing dependency?  If portage had pulled in
> > app-crypt/mit-krb5 on its own, the build would have been able to proceed.
> 
> You can check for reverse dependencies like this:

Portage can only tell me about dependencies/reverse dependencies that it knows about.  I'm wondering if this is a case that it should know about (i.e. whether this is an actual bug), or whether user intervention is expected in this situation.

> It should work flawlessly, since sys-libs/e2fsprogs-libs is merged into place
> before the obsolete packages are unmerged.

Sorry, you're right, I misinterpreted the output -- it is of course sys-libs/e2fsprogs-libs, not sys-fs/e2fsprogs, that replaces the two older sys-libs packages.
Comment 6 Zac Medico gentoo-dev 2011-08-19 00:07:32 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > 1. Is this a case of a missing dependency?  If portage had pulled in
> > > app-crypt/mit-krb5 on its own, the build would have been able to proceed.
> > 
> > You can check for reverse dependencies like this:
> 
> Portage can only tell me about dependencies/reverse dependencies that it knows
> about.  I'm wondering if this is a case that it should know about (i.e. whether
> this is an actual bug), or whether user intervention is expected in this
> situation.

If it doesn't have any reversed dependencies, then you should either remove it with --depclean, or add it to your world file like this:

   emerge --noreplace app-crypt/mit-krb5

This is mentioned at the beginning of the FAQ, in the "Why is it that emerge does not update all packages?" section:

  http://www.gentoo.org/proj/en/portage/doc/faq.xml
Comment 7 Dave Kemper 2011-08-20 23:04:19 UTC
(In reply to comment #6)
> If it doesn't have any reversed dependencies, then you should either remove it
> with --depclean, or add it to your world file

It has no reverse dependencies, so yes, it should be in the world file.

Had it been, would that have included it in the dependency graph for "emerge -1 sys-fs/e2fsprogs"?  My understanding is that the world file is only consulted when doing an update to world, not when doing a targeted update of a specific package.  (My system is no longer in that state, so I can't test this directly.)
Comment 8 Zac Medico gentoo-dev 2011-08-20 23:20:17 UTC
(In reply to comment #7)
> Had it been, would that have included it in the dependency graph for "emerge -1
> sys-fs/e2fsprogs"? 

No. Even if it wasn't, we plan to eventually solve that automatically (see bug 290818). Note that you can usually avoid this kind of problem by using `emerge -uD world` to automatically pull in all of the necessary updates with a single command.

> My understanding is that the world file is only consulted
> when doing an update to world, not when doing a targeted update of a specific
> package.  (My system is no longer in that state, so I can't test this
> directly.)

If you enable --complete-graph then the world file will always be consulted, in order to detect and prevent breakage of any reverse dependencies. This mode is also automatically activated in cases when packages such as sys-libs/ss and sys-libs/com_err need to be automatically removed, since we want to prevent breakage of reverse dependencies. For example, this particular mode was triggered your attached emerge output, where it successfully detected the dependency on sys-libs/ss and prevented it from being broken.
Comment 9 Zac Medico gentoo-dev 2011-08-20 23:22:30 UTC
Perhaps we should mark this bug as a duplicate of bug 290818?
Comment 10 Dave Kemper 2011-08-21 01:03:34 UTC
(In reply to comment #8)
> No. Even if it wasn't, we plan to eventually solve that automatically (see bug
> 290818).

Yes, my issue sounds exactly like a manifestation of that bug's initial description: putting another package on the command line resolved it, but portage could have theoretically figured out which package it needed on its own.

> Note that you can usually avoid this kind of problem by using `emerge
> -uD world`

That's the exact command I'm trying to avoid. :)  At the moment it's impractical on this box for several reasons.

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