[systemd-devel] [ANNOUNCE] systemd v30

Lennart Poettering lennart at poettering.net
Wed Jul 13 15:20:54 PDT 2011



This is a bigger new release, including a lot of fresh code. If you are
looking for utmost stability you should continue to work with 29 for a

Bigger changes include:

- There's a tiny mechanism daemon to allow system locale changes, for
  usage by GNOME and other DEs, see
  http://www.freedesktop.org/wiki/Software/systemd/localed for more
  information on the API

- Similar, there's another one for time changes. Docs in the wiki on
  this iface will be available shortly. 

- There's now a simple login daemon available ("systemd-logind") and
  installed by default. It takes over a lot of the logic of pam_systemd
  (which is now a small stub only, talking to logind, which makes it a
  lot more robust) as well as ConsoleKit and udev-acl. It keeps tracks
  of user sessions and seats. There's a tool "systemd-loginctl" which you can
  use to introspect the state of it, and manipulate users, sessions and

- Due to logind we'll now autospawn VT gettys only when needed, not all
  the time. This means we normally boot up with zero gettys. (As mentioned

- Multi-seat support is pretty comprehensively available now. X11 and
  gdm have not been ported to it yet. Documentation about the multi-seat
  logic will show up in the wiki shortly, too.

- If used in conjunction with dracut we will now jump back into the
  initrd on shutdown. Dracut will then unmount the root file system,
  detach all storage devices it was mounted on and
  power off. This is something long missing on Linux. This is only available in
  conjunction with dracut. If your OS is still using another initrd
  implementation, this might be killer feature that might be the reason
  to switch?

- we support translations for the PK policy files now. i18n for the
  client tool might be added later.

Neither hostnamed, nor logind/pam_systemd, nor localed, nor timedated
are necessary on most embedded setups. I'd be happy to merge a patch
that makes them individually disabable.


Bastien Nocera (1):
      build-sys: Add i18n support through intltool

Bill Nottingham (1):
      units: Use /etc/rc.d/rc.local as the path to rc.local in Fedora.

Frederic Crozat (2):
      systemctl: add support for --root for systemctl enable/disable/is-enabled
      units: add units for boot.local/halt.local on SUSE distributions.

Harald Hoyer (4):
      umount: log_info about what we unmounted
      umount: umount, until all umounts failed
      umount: log failed umounts only once at the end
      shutdown: pivot_root to a tmpfs directory to properly umount root

Henry Gebhardt (1):
      configure: Add --enable-plymouth option

Kay Sievers (3):
      clarify separate-/usr message
      build-sys: drop AM_GNU_GETTEXT as it fights with IT_PROG_INTLTOOL
      seat: udev - use ID_PATH_TAG instead of 'sed' hack

Lennart Poettering (173):
      update TODO
      manager: include full systemctl status command line in error message
      dbus: make bus_flags_to_events() and friends generally useful
      hostnamed: split dbus initialization into a separate function
      util: introduce dirent_is_file()
      english: s/_per_/_by_/
      util: add pipe_eof()
      util: move string enum mapping to the end
      logind: first version that compiles fine
      logind: split up logind.h
      logind: implement ACL management
      util: add fopen_temporary()
      logind: implement GC
      logind: unlink state files when stopping
      udev: simplify udev rules a bit
      dbus: add api for append gid/uid properties
      logind: implement D-Bus properties
      util: return errno in close_nointr()
      dbus: introduce UnsetAndSetEnvironment()
      service: check whether sysv scripts where changed
      util: make a couple of files we write atomic
      mechanisms: add mechanisms to change system locale and clock
      update TODO
      timedated: sync clock down to RTC where necessary
      timedated: rename a few things for clarification
      dbus: add dbus introspection extraction
      logind: implement idle hint logic
      logind: implement more dbus functionality
      logind: implement ListXXX bus methods
      logind: send dbus signals when sessions/users/seats come and go
      logind: send out PropertyChanged signals where appropriate
      logind: make idle hint logic work
      logind: hook up PAM module with logind
      logind: various clean-ups
      logind: make sure we hand out write fd, and keep read fd for session end detection
      logind: fix generation of bus arrays
      logind: remove a session when its cgroup is gone
      logind: when generating session ids with a counter, retry if session is already allocated
      logind: properly handle if two session with identical loginuids are attempted to be created
      logind: fix set of capabilities
      logind: use pipe fd to detect when a session is dead
      logind: save/restore session type
      pam: fix up tty if it is actually a display
      pam: fix up tty if it is actually a display
      logind: add more necessary caps to the service
      dbus: send our finished signal when we are finished booting
      logind: update TODO
      update TODO
      pam: make sure we pass a valid tty field to logind
      logind: automatically deduce seat from display
      logind: save object data only when started fully
      logind: when the leader of a session exited, don't fail
      logind: check whether newly created session is active
      logind: properly detect whether we got the bus name
      logind: fix bad memory access
      dbus: use bus_error_message() where applicable
      dbus: fix name allocation logic
      logind: fix ACL code allocation
      logind: when enumerating acl devices for seat0, don't set a tag
      logind: autospawn gettys when necessary
      logind: kill a session as soon as its pipe fd gets EOF
      unit: when loading symlinked template units, properly add all names on the way to the unit
      logind: properly preallocate configured auto VTs
      logind: don't spawn autovt getty on more VTs than configured
      logind: ensure our autovts always stay allocated
      logind: implement SetUserLinger() D-Bus call
      dbus: properly unref message
      execute: don't choke when systemd was compiled with a different CAP_LAST_CAP then what it is run with
      logind: activate autovt at .service instead of autovt-getty at .service when the user switches to a previously unused tty, since it doesn't have to be a getty we start on it on demand
      logind: when changing linger stetings, make sure they take place immediately
      udev: only tag the main card device of a sound card with 'seat'
      udev: dynamically generate seat where applicable from ID_PATH
      logind: implement basic version of AttachDevice() D-Bus call
      logind: include subsystem name in device id for assigning seats
      logind: supply default bus policy with minimal access
      logind: call udev_device_get_is_initialized() to trigger lazy loading, as a temporary work-around for broken libudev
      logind: retrigger devices when we reassign them
      logind: inherit ID_SEAT even on devices that themselves are not seat assignable
      logind: fix generation of seat state file
      logind: use named pipes instead of fifos to keep track of sessions so that we can reconnect later
      logind: parse configuration file
      logind: fix udev rule to generate valid tags, as a temporary fix until udev gains a native feature for this
      logind: be a bit more rigid with seat names
      logind: udev no longer ignores subsystem matches on monitors when used in conjunction with tags
      logind: move default reset controller/kill exclude list into logind
      logind: add man page for configuration file
      man: update pam_systemd page to document new behaviour
      logind: fix typo in config parser
      dbus: add FlushDevices() bus call to reset all seat assignments
      logind: when initializing drop sessions that are unreferenced
      logind: we need to open and close a named pipe once for read before we get EOF
      logind: hook uaccess into udev by default
      uaccess: drop ACLs in case of error, just to be safe
      acl: libudev currently doesn't handle properly enumerator matches with multiple tags, so avoid using them for now
      logind: allow access to SetIdleHint() to owner of the session
      util: clear scrolling region when clearing screen
      exec: add ControlGroupModify= switch to allow changing access mode to cgroups fs
      execute: do initgroups() first, pam initialization second so that it can still modify the groups list
      manager: use sd_notify() to notify parent systemd that we have finished startup
      logind: make sure to create/run/systemd/sessions before we try to place a fifo in it
      logind: add service for per-user shared systemd daemon
      execute: when parsing ConrolGroup= replace wildcards
      unit: consider all cgroups in the name=systemd hierarchy, even when the user has specified an explicit path in it
      execute: don't invoke pam_setcred, since we are not running on a tty where the user could change his password
      execute: invoke sigwait() in a loop when waiting for PAM parent, to avoid spurious wake-ups
      execute: fix PAM error checking
      util: try harder to rename the process
      execute: properly pass PAM environment to executed process
      pam: initialize XDG_RUNTIME_DIR
      unit: add three new specifiers to use in unit files
      cgroup: kill processes even in cgroups that aren't realized
      unit: do wildcard expansion in ListenStream= and friends
      unit: support wildcards in Environment=, EnvironmentFile=
      dbus: listen on private sockets in user mode too
      logind: create private subdirectory for X11 socket
      log: log to syslog unless connected to a tty in user mode
      logind: temporarily hack right user bus address into unit file
      nspawn: better use setresuid() instead of setreuid()
      manager: don't even think of enumerating sysv services in user instances
      units: enable dev-hugepages.automount and dev-mqueue.automount only when enabled in kernel
      tmpfiles: don't exit with an error code if we cannot access all files
      password-agent: make sure not to access unallocated memory
      password-agent: actually really don't access unallocated memory
      update todo
      logind: write rules files atomically
      add a few O_CLOEXEC where missing
      util: explicitly turn of O_CLOEXEC for stdin/stdout/stderr
      udev: pull in printer.target from all kinds of printers
      udev: improve udev rule a bit
      update TODO
      udev: tag virtio serial ports with systemd by default
      cgroup: don't trim a cgroup we create, we might just take it over from somebody else
      manager: merge serialization and desrialization counter into one, and increase it when reexecuting
      update TODO
      path,unit: support globbing in conditions and path units
      cgls: add pager support to systemd-cgls
      loginctl: add basic implementation of loginctl for introspecting controlling sessions/users/seats
      systemctl: cache tty value before we open the pager
      systemctl: use cached tty value where possible
      systemctl: hide all information on --kill-mode= since it is mostly useless
      seat: only mark main input device for seat assignments
      loginctl: add various introspection functions
      acl: two tag matching is not going to be available in libudev
      logind: fix introspection typo
      logind: don't confuse 'shared' with a session of its own
      systemctl: fix --help syntax for variables
      loginctl: add missing header file
      update TODO
      Merge remote-tracking branch 'harald/master'
      shutdown: coding style fixes
      build-sys: add a number of missing header files to EXTRA_DIST
      build-sys: fix make distcheck
      build-sys: remove autogenerated bus introspection files from git
      build-sys: fix copynpaste mistake
      sysctl: support application of sysctl subtrees
      update TODO
      tmpfiles: allow creation of named pipes with tmpfiles
      service: properly handle who argument on D-Bus kill calls
      unit: introduce ConditionFileIsExecutable= and use it where we check for a binary we'll spawn
      loginctl: implement more verbs
      unit: accept empty defaults for kill who/mode args
      unit: use ESRCH as error when we don't find anybody to kill
      loginctl: implement missing kill verb
      udev: actually check for existance of ID_PATH_TAG before we use it
      logind: remove some unused labels
      loginctl: use new udev_device_has_tag() call from libudev where applicable
      logind: use new udev_enumerate_add_match_parent() where applicable
      nspawn: always use bind mounts to make API file systems available in the container
      consolidate TODO
      man: add man page for systemd-loginctl
      man: add a couple of crosslinks
      nspawn: compress mount table a bit
      build-sys: bump release
      logind: fix some potentially uninitialized accesses
Michael Olbrich (2):
      swap: ignore missing /proc/swaps
      umount: ignore missing /proc/swaps

Michal Schmidt (6):
      manager: consider the active job when merging
      shutdown: accept minutes argument without '+'
      shutdown: respect the dry run option '-k'
      shutdown: print the standard wall message even when the user provided one
      systemadm: report GLib.Error only to stderr
      service: 'pidfile:' in SysV chkconfig header implies a real daemon

Michal Vyskocil (3):
      main: Fix a typo emergency shall->emergency shell
      nspawn: Move the get_user_creds from execute.c to utils.c for later usage in nspawn.c.
      nspawn: spawn shell under specified --user

Ville Skyttä (3):
      bash: Add host, privileged, and no-pager bash option completions.
      man: Documentation spelling fixes
      systemctl: Add SYSTEMD_PAGER for setting the pager to use in systemctl

William Douglas (1):
      sd-daemon: Add sd_is_special for special file descriptors

Zbigniew Jędrzejewski-Szmek (2):
      man: un-reverse IgnoreOnSnapshot description
      logind: Fix compilation without ACL


Lennart Poettering - Red Hat, Inc.

More information about the systemd-devel mailing list