public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Martin Vaeth <martin@mvath.de>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] Re: don't rely on dynamic deps
Date: Tue, 29 Jul 2014 10:20:58 +0000 (UTC)	[thread overview]
Message-ID: <slrnltetc8.6ov.martin@epidot.math.uni-rostock.de> (raw)
In-Reply-To: 20140729073317.9717.qmail@stuge.se

Peter Stuge <peter@stuge.se> wrote:
>
> This suggests another data model bug to me: that dependencies belong
> to the dependent packages, rather than to dependency providers.

Sometimes it is this way, sometimes the opposite.
It would not be natural to associate to a huge library like openssl
the packages which use it (or can make use of it if compiled with
certain ./configure options).

> What I mean is that in the above example, bar "knows" that bar has
> turned into bar-{base,gui}, but foo doesn't.

But this is not always so.
I could also have given the example that bar is replaced by
another library which perhaps is (mainly) API but not ABI compatible
but nevertheless provides the same command line tools.
(Perhaps openssl and some of the planned successors are such an
example?)
So the installations of bar and bar-successor must block each other,
but nevertheless package foo would need to be recompiled if you want
to use the modern (presumably "safer") bar-successor - which cannot
be done for foo.
Again, in this situation the user relies on the outdated bar and
does not know it. Or - if something else needs bar-successor -
the user gets blockers.

> If the user updates their package database things would still work
> if 4 modifies the effective dependencies for foo to reflect the new
> reality of bar -> bar-{base,gui}.

I would be very careful with such magic modifications:
It is always dangerous if you rely on a heuristic which needs to
be "smarter" than the developer; no matter how many cases you
cover in the heuristic, sooner or later there will be some
split/replacement/alternative/merge of packages which cannot be treated
by the cases covered through the heuristics and which needs
some form of manual treatment in some cases.

> The more I think about dependencies the more convinced I am that
> dependency information must be versioned, ie. dependencies only
> matter in the context of the particular package database snapshot
> they came from, and that installed dependencies must be kept up to
> date as the package database evolves.

Yes, this is exactly the problem with static dependencies.
Regular revbumps *might* be a solution to this, but there is a
certain danger that due to certain (e.g. circular) static dependencies
blocking updates on certain user's systems the revbumps remain
"invisible" to these users.
This is probably not very likely, but I think I could construct
realistic such cases (with a "bug" in a dependency, such cases
are very easy to construct: Some =... instead of ~... is sufficient).

> Otherwise there's just a pile of heuristics, which throw people,
> which I guess is why dynamic-deps cause problems and ire.

This is exactly the main problem with dynamic dependencies.

To summarize a bit differently:

The issue is caused by gentoo being a rolling release distribution.
This causes permanent tree restructuring, and the latter is
incompatible with the idea that a package, once installed,
should remain working, unconditionally on the tree changes.

Users may expect and wish for the latter, but fact is that these
two requirements are in some situations incompatible with each other.

If you want a completely safe solution which in no special cases
can ever cause any problems, after every sync you would have to
unmerge every package and then remerge it again (resolving circular
deps by temporary removing of USE-flags and recompiling).

The other extreme are dynamic deps without any revbumps ever
which take only the rolling release character into account.
You have immediately the most current tree information,
but in some cases this contradicts the actual installed packages.

Now static-deps with many revbump and dynamic-deps with only a
revbumps for essential changes are two compromises between these
two extremes.
Nothing is safe *and* up-to-date in all cases, but both work
up to a reasonable number of exceptions:
The static-deps are on the "safe" solution side with more recompilations
but still possibly outdated information, the dynamic-deps are on the
rolling release side, requiring the user to take more responsibility
if he wants to avoid a broken system.

The highly emotional reactions on the topic are probably due to the
fact that corresponding users have systems which for some reason or
another should emphasize more the static or "rolling release" type
of gentoo: Shifting this emphasis is a politicial issue and
fundamental decision, of course.



  parent reply	other threads:[~2014-07-29 10:21 UTC|newest]

