build-sys -------- - we use something like AC_ARG_ENABLE(...., enable_foo=check) build_foo=yes if test "x$enable_foo" = xcheck; then if test "x$linux_os" = xno; then build_foo=no fi fi AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_foo" = xyes) for Linux-only utils in configure.ac. It would be nice to set all defaults for all $enable_ variables at begin of the configure script according to $linux_os. Something like: if test "x$linux_os" = xno enable_mount=no enable_libmount=no enable_lsblk=no fi then we can remove all "if test "x$enable_foo" = xcheck;" stuff from the rest of the configure script. - it would be nice to remove all "if BUILD_LIB{MOUNT,BLKID,UUID}" from the Makefiles (e.g. misc-utils/Makefile.am) and use BUILD_ only The configure.ac has to care about dependence between utils and librares and enable BUILD_. fsprobe ------- - remove the lib/fsprobe.c wrapper for libblkid used in mount and fsck. Use everywhere libblkid from util-linux only. - update ./configure script login-utils: ----------- - use err() and warn() macros rather than fprintf(stderr, ...) losetup ------- - don't use ioclts if sysfs supports loop attributes (since 2.6.37, block/loopN/loop/* files) - don't open loopdev in looplist_next(), check if /sys/block/loopN/loop exists and returns ll.name rather than file descriptor - add sysfs based version of show_loop() and use it for non-root users sysfs ----- - add lib/sysfs.c with functions that read block device attributes from /sys. For more details see devno.c from libblkid, lsblk.c and lomount.c. lib/tt.c -------- - allows to sort columns, for example sort lsblk(8) output by SIZE libblkid -------- - remove strerrr() from debug messages (use %m) to make BLKID_DEBUG= output thread-safe - add - suffix to test images for native-endian filesystems (e.g. swap) and add support for such functionality to tests/ts/blkid/low-probe - add FSSIZE value -- filesystem size (klibc requirement) - add support for dasd PT (used for example on s390) blkid(8) ------- - add something like "blkid --list-known" to list all supported filesystems/raids - add a new option (-r) that allows to print removable block devices that are missing in /proc/partitions, see blkid_probe_all_removable(). agetty: ------ - review code and make it more simple for normal console (see mingetty) - merge functionality from unmaintained mingetty package to agetty wipefs ------ - some filesystem (namely FAT) contains more magic strings, so if you erase one magic string the FS is still detectable by libblkid. We have to inform users that there is more valid magic string for the same FS. fdisk(s) -------- * sfdisk has to use rpmatch() for answers to y/n questions (e.g. "Are you satisfied with this? [ynq]") * sfdisk rounds to cylinders is -uM (megabyte units) is specified, this is pretty stupid feature. It has to round to sectors if -uS or -uM is specified. * Sun label support is completely useless for large disks, it uses number of cylinders from on-disk-label where the geometry is stored by int16 values. It seems better to completely ignore this stuff from the label and always use geometry + BLKGETSIZE64 from kernel. * use off_t instead "long long" * catch SIGINT (Ctrl-C) and return to main menu. From Red Hat bugzilla #545488: While using fdisk normally, if you accidentally pressed the wrong button (to start a sequence of questions for some operation, e.g. 'c' to create partition). The tool tries too hard to keep asking you for valid input. You can't provide a blank or invalid input to get it to break out of the current dialog sequence and get back to the main menu. * fdisk/* refactoring * add GPT support (probably implement libfdisk) misc ---- * switch_root: - move all mountpoints to the newroot (there are hardcoded /proc /sys and /dev paths now) - add --dont-move[=] options * use ngettext() for strings with plurals, for example /* include/nls.h */ #define P_(id, id_plural, n) ngettext(id, id_plural, n) printf(P_("%d used sector", "%d used sectors", sectors), sectors); * use something better than gtk-doc (doxyden?) * use TZ=UTC and LANG=en_US.UTF-8 for tests * add NLS and err.h stuff to schedutils (chrt.c, taskset.c) * add mllockall() and SCHED_FIFO to hwclock, see http://lkml.org/lkml/2008/10/12/132 * use rpmatch() for all Y/N questions * make chrt, taskset, ... threads aware. Currently these utils work with group leader (master thread) and don't propagate requested changes to the whole group of threads. It meas add a new option (e.g. -t): chrt # master thread only chrt -t # whole group of threads Note that we need to scan /proc and call ched_set{scheduler,affinity} syscalls for all individual threads. * umount by label: # mount LABEL=mylabel # umount LABEL=mylabel * mount -a -- reorder fstab entries by paths before mount (just idea only) * mount -a (just idea only) Date: Sun, 3 Jun 2007 18:04:24 +0300 (MET DST) From: Szabolcs Szakacsits In the past the right record order could be figured out easily by just checking out fstab (if one knew what to look for) but considering the fastly increasing number of user space file systems and their usage, with their path, library, etc dependencies, it's getting trickier and is a black magic for most users because they simply expect drives to be mounted independently of their order in fstab. One typical, wrongly edited fstab example is: /dev/hda2 / ext3 defaults 1 1 /dev/hda1 /mnt/windows ntfs-3g defaults 0 0 /dev/hda3 /usr ext3 defaults 0 0 The events: mount -> /sbin/mount.ntfs-3g -> -> resolves to /ntfs-3g via a symlink -> -> ntfs-3g requires at least /libfuse* There are many potential solutions. For example installing everything on the root file system which may be needed for successful mount. But this is not always feasible or practical since we could end up putting almost everything on the root file system in the end. Another idea is an improved mount strategy: do { try to mount all unmounted entries } while (not all mounted && at least one new was successfully mounted) * rewrite ipcs to use /proc/sys/kernel rather than unreliable syscalls (there are problems with 32bit userspace on 64bit kernel) * minix v3 From: Matthias Koenig Date: Tue, 25 Sep 2007 12:00:01 +0200 It seems that the kernel has support for minix fs v3 (though I have not tried it, just inspected some code when trying to find a mkfs.minix issue). It might be worth a thought implementing v3 support (though I am not really sure how much people us minix fs ;-) This might require some major code cleanup in mkfs.minix. * 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.