
Util-linux-ng 2.16 Release Notes (15-Jul-2009)
==============================================

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

libuuid, uuidgen(1) and uuidd(8):
  - the libuuid library has been moved from e2fsprogs to util-linux-ng

switch_root:
  - this NEW COMMAND allows to switch to another filesystem as the root
    of the mount tree.

mount, umount, fsck:
  - DOES NOT SUPPORT linking against obsolete libvolume_id (from udev)

libblkid:
  - development files (.so, .a, ...) have been moved from /lib to /usr/lib.


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

util-linux-ng 2.15.1 [10-Jun-2009]

 * ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15.1-ReleaseNotes
   ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/v2.15.1-ChangeLog


ChangeLog between v2.15 and v2.16
---------------------------------

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


build-sys:
   - add --disable-libblkid, remove volume_id support  [Karel Zak]
   - add --disable-switch_root  [Karel Zak]
   - add --disable-tls  [Karel Zak]
   - add --disable-uuidd  [Karel Zak]
   - add UTIL_{SET,RESTORE}_FLAGS  [Karel Zak]
   - check for openat() and linux for switch_root  [Karel Zak]
   - cleanup libuuid stuff  [Karel Zak]
   - complete /libs to /shlibs rename  [Karel Zak]
   - enable fsck by default  [Karel Zak]
   - fix "make -C" bug  [Karel Zak]
   - fix --disable-uuidd  [Karel Zak]
   - fix blkid.h include for old e2fsprogs  [Karel Zak]
   - fix exec/data install hooks  [Karel Zak]
   - fix headers in mkswap and libblkid  [Karel Zak]
   - fix libuuid Makefile.am  [Karel Zak]
   - fix libuuid and libblkid version-info  [Karel Zak]
   - fix typo from 30688dde55f637c9b984809c685b61378b82805f  [Robert Förster]
   - improve $libdirname definition  [Karel Zak]
   - improve symlinks creation in shlibs/  [Karel Zak]
   - release++ (v2.16-rc1)  [Karel Zak]
   - release++ (v2.16-rc2)  [Karel Zak]
   - rename /libs to /shlibs  [Karel Zak]
   - rename to _execdir  [Karel Zak]
   - reverse shlibs installation  [Kay Sievers]
buildsys:
   - move $usr{bin,sbin,lib}execdir definition to ./configure  [Karel Zak]
cal:
   - Highlight today even when month or year specified  [Rajeev V. Pillai]
   - uClibc has langinfo.h but not _NL_TIME_WEEK_1STDAY.  [Tom Prince]
chrt:
   - don't assume SCHED_BATCH and SCHED_IDLE exist  [Aurelien Jarno]
docs:
   - add missing commands/projects to AUTHORS file  [Karel Zak]
   - add v2.16 ReleaseNotes  [Karel Zak]
   - refresh TODO list  [Karel Zak]
   - remove example.files/rc[.local]  [Karel Zak]
   - remove obsolete information from fstab example  [Karel Zak]
   - update AUTHORS file  [Karel Zak]
   - update v2.16 ReleaseNotes  [Karel Zak]
   - update v2.16-ReleaseNotes  [Karel Zak]
fdisk:
   - (and cfdisk) fix to be consistent about maximum heads  [Chris Webb]
   - add simple test for doslabel stuff  [Zdenek Behan]
hwclock:
   - fix mismatched popen/fclose.  [John Keeping]
include:
   - clean up _PATH_DEV_* macros  [Karel Zak]
   - fix _PATH_DEV  [Karel Zak]
ionice:
   - Allow setting the none class  [Jakob Unterwurzacher]
ldattach:
   - add N_PPS support  [Tilman Schmidt]
libblkid:
   - add device-mapper snapshot cow device probe  [Milan Broz]
   - add install-hook for libuuid.[a,so] devel files  [Karel Zak]
   - add stdarg.h to blkidP.h  [Karel Zak]
   - blkid_do_safeprobe() has to be tolerant to RAIDs  [Karel Zak]
   - cleanup debug messages and return codes in blkid_do_probe()  [Karel Zak]
   - don't require udev symlinks verification for non-root users  [Karel Zak]
   - fix "hangs forever with partition type mdraid"  [Karel Zak]
   - fix #ifdefs readability  [Karel Zak]
   - fix $libdir in blkid.pc  [Karel Zak]
   - fix LVM1 probe  [Milan Broz]
   - fix reiserfs name  [Karel Zak]
   - make libuuid optional  [Karel Zak]
   - move to misc-utils/ directory  [Karel Zak]
   - update man page  [Karel Zak]
