Util-linux 2.21 Release Notes
=============================

 The udev compatible output (-o udev) from blkid(8) is deprecated. Udev
 links directly to libblkid now.

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

chcpu(8):
   - this NEW COMMAND can modify the state of CPUs, enable or disable CPUs,
     scan for new CPUs, change the CPU dispatching mode of the underlying
     hypervisor, and request CPUs from the hypervisor (configure) or return CPUs to
     the hypervisor (deconfigure).

prlimit(1):
   - this NEW COMMAND is very smart command line interface to prlimit(2)
     syscall and allows to get and set a process resource limits. It's much
     more flexible than old shell built-in ulimit(1).

login(1):
   - the command has been rewritten, features:
     * strictly PAM-only, another authentication method is unsupported
     * compatible with Suse login(1)
     * supports /etc/login.defs(5) config file

losetup(8):
   - the command has been rewritten, features:
     * requires kernel >= 2.6
     * supports 64bit ioctls only
     * losetup -a does not require root permissions (kernel >= 2.6.37)
     * uses new /dev/loop-control kernel API (kernel >= 3.1)
     * supports new command line option --partscan to enable kernel partition
       table parser

mount(8), umount(8):
   - new pure libmount based mount(8) and umounts(8) commands are available, 
     this experimental implementation could be enabled by --enable-new-mount
     
agetty(8):
   - supports new command line options --nohints to disable hints about Num,
     Caps and Scroll Locks
   - supports new command line option --remote to add a hostname to the 
     login(1) command line

dmesg(1):
   - supports new command line options --file to read the log from a file rather 
     than from kernel buffer

fallocate(8):
   - supports new command line options --punch-hole to punch holes in the file

findmnt(8):
   - supports alternative location of the fstab file

ipcrm(8):
   - supports new command line option --all to remove all resources

lscpu(1):
   - supports new command line options --all, --offline and --online to list
     all, offline or online CPUs
   - supports s390 topology description (polarization, books, ...)

partx(8):
   - supports partitioned loop devices (note that since kernel 3.2 partitioned 
     loop devices are usable everywhere (including Fedora))

wipefs(8):
   - allows to zap partition tables
   - supports new command line option "--type <list>" to wipe only specified
     filesystems, RAIDs or partition table types

libblkid:
   - provides new function blkid_do_wipe() to remove all signatures from the
     given block device. This new functionality is used in wipefs(8) and
     mkswap(8). It's recommended to use this function in mkfs-like programs.


Stable maintenance releases between v2.20 and v2.21
---------------------------------------------------

util-linux 2.20.1 [20-Oct-2011]

 * https://www.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20.1-ReleaseNotes
   https://www.kernel.org/pub/linux/utils/util-linux/v2.20/v2.20.1-ChangeLog


Changes between v2.20 and v2.21
-------------------------------

 For more details see ChangeLog files at:
 https://www.kernel.org/pub/linux/utils/util-linux/v2.21/

agetty:
   - add --nohints  [Karel Zak]
   - add static and const qualifiers  [Francesco Cosoleto]
   - check localtime() result  [Karel Zak]
   - don't use log_err() for non-fatal errors  [Karel Zak]
   - double equals sign typo in opentty()  [Karel Zak]
   - map NL to CR-NL on output in initial termiossettings  [Jacoby Hickerson]
   - pass hostname to login(1)  [Karel Zak]
   - test ECHO on c_lflag  [Karel Zak]
arch:
   - minor changes to usage()  [Karel Zak]
   - start using arch as a usage() example  [Sami Kerola]
blkdev:
   - add is_blkdev function  [Davidlohr Bueso]
blkid:
   - add comment to keep static analysers happy  [Karel Zak]
   - check fd before use [coverity scan]  [Karel Zak]
   - fix unfinished sentence for -l option in blkid.8  [Dave Reisner]
   - move cache to /run on new systems  [Karel Zak]
   - potential null derefence [smatch scan]  [Karel Zak]
   - print ID_PART_ENTRY_* for small devices  [Karel Zak]
   - remove -w option from man page and usage() output  [Karel Zak]
   - remove dead assigment  [Karel Zak]
blockdev:
   - make functions static  [Wanlong Gao]
   - make the code more readable for static analysers  [Karel Zak]
   - remove non-ANSI function declaration [smatch scan]  [Karel Zak]
