]> git.ipfire.org Git - thirdparty/systemd.git/blame - TODO
Revert "comment out uncommitted test source code"
[thirdparty/systemd.git] / TODO
CommitLineData
71092d70 1Bugfixes:
7c66aeba
KS
2* check systemd-tmpfiles for selinux context hookup for mknod(), symlink() and similar
3
c904f64d
LP
4* swap units that are activated by one name but shown in the kernel under another are semi-broken
5
05677bb7 6* make anaconda write timeout=0 for encrypted devices
73090dc8 7
f957632b
KS
8* Dangling symlinks of .automount unit files in .wants/ directories, set up
9 automount points even when the original .automount file did not exist
10 anymore. Only the .mount unit was still around.
11
9a366075
LP
12* make polkit checks async
13
a40593a0 14* properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
20ffc4c4 15
4ce84985
LP
16F18:
17
c3090674
LP
18* Retest multi-seat
19
71092d70 20Features:
dcfc4b2e 21
f8019684
LP
22* document that deps in [Unit] sections ignore Alias= fileds in
23 [Install] units of other units, unless those units are disabled
24
25* need to update LGPL2.1 text to newest version (with updated FSF address)
26
409133be
LP
27* allow users from "wheel" to start/stop services
28
29* systemctl: when powering down/suspending check for inhibitors, and warn.
30
41f9172f
LP
31* instantiated [Install] for target units
32 https://bugs.freedesktop.org/show_bug.cgi?id=54377
178cc770 33
bfba3256
LP
34* support *static* (/run) hibernate inhibitors. All rpm -i actions should completely prevent any
35 sort of hibernate action until the next reboot. If the kernel or any other base tool is replaced
36 by rpm, the resume path might fail, the for resume needed kernel might even be uninstalled, and
37 the whole situation leads directly to data loss.
38
de34a42b
LP
39* move debug shell to tty6 and make sure this doesn't break the gettys on tty6
40
98a77df5 41* move cryptsetup key caching into kernel keyctl?
41f9172f 42 https://bugs.freedesktop.org/show_bug.cgi?id=54982
98a77df5 43
dcf76484
LP
44* make nspawn work without terminal
45
424a19f8 46* hw watchdog: optionally try to use the preset watchdog timeout instead of always overriding it
41f9172f 47 https://bugs.freedesktop.org/show_bug.cgi?id=54712
424a19f8
LP
48
49* after deserializing sockets in socket.c we should reapply sockopts and things
50
a1cccad1
LP
51* does vasprintf advance the struct vaargs? http://pastie.org/pastes/4712773/text
52
53* do shutdown audit/utmp msgs inside of PID 1, get rid of systemd-update-utmp-runlevel
54
a1cccad1
LP
55* make timer units go away after they elapsed
56
8556879e
LP
57* http://lists.freedesktop.org/archives/systemd-devel/2012-September/006502.html
58
8556879e
LP
59* come up with a nice way to write queue/read_ahead_kb for a block device without interfering with readahead
60
61* journald: add kernel cmdline option to disable ratelimiting for debug purposes
62
4a30847b
LP
63* move PID 1 segfaults to /var/lib/systemd/coredump?
64
b5b46d59
LP
65* Document word splitting syntax for ExecStart= and friends
66
5e8b2883
LP
67* when writing journal entries order field items by their address to improve speed on rotating media
68
69* create /sbin/init symlinks from the build system
70
d87be9b0
LP
71* Query Paul Moore about relabelling socket fds while they are open
72
438bacd1
LP
73* move keymaps to /usr/lib/... rather than /usr/lib/udev/...
74
88f89a9b
LP
75* journald: check whether it is OK if the client can still modify delivered journal entries
76
d87be9b0
LP
77* json: use jensson
78
88f89a9b
LP
79* json: properly serialize multiple fields with the same name per entry
80
cb7ed9df 81* journal live copy, based on libneon (client) and libmicrohttpd
88f89a9b
LP
82
83* document in wiki json serialization
84
88f89a9b
LP
85* system-wide seccomp filter
86
88f89a9b
LP
87* ability to pass fds into systemd
88
89* system.conf should have controls for cgroups
90
88f89a9b
LP
91* bind mount read-only the cgroup tree higher than than nspawn
92
1946b0bd
LP
93* currently system services appear not to generate core dumps...
94
cde9cb34 95* wall messages for shutdown should move to logind
877d54e9 96
38a60d71
LP
97* allow writing multiple conditions in unit files on one line
98
c0ca7aee
LP
99* cleanup ellipsation for log output in journalctl and systemctl status: have a sane way to disable ellipsation, and disable it by default when invoked in less/more
100
d8b78264
LP
101* explore multiple service instances per listening socket idea
102
103* testing tool for socket activation: some binary that listens on a socket and passes it on using the usual socket activation protocol to some server.
104
50b3e64e
LP
105* maybe make systemd-detect-virt suid? or use fscaps?
106
7560fffc
LP
107* shutdown: don't read-only mount anything when running in container
108
5a7e9599
LP
109* nspawn: --read-only is not applied recursively to submounts
110
68f16003 111* MountFlags=shared acts as MountFlags=slave right now.
0790b9fe 112
5a7e9599
LP
113* ReadOnlyDirectories= is not applied recursively to submounts
114
68f16003
LP
115* drop PID 1 reloading, only do reexecing (difficult: Reload()
116 currently is properly synchronous, Reexec() is weird, because we
117 can't delay the response properly until we are back, so instead of
118 being properly synchronous we just keep open the fd and close it
119 when done. That means clients don't get a succesful method reply,
120 but much rather a disconnect on success.
0790b9fe 121
68f16003 122* document that service reload may be implemented as service reexec
df1c8f6a 123
5aea932f
LP
124* remember which condition failed for services, not just the fact that something failed
125
918943c7
LP
126* use opterr = 0 for all getopt tools
127
fd4d89b2
LP
128* properly handle loop back mounts via fstab, especially regards to fsck/passno
129
8230e26d
LP
130* allow services with no ExecStart= but with an ExecStop=
131
dcfc4b2e
LP
132* add proper journal support to "systemctl --user status ..."
133
134* add _SYSTEMD_USER_UNIT= field to journal entries
135
4d9909c9
LP
136* dracut-shutdown needs to be ordered before unmounting /boot
137
47ae7201
LP
138* initialize the hostname from the fs label of /, if /etc/hostname does not exist?
139
decab960
LP
140* install README to /etc/rc.d/init.d (if support for that is enabled) helping people who use "ls" there to figure out which services exist.
141
88a6c589 142* rename "userspace" to "core-os"
8351ceae 143
6a735368
LP
144* systemctl: "Journal has been rotated since unit was started." message is misleading
145
6b78f9b4
LP
146* syscall filter: add knowledge about compat syscalls
147
9f8d2983
LP
148* syscall filter: don't enforce no new privs?
149
150* syscall filter: option to return EPERM rather than SIGSYS?
151
68f16003
LP
152* syscall filter: port to libseccomp
153
b7def684
LP
154* logind: wakelock/opportunistic suspend support
155
c66d36e5
LP
156* systemd-analyze post-boot is broken for initrd
157
c66d36e5
LP
158* man: clarify that time-sync.target is not only sysv compat but also useful otherwise. Same for similar targets
159
be0aa784
LP
160* .device aliases need to be implemented with the "following" logic, probably.
161
461b1822
LP
162* refuse taking lower-case variable names in sd_journal_send() and friends.
163
9946996c
LP
164* load-fragment: when loading a unit file via a chain of symlinks
165 verify that it isn't masked via any of the names traversed.
166
d1970645
LP
167* journald: we currently rotate only after MaxUse+MaxFilesize has been reached.
168
b4efdf97
LP
169* Document:
170 - PID 1 D-Bus API
b4efdf97 171
3471bedc
LP
172* introduce Type=pid-file
173
5231084b
LP
174* systemctl list-unit-files appears to be broken for symlinked units in /usr/lib
175
eeb87514
LP
176* maybe allow services with ExecStop= set, but no ExecStart=?
177
a32f224a
LP
178* efi: implement /forcefsck as uefi variables thus not requiring file system altering to trigger a file system check
179
180* efi: honour language efi variables for default language selection
181
182* efi: honour timezone efi variables for default timezone selection
183
347e1b6d
KS
184* efi: automatically mount EFI partition to /boot if no such entry exists in /etc/fstab and /boot is empty
185 gummiboot exports the EFI system partion (ESP) device:
186 /sys/firmware/efi/vars/LoaderDeviceIdentifier-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f/data
187 Acpi(PNP0A03,0)/Pci(1F|2)/?/HD(Part1,Sig1FCBC57F-4BFC-4C2B-91A3-9C84FBCD9AF1)
188 '/' is the separator for the device path list
189 HD(Part1,Sig1FCBC57F-4BFC-4C2B-91A3-9C84FBCD9AF1) contains the GPT UUID of the ESP
190
191* read the bootloader performance data (raw TSC) in systemd-analyze
192 /sys/firmware/efi/vars/LoaderTicksExec-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f/data
193 19066159288
194 /sys/firmware/efi/vars/LoaderTicksInit-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f/data
195 17442940316
196 /sys/firmware/efi/vars/LoaderTicksStartMenu-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f/data
197 (only set if the menu was active)
166503da 198
59cea26a 199* change Requires=basic.target to RequisiteOverride=basic.target
35eb6b12 200
94734142 201* support rd.luks.allow-discards= kernel cmdline params in cryptsetup generator
f1a8e221 202
24f3a374
LP
203* systemctl: when stopping a service which has triggres and warning about it actually check the TriggeredBy= deps fields
204
069cfc85
LP
205* nspawn: make use of device cgroup contrller by default
206
7b63bde1
LP
207* drop accountsservice's StandardOutput=syslog and Type=dbus fields
208
5b40d337
LP
209* when breaking cycles drop sysv services first, then services from /run, then from /etc, then from /usr
210
f7f21d33
LP
211* readahead: when bumping /sys readahead variable save mtime and compare later to detect changes
212
27b5482c
LP
213* (attempt to) make Debianites happy:
214 - implement .d/ auto includes for unit files
215 - add syntax to reset ExecStart= lists (and similar)
216
b86fa936
LP
217* move passno parsing to fstab generator
218
a26336da
KS
219* improve !/proc/*/loginuid situation: make /proc/*/loginuid less dependent on CONFIG_AUDIT,
220 or use the users cgroup information when /proc/*/loginuid is not available.
e85647f7 221
eecd1362
LP
222* pam_systemd: try to get old session id from cgroup, if audit sessionid cannot be determined
223
14038c2e
LP
224* pam: when leaving a session explicitly exclude the ReleaseSession() caller process from the killing spree
225
465349c0
LP
226* maybe introduce ~/.config/locale.conf and apply it within PAM
227
228* readahead: make use of EXT4_IOC_MOVE_EXT, as used by http://e4rat.sourceforge.net/
229
230* automount: implement expire
231
eecd1362 232* logind: auto-suspend, auto-shutdown:
d889a206 233 IdleAction=(none|suspend|opportunistic|hibernate|poweroff)
eecd1362
LP
234 IdleActionDelay=...
235 SessionIdleMode=(explicit|ignore|login)
236 ForceShutdown=(yes|no)
237
06dab8e1
LP
238* services which create their own subcgroups break cgroup-empty notification (needs to be fixed in the kernel)
239
7e2668c6
LP
240* don't delete /tmp/systemd-namespace-* before a process is gone down
241
e85647f7
LP
242* vconsole: implement setterm -store -foreground xxx --background zzz
243
e01a15b7 244* ExecOnFailure=/usr/bin/foo
a888b352 245
3b2d5b02
LP
246* fedora: make sshd and pam_loginuid work in nspawn containers
247
0f0dbc46
LP
248* fix utmp for console logins in containers
249
3d9a4122
LP
250* Add pretty name for seats in logind
251
a0a38448
LP
252* ConditionSecurity= should learn about IMA
253
9efaf380
LP
254* Auke: merge Auke's bootchart
255
4ee71782
KS
256* udev: move to LGPL
257
5ba2dc25
KS
258* udev systemd unify:
259 - strpcpy(), strpcpyl(), strscpy(), strscpyl()
260 - utf8 validator code
261 - now() vs. now_usec()
20ffc4c4 262
762f91fa
KS
263* udev: remove network interface renaming, sleep and retry logic, we do
264 no support renaming of interfaces in the conflicting kernel
265 namespace
266
b45f770f 267* udev: find a way to tell udev to not cancel firmware requests when running in initramfs
b8217b7b 268
b45f770f
KS
269* udev: scsi_id -> sg3_utils -> kill scsi_id
270
271* udev: add trigger --subsystem-match=usb/usb_device device
b8217b7b 272
08f23fd2
LP
273* allow configuration of console width/height in vconsole.conf
274
18b754d3 275* cleanup syslog 'priority' vs. 'level' wording
068665b6 276
231931ff
LP
277* dbus upstream still refers to dbus.target and shouldn't
278
169c4f65
LP
279* when a service has the same env var set twice we actually store it twice and return that in systemctl show -p... We should only show the last setting
280
bd08f242
LP
281* support container_ttys=
282
fb0864e7
LP
283* introduce mix of BindTo and Requisite
284
18da4953
LP
285* journalctl: show multiline log messages sanely, expand tabs, and show all valid utf8 messages
286
9586cdfa
LP
287* add DeleteSocketsOnStop=yes|no option to socket units
288
9586cdfa
LP
289* journal: store euid in journal if it differs from uid
290
7f110ff9
LP
291* There's currently no way to cancel fsck (used to be possible via C-c or c on the console)
292
101f0776
LP
293* journal: sanely deal with entries which are larger than the individual file size, but where the componets would fit
294
f7f964eb
LP
295* add command to systemctl to plot dependency graph as tree (see rhbz 795365)
296
d0e5a333
LP
297* add option to sockets to avoid activation. Instead just drop packets/connections, see http://cyberelk.net/tim/2012/02/15/portreserve-systemd-solution/
298
d0e5a333
LP
299* default unix qlen is too small (10). bump sysctl? add sockopt?
300
15e9fbd8
LP
301* Possibly, detect whether SysV init scripts can do reloading by looking for "echo Usage:" lines
302
53ed2eeb
LP
303* figure out whether we should leave dbus around during shutdown
304
680a1dbc
LP
305* dbus: in fedora, make the machine a symlink to /etc/machine-id
306
a6e87e90 307* dbus: move dbus to early boot
88f89a9b 308
7e64c73a
LP
309* journald: reuse XZ context
310
c4aa65e7 311* logind: add equivalent to sd_pid_get_owner_uid() to the D-Bus API
7e64c73a 312
a558d003
LP
313* journal: API for looking for retrieving "all values of this field"
314
315* journal: deal nicely with byte-by-byte copied files, especially regards header
316
317* journal: local deserializer of export mode, http server
318
319* journal: message catalog
320
05aa9edd
LP
321* document the exit codes when services fail before they are exec()ed
322
62f21ec9
LP
323* systemctl journal command
324
f7357f59 325* journalctl: --cursor support
62f21ec9 326
87a8baa3
LP
327* save coredump in Windows/Mozilla minidump format
328
329* support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
330
5ba081b0
LP
331* clean up session cgroups that remain after logout (think sshd), but eventually run empty
332
b3fa47e0
LP
333* support "systemctl stop foobar@.service" to stop all units matching a certain template
334
7f3e6257
LP
335* logind: allow showing logout dialog from system
336
337* document that %% can be used to write % in a string that is specifier extended
338
4cbd9ecf
LP
339* when an instanced service exits, remove its parent cgroup too if possible.
340
65c0cf71
LP
341* default to actual 32bit PIDs, via /proc/sys/kernel/pid_max
342
f957632b
KS
343* be able to specify a forced restart of service A where service B depends on, in case B
344 needs to be auto-respawned?
345
a2f5666d
LP
346* Something is wrong with symlink handling of "autovt@.service" in "systemctl list-unit-files"
347
ad740100
LP
348* when a bus name of a service disappears from the bus make sure to queue further activation requests
349
c821bd28
LP
350* something like ConditionExec= or ExecStartPre= without failure state
351
de6c78f8 352* tmpfiles: apply "x" on "D" too (see patch from William Douglas)
7d441ddb 353
14e639ae
LP
354* don't set $HOME in services unless requested
355
ff01d048
LP
356* hide PAM/TCPWrap options in fragment parser when compile time disabled
357
d3c7d7dd 358* when we automatically restart a service, ensure we restart its rdeps, too.
72b9ed82 359
1d6702e8
LP
360* allow Type=simple with PIDFile=
361 https://bugzilla.redhat.com/show_bug.cgi?id=723942
362
71092d70
LP
363* move PAM code into its own binary
364
365* warn if the user stops a service but not its associated socket
0a55b298 366
97f73ffb
LP
367* logind: spawn user@..service on login
368
85f248b2
LP
369* logind: non-local X11 server handling
370
1258097c
LP
371* implement Register= switch in .socket units to enable registration
372 in Avahi, RPC and other socket registration services.
373
a4c279f8
LP
374* make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
375
d3fc81bd
LP
376* readahead: use BTRFS_IOC_DEFRAG_RANGE instead of BTRFS_IOC_DEFRAG ioctl, with START_IO
377
378* readahead: check whether a btrfs volume includes ssd by checking mount flag "ssd"
379
7c697168 380* support sd_notify() style notification when reload begins (RELOADING=1), reload is finished (READY=1), and add ReloadSignal= then to use in combination
253ee27a 381
71092d70 382* support sd_notify() style notification when shutting down, to make auto-exit bus services work (STOPPING=1)
8d0e38a2 383
f28f1daf
LP
384* verify that the AF_UNIX sockets of a service in the fs still exist
385 when we start a service in order to avoid confusion when a user
386 assumes starting a service is enough to make it accessible
387
88a07670
LP
388* Make it possible to set the keymap independently from the font on
389 the kernel cmdline. Right now setting one resets also the other.
390
916abb21
LP
391* move nss-myhostname into systemd
392
71092d70 393* and a dbus call to generate target from current state
916abb21 394
b23de6af
LP
395* drop /.readahead on bigger upgrades with yum
396
21bdae12
LP
397* add support for /bin/mount -s
398
9534ce54
LP
399* GC unreferenced jobs (such as .device jobs)
400
68c7d001 401* write blog stories about:
68c7d001
LP
402 - enabling dbus services
403 - status update
7a2a0b90 404 - how to make changes to sysctl and sysfs attributes
253ee27a 405 - remote access
5d0fcd7c
LP
406 - how to pass throw-away units to systemd, or dynamically change properties of existing units
407 - how to integrate cgconfig and suchlike with systemd
acb14d31 408 - resource control in systemd
8bbabc44
LP
409 - inhibiting
410 - testing with Harald's awesome test kit
abdf7993 411 - restart
73090dc8 412
44143309 413* allow port=0 in .socket units
3d57c6ab 414
b9a2a36b
LP
415* move readahead files into /var, look for them with .path units
416
ba1a5515 417* teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
9408a2d2 418
71092d70 419* support systemd.mask= on the kernel command line.
3f7a8c4e 420
f9276855
LP
421* when key file cannot be found, read it from kbd in cryptsetup
422
260abb78
LP
423* reuse mkdtemp namespace dirs in /tmp?
424
260abb78 425* recreate systemd's D-Bus private socket file on SIGUSR2
2791a8f8 426
a8f11321
LP
427* Support --test based on current system state
428
21bdae12
LP
429* investigate whether the gnome pty helper should be moved into systemd, to provide cgroup support.
430
c32e0c40
LP
431* maybe introduce ExecRestartPre=
432
35f10fcc
LP
433* configurable jitter for timer events
434
cc9784c6
LP
435* timer events with system resume
436
5e8b2883
LP
437* timer events on calendar time:
438 maybe use this time syntax? http://ohse.de/uwe/uschedule/uschedule.html
71092d70 439
59fee421
LP
440* dot output for --test showing the 'initial transaction'
441
8c6db833 442* calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
8bf7fea5 443 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99ee5315dac6211e972fa3f23bcc9a0343ff58c4
351c7e74 444
129126f3 445* implicitly import "defaults" settings file into all types
773ba909 446
71092d70 447* writable cgroups dbus properties for live changes
75787bb7 448
0cdad5c0
LP
449* read config fragments for all units from /lib/systemd/system/foobar.service.d/ to override/extend specific settings
450
129126f3 451* port over to LISTEN_FDS/LISTEN_PID:
7d9e57d2
KS
452 - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
453 - cups HAVEPATCH
a625ac1a 454 - postfix, saslauthd
a625ac1a
LP
455 - apache/samba
456 - libvirtd (/var/run/libvirt/libvirt-sock-ro)
457 - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
a625ac1a
LP
458 - distccd
459
71092d70 460* fingerprint.target, wireless.target, gps.target, netdevice.target
246756ca 461
50f2a90d 462* io priority during initialization
8fe914ec 463
71092d70 464* systemctl list-jobs - show dependencies
20604ebc 465
20604ebc
LP
466* add systemctl switch to dump transaction without executing it
467
9534ce54
LP
468* drop cap bounding set in readahead and other services
469
2f8cd170 470External:
74fe1fe3 471
cc9784c6 472* dbus:
cc9784c6 473 - dbus --user
3377af3e 474 - natively watch for dbus-*.service symlinks (PENDING)
cc9784c6
LP
475 - allow specification of socket mode/umask when allocating DBusServer
476 - allow disabling of fd passing when connecting a AF_UNIX connection
3377af3e 477 - allow disabling of UID passing for AUTH EXTERNAL
b69d29ce 478 - always pass cred data along each message
cc9784c6 479
71092d70
LP
480* fix alsa mixer restore to not print error when no config is stored
481
7d9e57d2 482* gnome-shell python script/glxinfo/is-accelerated must die
f959c5e6 483
74fe1fe3
LP
484* make cryptsetup lower --iter-time
485
44143309 486* patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
06ae4bfe 487
69b1c674
KS
488* NTP: the kernel's 11-minutes-mode syncs the system time to the RTC, but only
489 in an ~30 minutes window. It does not adjust larger differences. Find a way
490 to tell the kernel, to always do a full time sync when the RTC is in UTC and
491 we are in 11-minutes-mode. When we trust the system time to NTP we also want
492 the RTC to sync up.
493
71092d70 494* kernel: add device_type = "fb", "fbcon" to class "graphics"
14bd37fe 495
129126f3 496Regularly:
874aa2cc 497
129126f3 498* look for close() vs. close_nointr() vs. close_nointr_nofail()
5021be21 499
129126f3 500* check for strerror(r) instead of strerror(-r)
5b6319dc
LP
501
502* Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
8c6db833 503
14212119 504* %m in printf() instead of strerror(errno);
444a79d3
LP
505
506* pahole
507
71092d70 508* set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
a3a3e5b6 509
4db17f29 510* use secure_getenv() instead of getenv() where appropriate
88fae6e0 511
9e5f3dbb 512Scheduled for removal or fixing:
a3a3e5b6 513
9e5f3dbb
LP
514* xxxOverridable dependencies (probably: fix)
515
516* support for early-boot SysV services (definitely: remove)