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