build-sys:
   - add --enable-most-builds  [Sami Kerola]
   - add --enable-new-mount  [Karel Zak]
   - add UL_BUILD_INIT macro  [Karel Zak]
   - add UL_REQUIRES_* macros  [Karel Zak]
   - add changelog target  [Karel Zak]
   - add checksmatch target  [Karel Zak]
   - add checkxalloc to toplevel Makefile  [Karel Zak]
   - add err and errx to smatch no_return_funcs  [Karel Zak]
   - add ko-release-gen script  [Karel Zak]
   - add ko-release-push script  [Karel Zak]
   - add log_err to smatch non-return functions  [Karel Zak]
   - add missing BUILD_PRLIMIT  [Karel Zak]
   - add missing headers to dist  [Sami Kerola]
   - add path.h to Makefile.am  [Karel Zak]
   - add sleepexit from login.c to smatch non-return functions  [Karel Zak]
   - add smatch data  [Karel Zak]
   - add tools/ to EXTRA_DIST  [Karel Zak]
   - add tools/config-gen and basic compilation scenarios  [Karel Zak]
   - check HAVE_ definitions with #ifdef [smatch scan]  [Sami Kerola]
   - check scanf %ms modifier  [Karel Zak]
   - cleanup BUILD_ARCH  [Karel Zak]
   - cleanup BUILD_CRAMFS  [Karel Zak]
   - cleanup BUILD_ELVTUNE  [Karel Zak]
   - cleanup BUILD_FALLOCATE  [Karel Zak]
   - cleanup BUILD_FSCK  [Karel Zak]
   - cleanup BUILD_HWCLOCK  [Karel Zak]
   - cleanup BUILD_KILL, enable kill(1) by default  [Karel Zak]
   - cleanup BUILD_LIBMOUNT  [Karel Zak]
   - cleanup BUILD_LOGIN_UTILS  [Karel Zak]
   - cleanup BUILD_LSBLK  [Karel Zak]
   - cleanup BUILD_MOUNT  [Karel Zak]
   - cleanup BUILD_MOUNTPOINT  [Karel Zak]
   - cleanup BUILD_PARTX  [Karel Zak]
   - cleanup BUILD_PIVOT_ROOT  [Karel Zak]
   - cleanup BUILD_RAW  [Karel Zak]
   - cleanup BUILD_SCHEDUTILS  [Karel Zak]
   - cleanup BUILD_SWITCH_ROOT  [Karel Zak]
   - cleanup BUILD_UNSHARE  [Karel Zak]
   - cleanup BUILD_UUIDD  [Karel Zak]
   - cleanup BUILD_{DDATE,AGETTY}  [Karel Zak]
   - cleanup BUILD_{LAST,LINE,MESG}  [Karel Zak]
   - cleanup BUILD_{LS,CH}CPU  [Karel Zak]
   - cleanup BUILD_{RENAME,RESET}  [Karel Zak]
   - cleanup BUILD_{WALL,WRITE}  [Karel Zak]
   - cleanup HAVE_LIBCRYPT  [Karel Zak]
   - cleanup misc-utils/Makefile.am  [Karel Zak]
   - ddate typo fixed  [Sami Kerola]
   - don't install ru/ddate.1 if ddate disabled  [Karel Zak]
   - don't use full paths for smatch  [Karel Zak]
   - enable .xz, disable .gz  [Karel Zak]
   - enhance error message for missing libtoolize  [Sami Kerola]
   - fix UL_INIT_BUILD macro  [Karel Zak]
   - fix building of wall  [Petr Uzel]
   - fix libuuid  initialization  [Karel Zak]
   - fixes to USAGE_* macros  [Sami Kerola]
   - improve changelog target  [Karel Zak]
   - improve ko-release-* scripts  [Karel Zak]
   - move --enable-lib{mount,uuid,blkid} before others --enable-*  [Karel Zak]
   - move --with-* before --enable-*  [Karel Zak]
   - move gettext check before --enable-*  [Karel Zak]
   - move structs, types, descs checks before --enable-*  [Karel Zak]
   - move swapon from mount/ to sys-utils/  [Karel Zak]
   - move type checks before --enable-*  [Karel Zak]
   - release++ (v2.21-rc1)  [Karel Zak]
   - release++ (v2.21-rc2)  [Karel Zak]
   - remove redundant __progname check  [Karel Zak]
   - remove redundant flags from mount/Makefile.am  [Karel Zak]
   - remove unnecessary perl check  [Karel Zak]
   - rename BUILD_BUG_ON_ZERO definition  [Sami Kerola]
   - rename and move macros  [Karel Zak]
   - require PAM for login-utils  [Karel Zak]
   - suport static build for new [u]mount  [Karel Zak]
   - use $(MAKE) for checksmatch  [Karel Zak]
   - use $build_libblkid  [Karel Zak]
   - use --enable-most-builds for distcheck  [Karel Zak]
cal:
   - non-ANSI definition [smatch scan]  [Karel Zak]
cfdisk:
   - add note about alignment to the man page  [Karel Zak]
   - wctomb() returns -1 on error  [Karel Zak]
chcpu:
   - check get_max_number_of_cpus() result properly  [Karel Zak]
   - convert to use lib/path.c  [Heiko Carstens]
   - man page update  [Heiko Carstens]
   - new tool  [Heiko Carstens]
   - provide better user feedback  [Heiko Carstens]
   - use appropriate variable type [cppcheck]  [Sami Kerola]
chcpu,cpuset:
   - reduce code duplication for cpu list parsing  [Heiko Carstens]
chfn:
   - align with howto-usage-function.txt  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - fix use-after-free [coverity scan]  [Karel Zak]
   - remove non-ANSI definitions [smatch scan]  [Karel Zak]
   - remove non-PAM code  [Karel Zak]
   - use libc error printing facilities  [Sami Kerola]
chfn, chsh:
   - new file pamfail.h for error printing  [Sami Kerola]
chfn, chsh, setpwnam:
   - get true/false from stdbool.h  [Sami Kerola]
chfn, setpwnam:
   - let config.h be in control of extensions in use  [Sami Kerola]
chrt:
   - add comment to keep static analysers happy  [Karel Zak]
chsh:
   - align with howto-usage-function.txt  [Sami Kerola]
   - build bug  do not override config.h definition  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - remove non-PAM code  [Karel Zak]
   - use libc error printing facilities  [Sami Kerola]
column:
   - avoid memory overrun and/or use of uninitialized buffer  [Jim Meyering]
   - don't check result from xmalloc()  [Karel Zak]
   - fix error reported by smatch  [Sami Kerola]
   - use xalloc libs  [Dave Reisner]
cpuset:
   - add option to allow cpulist_parse() to fail  [Heiko Carstens]
ctrlaltdel:
   - add version & help options  [Sami Kerola]
   - minor changes to usage()  [Karel Zak]
cytune:
   - add long options and usage()  [Sami Kerola]
   - check numeric user inputs  [Sami Kerola]
   - coding style fixes  [Sami Kerola]
   - cytune.8 fix formatting  [Petr Uzel]
   - fix printf type warning  [Sami Kerola]
   - refactor main(), new function query_tty_stats()  [Sami Kerola]
   - use libc error printing facilities  [Sami Kerola]
dmesg:
   - add --file option  [Karel Zak]
   - fix for non-CONFIG_PRINTK_TIME kernels  [Karel Zak]
   - fix non-ANSI function declaration [smatch scan]  [Karel Zak]
   - fix printing of multibyte characters  [Petr Uzel]
   - remove extra space only after time stamp  [Karel Zak]
do:
   - fix czech LABEL= translation  [Karel Zak]
