Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 497882 - Subslot rebuild failures prevent --depclean from working
Summary: Subslot rebuild failures prevent --depclean from working
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-12 10:55 UTC by Michał Górny
Modified: 2019-04-13 21:07 UTC (History)
1 user (show)

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 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-01-12 10:55:47 UTC
Long story short:

1. install old poppler and inkscape,

2. upgrade poppler.

inkscape has a := dep on poppler, so it's going to be rebuilt after the upgrade. However, it fails to build with new poppler, so you end up with inconsistent dependency tree and preserved libpoppler.

Sadly, this also means that 'emerge --depclean' isn't be able to proceed since inkscape depends on no-longer installed version of poppler.

Not sure if there's a valid solution for this.
Comment 1 Jouni Kosonen 2014-01-12 13:59:27 UTC
Just a data point from a mixed stable amd64 installation:

media-gfx/inkscape-0.48.4-r1 got rebuilt without problems here after upgrade to app-text/poppler.0.24.5 a week ago (from 0.24.3), and media-gfx/inkscape-0.48.4 would seem to compile OK as well.

USEs:
inkscape 
  dia inkjar lcms nls postscript spell wmf -gnome 
  PYTHON_SINGLE_TARGET="python2_7 -python2_6" 
  PYTHON_TARGETS="python2_7 -python2_6"

poppler
  cairo curl cxx introspection jpeg jpeg2k lcms png qt4 tiff utils -cjk -debug -doc
Comment 2 Sebastian Luther (few) 2014-01-12 17:57:52 UTC
(In reply to Michał Górny from comment #0)
> Long story short:
> 
> 1. install old poppler and inkscape,
> 
> 2. upgrade poppler.
> 
> inkscape has a := dep on poppler, so it's going to be rebuilt after the
> upgrade. However, it fails to build with new poppler, so you end up with
> inconsistent dependency tree and preserved libpoppler.

I guess the only solution to this is to mask the new poppler when you notice a rebuild failed.

A subsequent -uDN world should also try to rebuild inkscape again.

> 
> Sadly, this also means that 'emerge --depclean' isn't be able to proceed
> since inkscape depends on no-longer installed version of poppler.
> 
There's not much one can do, it's just to risky to trust --depclean when there are unsatisfied dependencies. Just assume inkscape is the last package that depends on poppler and you ignore the missing dependency. Then poppler will end up with no reverse dependencies and be cleaned together with its otherwise unused deps.

> Not sure if there's a valid solution for this.
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-01-12 18:05:12 UTC
(In reply to Sebastian Luther (few) from comment #2)
> (In reply to Michał Górny from comment #0)
> > inkscape has a := dep on poppler, so it's going to be rebuilt after the
> > upgrade. However, it fails to build with new poppler, so you end up with
> > inconsistent dependency tree and preserved libpoppler.
> 
> A subsequent -uDN world should also try to rebuild inkscape again.

Yes, it does. And then tries again. And again...

Curious enough, after I unmerged inkscape and installed it again, it built fine. I smell something funky.

> > Sadly, this also means that 'emerge --depclean' isn't be able to proceed
> > since inkscape depends on no-longer installed version of poppler.
> > 
> There's not much one can do, it's just to risky to trust --depclean when
> there are unsatisfied dependencies. Just assume inkscape is the last package
> that depends on poppler and you ignore the missing dependency. Then poppler
> will end up with no reverse dependencies and be cleaned together with its
> otherwise unused deps.

Yes, you are correct. I didn't think of that.