Thread overview: 276+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-21 19:37 [gentoo-dev] don't rely on dynamic deps hasufell
2014-07-21 19:42 ` Samuli Suominen
2014-07-21 19:50   ` Ciaran McCreesh
2014-07-21 20:06     ` Samuli Suominen
2014-07-21 20:13       ` Ian Stakenvicius
2014-07-21 20:12         ` Samuli Suominen
2014-07-21 20:17       ` Ciaran McCreesh
2014-07-21 20:28   ` hasufell
2014-07-21 20:41     ` Ian Stakenvicius
2014-07-22 22:05       ` Tom Wijsman
2014-08-27 16:18         ` Jan Matejka
2014-07-21 20:49     ` Michał Górny
2014-07-21 21:01     ` Jeroen Roovers
2014-07-21 21:06       ` Ciaran McCreesh
2014-07-21 21:13         ` Jeroen Roovers
2014-07-21 21:16           ` Ciaran McCreesh
2014-07-22 22:13       ` Tom Wijsman
2014-07-22 21:11   ` Michał Górny
2014-07-22 22:22     ` Tom Wijsman
2014-07-23 13:36     ` Ciaran McCreesh
2014-07-22 21:56   ` Tom Wijsman
2014-07-25  8:36     ` Pacho Ramos
2014-07-26 12:00     ` [gentoo-dev] " Martin Vaeth
2014-07-26 13:33       ` Pacho Ramos
2014-07-21 19:53 ` [gentoo-dev] " Andreas K. Huettel
2014-07-21 19:55   ` Ciaran McCreesh
2014-07-21 21:06     ` Pacho Ramos
2014-07-21 21:15       ` Jeroen Roovers
2014-07-21 21:21         ` Ciaran McCreesh
2014-07-21 21:25           ` Michał Górny
2014-07-21 21:30             ` Maxim Kammerer
2014-07-26 12:52               ` [gentoo-dev] " Martin Vaeth
2014-07-26 12:54           ` Martin Vaeth
2014-07-26 13:00             ` Ciaran McCreesh
2014-07-26 14:57               ` Martin Vaeth
2014-07-26 15:04                 ` Ciaran McCreesh
2014-07-22  7:39       ` Martin Vaeth
2014-07-22  7:52         ` Pacho Ramos
2014-07-22  9:50         ` Alexander Berntsen
2014-07-22 13:53       ` [gentoo-dev] " Ian Stakenvicius
2014-07-22 18:40         ` [gentoo-dev] " Martin Vaeth
2014-07-22 18:50           ` Alexander Berntsen
2014-07-23  4:11             ` Martin Vaeth
2014-07-22 18:51           ` Ulrich Mueller
2014-07-22 19:10             ` Martin Vaeth
2014-07-22 19:26               ` Ulrich Mueller
2014-07-22 20:06                 ` Martin Vaeth
2014-07-22 20:40                   ` Ulrich Mueller
2014-07-22 20:51                     ` Andreas K. Huettel
2014-07-23 13:15                       ` Ian Stakenvicius
2014-07-26 11:20                         ` Martin Vaeth
2014-07-23  1:15                   ` Rich Freeman
2014-07-25  8:38                     ` Duncan
2014-07-26 11:31                     ` Martin Vaeth
2014-07-22 22:44         ` [gentoo-dev] " Tom Wijsman
2014-07-23  0:01           ` Ian Stakenvicius
2014-07-24 22:42             ` Ciaran McCreesh
2014-07-26 13:00               ` [gentoo-dev] " Martin Vaeth
2014-07-26 13:07                 ` Ciaran McCreesh
2014-07-25 14:44           ` [gentoo-dev] " Ian Stakenvicius
2014-07-25 14:59             ` Ian Stakenvicius
2014-07-25 15:09             ` hasufell
2014-07-25 15:15               ` Ciaran McCreesh
2014-07-25 15:23                 ` hasufell
2014-07-25 15:26                   ` Ciaran McCreesh
2014-07-25 15:44                     ` hasufell
2014-07-26  7:14                       ` [gentoo-dev] " Duncan
2014-07-26 12:41               ` Martin Vaeth
2014-07-26 12:49                 ` Ciaran McCreesh
2014-07-26 15:04                   ` Martin Vaeth
2014-07-26 15:09                     ` hasufell
2014-07-26 15:12                     ` Ciaran McCreesh
2014-07-27 11:42                   ` Samuli Suominen
2014-07-27 11:50                     ` hasufell
2014-07-27 12:01                       ` [gentoo-dev] Behaving productively on the list Andreas K. Huettel
2014-07-27 12:04                         ` hasufell
2014-07-27 12:07                           ` Andreas K. Huettel
2014-07-27 12:26                             ` hasufell
2014-07-27 12:06                       ` [gentoo-dev] Re: don't rely on dynamic deps Samuli Suominen
2014-07-27 12:31                         ` hasufell
2014-07-27 13:11                           ` Rich Freeman
2014-07-27 11:54                     ` "Paweł Hajdan, Jr."
2014-07-27 11:57                       ` hasufell
2014-07-27 13:20                     ` Ciaran McCreesh
2014-07-27 13:47                     ` Michał Górny
2014-07-28  6:35                       ` Samuli Suominen
2014-07-30  4:45                     ` Alexander Tsoy
2014-07-30  5:36                       ` Samuli Suominen
2014-07-30  7:22                         ` Peter Stuge
2014-07-30  7:38                         ` "Paweł Hajdan, Jr."
2014-07-30 11:18                           ` Rich Freeman
2014-07-30 11:23                             ` Ciaran McCreesh
2014-07-30 12:38                             ` Samuli Suominen
2014-08-12 21:32                               ` Tom Wijsman
2014-07-26 12:56                 ` Ulrich Mueller
2014-08-01 21:38                   ` [gentoo-dev] PMS (was: don't rely on dynamic deps) Martin Vaeth
2014-08-02  5:19                     ` [gentoo-dev] PMS Ulrich Mueller
2014-08-02  9:30                       ` [gentoo-dev] PMS Martin Vaeth
2014-07-26 12:08           ` [gentoo-dev] don't rely on dynamic deps Ulrich Mueller
2014-07-23 13:33       ` Ciaran McCreesh
2014-07-25  1:45         ` Rich Freeman
2014-07-25 15:01           ` Ciaran McCreesh
2014-07-25 15:53             ` Alexander Berntsen
2014-07-25 18:26             ` Rich Freeman
2014-07-26 13:29             ` [gentoo-dev] " Martin Vaeth
2014-07-26 13:20           ` Martin Vaeth
2014-07-25  8:53         ` [gentoo-dev] " Pacho Ramos
2014-07-26 13:36           ` [gentoo-dev] " Martin Vaeth
2014-07-26 12:32         ` Martin Vaeth
2014-07-26 12:44           ` Ciaran McCreesh
2014-07-26 13:16             ` Martin Vaeth
2014-07-26 13:20               ` Ciaran McCreesh
2014-07-26 14:46                 ` Martin Vaeth
2014-07-26 14:53                   ` hasufell
2014-07-26 14:54                   ` Ciaran McCreesh
2014-07-26 15:11                     ` Martin Vaeth
2014-07-26 15:22                       ` Ciaran McCreesh
2014-07-26 15:40                         ` Martin Vaeth
2014-07-26 15:51                           ` Ciaran McCreesh
2014-07-28 14:30                         ` Ian Stakenvicius
2014-07-28 14:43                           ` Ciaran McCreesh
2014-07-28 15:38                             ` Ian Stakenvicius
2014-07-28 19:31                               ` Martin Vaeth
2014-07-24 22:06       ` [gentoo-dev] " Michał Górny
2014-07-25  8:51         ` Pacho Ramos
2014-07-25 17:15         ` Andreas K. Huettel
2014-07-25 17:36           ` Ian Stakenvicius
2014-07-25 17:39             ` Ian Stakenvicius
2014-07-26 17:47             ` Taahir Ahmed
2014-07-26 18:21               ` Taahir Ahmed
2014-07-26 13:41         ` [gentoo-dev] " Martin Vaeth
2014-07-26 13:46           ` Ciaran McCreesh
2014-07-26 15:01             ` Martin Vaeth
2014-07-26 15:09               ` Michał Górny
2014-07-26 15:14                 ` Martin Vaeth
2014-07-21 20:56   ` [gentoo-dev] " Michał Górny
2014-07-21 21:13     ` Samuli Suominen
2014-07-21 21:22       ` Michał Górny
2014-07-21 22:52       ` William Hubbs
2014-07-22  0:36         ` hasufell
2014-07-22  9:42           ` Alexander Berntsen
2014-07-22 19:42             ` William Hubbs
2014-07-22  1:05         ` Rick "Zero_Chaos" Farina
2014-07-22  5:10           ` Samuli Suominen
2014-07-22 23:06             ` Tom Wijsman
2014-07-26  4:36               ` Patrick Lauer
2014-07-26 13:55                 ` [gentoo-dev] binpkg (was: don't rely on dynamic deps) Martin Vaeth
2014-07-26 19:18                 ` [gentoo-dev] don't rely on dynamic deps Tom Wijsman
2014-07-22 22:52         ` Tom Wijsman
2014-07-22  1:34     ` Alexandre Rostovtsev
2014-07-22 23:13       ` Tom Wijsman
2014-07-23  2:05         ` Alexandre Rostovtsev
2014-07-26 14:02           ` [gentoo-dev] " Martin Vaeth
2014-07-26 14:29             ` Michał Górny
2014-07-26 15:18               ` Martin Vaeth
2014-07-25  7:34       ` [gentoo-dev] " Michał Górny
2014-07-22 22:29   ` Tom Wijsman
2014-07-21 21:52 ` Alexander Berntsen
2014-07-22  7:25   ` "Paweł Hajdan, Jr."
2014-07-22 18:44     ` Kent Fredric
2014-07-22 18:50       ` Alexander Berntsen
2014-07-22 23:28         ` Tom Wijsman
2014-07-23  8:53       ` [gentoo-dev] " Duncan
2014-07-26 14:12       ` Martin Vaeth
2014-07-26 22:43         ` Kent Fredric
2014-07-27  7:16           ` Martin Vaeth
2014-07-27 10:16             ` [gentoo-dev] Avoiding rebuilds (was: don't rely on dynamic deps) Ulrich Mueller
2014-07-27 12:19               ` Rich Freeman
2014-07-27 13:45               ` [gentoo-dev] Avoiding rebuilds hasufell
2014-07-28  5:49                 ` [gentoo-dev] " Martin Vaeth
2014-07-28 15:15                   ` Brian Dolbec
2014-08-01  9:35                   ` Steven J. Long
2014-08-01 20:49                     ` Martin Vaeth
2014-08-02 13:19                       ` Steven J. Long
2014-08-03 15:14                         ` Martin Vaeth
2014-07-27 10:43             ` [gentoo-dev] Re: don't rely on dynamic deps Kent Fredric
2014-07-27 12:04               ` Rich Freeman
2014-07-27 21:46                 ` Rich Freeman
2014-07-27 21:57                   ` Kent Fredric
2014-07-28 18:27                 ` Ian Stakenvicius
2014-07-28 18:35                   ` Rich Freeman
2014-07-22 19:05     ` [gentoo-dev] " Samuli Suominen
2014-07-22 23:32       ` Tom Wijsman
2014-07-23  1:21       ` hasufell
2014-07-23 13:34       ` Ciaran McCreesh
2014-07-22 19:26     ` Michał Górny
2014-07-22 23:21     ` Tom Wijsman
2014-07-26 12:19       ` [gentoo-dev] " Martin Vaeth
2014-07-22  8:21   ` Michael Palimaka
2014-07-22  8:32     ` Kristian Fiskerstrand
2014-07-22  9:25       ` Pacho Ramos
2014-07-22 17:03         ` Sven Vermeulen
2014-07-22 17:11           ` Ciaran McCreesh
2014-07-22 17:32             ` Samuli Suominen
2014-07-22  8:33     ` Samuli Suominen
2014-07-22 23:36     ` Tom Wijsman
2014-07-23 12:14       ` Michael Palimaka
2014-07-25 21:59         ` Tom Wijsman
2014-07-26 17:12           ` Michael Palimaka
2014-07-26 19:21             ` Tom Wijsman
2014-07-26 19:30               ` Michael Palimaka
2014-08-12 21:49                 ` Tom Wijsman
2014-07-26 14:25       ` Martin Vaeth
2014-08-12 22:11         ` Tom Wijsman
2014-07-22 11:58   ` [gentoo-dev] " hasufell
2014-07-26 14:09   ` [gentoo-dev] " Martin Vaeth
2014-07-26 14:22     ` Ciaran McCreesh
2014-07-26 14:33       ` Martin Vaeth
2014-07-26 14:36         ` Ciaran McCreesh
2014-07-26 14:40           ` hasufell
2014-07-27  7:46             ` Martin Vaeth
2014-07-26 14:32     ` Michał Górny
2014-07-26 15:27       ` Martin Vaeth
2014-07-26 15:29         ` hasufell
2014-07-26 16:10           ` Martin Vaeth
2014-07-26 15:35         ` Michał Górny
2014-07-26 15:59           ` Martin Vaeth
2014-07-26 16:02             ` Ciaran McCreesh
2014-07-26 16:36               ` Rich Freeman
2014-07-26 16:45                 ` Ciaran McCreesh
2014-07-26 15:39         ` Ciaran McCreesh
2014-07-26 16:05           ` Martin Vaeth
2014-07-26 16:14             ` Ciaran McCreesh
2014-07-26 16:28               ` Rich Freeman
2014-07-26 16:34                 ` Ciaran McCreesh
2014-07-26 18:36               ` Martin Vaeth
2014-07-26 18:42                 ` Ciaran McCreesh
2014-07-27 16:27                   ` Peter Stuge
2014-07-27 14:05   ` [gentoo-dev] " "Paweł Hajdan, Jr."
2014-07-27 14:42     ` Rich Freeman
2014-07-27 14:56       ` "Paweł Hajdan, Jr."
2014-07-27 14:59         ` Ciaran McCreesh
2014-07-27 15:09           ` Rich Freeman
2014-07-27 15:16             ` Ciaran McCreesh
2014-07-27 17:02               ` Peter Stuge
2014-07-27 17:11                 ` Ciaran McCreesh
2014-07-27 17:16                   ` Peter Stuge
2014-07-27 17:24                     ` Ciaran McCreesh
2014-07-28  6:59         ` [gentoo-dev] " Duncan
2014-07-28  8:26           ` Martin Vaeth
2014-07-28  9:28             ` Peter Stuge
2014-07-28 13:12               ` Martin Vaeth
2014-07-28 13:29                 ` Peter Stuge
2014-07-28 18:50                   ` Martin Vaeth
2014-07-28 18:57                     ` Rich Freeman
2014-07-29  7:33                       ` Peter Stuge
2014-07-29  9:12                         ` Kent Fredric
2014-07-29 10:20                         ` Martin Vaeth [this message]
2014-07-29 10:47                         ` Rich Freeman
2014-07-27 15:44       ` [gentoo-dev] " Kent Fredric
2014-07-27 15:52         ` Rich Freeman
2014-07-27 16:05           ` Kent Fredric
2014-07-28  4:43             ` [gentoo-dev] " Martin Vaeth
2014-07-27 20:24       ` [gentoo-dev] " Michał Górny
2014-07-27 20:51         ` Peter Stuge
2014-07-27 20:56           ` Ciaran McCreesh
2014-07-27 21:27             ` Kent Fredric
2014-07-27 21:34               ` Rich Freeman
2014-07-27 21:50                 ` Kent Fredric
2014-07-27 21:54                   ` Rich Freeman
2014-07-27 21:14           ` Michał Górny
2014-07-27 21:08         ` Rich Freeman
2014-07-27 21:17           ` Michał Górny
2014-07-27 21:26             ` Rich Freeman
2014-07-27 21:33               ` Ciaran McCreesh
2014-07-27 21:39                 ` Rich Freeman
2014-07-28  5:21                   ` [gentoo-dev] " Martin Vaeth
2014-07-27 22:06                 ` [gentoo-dev] " Arfrever Frehtes Taifersar Arahesis
2014-07-28 16:29           ` Ian Stakenvicius
2014-07-28 16:44             ` Rich Freeman
2014-07-28  5:06         ` [gentoo-dev] " Martin Vaeth
2014-07-27 14:42     ` [gentoo-dev] " Michał Górny
2014-07-22 21:47 ` Tom Wijsman
2014-07-25  5:44   ` [gentoo-dev] " Duncan
2014-07-25 22:09     ` Tom Wijsman
2014-07-26  5:21       ` Duncan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=slrnltetc8.6ov.martin@epidot.math.uni-rostock.de \
    --to=martin@mvath.de \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox