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