]> git.ipfire.org Git - thirdparty/util-linux.git/blob - Documentation/TODO
docs: add Atari PT to the TODO list
[thirdparty/util-linux.git] / Documentation / TODO
1
2 Note that items with (!) have high priority.
3
4 build-sys
5 ---------
6 - for example
7 ./configure --disable-all-programs --enable-hwclock
8
9 enables only hwclock, unfortunately we have no --enable/disable for all programs.
10 It would be nice to have generic --enable-programs <list>, for example:
11
12 ./configure --disable-all-programs --enable-programs hwclock,lsblk
13
14 tests (!):
15 ---------
16
17 - add a new --enable-clang-asan to ./configure
18 - add a new --asan option to tests/run.sh
19 - rename tests/run.sh --memcheck to --valgrind
20 - rename tests/functions.sh:ts_valgrind() to ts_run()
21 - improve ts_run() to be sensitive to --asan or --valgrind (etc.)
22 - use export ASAN_OPTIONS='detect_leaks=0' by default
23 - add TS_ENABLE_MEMLEAK_CHECK=yes to tests where we want to check for
24 memory leaks
25
26 Note we don't want free-before-exit code in simple utils, so no all memory
27 leaks are relevant. We care about leaks in libs, deamons, etc.
28
29 and then we can use
30
31 $ ./configure --enable-clang-asan
32 $ cd tests
33 $ ./run.sh --asan
34
35 su/runuser
36 ----------
37 - (!) implement pty container for all su/runuser session (something like
38 script(1)) to separate user from the original terminal (see CVE-2016-2779)
39
40 - add functions strtime_short(), strtime_iso(), strtime_ctime(), ...
41
42 cleanup lib/path.c:
43 ------------------
44 - always return rc from all functions
45 - introduce control struct and use openat() from top-level path
46 (e.g. top-level is /proc, etc)
47 - use lib/path.c as low-level API for lib/sysfs.c
48 - now we duplicate code in functions like {path,sysfs}_read_u32, etc.
49 - it would be also nice to have a way how to redirect sysfs.c functions
50 to /sys snapshots (e.g. lsblk regression tests)
51
52
53 lscpu
54 -----
55 - read cpuid and uname information from file if --sysroot is specified, then
56 we can prepare regression tests completely independent on hw and architecture.
57
58 lsblk
59 -----
60 - currently it does not show mountpoint for all devices in btrfs RAID. It's because
61 /proc/#/mountinfo contains reference to the one device only. Maybe we can add some
62 btrfs specific code to provide a better output for FS based stacks. Not sure.
63 https://bugzilla.redhat.com/show_bug.cgi?id=1084453
64
65 cfdisk
66 ------
67 - (!) add auto-sort support (sort partitions automatically) and
68 --sort={auto,never,always} command line option. This feature should be
69 enabled by default for logical partitions if we created all container (extended
70 partition) in the current session.
71
72
73 agetty
74 -----
75 - support default issue (/etc/issue) output for agetty to make it agetty
76 usable on systems with empty /etc.
77
78 This change is little bit controversial, because now agetty prints nothing
79 by default and it's probably used by admins to hide information about the
80 system to unauthorized users. We already have --noissue to disable issue
81 output. The question is if admins use this option, "rm /etc/issue" is
82 probably easer than modify inittab (or systemd unit file).
83
84 Maybe we can implement it by --enable-agetty-default-issue compile option and
85 move the decision to downstream maintainers ;-)
86
87 nsenter(1)
88 ----------
89 - read the default UID and GID from the target process.
90 http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/9553/focus=9585
91
92 hwlock
93 ------
94 - use /var/lib/hwclock/drift to store hw-clock drift numbers.
95 - use /etc/adjtime as read-only for UTC/LOCAL information only
96 - the /var/lib/hwclock/drift should be implemented backwardly compatible,
97 it means use the file only if exists, otherwise follow /etc/adjtime
98
99 bash completion
100 ---------------
101 - Optional argument handling requires user to press backspace to get
102 argument completion.
103 - Comma separated value, e.g., --output 'value1,value2', are not
104 completed for users.
105
106 libmount (mount/umount)
107 -----------------------
108
109 - support CAP_SYS_ADMIN; for mount(2) syscall the CAP_SYS_ADMIN is good
110 enough. Unfortunately, mount(8) does more things like check for filesystem
111 type (but it's usually done by udev, so root perms are unnecessary), create
112 loop devices, write to /run/mount/utab or /etc/mtab, etc.
113
114 It would be nice to improve libmount to check for CAP_SYS_ADMIN if suid not
115 set and allow to use it for simple tasks where no another operation is
116 necessary.
117
118 - allow to execute mount(2) in another namespace, something like:
119 mount --namespace=/proc/$n/ns/mnt /dev/sda2 /bar
120 see https://bugzilla.redhat.com/show_bug.cgi?id=1199554 for more details.
121
122 - add options to control fstab/mtab mount options usage, something like:
123
124 --options-mode={ignore,append,prepend,replace} MNT_OMODE_{IGNORE, ...}
125 --options-source={fstab,mtab,disable} MNT_OMODE_{FSTAB,MTAB,NOTAB}
126 --options-source-force MNT_OMODE_FORCE
127
128 (all this already supported by libmount)
129
130
131 partx
132 -----
133
134 - support mapping by device-mapper if argv[0] is "kpartx" or --dm option is used.
135
136
137 docs
138 ----
139
140 - (!) use something better than gtk-doc for libmount and libblkid (doxyden?)
141
142 - (!) add API documentation to libuuid
143
144 exit codes
145 ----------
146
147 - we need coreutils-like exit codes for failed exec(). See:
148 https://www.spinics.net/lists/util-linux-ng/msg12776.html
149 and original attempt:
150 https://github.com/karelzak/util-linux/pull/311
151
152 login-utils:
153 -----------
154
155 - consolidate newgrp(1)
156 * we have "su --group/--supp-group" to switch between groups, newgrp(1) in
157 util-linux and shadow-utils (and sg(1) alias in shadow-utils)
158 * the unique functionality provided by newgpr(1) is support for group
159 passwords [/etc/gshadow] -- do we really need this functionality?
160 * maybe we can mark group-passwords as deprecated, and replace sg(1) and
161 newgpr(1) with su(1) code. The another way is to ask fro group password in
162 su --group too.
163 * note that shadow-utils newgpr(1) provides support for syslog and audit log.
164
165
166 libblkid
167 --------
168
169 - (!) don't use internally blkid_loff_t, rather use off_t, size_t, ssize_t,
170 stdint.h types and so on...
171
172 - add FSSIZE value -- filesystem size (klibc requirement)
173
174 - (!) add support for Atari PT
175 https://github.com/karelzak/util-linux/issues/517
176
177 - (!) add support for dasd PT (used for example on s390)
178
179 libfdisk
180 --------
181
182 - add support for Apple Partition Map (see libblkid/src/partitions/mac.c)
183 http://en.wikipedia.org/wiki/Apple_Partition_Map
184
185 misc
186 ----
187
188 - add mllockall() and SCHED_FIFO to hwclock,
189 see http://lkml.org/lkml/2008/10/12/132
190
191
192 ---------------
193 exotic requests
194 ---------------
195
196 - add SELinux security contexts support to the 'ipcs' utility
197 http://bugzilla.redhat.com/show_bug.cgi?id=225342
198
199 Would be great to list the current system IPC Objects with their respective
200 security labels (where allowed) with something like 'ipcs -Z' - following the
201 way other tools reports those.
202
203