docs:
   - add debugging doc  [Davidlohr Bueso]
   - Documentation directory added  [Sami Kerola]
   - add --version to setarch.8  [Sami Kerola]
   - add howto-build-sys.txt  [Karel Zak]
   - add hwclock -c to TODO file  [Karel Zak]
   - add info about virt-what to TODO  [Karel Zak]
   - add libmount & libblkid debug instructions  [Sami Kerola]
   - add long options to ipcmk.1 man page  [Sami Kerola]
   - add long options to ipcrm.1 man page  [Sami Kerola]
   - add long options to ipcs.1 man page  [Sami Kerola]
   - add long options to readprofile.8  [Sami Kerola]
   - add long options to tunelp.8  [Sami Kerola]
   - add non-return function and if shorthand tips  [Sami Kerola]
   - add note about BUILD_* macros  [Karel Zak]
   - add note about config-gen purpose  [Karel Zak]
   - add note about fdisk to TODO  [Karel Zak]
   - add note about losetup to TODO  [Karel Zak]
   - add note about mount(8) options to TODO  [Karel Zak]
   - add notes about tools/config-gen  [Karel Zak]
   - add prlimit to the TODO file  [Karel Zak]
   - add usage() howto for contributors  [Sami Kerola]
   - add v2.21 ReleaseNotes  [Karel Zak]
   - add x-mount-mkdir to TODO file  [Karel Zak]
   - align col.1 with howto-man-page.txt  [Sami Kerola]
   - align colcrt.1 with howto-man-page.txt  [Sami Kerola]
   - align colrm.1 with howto-man-page.txt  [Sami Kerola]
   - align fallocate.1 with howto-man-page.txt  [Sami Kerola]
   - align hexdump.1 with howto-man-page.txt  [Sami Kerola]
   - align logger.1 with howto-man-page.txt  [Sami Kerola]
   - align more.1 with howto-man-page.txt  [Sami Kerola]
   - align renice.1 with howto-man-page.txt  [Sami Kerola]
   - align rev.1 with howto-man-page.txt  [Sami Kerola]
   - align script.1 with howto-man-page.txt  [Sami Kerola]
   - align scriptreplay.1 with howto-man-page.txt  [Sami Kerola]
   - align tunelp.8 with howto-man-page.txt  [Sami Kerola]
   - align ul.1 with howto-man-page.txt  [Sami Kerola]
   - align vipw.8 with howto-man-page.txt  [Sami Kerola]
   - align wall.1 with howto-man-page.txt  [Sami Kerola]
   - chcpu and readprofile are sysadmin utils  [Sami Kerola]
   - clean up old readme files  [Sami Kerola]
   - copy contributors from legacy files to AUTHORS  [Sami Kerola]
   - fix return value table in fsck.8  [Sami Kerola]
   - mention long options in ctrlaltdel.8  [Sami Kerola]
   - mention long options in cytune.8  [Sami Kerola]
   - mention long options in pivot_root.8  [Sami Kerola]
   - move setuid information from reame to hwclock.8  [Sami Kerola]
   - new file Documentation/howto-compilation.txt  [Sami Kerola]
   - new file Documentation/howto-contribute.txt  [Sami Kerola]
   - new file Documentation/howto-man-page.txt  [Sami Kerola]
   - new file Documentation/release-schedule.txt  [Sami Kerola]
   - new file Documentation/source-code-management.txt  [Sami Kerola]
   - note about independent super block structs  [Sami Kerola]
   - refresh TODO file  [Karel Zak]
   - remove README.clear  [Sami Kerola]
   - remove URL to u-l webpage  [Karel Zak]
   - remove duplicated text  [Sami Kerola]
   - require kernel support before accepting use of it  [Sami Kerola]
   - restructure flock.1 manual page  [Sami Kerola]
   - tell what the Documentation/ is about  [Sami Kerola]
   - trivial documentation fixes and improvements  [Petr Uzel]
   - update AUTHORS file  [Karel Zak]
   - update TODO  [Karel Zak]
   - update TODO  [Petr Uzel]
   - update TODO file  [Davidlohr Bueso]
   - update TODO file  [Karel Zak]
   - update copyright years  [Karel Zak]
   - update v2.21-ReleaseNotes  [Karel Zak]
   - use .LGPL extension for file with GNU Lesser License  [Karel Zak]
   - use correct translation project url  [Sami Kerola]
fallocate:
   - add FALLOC_FL_PUNCH_HOLE support  [Cong Wang]
   - clean up fallbacks for FALLOC_FL_* flags  [Karel Zak]
fdformat:
   - fix uninitialized variable  [Francesco Cosoleto]
fdisk:
   - Fix bad invalid flag 0x00000 warning message  [Francesco Cosoleto]
   - add missing break  [Karel Zak]
   - avoid an intermediate variable in command_prompt()  [Francesco Cosoleto]
   - avoid segfault validating a sgi label (boot/swap not set)  [Francesco Cosoleto]
   - don't shorten long path to disk device  [Karel Zak]
   - don't swap unsigned char  [Karel Zak]
   - don't use get_existing_partition() if disk label isn't dos  [Francesco Cosoleto]
   - drop one parameter from try() function  [Francesco Cosoleto]
   - enable expert menu with SGI label  [Francesco Cosoleto]
   - fix cdrom detection  [Karel Zak]
   - fix incorrect position of is_ide_cdrom_or_tape() call  [Francesco Cosoleto]
   - fix last sector dialog bug after an incorrect input with suffix  [Francesco Cosoleto]
   - fix poor coding style  [Karel Zak]
   - get rid of get_boot(create_empty_sun) call  [Francesco Cosoleto]
   - get rid of type_open global variable  [Francesco Cosoleto]
   - improve some messages  [Francesco Cosoleto]
   - move code for renaming SGI bootfile to SGI module  [Francesco Cosoleto]
   - move command prompt code to a separate function  [Francesco Cosoleto]
   - print a message with size and type of created partition  [Francesco Cosoleto]
   - print partition deleted message  [Francesco Cosoleto]
   - print welcome message  [Francesco Cosoleto]
   - remove PACKED macro  [Karel Zak]
   - remove possibly_osf_label variable that is only assigned  [Francesco Cosoleto]
   - remove redundant declaration [cppcheck]  [Sami Kerola]
   - remove uneecessary code  [Karel Zak]
   - remove unused 'require' member in enum action  [Francesco Cosoleto]
   - remove unused guess_device_type() function  [Francesco Cosoleto]
   - rename bselect, xselect functions  [Francesco Cosoleto]
   - rename read_int_sx() and some related variables  [Francesco Cosoleto]
   - rename try() and tryprocpt() functions  [Francesco Cosoleto]
   - rewrite print menu system  [Francesco Cosoleto]
   - split delete_partition() off from dos_delete_partition()  [Francesco Cosoleto]
   - update information about GNU Parted in fdisk.8  [Petr Uzel]
   - use CDROM_GET_CAPABILITY ioctl  [Davidlohr Bueso]
   - use ngettext() in str_units() for plural forms  [Francesco Cosoleto]
findmnt:
   - add note about LIBMOUNT_* env.variables  [Karel Zak]
   - fix resource leak [coverity scan]  [Karel Zak]
   - initialize rc variable  [Karel Zak]
   - make --poll more robust  [Karel Zak]
   - revert --fstab behavior, add --tab-file option  [Karel Zak]
   - support alternative location of fstab  [Dave Reisner]
   - support multiple --tab-file options  [Karel Zak]
   - use warnx for libmnt error callback  [Dave Reisner]
