summaryrefslogtreecommitdiffstats
path: root/Documentation/TODO
blob: 3098076c919789a8be977aac179a1455d1ae92b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
 Note that items with (!) have high priority.

script (lib/pty-session.c)
--------------------------
  - (!) add #ifdefs and optional code for non-signalfd() systems


docs
----
  - use terminal hyperlinks (for example for --help)
    try on terminal: printf 'For more details see \e]8;;man:fdisk(8)\e\\fdisk(8)\e]8;;\e\\.\n'
    https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda

rev
---
  - support huge input lines (for example read input by small fixed buffer
    rather than try allocate all buffer for a whole line)
    see: https://github.com/karelzak/util-linux/issues/972

col
---
  - use unsigned sizes for columns and lines
  - check for limits to avoid segfaults
  - make it more robust
  https://github.com/karelzak/util-linux/issues/749

cal
---
   - support another --reforms, see for example freebsd version
     https://github.com/freebsd/freebsd/blob/master/usr.bin/ncal/ncal.c#L72

lscpu
-----
  - read cpuid and uname information from file if --sysroot is specified, then
    we can prepare regression tests completely independent on hw and architecture.

lsblk
-----
  - currently it does not show mountpoint for all devices in btrfs RAID. It's because
    /proc/#/mountinfo contains reference to the one device only. Maybe we can add some
    btrfs specific code to provide a better output for FS based stacks. Not sure.
    https://bugzilla.redhat.com/show_bug.cgi?id=1084453

nsenter(1)
----------
 - read the default UID and GID from the target process.
   http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/9553/focus=9585

hwclock
------
 - use /var/lib/hwclock/drift to store hw-clock drift numbers.
 - use /etc/adjtime as read-only for UTC/LOCAL information only
 - the /var/lib/hwclock/drift should be implemented backwardly compatible,
   it means use the file only if exists, otherwise follow /etc/adjtime

bash completion
---------------
- Optional argument handling requires user to press backspace to get
  argument completion.
- Comma separated value, e.g., --output 'value1,value2', are not
  completed for users.

libmount (mount/umount)
-----------------------

 - add --onlyonce to force mount(8) to check if mountpoint is already used. Now
   "already mounted" detection is used for --all only. The problem is if you
   call "mount <mountpoint>" more than once for in fstab defined tmpfs (or network
   filesystem etc.). In this case kernel does not return EBUSY, but a new instance
   of the FS is created. https://github.com/karelzak/util-linux/issues/448
   (... just idea, maybe wrong idea)

 - support CAP_SYS_ADMIN; for mount(2) syscall the CAP_SYS_ADMIN is good
   enough. Unfortunately, mount(8) does more things like check for filesystem
   type (but it's usually done by udev, so root perms are unnecessary), create
   loop devices, write to /run/mount/utab or /etc/mtab, etc.

   It would be nice to improve libmount to check for CAP_SYS_ADMIN if suid not
   set and allow using it for simple tasks where no another operation is
   necessary.

partx
-----

 - support mapping by device-mapper if argv[0] is "kpartx" or --dm option is used.


getopt
------
  It would be great if getopt could optionally ignore unknown options.
  Currently, it outputs -- for every option it doesn't recognize but leaving the
  option as it is could beneficial wrapper scripts which could then pass the
  options they don't recognize as they are to the command they are wrapping.
  https://github.com/karelzak/util-linux/issues/701

docs
----

 - (!) use something better than gtk-doc for libmount and libblkid (doxyden?)

 - (!) add API documentation to libuuid

 - (!) rewrite man pages to AsciiDoc and generate final man pages by Asciidoctor & Docbook

login-utils:
-----------

  - consolidate newgrp(1)
    * we have "su --group/--supp-group" to switch between groups, newgrp(1) in
      util-linux and shadow-utils (and sg(1) alias in shadow-utils)
    * the unique functionality provided by newgpr(1) is support for group
      passwords [/etc/gshadow] -- do we really need this functionality?
    * maybe we can mark group-passwords as deprecated, and replace sg(1) and
      newgpr(1) with su(1) code. The another way is to ask for group password in
      su --group too.
    * note that shadow-utils newgpr(1) provides support for syslog and audit log.


libblkid
--------

 - (!) add support for BitLocker Drive Encryption
   https://github.com/karelzak/util-linux/issues/617
   https://github.com/libyal/libbde/blob/master/documentation/BitLocker%20Drive%20Encryption%20(BDE)%20format.asciidoc

 - (!) add support for dasd PT (used for example on s390)

libfdisk
--------

 - add support for Apple Partition Map (see libblkid/src/partitions/mac.c)
   http://en.wikipedia.org/wiki/Apple_Partition_Map

 - add support for nested PT (e.g. hybrid MBR) to scripts
   * add "nested-label:" block to sfdisk --dump
   * add "nested-partitiontable" to sfdisk --JSON
   * support nested labels parsing from dump
   see https://github.com/karelzak/util-linux/issues/850

sfdisk
------

 - don't backup PT in interactive mode before write to the devices is requested,
   see https://github.com/karelzak/util-linux/issues/852

misc
----

 - add mllockall() and SCHED_FIFO to hwclock,
   see http://lkml.org/lkml/2008/10/12/132


---------------
exotic requests
---------------

 - add SELinux security contexts support to the 'ipcs' utility
   http://bugzilla.redhat.com/show_bug.cgi?id=225342

   Would be great to list the current system IPC Objects with their respective
   security labels (where allowed) with something like 'ipcs -Z' - following the
   way other tools reports those.