[systemd-devel] [ANNOUNCE] systemd v12
Lennart Poettering
lennart at poettering.net
Tue Nov 16 16:44:02 PST 2010
Heya,
http://www.freedesktop.org/software/systemd/systemd-12.tar.bz2
Quite a number of new features. I'll probably do another blog story
about all of this one of the next days. Here's the exciting stuff, and
below the detailed stuff:
- Bash completion support for systemctl
- Handling of cryttab, fsck, quota, and shutdown in pure C, a normal
desktop system should be able to boot without a single shell now.
- Automatically kill remaining user sessions when going down.
- Ubuntu support. Yay, welcome to the club!
- We got rid of --session and replaced it with --user.
- A working infrastructure to query system-level passphrases (LUKS, SSL,
...) via UI agents, plymouth, console, wall.
- condition logic, which allows us to skip services based on existance
of file, kernel command line option, or whether a directory is
empty. If they are skipped they are still useful for synchronization
purposes.
- "generator" logic. A really minimal facility to allow others projects to
generate unit files dynamically and integrate them in the systemd
dependency tree. The crypttab support is implemented as a generator,
which allows us to support cryptodisks without polluting the code of
systemd itself with handling this. Other thinkable generators could be
stuff that generates an automatic .service file for each lxc or kvm
machine configured.
- support for initrd-less booting but with selinux
- 'systemctl kill' for sending signals to all processes of a service
- tmpfiles now integrates automatic cleanup op directories it manages, a
la tmpwatch
The cryptsetup logic currently does everything the Fedora logic used to
do, plus a couple of features Debian had on top of that. However, Debian
has a couple of more, and while I think they are more on the crazy side
of things I am not opposed to adding support for those too, and would be
wiling to merge a patch.
Shortlog:
Andrew Edmunds (3):
ubuntu: Treat Ubuntu as a distinct distro in configure.ac etc
util: Add welcome message for Ubuntu
man: Fix various typos
Andrey Borzenkov (4):
main: fix typo in kernel cmdline parameters help
socket: fix IPv6 availability detection
do not overwrite other udev tags
vconsole: support additional keymap for toggling layouts
Bill Nottingham (9):
tmpfiles: Make wtmp match utmp perms, and add btmp.
tmpfiles: Don't clean /var/lock/subsys; it is not aged content
Fedora: Don't ship a init.d reboot symlink.
Fedora: Assorted tweaks to Fedora single-user mode.
Fedora: further unit tweaks
Fedora: don't ship [Install] sections; these are enabled in the system configuration.
Fedora: by default, run prefdm last to match prior behavior.
Fedora: Make systemunitdir/graphical.target.wants on 'make install'.
Fedora: Link graphical-target.wants to the virtual display-manager.service, not the specific prefdm.service.
Brandon Philips (1):
man/tmpfiles.d.xml: add a manpage for tmpfiles.d
Fabiano Fidencio (6):
util: Adding a strneq, to represent (!strncmp(a, b, n))
umount: Adding unmount functions to be used in shutdown
shutdown: Adding binary to shutdown the system
README: Check for libudev-160, as in configure.ac
manager: hookup execution of systemd-shutdown helper
vala: register new D-Bus calls
Franz Dietrich (2):
units: Since killall.service does not exist anymore remove all references.
units: Remove the distro specific references to killall.service.
Gustavo Sverzut Barbieri (2):
tmpfiles: consider TRUNCATE_DIRECTORY as well.
build-sys: dbus-glib is just required by gtk's systemadm
Kay Sievers (14):
use common names: fixme -> TODO, bootstrap.sh -> autogen.sh
systemd-shutdown: add umount.h to sources
move .h file from SOURCES to DIST to make vala autotools happy
fsck: drop -C from fsck cmdline to avoid EPIPE
TODO: add getty on-demand, man: --system
TODO: /proc/swaps is poll()able now
getty at .service: switch to agetty as the default
fsck: skip checking / if it is writable
fsck: return SUCCESS when we skip the check
update TODO with mtab issue
split mount_point_is_api() and mount_point_ignore()
update TODO
update TODO
delete tmp.mount which may conflict with an unrelated fstab entry
Lennart Poettering (228):
sd-daemon: in some places sizeof(sa_family_t) actually does make sense
util: unify implementations of freeze()
shutdown: create /var/run/nologin instead of /etc/nologin which is supported since PAM 1.1.2
shutdown: drop redundant read_only bool var
shutdown: drop last referral to mp->read_only
user-sessions: add minimal utility to kill user sessions that shall be called before destroying services on shutdown
user-sessions: properly unlink both nologin files
systemd-user-sessions: install .service file and enable by default
update fixme
unit: introduce 'banned' load state for units symlinked to /dev/null
mount: properly handle NULL fstype
service: increase default timeout for sysv scripts to 3min
systemctl: fix 'systemctl enable getty at .service'
service: optionally, create INIT_PROCESS/DEAD_PROCESS entries for a service
unit: rename 'banned' load state to 'masked'
util: don't specifically check for the /dev/null major/minor, just check whether something is a char or block device
units: enable utmp for serial gettys too
service: introduce Restart=on-failure and Restart=on-abort
update fixme
systemctl: show whether we follow somebody in 'status' output
systemctl: drop [] around date in status output
mount: minor cleanups
swap: major rework, use /sbin/swapon for setting up swaps, fix merging of aliased swap disks
unit: add minimal condition checker for unit startup
inotify: properly handle multiple inotify events per read()
lookup: look for dynamic throw-away units in /dev/.systemd/system
dbus: add introspection to midlevel paths
systemctl: warn if user enables unit with no installation instructions
mount: hook in q fsck at .service instance for all mount points with passno > 0
mount: pull in fsck only in systemd instances
condition: fix copyright
umount: unescape path from /proc/self/mountinfo first, then check against api mount list
umount: properly enumerate loopback devices
umount: simplify code for deactivating loop devices
umount: be a bit more verbose when unable to umount/unswap/delete loopbacks
shutdown: don't chdir to /, since init is running with / as cwd anyway
shutdown: execute rescue kill only once
shutdown: make use of wait_for_terminate_and_warn()
dbus: expose shutdown helper via D-Bus
manager: hookup shutdown helper and signals
systemctl: rework halt/reboot/poweroff/kexec/exit logic around --force
units: introduce kexec.service, kexec.target and exit.target
shutdown: log to console by default
umount: try to get rid of DM devices
units: get rid of distro-specific shutdown scripts, replace them by systemd-shutdown invocations
units: introduce final.target that can be used to plug units between shutdown.target and the final shutdown
systemctl: accept -f as short for --force
fedora: add compat unit for /sbin/halt.local
umount: disable dm devices by devnode, not by path name
update fixme
shutdown: loop only as long as we manage to unmount/detach devices, give up immediately when we are stuck
tmpfiles: integrate kay's directory cleanup code and otherwise beef up tmpfiles quite a bit
manager: serialize/deserialize finish timestamp
util: ignore quota files by default
label: if the selinux policy knows no label, then silently don't do anything
swap: listen for POLLPRI events on /proc/swaps if available
tmpfiles: remove forcefsck/fastboot flag files after boot
label: don't fail miserably if filesystem doesn't do xattrs/labels
tmpfiles: destruct selinux database after use
man: properly refer to $MAINPID instead of $(MAINPID) which doesnt work anymore
man: extend commenting of .spec file snippets a bit
systemctl: fix counting in list-units output
fsck: add initial version of fsck and quotacheck wrappers
fsck: be verbose when skipping fsck due to missing AC
fsck: atomically replace base.target by rescue.target/reboot.target when fsck fails
fsck: properly hook in fsck everywhere, add special support for fsck'ing root dir
fsck: make fsck idempotent
units: add missing fsck units
fsck: don't be idempotent for root directories
log: reopen console so that we have logging on shutdown
service: implement FsckPassNo= option
units: properly use ConditionPathExists= instead of ConditionFileExists=
mount: do not implicitly pull in fsck service for root dir
manager: properly write header marker on serialization
manager: properly parse finish timestamp
mount: require fsck
mount: pull in quotacheck.service, not quotacheck.target
fsck: wait for device to show up
quota: add install hooks for basic.target
quota: enable quotaon/quotacheck in local-fs.target, not basic.target
install: enable quota/fsck-root/hwclock load by default
unit: introduce %f specifier to decode file names
quota: fix quotaon command line
syslog: enable kmsg bridge by default and enable syslogging for early boot services
units: order syslog.target after syslog.socket
systemctl: introduce systemctl kill
man: document systemctl --force
dbus: epose FsckPassNo property for service objects
fsck: suppress error message if we cannot change into single user mode since we are already passt early bootup
man: numerous updates to document updated systemctl behaviour
update fixme
ask-password: rename ask-password-agent to gnome-ask-password-agent
ask-password: add basic tty agent
update fixme
units: activate wall agent automatically if something is dropped in /dev/.systemd/ask-password
systemd: unset HOME and TERM set from the kernel
mount: add nosuid,nodev,noexec switches to /var/lock and /var/run
update fixme
update fixme
main: don't unset HOME/TERM when run in session mode
service: make sure to pass TERM=linux to all sysv scripts
units: now that we don't set TERM anymore by default, make sure to pass it to our rescue sessions
ask-password: add minimal plymouth password agent
ask-password: enable plymouth agent by default
ask-password: properly handle multiple pending passwords when writing wall msg
systemctl: automatically spawn temporary password agent when we might need one
ask-password-tty: properly handle SIGINT/SIGTERM
exec: fix dbus exposure of UtmpIdentifier field
shutdown: properly handle sigtimedwait() timing out
readahead: bump a device's request_nr when enabling readahead
swap: expose swap exec env proprties via dbus
swap: add default cgroup to swap exec env
errors: refer to systemctl status when useful
swap: add only swaps listed in /etc/fstab automatically to swap.target, others should be added via .wants/ links
build-sys: fix 'make fedora'
update fixme
man: be more explicit about the usefulness of --system
unit: serialize active timestamps
service: when after startup only one process is in a service's cgroup, assume it is the main process
units: run sysv related scripts with TERM=linux
main: move make_null_stdio() to util.c
selinux: automatically load policy if the initrd hasn't done this for us yet
mounts: automatically create /dev/stderr and friends early on boot so that they are around when we run shell scripts before udevd
update fixme
swap: there's no reason not order swap after sysinit, so drop it
unit: suppress incorrect deserialization errors
device: set recursive_stop=true by default
service: unify tstamp serialization code
unit: replace recursive_stop by stop_retroactively to simplify things a little
timer: when deserializing timer state stay elapsed when we are elapsed
manager: show which jobs are actually installed after a transaction
shutdown: reword a few messages a little
systemctl: always show what and where for mount units in status output
units: run sysctl only if /etc/sysctl.conf exists
automount: show who's triggering an automount
unit: replace StopRetroactively= by BindTo= dependencies
unit: get rid of gnoreDependencyFailure= instead treat ConflictedBy= as weaker counterpart of Conflicts=, similar to Wants= vs. Requires=
update fixme
fedora: get rid of sysinit.service
units: introduce plymouth-start and plymouth-kexec, and move a few things back from basic to sysinit
units: make fedora/single.service standard and rename it to rescue.service
units: no need to create rescue.target.wants anymore
fedora plymouthd doesn't seem to like --attach-to-session here
units: fix quota check description
fedora: enable system mounting/swapping by default
units: order units by default before appropriate targets in case they are pulled indirectly
fsck: fix target name to check for
job: recursively fail BoundBy dependencies
mount: don't pull in nofail mounts by default, but use them if they are around
units: fix variable expansion
fedora: invoke plymouth with its /bin instead of the /usr/bin/ path
fedora: /bin/plymouth --sysinit is not necessary on shut down
units: add unit to call /bin/plymouth update-root-fs --read-write
fsck: add new -l switch to fsck mount options
fedora: start plymouth after udev-settle, so that the graphics modules are loaded
readahead: shortcut replay if /.readahead doesn't exist
manager: only minimize impact if we are in fail mode
manager: when isolating undo all pending jobs, too
update fixme
service: delay automatic restart if job is pending
log: downgrade syslog connection failure message since it might happen during normal operation
selinux: relabel /dev after loading policy
cryptsetup: minimal cryptsetup unit generator
label: use internal utility functions wher epossible
modules-load: fix minor race
manager: parse RD_TIMESTAMP passed from initrd
ac-power: make ac-power a proper binary that scripts can call
unit: add ConditionNull= condition
main: rename process on startup to 'systemd' to avoid confusion
man: minor tmpfiles(5) updates and reindenting
main: warn if /etc/mtab is not a symlink
tmpfiles: include reference to man page in tmpfiles files
units: deal properly with the fact that agetty is called getty on Debian
mount: don't relabel /dev twice in a row
build-sys: fix usage of path macros
manager: hookup generators
cryptsetup: hook up tool with ask-password
log: add automatic log target
log: fix build
cryptsetup: automatically start cryptsetup when looking for mount source
manager: be a bit more verbose if we receive unknown epoll event
ask-password: properly NULL terminate table
ask-password: ignore unknown query file fields
ask-password: refer to right binary name in wall message
ask-password: don't show wall message on ttys we are already running a tty agent on
ask-password: leave printing of final prompt colon to message
update fixme
cryptsetup: support non-LUKS crypto partitions
cryptsetup: properly parse cipher= switch
cryptsetup: handle password=none properly
udev: ignore temporary udev devices
load-fragment: properly do comparison of words
tmpfiles: ignore files marked with the sticky bit
job: make it possible to wait for devices to be unplugged
pam: rename 'no-session' to 'user' cgroup
manager: don't fail transaction if adding CONFLICTED_BY job fails
units: make use of agetty mandatory
util: always highlight distro name
manager: always pull 'following' units into transaction
path: always look for IN_ATTRIB since deletion is signalled that way
path: avoid immediate restarting of units triggered by paths if nothing actually changed on disk
manager: consider jobs already installed as redundant when reducing new transactions
cryptsetup: bind cryptsetup service to both source and destination device
load-dropin: add support for .requires directories
units: get rid of no_requires unit flag, and make crypto disks require cryptsetup service
build-sys: make check for libnotify explicit
unit: introduce ConditionDirectoryNotEmpty=
units: use ConditionDirectoryNotEmpty= where applicable
manager: ignore invalid epoll events
path: properly free PathSpec structs
drop support for MANAGER_SESSION, introduce MANAGER_USER instead
pam: rename master user cgroup to 'master'
exec: automatically determine right TERM= setting based on tty name
cgroup: call root cgroup system instead of systemd-1
pam: always rely on loginuid instead of uid to determine cgroup and XDG_RUNTIME_DIR
units: delay getty until logins are allowed
units: enable ask-paswword .path units early enough to be useful for early mounts
units: allow start-up of plymouth ask-password agent very early
units: set TERM for gettys again, since they acquire a TTY on their own
plymouth: use updated socket name
cryptsetup: lock ourselves into memory as long as we deal with passwords
cryptsetup: include device name in password question
path: don't mention too many inotify msgs
units: order hwclock after readahead
cryptsetup: reword questions a little
ask-password: add --console mode to ask questions on /dev/console
update TODO
build-sys: prep release 12
Lucas De Marchi (1):
vconsole-setup: fix path on Arch
Matthias Clasen (1):
build-sys: fix building against libnotify 0.7
Michael Biebl (3):
umount: Make sure / is remounted ro on shutdown
Revert "fsck: add new -l switch to fsck mount options"
Remove umount*.service files for Debian
Mike Kazantsev (1):
service: fix sysv-less build
Ran Benita (1):
add bash completion for systemctl --system
Tom Gundersen (3):
unit-name: Fix unescaping
fsck: remove symlink from fsck.target to sysinit.target
arch: remove obsolete sysinit.service
Lennart
--
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel
mailing list