]> git.ipfire.org Git - thirdparty/util-linux.git/blame - Documentation/TODO
Merge branch 'rename-fix-noact-without-nooverwrite' of https://github.com/g-raud...
[thirdparty/util-linux.git] / Documentation / TODO
CommitLineData
0cbeee27 1
b1883029 2 Note that items with (!) have high priority.
0cbeee27 3
caa86834
KZ
4cal
5---
6 - add option to print calendar in vertical way
7 https://github.com/karelzak/util-linux/issues/604
8 - support another --reforms, see for example freebsd version
9 https://github.com/freebsd/freebsd/blob/master/usr.bin/ncal/ncal.c#L72
10
fdeee3fc
KZ
11choom
12-----
13 - add new tool to set/get process OOM setting
14 https://github.com/karelzak/util-linux/issues/609
15
e34dcfb6
KZ
16column
17------
18 - add option to NOT ignore empty lines
19 https://github.com/karelzak/util-linux/issues/593
20
dcb67393
KZ
21script
22------
23 - (!) add terminal type ($TERM), columns and lines to the header line, something like:
24
25 Script started on 2018-03-05 13:02:08+0100 [term="xterm-256color", lines=53, columns=190]
26
27 see https://github.com/karelzak/util-linux/issues/583
28
29 - think about optional "event" records in timing file to save information
30 about non-data changes like signals (SIGWINCH, SIGSTOP, SIGCONT, etc.)
31 in format:
32
33 <time> 0 <name>[: var=data, ...]
34
35 for example:
36
37 0.001296 256
38 0.001297 0 SIGWINCH: columns=50, lines=20
39 0.000010 275
40
56f4d6ce
KZ
41lsblk
42-----
43 The problem is NVMe-multipath driver where in /sys/.../slaves/ are nodes
44 that should be probably hidden for userspace. Note that kernel developers
45 promised to fix this issue in kernel *** so hold off from that for now***
46 [Mar 1, 2018].
47
48 Anyway, possible userspace solution is:
49
50 - verify that slave/holder nodes points to the real block devices
51 (/sys/dev/block/<maj:min> for the node exists), otherwise silently ignore
52 the slave/holder node -- see set_cxt().
53
54 - the same verification we necessary for nodes in /sys/block/<name>. It means
55 verify result from sysfs_devname_to_devno() in set_cxt().
56
57
58
7aa670f6 59cleanup lib/path.c: [Karel Zak for v2.33]
52ac7065 60------------------
00dbc498
KZ
61 - always return rc from all functions
62 - introduce control struct and use openat() from top-level path
63 (e.g. top-level is /proc, etc)
7aa670f6 64 - use lib/path.c as low-level API for lib/sysfs.c
00dbc498
KZ
65 - now we duplicate code in functions like {path,sysfs}_read_u32, etc.
66 - it would be also nice to have a way how to redirect sysfs.c functions
67 to /sys snapshots (e.g. lsblk regression tests)
68
3421709a
KZ
69
70lscpu
71-----
72 - read cpuid and uname information from file if --sysroot is specified, then
73 we can prepare regression tests completely independent on hw and architecture.
74
5b7be990
KZ
75lsblk
76-----
77 - currently it does not show mountpoint for all devices in btrfs RAID. It's because
78 /proc/#/mountinfo contains reference to the one device only. Maybe we can add some
79 btrfs specific code to provide a better output for FS based stacks. Not sure.
80 https://bugzilla.redhat.com/show_bug.cgi?id=1084453
81
426ee7cb
KZ
82nsenter(1)
83----------
84 - read the default UID and GID from the target process.
85 http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/9553/focus=9585
86
35bc7a2b
KZ
87hwlock
88------
89 - use /var/lib/hwclock/drift to store hw-clock drift numbers.
90 - use /etc/adjtime as read-only for UTC/LOCAL information only
91 - the /var/lib/hwclock/drift should be implemented backwardly compatible,
92 it means use the file only if exists, otherwise follow /etc/adjtime
93
b75b23b4
KZ
94bash completion
95---------------
20a51056 96- Optional argument handling requires user to press backspace to get
58c41e15 97 argument completion.
20a51056
SK
98- Comma separated value, e.g., --output 'value1,value2', are not
99 completed for users.
b75b23b4 100
b1883029
KZ
101libmount (mount/umount)
102-----------------------
01df6eeb 103
7c79c341
KZ
104 - remount all filesystems given their type, for example:
105 mount -a -t tmpfs -o remount
106 It should be probably enough to add remount_all() to mount(8) in way we
107 already have mount_all(). https://github.com/karelzak/util-linux/issues/589
108
25629819
KZ
109 - add --onlyonce to force mount(8) to check if mountpoint is already used. Now
110 "already mounted" detection is used for --all only. The problem is if you
111 call "mount <mountpoint>" more than once for in fstab defined tmpfs (or network
112 filesystem etc.). In this case kernel does not return EBUSY, but a new instance
113 of the FS is created. https://github.com/karelzak/util-linux/issues/448
7c79c341 114 (... just idea, maybe wrong idea)
25629819 115
3f30dedd
KZ
116 - support CAP_SYS_ADMIN; for mount(2) syscall the CAP_SYS_ADMIN is good
117 enough. Unfortunately, mount(8) does more things like check for filesystem
118 type (but it's usually done by udev, so root perms are unnecessary), create
119 loop devices, write to /run/mount/utab or /etc/mtab, etc.
120
121 It would be nice to improve libmount to check for CAP_SYS_ADMIN if suid not
122 set and allow to use it for simple tasks where no another operation is
123 necessary.
124
f19c6328
KZ
125 - allow to execute mount(2) in another namespace, something like:
126 mount --namespace=/proc/$n/ns/mnt /dev/sda2 /bar
127 see https://bugzilla.redhat.com/show_bug.cgi?id=1199554 for more details.
128
1340d433
KZ
129 - add options to control fstab/mtab mount options usage, something like:
130
131 --options-mode={ignore,append,prepend,replace} MNT_OMODE_{IGNORE, ...}
132 --options-source={fstab,mtab,disable} MNT_OMODE_{FSTAB,MTAB,NOTAB}
133 --options-source-force MNT_OMODE_FORCE
134
135 (all this already supported by libmount)
01df6eeb 136
6d4774b0 137
28297408
KZ
138partx
139-----
140
4231bffe
KZ
141 - support mapping by device-mapper if argv[0] is "kpartx" or --dm option is used.
142
b1883029
KZ
143
144docs
145----
146
147 - (!) use something better than gtk-doc for libmount and libblkid (doxyden?)
148
149 - (!) add API documentation to libuuid
28297408 150
ce87b20a
KZ
151exit codes
152----------
153
154 - we need coreutils-like exit codes for failed exec(). See:
155 https://www.spinics.net/lists/util-linux-ng/msg12776.html
156 and original attempt:
157 https://github.com/karelzak/util-linux/pull/311
4231bffe 158
a4f4cc75
KZ
159login-utils:
160-----------
161
b75b23b4
KZ
162 - consolidate newgrp(1)
163 * we have "su --group/--supp-group" to switch between groups, newgrp(1) in
164 util-linux and shadow-utils (and sg(1) alias in shadow-utils)
165 * the unique functionality provided by newgpr(1) is support for group
166 passwords [/etc/gshadow] -- do we really need this functionality?
167 * maybe we can mark group-passwords as deprecated, and replace sg(1) and
73afd3f8 168 newgpr(1) with su(1) code. The another way is to ask for group password in
b75b23b4
KZ
169 su --group too.
170 * note that shadow-utils newgpr(1) provides support for syslog and audit log.
a4f4cc75 171
9612a410 172
a24f0ade
KZ
173libblkid
174--------
5d5ae40b 175
c9f51c71
KZ
176 - (!) don't use internally blkid_loff_t, rather use off_t, size_t, ssize_t,
177 stdint.h types and so on...
178
28fed5d6 179 - add FSSIZE value -- filesystem size (klibc requirement)
a24f0ade 180
b1883029 181 - (!) add support for dasd PT (used for example on s390)
f2813fce 182
425ae8f5
KZ
183libfdisk
184--------
b116ef42 185
425ae8f5
KZ
186 - add support for Apple Partition Map (see libblkid/src/partitions/mac.c)
187 http://en.wikipedia.org/wiki/Apple_Partition_Map
188
a24f0ade
KZ
189misc
190----
191
b1883029 192 - add mllockall() and SCHED_FIFO to hwclock,
a24f0ade
KZ
193 see http://lkml.org/lkml/2008/10/12/132
194
19a9d0b7
KZ
195
196---------------
197exotic requests
198---------------
199
b1883029 200 - add SELinux security contexts support to the 'ipcs' utility
8da18ddb
KZ
201 http://bugzilla.redhat.com/show_bug.cgi?id=225342
202
203 Would be great to list the current system IPC Objects with their respective
204 security labels (where allowed) with something like 'ipcs -Z' - following the
205 way other tools reports those.
206
207