]> git.ipfire.org Git - thirdparty/util-linux.git/blob - Documentation/TODO
Merge branch 'apple-silicon-parttypes' of https://github.com/WhyNotHugo/util-linux
[thirdparty/util-linux.git] / Documentation / TODO
1
2 See also:
3 https://github.com/util-linux/util-linux/issues?q=is%3Aissue+is%3Aopen+label%3ATODO
4
5 all
6 ---
7
8 - use gettext() for column names on output in libsmartcols based tools and
9 accept trantated as well as original names on command line (lsblk -o NAME,SIZE).
10 https://github.com/util-linux/util-linux/issues/1291
11
12 tests
13 -----
14 - add MacOS to GitHub Actions (.github/workflows/cibuild.yml). Note, we have used
15 Mac in Travis-CI (see .travis.yml).
16
17 - add Coverity to GitHub Actions (see for example .github/workflows/coverity.yml
18 in systemd repo).
19
20 agetty
21 ------
22 - follow LOGIN_PLAIN_PROMPT from /etc/login.defs as alternative to --nohostname
23
24 fstrim
25 ------
26 - "fstrim --fstab" uses root= from /proc/cmdline to get root FS when it's missing
27 in fstab file. This is fragile (due to missing root= or the root FS is not
28 accessible). The best seems to parse mountinfo and use mnt_table_get_root_fs()
29 as a fallback solution. https://github.com/util-linux/util-linux/issues/1266.
30
31 script (lib/pty-session.c)
32 --------------------------
33 - (!) add #ifdefs and optional code for non-signalfd() systems
34
35 docs
36 ----
37 - use terminal hyperlinks (for example for --help)
38 try on terminal: printf 'For more details see \e]8;;man:fdisk(8)\e\\fdisk(8)\e]8;;\e\\.\n'
39 https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
40
41 rev
42 ---
43 - support huge input lines (for example read input by small fixed buffer
44 rather than try allocate all buffer for a whole line)
45 see: https://github.com/util-linux/util-linux/issues/972
46
47 col
48 ---
49 - use unsigned sizes for columns and lines
50 - check for limits to avoid segfaults
51 - make it more robust
52 https://github.com/util-linux/util-linux/issues/749
53
54 cal
55 ---
56 - support another --reforms, see for example freebsd version
57 https://github.com/freebsd/freebsd/blob/master/usr.bin/ncal/ncal.c#L72
58
59 lscpu
60 -----
61 - add "Boost/Turbo: true|false" based on /sys/devices/system/cpu/intel_pstate/no_turbo and
62 /sys/devices/system/cpu/cpufreq/boost
63
64 - add --freq output to visualise CPU use, see https://github.com/util-linux/util-linux/issues/1314
65
66 - read cpuid and uname information from file if --sysroot is specified, then
67 we can prepare regression tests completely independent on hw and architecture.
68
69 nsenter(1)
70 ----------
71 - read the default UID and GID from the target process.
72 http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/9553/focus=9585
73
74 hwclock
75 ------
76 - use /var/lib/hwclock/drift to store hw-clock drift numbers.
77 - use /etc/adjtime as read-only for UTC/LOCAL information only
78 - the /var/lib/hwclock/drift should be implemented backwardly compatible,
79 it means use the file only if exists, otherwise follow /etc/adjtime
80 - see topic/hwclock-drift-file branch
81
82 bash completion
83 ---------------
84 - Optional argument handling requires user to press backspace to get
85 argument completion.
86 - Comma separated value, e.g., --output 'value1,value2', are not
87 completed for users.
88
89 libmount (mount/umount)
90 -----------------------
91
92 - mnt_context_get_excode() does not return error messages from /sbin/[u]mount.<type>
93 external helpers. It is disadvantages in same cases (non-terminal programs).
94 The solution is to use pipe(), keep output from helper in memory and return it later
95 by mnt_context_get_excode() (or mnt_context_get_helper_output(), etc.). This feature
96 should be optional and disabled by default.
97 see: https://github.com/util-linux/util-linux/issues/1208
98
99 - add --onlyonce to force mount(8) to check if mountpoint is already used. Now
100 "already mounted" detection is used for --all only. The problem is if you
101 call "mount <mountpoint>" more than once for in fstab defined tmpfs (or network
102 filesystem etc.). In this case kernel does not return EBUSY, but a new instance
103 of the FS is created. https://github.com/util-linux/util-linux/issues/448
104 (... just idea, maybe wrong idea)
105
106 - Extend mount(8) command line for mount flags modification without remount:
107 "mount modify --clear noexec --set nodev,private,ro /mnt"
108 This functionality should be implemented by mount_setattr() syscall.
109
110 partx
111 -----
112
113 - support mapping by device-mapper if argv[0] is "kpartx" or --dm option is used.
114
115
116 getopt
117 ------
118 It would be great if getopt could optionally ignore unknown options.
119 Currently, it outputs -- for every option it doesn't recognize but leaving the
120 option as it is could beneficial wrapper scripts which could then pass the
121 options they don't recognize as they are to the command they are wrapping.
122 https://github.com/util-linux/util-linux/issues/701
123
124 docs
125 ----
126
127 - (!) use something better than gtk-doc for libmount and libblkid (doxygen?)
128
129 - (!) add API documentation to libuuid
130
131 - Improve line breaks in man pages and review markup
132
133
134 login-utils:
135 -----------
136
137 - consolidate newgrp(1)
138 * we have "su --group/--supp-group" to switch between groups, newgrp(1) in
139 util-linux and shadow-utils (and sg(1) alias in shadow-utils)
140 * the unique functionality provided by newgpr(1) is support for group
141 passwords [/etc/gshadow] -- do we really need this functionality?
142 * maybe we can mark group-passwords as deprecated, and replace sg(1) and
143 newgpr(1) with su(1) code. The another way is to ask for group password in
144 su --group too.
145 * note that shadow-utils newgpr(1) provides support for syslog and audit log.
146
147
148 libsmartcols / column -t
149 ------------------------
150 - add column --table-header-color
151 - add support for border of table
152 * extend 'struct libscols_symbols', use box-drawing chars UTF8/ASCII
153 * add scols_table_enable_border()
154
155
156 column(1):
157 - add "--output-width unlimited" and no call cols_table_set_termwidth() and
158 cols_table_set_termforce() in this case. See https://github.com/util-linux/util-linux/issues/1618
159
160
161 libblkid
162 --------
163
164 - extend ZFS proper to scan for more uberblocks if BLKID_SUBLKS_MAGIC flag is set.
165 This solution will make wipefs(8) more usable as ZFS is extremely variable with
166 additional root blocks locations. See https://github.com/util-linux/util-linux/issues/1228
167
168 - (!) add support for BitLocker Drive Encryption
169 https://github.com/util-linux/util-linux/issues/617
170 https://github.com/libyal/libbde/blob/master/documentation/BitLocker%20Drive%20Encryption%20(BDE)%20format.asciidoc
171
172 - (!) add support for dasd PT (used for example on s390)
173
174 libfdisk
175 --------
176
177 - add support for Apple Partition Map (see libblkid/src/partitions/mac.c)
178 http://en.wikipedia.org/wiki/Apple_Partition_Map
179
180 - add support for nested PT (e.g. hybrid MBR) to scripts
181 * add "nested-label:" block to sfdisk --dump
182 * add "nested-partitiontable" to sfdisk --JSON
183 * support nested labels parsing from dump
184 see https://github.com/util-linux/util-linux/issues/850
185
186 misc
187 ----
188
189 - add mllockall() and SCHED_FIFO to hwclock,
190 see http://lkml.org/lkml/2008/10/12/132
191
192
193 ---------------
194 exotic requests
195 ---------------
196
197 - add SELinux security contexts support to the 'ipcs' utility
198 http://bugzilla.redhat.com/show_bug.cgi?id=225342
199
200 Would be great to list the current system IPC Objects with their respective
201 security labels (where allowed) with something like 'ipcs -Z' - following the
202 way other tools reports those.
203
204