[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1051237: transition: move files from / to /usr to finalize /usr-merge



Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: transition

Dear release team,

you may be aware from d-devel@l.d.o discussions that things got rolling
regarding a way forward from our current /usr-merge state. The results
of various discussions have been recorded in DEP17[1]. The rough idea is
that files in all packages move from / to /usr. I think this change
qualifies as a transition and should be coordinated with you. If you
disagree with this and do not want to get involved, please just close
this transition request.

A major blocker regarding this finalization is the file move moratorium.
I note that this is given as advice/recommendation rather than being
mandatory (thanks Ansgar). However, the release team also indicated
enforcement[2] of it. The current best idea is to progressively lift the
moratorium by documenting the current state of lifting at
https://wiki.debian.org/UsrMerge (not yet documented there) and then
officially repealing the moratorium while recommending to follow those
guides.

As we move files, we will run into issues such as lost files. Some of
the issues are automatically identified by the Debian Usr Merge
Analysis Tool https://salsa.debian.org/helmutg/dumat. I'm regularly
updating the output https://subdivi.de/~helmut/dumat.yaml. The intention
is to automatically file RC bugs for some classes of issues (e.g file
conflicts), but at the time of this writing I'm still filing bugs
manually.

The exact way of lifting the moratorium is not clear at this time. It
shall be adapted depending on the amount of (expected and unexpected)
issues we face. In total, there are around 2000 affected binary
packages. More than half of them is only affected due to installing
systemd units. As such moving those units from / to /usr is the first
step. We first move those where upstream build systems install them and
debhelper is prepared to recognize units below /usr. Once that works
reasonably well, dh_installsystemd shall be changed to install to /usr.
This change will cause latent issues. When packages are restructured or
renamed the famous file loss scenario may happen. The dumat service
shall run for the entire release period and detect such issues before
they hit testing.

Moving beyond this step requires more preparation. While systemd still
deals nicely with users in / or /usr, other tools may not and our
buildds are still unmerged. We'll have to wait until DSA has updated
debootstrap to SPU request from Simon McVittie. Also moving files may
affect udebs and the debian-installer is still unmerged. The relevant MR
addressing this needs to be merged.

Once these issues have been resolved, we can move most files except for
a small set of essential packages. For those, a coordinated upload
moving their files will be needed as will be an upload of base-files
adding the aliasing symlinks there.

We probably have to use NMUs to convert remaining packages at this
point. Once everything is moved, we may think we're done, but we're not.
As packages are restructured throughout the release cycle, they may
introduce file loss scenarios. Continued monitoring for problems until
trixie is released is crucial.

As problems are located, context-dependent mitigations from DEP17 are to
be applied. We'll recommend that maintainers upload restructuring
changes to experimental first and given quick bug filing that should
reduce the number of issues in unstable and keep most issues out of
testing. In any case, you can only call this transition bug finished
once trixie is released. For the purpose of keeping bugs out of testing,
I intend to file all relevant bugs (such as file conflicts, file loss,
directory loss, ineffective diversions, missing trigger invocations,
etc.) at RC severity.

I hope this all makes sense to you. Let me know if you disagree about
any of this. Quite probably I am missing some important aspects here.

Unless there is disagreement, I intend to move forward with moving
systemd units on the grounds that the moratorium only is a
recommendation and this transition request.

Helmut

[1] https://salsa.debian.org/dep-team/deps/-/merge_requests/5
    rendered version at https://subdivi.de/~helmut/dep17.html

[2] https://lists.debian.org/debian-devel-announce/2022/07/msg00002.html


Reply to: