]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - Documentation/TODO
lib/pty-session: initialize timevals [-Werror=maybe-uninitialized]
[thirdparty/util-linux.git] / Documentation / TODO
index cda52592b5054ba32537ee1974d0a986bc57c0a5..d229dd329280e39558dd2bf0d5cff0041804a82a 100644 (file)
@@ -1,65 +1,74 @@
 
- Note that items with (!) have high priority.
+See also:
+       https://github.com/util-linux/util-linux/issues?q=is%3Aissue+is%3Aopen+label%3ATODO
 
-cal
+all
 ---
-   - add option to print calendar in vertical way
-     https://github.com/karelzak/util-linux/issues/604
-   - support another --reforms, see for example freebsd version
-     https://github.com/freebsd/freebsd/blob/master/usr.bin/ncal/ncal.c#L72
 
-script
-------
-   - think about optional "event" records in timing file to save information
-     about non-data changes like signals (SIGWINCH, SIGSTOP, SIGCONT, etc.)
-     in format:
+ - use gettext() for column names on output in libsmartcols based tools and
+   accept trantated as well as original names on command line (lsblk -o NAME,SIZE).
+   https://github.com/util-linux/util-linux/issues/1291
 
-             <time> 0 <name>[: var=data, ...]
+tests
+-----
+  - add MacOS to GitHub Actions (.github/workflows/cibuild.yml). Note, we have used
+    Mac in Travis-CI (see .travis.yml).
 
-     for example:
+  - add Coverity to GitHub Actions (see for example .github/workflows/coverity.yml
+    in systemd repo).
 
-            0.001296 256
-            0.001297   0 SIGWINCH: columns=50, lines=20
-            0.000010 275
+fstrim
+------
+  - "fstrim --fstab" uses root= from /proc/cmdline to get root FS when it's missing
+    in fstab file. This is fragile (due to missing root= or the root FS is not
+    accessible). The best seems to parse mountinfo and use mnt_table_get_root_fs()
+    as a fallback solution.  https://github.com/util-linux/util-linux/issues/1266.
 
-lsblk
------
-   - rewrite lsblk to read all devices tree to memory to make it more extendable. Now
-     it always keep in memory just one device (only final output is buffered by
-     libsmartcols, but this stuff are output strings, nothing else).
+script (lib/pty-session.c)
+--------------------------
+  - (!) add #ifdefs and optional code for non-signalfd() systems
 
-     See fopr example: https://github.com/karelzak/util-linux/issues/616
+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/util-linux/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/util-linux/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
 -----
+  - add "Boost/Turbo: true|false" based on /sys/devices/system/cpu/intel_pstate/no_turbo and
+    /sys/devices/system/cpu/cpufreq/boost
+
+  - add --freq output to visualise CPU use, see https://github.com/util-linux/util-linux/issues/1314
+
   - read cpuid and uname information from file if --sysroot is specified, then
     we can prepare regression tests completely independent on hw and architecture.
 
-lsblk
------
-  - re-write the way how lsblk internally holds info about devices. Now we
-    compose only output (by libsmartcols). It would be better to have in memory
-    complete tree of the devices and generate the output from this tree. It will
-    make code more readable and allow to generate output in more ways -- for
-    example for RAIDs (https://github.com/karelzak/util-linux/issues/616)
-
-  - 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
-
-hwlock
+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 
+   it means use the file only if exists, otherwise follow /etc/adjtime
+ - see topic/hwclock-drift-file branch
 
 bash completion
 ---------------
@@ -71,47 +80,47 @@ bash completion
 libmount (mount/umount)
 -----------------------
 
- - remount all filesystems given their type, for example:
-        mount -a -t tmpfs -o remount
-   It should be probably enough to add remount_all() to mount(8) in way we
-   already have mount_all().  https://github.com/karelzak/util-linux/issues/589
+ - mnt_context_get_excode() does not return error messages from /sbin/[u]mount.<type>
+   external helpers. It is disadvantages in same cases (non-terminal programs).
+   The solution is to use pipe(), keep output from helper in memory and return it later
+   by mnt_context_get_excode() (or mnt_context_get_helper_output(), etc.). This feature
+   should be optional and disabled by default.
+   see: https://github.com/util-linux/util-linux/issues/1208
 
  - 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
+   of the FS is created. https://github.com/util-linux/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 to use it for simple tasks where no another operation is
-   necessary.
+ - Extend mount(8) command line for mount flags modification without remount:
+   "mount modify --clear noexec --set nodev,private,ro /mnt"
+   This functionality should be implemented by mount_setattr() syscall.
 
 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/util-linux/util-linux/issues/701
 
 docs
 ----
 
- - (!) use something better than gtk-doc for libmount and libblkid (doxyden?)
+ - (!) use something better than gtk-doc for libmount and libblkid (doxygen?)
 
  - (!) add API documentation to libuuid
 
-exit codes
-----------
+ - Improve line breaks in man pages and review markup
 
-  - we need coreutils-like exit codes for failed exec(). See:
-    https://www.spinics.net/lists/util-linux-ng/msg12776.html
-    and original attempt:
-    https://github.com/karelzak/util-linux/pull/311
 
 login-utils:
 -----------
@@ -127,11 +136,28 @@ login-utils:
     * note that shadow-utils newgpr(1) provides support for syslog and audit log.
 
 
+libsmartcols / column -t
+------------------------
+  - add column --table-header-color
+  - add support for border of table
+    * extend 'struct libscols_symbols', use box-drawing chars UTF8/ASCII
+    * add scols_table_enable_border()
+
+
+column(1):
+  - add "--output-width unlimited" and no call cols_table_set_termwidth() and
+    cols_table_set_termforce() in this case. See https://github.com/util-linux/util-linux/issues/1618
+
+
 libblkid
 --------
 
- - (!) add support for BitLocker Drive Encryption 
-   https://github.com/karelzak/util-linux/issues/617
+ - extend ZFS proper to scan for more uberblocks if BLKID_SUBLKS_MAGIC flag is set.
+   This solution will make wipefs(8) more usable as ZFS is extremely variable with
+   additional root blocks locations. See  https://github.com/util-linux/util-linux/issues/1228
+
+ - (!) add support for BitLocker Drive Encryption
+   https://github.com/util-linux/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)
@@ -142,13 +168,18 @@ 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/util-linux/util-linux/issues/850
 
 misc
 ----
 
  - add mllockall() and SCHED_FIFO to hwclock,
    see http://lkml.org/lkml/2008/10/12/132
+
 
 ---------------
 exotic requests