libuuid:
   - add --disable-libuuid and LIBUUID_VERSION  [Karel Zak]
   - add .gitignore  [Karel Zak]
   - add info about u-l-ng to man pages  [Karel Zak]
   - add install-hook for libuuid.[a,so] devel files  [Karel Zak]
   - Don't run uuidd if it would fail due to permission problems  [Theodore Ts'o]
   - fix $libdir in uuid.pc  [Karel Zak]
   - fix parallel building  [Karel Zak]
   - generate uuid_generate_{random,time}.3 man page links [Karel Zak]
   - import UUID library from e2fsprogs  [Karel Zak]
   - Make sure fd's 0, 1, and 2 are valid before exec'ing uuidd  [Theodore Ts'o]
   - move clock state file from /var/lib to /var/run  [Karel Zak]
libuuid, uuidd:
   - Avoid infinite loop while reading from the socket fd  [Theodore Ts'o]
losetup:
   - add --set-capacity  [Karel Zak]
   - fix return codes of functions arounf is_associated()  [Karel Zak]
   - handle symlinks in /dev/loop/  [Mike Frysinger]
   - suggest to use modprobe rather than insmod in losetup.8  [Karel Zak]
lscpu:
   - fix cpuid code on x86/PIC  [Mike Frysinger]
mount:
   - (and fsck) remove libvolume_id support  [Karel Zak]
   - a little clean up info about loopdevs in man page  [Karel Zak]
   - add ext4 to mount.8  [Karel Zak]
   - add ext4 to the list of filesystems in mount.8  [Karel Zak]
   - add info about obsolete vfat options to mount.8  [Karel Zak]
   - allow loop suid umount  [Kay Sievers]
   - cleanup notes about -l option in mount.8  [Karel Zak]
   - fix undefined reference to `security_get_initial_context'  [Karel Zak]
   - move MS_{PROPAGATION,BIND,MOVE} detection  [Karel Zak]
   - use "none" fstype for MS_PROPAGATION mounts  [Karel Zak]
   - use TAG parsing function from libblkid  [Karel Zak]
   - when a remount to rw fails, quit and return an error  [Valerie Aurora]
po:
   - fix typo in French translation  [Olivier Blin]
   - merge changes  [Karel Zak]
   - refresh 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 vi.po (from translationproject.org)  [Clytie Siddall]
raw:
   - Use the RAW_SETBIND ioctl without stat'ing the raw# file  [Jeff Mahoney]
   - undeprecate raw  [Karel Zak]
switch_root:
   - add man page  [Karel Zak]
   - add subroot support  [Daniel Drake]
   - clean up argv[] usage, add -h and -V  [Karel Zak]
   - do recursiveRemove after our root is moved to avoid races.  [Peter Jones]
   - fix coding style  [Karel Zak]
   - fork before cleaning up the filesystem.  [Peter Jones]
   - new command  [Karel Zak]
   - rewrite to use fstatat() and unlinkat()  [Karel Zak]
   - use err.h, clean up return codes  [Karel Zak]
   - use file descriptor instead of path for recursiveRemove()  [Peter Jones]
   - use snprintf() rather tan str{cpy,cat}()  [Karel Zak]
tests:
   - add functions for work withdisk images  [Karel Zak]
   - add mdraid libblkid test  [Karel Zak]
   - don't run some mount tests for non-root users  [Karel Zak]
   - fix 'delete extended partition' checksum  [Karel Zak]
   - fix reiserfs test  [Karel Zak]
   - fix script that creates lscpu dumps  [Karel Zak]
   - move lscpu /proc and /sys dumps to tarballs  [Karel Zak]
   - remove broken Xen dumps for lscpu  [Karel Zak]
umount:
   - clean up help output  [Karel Zak]
uuidd:
   - Avoid closing the server socket when calling create_daemon()  [Theodore Ts'o]
   - fix $PIDFILE in uuidd.rc  [Karel Zak]
   - init /var/run/uuidd, add option for on-demand mode to .rc file  [Karel Zak]
   - move uuidd files from /var/lib/libuuid to /var/run/uuidd  [Karel Zak]
   - move uuidd.rc to misc-utils directory  [Karel Zak]
   - new command (UUID daemon from e2fsprogs)  [Karel Zak]
uuidgen:
   - new command (from e2fsprogs)  [Karel Zak]
