Hi,

Quoting Helmut Grohne (2023-02-03 10:17:44)
> On Wed, Feb 01, 2023 at 09:16:52PM +0100, Helmut Grohne wrote:
> > > (The `--include=init` option should also be avoided for custom images.)
> > 
> > I distill that this is the actual request and retitle the bug
> > accordingly.
> 
> This is less obvious than it initially seems, so I'm also requesting
> feedback from Johannes and Jochen as to where we should head.
> 
> We currently --include=init, but we really expect it to be systemd. So
> that's a lie already.
> 
> Should we change --include=init to --include=systemd-sysv?
>  + We'd stop pretending things would just work with sysvinit.
>  + We'd install one less package.
>  - That'd break --skip=systemdnetwork -- --include=sysvinit-core,
>    but then you could --skip=systemd -- --include=sysvinit-core.
> 
> Then we're into adding a skip option. I'd call it "initsystem" or
> "systemd" depending on the previous answer.
> 
> Should --skip=systemd imply --skip=systemdnetwork?
>  + When not skipping them, it'd pull in systemd (not systemd-sysv) anyway.
>  - Skip implications cannot be unskipped.
> 
> Should --skip=systemd imply --skip=autologin?
>  + autologin would not work without systemd.
>  - A user could provide a custom systemd from source and that might
>    work.
>  - Skip implications cannot be unskipped.
> 
> At this time, I slightly prefer --include=sysvinit-core and skip
> implications, but I'd also like to hear your opinions to find something
> intuitive. Don't hesitate to add short, opinionated replies.

I think this boils down to deciding whether or not you want systemd
specifically or not. If you don't (and I'd like that because I want to use
debvm to work even on snapshot.d.o timestamps from before systemd) then the
--skip=systemdnetwork skip option doesn't make much sense. In that case, the
features that debvm offers should be agnostic of the init system and you should
not have features that require a specific init system. If there is no systemd,
use something else to set up networking and disable that mechanism with
--skip=network. Same with autologin. If it doesn't work with with other init
systems, don't offer it as a (skippable) default. Making skippable features
init system agnostic would also do away with the problem of unskippable skip
implications.

In mmdebstrap I use the slash to create a hirarchy of skip options. Adding
--skip=cleanup will also imply --skip=cleanup/apt and
--skip=cleanup/reproducible. Maybe you could do the same if you decide to force
systemd as init system unless the user adds --skip=systemd: Rename
--skip=systemdnetwork to --skip=systemd/network and rename --skip=autologin to
--skip=systemd/autologin. That way, when the user adds --skip=systemd, it can
easily be guessed that all system/* options are skipped by doing that. The
problem with that approach is, that you cannot anymore easily add a
init-system-agnostic network and autologin functionality because if you want to
then skip that, it's not clear whether or not --skip=network would imply
--skip=systemd/network.

Also, is --skip=systemd not a bit misleading? Because what you are skipping is
not systemd but systemd-sysv, no?

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to