
Util-linux-ng 2.15 Release Notes (05-May-2009)
==============================================

Release highlights
------------------

mkswap(8):
  - mkswap like many others mkfs-like utils ERASES THE FIRST BLOCKS on 
    the device to remove old on-disk filesystems. mkswap refuses to 
    erase the first block on a device with a disk label (SUN, BSD, ...)
    or on whole disk (e.g. /dev/sda).

  - DOES NOT SUPPORT v0 SWAP SPACE any more. The kernel has not
    supported v0 swap space format since 2.5.22. The new version v1 is 
    supported since 2.1.117.

swapon(8):
  - supports new command line option "-f/--fixpg" to reinitialize the
    swap space with a wrong pagesize. As swap format depends on the pagesize
    being used, it may happen that the pagesize of the swap space and the
    current pagesize differ.

login(1):
  - requires /etc/pam.d/remote when compiled with PAM support and
    executed with "-h <hostname>" option. The "-h" option is used by other
    servers (i.e., telnetd(8)) to pass the name of the remote host to login.

cal(1):
  - determines the first day of week from the locale.

libblkid, blkid(8) and findfs(8):
  The libblkid library has been moved from e2fsprogs to util-linux-ng. The 
  library has been extended and now includes:
  
    - low-level probing API that is useful for example for udev rules
      (cmdline: blkid -p -o udev <device>)

    - very high-level API that provides portable interface for LABELs and
      UUIDs evaluation on 2.4, 2.6 and udev-based system. It's recommended
      to use "blkid -L|-U" in your scripts rather than directly read 
      /dev/disk/by-* symlinks.

    - the old ABI and API is backwardly compatible with the current version
      from e2fsprogs.

  All utils (mount, swapon, fsck, ...) in the package is possible to link 
  against this new library, or the old version from e2fsprogs, or 
  libvolume_id from udev package.

  The default is still libblkid from e2fsprogs. The new library could be 
  enabled by "--with-fsprobe=builtin" configure option.

  The libvolume_id from udev and vol_id command is deprecated now.

fsck(8):
  - has been moved to from e2fsprogs to util-linux-ng.

dmesg(1)
  - supports new command line option "-r" to print the raw message buffer
    (i.e. don’t strip the log level prefixes).

flock(1):
  - allows lock directory

fsck.cramfs:
  - automatically detects the image endianness, and can work on images of 
    either endianness.

mkfs.cramfs:
  - now accepts a new optional parameter (-N) that allows creating 
    the cramfs image in either endianness.

renice(1):
  - supports new command line option "-n" for compatibility with POSIX

hwclock(8)
  - supports new command line option "--systz" to reset the System Time
    based on the current timezone. Since the system clock time is already
    set from the hardware clock by the kernel (when compiled with 
    CONFIG_RTC_HCTOSYS), there's no particular need to read the hardware
    clock again.

ionice(1):
  - supports new command line option "-t" option to ignore failure to set
    requested priority.  This might be of use in case something (selinux,
    old kernel, etc.) does not allow the requested scheduling priority 
    to be set.

  - the command line option "-p" handles multiple PIDs now.

losetup(8):
  - detaches more devices by "-d <loop> [<loop> ..]"

ipcmk(1):
  - this NEW COMMAND allows to create ad-hoc IPC resources.

lscpu(1):
  - this NEW COMMAND gathers CPU architecture information like number
    of CPUs, threads, cores, sock, NUMA nodes, information about CPU 
    caches, information about hypervisor and virtualization support, 
    ..etc. and prints it in human-readable or parse-able format.

namei(1):
  - supports new command line options --owners, --long and --vertical
    to print ls(1)-like output.


Stable maintenance releases between v2.14 and v2.15
---------------------------------------------------

util-linux-ng 2.14.1 [10-Aug-2008]

 * ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14.1-ReleaseNotes
   ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14.1-ChangeLog

util-linux-ng 2.14.2 [09-Feb-2009]

 * ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14.2-ReleaseNotes
   ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.14/v2.14.2-ChangeLog


ChangeLog between v2.14 and v2.15
---------------------------------

 For more details see ChangeLog files at:
 ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.15/

addpart:
   - 512-byte sectors in code, bytes in man-page  [Karel Zak]
agetty:
   - IUCLC and OLCUC are Linux extensions  [Aurelien Jarno]
   - check for termios.c_line struct member by autoconf  [Karel Zak]
   - sys/types.h and time.h are included more than once  [Karel Zak]
blkid:
   - Give a priority bonus to "leaf" devicemapper devices  [Theodore Ts'o]
   - LSI MegaRAID  [Karel Zak]
   - NVIDIA raid  [Karel Zak]
   - Optimize devicemapper support  [Theodore Ts'o]
   - Promise raid  [Karel Zak]
   - Refuse to create a device structure for a non-existent device  [Theodore Ts'o]
   - Unexport the private symbol blkid_devdirs  [Theodore Ts'o]
   - add  to reiser  [Karel Zak]
   - add -L -U options (evaluation API)  [root]
   - add -p and low-probe mode to blkid binary  [Karel Zak]
   - add Christoph's note about libdisk to TODO  [Karel Zak]
   - add DDF raid  [Karel Zak]
   - add DEBUG_LOWPROBE, cleanup a little debug stuff  [Karel Zak]
   - add GFS and GFS2  [Karel Zak]
   - add GFS2 UUID support  [Karel Zak]
   - add GFS2 reg. test  [Karel Zak]
   - add HFS and HFS+  [Karel Zak]
   - add HPFS  [Karel Zak]
   - add HTFS  [Karel Zak]
   - add ISW raid  [Karel Zak]
   - add JMicron RAID  [Karel Zak]
   - add LUKS support  [Karel Zak]
   - add LVM2 support and a fix _sprintf_uuid() bug  [Karel Zak]
   - add Linux RAID  [Karel Zak]
   - add Silicon Image Medlay RAID  [Karel Zak]
   - add TODO file  [Karel Zak]
   - add TODO hint about DM devnames in sysfs  [Karel Zak]
   - add TODO hint about blkid_parse_tag_string()  [Karel Zak]
   - add TODO note about blkid_evaluate_spec_to_buffer()  [Karel Zak]
   - add UDF support  [Karel Zak]
   - add UFS  [Karel Zak]
   - add VFAT support  [Karel Zak]
   - add VIA RAID  [Karel Zak]
   - add ZSF support  [Andreas Dilger]
   - add ZSF test  [Karel Zak]
   - add __attribute__ ((format))  [Karel Zak]
   - add a note to TODO list  [Karel Zak]
   - add adaptec raid  [Karel Zak]
   - add basic configure.ac stuff and blkid.pc  [Karel Zak]
   - add blkid_do_safeprobe()  [Karel Zak]
   - add blkid_evaluate_spec()  [Karel Zak]
   - add blkid_probe_get_sb() macro  [Karel Zak]
   - add btrfs support  [Karel Zak]
   - add cmdline interface for blkid_probe_filter_usage()  [Karel Zak]
   - add ddf raid regression test  [Karel Zak]
   - add ext{2,3,4,4devel} support  [Karel Zak]
   - add fallback to ext4 for 2.6.29+ kernels if ext2 is not present  [Theodore Ts'o]
   - add findfs(8)  [Karel Zak]
   - add highpoint{37x,45x} RAIDs  [Karel Zak]
   - add hpfs regression test  [Karel Zak]
   - add iso9600  [Karel Zak]
   - add jfs  [Karel Zak]
   - add low level probing API  [Karel Zak]
   - add lvm1  [Karel Zak]
   - add lvm2 reg.test  [Karel Zak]
   - add minix  [Karel Zak]
   - add missing blkidP.h to Makefile.am  [Karel Zak]
   - add missing hfs.c  [Karel Zak]
   - add netware (NSS)  [Karel Zak]
   - add netware regression test  [Karel Zak]
   - add new options to blkid.8 and help output  [Karel Zak]
   - add new requirements to TODO list  [Karel Zak]
   - add ocfs and oracleasm  [Karel Zak]
   - add ocfs2 version  [Karel Zak]
   - add proper copying info  [Karel Zak]
   - add reg.tests for HFS and HFS+  [Karel Zak]
   - add romfs  [Karel Zak]
   - add squashfs  [Karel Zak]
   - add support for /etc/blkid.conf file  [Karel Zak]
   - add sysv and xenix  [Karel Zak]
   - add tst_types.c to Makefile.am  [Karel Zak]
   - add udev ID_FS_* output to blkid binary  [Karel Zak]
   - add udev string encoding routines  [Karel Zak]
   - add uuid and version support to gfs2  [Karel Zak]
   - add version and probe FSInfo  [Karel Zak]
   - add version support to LVM2  [Karel Zak]
   - add vol_id call to blkid regression test  [Karel Zak]
   - add vxfs  [Karel Zak]
   - add xfs  [Karel Zak]
   - blkdev size fallback  [Karel Zak]
   - blkid.static make target  [Karel Zak]
   - blkid_evaluate_spec() shouldn't ignore $BLKID_FILE  [Karel Zak]
   - check calloc() return value  [Karel Zak]
   - check idinfo[] index  [Karel Zak]
   - clean up man pages  [Karel Zak]
   - cleanup _LOGPROBE debug messages  [Karel Zak]
   - cleanup starts of probing files  [Karel Zak]
   - compile TEST_PROGRAMs  [Karel Zak]
   - correctly initialize magics[] arrays  [Karel Zak]
   - create basic directories  [Karel Zak]
   - don't dereference NULL upon slashless module dependency line  [Jim Meyering]
   - fix ..._strncpy_uuid  [Karel Zak]
   - fix a syntax nit  [Karel Zak]
   - fix blkid_do_probe()  [Karel Zak]
   - fix blkid_probe_sprintf_version() usage  [Karel Zak]
   - fix blkid_safe_string()  [Karel Zak]
   - fix exit codes in blkid(8)  [Scott James Remnant]
   - fix ext2 SEC_TYPE  [Karel Zak]
   - fix file descriptor leak when checking for a module  [Karel Zak]
   - fix gcc warning in blkid_get_cache_filename()  [Karel Zak]
   - fix hedeader in ntfs.c  [Karel Zak]
   - fix highpoint37x offset  [Karel Zak]
   - fix low-probe mode return codes  [Karel Zak]
   - fix non-udev low-probe mode output  [Karel Zak]
   - fix ocfs2 detection  [Karel Zak]
   - fix typo (syntax error)  [Karel Zak]
   - fix udev output  [Karel Zak]
   - fix xfs label  [Karel Zak]
   - hfs - do not set UUID for emtpy finder info  [Kay Sievers]
   - hfs - use proper native UUID format  [Kay Sievers]
   - improve ddf detection  [Karel Zak]
   - linux_raid - fix logic for volumes with size == 0  [Karel Zak]
   - merge libblkid code from e2fsprogs/lib/blkid  [Karel Zak]
   - minor changes to library build system  [Karel Zak]
   - netware SB has to be packed  [Karel Zak]
   - optimize for string UUIDs  [Karel Zak]
   - re-order list of filesystems  [Karel Zak]
   - recognize ext3 with test_fs set as ext3  [Eric Sandeen]
   - recognize ext4(dev) without journal  [Eric Sandeen]
   - refresh TODO file  [Karel Zak]
   - remove blkid_types.h  [Karel Zak]
   - remove unnecessary debug message  [Karel Zak]
   - remove unnecessary ifdef __cplusplus  [Karel Zak]
   - remove unused stuff from Makefile  [Karel Zak]
   - remove useless if-before-free tests  [Jim Meyering]
   - remove whole-disk entries from cache when partitions are found  [Eric Sandeen]
   - rename blkid_debug_init to blkid_init_debug  [Karel Zak]
   - rename blkid_evaluate_spec to blkid_evaluate_tag  [Karel Zak]
   - set size for non-blkdevs, add blkid_probe_strcpy_uuid()  [Karel Zak]
   - split SONAME and LIBBLKID_VERSION  [Karel Zak]
   - start to use ABI versioning  [Karel Zak]
   - support detection of multiple signatures  [Karel Zak]
   - support via raid version 2  [Sven Jost]
   - update TODO  [Karel Zak]
   - update gitignore  [Karel Zak]
   - use "char **" rather than "unsigned char **"  [Karel Zak]
   - use /dev/mapper/<name> rather than /dev/dm-<N>  [Karel Zak]
   - use /sys/block/dm-<N>/dm/name  [Karel Zak]
   - use Requires.private and fix the include directory  [Karel Zak]
   - use blkid_probe_strcpy_uuid() for luks  [Karel Zak]
   - use posix uint32_t in ocfs superblock  [Karel Zak]
   - use posix uintXX_t in lvm code  [Karel Zak]
   - use sizeof() for hfs uuid  [Karel Zak]
   - vfat - fix declaration  [Kay Sievers]
blkis:
   - fix detection of ext4dev as ext4  [Eric Sandeen]
blockdev:
   - add note that the StartSec is in 512-byte sectors  [Karel Zak]
   - fix possible buffer overflow  [Karel Zak]
build-sys:
   - add $usrlibexecdir and fix paths for [/usr]/lib64  [Karel Zak]
   - add --disable-mount  [Alon Bar-Lev]
   - add --with=fsprobe=builtin  [Karel Zak]
   - add -luuid to BLKID_LIBS  [Karel Zak]
   - add fsck binary to .gitignore  [Karel Zak]
   - add missing AC_C_BIGENDIAN  [Karel Zak]
   - add missing files to include/Makefile.am  [Karel Zak]
   - add temporary libtool *.m4 stuff  [Karel Zak]
   - cleanup --with-fsprobe help string  [Karel Zak]
   - cleanup sys-utils/Makefile.am  [Karel Zak]
   - define libdir  [Karel Zak]
   - fix bugs detected by "make distcheck"  [Karel Zak]
   - libtoolize by libtool-2  [Karel Zak]
   - libtoolize mount/Makefile.am  [Karel Zak]
   - move pivot_root(8) to sys-utils  [Karel Zak]
   - refresh generated libtool-2 stuff  [Karel Zak]
   - release++ (v2.15-rc1)  [Karel Zak]
   - release++ (v2.15-rc2)  [Karel Zak]
   - remove use of devmapper library  [Karel Zak]
   - tgets is not in ncurses but in tinfo  [Arkadiusz Miśkiewicz]
   - use pkg-config for blkid and volume_id  [Karel Zak]
cal:
   - determine the first day of week from the locale  [Pádraig Brady]
   - remove gcc-ism from nl_langinfo() call  [Karel Zak]
cfdisk:
   - accept yes/no as fallback  [Matthias Koenig]
   - fix "cannot seek on disk drive" bug  [Karel Zak]
chfn:
   - several strings without gettext calls  [Karel Zak]
chrt:
   - add NLS support, clean error messages and return codes  [Karel Zak]
   - add a comment about non POSIX 1003.1b attributes in chrt.1  [Aurelien Jarno]
   - output buglet when reporting scheduling class  [Karel Zak]
   - support CFS SCHED_IDLE priority and document it  [Martin Steigerwald]
disk-utils:
   - clean up code, use blkdev_* functions  [Samuel Thibault]
   - include fcntl.h directly (mkfs.cramfs, raw)  [maximilian attems]
   - s/MOUNTED/_PATH_MOUNTED/  [maximilian attems]
dmesg:
   - Add -r (raw) option.  [Adam Jackson]
   - nuke old glibc 5 support  [maximilian attems]
docs:
   - TODO: add request to use nl_langinfo()  [Karel Zak]
   - TODO update  [Karel Zak]
   - add a note about /proc/sys/kernel/random/uuid  [Karel Zak]
   - add a note about kpartx to TODO  [Karel Zak]
   - add entry about /proc/partitions parsing  [Karel Zak]
   - add feature-requests from RH bugzilla to TODO list  [Karel Zak]
   - add suggestion about TZ=UTC to TODO file  [Karel Zak]
   - fix typo, cal(8) --> cal(1)  [Karel Zak]
   - update AUTHORS file  [Karel Zak]
   - update TODO list  [Karel Zak]
   - update v2.15 ReleaseNotes  [Karel Zak]
elvtune:
   - add NLS support  [Pedro Ribeiro]
fdisk:
   - (and partx) remove BLKGETLASTSECT  [Karel Zak]
   - add 0xaf HFS / HFS partition type  [Karel Zak]
   - add some missing includes  [Matthias Koenig]
   - cannot create partition with starting beyond 1 TB  [Karel Zak]
   - cleanup _PATH_DEV_* macros  [Karel Zak]
   - doesn't handle large (4KiB) sectors properly  [Eric Sandeen]
   - don't check for GPT when asked for disk size only  [Karel Zak]
   - don't use get_linux_version() for non-linux  [Samuel Thibault]
   - exit(3) needs stdlib.h include  [maximilian attems]
   - fix man page typo  [Karel Zak]
   - fix max. ptname  [Karel Zak]
   - non-linux support (BLK* and HDIO_*)  [Samuel Thibault]
   - read /proc/partitions in more robust way  [Karel Zak]
   - remove obsolete information from man page  [Karel Zak]
   - remove unnecessary gettext call  [Karel Zak]
   - rename ENABLE_CMDTAGQ macro  [Karel Zak]
   - round reported sizes rather than truncate  [Karel Zak]
   - several strings without gettext calls  [Pedro Ribeiro]
   - suggest partprobe(8) and kpartx(8) when BLKRRPART failed  [Vincent Deffontaines, Karel Zak]
   - support "-b 4096" option  [Karel Zak]
   - support +cylinder notation  [Karel Zak]
   - use real sector size in verify() and warn_cylinders()  [Karel Zak]
   - warn users about 2.2TB dos partition limit  [Karel Zak]
flock:
   - Allow lock directory  [Alexey Gladkov]
   - add NLS support, remove tailing white-spaces  [Karel Zak]
   - fix printf format error in usage()  [Karel Zak]
   - segfaults when file name is not given  [Karel Zak]
fsck:
   - cosmetic changes (NLS, paths, ...)  [Karel Zak]
   - link with generic fsprobe wrapper  [Karel Zak]
   - move fsck from e2fsprogs to util-linux-ng  [Karel Zak]
   - remove  from warning message  [Karel Zak]
   - remove useless if-before-free tests  [Karel Zak]
fsck.cramfs:
   - add NLS support  [Pedro Ribeiro]
   - fix compiler warning  [Karel Zak]
   - segfault with INCLUDE_FS_TESTS and no -x option  [Karel Zak]
fsck.minix:
   - add regression test  [Karel Zak]
getopt:
   - remove unnecessary ifdefs  [Karel Zak]
   - remove useless if-before-free tests  [Karel Zak]
hwclock:
   - add --systz option to set system clock from itself  [Scott James Remnant]
   - always reads hardware clock  [Karel Zak]
   - cleanup help output and man page  [Karel Zak]
   - clock.h is included more than once  [Karel Zak]
   - delay loop in set_hardware_clock_exact  [Kalev Soikonen]
   - don't open /dev/rtc repeatedly  [Karel Zak]
   - omit warning about drift if --noadjfile given  [Matthias Koenig]
   - read_hardware_clock_rtc() need to return error codes  [Karel Zak]
   - remove "cli" and "sti" from i386 CMOS code  [Karel Zak]
   - remove x86_64-specific bogon  [David Brownell]
   - several strings without gettext calls  [Pedro Ribeiro]
   - unshadow a diagnostic printf  [Kalev Soikonen]
   - use carefully synchronize_to_clock_tick() return codes  [Karel Zak]
   - use time limit for synchronization busy wait  [Karel Zak]
include:
   - add missing files to Makefile.am  [Karel Zak]
   - bitops - explicitly include endian.h  [Karel Zak]
   - move swapheader.h to include  [Matthias Koenig]
   - swapheader.h is missing in Makefile.am  [Karel Zak]
   - use __BYTE_ORDER rather than AC specific WORDS_BIGENDIAN  [Karel Zak]
ionice:
   - Extend the man page to explain the "none" class and cpu-nice inheritance  [Jakob Unterwurzacher]
   - a little cleanup of "none" description  [Karel Zak]
   - add -t option  [Lubomir Kundrak]
   - add strtol() checks, cleanup usage text and man page  [Karel Zak]
   - change Jens Axboe's email  [Karel Zak]
   - cleanup error messages, add NLS support  [Karel Zak]
   - cleanup man page  [Karel Zak]
   - fix typo in manpage  [Karel Zak]
   - let -p handle multiple PIDs  [Stephan Maka]
ipcmk:
   - add NLS support  [Karel Zak]
   - fix error codes and error messages  [Karel Zak]
   - new command  [Hayden James]
ipcs:
   - adjust some field positions and widths for correct alignment  [Benno Schulenberg]
   - fix exit codes, remove tailing white-spaces  [Karel Zak]
   - ungettextize the spacing of the table headers  [Benno Schulenberg]
ldattach:
   - don't compile for non-linux systems  [Samuel Thibault]
lib:
   - add __BYTE_ORDER to md5.c  [Karel Zak]
   - add is_whole_disk() from fdisk code  [Karel Zak]
   - add pttype.c for PT types detection  [Karel Zak]
   - add test_ismounted for regression test  [Karel Zak]
   - blkdev.c clean up, non-linux support  [Samuel Thibault]
   - do not include <linux/fd.h> in ismounted.c  [Aurelien Jarno]
   - fix fsprobe wrapper (const char * is nonsense)  [Karel Zak]
   - fsprobe - fix gcc warning  [Karel Zak]
   - gcc warning in fix fsprobe  [Karel Zak]
   - make open_device() optional in fsprobe.c  [Karel Zak]
   - pttype  add BSD subpartitions support  [Karel Zak]
   - pttype  fix DOS detection  [Karel Zak]
   - pttype - extend the API to work with file descriptors  [Karel Zak]
   - wholedisk - extend API, add test program  [Karel Zak]
   - pttype - fix typo  [Karel Zak]
logger:
   - several strings without gettext calls  [Pedro Ribeiro]
login:
   - cleanup includes  [Karel Zak]
   - fix compiler warning (int32 time() arg)  [Karel Zak]
   - fix warning "dereferencing type-punned pointer will break strict-aliasing rules"  [Karel Zak]
   - remove "switching users" nonsense from man page  [Karel Zak]
   - use "remote" as a PAM service name for "login -h"  [Karel Zak]
   - use open(2) rather then access(2) for $HOME/.hushlogin  [Karel Zak]
login-utils:
   - several strings without gettext calls  [Pedro Ribeiro]
losetup:
   - add warning about read-only mode  [Karel Zak]
   - clean up code around LO_FLAGS_AUTOCLEAR  [Karel Zak]
   - cleanup man page  [Karel Zak]
   - detach more devices by "-d <loop> [<loop> ..]"  [Karel Zak]
   - looplist_* refactoring, remove scandir()  [Karel Zak]
   - missing EBUSY error hint message  [Karel Zak]
   - mount endless loop hang  [Karel Zak]
   - remove dependence on minor numbers  [Karel Zak]
   - several strings without gettext strings  [Pedro Ribeiro]
   - try to set up loop readonly if EACCES  [Matthias Koenig]
lscpu:
   - --sysroot option and stable cache output  [Cai Qian]
   - add Hypervisor detection  [Karel Zak, Ky Srinivasan]
   - new command  [Cai Qian, Karel Zak]
   - regression tests  [Cai Qian]
   - return EXIT_SUCCESS at the end  [Matthias Koenig]
misc-utils:
   - write include signal.h directly  [maximilian attems]
mkfs.cramfs:
   - add endianness support to cramfs tools  [Roy Peled]
   - lower memory requirements for layouts with duplicate files  [Roy Peled]
   - several strings without gettext calls  [Pedro Ribeiro]
mkfs.minix:
   - (and fsck) rename bitops.h  [Karel Zak]
   - add regression test  [Karel Zak]
   - fix size detection  [Matthias Koenig]
   - remove local implementation of {set,clr}bit  [Karel Zak]
mkswap:
   - clean up man page  [Karel Zak]
   - handle 2^32 pages  [Hugh Dickins]
   - non-linux support  [Samuel Thibault]
   - remove v0 swap space support  [Karel Zak]
   - zap bootbits  [Karel Zak]
more:
   - don't use a.out.h  [Mike Frysinger]
   - minor fixes to magic()  [James Youngman]
mount:
   - Add strictatime support  [Matthew Garrett]
   - add docs about utf8=0 for vfat  [Karel Zak]
   - add i_version support  [Karel Zak]
   - add info about /proc/mounts to mount.1  [Karel Zak]
   - add info about semantics of read-only mount to mount.8  [Karel Zak]
   - add info about tz=UTC option for FAT to mount.8  [Karel Zak]
   - add norealtime to mount.8  [Karel Zak]
   - add rootcontext= SELinux mount option  [Karel Zak]
   - add shortoptions for bind, move and rbind  [maximilian attems]
   - clean up SPEC canonicalization  [Karel Zak]
   - cleans up mount(8) troff markup  [Sam Varshavchik]
   - create separate section for fs-independent options in mount.8  [Karel Zak]
   - document newinstance and ptmxmode options to devpts  [Sukadev Bhattiprolu]
   - finalize support of quoted LABELs/UUIDs  [Karel Zak]
   - fix gcc warning (variable used uninitialized)  [Karel Zak]
   - fix mount_static_LDADD  [Karel Zak]
   - fix typo  [Guan Xin]
   - fix typo  [Karel Zak]
   - fix typo in volume_id code  [Karel Zak]
   - generic blkid/volume_id wrapper, use blkid_evaluate_*  [Karel Zak]
   - inform about UID and eUID when verbose > 2  [Karel Zak]
   - make file_t SELinux warning optional and shorter  [Karel Zak]
   - move realpath.c code to lib/  [Karel Zak]
   - mtab created multiple times with -a option  [Karel Zak]
   - non-setuid (POSIX file capabilities) support  [Karel Zak]
   - remove link to namesys.com  [Karel Zak]
   - remove spurious newline from mount.8  [Mike Frysinger]
   - remove useless if-before-free tests  [Karel Zak]
   - reorder list of options in mount.8  [Karel Zak]
   - retry on ENOMEDIUM  [Matthias Koenig]
   - s/MOUNTED/_PATH_MOUNTED/  [maximilian attems]
   - suggest to use blockdev --setro rather than losetup  [Karel Zak]
   - sundries.h add klibc support  [maximilian attems]
   - sync FAT info in mount.8 with Documentation/filesystems/vfat.txt  [Karel Zak]
   - sync tmpfs info in mount.8 with Documentation/filesystems/tmpfs.txt  [Karel Zak]
   - use subsections in mount.8 DESCRIPTION  [Karel Zak]
   - warn on "file_t" selinux context  [Karel Zak]
namei:
   - add --owners and --long options  [Karel Zak]
   - add --vertical option  [Karel Zak]
   - add missing options to namei.1  [Karel Zak]
   - don't duplicate '/' directory  [Karel Zak]
   - fix buffer overflow  [Karel Zak]
   - new re-written version  [Karel Zak]
partx:
   - convert hard sector size to 512-byte sectors  [Karel Zak]
   - don't duplicate lib/blkdev.c code  [Karel Zak]
   - don't redeclare daddr_t  [maximilian attems]
   - use ioctls from lib/blkdev.c  [Karel Zak]
pg:
   - add gettext call for the help string  [Karel Zak]
   - several strings without gettext calls  [Pedro Ribeiro]
pivot_root:
   - clean up  [Karel Zak]
po:
   - add zh_CN.po (from translationproject.org)  [Ray Wang]
   - merge changes  [Karel Zak]
   - rewrite update-potfiles script  [Karel Zak]
   - update POTFILES.in  [Karel Zak]
   - update cs.po (from translationproject.org)  [Petr Pisar]
   - update fi.po (from translationproject.org)  [Lauri Nurmi]
   - update fr.po (from translationproject.org)  [Nicolas Provost]
   - update id.po (from translationproject.org)  [Arif E. Nugroho]
   - update ja.po (from translationproject.org)  [Makoto Kato]
   - update list of .c files  [Karel Zak]
   - update nl.po (from translationproject.org)  [Benno Schulenberg]
   - update vi.po (from translationproject.org)  [Clytie Siddall]
raw:
   - add NLS support  [Pedro Ribeiro]
   - default to /dev/raw/rawctl  [Karel Zak]
rdev:
   - cleanup includes  [Karel Zak]
readprofile:
   - several strings without gettext calls  [Pedro Ribeiro]
renice:
   - add -n option for compatibility with POSIX  [Karel Zak]
rtcwake:
   - add mising .RE to the man page  [Karel Zak]
   - cleanup return codes  [Karel Zak]
   - explain supported modes in rtcwake.8  [Karel Zak]
   - prefer RTC_WKALM_SET over RTC_ALM_SET  [Gabriel Burt]
   - support not suspending  [Marco d'Itri]
script:
   - don't flush input when starting script  [Andrew McGill]
scriptreplay:
   - new implementation is out-of-sync  [Karel Zak]
selinux:
   - is_selinux_enabled() returns 0, 1 and -1  [Karel Zak]
setterm:
   - fix -blank man page  [Karel Zak]
sfdisk:
   - fix Compilation Error  [CAI Qian]
   - fix possible buffer overflow  [Karel Zak]
   - print version should end with a newline  [Denis ChengRq]
simmpleinit:
   - fix gcc warning (buffer size in read())  [Karel Zak]
simpleinit:
   - cleanup gettext calls, use snprintf()  [Karel Zak]
swapon:
   - -a has to complain, fix leaks  [Karel Zak]
   - add -f/--fixpgsz option  [Karel Zak]
   - add error messages for lseek and write  [Karel Zak]
   - add generic swap_get_header()  [Karel Zak]
   - add swap format detection and pagesize check  [Matthias Koenig, Olaf Hering]
   - cleanup man page  [Karel Zak]
   - do_swapon() refactoring (move stat() checks)  [Karel Zak]
   - do_swapon() refactoring (split into two functions)  [Karel Zak]
   - fix typo s/warn/warnx/  [Karel Zak]
   - fix wording in man page  [Karel Zak]
   - rewrite SWSUSPEND signature rather than exec mkswap  [Karel Zak]
   - simplify spec to devname conversion  [Karel Zak]
   - use err.h stuff  [Karel Zak]
tailf:
   - unistd.h is included more than once  [Karel Zak]
tests:
   - add "byte-order" to helpers/test_sysinfo  [Karel Zak]
   - add ./run.sh <component>  [Karel Zak]
   - add MD5 regression test  [Karel Zak]
   - add fsck ismounted reg.test  [Karel Zak]
   - add libblkid regression tests (images from e2fsprogs)  [Karel Zak]
   - add lscpu(1) test for fullvirt. Xen x86_64  [Karel Zak]
   - add lscpu(1) test for paravirt. Xen i386  [Karel Zak]
   - add md5 regression test  [Karel Zak]
   - add mk-lscpu-input.sh  [Karel Zak]
   - add support for subdirs to basic test functions  [Karel Zak]
   - add support for subtests  [Karel Zak]
   - add swabN() regression test  [Karel Zak]
   - check also for /dev/loop/X  [Karel Zak]
   - chmod -x ts/lscpu/mk-input.sh  [Karel Zak]
   - clean up the testing scripts  [Américo Wang]
   - cleanup lscpu reg.tests  [Karel Zak]
   - cleanup ts/bitops  [Karel Zak]
   - cleanup ts/cal scripts  [Karel Zak]
   - cleanup ts/col scripts  [Karel Zak]
   - cleanup ts/cramfs/fsck-endianness  [Karel Zak]
   - cleanup ts/cramfs/mkfs-endianness  [Karel Zak]
   - cleanup ts/hwclock  [Karel Zak]
   - cleanup ts/ipcs  [Karel Zak]
   - cleanup ts/login  [Karel Zak]
   - cleanup ts/look  [Karel Zak]
   - cleanup ts/md5  [Karel Zak]
   - cleanup ts/minix  [Karel Zak]
   - cleanup ts/mount  [Karel Zak]
   - cleanup ts/namei  [Karel Zak]
   - cleanup ts/paths  [Karel Zak]
   - cleanup ts/script  [Karel Zak]
   - cleanup ts/swapon  [Karel Zak]
   - create expected/$(component)/$(testname)  [Karel Zak]
   - create subdirs for test scripts  [Karel Zak]
   - detect libvolume_id when mount(8) is compiled  [Karel Zak]
   - disable blkid tests when blkid(8) is not compiled  [Karel Zak]
   - disable suid mount test  [Karel Zak]
   - fix -regex in run.sh  [Karel Zak]
   - fix TS_* paths  [Karel Zak]
   - fix file name is too long (max 99) - gtar  [Karel Zak]
   - fix output string  [Karel Zak]
   - fix the final message for subtests  [Karel Zak]
   - fix typo in low-probe test  [Karel Zak]
   - fix typo in lscpu test  [Karel Zak]
   - move some generic stuff from ts_init() to a new ts_init_env()  [Karel Zak]
   - refresh Makefile.am (add missing lscpu tests)  [Karel Zak]
   - refresh and cleanup cramfs/mkfs  [root]
   - refresh cal(1) expected outputs  [Karel Zak]
   - refresh expected mount(8) outputs  [Karel Zak]
   - refresh ipcs expected outputs  [Karel Zak]
   - remove input directory  [Karel Zak]
   - remove obsolete stuff from Makefile.am  [Karel Zak]
   - remove unexpected exit from *_subtest functions  [Karel Zak]
   - remove useless return value checks in testing scripts  [Américo Wang]
   - update namei reg.test  [Karel Zak]
   - we needn't blkid.sh  [Karel Zak]
tools:
   - add checkconfig to top-level Makefile  [Karel Zak]
   - add checkincludes.pl (from linux kernel)  [Karel Zak]
   - rename codecheck-config to checkconfig.sh  [Karel Zak]
umount:
   - check for overlaid mounts  [Guan Xin]
   - cleanup gefs_by_specdir()  [Karel Zak]
   - improve "-d" option for autoclear loops  [Karel Zak]
   - no checking mount point removal  [Guan Xin]
whereis:
   - include dirent.h instead sys/dir.h  [maximilian attems]
write:
   - doesn't check for tty group  [Karel Zak]

