summaryrefslogblamecommitdiffstats
path: root/Documentation/TODO
blob: 6bc58f63aab37be2ea03a20438df3c8d09b7fa76 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
 
                                             
 






                                                                           




                                                      




                                                      



















                                                                                                         

     


                                                                                     
 
                                                                        

 
                                         
                  


                                                                   
                                                    



                                                                           





                                                                                  






                                                                                      




                                                                              






                                                                          

               
                                                                    
                      

                                                                
 

                       
 




                                                                               




                                                                                  
                                    
 








                                                                              



                                                                            






                                                                                   
 
 


     

                                                                                  






                                                                             
 






                                                             
 


            





                                                                              
                                                                                

                                                                                 
 
 

        
 


                                                                            
                                                           
 
                                                         
 

        
 


                                                                          


    
                                             

                                          




               
                                                              






                                                                                

 Note that items with (!) have high priority.

cal
---
   - 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

choom
-----
   - add new tool to set/get process OOM setting
     https://github.com/karelzak/util-linux/issues/609

column
------
   - add option to NOT ignore empty lines
     https://github.com/karelzak/util-linux/issues/593

script
------
   - (!) add terminal type ($TERM), columns and lines to the header line, something like:

		Script started on 2018-03-05 13:02:08+0100 [term="xterm-256color", lines=53, columns=190]

     see https://github.com/karelzak/util-linux/issues/583

   - think about optional "event" records in timing file to save information
     about non-data changes like signals (SIGWINCH, SIGSTOP, SIGCONT, etc.)
     in format:

             <time> 0 <name>[: var=data, ...]

     for example:

	     0.001296 256
	     0.001297   0 SIGWINCH: columns=50, lines=20
	     0.000010 275

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).

     See fopr example: https://github.com/karelzak/util-linux/issues/616


cleanup lib/path.c: [Karel Zak for v2.33]
------------------
   - always return rc from all functions
   - introduce control struct and use openat() from top-level path 
     (e.g. top-level is /proc, etc)
   - use lib/path.c as low-level API for lib/sysfs.c
   - now we duplicate code in functions like {path,sysfs}_read_u32, etc. 
   - it would be also nice to have a way how to redirect sysfs.c functions 
     to /sys snapshots (e.g. lsblk regression tests)
	

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

hwlock
------
 - 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)
-----------------------

 - 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

 - 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 to use it for simple tasks where no another operation is
   necessary.

 - allow to execute mount(2) in another namespace, something like:
	mount --namespace=/proc/$n/ns/mnt  /dev/sda2 /bar
   see https://bugzilla.redhat.com/show_bug.cgi?id=1199554 for more details.

 - add options to control fstab/mtab mount options usage, something like:

   --options-mode={ignore,append,prepend,replace}      MNT_OMODE_{IGNORE, ...}
   --options-source={fstab,mtab,disable}               MNT_OMODE_{FSTAB,MTAB,NOTAB}
   --options-source-force                              MNT_OMODE_FORCE

   (all this already supported by libmount)


partx
-----

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

docs
----

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

 - (!) add API documentation to libuuid

exit codes
----------

  - 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:
-----------

  - 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
--------

 - (!) don't use internally blkid_loff_t, rather use off_t, size_t, ssize_t,
       stdint.h types and so on...

 - add FSSIZE value  -- filesystem size (klibc requirement)

 - (!) 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

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.