(intentionally breaking thread)
Toshio Kuratomi (a.badger(a)gmail.com) said:
Maybe I should start a new thread since this isn't really a bug,
but it is
a blocker -- we need to get some packaging guidelines out for systemd.
I think that the last message on the subject was this one:
Could I get a reply as to whether that looks right?
- At the moment, /bin/systemctl is in systemd-units. (I think this
is a bug. Filed.)
- As long as we're still shipping upstart, the sysv scripts would still
need included, and would still need to be set up with chkconfig the
As noted in the post, I'm not sure if the outlined procedure
implements level 1.
I believe it does.
We should probably also have the scriptlets for implementing level 3
things basic to the system that require that.
My reading of your mail is different - the case we want to handle is case
#2 (installation of something that starts by default - dbus, NM, etc.)
As I understand it, they would be the same, with the addition of:
if [ 0$1 -eq ]; then
/bin/systemctl enable <foo.service>
with foo.service having the appropriate [Install] stanza that says where it
should start up. As with SysV scripts, we generally do not start services
by default, so this is rare.
Case #3 that you mentioned is something I don't think we have in Fedora -
we never start services on package installation.
This, however, is just packaging guidelines. From readng the thread, there
are many things that I think people would like covered with systemd before
they would feel comfortable with it. So, I'm going to attempt to quantify
what would need to be tested and verified. This document focuses on
backwards compatibility. THIS IS GOING TO BE VERY VERBOSE. Comments, changes,
- System boots successfully to GUI, when configured.
- System boots successfully to text mode, when configured.
- System properly handles being passed [1-5], 'single', 'S', 's',
booting to the appropriate 'runlevel' (0 and 6 can still work,
but they're sort of pointless anyway) When booted in this manner,
'5' will bring up a GUI, and '3' will not.
SINGLE USER MODE
- Exiting single user mode properly returns to the default state.
- single-user mode output is correctly displayed on the console.
- plymouth is shown on startup.
- plymouth is quit correctly.
- plymouth is shown on shutdown.
- 'esc' to show details still functions in plymouth.
- an equivalent to /var/log/boot.log still exists, and is populated
(can be normal syslog)
- plymouth transition from grub -> boot -> X is seamless for KMS cards,
similar to Fedora 13.
- telinit  does the proper thing.
- the 'runlevel' command displays correct output if we are in a target
that is aliased to a runlevel.
- 'halt' shuts down, but does not poweroff.
-- 'halt' supports -p, to power off.
- 'poweroff' shuts down, and powers off.
- 'reboot' shuts down and reboots.
- 'halt', 'poweroff', 'reboot' all support '-f', to force
- 'halt', 'poweroff', 'reboot' all properly log to utmp, wtmp,
the audit layer.
- 'shutdown' shall support the following arguments in a compatible manner:
'r', 'h', 'H', 'P', 'c', 'k',
- 'telinit' does not error when passed '[Qq]' (to reload its
and '[Uu]' to re-exec itself. It can optionally make systemd do a similar
action, if valid.
- init shall support a mechanism to re-exec itself to not cause dirty
inodes on shutdown; initscripts will use this method on shutdown.
- the kbdrequest job currently in systemd will be disabled for final release.
- 'ctrl-alt-delete' will reboot the system.
- prefdm starts a configured display manager correctly.
- prefdm starts a installed display manager correctly without additional
- ConsoleKit properly logs system start, stop, and restart.
- The ConsoleKit shutdown/reboot/halt methods work as expected.
- Booting with a primary serial console (via console=) automatically
sets up a getty on the console, and sets up securetty to allow for root
- (optional) Booting with secondary serial consoles does the same.
- By default, 6 gettys will be started in text mode, on tty1-6. 5
gettys will be started in GUI mode, on tty2-6.
- getty and X will not be started on the same tty.
- (optional) The number of ttys started can be configurable.
- SELinux automatic relabelling will still function.
- fsck will still function.
- Dropping to an emergency shell in the case where either of these fails
shall still function.
- No AVCs from the init system in normal use.
- No AVCs when executing any of the cases specified here
- systemd shall still function if booted with selinux=0.
- Guidelines for packaging systemd units shall be formalized.
- The behavior when both systemd units and SysV services are present on
the system shall be defined. This includes defined behavior when a
service appears to be 'enabled' for SysV links while 'disabled' for
systemd (and vice-versa).
- The syntax of systemd units shall be frozen for the release (all future
releases? Some set number of releases?)
- Running 'chkconfig <foo> <(null)|on|off>' on a service managed by
will return the correct code/perform an appropriate action.
- Running 'service <foo> <start|stop|...>' on a service managed by
will perform the appropriate action (via systemctl), and return
- Running '/etc/init.d/<foo> <start|stop|...>' will not break the
environment, while still performing the action specified, and shall return
- Booting a system shall achieve a similar result as booting in upstart:
-- The same set of services will be started.
-- The services shall function the same.
-- The same set of devices and filesystems shall be mounted.
-- The same set of devices and filesystems shall be fscked.
- rc.local will run as the final service on bootup.
- gettys will not start until after rc.local.
- prefdm will start coincident to gettys (earlier?)
- The files and paths used by systemd shall be frozen for future releases.
- The basic syntax of systemd commands shall be frozen for future releases.
- The syntax of systemd units shall be frozen for future releases.
ASSORTED RANDOM CONFIGURATIONS
- The system shall properly function with:
-- encrypted /
-- encrypted non-/
-- nfs /
-- iSCSI /
-- LDAP user information
-- IPA/AD user information
-- NIS user information
-- ext* filesystems
-- btrfs filesystems
-- xfs filesystems
ANY REMAINING UPSTART JOBS
- All packaged upstart jobs are modified to have some SysV or systemd-native
... that's all I have at the moment. I'm sure I'm missing something.