+* dot output for --test for 'initial description'
-- trigger mounting; mounts might take time, need to be executed asynchronously in a forked process?
+* check 'disable'
+ <Viking-Ice> "Warning: Unit file changed in disk, 'systemctl --system daemon-reload' recomended
+ <kay> when does it do that?
+ <Viking-Ice> if you disable the service
-- need gc for active jobs that nothing cares for
+* fixup var-run/var-lock tmpfs mounts. we need:
+ touch /var/run/utmp
+ chown root:utmp /var/run/utmp
+ mkdir -p /var/lock/subsys
-- need gc for units that are not referenced anymore
+* downgrade warnings for non-existent services pulled-in
+ by soft dependencies, like:
+ init[1]: Failed to load configuration for isdn.service: No such file or directory
-- refreshing of units (i.e. reload config files)
+* somehow fix the start of getty on tty1, which clears the screen, and mixes
+ its output with systemd bootup messages
-- further dbusification (i.e. export dependency information, per-unit-type data)
+* have a simple syslog bridge providing /dev/log and forward messages
+ to /dev/kmsg. at the moment the real syslog can be started, the bridge
+ is stopped and the open /dev/log fd to the real syslog. that way we
+ don't lose any early log message, and simple systems have full syslog
+ support in the kernel ringbuffer, without any syslog service or disk
+ access
-- cgroupsification
+* calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
-- snapshot system
+* implicitly import "defaults" settings file into all types
-- add a job mode which shuts everything down but what is requested
+* add #ifdefs for non-sysv builds
-- implement timer
+* reinvestigate random seed, hwclock
-- implement automount
+* "disabled" load state?
-- create session/pgroup for child processes? handle input on console properly? interactive fsck? interactive luks password?
-
-- fs namespaces
-
-- templating/instances
-
-- verify fragment data after loading: refuse cycles on yourself, service units contradicting, more than one Start executable, ...
-
-- .socket needs to be notified not only by .service state changes, but also unsuccessful start jobs
-
-- we probably cannot use glibc's syslog() for logging, since it
- presumably uses the logging socket in blocking mode which might
- trigger a deadlock if syslog does not process the socket anymore
- (maybe because it is restarted) and the socket buffer is full.
-
-- in udev/mount if properties change we need to delete the old
- settings and install the new settings. Deleting the old settings is
- currently missing.
-
-- ability to kill services? i.e. in contrast to stopping them, go directly
+* ability to kill services? i.e. in contrast to stopping them, go directly
into killing mode?
-- restart-on-success, restart-on-failure, restart-on-abort, restart-on-name-gnone
-
-- port over to LISTEN_FDS/LISTEN_PID:
+* port over to LISTEN_FDS/LISTEN_PID:
- uuidd DONE
- - nscd DONE
- - rpcbind (/var/run/rpcbind.sock!)
- - dbus
- - rsyslog
- - cups
+ - dbus DONE
+ - rsyslog DONE
+ - rpcbind (/var/run/rpcbind.sock!) DONE
+ - cups DONE
+ - avahi-daemon (/var/run/avahi-daemon/socket) DONE
- ssh CLASSIC
- postfix, saslauthd
- apache/samba
- libvirtd (/var/run/libvirt/libvirt-sock-ro)
- bluetoothd (/var/run/sdp! @/org/bluez/audio!)
- - avahi-daemon (/var/run/avahi-daemon/socket)
- distccd
-- teach dbus to talk to systemd when autospawning services
+* write utmp record a la upstart for processes
+
+* follow property change dbus spec
+
+* selinux policy loading/socket stuff
+
+* systemctl status $PID, systemctl stop $PID!
+
+* place /etc/inittab with explaining blurb.
+
+* vielleicht implizit immer auf syslog dependen?
+
+* debian deadlock when partition set to noauto
+
+* fingerprint.target, wireless.target, gps.target
+
+* set_put(), hashmap_put() return values checken. i.e. == 0 macht kein free()!
+
+* fix merging in .swap units
+
+* pahole
+
+* chkconfig/systemd-install glue
+
+* io priority during initialization
+
+* if a service fails too often, make the service enter maintainence mode, and the socket, too.
+
+* don't show file not found msgs for irrelevant units
+
+* getty doesn't respawn
+
+External:
+
+* sysv functions should color when stdout is tty, not stdin
+
+* agetty should not modify baudrate
+
+* ck logging, ssh readahead
+
+* pam: fix double sudo session cleanup:
+ http://www.gratisoft.us/bugzilla/show_bug.cgi?id=421
+
+* patch /etc/init.d/functions with:
+
+ if [ $PPID -ne 1 && mountpoint /cgroup/systemd ] ; then echo "You suck!" ; fi
+
+https://bugzilla.redhat.com/show_bug.cgi?id=614245 -- plymouth
+https://bugzilla.redhat.com/show_bug.cgi?id=612789 -- umount /cgroup on halt
+https://bugzilla.redhat.com/show_bug.cgi?id=612728 -- /etc/rc.d/init.d/functions
+https://bugzilla.redhat.com/show_bug.cgi?id=612712 -- pam_systemd
+https://bugs.freedesktop.org/show_bug.cgi?id=29193 -- accountsservice
+https://bugs.freedesktop.org/show_bug.cgi?id=29194 -- ConsoleKit
+https://bugs.freedesktop.org/show_bug.cgi?id=29205 -- udisks
+http://article.gmane.org/gmane.linux.bluez.kernel/6479 -- bluez
+http://www.spinics.net/lists/linux-nfs/msg14371.html -- rpcbind
+
+Regularly:
+
+* look for close() vs. close_nointr() vs. close_nointr_nofail()
-- unix sockets chown()/chgrp()
+* check for strerror(r) instead of strerror(-r)
-- watch dbus names for figuring out when a service has finished startup/goes down
+* Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
-- initialize console tty on startup
+* %m in printf() instead of strerror();