Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 592880 (Locale-gettext) - sys-apps/help2man dependents don't trigger dev-perl/Locale-gettext rebuilds during perl upgrade
Summary: sys-apps/help2man dependents don't trigger dev-perl/Locale-gettext rebuilds d...
Status: CONFIRMED
Alias: Locale-gettext
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
: 552194 556752 559660 592102 592554 592850 593350 616116 660744 689696 (view as bug list)
Depends on:
Blocks: 645210 build-order
  Show dependency tree
 
Reported: 2016-09-04 15:56 UTC by Kent Fredric (IRC: kent\n)
Modified: 2019-07-11 21:01 UTC (History)
12 users (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 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 15:56:34 UTC
Given the following dependency graph:

   X -> help2man[nls] -> dev-perl/Locale-gettext -> perl

People upgrade perl from 5.20 to 5.22 or 5.22 to 5.24

Upgrading perl from 5.22 to 5.24 makes Locale-gettext "transiently uninstalled", and as such, nothing that depends on it ( help2man ) can be used until it is reinstalled.

Locale-gettext will continue to be considered "uninstalled" ( and help2man is thus broken ) until either portage's SLOT REBUILD percolates, or the user manually resolves the problem with perl-cleaner.

However, SLOT REBUILD clearly doesn't percolate regularly enough to avoid problems with installed packages, as people regularly are entering circumstances where they end up building X before help2man works again, because SLOT REBUILD for Locale-gettext is scheduled, but help2man is *not*, and Locale-gettext is scheduled too late to be useful.

I suspect Portage considers help2man "working", because its installed, so the subgraph

   X -> help2man

May be considered "satisfied", despite the fact help2man is secretly broken, and portage can't tell.

Traditionally, the answer here has been "suck it users, run perl cleaner and try again", but given we have slot rebuilds, and given this problem is a noteable issue that affects not *just* help2man, but everything like it, we need a better solution.
Comment 1 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 15:57:06 UTC
*** Bug 592102 has been marked as a duplicate of this bug. ***
Comment 2 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 15:58:04 UTC
*** Bug 592850 has been marked as a duplicate of this bug. ***
Comment 3 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 16:02:45 UTC
*** Bug 556752 has been marked as a duplicate of this bug. ***
Comment 4 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 16:03:59 UTC
*** Bug 559660 has been marked as a duplicate of this bug. ***
Comment 5 Mike Gilbert gentoo-dev 2016-09-04 16:04:23 UTC
I wonder if this is related to the --with-bdeps option of emerge?

By default, portage does not include DEPEND when computing the set of packages for a @world upgrade. It only gets considered if the requirements are not already met by an installed package. That means help2man doesn't get pulled into the depgraph by default.
Comment 6 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 16:07:39 UTC
*** Bug 552194 has been marked as a duplicate of this bug. ***
Comment 7 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 16:11:49 UTC
*** Bug 592554 has been marked as a duplicate of this bug. ***
Comment 8 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-04 16:29:55 UTC
(In reply to Mike Gilbert from comment #5)
> I wonder if this is related to the --with-bdeps option of emerge?
> 
> By default, portage does not include DEPEND when computing the set of
> packages for a @world upgrade. It only gets considered if the requirements
> are not already met by an installed package. That means help2man doesn't get
> pulled into the depgraph by default.

How is that relevant?

help2man RDEPENDS on Locale-gettext ( and DEPEND=RDEPEND )

In an example failure case bug #592850, libmp4v2 is selected for recompile.

libmp4v2 states it needs help2man for DEPEND

So by extension of logic:

- help2man is required
- all of help2man's RDEPEND's are required
- one of help2man's RDEPEND's is deemed "broken" by way of subslot missmatch
- therefor help2man's RDEPENDS are deemed unsatisfied
- therefor libmp4v2 should not be compiling.

Unless of course, whoever implemented the logic assumed subslot missmatches would continue to work due to pkg-preserved, and assumed it was ok to build stuff known to be broken...

But that would only be a fine assumption with C dependencies, and only on PMSs with pkg-preserve, really doesn't work for Perl.
Comment 9 Mike Gilbert gentoo-dev 2016-09-04 17:09:36 UTC
(In reply to Kent Fredric (IRC: kent\n) from comment #8)
> How is that relevant?

It's a guess, based on prior experience when using portage. I would suggest you ask zmedico about it.
Comment 10 Zac Medico gentoo-dev 2016-09-04 18:58:08 UTC
This is probably a form of bug 199856, and bug 463976 is a related issue that makes the problem worse when circular dependencies are involved.
Comment 11 Kent Fredric (IRC: kent\n) gentoo-dev 2016-09-10 07:40:53 UTC
*** Bug 593350 has been marked as a duplicate of this bug. ***
Comment 12 Andreas K. Hüttel gentoo-dev 2017-04-20 16:54:36 UTC
*** Bug 616116 has been marked as a duplicate of this bug. ***
Comment 13 Mike Gilbert gentoo-dev 2017-11-23 17:29:35 UTC
*** Bug 637924 has been marked as a duplicate of this bug. ***
Comment 14 Kent Fredric (IRC: kent\n) gentoo-dev 2018-07-08 22:34:28 UTC
*** Bug 660744 has been marked as a duplicate of this bug. ***
Comment 15 Mike Gilbert gentoo-dev 2019-07-11 21:01:48 UTC
*** Bug 689696 has been marked as a duplicate of this bug. ***