(intentionally breaking thread) Toshio Kuratomi (a.badger@xxxxxxxxx) 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: > > http://lists.fedoraproject.org/pipermail/devel/2010-July/139483.html > > 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 same way. > As noted in the post, I'm not sure if the outlined procedure correctly > implements level 1. I believe it does. > We should probably also have the scriptlets for implementing level 3 for the > 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: %post if [ 0$1 -eq ]; then /bin/systemctl enable <foo.service> fi 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, etc. welcome. BOOTUP - 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', '-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 - 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. RUNTIME TOOLS - telinit [0123456] 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 the action. - 'halt', 'poweroff', 'reboot' all properly log to utmp, wtmp, and the audit layer. - 'shutdown' shall support the following arguments in a compatible manner: 'r', 'h', 'H', 'P', 'c', 'k', <time>. - 'telinit' does not error when passed '[Qq]' (to reload its configuration) 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 - prefdm starts a configured display manager correctly. - prefdm starts a installed display manager correctly without additional configuration. CONSOLEKIT - ConsoleKit properly logs system start, stop, and restart. - The ConsoleKit shutdown/reboot/halt methods work as expected. SERIAL CONSOLES - Booting with a primary serial console (via console=) automatically sets up a getty on the console, and sets up securetty to allow for root login. - (optional) Booting with secondary serial consoles does the same. NON-SERIAL CONSOLES - 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. ERROR HANDLING - 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. SELINUX - 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. PACKAGING - 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?) SERVICE HANDLING - Running 'chkconfig <foo> <(null)|on|off>' on a service managed by systemd will return the correct code/perform an appropriate action. - Running 'service <foo> <start|stop|...>' on a service managed by systemd will perform the appropriate action (via systemctl), and return similar errors. - Running '/etc/init.d/<foo> <start|stop|...>' will not break the systemd environment, while still performing the action specified, and shall return similar errors. GENERAL SANITY - 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. ORDERING - 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?) ADMIN INTERFACE - 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 equivalent. ... that's all I have at the moment. I'm sure I'm missing something. Bill -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel