Hi Lorenzo,

On Sun, Sep 24, 2023 at 07:59:52PM +0200, Lorenzo wrote:
> I'm resending this to the bug as requested to have a public record; also
> I'm Cc Ian Jackson as he might already be working on this.

Thank you. Giving a more detailed reply now.

> Well yes, my problem is that I know for sure that there are runit-init
> users (especially downstream) that are hostile to usrmerge and are still
> running on unmerged systems on a "wait and see" basis.
> And if I understand correctly your usrmerge plan, there will be a
> *mandatory* file move so that everything will shipped under /usr and
> what they will "see" is that their system will fail to boot the hard
> way after /[s]bin is empty.

I think this is fairly accurate. I caution though that even what Ian
recently proposed to the CTTE entails moving all the files to /usr and
populating the currently aliased locations with symlinks.

> This makes me unhappy, and I'm trying to understand if and how it's
> possible for runit-init to still manage to reach at least an
> emergency shell[1] when boot is performed on an unmerged system.

I think I understand your point of view, but there is little I can and
want to do to support your cause here.

> I think I need to farm symlinks for selected binaries under /sbin and
> /bin; can runit-init package detect if a system is still unmerged and
> do some limited farming without becoming RC buggy?

What you want to do here very much seems like it does not belong into
any init system. In my view, runit-init should very much assume that
systems are merged. Imposing such triggers on every runit user seems
unreasonable to me. Having that functionality in an extra package (as
you explain later) is more debatable in my view.

If your triggers are only relevant for unmerged systems, then I suggest
that you simply close this bug, because you do not want to trigger on
/bin or /sbin. I'll have to add a note to dumat to stop reporting the
issue for runit-init.

> I think I need at least /sbin/init, /bin/sh and stuff inside /lib/init,
> /lib/lsb/; also, I'm not sure if runit C code will run without
> additional symlinks, I need to do some tests.

Very definitely, you also need /lib64/ld-linux-x86-64.so.2 on amd64.

> I still have to check if usrmerge will be broken by symlinks
> inside /[s]bin directories, and who knows how many other things..

As far as I understand it, we require that such compatibility symlinks
do not reside in a data.tar (policy requirement). Packages needing such
symlinks should add them via maintainer scripts. usrmerge has code to
explicitly handle such compatibility links, see
https://sources.debian.org/src/usrmerge/37/convert-usrmerge/#L173 where
it ignores them. So this aspect should be a non-problem.

Helmut

Reply via email to