chiark / gitweb /
Merge remote-tracking branch 'zbigniew/systemadm_changes'
[elogind.git] / TODO
1 Bugfixes:
2
3 * swap units that are activated by one name but shown in the kernel under another are semi-broken
4
5 * NM should pull in network.target (PENDING)
6   https://bugzilla.redhat.com/show_bug.cgi?id=692008
7
8 * make anaconda write timeout=0 for encrypted devices
9
10 * service: pid file reading after reload doesn't work, since we don't reset the pid variable
11
12 * make sure timeouts are applied to Type=oneshot services.
13
14 * Dangling symlinks of .automount unit files in .wants/ directories, set up
15   automount points even when the original .automount file did not exist
16   anymore. Only the .mount unit was still around.
17
18 * make polkit checks async
19
20 Features:
21
22 * as Tom Gundersen pointed out there's a always a dep loop if people use crypto file systems with random keys
23
24 * unset container= in PID1?
25
26 * automatically escape unit names passed on the service (i.e. think "systemctl start serial-getty.service@serial/by-path/jshdfjsdfhkjh" being automatically escaped as necessary.
27
28 * if we can not get user quota for tmpfs, mount a separate tmpfs instance
29   for every user in /run/user/$USER with a configured maximum size
30
31 * default to actual 32bit PIDs, via /proc/sys/kernel/pid_max
32
33 * add an option to make mounts private/shareable and so on, enable this for root by default
34
35 * internal restart counter for units (focus on auto-respawn)
36
37 * finer-grained auto-respawn settings (rate-limit)
38
39 * be able to specify a forced restart of service A where service B depends on, in case B
40   needs to be auto-respawned?
41
42 * Something is wrong with symlink handling of "autovt@.service" in "systemctl list-unit-files"
43
44 * introduce sd_log_open() to create a connection to the syslog bridge via sd-daemon.h
45
46 * when a bus name of a service disappears from the bus make sure to queue further activation requests
47
48 * something like ConditionExec= or ExecStartPre= without failure state
49
50 * service restart retry configuration
51
52 * tmpfiles: apply "x" on "D" too (see patch from William Douglas)
53 * tmpfiles: support generation of char/block devices, symlinks and one-line files (think sysfs)
54
55 * Introduce ControlGroupPersistant=yes to set +t on the tasks file when creating the cgroup
56
57 * don't set $HOME in services unless requested
58
59 * remove hacks in vala code and require libnotify 0.7
60
61 * hide PAM/TCPWrap options in fragment parser when compile time disabled
62
63 * when we automatically restart a service, ensure we retsart its rdeps, too.
64
65 * allow Type=simple with PIDFile=
66   https://bugzilla.redhat.com/show_bug.cgi?id=723942
67
68 * move PAM code into its own binary
69
70 * warn if the user stops a service but not its associated socket
71
72 * logind: spawn user@..service on login
73
74 * logind: non-local X11 server handling
75
76 * implement Register= switch in .socket units to enable registration
77   in Avahi, RPC and other socket registration services.
78
79 * make sure people don't leave processes around after ExecStartPre=
80
81 * make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
82
83 * readahead: use BTRFS_IOC_DEFRAG_RANGE instead of BTRFS_IOC_DEFRAG ioctl, with START_IO
84
85 * readahead: check whether a btrfs volume includes ssd by checking mount flag "ssd"
86
87 * support sd_notify() style notification when reload begins (RELOADING=1), reload is finished (READY=1)
88
89 * support sd_notify() style notification when shutting down, to make auto-exit bus services work (STOPPING=1)
90
91 * verify that the AF_UNIX sockets of a service in the fs still exist
92   when we start a service in order to avoid confusion when a user
93   assumes starting a service is enough to make it accessible
94
95 * Make it possible to set the keymap independently from the font on
96   the kernel cmdline. Right now setting one resets also the other.
97
98 * move nss-myhostname into systemd
99
100 * and a dbus call to generate target from current state
101
102 * detect LXC with $container=lxc
103
104 * drop /.readahead on bigger upgrades with yum
105
106 * add inode nr check to readahead to suppress preloading changed files
107
108 * add support for /bin/mount -s
109
110 * GC unreferenced jobs (such as .device jobs)
111
112 * cgroup_notify_empty(): recursively check groups up the tree, too
113
114 * when failing to start a service due to ratelimiting, try again later, if restart=always is set
115
116 * write blog stories about:
117   - enabling dbus services
118   - status update
119   - how to make changes to sysctl and sysfs attributes
120   - remote access
121   - cgroup best pratices to avoid stepping on each others toes
122   - how to pass throw-away units to systemd, or dynamically change properties of existing units
123   - how to integrate cgconfig and suchlike with systemd
124   - security properties
125   - xinetd conversion
126   - details of instantiated @.service setups
127
128 * allow port=0 in .socket units
129
130 * move readahead files into /var, look for them with .path units
131
132 * teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
133
134 * support systemd.mask= on the kernel command line.
135
136 * when key file cannot be found, read it from kbd in cryptsetup
137
138 * reuse mkdtemp namespace dirs in /tmp?
139
140 * recreate systemd's D-Bus private socket file on SIGUSR2
141
142 * Support --test based on current system state
143
144 * investigate whether the gnome pty helper should be moved into systemd, to provide cgroup support.
145
146 * maybe introduce ExecRestartPre=
147
148 * configurable jitter for timer events
149
150 * timer events with system resume
151
152 * timer events on calendar time
153
154 * Support ProcessNeededForShutdown=true to allow stuff like mdmon to
155   be killed very late after the rootfs is read only? If implement pass
156   this to shutdown binary via command line argument.
157
158 * dot output for --test showing the 'initial transaction'
159
160 * calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
161     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99ee5315dac6211e972fa3f23bcc9a0343ff58c4
162
163 * implicitly import "defaults" settings file into all types
164 * exec settings override
165 * writable cgroups dbus properties for live changes
166
167 * read config fragments for all units from /lib/systemd/system/foobar.service.d/ to override/extend specific settings
168
169 * port over to LISTEN_FDS/LISTEN_PID:
170    - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
171    - cups     HAVEPATCH
172    - postfix, saslauthd
173    - apache/samba
174    - libvirtd (/var/run/libvirt/libvirt-sock-ro)
175    - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
176    - distccd
177
178 * auditd service files
179
180 * fingerprint.target, wireless.target, gps.target, netdevice.target
181
182 * io priority during initialization
183
184 * if a service fails too often, make the service enter failed mode, and the socket, too.
185
186 * new deps "Triggers" and "TriggeredBy"
187
188 * systemctl list-jobs - show dependencies
189
190 * add systemctl switch to dump transaction without executing it
191
192 * suspend, resume support?
193
194 * drop cap bounding set in readahead and other services
195
196 External:
197
198 * dbus:
199    - get process transport into dbus for systemctl -P/-H (PENDING)
200    - dbus --user
201    - natively watch for dbus-*.service symlinks (PENDING)
202    - allow specification of socket mode/umask when allocating DBusServer
203    - allow disabling of fd passing when connecting a AF_UNIX connection
204    - allow disabling of UID passing for AUTH EXTERNAL
205
206 * systemd --user
207     PR_SET_CHILD_REAPER patch: https://lkml.org/lkml/2011/7/28/426
208
209 * fix alsa mixer restore to not print error when no config is stored
210
211 * udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
212
213 * snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
214
215 * gnome-shell python script/glxinfo/is-accelerated must die
216
217 * make cryptsetup lower --iter-time
218
219 * patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
220
221 * patch kernel for cpu feature modalias for autoloading aes/kvm/...
222     http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
223   (Rafael J. Wysocki's sysdev rework is on the way. After that CPUs can be exported a proper bus.)
224
225 * kernel: add /proc/sys file exposing CAP_LAST_CAP? sysconf?
226
227 * kernel: add device_type = "fb", "fbcon" to class "graphics"
228
229 Regularly:
230
231 * look for close() vs. close_nointr() vs. close_nointr_nofail()
232
233 * check for strerror(r) instead of strerror(-r)
234
235 * Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
236
237 * %m in printf() instead of strerror();
238
239 * pahole
240
241 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!