Hi Luca,

[dropping the tech-ctte bug Cc, because most of this mail is irrelevant to that discussion, I'll send a separate mail for that one paragraph]

On 5/12/23 02:51, Luca Boccassi wrote:

The crux of the issue is that we are hearing how negatively affecting
derivatives in any way, even purely theoretically, is a big no-no, in
this very same thread and topic. Reaching out and asking for
directions/help/whatever is not enough in that context. So it follows
that it cannot be enough in this context either, and it must be fixed
instead.
There are different levels of expectations here: one for things that were explicitly promised, and one for things that are only incidentally the way they are.

For example, whether a binary is in /bin or /usr/bin is inconsequential except for the two-stage boot process used by sysvinit, and whether a library is in /lib or /usr/lib is inconsequential except for whether a binary in /bin uses it as part of the first sysvinit boot stage.

The systemd boot process has a different early/late split and uses an initramfs as the first stage, so it has no use for the old separation policies[1], and they were only ever promised as part of sysvinit policy, which has been demoted to a status between "probably still useful to someone" and "annoying that it still exists", depending on who you ask.

For that reason I think we do have a consensus that moving the files is allowed, and derived distributions may not expect us to follow the superseded policy anymore -- so Devuan will definitely need to provide their own packages for all the early boot stuff, and that is fine, because the split policy has been dropped with the introduction of systemd, even if communication on that has been poor because the people driving it could not even be bothered to update Policy.

On the other hand, we need to either keep the interfaces that have been documented and that people still rely on, or deprecate them, document that they have been deprecated, give users time to adapt, and ideally explain the reasoning and alternatives.

Anything that is not an interface can be changed, and anyone relying on an implementation detail is on their own. You can get the same information from reading /var/lib/dpkg/diversions or from calling "dpkg-divert --list", but it is immediately obvious which of those is the interface and which is incidental.

This discussion is mostly about interfaces that have been broken by the transition: are we supposed to fix them, can we break them more since the sky hasn't fallen, and whose responsibility is it to fix problems when it is disputed whether an interface has been broken. Replacing a directory controlled by dpkg with a symlink is explicitly allowed, but whether the symlink may point to a directory also controlled by dpkg is unclear -- the normative language is silent on this, and the use case in the design document does not anticipate it.

If the file system interface on the bottom of dpkg was broken by usrmerge, then it would have been the responsibility of the usrmerge team to coordinate that with the dpkg team. If it was not, then it's the dpkg team's responsibility to fix their data model.

Right now, all we have is after-the-fact documentation from the dpkg team that some of the interfaces do not work in the context of usrmerge. That is unfortunate, but not easy to change.

#1035904 does not even attempt that, it just aims to remove documentation, that is definitely the wrong approach even in a world where after-the-fact notification instead of pre-transition coordination is the norm.

The usrmerge transition so far has been an elaborate game of "I'm not touching you" around existing interfaces to get where it is today[2], but continuing requires changing interfaces. That is a completely valid approach especially in the free software world, but requires a bit more stakeholder management than moving a few files around while keeping them accessible through their old location.

You may also have noticed that responsibility for completing it has shifted to different people now that it has hit this wall.

We recognize that you are holding the bag here and support you in the search for a minimally invasive solution, but there is also a good chance that none exists and the scope of this change is too large for a bunch of hobbyists without a process.

If that is the case, we need to take a step back and remember that we're *also* professionals, so we have the tools and knowledge to get this done, even if it feels a lot like our day job. :P

   Simon

[1] or at least they think so
[2] stuck

Reply via email to