chiark / gitweb /
units: rebuild /etc/passwd, the udev hwdb and the journal catalog files on boot
[elogind.git] / TODO
diff --git a/TODO b/TODO
index 015faf68d80291b12777e3de91bc90182ffcea17..b20a66fea8335eb49cc986d32436c2c132c51a53 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,7 @@
 Bugfixes:
 Bugfixes:
+* Re-enable "fsck -l" when it is ready:
+   https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5
+
 * Should systemctl status \* work on all unit types, not just .service?
 
 * enabling an instance unit creates a pointless link, and
 * Should systemctl status \* work on all unit types, not just .service?
 
 * enabling an instance unit creates a pointless link, and
@@ -20,7 +23,6 @@ Bugfixes:
   See the comment in sd_bus_unref() for more..
 
 External:
   See the comment in sd_bus_unref() for more..
 
 External:
-
 * Fedora: when installing fedora with yum --installroot /var/run is a directory, not a symlink
    https://bugzilla.redhat.com/show_bug.cgi?id=975864
 
 * Fedora: when installing fedora with yum --installroot /var/run is a directory, not a symlink
    https://bugzilla.redhat.com/show_bug.cgi?id=975864
 
@@ -30,12 +32,17 @@ External:
 
 Features:
 
 
 Features:
 
+* generator that automatically discovers btrfs subvolumes, identifies their purpose based on some xattr on them.
+
+* support setting empty environment variables with Environment= and EnvironmentFile=
+
+* machined/machinectl: sort IP addresses we return by scope and protocol
+* machined: write NSS module for looking up IP addresses for machines
+
 * timer units: actually add extra delays to timer units with high AccuracySec values, don't start them already when we are awake...
 
 * timesyncd:
   - hookup with networkd: NTP servers from dhcp
 * timer units: actually add extra delays to timer units with high AccuracySec values, don't start them already when we are awake...
 
 * timesyncd:
   - hookup with networkd: NTP servers from dhcp
-  - hookup with networkd: listen to online/offline state
-  - run as unpriviliged user
 
 * a way for container managers to turn off getty starting via $container_headless= or so...
 
 
 * a way for container managers to turn off getty starting via $container_headless= or so...
 
@@ -51,26 +58,16 @@ Features:
 
 * mount_cgroup_controllers(): symlinks need to get the label applied
 
 
 * mount_cgroup_controllers(): symlinks need to get the label applied
 
-* For timer units: add some mechanisms so that timer units that trigger immediately on boot do not have the services they run added to the initial transaction and thus confuse Type=idle. Alternatively, split up the boot-up state into two, and make Type=idle only be affected by jobs for the default target, but ignore any further jobs
+* For timer units: add some mechanisms so that timer units that trigger immediately on boot do not have the services they run added to the initial transaction and thus confuse Type=idle.
 
 * Add RPM macros for registering/unregistering binfmt drop-ins
 
 * Add timeout to early-boot, and shut down the system if it is hit. Solves the laptop-in-bag problem and is useful for embedded cases
 
 
 * Add RPM macros for registering/unregistering binfmt drop-ins
 
 * Add timeout to early-boot, and shut down the system if it is hit. Solves the laptop-in-bag problem and is useful for embedded cases
 
-* sd-resolve: add callback api
-
-* ImmutableSystem=yes/no or so to mount /usr, /boot read-only/invisible, and leave /var and /etc writable
-
-* InaccessibleHome=yes/no or so to hide /home and /run/user from a service
-
-* Run most system services with cgroupfs read-only and procfs with a more secure mode
+* Run most system services with cgroupfs read-only and procfs with a more secure mode (doesn't work, since the hidepid= option is per-pid-namespace, not per-mount)
 
 * sd-event: generate a failure of a default event loop is executed out-of-thread
 
 
 * sd-event: generate a failure of a default event loop is executed out-of-thread
 
-* add "M" as recursive version of "m" to tmpfiles, then use it for
-  chowning /run/log/journal (but not /var/log/journal), so that we
-  adjust the perms of journal files created before tmpfiles ran.
-
 * expose "Locked" property on logind sesison objects
 
 * add bus api to query unit file's X fields.
 * expose "Locked" property on logind sesison objects
 
 * add bus api to query unit file's X fields.
@@ -89,18 +86,6 @@ Features:
   do not have to open it to know that it is not interesting for us, for
   the most common operations.
 
   do not have to open it to know that it is not interesting for us, for
   the most common operations.
 
-* support transient mount units
-
-* add an "input" group to udev logic and add all input devices to it
-
-* machined: provide calls GetMachineByAddress() on the manager
-  interface to get the machine for a local IP address, and
-  GetAddress() on the Machine interface to get the Address for a
-  machine. Implement via forking off child process which quickly joins
-  the cotnainer and passes data to parent. Show this in "machinectl
-  status", and use it to implement NSS module to provide automatic
-  name resolution for containers.
-
 * add generator that pulls in systemd-network from containers when
   CAP_NET_ADMIN is set, more than the loopback device is defined, even
   when it is otherwise off
 * add generator that pulls in systemd-network from containers when
   CAP_NET_ADMIN is set, more than the loopback device is defined, even
   when it is otherwise off
@@ -160,8 +145,6 @@ Features:
 
 * Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
 
 
 * Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
 
-* socket-proxyd: Use sd-resolve to resolve the server address
-
 * rfkill,backlight: we probably should run the load tools inside of the udev rules so that the state is properly initialized by the time other software sees it
 
 * After coming back from hibernation reset hibernation swap partition using the /dev/snapshot ioctl APIs
 * rfkill,backlight: we probably should run the load tools inside of the udev rules so that the state is properly initialized by the time other software sees it
 
 * After coming back from hibernation reset hibernation swap partition using the /dev/snapshot ioctl APIs
@@ -184,27 +167,19 @@ Features:
 
 * load .d/*.conf dropins for device units
 
 
 * load .d/*.conf dropins for device units
 
-* gparted needs to disable auto-activation of mount units somehow, or
-  maybe we should stop doing auto-activation of this after boot
-  entirely. https://bugzilla.gnome.org/show_bug.cgi?id=701676
-  Maybe take a BSD lock at the disk device node and teach udev to
-  check for that and suppress event handling.
-
 * allow implementation of InaccessibleDirectories=/ plus
   ReadOnlyDirectories=... for whitelisting files for a service.
 
 * sd-bus:
 * allow implementation of InaccessibleDirectories=/ plus
   ReadOnlyDirectories=... for whitelisting files for a service.
 
 * sd-bus:
-  - make AddMatch calls on dbus1 transports async
   - when kdbus does not take our message without memfds, try again with memfds
   - systemd-bus-proxyd needs to enforce good old XML policy
   - when kdbus does not take our message without memfds, try again with memfds
   - systemd-bus-proxyd needs to enforce good old XML policy
-  - port exit-on-idle logic to byebye ioctl
   - allow updating attach flags during runtime
   - pid1: peek into activating message when activating a service
   - introduce sd_bus_emit_object_added()/sd_bus_emit_object_removed() that automatically includes the build-in interfaces in the list
   - allow updating attach flags during runtime
   - pid1: peek into activating message when activating a service
   - introduce sd_bus_emit_object_added()/sd_bus_emit_object_removed() that automatically includes the build-in interfaces in the list
-  - constructors for bus messages should probably not be OK with a NULL bus pointer
-  - .busname units should not use get_user_creds()/get_cgroup_creds() but instead do NSS only in temporarily forked off child
+  - port to sd-resolve for connecting to TCP dbus servers
   - see if we can drop more message validation on the sending side
   - add API to clone sd_bus_message objects
   - see if we can drop more message validation on the sending side
   - add API to clone sd_bus_message objects
+  - make AddMatch calls on dbus1 transports async?
   - kdbus: matches against source or destination pids for an "strace -p"-like feel. Problem: The PID info needs to be available in userspace too...
   - longer term: priority inheritance
   - dbus spec updates:
   - kdbus: matches against source or destination pids for an "strace -p"-like feel. Problem: The PID info needs to be available in userspace too...
   - longer term: priority inheritance
   - dbus spec updates:
@@ -215,7 +190,6 @@ Features:
        - path escaping
   - update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now
   - test bloom filter generation indexes
        - path escaping
   - update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now
   - test bloom filter generation indexes
-  - port to sd-resolve for connecting to TCP dbus servers
 
 * sd-event
   - allow multiple signal handlers per signal?
 
 * sd-event
   - allow multiple signal handlers per signal?
@@ -295,7 +269,6 @@ Features:
 * introduce ExecCondition= in services
 
 * EFI:
 * introduce ExecCondition= in services
 
 * EFI:
-  - write man page for efi boot generator
   - honor language efi variables for default language selection (if there are any?)
   - honor timezone efi variables for default timezone selection (if there are any?)
   - change bootctl to be backed by systemd-bootd to control temporary and persistent default boot goal plus efi variables
   - honor language efi variables for default language selection (if there are any?)
   - honor timezone efi variables for default timezone selection (if there are any?)
   - change bootctl to be backed by systemd-bootd to control temporary and persistent default boot goal plus efi variables
@@ -402,7 +375,6 @@ Features:
   - systemctl: "Journal has been rotated since unit was started." message is misleading
   - support "systemctl stop foobar@.service" to stop all units matching a certain template
   - Something is wrong with symlink handling of "autovt@.service" in "systemctl list-unit-files"
   - systemctl: "Journal has been rotated since unit was started." message is misleading
   - support "systemctl stop foobar@.service" to stop all units matching a certain template
   - Something is wrong with symlink handling of "autovt@.service" in "systemctl list-unit-files"
-  - rework wait filter to not require match callback
   - better error message if you run systemctl without systemd running
   - systemctl status output should should include list of triggering units and their status
 
   - better error message if you run systemctl without systemd running
   - systemctl status output should should include list of triggering units and their status
 
@@ -415,8 +387,6 @@ Features:
   - systemctl list-unit-files should list generated files (and probably with a new state "generated" for them, or so)
   - systemctl: maybe add "systemctl add-wants" or so...
 
   - systemctl list-unit-files should list generated files (and probably with a new state "generated" for them, or so)
   - systemctl: maybe add "systemctl add-wants" or so...
 
-* introduce ntp.service (or suchlike) as symlink that is used to arbitrate between various NTP implementations
-
 * deal with sendmail/postfix exclusivity
 
 * timer units:
 * deal with sendmail/postfix exclusivity
 
 * timer units:
@@ -458,7 +428,7 @@ Features:
 
 * on shutdown: move utmp, wall, audit logic all into PID 1 (or logind?), get rid of systemd-update-utmp-runlevel
 
 
 * on shutdown: move utmp, wall, audit logic all into PID 1 (or logind?), get rid of systemd-update-utmp-runlevel
 
-* add "provisioning" instructions to setup an empty /etc + /var
+* add "factory" instructions to setup an empty /etc + /var
     - used to setup a new container from a shared /usr
     - superset of tmpfiles model
     - instructions shipped by packages and stored in /usr/lib/
     - used to setup a new container from a shared /usr
     - superset of tmpfiles model
     - instructions shipped by packages and stored in /usr/lib/
@@ -473,14 +443,9 @@ Features:
 * currently x-systemd.timeout is lost in the initrd, since crypttab is copied into dracut, but fstab is not
 
 * nspawn:
 * currently x-systemd.timeout is lost in the initrd, since crypttab is copied into dracut, but fstab is not
 
 * nspawn:
-  - nspawn: --read-only is not applied recursively to submounts
   - bind mount read-only the cgroup tree higher than nspawn
   - bind mount read-only the cgroup tree higher than nspawn
-  - nspawn: make it work for dwalsh and shared /usr containers -- tmpfs mounts as command line parameters
   - refuses to boot containers without /etc/machine-id (OK?), and with empty /etc/machine-id (not OK).
   - support taking a btrfs snapshot at startup and dropping it afterwards
   - refuses to boot containers without /etc/machine-id (OK?), and with empty /etc/machine-id (not OK).
   - support taking a btrfs snapshot at startup and dropping it afterwards
-  - maybe: hookup nspawn and PrivateNetwork=yes with "ip netns"
-  - generate predictable mac addresses for the netdev we create (host0), maybe based on guest's machine
-    name and machine-id of host (?)
 
 * cryptsetup:
   - cryptsetup-generator: allow specification of passwords in crypttab itself
 
 * cryptsetup:
   - cryptsetup-generator: allow specification of passwords in crypttab itself
@@ -512,8 +477,6 @@ Features:
 
 * MountFlags=shared acts as MountFlags=slave right now.
 
 
 * MountFlags=shared acts as MountFlags=slave right now.
 
-* ReadOnlyDirectories= is not applied recursively to submounts
-
 * drop PID 1 reloading, only do reexecing (difficult: Reload()
   currently is properly synchronous, Reexec() is weird, because we
   cannot delay the response properly until we are back, so instead of
 * drop PID 1 reloading, only do reexecing (difficult: Reload()
   currently is properly synchronous, Reexec() is weird, because we
   cannot delay the response properly until we are back, so instead of
@@ -564,8 +527,6 @@ Features:
 
 * introduce mix of BindTo and Requisite
 
 
 * introduce mix of BindTo and Requisite
 
-* add DeleteSocketsOnStop=yes|no option to socket units
-
 * There's currently no way to cancel fsck (used to be possible via C-c or c on the console)
 
 * add option to sockets to avoid activation. Instead just drop packets/connections, see http://cyberelk.net/tim/2012/02/15/portreserve-systemd-solution/
 * There's currently no way to cancel fsck (used to be possible via C-c or c on the console)
 
 * add option to sockets to avoid activation. Instead just drop packets/connections, see http://cyberelk.net/tim/2012/02/15/portreserve-systemd-solution/
@@ -611,8 +572,6 @@ Features:
   when we start a service in order to avoid confusion when a user
   assumes starting a service is enough to make it accessible
 
   when we start a service in order to avoid confusion when a user
   assumes starting a service is enough to make it accessible
 
-* support User= and Group= attributes for AF_UNIX sockets. (difficult, requires NSS from PID 1?)
-
 * Make it possible to set the keymap independently from the font on
   the kernel cmdline. Right now setting one resets also the other.
 
 * Make it possible to set the keymap independently from the font on
   the kernel cmdline. Right now setting one resets also the other.
 
@@ -666,8 +625,6 @@ Features:
 
 * fingerprint.target, wireless.target, gps.target, netdevice.target
 
 
 * fingerprint.target, wireless.target, gps.target, netdevice.target
 
-* io priority during initialization
-
 * drop cap bounding set in readahead and other services
 
 * systemd-python:
 * drop cap bounding set in readahead and other services
 
 * systemd-python:
@@ -704,12 +661,13 @@ Features:
      then remove remove libkmod dependency and CAP_SYS_MODULE
    - add veth netdev support (c.f. http://shorewall.net/bridge-Shorewall-perl.html#veth)
    - add tun/tap netdev support
      then remove remove libkmod dependency and CAP_SYS_MODULE
    - add veth netdev support (c.f. http://shorewall.net/bridge-Shorewall-perl.html#veth)
    - add tun/tap netdev support
+   - add more attribute support for SIT tunnel
 
 
-* dhcp:
-   - export timezone information
-   - FORCERENEW
+* networkd-wait-online:
+   - make operstates to wait for configurable?
 
 * dhcp:
 
 * dhcp:
+   - figure out how much we can increase Maximum Message Size
    - export timezone information
    - FORCERENEW
 
    - export timezone information
    - FORCERENEW
 
@@ -725,12 +683,6 @@ External:
 
 * patch kernel for xattr support in /dev, /proc/, /sys?
 
 
 * patch kernel for xattr support in /dev, /proc/, /sys?
 
-* NTP: the kernel's 11-minutes-mode syncs the system time to the RTC, but only
-  in an ~30 minutes window. It does not adjust larger differences. Find a way
-  to tell the kernel, to always do a full time sync when the RTC is in UTC and
-  we are in 11-minutes-mode. When we trust the system time to NTP we also want
-  the RTC to sync up.
-
 * kernel: add device_type = "fb", "fbcon" to class "graphics"
 
 * drop accountsservice's StandardOutput=syslog and Type=dbus fields
 * kernel: add device_type = "fb", "fbcon" to class "graphics"
 
 * drop accountsservice's StandardOutput=syslog and Type=dbus fields