flock:
   - add missing word »be« to flock.1  [Paul Menzel]
   - align with howto-usage-function.txt  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - fix flock.1 grammar by removing »s«  [Paul Menzel]
   - fix sizeof usage [clang -Wsizeof-pointer-memaccess]  [Karel Zak]
   - make flock(1) work on NFSv4  [Michal Kubecek]
   - move long_options struct to function scope  [Sami Kerola]
   - simplify strtotimeval()  [Sami Kerola]
   - timer code refactoring  [Karel Zak]
   - use O_RDWR as fallback if O_RDONLY returns EIO  [Karel Zak]
   - use function attributes  [Sami Kerola]
   - use libc error printing facilities  [Sami Kerola]
   - use strutils.h to check numeric user input  [Sami Kerola]
   - use sysexit.h for all exit values  [Sami Kerola]
fsck:
   - make fs->type usage more robust [smatch scan]  [Karel Zak]
   - use FS blacklist for non-all mode too  [Karel Zak]
fsck.cramfs:
   - mark usage() as noreturn  [Karel Zak]
fsck.minix:
   - fix zone_map memory allocation failure check  [Francesco Cosoleto]
   - remove unnecessary memset calls  [Francesco Cosoleto]
fstrim:
   - fix section number in referral to manpage  [Petr Uzel]
hexdump:
   - make code more robust  [Karel Zak]
hwclock:
   - clean usage, remove redundat code  [Karel Zak]
   - remove never read value  [Karel Zak]
   - remove non-ANSI function declaration [smatch scan]  [Karel Zak]
include,c.h:
   - include fcntl.h before check for O_CLOEXEC [smatch scan]  [Karel Zak]
include,optutils:
   - add option_to_longopt()  [Karel Zak]
include,xalloc:
   - check for NULL before calling strdup  [Dave Reisner]
   - fix whitespace to be consistent  [Dave Reisner]
include/loopdev.h:
   - add missing function prototype  [Dave Reisner]
ipcmk:
   - add long options & fix usage()  [Sami Kerola]
   - allow high speed ipc creation  [Sami Kerola]
   - include-what-you-use header check  [Sami Kerola]
   - remove camel casing  [Sami Kerola]
   - remove useless code  [Sami Kerola]
   - validate numeric option arguments  [Sami Kerola]
ipcrm:
   - add --all option  [Sami Kerola]
   - add --verbose option  [Sami Kerola]
   - add long options  [Sami Kerola]
   - add static keyword to some functions  [Francesco Cosoleto]
   - check IPC syscalls  [Davidlohr Bueso]
   - exit if unknown error occurs  [Sami Kerola]
   - fix wrong subject in error messages for -m, -q, -s id options  [Francesco Cosoleto]
   - include-what-you-use header check  [Sami Kerola]
   - refactor new and old main to share code  [Sami Kerola]
   - use ternary operator in "(key|id) failed" message  [Francesco Cosoleto]
ipcs:
   - add long options  [Sami Kerola]
   - comment & white space clean up  [Sami Kerola]
   - include-what-you-use header check  [Sami Kerola]
   - minor changes to usage()  [Karel Zak]
islocal:
   - fix coding style  [Sami Kerola]
kill:
   - fix fd leak  [Karel Zak]
   - fix issue warned by smatch  [Sami Kerola]
   - potential null derefence [smatch scan]  [Karel Zak]
last:
   - fix few compiler warnings  [Sami Kerola]
   - fix smatch warning  [Sami Kerola]
   - possible buffer overflow fixed [smatch scan]  [Sami Kerola]
ldattach:
   - add default case to switches  [Sami Kerola]
   - align with howto-usage-function.txt  [Sami Kerola]
   - check numeric user inputs with strtol_or_err  [Sami Kerola]
   - convert debug macro to function  [Sami Kerola]
   - fix coding style  [Sami Kerola]
lib:
   - [strutils] add strtod_or_err() function  [Sami Kerola]
   - cleanup setproctitle.c  [Karel Zak]
   - do not attempt to close(0) in sysfs_deinit()  [Petr Uzel]
lib,cpuset:
   - enforce stricter parsing of cpu lists  [Heiko Carstens]
   - fix comments for cpu mask/list functions  [Heiko Carstens]
   - fix compiler warning [-Wuninitialized]  [Karel Zak]
   - fix odd placed braces in cpulist_parse()  [Heiko Carstens]
   - fix stride handling in cpulist_parse()  [Heiko Carstens]
lib,loopdev:
   - add LOOP_CTL_GET_FREE support  [Karel Zak]
   - add debugu messages  [Karel Zak]
   - add missing functions  [Karel Zak]
   - fix use of logical '&&' with constant operand  [Francesco Cosoleto]
   - remove duplicate includes  [Karel Zak]
lib,match:
   - split match_fstype() from libmount  [Karel Zak]
lib,path:
   - move path access functions from lscpu into lib/path.c  [Heiko Carstens]
   - use write_all()  [Heiko Carstens]
lib,strutils:
   - add default value to parse_range()  [Davidlohr Bueso]
   - share parse_range()  [Davidlohr Bueso]
lib,tt:
   - add TT_FL_NOEXTREMES  [Karel Zak]
   - don't trim last line char  [Karel Zak]
   - fix compiler warning [-Wreturn-type]  [Karel Zak]
lib/fsprobe:
   - mar this internal API as deprecated  [Karel Zak]
lib/loopdev:
   - fix part scan detection code  [Karel Zak]
   - fix possible dir leak on error  [Karel Zak]
   - remove dead assigment and null deference  [Karel Zak]
lib/strutils:
   - move array bounds check in string_to_idarray() to appropriate place.  [Chandan B Rajenda]
lib/sysfs:
   - fix handle leak  [Karel Zak]
   - fix possible fd leak on error  [Karel Zak]
