Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 646458 - sys-apps/portage: enable --dynamic-deps=y by default once again
Summary: sys-apps/portage: enable --dynamic-deps=y by default once again
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 645194
  Show dependency tree
 
Reported: 2018-02-03 01:42 UTC by Zac Medico
Modified: 2018-06-03 16:54 UTC (History)
7 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 Zac Medico gentoo-dev 2018-02-03 01:42:18 UTC
The disabling of dynamic deps by default in portage-2.3.20 has resulted in a lot of pushback, so I want to revert it until we've come up with a viable solution that does not involve rebuilds. Related things:

https://archives.gentoo.org/gentoo-dev/message/56987ae0bfb29403bedd12fe847d80a4
https://archives.gentoo.org/gentoo-dev/message/a88cfb0637ca1f3d781000471b9c8d35
https://bugs.gentoo.org/645550
https://bugs.gentoo.org/645780

I'm hoping that a tool can be created to apply dependency changes in-place, without rebuilding anything. It will be much like --dynamic-deps, but will persistently change the dependencies for installed packages an binary packages.

I've asked Michał Górny about the revert on IRC:

> [13:20:20] <zmedico> mgorny: also, how do you feel about reverting to --dynamic-deps=y by default for now? it's a big pain and I feel like we can do better with some more preparation.
> [13:27:51] <zmedico> It would be nice to have a tool that patches dependency changes in-place, especially since there's so much aversion to rebuilds
> [13:28:33] <zmedico> People would have nothing to complain about.
> [13:29:40] <zmedico> I don't enjoy listening to people complain :-)
> [13:32:08] <mgorny> zmedico: as long as developer don't use dynamic deps, i'm fine with it
> [13:32:33] <mgorny> but if developers throw excuses that they don't have to follow policy because it doesn't match portage defaults... and then insult QA members for trying to enforce it
> [13:33:11] <mgorny> zmedico: as for patches, i guess when they're reviewed + 1-2 days in case more urgent issues are found
> [13:33:27] <mgorny> we may also consider the version before them as earlier stable candidate
> [13:35:15] <zmedico> yeah that sould good
> [13:36:36] <zmedico> *sounds
> [14:06:58] <mgorny> as for updates, i don't see it happening
> [14:07:04] <mgorny> people have been talking about it for years
> [14:07:11] <mgorny> nobody came with any real proposal
> [14:07:22] <mgorny> our existing updates (pkgmoves) are complex and people screw them up a lot
> [14:07:35] <mgorny> depmoves would be more common, so that would make portage ultraslow and people will screw up even more
Comment 2 Larry the Git Cow gentoo-dev 2018-02-03 03:07:52 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=a6671c73f3d1aa74789534e5eebccbca23b48656

commit a6671c73f3d1aa74789534e5eebccbca23b48656
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-02-03 01:45:21 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-02-03 02:21:28 +0000

    emerge: enable --dynamic-deps=y by default once again (bug 646458)
    
    There's been a lot of pushback involving the --dynamic-deps=n default.
    What we really need is a tool to apply dependency changes in-place,
    without the need for a rebuild.
    
    Reverts: 2905e1c2c28d ("Disable dynamic-deps by default")
    Bug: https://bugs.gentoo.org/646458

 man/emerge.1                          | 2 +-
 pym/_emerge/Scheduler.py              | 3 ++-
 pym/_emerge/create_depgraph_params.py | 6 +++---
 pym/_emerge/depgraph.py               | 7 +++----
 4 files changed, 9 insertions(+), 9 deletions(-)}
Comment 3 Ulrich Müller gentoo-dev 2018-02-03 08:00:03 UTC
So the decision is that Portage will ignore PMS again?
Comment 4 Zac Medico gentoo-dev 2018-02-03 08:11:47 UTC
We need a strategy for in-place dependency updates, because there are a lot of noisy people who aren't willing to accept rebuilds as the answer.
Comment 5 Ulrich Müller gentoo-dev 2018-02-03 08:48:41 UTC
Actually, we have a council decision on this:

| The following policy was accepted by unanimous vote:
| "Maintainers must not assume that dynamic dependencies will be applied 
| by the package manager. When changing runtime dependencies the 
| maintainer should revision the ebuild if the changes are likely to 
| cause problems for end users."
https://projects.gentoo.org/council/meeting-logs/20151011-summary.txt

So as a maintainer, I should be able to rely on the fact the the package manager *won't* apply dynamic dependencies.
Comment 6 Zac Medico gentoo-dev 2018-02-03 09:04:00 UTC
(In reply to Ulrich Müller from comment #5)
> Actually, we have a council decision on this:
> 
> | The following policy was accepted by unanimous vote:
> | "Maintainers must not assume that dynamic dependencies will be applied 
> | by the package manager. When changing runtime dependencies the 
> | maintainer should revision the ebuild if the changes are likely to 
> | cause problems for end users."
> https://projects.gentoo.org/council/meeting-logs/20151011-summary.txt
> 
> So as a maintainer, I should be able to rely on the fact the the package
> manager *won't* apply dynamic dependencies.

Ok, so let's force devs to use --dynamic-deps for some time, before we do it to users.
Comment 7 Zac Medico gentoo-dev 2018-02-03 09:04:47 UTC
Of course I mean, force devs to use --dynamic-deps=n.
Comment 8 Zac Medico gentoo-dev 2018-02-03 09:12:49 UTC
We could make the --dynamic-deps=n default conditional on USE="gentoo-dev", or something like that, and then tell developers that they have to enable it. If that's a success, then the dependency situation should improve to the point where it's usable for normal users.
Comment 9 Zac Medico gentoo-dev 2018-02-03 09:16:45 UTC
Basically, it's not fair to unleash the --dynamic-deps=n default on our users until we prove that our devs will cooperate.
Comment 10 Ulrich Müller gentoo-dev 2018-02-03 09:20:34 UTC
(In reply to Zac Medico from comment #7)
> Of course I mean, force devs to use --dynamic-deps=n.

I cannot think of any way how "not assume that dynamic dependencies will be applied by the package manager" could be read as to apply to developers' systems only.
Comment 11 Zac Medico gentoo-dev 2018-02-03 09:27:51 UTC
(In reply to Ulrich Müller from comment #10)
> (In reply to Zac Medico from comment #7)
> > Of course I mean, force devs to use --dynamic-deps=n.
> 
> I cannot think of any way how "not assume that dynamic dependencies will be
> applied by the package manager" could be read as to apply to developers'
> systems only.

The strategy that I'm suggesting involves 2 phases:

1) Roll out a USE="gentoo-dev" flag that triggers the default --dynamic-deps=n setting.

2) After gentoo dev's have shown a willingness and ability to do the revbumps, roll out the default --dynamic-deps=n setting to regular users.