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
signature.asc
Description: signature