libblkid:
   - DRBD proxy data-log identification.  [Philipp Marek]
   - add BLKID_PARTS_MAGIC  [Karel Zak]
   - add BLKID_PARTS_MAGIC to blkid_do_wipe() docs  [Karel Zak]
   - add blkid_do_wipe()  [Karel Zak]
   - allow return value to indicate error [cppcheck]  [Sami Kerola]
   - check blkid_probe_set_magic() return in GPT code [coverity scan]  [Karel Zak]
   - check blkid_probe_set_magic() return in ultrix code [coverity scan]  [Karel Zak]
   - check blkid_probe_set_magic() return value [coverity scan]  [Karel Zak]
   - check for NULL in blkid_flush_cache() [coverity scan]  [Karel Zak]
   - check rename() return value [coverity scan]  [Karel Zak]
   - check return values in safe_probe code [coverity scan]  [Karel Zak]
   - clarify operation order [cppcheck]  [Sami Kerola]
   - comparing an array to null is not useful [coverity scan]  [Karel Zak]
   - don't call CDROM_GET_CAPABILITY for partitions  [Karel Zak]
   - export PTMAGIC also if only PTTYPE requested  [Karel Zak]
   - export info about PT magic strings  [Karel Zak]
   - fix blkid_do_fullprobe() [coverity scan]  [Karel Zak]
   - fix limit for OCFS check  [Karel Zak]
   - fix mac partition detection  [Francesco Cosoleto]
   - fix smatch warning  [Sami Kerola]
   - fix suspicious implicit sign extension [coverity scan]  [Karel Zak]
   - fix use-after-free [coverity scan]  [Karel Zak]
   - improve reiserfs and btrfs min. size limits  [Karel Zak]
   - make fd usage in md code more robust  [Karel Zak]
   - minor docs changes  [Francesco Cosoleto]
   - more robust idx usage [coverity scan]  [Karel Zak]
   - new magic for 8.4 style (unclean) activity log.  [Philipp Marek]
   - remove >> 9 from GPT code  [Karel Zak]
   - remove unnecessary position check from list_for_each_safe loops  [Karel Zak]
   - silence a format string warning [-Wformat]  [Francesco Cosoleto]
   - update docs  [Karel Zak]
   - verify arroy bound before reference [cppcheck]  [Sami Kerola]
