On Sun, 2022-07-17 at 14:21 +0100, Luca Boccassi wrote:
> On Sun, 2022-07-17 at 11:34 +0100, Simon McVittie wrote:
> > On Sun, 17 Jul 2022 at 00:56:14 +0100, Luca Boccassi wrote:
> > > Piuparts has been enhanced with a new test case that covers the
> > > moratorium on moving files manually between their location in the
> > > root
> > > directories and /usr.
> > 
> > Thanks for doing this, it will help a lot.
> > 
> > > A MR is pending for debootstrap [1] to make use of this new [...]
> > > file flag when --variant=buildd is passed, so that buildds can
> > > continue
> > > to be unmerged-usr until the CTTE says otherwise, as per decision
> > > above.
> > 
> > I don't think we actually ever said that buildds must continue to be
> > unmerged-/usr. In #914897 we resolved that for Debian 11, build
> > systems
> > can validly be either merged-/usr or unmerged-/usr, implicitly
> > meaning
> > that packages that are mis-built on either merged-/usr or unmerged-
> > /usr
> > buildds have a bug (#994388 recommended that this bug is treated as
> > RC).
> > In #994388 we confirmed that this continues to apply during the
> > bookworm-is-testing cycle.
> > 
> > In #914897 this narrowly defeated the alternative of mandating that
> > build
> > systems must be merged-/usr for Debian 11 (which, with hindsight,
> > would
> > have been too disruptive at that time, and I'm glad we didn't choose
> > it).
> > 
> > I personally agree that buildds should stay unmerged-/usr until the
> > known
> > bugs that would be triggered by merged-/usr buildds have been raised
> > to
> > RC severity, though. #992645 is a typical example. I'll try to have a
> > look
> > at those bugs today.
> > 
> > The QA systems that I had in mind when I suggested that we need an
> > opt-out were things like autopkgtest and piuparts, rather than
> > buildds,
> > to ensure that we can detect this scenario:
> > 
> > * a package (let's say ncftp, #992645) is built on a merged-/usr
> > buildd
> > * it builds successfully, but the contents are incompatible with
> >   unmerged-/usr systems
> >   - for example in #992645 the binary gets /usr/bin/tar hard-coded
> > into it,
> >     but that path only exists on merged-/usr
> > * a QA test (autopkgtest, piuparts or similar) installs the package
> > into
> >   an unmerged-/usr environment
> > * the package fails to install, or installs but fails to work
> >   - I don't think ncftp has a test that exercises its tar
> > integration,
> >     but please imagine it did...
> > * as per #994388, the TC think this should be treated as a RC bug
> > 
> > The opt-out is needed in order to allow autopkgtest and piuparts to
> > create
> > the necessary unmerged-/usr environment to be able to run that test.
> > If
> > they can only create merged-/usr bookworm environments, then that
> > test
> > would not be implementable.
> 
> So the reasoning behind adding the override to debootstrap in --
> variant=buildd mode is twofold.
> 
> From a very practical perspective, it means it's supereasy to allow all
> those builds and tools you mentioned to run in unmerged-usr, there's no
> extra config or code changes required anywhere else, it just works.
> 
> From a strategic point of view, catching all those class of bugs you
> mentioned is not trivial, as you said if there's no autopkgtest to
> exercise the feature (which is the case for many many many packages) it
> will be difficult. And essentially, it's all for naught, as they only
> manifest when built on merged-usr and used on unmerged-usr. By keeping
> the buildds in umerged-usr state for Bookworm, and switching them as
> soon as it is released, it seems to me we can avoid caring about them
> at all.
> That's because we will do all builds on unmerged-usr, until we are sure
> everything is switched over (and the autopkgtest/piuparts can also be
> turned over) in Bookworm+1, then there's nowhere left that runs them in
> unmerged-usr systems, and thus we can happily forget about it and spend
> the time on other issues.
> 
> Wouldn't this work? Am I missing something?

Ping - Simon, what is your thought on this? Depending on the answer, I
might need to add a new flag to debootstrap to force the unmerged-usr
setup. Right now in the current diff it is implied by --variant=buildd.

-- 
Kind regards,
Luca Boccassi

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to