On Sun, Aug 15, 2021 at 05:52:06PM +0100, Simon McVittie wrote:
> On Sun, 15 Aug 2021 at 11:52:21 +0200, David Kalnischkies wrote:
> One way out of this would be to say that it is a RC bug for packages
> in bookworm to have different contents when built in equivalent
> merged-/usr and unmerged-/usr chroots/containers (a higher severity
> than is currently applied, which I think would be a "normal" or "minor"
> bug for violating the Policy "should" rule that packages should be
> reproducible).

> > So, your reasoning is that tooling will help us ensure that packages
> > built on merged systems work on non-merged systems? Good!
> 
> This is basically another phrasing of the first option I described above,
> I think.

Yes.
And for the avoidance of doubt: If that is part of the plan I am
happy as it is one step closer to upgrade sanity.


> > No flag day
> > required then, we can just naturally upgrade all systems as they
> > encounter the $magic and have new buildd chroots bootstrapped now
> > merged instead of enforcing them being unmerged still
> > (modulo whatever the implementation itself might be of course).
> 
> If we are going to reach a state where package maintainers can
> assume/require merged-/usr (for example being able to drop code paths that
> only needed to exist because unmerged-/usr is supported), then we need
> some point in the release/upgrade process where that requirement becomes
> official - and IMO that point in time might as well be a particular Debian
> release, because that would be consistent with the rules we normally
> use to drop other code that was historically required but is no longer
> relevant, like Breaks/Replaces or workarounds in maintainer scripts.

Sure, such a flag day for stuff effecting bookworm+1 is fine, my concern
was with the effect the flag day has on bookworm itself, by saying
unmerged is not support in bookworm while potentially still requiring
such systems to continue to exist [= not option 1] and/or having no
facility to upgrade them automatically to stay supported. If it hasn't
you can do whatever as far as I am concerned, but that isn't what was
said until now (and what you repeat in the next paragraph…).

So, yes, your strict speaking:
> Strictly speaking, the cutoff in the timeline I proposed isn't bookworm r0,
> it's the first time you update from testing/unstable *after* bookworm r0.


> > ¹ e.g. Marga is saying in #978636 msg#153 that migration from unmerged
> >   is not required to be implemented for bookworm [and therefore
> >   effectively at all] for unmerged to be unsupported in bookworm.
> 
> Well, we have the usrmerge package, so an implementation exists. It isn't
> perfect, and I hope that between now and the bookworm freeze, we can get a
> better migration path than `apt install usrmerge` as currently implemented
> (either in a new revision of the usrmerge package, or elsewhere); but it
> mostly works in practice.

Yeah, well, that is exactly how I have read and understood the discussion
so far which means everyone has to run it manually to upgrade every
system, container, chroot, … not recently freshly installed … *urgh*

That isn't an upgrade path for me and I can't stand others claiming it
would be, which triggered this sub-thread to begin with if you remember…


> Doing what usrmerge does from a maintainer script is pretty scary from a
> robustness/interruptability point of view. Without my Technical Committee

"Upgrades are like sausages, it is better not to see them being made."
 -- Otto von Bismarck (except he said Laws of course)

I know it is a major discussion point in this megathread, but that isn't
my field of interest, so I feel not qualified to comment on technical
details of the implementation of any plan of /usr-merge itself and
happily leave that to experts.

All I am asking for is a way that ensures that 99% of systems currently
supported as buster/bullseye can be upgraded to bookworm and later to
bookworm+1 and remain supported without manual intervention.
That isn't too much to ask, is it? :P


Heck, if we figured out that this isn't possible with dependencies and/or
maintainer script we could perhaps even implement something in apt to
ensure invariants like "to be able to upgrade to X, you have to install
Y first (here, let me do that for you automatically)". Maybe we should
ask an apt maintainer…¹ 😉 But that pre-requires that a plan is made by
someone who actually knows how its supposed to work…

Julian e.g. proposed a silly one[0] in freeze, but that it is of course
not workable to print warnings if huge parts of systems apt runs on
(e.g. buildd chroots) have to ignore that warning for years (, can't
be automated due to this either) and is as usual 2 years too late.
(for at least 6 years now as Marco pointed out. I will let the
 interested reader do the math on that one…)

[0] https://salsa.debian.org/apt-team/apt/-/merge_requests/162

¹ It is early in the cycle, I can still dream of big features we always
  want to have after the fact, but never find the time and reason
  before. Maybe this time…


> The reasons Marga is being careful not to mandate any specific
> implementation […]

I get that, but I am a bit unhappy that carrots (= you don't have to
support unmerged anymore) are given out without requiring that there is
a (not entirely manual) upgrade path for the to-be-unsupported first.
Ideally, that path already exists if you change the default and don't
intended to keep the old default working forever but that ship sailed
even earlier…

Every time an upgrade problem is reported against apt I am telling the
maintainer that I can only help them so far as I am not a domain expert
of the packages involved and they are ultimately responsible to ensure
the upgrade works to be part of the release (= carrot), not the apt
maintainers, as it would never scale if the release team allowed them to
be part of the release anyhow and left it for others to figure out how
to make the upgrades work somehow (it is bad enough we sorta do for key
packages as that gives us nightmares like libgcc_s did this time).

So how big must a change be that we effectively make upgrades an
entirely optional afterthought like Debian did here?


Best regards

David Kalnischkies

Attachment: signature.asc
Description: PGP signature

Reply via email to