libmount:
   - Use filter arg of scandir* to pickup /etc/fstab.d/*.fstab files  [Masatake YAMATO]
   - add "+" prefix for options pattern (e.g findmnt -O)  [Karel Zak]
   - add --pass-fd to samples/mount  [Karel Zak]
   - add -a to umount(8) sample  [Karel Zak]
   - add MNT_OMODE_NOTAB  [Karel Zak]
   - add function to parse offsets/sizes  [Karel Zak]
   - add functions to export syscall/helpers status  [Karel Zak]
   - add mnt_context_umount_next()  [Karel Zak]
   - add new exprimental umount(8)  [Karel Zak]
   - add post-mount checks to detect ro/rw  [Karel Zak]
   - add sanitize_env() to mount(8) sample  [Karel Zak]
   - add support for encrypted loopdevs  [Karel Zak]
   - add support for mount -a --fork  [Karel Zak]
   - allow to toggle ro/rw and mount again  [Karel Zak]
   - allow to use UUID and LABEL for owner/group mount options in fstab  [Karel Zak]
   - always trust the source of a pseudofs  [Dave Reisner]
   - avoid duplicate loopdevs  [Karel Zak]
   - avoid resolving pseudofs source on update  [Dave Reisner]
   - clean up context docs  [Karel Zak]
   - cleanup docs  [Karel Zak]
   - cleanup post-umount operations  [Karel Zak]
   - consolidate MNT_FS_* code  [Karel Zak]
   - consolidate sysconf() usage  [Karel Zak]
   - don't ignore chmod/own errors  [Karel Zak]
   - don't pass comments=/x-* to mount.<type> helpers  [Karel Zak]
   - don't use "new" in header file  [Karel Zak]
   - export info about library features  [Karel Zak]
   - fix MS_BIND|MS_REC usage, improve some bitwise operations  [Karel Zak]
   - fix a potential memory leak at mnt_table_parse_dir  [Masatake YAMATO]
   - fix auto-loopdev  [Karel Zak]
   - fix buffer overflow and leaks in tests  [Karel Zak]
   - fix bugs detected by [smatch scan]  [Karel Zak]
   - fix chdir to parent for restricted (user) umounts  [Karel Zak]
   - fix checked-return [coverity scan]  [Karel Zak]
   - fix compiler warning [-Wimplicit-function-declaration]  [Karel Zak]
   - fix compiler warnings [-Wsign-compare]  [Karel Zak]
   - fix compiler warnings [-Wuninitialized -Wformat]  [Karel Zak]
   - fix context test logic  [Karel Zak]
   - fix leak in tab parsing error code  [Karel Zak]
   - fix leak in tab_update.c test  [Karel Zak]
   - fix leak in tabdiff test  [Karel Zak]
   - fix negative returns [coverity scan]  [Karel Zak]
   - fix possible null dereferencing [coverity scan]  [Karel Zak]
   - fix resource leak [coverity scan]  [Karel Zak]
   - fix trivial typos in debugging output  [Petr Uzel]
   - fix typo in function name  [Dave Reisner]
   - fix use of logical '&&' with constant operand  [Francesco Cosoleto]
   - fixed a small typo  [s.p@orbitalfox.com]
   - ignore "defaults" mount option  [Karel Zak]
   - ignore tailing slash in netfs source paths  [Petr Uzel]
   - improve verbose message  [Karel Zak]
   - make iter reset more robust [coverity scan]  [Karel Zak]
   - make options in fstab optional  [Karel Zak]
   - potential null derefence [smatch scan]  [Karel Zak]
   - previously assumed null pointer [smatch scan]  [Karel Zak]
   - redundant null check on calling free() [smatch scan]  [Karel Zak]
   - remove dead assigment  [Karel Zak]
   - remove fstab.d support  [Karel Zak]
   - remove magic constatnt from mount(8)  [Karel Zak]
   - remove teaser proto for mnt_table_get_name  [Dave Reisner]
   - scandirat based mnt_table_parse_dir implementation  [Masatake YAMATO]
   - support -o loop=<devname>  [Karel Zak]
   - support dirs for mnt_table_parse_fstab(), add mnt_table_parse_dir()  [Karel Zak]
   - support umount /path/file.img  [Karel Zak]
   - support {offset,sizelimit}= foor loopdevs  [Karel Zak]
   - unable to umount nfs shares using the force option  [Karel Zak]
   - use #ifdef fr selinux specific variables  [Karel Zak]
   - use USAGE_* from mount(8) sample  [Karel Zak]
   - use loopdev debug facility  [Karel Zak]
   - use unsigned int for bitfields [smatch scan]  [Karel Zak]
   - variable dereferenced before check [smatch scan]  [Karel Zak]
libuuid:
   - add limits.h include for OPEN_MAX  [maximilian attems]
   - fix includes in man pages  [Karel Zak]
line:
   - fix compiler warnings [-Wunused-parameter]  [Karel Zak]
lists:
   - add list sorting routine  [Davidlohr Bueso]
logger:
   - fix remote logging  [Karel Zak]
   - non-ANSI definition [smatch scan]  [Karel Zak]
login:
   - (and chsh) make pw_shell usage more robust  [Karel Zak]
   - PAM account checks refactoring  [Karel Zak]
   - PAM auth refactoring  [Karel Zak]
   - PAM initialization refactoring  [Karel Zak]
   - PAM session initialization refactoring  [Karel Zak]
   - add -H option for compatibility with Suse  [Karel Zak]
   - add LOGIN_RETRIES, cleanup retries check code  [Karel Zak]
   - add hostname to login_context struct  [Karel Zak]
   - add login.defs code and tests  [Karel Zak]
   - add pid to login_context struct  [Karel Zak]
   - add struct login_context, consolidate tty code  [Karel Zak]
   - add username to login_context struct  [Karel Zak]
   - add version printing option  [Sami Kerola]
   - allocate buffer with shell name  [Karel Zak]
   - clean FAIL_DELAY usage  [Karel Zak]
   - cleanup begin of the login.c file  [Karel Zak]
   - comparing an array to null is not useful [coverity scan]  [Karel Zak]
   - cosmetic changes in docs  [Karel Zak]
   - env initialization refactoring  [Karel Zak]
   - fix compiler warning [-Wreturn-type]  [Karel Zak]
   - fix leak, improve strtok usage  [Karel Zak]
   - fork & session initialization refactoring  [Karel Zak]
   - host{name,address} initialization refactoring  [Karel Zak]
   - improve hushed mode (merge suse changes)  [Karel Zak]
   - improve pam_setcred() usage  [Karel Zak]
   - indent -linux  [Karel Zak]
   - lastlog code refactoring  [Karel Zak]
   - log good logins refactoring  [Karel Zak]
   - more robust sysconf() usage [coverity scan]  [Karel Zak]
   - move _PATH_BTMP to pathnames.h  [Karel Zak]
   - move signal stuff to the one place  [Karel Zak]
   - remove PAM_FAIL_CHECK and PAM_END macros  [Karel Zak]
   - remove dead code and comments  [Karel Zak]
   - remove kerberos specific code  [Karel Zak]
   - remove non-PAM code  [Karel Zak]
   - remove obsolete code, clean up macros names  [Karel Zak]
   - remove obsolete info from man page  [Karel Zak]
   - remove pam_handle_t from main()  [Karel Zak]
   - remove unnecessary ifdef HAVE_CRYPT_H  [Karel Zak]
   - remove unnecessary variables  [Karel Zak]
   - remove unused code and tests  [Karel Zak]
   - rewrite motd(), use MOTD_FILE from login.defs  [Karel Zak]
   - tty chown.chmod refactoring  [Karel Zak]
   - use DEFAULT_HOME from login.defs  [Karel Zak]
   - use ENV_PATH and ENV_{ROOT,SU}PATH from login.defs  [Karel Zak]
   - use FAIL_DELAY from login.defs  [Karel Zak]
   - use HUSHLOGIN_FILE from login.defs  [Karel Zak]
   - use LOGIN_TIMEOUT from login.defs  [Karel Zak]
   - use LOG_UNKFAIL_ENAB from login.defs, improve logging  [Karel Zak]
   - use TTYGROUP from login.defs  [Karel Zak]
   - use TTYPERM from login.defs  [Karel Zak]
   - use getpwnam_r() rather than manually copy passwd struct  [Karel Zak]
   - use login_context struct in audit stuff  [Karel Zak]
   - use setgroups(0, NULL) for root  [Karel Zak]
   - use xalloc.h  [Karel Zak]
   - utmp code refactoring  [Karel Zak]
logindefs:
   - fix coding style  [Sami Kerola]
loopdev:
   - improve debug messages  [Karel Zak]
   - support LO_FLAGS_PARTSCAN flag (kernel 3.2)  [Karel Zak]
losetup:
   - add --partscan option  [Karel Zak]
   - add note about non-root users to losetup.8  [Karel Zak]
   - check  to control debug output  [Karel Zak]
   - cleanup headers, cmdline checks  [Karel Zak]
   - cleanup man page  [Karel Zak]
   - cleanup usage()  [Karel Zak]
   - fix compiler warnings [-Wpointer-sign -Wformat]  [Karel Zak]
   - make xgetpass more robust  [Karel Zak]
   - move to sys-utils directory  [Karel Zak]
   - move xgetpass() to lib/xgetpass.c  [Karel Zak]
   - new -D option to delete all used loop devices  [Petr Uzel]
   - print info about one device  [Karel Zak]
   - print verbose messages if requested  [Petr Uzel]
   - remove #ifdef LOOP_SET_FD nonsense  [Karel Zak]
   - remove 32-bit ioctls  [Karel Zak]
   - remove mount-specific headers  [Karel Zak]
   - remove obsolete #ifdef MAIN  [Karel Zak]
   - remove unnecessary header files  [Karel Zak]
   - rewrite -a  [Karel Zak]
   - rewrite -c  [Karel Zak]
   - rewrite -d and -D  [Karel Zak]
   - rewrite -f  [Karel Zak]
   - rewrite -j  [Karel Zak]
   - rewrite loop setup  [Karel Zak]
lsblk:
   - add UUID to --fs output  [Karel Zak]
   - add udev support  [Ilias Mamedov]
   - check stat() return code  [Karel Zak]
   - inform about depencency to /sys/dev/block  [Sami Kerola]
   - remove __NCOLUMNS  [Davidlohr Bueso]
lscpu:
   - add --all option  [Heiko Carstens]
   - add --offline option  [Heiko Carstens]
   - add --online option  [Karel Zak]
   - add --version option  [Heiko Carstens]
   - add Hypervisor to output  [Heiko Carstens]
   - add column names to --help  [Karel Zak]
   - add columns description to help, fix header for parsable output  [Karel Zak]
   - add configured state to output  [Heiko Carstens]
   - add cpu polarization to parseable output  [Heiko Carstens]
   - add human readable extended cpu table output  [Karel Zak]
   - add online state to output  [Heiko Carstens]
   - add physical cpu address to parseable output  [Heiko Carstens]
   - add s390 kvm test case  [Heiko Carstens]
   - add s390 test case  [Heiko Carstens]
   - allow read_cache() to be called for offline cpus  [Heiko Carstens]
   - cleanup output modes  [Karel Zak]
   - dereferencing NULL pointer [coverity scan]  [Karel Zak]
   - detect IBM hypervisor  [Heiko Carstens]
   - fix -e output  [Heiko Carstens]
   - fix cache output for extended parsable output  [Heiko Carstens]
   - fix compiler warnings  [Davidlohr Bueso]
   - fix cpu map array sizes  [Heiko Carstens]
   - fix fallback nthreads calculation  [Heiko Carstens]
   - fix fd leak  [Karel Zak]
   - fix s390 bogomips detection coding style  [Heiko Carstens]
   - fix typo in help text  [Heiko Carstens]
   - gettextize two columns  [Karel Zak]
   - man page update  [Heiko Carstens]
   - remove comma operator  [Heiko Carstens]
   - remove unneeded file  [Heiko Carstens]
   - s/Y/Yes/ s/N/No/  [Heiko Carstens]
   - show dispatching mode  [Heiko Carstens]
   - simplify cache column output function  [Heiko Carstens]
   - stricter command line parsing  [Heiko Carstens]
   - switch Yes/No output to lower case  [Heiko Carstens]
   - use buffer for data and headers  [Karel Zak]
   - use function to search in cpu masks arrays  [Karel Zak]
   - use hypervisor generated topology information  [Heiko Carstens]
   - use xalloc libs  [Dave Reisner]
misc:
   - use %m in format string instead of %s and strerror(errno)  [Petr Uzel]
mkfs.bfs:
   - add setlocale  [Davidlohr Bueso]
mkfs.cramfs:
   - check blocksize user input [cppcheck]  [Sami Kerola]
   - close open file after usage [cppcheck]  [Sami Kerola]
mkfs.minix:
   - Fix super_set_nzones()  [Maurizio Lombardi]
   - In Minix V3 filesystems the maximum filename length is 60 chars and the dirsize is 64 bytes.  [Maurizio Lombardi]
   - Some bug fixes  [Maurizio Lombardi]
   - The s_blocksize field of the MinixV3 superblock must be initialized with a valid block size, not the total number of blocks of the device!  [Maurizio Lombardi]
   - The total number of zones is limited to 65536 only on V1 filesystems  [Maurizio Lombardi]
   - inode numbers are 32-bit wide in V3 filesystems  [Maurizio Lombardi]
   - remove redundant code  [Maurizio Lombardi]
mkswap:
   - check blkid_probe_lookup_values() return [coverity scan]  [Karel Zak]
   - wipe all old signatures  [Karel Zak]
more:
   - add comment  [Karel Zak]
mount:
   - (new) add --fstab <path> option  [Karel Zak]
   - (new) add --fstab to the man page  [Karel Zak]
   - (new) add more info about --stab to mount.8  [Karel Zak]
   - (new) add selinux warning  [Karel Zak]
   - (new) add source/target to error messages  [Karel Zak]
   - (new) fix resource leak [coverity scan]  [Karel Zak]
   - (new) improve  mount -a exist codes and erroer messages  [Karel Zak]
   - (new) print error messages  [Karel Zak]
   - (new) share exit codes by include/exitcodes.h  [Karel Zak]
   - add hint that context= has to be quoted  [Karel Zak]
   - add info about libmount features to --version output  [Karel Zak]
   - append inverting options for mount.<type>  [Karel Zak]
   - avoid canonicalizing pseudofs paths  [Dave Reisner]
   - check for target before source on remount  [Karel Zak]
   - clear flags before options parsing  [Karel Zak]
   - define fallback selinux_warning macro with 2 params  [Dave Reisner]
   - distinguish between MS_COMMENT flags (netdev, nofail, ...)  [Karel Zak]
   - don't canonicalize the source of a pseudofs  [Dave Reisner]
   - enable fstab.d  [Masatake YAMATO]
   - fix __attribute__ keyword  [Karel Zak]
   - fix build  [Davidlohr Bueso]
   - fix compiler warning [-Wunused-parameter]  [Karel Zak]
   - fix compiler warnings [-Wunused-parameter -Wunused-variable]  [Karel Zak]
   - fix loopdev deinitialization  [Karel Zak]
   - remounting tmpfs read-write hangs (selinux)  [Karel Zak]
   - remove duplicate includes  [Karel Zak]
   - remove superfluous "an" under ext4 mount options in mount.8  [Frederik \"Freso\" S. Olesen]
   - update info about check= mount option  [Karel Zak]
   - use common libs  [Davidlohr Bueso]
   - use new lib/loopdev.c code  [Karel Zak]
mountpoint:
   - fallback on stat when /proc isn't mounted  [Karel Zak]
   - refactor exit path  [Dave Reisner]
   - return dev_t from dir_to_device  [Dave Reisner]
   - support symbolic and relative paths  [Karel Zak]
namei:
   - more robust add_it() [coverity scan]  [Karel Zak]
newgrp:
   - add version and help options  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - fix possible FILE leak on error  [Karel Zak]
partx:
   - check sysfs_init() return value [coverity scan]  [Karel Zak]
   - cleanup usage() and man page, add undocumented --verbose  [Karel Zak]
   - don't print error when partition already doesn't exist  [Phillip Susi]
   - don't treat empty partition table as error  [Karel Zak]
   - fix small leak  [Karel Zak]
   - remove __NCOLUMNS  [Davidlohr Bueso]
   - support loop devices  [Davidlohr Bueso]
   - use USAGE_ macros  [Davidlohr Bueso]
pivot_root:
   - add version & help option  [Sami Kerola]
   - minor changes to usage()  [Karel Zak]
po:
   - merge changes  [Karel Zak]
   - update cs.po (from translationproject.org)  [Petr Pisar]
   - update cs.po (from translationproject.org)  [Petr Písař]
   - update fr.po (from translationproject.org)  [David Prévot]
   - update ja.po (from translationproject.org)  [Takeshi Hamasaki]
   - update nl.po (from translationproject.org)  [Benno Schulenberg]
   - update pl.po (from translationproject.org)  [Jakub Bogusz]
   - update uk.po (from translationproject.org)  [Yuri Chornoivan]
prlimit:
   - add --{raw,noheadings} options  [Karel Zak]
   - add a units column  [Davidlohr Bueso]
   - add add falbacks  [Karel Zak]
   - add support for executing a command  [Bernhard Voelker]
   - avoid segfault due to array-out-of-bounds error  [Karel Zak]
   - don't share pointer for old and new in prlimit(2)  [Karel Zak]
   - fix SYS_ macro  [Karel Zak]
   - fix case when PID is given later  [Bernhard Voelker]
   - fix error message  [Karel Zak]
   - fix noheadings option in man page  [Bernhard Voelker]
   - fix typo in man page, option --verbose  [Bernhard Voelker]
   - new command  [Davidlohr Bueso]
   - replace lims[i] with pointer  [Karel Zak]
   - return proper type  [Davidlohr Bueso]
   - s/amount/number/  [Jim Meyering]
   - show all limits if called without options  [Bernhard Voelker]
   - use xalloc libs  [Davidlohr Bueso]
raw:
   - fix shadowing of minor function  [maximilian attems]
   - remove unnecessary return [cppcheck]  [Sami Kerola]
readprifile:
   - remove unnecessary optstring array  [Karel Zak]
readprofile:
   - add long options  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - use libc error printing facilities  [Sami Kerola]
rtcwake:
   - align with howto-usage-function.txt  [Sami Kerola]
   - fix crash (invalid free)  [Petr Uzel]
script:
   - fix building with --disable-nls  [Natanael Copa]
   - libintl.h included in nls.h  [Karel Zak]
   - non-ANSI definition [smatch scan]  [Karel Zak]
selinux_utils:
   - fix coding style  [Sami Kerola]
setarch:
   - add version printing  [Sami Kerola]
   - minor changes to usage()  [Karel Zak]
   - move options struct to function scope  [Sami Kerola]
   - use program_invocation_short_name  [Sami Kerola]
setpwnam:
   - fix coding style  [Sami Kerola]
   - remove non-ANSI definitions [smatch scan]  [Sami Kerola]
setsid:
   - add "+" to getopt_long()  [Harald Hoyer]
   - add long options and fix coding style  [Sami Kerola]
setterm:
   - order man page items alphabetically  [Jari Aalto]
sfdisk:
   - add comment to keep static analysers happy  [Karel Zak]
   - add note about alignment to the man page  [Karel Zak]
   - cleanup fd usage  [Karel Zak]
   - file descriptor is of int type  [Petr Uzel]
   - fix fd leak  [Karel Zak]
   - fix poor coding style  [Karel Zak]
   - fix typo in cdrom detection  [Karel Zak]
   - fix weird indentation in msdos_partition()  [Petr Uzel]
   - free variable which got the allocation [cppcheck]  [Sami Kerola]
   - get_disksize() returns long long  [Petr Uzel]
   - introduce get_ull() function  [Petr Uzel]
   - make the cylinder boundary check less fatal  [Petr Uzel]
   - remove PACKED macro  [Karel Zak]
   - remove dead assigment  [Karel Zak]
   - remove do_warn  [Davidlohr Bueso]
   - remove duplicate includes  [Karel Zak]
   - remove fatal  [Davidlohr Bueso]
   - sfdisk.8 fix formatting  [Petr Uzel]
   - use is_blkdev  [Davidlohr Bueso]
   - use unsigned long long to internally represent sector number  [Petr Uzel]
   - warn if partition exceeds partition table limits  [Petr Uzel]
swapon:
   - add break to keep static analysers happy  [Karel Zak]
   - merge swap_constants.h into swapon.c  [Karel Zak]
switch_root:
   - add nls support  [Sami Kerola]
   - align with howto-usage-function.txt  [Sami Kerola]
   - close open file after usage [cppcheck]  [Sami Kerola]
   - handle /run and do not mount over existing mounts  [Harald Hoyer]
   - umount mount points we cannot move with MNT_DETACH  [Harald Hoyer]
taskset:
   - use appropriate variable type [cppcheck]  [Sami Kerola]
test:
   - refresh build-sys tests  [Karel Zak]
tests:
   - add --memcheck to  [Karel Zak]
   - add build-sys regression test  [Karel Zak]
   - add exceptions for libmount  [Karel Zak]
   - add infrastructure for valgrind  [Karel Zak]
   - add loopdev libmount test  [Karel Zak]
   - add missing file  [Karel Zak]
   - add mkfs.carmfs test for small FS with duplicate files  [Karel Zak]
   - add ts_fdisk_clean function to make fdisk output comparable  [Francesco Cosoleto]
   - add valgrind to libmount context tests  [Karel Zak]
   - add valgrind to libmount context utab tests  [Karel Zak]
   - add valgrind to libmount lock tests  [Karel Zak]
   - add valgrind to libmount tab parse test  [Karel Zak]
   - add valgrind to libmount tabdiff tests  [Karel Zak]
   - add valgrind to libmount tags eval. tests  [Karel Zak]
   - add wall to build-sys tests  [Karel Zak]
   - call valgrind from libmount optstr test  [Karel Zak]
   - call valgrind from libmount utils and update tests  [Karel Zak]
   - cleanup islocal test  [Karel Zak]
   - cleanup paths  [Karel Zak]
   - fix mount/special to be compatible with libmount  [Karel Zak]
   - fix options evaluation, add support for optional tests  [Karel Zak]
   - make minix tests more robust  [Karel Zak]
   - remove obsolete checktty test  [Karel Zak]
   - remove unexpected set -x  [Karel Zak]
   - remove unsupported losetup -s  [Karel Zak]
   - update fdisk and blkid MD tests  [Francesco Cosoleto]
   - update fdisk tests  [Francesco Cosoleto]
   - update tests with fdisk output  [Karel Zak]
tools:
   - add new code checking script  [Dave Reisner]
   - use gpg-aggent in ko-release-gen  [Karel Zak]
tunelp:
   - add long options and align with howto-usage-function.txt  [Sami Kerola]
   - fix coding style  [Sami Kerola]
   - free allocation, use xalloc  [Sami Kerola]
   - use libc error printing facilities  [Sami Kerola]
   - use symbolic exit values  [Sami Kerola]
umount:
   - (new) fix resource leak [coverity scan]  [Karel Zak]
   - (new) use the same exit codes as mount(8)  [Karel Zak]
   - add missing break  [Karel Zak]
   - add warning  [Karel Zak]
   - respect fs search path  [Mike Frysinger]
   - use new lib/loopdev.c code  [Karel Zak]
unshare:
   - add note about MS_SHARED to unshare.1  [Karel Zak]
   - align with howto-usage-function.txt  [Sami Kerola]
uuidd:
   - Add missing break to option case statement  [Eric Sandeen]
vipw:
   - don't modify environment, check strtok() return value  [Karel Zak]
   - fix coding style  [Sami Kerola]
   - stop printing non-sense version string  [Sami Kerola]
   - use libc error printing facilities  [Sami Kerola]
   - use xalloc.h  [Karel Zak]
whereis:
   - fix gcc warnings [-Wsign-compare]  [Karel Zak]
   - move token assignment into loop syntax  [Karel Zak]
   - non-ANSI definition [smatch scan]  [Karel Zak]
   - remove unused value warning  [Francesco Cosoleto]
   - search in path  [Davidlohr Bueso]
   - search in path for binaries only  [Karel Zak]
wipefs:
   - add -t <list> option  [Karel Zak]
   - improve -a, use blkid_do_wipe()  [Karel Zak]
   - use xalloc lib  [Davidlohr Bueso]
write:
   - fix path for freopen()  [Karel Zak]
