Util-linux 2.25 Release Notes
=============================

The command cytune(8) has been REMOVED from util-linux.

The non-libmount mount(8) implementation has been REMOVED from util-linux.

The "swapon --summary" output format is deprecated in favor of the
"swapon --show[=<columns>]" that provides better control on output formatting.

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

libsmartcols:
 - this NEW SHARED LIBRARY (but with stable API) allows to print data in
   tables, trees or parsable formats, support colors, sorting etc. The code has
   been originally developed for lsblk(8) and findmnt(8).

cfdisk(8):
 - the code been completely rewritten, now it uses libfdisk and libsmartcols, 
   supports GPT, SUN, SGI and BSD disk labels
 - the command is no more based on CHS addressing

fdisk(8):
 - no more print sizes in 1024-byte blocks, but in real sectors or human 
   readable sizes (MiB, TiB, etc.)
 - allows to modify GPT partition attributes 

lslogins(1):
 - this NEW COMMAND list information about users, groups and system accounts,
   provides  data from last, wtmp, btmp, hust status, password expiration
   settings, SELinux context, nologin setting, etc. 

terminal-colors.d(5):
 - this new directory controls output colorization for various utilities
 - now dmesg(1) supports colors customization, for example
        echo 'alert 37;41' >> /etc/terminal-colors.d/dmesg.scheme
   sets red background for alert messages.

cal(1):
  - supports new option --week to show week numbers

fallocate(1):
  - supports new option --dig-holes to detect and dig holes, it makes the 
    file sparse in-place, without using extra disk space.

fstrim(1):
  - supports new option --all to discard all filesystem on devices that supports
    TRIM operation.

hexdump(1):
  - the original very old BSD has been refactored
  - the output format units support colors now, the colorized regions could be
    specified by value or offset.

libmount:
  - the library allows to use -s (sloppy) mount command line option for all external
    mount helpers. The option was originally NFS specific.

logger(1):
  - supports new option --journald to send structured messages to systemd journal

lsblk(8):
  - supports new command line option --sort <column> to sort output

kill(1) and setterm(1):
  - the commands have been refactored to be more robust
 

The build system has been improved to support to build only explicitly specified
utils or libs (e.g. --disable-all-programs --enable-libblkid to build only 
libblkid).

The project test suite has been improved to be more portable and robust, project
uses travis-ci service now.


Stable maintenance releases between v2.24 and v2.25
---------------------------------------------------

util-linux 2.24.1 [Jan 20 2014]

 * ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.1-ReleaseNotes
   ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.1-ChangeLog

util-linux 2.24.2 [Apr 24 2014]

 * ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.2-ReleaseNotes
   ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.2-ChangeLog


Changes between v2.24 and v2.25
-------------------------------

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


addpart:
   - minor man page improvements  [Ondrej Oprala]
agetty:
   - Fix implementation of option --nonewline. The flag F_NONL was never set.  [Benjamin Robin]
   - Update help usage function  [Benjamin Robin]
   - avoid that agetty nor sulogin are fooled by a running plymouth  [Werner Fink]
   - beside virtual consoles support xvc and hvc device lines as well  [Werner Fink]
   - better support of the special system consoles on S390  [Werner Fink]
   - fix odd check for chardev/tty  [Karel Zak]
   - support the special terminal on first serial line on a S/390  [Werner Fink]
   - update man page  [Karel Zak]
   - use the "best" interface for \4 and \6  [Karel Zak]
bash-completion:
   - update cfdisk  [Karel Zak]
   - update fallocate, fstrim and lsblk  [Karel Zak]
   - update fdisk  [Karel Zak]
blkdiscard:
   - BLKSSZGET fills in an int, not a uint64  [Theodore Ts'o]
blkid:
   - convert superblocks to new calling convention  [Hannes Reinecke]
   - escape quotes in the output  [Karel Zak]
   - remove unused variable  [Sami Kerola]
   - simple typo  [Phillip Susi]
   - stop scanning on I/O error  [Hannes Reinecke]
blockdev:
   - Some minor corrections to the manual  [Bjarni Ingi Gislason]
   - don't use HDIO_GETGEO  [Phillip Susi]
buil-sys:
   - disable in UL_BUILD_INIT() on --disable-all-programs  [Karel Zak]
build:
   - fix some compiler warnings  [Ruediger Meier]
build-sys:
   - add --disable-all-programs  [Karel Zak]
   - add --disable-minix  [Karel Zak]
   - add --enable-pylibmount  [Karel Zak]
   - add --with-smack to config-gen.d  [Karel Zak]
   - add BUILD_ vars for all Linux-only utils  [Karel Zak]
   - add BUILD_CHRT  [Karel Zak]
   - add BUILD_GETOPT  [Karel Zak]
   - add BUILD_{BLKID,FINDFS,WIPEFS,FINDMNT}  [Karel Zak]
   - add BUILD_{COL,COLCRT,COLRM,COLUMN,HEXDUMP,REV,TAILF}  [Karel Zak]
   - add BUILD_{SCRIPT,SCRIPTREPLAY}  [Karel Zak]
   - add BUILD_{SFDISK,BLOCKDEV,MKSWAP,IOSIZE,MKFS}  [Karel Zak]
   - add BUILD_{UUIDGEN,CAL,LOGGER,LOOP,MCOOKIE,NAMEI,WHEREIS}  [Karel Zak]
   - add UL_DEFAULT_ENABLE() and $ul_default_estate  [Karel Zak]
   - add UL_EXCLUDE_ARCH()  [Karel Zak]
   - add disable-all.conf to config-gen  [Karel Zak]
   - add libsmartcols to ko-release-gen script  [Karel Zak]
   - add missing dependencies to libsmartcols  [Karel Zak]
   - add non-libsmartcols.conf  [Karel Zak]
   - add sys-utils/uname26.8 to gitignore  [Karel Zak]
   - cleanup bash-completion/  [Karel Zak]
   - consolidate systemd support  [Karel Zak]
   - don't compile deprecated last(1) on --enable-all-programs  [Karel Zak]
   - don't connect _DEPENDENCIES and _LIBADD  [Karel Zak]
   - enable chfn and chsh by default  [Karel Zak]
   - enable parallel tests for make check  [Karel Zak]
   - exclude Documentation/ from looking for translatable strings  [Benno Schulenberg]
   - fix .h.in usage in libblkid and libmount  [Karel Zak]
   - fix ENABLE_ALL  [Karel Zak]
   - fix UL_BUILD_INIT()  [Karel Zak]
   - fix autopoint gettext version fun  [Ruediger Meier]
   - fix fstrim systemd stuff  [Karel Zak]
   - fix smartcols.pc  [Karel Zak]
   - fix typo, look vs loop (1b15cbd1)  [Ruediger Meier]
   - fix typo, set HAVE_LIBUUID  [Karel Zak]
   - fix typo, sparc vs spark (62b2c024)  [Ruediger Meier]
   - fix update-potfiles script  [Ruediger Meier]
   - fix with_python usage, improve logic  [Karel Zak]
   - fixes for non-Linux systems  [Samuel Thibault]
   - fstrim depends on libmount  [Karel Zak]
   - harmonize some indentation  [Benno Schulenberg]
   - improve the informative message when not building some util  [Benno Schulenberg]
   - libmount/python/__init__.py is always a dist file  [Ruediger Meier]
   - move libsmartcols.so to /lib if they exists  [Karel Zak]
   - ove fdisks to disk-utils  [Karel Zak]
   - release++ (v2.25-rc1)  [Karel Zak]
   - release++ (v2.25-rc2)  [Karel Zak]
   - remove deprecated-mount/  [Karel Zak]
   - remove obsolete wholedisk.c  [Karel Zak]
   - remove unnecessary void casts  [Sami Kerola]
   - restore make distcheck's configure flags  [Ruediger Meier]
   - small fixes to libsmartcols  [Karel Zak]
   - sort gitignore files  [Sami Kerola]
   - support ./configure ADJTIME_PATH=  [Karel Zak]
   - use automake's PYTHON primary for __init__.py  [Ruediger Meier]
   - use gettext 0.18.3 if possible  [Ruediger Meier]
build_sys:
   - fix default estate usage  [Karel Zak]
cal:
   - add input variable names to function prototypes  [Sami Kerola]
   - add month contents structure  [Sami Kerola]
   - added -w|--week for showing week numbers  [Tommi Kyntola]
   - added argument option for -w|--week to display that week  [Tommi Kyntola]
   - added two missing tests  [Tommi Kyntola]
   - all output must use my_putstring  [Ruediger Meier]
   - determine how many header lines are needed at initialization  [Sami Kerola]
   - determine output width at beginning of run and reuse result  [Sami Kerola]
   - fix coding style  [Karel Zak]
   - in man page admit that any week has just one Sunday  [Benno Schulenberg]
   - in man page improve grammar and wording of the reformation limitation  [Benno Schulenberg]
   - limit year to 32 bit value  [Sami Kerola]
   - make day_in_week() use same variable names as other functions  [Sami Kerola]
   - make user request to be part of read-only control struct  [Sami Kerola]
   - mention where Gregorian reformation happen in September 1752  [Sami Kerola]
   - remove optional from short arg -w  [Tommi Kyntola]
   - remove unnecessary static variables  [Sami Kerola]
   - remove unused structure and definition  [Sami Kerola]
   - rename ascii_wnum() to ascii_weeknum()  [Sami Kerola]
   - simplify ascii_weeknum() function  [Sami Kerola]
   - use control structure for run time configuration  [Sami Kerola]
   - use month contents structure for --three printing  [Sami Kerola]
   - use month contents structure for --year printing  [Sami Kerola]
   - various tests for week numbers  [Tommi Kyntola]
cfdisk:
   - accept 's' as well as 'S' for sectors  [Karel Zak]
   - actually translate the partition types in the menu  [Benno Schulenberg]
   - add --zero command line option  [Karel Zak]
   - add UI for linfdisk menus, ask for size  [Karel Zak]
   - add [Sort] operation  [Karel Zak]
   - add braces to ensure operation order  [Sami Kerola]
   - add create lebel UI  [Karel Zak]
   - add help screen  [Karel Zak]
   - add menu action functions  [Karel Zak]
   - add page down/up  [Karel Zak]
   - add parttype dialog  [Karel Zak]
   - add usage() and some basic main() stuff  [Karel Zak]
   - basic UI stuff  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - cleanup, rename menuitem struct  [Karel Zak]
   - coding style, comments, etc.  [Karel Zak]
   - consolidate menu descriptions  [Karel Zak]
   - consolidate menu move code  [Karel Zak]
   - don't offer BSD  [Karel Zak]
   - fix colors initialization  [Karel Zak]
   - fix compile-time error fixes #59  [Wolfgang Richter]
   - fix compiler warning [-Wsign-compare]  [Karel Zak]
   - fix division by zero [clang-analyze]  [Karel Zak]
   - fix header  [Karel Zak]
   - fix possible memory leak [coverity scan]  [Karel Zak]
   - fix slang usage  [Karel Zak]
   - fix typo (undeclared variable since b1f58330)  [Ruediger Meier]
   - fix warning usage, improve 's' help  [Karel Zak]
   - follow default end if possible  [Karel Zak]
   - follow terminal-colors.d  [Karel Zak]
   - improve add parttype UI  [Karel Zak]
   - improve info line and menu updates  [Karel Zak]
   - improve info line, add Delete action  [Karel Zak]
   - improve tree output  [Karel Zak]
   - improve write dialog  [Karel Zak]
   - make code more readable for analyzers [coverity scan]  [Karel Zak]
   - make menus sensitive to ESC  [Karel Zak]
   - menu actions refactoring  [Karel Zak]
   - minor man page improvements  [Ondrej Oprala]
   - refresh man page  [Karel Zak]
   - reorder abstract PT according to output  [Karel Zak]
   - resize UI on SIGWINCH  [Karel Zak]
   - restore the license that was lost in January  [Benno Schulenberg]
   - support <size>S, and long hint messages  [Karel Zak]
   - support partitions list longer than screen LINES  [Karel Zak]
   - supports also vertical menus  [Karel Zak]
   - update man page COLORS section  [Karel Zak]
   - update menu according to the current partition  [Karel Zak]
   - update table index when out of range  [Karel Zak]
   - use /dev/sda by default  [Karel Zak]
   - use \n for messages on stdout and stderr  [Karel Zak]
   - use real partno  [Karel Zak]
   - use tree-mode for extended, colorize freesapce  [Karel Zak]
chcpu:
   - cleanup return codes  [Karel Zak]
   - cleanup stdout/stderr usage  [Karel Zak]
chfn:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
chsh:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
chsh, chfn:
   - add info about non-local support to the man pages  [Karel Zak]
column:
   - fix mem leak [coverity scan]  [Karel Zak]
   - inform user when multibyte conversion error occurs  [Sami Kerola]
cytune:
   - remove from util-linux  [Sami Kerola]
delpart:
   - minor man page improvements  [Ondrej Oprala]
dmesg:
   - -w output not line-buffered  [Karel Zak]
   - add missing include  [Karel Zak]
   - avoid unnecessary variable assignment  [Sami Kerola]
   - don't report EPIPE  [Karel Zak]
   - fix --raw zero timestamp for kmsg  [Karel Zak]
   - move get_boot_time() to lib/timeutils  [Sami Kerola]
   - support colors customization  [Karel Zak]
docs:
   - add a new command boilerplate code  [Sami Kerola]
   - add fdisk mac support to TODO file  [Karel Zak]
   - add lslogins(1) to TODO  [Karel Zak]
   - add note about lsblk  [Karel Zak]
   - add note about make distcheck  [Karel Zak]
   - add patching process to howto-contribute.txt  [Sami Kerola]
   - add pid alis to deprecated.txt  [Karel Zak]
   - add v2.25-ReleaseNotes  [Karel Zak]
   - bring a few more man pages closer to standard formatting  [Benno Schulenberg]
   - bring eight more man pages closer to standard formatting  [Benno Schulenberg]
   - bring five more man pages closer to standard formatting  [Benno Schulenberg]
   - bring four more man pages closer to standard formatting  [Benno Schulenberg]
   - bring one more man page closer to standard formatting  [Benno Schulenberg]
   - bring several man pages closer to standard formatting  [Benno Schulenberg]
   - bring some more man pages closer to standard formatting  [Benno Schulenberg]
   - fix "behaviour" vs. "behavior"  [Karel Zak]
   - fix many wording and some formatting issues in the man page of kill  [Benno Schulenberg]
   - fix minor things in man-page howto  [Karel Zak]
   - fix name and URL of 2.25-rc1  [Benno Schulenberg]
   - fix two command representations in the man page of more  [Benno Schulenberg]
   - grammarize the usage howto  [Benno Schulenberg]
   - improve formatting and wording of a few man pages  [Benno Schulenberg]
   - improve the formatting and wording of two man pages  [Benno Schulenberg]
   - improve the wording and conventions in the man-page howto  [Benno Schulenberg]
   - improve wording and formatting of the man page of cfdisk  [Benno Schulenberg]
   - make hexdump.1 color specification easier to understand  [Sami Kerola]
   - many tiny formatting and wording improvements to man page of mount  [Benno Schulenberg]
   - mount -o nouser is not useful, be clearer about that  [Benno Schulenberg]
   - refresh TODO  [Karel Zak]
   - remove obsolete cfdisk.txt  [Karel Zak]
   - rename libs xml/version.xml to xml/version-utils.xml  [Karel Zak]
   - setterm.1 add missing options to manual page and remove duplicate  [Sami Kerola]
   - setterm.1 add options compatibility note  [Sami Kerola]
   - setterm.1 clean up manual page groff style  [Sami Kerola]
   - update AUTHORS file  [Karel Zak]
   - update TODO  [Karel Zak]
   - update TODO, wipe check for fdisk already implemented  [Karel Zak]
   - update howto regards to build-system changes  [Karel Zak]
   - update links to http //git.kernel.org/ web repository views  [Sami Kerola]
   - update v2.25-ReleaseNotes  [Karel Zak]
fallocate:
   - Add "--dig-holes" option  [Rodrigo Campos]
   - Clarify that space can also be deallocated  [Rodrigo Campos]
   - Hide #ifdef tricks to call fallocate in a function  [Rodrigo Campos]
   - add --verbose, clean up usage()  [Karel Zak]
   - add FALLOC_FL_ZERO_RANGE support  [Lukas Czerner]
   - avoid unnecessary computation  [Sami Kerola]
   - clarify usage()  [Pádraig Brady]
   - code optimalizations  [Karel Zak]
   - fix FALLOC_FL_ZERO_RANGE flag check  [Karel Zak]
   - fix check of number of arguments  [Bernhard Voelker]
   - fix man page synopsis  [Karel Zak]
   - fix missing sentinel for is_nul()  [Karel Zak]
   - improve --dig-holes  [Karel Zak]
   - introduce an option -c to support COLLAPSE_RANGE  [Dongsu Park]
   - make man page readable for humans  [Karel Zak]
   - prefer FALLOC_FL_* flags from libc headers  [Karel Zak]
   - use O_CREAT only for the default behavior  [Karel Zak]
   - use POSIX_FADV_DONTNEED to discard cached data  [Karel Zak]
   - use SEEK_DATA on already sparse files  [Karel Zak]
   - use err_exclusive_options(), cleanup getopt_long() stuff  [Karel Zak]
fdformat:
   - Some minor change to the manual  [Bjarni Ingi Gislason]
   - match variable and print format types  [Sami Kerola]
fdisk:
   - (gpt) add A,B,R,S expert commands to modify attributes  [Karel Zak]
   - (gpt) more human readable info about free space  [Karel Zak]
   - add 'M' to access GPT nested protective/hybrid MBR  [Karel Zak]
   - add long options, cleanup man page and usage()  [Karel Zak]
   - add note about colors to the man page  [Karel Zak]
   - avoid code duplication  [Sami Kerola]
   - don't care about partition type  [Karel Zak]
   - don't use --geom-* prefix for CHS options  [Karel Zak]
   - fix 'p'rint error on empty PT  [Karel Zak]
   - fix nasty coding style  [Karel Zak]
   - fix printf stuff  [Karel Zak]
   - fix usage(), -l [<disk>]  [Karel Zak]
   - merge fdisk-ask.c to fdisk.c  [Karel Zak]
   - print table header as bold  [Karel Zak]
   - remove unnecessary code  [Karel Zak]
   - reorder intro warnings  [Karel Zak]
   - support colors customization  [Karel Zak]
   - use ASKTYPE_MENU  [Karel Zak]
   - use sysfs_devno_is_wholedisk()  [Karel Zak]
findfs:
   - add ability to work with PART{UUID,LABEL}= too  [Karel Zak]
   - use symbolic exit values, and tell about them in manual  [Sami Kerola]
findmnt:
   - add --bytes to print sizes in bytes  [Karel Zak]
   - add --nocanonicalize to avoid realpath()  [Karel Zak]
   - add -U to de-deplicate filesystems  [Karel Zak]
   - cleanup flags  [Karel Zak]
   - cleanup usage()  [Karel Zak]
   - fix memory leak [coverity scan]  [Karel Zak]
   - minimally improve wording of usage text  [Benno Schulenberg]
   - more robust usage of columns[]  [Karel Zak]
   - simplify cache_set_targets()  [Karel Zak]
   - slightly improve wording and formatting in man page  [Benno Schulenberg]
   - use libsmartcols  [Ondrej Oprala]
   - use mnt_cache_set_targets() for non-kernel table  [Eric Rannaud]
flock:
   - Change the 'exit status' man page section to make more sense  [Wieland Hoffmann]
   - document exit status of flock in man page  [Phillip Susi]
   - use nfs4 fallback on EBADF too  [Karel Zak]
fsck:
   - Some typographical corrections to the manual  [Bjarni Ingi Gislason]
   - add ext4 to list of filesystems with progress bars in fsck man page  [Phillip Susi]
   - don't return error if fsck.<type> does not exist  [Karel Zak]
   - uninitialized argument value [clang-analyze]  [Karel Zak]
   - use private lock file rather than whole-disk directly  [Karel Zak]
fsck.cramfs:
   - add option --blocksize  [Ruediger Meier]
   - allow smaller superblock sizes  [Ruediger Meier]
   - cleanup usage() and warning messages  [Karel Zak]
   - ifdef unused outbuffer and page_size  [Ruediger Meier]
   - refactor option -x/--extract  [Ruediger Meier]
   - remove define INCLUDE_FS_TESTS  [Ruediger Meier]
   - rename variable page_size to blksize  [Ruediger Meier]
   - update man page (--extract and --blocksize)  [Ruediger Meier]
fsck.minix:
   - A few typographical corrections to the manual  [Bjarni Ingi Gislason]
fstrim:
   - add --all to discard all filesystem  [Karel Zak]
   - add hint to man page  [Karel Zak]
   - add systemd units  [Thomas Bächler]
   - avoid TOCTOU race  [Sami Kerola]
   - cleanup usage()  [Karel Zak]
   - daily -> weekly in systemd timer  [Karel Zak]
   - de-duplicate list of filesystems  [Karel Zak]
   - fix memory leak [coverity scan]  [Karel Zak]
getopt:
   - getopt.1 The usual doc dir is /usr/share/doc, not .../docs  [Ville Skyttä]
hexdump:
   - Create struct hexdump containing previously global variables.  [Ondrej Oprala]
   - Merge hexsyntax.c into hexdump.c  [Ondrej Oprala]
   - Rename struct _pr to struct hexdump_pr and remove it's typedef  [Ondrej Oprala]
   - add --color to the man page  [Karel Zak]
   - add __attribute__ ((__noreturn__)) to bad*() functions  [Ondrej Oprala]
   - add basic tests  [Ondrej Oprala]
   - add highlighting support  [Ondrej Oprala]
   - add the prefix 'hexdump-' to {conv,display,parse}.c  [Ondrej Oprala]
   - catch memory leaks  [Ondrej Oprala]
   - cleanup of redundant symbols/repeating literals  [Ondrej Oprala]
   - color unit may now be longer than the corresponding format unit  [Ondrej Oprala]
   - convert a variable type according with fmt  [Andrew Vagin]
   - delete redundant typecasts  [Ondrej Oprala]
   - don't access hex after freeing it  [Andrew Vagin]
   - formatting and variable name cleanup  [Ondrej Oprala]
   - get rid of redundant typecasts  [Ondrej Oprala]
   - make addfile() variable names more hinting of their purpose  [Ondrej Oprala]
   - minor formatting improvements  [Ondrej Oprala]
   - minor formatting improvements in display()  [Ondrej Oprala]
   - rename add to add_fmt  [Ondrej Oprala]
   - rename in() to first_letter()  [Ondrej Oprala]
   - rename next{fs,fu,pr} to {fs,fu,pr}list  [Ondrej Oprala]
   - rename rewrite to rewrite_rules  [Ondrej Oprala]
   - rename struct _fs to struct hexdump_fs and remove its typedef  [Ondrej Oprala]
   - rename struct _fu to struct hexdump_fu and remove its typedef  [Ondrej Oprala]
   - rewrite add()  [Ondrej Oprala]
   - rewrite addfile()  [Ondrej Oprala]
   - rewrite addfile() to use getline()  [Ondrej Oprala]
   - rewrite cluttered case statements  [Ondrej Oprala]
   - rewrite escape()  [Ondrej Oprala]
   - rewrite get()  [Ondrej Oprala]
   - rewrite next()  [Ondrej Oprala]
   - rewrite rewrite()  [Ondrej Oprala]
   - rewrite() formatting improvements  [Ondrej Oprala]
   - simplify newsyntax arguments  [Ondrej Oprala]
   - use GNU case ranges where possible  [Ondrej Oprala]
   - use list.h queues and rewrite redundant for cycles  [Ondrej Oprala]
   - use new colors API  [Karel Zak]
   - use skip_space() in add()  [Ondrej Oprala]
   - use xasprintf in conv_c()  [Ondrej Oprala]
   - use xcalloc()  [Karel Zak]
   - use xstrncpy in add()  [Ondrej Oprala]
hwclock:
   - Check drift value in /etc/adjtime  [Stanislav Brabec]
   - Prevent excessive drift values  [Stanislav Brabec]
   - fix possible hang and other set_hardware_clock_exact() issues  [Chris MacGregor]
   - fix typo  [Karel Zak]
   - internationalizing the message of the used interface  [Benno Schulenberg]
   - sometimes one day lasts 23 hours.  [peppe]
include/boottime:
   - add a new file  [Karel Zak]
include/c:
   - do not gettextize a wordless string  [Benno Schulenberg]
   - remove a duplicate include  [Benno Schulenberg]
include/c.h:
   - add macro to print definitions as string  [Sami Kerola]
   - prefer nanosleep() over usleep()  [Karel Zak]
include/carefulputc:
   - cleanup and add fputs_{quoted,nonblank}()  [Karel Zak]
   - remove a duplicate include  [Benno Schulenberg]
include/closestream:
   - don't wipe errno on EPIPE  [Karel Zak]
include/debug:
   - add another debug macros  [Karel Zak]
   - fix coding style  [Karel Zak]
include/list:
   - add void data to the sort cmp function  [Karel Zak]
include/swapheader.h:
   - ensure type sizes  [Sami Kerola]
include/tt:
   - add function to convert table to string  [Karel Zak]
   - add tt_is_empty()  [Karel Zak]
include/xalloc:
   - add xvasprintf()  [Karel Zak]
ionice:
   - Fix output for case ioclass==0  [Michael Bunk]
   - add a missing error message  [Benno Schulenberg]
   - add the way to specify the target processes with pgid and uid  [Masatake YAMATO]
ipcs:
   - cleanup jumplabel stlyes  [Ruediger Meier]
   - do not gettextize wordless strings  [Benno Schulenberg]
   - fix ipc_msg_get_info fallback case  [Ruediger Meier]
   - fix ipc_sem_get_info fallback case  [Ruediger Meier]
   - fix ipc_shm_get_info fallback case  [Ruediger Meier]
   - fix memleak in ipc_*_get_info functions  [Ruediger Meier]
   - fix size_t overflow  [Karel Zak]
isosize:
   - A few typographical changes to the manual  [Bjarni Ingi Gislason]
   - make --divisor to require argument  [Sami Kerola]
   - move file name printing after error determination  [Sami Kerola]
kill:
   - add --verbose option to display what is killed  [Sami Kerola]
   - add copyrights, etc.  [Karel Zak]
   - add parse_arguments() function  [Sami Kerola]
   - coding style, simplify code  [Karel Zak]
   - deprecat invocation as 'pid' command name  [Sami Kerola]
   - fix bug in --all semantic  [Karel Zak]
   - fix coding style  [Sami Kerola]
   - flip all comparions to be in smaller - greater order  [Sami Kerola]
   - make kill-by-name more obvious in man page  [Karel Zak]
   - make options --pid and --queue mutually exclusive  [Sami Kerola]
   - make usage() not to return  [Sami Kerola]
   - move magic numbers in beginning of the file  [Sami Kerola]
   - move sigqueue inputs to control struct  [Sami Kerola]
   - remove unnecessary indirection  [Sami Kerola]
   - rename printsig() to print_signal_name()  [Karel Zak]
   - rename printsignals() to print_all_signalsprint_all_signals()  [Karel Zak]
   - reorder functions to make it more readable  [Karel Zak]
   - return 64 on partial success  [Karel Zak]
   - tell what is wrong rather than output usage()  [Sami Kerola]
   - tiny change in man page  [Karel Zak]
   - use --queue option argument as sigval integer value  [Sami Kerola]
   - use control structure to pass user input to functions  [Sami Kerola]
last:
   - --time-format=full should do the same like -F  [Ruediger Meier]
   - avoid leading "-" before "no logout"  [Ruediger Meier]
   - fix is_phantom() detection  [Sami Kerola]
   - fix is_phantom() logic [coverity scan]  [Karel Zak]
   - fix minor typos in the man page  [Ondrej Oprala]
   - fix uninitialized length  [Ruediger Meier]
   - make session gone determination more robust  [Sami Kerola]
   - minor cleanup if statements  [Ruediger Meier]
lib/boottime:
   - add a new file  [Karel Zak]
lib/canonicalize:
   - make DM canonicalization more robust  [Karel Zak]
lib/color:
   - add colorscheme parser  [Karel Zak]
lib/colors:
   - add info to man pages, add terminal-colors.d.5  [Karel Zak, Ondrej Oprala]
   - add support for @term and /home/kzak  [Karel Zak]
   - add to the man page hint about $HOME stuff  [Karel Zak]
   - allow to temporary disable colors  [Karel Zak]
   - care about colors only on tty()  [Karel Zak]
   - change an include to a local one  [Benno Schulenberg]
   - check for /etc/terminal-colors.d/[util].disable  [Ondrej Oprala]
   - fix colors test  [Karel Zak]
   - remove memory leak  [Sami Kerola]
   - support <name>.enable too  [Karel Zak]
   - support schemes customization  [Karel Zak]
   - update man page  [Karel Zak]
lib/fileutils:
   - add mkdir_p() from libmount  [Karel Zak]
   - add stripoff_last_component() from libmount  [Karel Zak]
   - xalloc stuff in library-like code  [Karel Zak]
lib/ismounted:
   - more robust buffer usage [clang-analyze]  [Karel Zak]
lib/loopdev:
   - comparing an array to null is not useful [coverity scan]  [Karel Zak]
lib/loopdev.c:
   - reset errno before strtol() call  [Yuriy Nazarov]
lib/mbalign:
   - add mbs_safe_width() from tt.c  [Karel Zak]
   - report also size in bytes  [Karel Zak]
lib/mbsalign:
   - split mbs_safe_encode()  [Karel Zak]
lib/pager:
   - use names when referring to standard file descriptors  [Sami Kerola]
lib/path:
   - add path_strdup()  [Karel Zak]
lib/procutils:
   - check fgets() return value [coverity scan]  [Karel Zak]
   - notice setuid() process ownership changes  [Sami Kerola]
   - reset errno before strtol() call  [Sami Kerola]
lib/strutils:
   - fix parse_size() return code  [Karel Zak]
   - support dec.points in parse_size()  [Karel Zak]
   - use proper return codes in parse_size()  [Karel Zak]
lib/sysfs:
   - add sysfs_devno_is_lvm_private() from libblkid  [Karel Zak]
   - add sysfs_devno_is_wholedisk()  [Karel Zak]
   - fix compiler warning [-Wunused-variable]  [Karel Zak]
   - fix scanf format string [coverity scan]  [Karel Zak]
   - make dirent d_type usage more robust  [Karel Zak]
lib/terminal-colors.d:
   - lib/terminal-colors.d.5 Improve the typesetting of the manual  [Bjarni Ingi Gislason]
lib/timeutils:
   - fix memory leak  [Sami Kerola]
   - remove get_boot_time from libcommon  [Karel Zak]
lib/tt:
   - add TT_FL_MAX to fill screen  [Karel Zak]
   - add reduce term width functionality  [Karel Zak]
   - add tb_get_nlines()  [Karel Zak]
   - add tt_line_get_userdata()  [Karel Zak]
   - don't hardcode stdout as output  [Karel Zak]
   - keep track about output order  [Karel Zak]
lib/tt.c:
   - Goodbye!  [Ondrej Oprala]
libblkid:
   - (nilfs2) check also backup superblock  [Karel Zak]
   - (zfs) let's keep compiler happy  [Karel Zak]
   - Identify extN file system properly  [Lukas Czerner]
   - add blkid_partlist_get_partition_by_partno()  [Karel Zak]
   - add extra checks to XFS prober  [Karel Zak]
   - cleanup internal return codes  [Karel Zak]
   - comparing an array to null is not useful [coverity scan]  [Karel Zak]
   - convert GPT attributes to host endianness  [Karel Zak]
   - correct the return values in squashfs probe  [David Shea]
   - detect alone PMBR  [Karel Zak]
   - detect squashfs 3 vs 4  [Ruediger Meier]
   - fix compiler warning [-Wimplicit-function-declaration]  [Karel Zak]
   - fix memory leak in blkid_parse_tag_string()  [Karel Zak]
   - fix partitions probing  [Karel Zak]
   - fix probe_ddf() [clang-analyze]  [Karel Zak]
   - fix return codes from PART_ENTRY_* probing  [Karel Zak]
   - fix sgi PT parser to report system partitions  [Karel Zak]
   - fix swap-area version  [Karel Zak]
   - ignore private LVM devices  [Karel Zak]
   - improve comment  [Karel Zak]
   - make new_partition() more robust  [Karel Zak]
   - no more probe for btrfs backup superblock  [Karel Zak]
   - remove private function from docs  [Karel Zak]
   - use include/debug.h  [Ondrej Oprala]
   - use new debug functions  [Karel Zak]
libblkid/libblkid.3:
   - Improve the typsetting of the manual  [Bjarni Ingi Gislason]
libcommon:
   - add common debugging routines  [Ondrej Oprala]
   - define more debugging macros  [Ondrej Oprala]
   - don't mention lib versions in debug macros  [Ondrej Oprala]
libfdisk:
   - (bsd) fix output  [Karel Zak]
   - (bsd) remove get_partition_type()  [Karel Zak]
   - (bsd) use new get_part() API  [Karel Zak]
   - (dos) be more verbose when change bootable flag  [Karel Zak]
   - (dos) calculation of total size based on CHS in check function  [Thorsten Wilmer]
   - (dos) consolidate partition end-offset code  [Karel Zak]
   - (dos) count fisrt usable LBA to total number of used sectors  [Karel Zak]
   - (dos) fix ext_index usage  [Karel Zak]
   - (dos) fix free part counter  [Karel Zak]
   - (dos) fix log.partition delete  [Karel Zak]
   - (dos) improve logical partition reorder command  [Karel Zak]
   - (dos) make EBR parser more robust  [Karel Zak]
   - (dos) remove get_partition_type()  [Karel Zak]
   - (dos) use check() for dos-comaptible mode only  [Karel Zak]
   - (dos) use new list() and get_part() API  [Karel Zak]
   - (dos) warn on type 0  [Karel Zak]
   - (gpt) add /home GUID  [Karel Zak]
   - (gpt) allow to work with hybrid GPT  [Karel Zak]
   - (gpt) fix last LBA code for S_ISREG  [Karel Zak]
   - (gpt) implement 'fix order' command  [Karel Zak]
   - (gpt) improve and cleanup recovery code  [Karel Zak]
   - (gpt) initialize last_lba, cleanup pa->{start,size} usage  [Karel Zak]
   - (gpt) recover from corrupted primary/backup PT  [Karel Zak]
   - (gpt) remove get_partition_type()  [Karel Zak]
   - (gpt) use entry attributes as bitmap  [Karel Zak]
   - (gpt) use fdisk_column  [Karel Zak]
   - (mbr) fix logical chain termination  [Karel Zak]
   - (sgi) cleanup, add infor about whole-disk partition  [Karel Zak]
   - (sgi) generate partname according to partition position  [Karel Zak]
   - (sgi) remove get_partition_type()  [Karel Zak]
   - (sgi) use new list() and get_part() API  [Karel Zak]
   - (sun) add info about whole-disk partition  [Karel Zak]
   - (sun) fix end sectors with +1 error  [Karel Zak]
   - (sun) remove get_partition_type()  [Karel Zak]
   - (sun) use new list() and get_part() API  [Karel Zak]
   - add ASKTYPE_MENU and context last_lba  [Karel Zak]
   - add dump functions, make freespace code generic  [Karel Zak]
   - add fdisk_partition_*_follow_default()  [Karel Zak]
   - add fdisk_table_get_nents()  [Karel Zak]
   - add fdisk_table_get_partition()  [Karel Zak]
   - add generic function to check partitions order  [Karel Zak]
   - add new list() columns, cleanup  [Karel Zak]
   - add partitions reorder operation to label API  [Karel Zak]
   - add reference counting to fdisk_partition  [Karel Zak]
   - add struct fdisk_partition  [Karel Zak]
   - add support to list free space  [Karel Zak]
   - add table container  [Karel Zak]
   - add table sort function, use it in get_freespace  [Karel Zak]
   - again improve freespace code  [Karel Zak]
   - avoid two compiler warnings about wrong print formats  [Benno Schulenberg]
   - clean up cylinder column  [Karel Zak]
   - clean up debug output  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - do not do the same thing twice in single if statement  [Sami Kerola]
   - don't ask for pri/log if wanted start within extended partition  [Karel Zak]
   - don't count special whole-disk partitions  [Karel Zak]
   - extend API definition to list info about partitions  [Karel Zak]
   - fix %ju -> %zu  [Karel Zak]
   - fix bsd_translate_fstype() for alpha  [Ruediger Meier]
   - fix fdisk_context_assign_device() comment  [Karel Zak]
   - fix freesapce detection for nested partitions  [Karel Zak]
   - fix logical partition reorder command  [Karel Zak]
   - fix possible memory leak [clang-analyze]  [Karel Zak]
   - fix printf stuff  [Karel Zak]
   - follow requested size rather than use all available space  [Karel Zak]
   - implement generic functions for FDISK_COL_ stuff  [Karel Zak]
   - improve conversion to string  [Karel Zak]
   - improve freesapce detection  [Karel Zak]
   - initialize last_lba  [Karel Zak]
   - make disk sync() optional  [Karel Zak]
   - make first sector buffer usage more robust  [Karel Zak]
   - make qsort_r() optional  [Karel Zak]
   - move partition stuff to partition.c  [Karel Zak]
   - properly implement read-only mode  [Karel Zak]
   - remove fdisk_colon()  [Karel Zak]
   - remove fdisk_get_partition_type()  [Karel Zak]
   - remove label specific get_freespace  [Karel Zak]
   - remove tt stuff from API  [Karel Zak]
   - rewrite freespace code  [Karel Zak]
   - support extended attributes modification  [Karel Zak]
   - support nested MBR  [Karel Zak]
   - tiny clean up in fdisk_table_to_string()  [Karel Zak]
   - update GPT partition types  [Karel Zak]
   - use fdisk_table to generate output  [Karel Zak]
   - use include/debug.h  [Ondrej Oprala]
   - use new debug functions  [Karel Zak]
   - use partition template  [Karel Zak]
   - warn about obsolete signatures on the device  [Karel Zak]
libmount:
   - FS id and parent ID could be zero  [Karel Zak]
   - accept (deleted) path suffix in mountinfo file  [Karel Zak]
   - add efivarfs to the list of pseudo filesystems  [Karel Zak]
   - add missing assert()  [Karel Zak]
   - add mnt_table_uniq_fs()  [Karel Zak]
   - add mnt_tag_is_valid()  [Karel Zak]
   - add statfs_magic.h  [Karel Zak]
   - adjust the ordering of a #define and tweak some comments  [Benno Schulenberg]
   - allow to use -s (sloppy) for all external helpers  [Karel Zak]
   - always use mnt_resolve_target() in mnt_fs_match_target()  [Karel Zak]
   - cgroup magic already defined  [Karel Zak]
   - cleanup fix_optstr() regards to selinux and smack  [Karel Zak]
   - define BTRFS_TEST_MAGIC if missing  [Bernhard Voelker]
   - don't touch mtab when mount -n specified  [Karel Zak]
   - fix scanf format string [coverity scan]  [Karel Zak]
   - fix typo in smack path  [Karel Zak]
   - further debug.h integration  [Ondrej Oprala]
   - initialize *root to NULL in mnt_table_get_root_fs  [Thomas Bächler]
   - make the mountinfo parser more robust  [Karel Zak]
   - mnt_resolve_path  don't canonicalize fs->target for swap  [Eric Rannaud]
   - mnt_resolve_path  use strcmp() only if both are canonical  [Eric Rannaud]
   - mnt_resolve_target  tiptoe around active mount points  [Eric Rannaud]
   - remove smackfs* option when SMACK not enabled  [Karel Zak]
   - silence some docs warnings  [Ondrej Oprala]
   - special treatment for auto in fstype pattern  [Karel Zak]
   - update utab after successful extern helper mount  [Karel Zak]
   - use macros from include/debug.h  [Ondrej Oprala]
   - use new debug functions  [Karel Zak]
libsmartcols:
   - (docs) reorder functions in version section  [Karel Zak]
   - add SCOLS_FL_MAX  [Karel Zak]
   - add basic files  [Ondrej Oprala]
   - add cells  [Ondrej Oprala]
   - add columns  [Karel Zak]
   - add debug and version functions  [Karel Zak]
   - add debug messages  [Karel Zak]
   - add function to convert table to string  [Karel Zak]
   - add iterator  [Ondrej Oprala]
   - add lines  [Karel Zak, Ondrej Oprala]
   - add missing COPYING file  [Karel Zak]
   - add missing copyright notifications  [Ondrej Oprala]
   - add note about deallocations  [Karel Zak]
   - add reduce term width functionality  [Karel Zak]
   - add scols_sort_table()  [Karel Zak, Shakur Shams Mullick]
   - add scols_table_is_empty()  [Ondrej Oprala]
   - add separator getters/setters  [Ondrej Oprala]
   - add symbols  [Ondrej Oprala]
   - add table code  [Karel Zak]
   - add table struct, cleanup refcounting  [Karel Zak]
   - add test  [Ondrej Oprala]
   - allow to read lines as tree  [Karel Zak]
   - always deallocate in scols_reset_cell()  [Karel Zak]
   - avoid variable dereference after release  [Sami Kerola]
   - check recount_widths() return value  [Karel Zak]
   - clean up flags  [Karel Zak]
   - clean up flags usage  [Karel Zak]
   - clean up test.c example  [Karel Zak]
   - colors may now be specified as human-readable strings  [Ondrej Oprala]
   - documentation  [Ondrej Oprala]
   - don't colorize tree ascii art  [Karel Zak]
   - don't mix width (in cells) and size (in bytes)  [Karel Zak]
   - fill the symbol version file  [Ondrej Oprala]
   - fix a usage example  [Ondrej Oprala]
   - fix buffer usage  [Karel Zak]
   - fix docs  [Karel Zak]
   - fix padding  [Karel Zak]
   - fix test  [Karel Zak]
   - improve docs  [Karel Zak]
   - improve line and cell separators  [Karel Zak]
   - include stdio  [Ondrej Oprala]
   - init symbols when necessary  [Karel Zak]
   - move some code around  [Ondrej Oprala]
   - remove unnecessary code  [Karel Zak]
   - resuse buffer for encoded data  [Karel Zak]
   - revert the column flags API  [Ondrej Oprala]
   - rewrite test code to tree(1)-like util  [Karel Zak]
   - separate flags, add getters/setters  [Ondrej Oprala]
   - support alternative streams  [Karel Zak]
   - use buffer struct in table_print.c  [Karel Zak]
   - use new colors API  [Karel Zak]
libuuid:
   - (man/uuid_time.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_clear.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_compare.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_copy.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_generate) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_is_null.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_parse.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - (uuid_unparse.3) Improve the typesetting of the manual  [Bjarni Ingi Gislason]
linfdisk:
   - align free space  [Karel Zak]
logger:
   - allow user to send structured journald messages  [Sami Kerola]
   - check numeric priority and facility input values  [Sami Kerola]
   - fail when io vector number exceeds maximum  [Sami Kerola]
login:
   - extract get_hushlogin_status  [Ondrej Oprala]
   - fix minor typos in the man page  [Ondrej Oprala]
losetup:
   - clean up columns[] usage  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - don't clear FD at EBUSY error in loopcxt_setup_device()  [Stanislav Brabec]
   - don't ignore EBUSY in losetup when the loop device is given  [Stanislav Brabec]
   - fix -f on systems without /dev/loop-control  [Karel Zak]
   - remove warning for unsupported -e and -E  [Karel Zak]
   - return EXIT_FAILURE on unsuccessful -f  [Karel Zak]
   - tiny change to usage()  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
   - wait for udev  [Karel Zak]
losetup, agetty:
   - remove unnecessary if's before free()  [Sami Kerola]
losetup, mount:
   - remove --pass-fd at all  [Karel Zak]
lsblk:
   - add --sort <column>  [Karel Zak]
   - add -O option to show all available columns  [Masatake YAMATO]
   - add PARTFLAGS column  [Karel Zak]
   - add PARTTYPE tag  [Michael Marineau]
   - check number of used columns  [Karel Zak]
   - clean up data preparation  [Karel Zak]
   - differentiate between infos[] and columns[]  [Karel Zak]
   - fix -D segfault  [Karel Zak]
   - fix, set default sort_id = -1  [Ruediger Meier]
   - remove unnecessary code  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
lscpu:
   - avoid double free  [Sami Kerola]
   - avoid use of bzero() in favor of memset()  [Sami Kerola]
   - clean up scols usage  [Karel Zak]
   - cleanup, use _PATH_SYS_CPU/NODE  [Ruediger Meier]
   - detect OS/400 and pHyp hypervisors  [Ruediger Meier]
   - don't abort if cache size is unknown  [Ruediger Meier]
   - don't assume filesystem supports d_type when searching for NUMA nodes  [Stewart Smith]
   - fix ifdef HAVE_sys_io_h [checkconfig]  [Karel Zak]
   - improve vmware detection  [Ruediger Meier]
   - minor cleanup and improve hypervisor detection  [Ruediger Meier]
   - read_hypervisor_dmi  only fallback to memory scan on x86/x86_64  [Stewart Smith]
   - sort NUMA nodes to keep output human readable  [Karel Zak]
   - support discontinuous NUMA nodes  [Karel Zak]
   - support non sequentially numbering of CPUs  [Alexander Troosh]
   - use libsmartcols  [Ondrej Oprala]
lslocks:
   - clean up columns[] usage  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
lslogins:
   - NLS for all messages  [Karel Zak]
   - add --noheadings  [Karel Zak]
   - add FAILED-LOGIN to pretty output  [Karel Zak]
   - add functionality  [Ondrej Oprala]
   - add option --iso  [Ondrej Oprala]
   - add option --time-format  [Ondrej Oprala]
   - add readtump.h header  [Ondrej Oprala]
   - add support for multiple time formats  [Ondrej Oprala]
   - align to right 0|1 columns  [Karel Zak]
   - also add readutmp.c  [Ondrej Oprala]
   - clean up password hash check  [Karel Zak]
   - cleanup -a output  [Karel Zak]
   - cleanup default outputs  [Karel Zak]
   - cleanup fill_table()  [Karel Zak]
   - cleanup some command line options  [Karel Zak]
   - cleanup status[] usage  [Karel Zak]
   - cleanup time formats  [Karel Zak]
   - cleanup usage()  [Karel Zak]
   - comment-in an expensive realloc  [Ondrej Oprala]
   - conding style changes  [Karel Zak]
   - count per-user processes  [Ondrej Oprala]
   - fix nologins check  [Karel Zak]
   - fix option exclusivity  [Ondrej Oprala]
   - fix pretty-print columns  [Karel Zak]
   - improve COL_PWD_WARN and COL_NPROCS desc  [Karel Zak]
   - improve nologins and shadow usage  [Karel Zak]
   - improve pretty output  [Karel Zak]
   - improve supplementary groups code, add SUPP-GIDS  [Karel Zak]
   - improve the columns information  [Benno Schulenberg]
   - improve wording and formatting of the man page  [Benno Schulenberg]
   - make --notruncate more robust  [Karel Zak]
   - make it work  [Ondrej Oprala]
   - mention --time-format in usage  [Ondrej Oprala]
   - more robust usage of columns[]  [Karel Zak]
   - move to login-utils  [Ondrej Oprala]
   - pretty printing and extended -l,-g  [Ondrej Oprala]
   - print systemd journal logs  [Karel Zak, Ondrej Oprala]
   - remove --sort-by-name  [Karel Zak]
   - store users in a tree  [Ondrej Oprala]
   - sync man page and usage()  [Karel Zak]
   - use bit-array, cleanup SELinux code  [Karel Zak]
   - use thread-safe functions  [Ondrej Oprala]
lslogins(1):
   - skeleton and argparsing for a new utility  [Ondrej Oprala]
man:
   - Syntax and spelling fixes.  [Ville Skyttä]
mcookie:
   - add --max-size option  [Sami Kerola]
   - allow --file option be defined multiple times  [Sami Kerola]
   - use control structure, and fix usage()  [Sami Kerola]
   - use lib/randutils  [Sami Kerola]
   - use same variable type consistently  [Sami Kerola]
mkfs:
   - Some typographical changes to the manual  [Bjarni Ingi Gislason]
   - mark this wrapper as DEPRECATED  [Karel Zak]
mkfs.bfs:
   - One typographical correction to the manual  [Bjarni Ingi Gislason]
mkfs.cramfs:
   - Some typographical corrections to the manual  [Bjarni Ingi Gislason]
   - fix crash when -b 0  [Ruediger Meier]
   - use defined failure name rather than magic value  [Sami Kerola]
mkfs.minix:
   - Some typographical changes in the manual  [Bjarni Ingi Gislason]
   - fix fscanf() format string [coverity scan]  [Karel Zak]
mkswap:
   - Some minor typographical corrections to the manual  [Bjarni Ingi Gislason]
   - fix compiler warning [-Wunused-variable]  [Karel Zak]
   - remove cruft from the man page  [Phillip Susi]
   - remove legacy swap structure  [Sami Kerola]
   - remove unnecessary usage output  [Sami Kerola]
mkswap, swaplabel:
   - move version number to header  [Sami Kerola]
more:
   - fix double free crash  [Sami Kerola]
   - fix mem leak [coverity scan]  [Karel Zak]
   - improve formatting and wording of man page and help text  [Benno Schulenberg]
mount:
   - add btrfs to mount.8  [Gui Hecheng]
   - add note about "noauto" to --all description  [Karel Zak]
   - add note about order for -a to the man page  [Karel Zak]
   - apply "nofail" to MNT_ERR_NOSOURCE libmount error  [Karel Zak]
   - correct mount man page default iso9660 permission  [Phillip Susi]
   - fix --all and nofail return code  [Karel Zak]
   - fix man mount page type  [Phillip Susi]
   - fix man page [checkmans]  [Karel Zak]
   - fix tiny typo in man page  [Stephan Müller]
   - improve -s man mage info  [Karel Zak]
   - make NAME=value tags usable for non-root  [Karel Zak]
   - more hints about default mount options to man page  [Karel Zak]
   - mount.8 Some typographical and prefix corrections to the manual  [Bjarni Ingi Gislason]
   - mount.8 fix grammar  [Phillip Susi]
   - note that -c unused for mount.<type> in man page  [Karel Zak]
   - remove obsolete and confusing statement from mount.8  [Phillip Susi]
   - update XFS mount.8 allocsize=  [Karel Zak]
   - update info about mtab in mount.8  [Karel Zak]
   - update man page ext3/4 mount options  [Carlos Maiolino]
   - update mount.8 about barrier mount options defaults  [Ruediger Meier]
namei:
   - align missing files with rest of the print out  [Sami Kerola]
nologin:
   - minor man page improvements  [Ondrej Oprala]
nsenter:
   - add + to getopt_long()  [Karel Zak]
   - fix set{gid,uid} order,drop supplementary groups  [Karel Zak]
partx:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - cleanup libsmartcols usage  [Karel Zak]
   - fix --update ranges and out of order tables  [Scott Moser]
   - make dirent d_type usage more robust  [Karel Zak]
   - use blkid_partlist_get_partition_by_partno()  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
pg:
   - pg.1 Add -h, --help, -V, --version  [Jari Aalto]
   - pg.1 Move (plus) options near (minus) option at the beginning  [Jari Aalto]
po:
   - add '--no-wrap' to msgmerge, to not wrap long message lines  [Benno Schulenberg]
   - merge changes  [Karel Zak]
   - update cs.po (from translationproject.org)  [Petr Písař]
   - update da.po (from translationproject.org)  [Joe Hansen]
   - update de.po (from translationproject.org)  [Mario Blättermann]
   - update es.po (from translationproject.org)  [Antonio Ceballos Roa]
   - update fi.po (from translationproject.org)  [Lauri Nurmi]
   - 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 pt_BR.po (from translationproject.org)  [Rafael Ferreira]
   - update uk.po (from translationproject.org)  [Yuri Chornoivan]
   - update vi.po (from translationproject.org)  [Trần Ngọc Quân]
   - update zh_CN.po (from translationproject.org)  [Wylmer Wang]
prlimit:
   - clean up columns[] usage  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - remove repeating words from man page  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
pylibmount:
   - correctly import from pylibmount.so  [Dave Reisner]
   - import directly from pylibmount in tests  [Karel Zak]
   - remove unncessary subdirectory  [Karel Zak]
raw:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
rename:
   - fix mem leak [coverity scan]  [Karel Zak]
   - remove reference to mmv gtom man page  [Karel Zak]
renice:
   - correct max priority in renice man page  [Phillip Susi]
runuser:
   - fix minor typos in the man page  [Ondrej Oprala]
script:
   - --quiet option is not quiet.  [James Hunt]
   - Also flush writes to timing file.  [Jesper Dahl Nyerup]
   - check that stdin is a terminal  [Karel Zak]
   - clean up code to genenrate Star/Done messages  [Karel Zak]
   - clean up files usage  [Karel Zak]
   - don't call TIOCGWINSZ in signal handler  [Karel Zak]
   - don't wait for empty descriptors if child is dead  [Karel Zak]
   - fix a rare deadlock after child termination  [Csaba Kos]
   - fix inconsistent -q, use poll() rather then O_NONBLOCK  [Karel Zak]
   - fix spurious exit from input read loop on EINTR.  [Csaba Kos]
   - restore errno in signal handler  [Karel Zak]
   - script input redirection / eof handling  [Karel Zak]
   - silence the done message on --quiet as well  [Andreas Henriksson]
   - time from end of read() call partially fixes #58  [Wolfgang Richter]
   - use all-io.h to make the code more robust  [Karel Zak]
scriptreplay:
   - Add --maxdelay option.  [Jesper Dahl Nyerup]
   - no need to skip first time value or last bytes fixes #58  [Wolfgang Richter]
setarch:
   - Fix ppc64le architectures  [Anton Blanchard]
   - add generic support for setarch $(uname -m) ...  [Ruediger Meier]
   - add shortcut binary uname26  [Ruediger Meier]
   - flush output streams before exec  [Ruediger Meier]
setpriv:
   - Fix --apparmor-profile  [Andy Lutomirski]
   - Fix --selinux-label  [Andy Lutomirski]
   - avoid alloca() use xmalloc() instead  [Sami Kerola]
   - simplify usage()  [Karel Zak]
setterm:
   - add init_terminal() to make main() shorter  [Sami Kerola]
   - add option control structure  [Sami Kerola]
   - add set_blanking() action  [Sami Kerola]
   - add usage() descriptions  [Sami Kerola]
   - clean up includes  [Sami Kerola]
   - clean up screendump()  [Sami Kerola]
   - cleanup printf() usage  [Karel Zak]
   - convert remaining magic values to symbolic references  [Sami Kerola]
   - convert various constant number definitions to enums  [Sami Kerola]
   - correct usage() bright color argument  [Sami Kerola]
   - fix 'bright' in usage, remove unnecessary error message  [Karel Zak]
   - fix -dump man page info  [Karel Zak]
   - improve error messages  [Sami Kerola]
   - improve formatting and wording of usage text  [Benno Schulenberg]
   - improve perform_sequence() coding style  [Sami Kerola]
   - improve wording and formatting of the man page  [Benno Schulenberg]
   - make -msglevel 0 to work as is did earlier  [Sami Kerola]
   - mark some options to be exclusive with each other  [Sami Kerola]
   - move show_tabs() and screendump() functions  [Sami Kerola]
   - recommend long options with double hyphen  [Sami Kerola]
   - remove devfs and /dev/vcsa0 support  [Sami Kerola]
   - remove ulcolor and hbcolor duplicates  [Sami Kerola]
   - remove unnecessary variable  [Sami Kerola]
   - remove unused code  [Sami Kerola]
   - remove usage comment segment  [Sami Kerola]
   - tell user when options does not effect  [Sami Kerola]
   - use getopt_long_only() for option parsing  [Sami Kerola]
   - use string utils to numeric parsing  [Sami Kerola]
   - various visual terminal effects are not console specific  [Sami Kerola]
sfdisk:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - merge partname.c  [Karel Zak]
   - suppress Linux-irrelevant warnings with -L  [Petr Uzel]
   - use sysfs_devno_is_wholedisk()  [Karel Zak]
strutils:
   - add skip_space() function  [Ondrej Oprala]
su:
   - don't use kill(0, ...) when propagate signal  [Karel Zak]
   - fix minor typos in the man page  [Ondrej Oprala]
sulogin:
   - check result of the open() [coverity scan]  [Karel Zak]
   - don't use uninitialized struct sigaction [coverity scan]  [Karel Zak]
   - find a suitable console device  [Werner Fink]
   - minor man page improvements  [Ondrej Oprala]
   - use dirent->d_type when scans /dev  [Karel Zak]
swaplabel:
   - Improve the typesetting of the manual  [Bjarni Ingi Gislason]
   - wrong version number in check  [Sami Kerola]
swapon:
   - align --summary fields  [Sami Kerola]
   - clean up columns[] usage  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - mark --sumarry as deprecated  [Karel Zak]
   - swaps with legacy version label are not supported  [Sami Kerola]
   - use libsmartcols  [Ondrej Oprala]
swapon, swapheader, mkswap:
   - move swap signature to header  [Sami Kerola]
switch_root:
   - make dirent d_type usage more robust  [Karel Zak]
   - verify initramfs by f_type, not devno  [Dave Reisner]
taskset:
   - fix PERMISSIONS section of taskset man page  [Rik van Riel]
term-utils:
   - avoid error message string length couting errors  [Sami Kerola]
tests:
   - add .BE hexdump test results (from s390)  [Karel Zak]
   - add TERM= to all cal(1) tests  [Karel Zak]
   - add basic test case for ipcs -m -i n  [Ruediger Meier]
   - add basic test case for ipcs -q -i n  [Ruediger Meier]
   - add basic test case for ipcs -s -i n  [Ruediger Meier]
   - add exit case "KNOWN FAILED"  [Ruediger Meier]
   - add fdisk 'f' command MBR test  [Karel Zak]
   - add function ts_check_losetup  [Ruediger Meier]
   - add function ts_check_prog  [Ruediger Meier]
   - add isosize --sectors and --divisor tests  [Sami Kerola]
   - add kill --queue check  [Sami Kerola]
   - add kill_functions.sh to avoid duplicate code  [Karel Zak]
   - add lscpu IBM pSeries test data  [Ruediger Meier]
   - add lscpu dump for ppc cpu with no cache size  [Ruediger Meier]
   - add partx --update test  [Karel Zak]
   - add signal receiver program  [Sami Kerola]
   - add sparc64 lscpu test  [Karel Zak]
   - add test case for last -time-format=full  [Ruediger Meier]
   - add utmpdump-circle test (arch independent)  [Ruediger Meier]
   - add vbox lscpu dump  [Ruediger Meier]
   - align last.1 with recent phantom detection  [Sami Kerola]
   - allow test options to be overridden by env  [Ruediger Meier]
   - allow to add or override test suite options  [Ruediger Meier]
   - avoid executing dirname(1) command  [Sami Kerola]
   - cal  do not let --week=<num> to adjust requested month  [Sami Kerola]
   - cal  take account week numbers when determing month length  [Sami Kerola]
   - cal(1) is year is limited to signed 32 bit value  [Sami Kerola]
   - call ts_init_env as early as possible  [Ruediger Meier]
   - check /proc availability, and go-around if it is incomplete  [Sami Kerola]
   - check commands needed for running a test exist  [Sami Kerola]
   - check for mkfs.ext{2,3,4}  [Ruediger Meier]
   - check kill all user processes  [Sami Kerola]
   - check kill is converting signals names correctly  [Sami Kerola]
   - check kill print pid option  [Sami Kerola]
   - check swaplabel, and perform more swapon boundary tests  [Sami Kerola]
   - check various ways to specify kill signal  [Sami Kerola]
   - cleanup fallocate  [Karel Zak]
   - cleanup ts_scsi_debug_init  [Ruediger Meier]
   - cleanup, remove unused lscpu output  [Ruediger Meier]
   - consolidate some checks for commands  [Ruediger Meier]
   - fdisk added a partitions order message (8b60872e)  [Ruediger Meier]
   - fdisk now prints SGI system partitions too  [Karel Zak]
   - fix "KNOWN FAILED" for subtests  [Ruediger Meier]
   - fix fdisk GPT test  [Ruediger Meier]
   - fix fdisk/bsd for big endian systems  [Ruediger Meier]
   - fix fsck.cramfs for systems with certain page sizes  [Ruediger Meier]
   - fix hexdump for big endian  [Ruediger Meier]
   - fix hexdump, add ts_finalize  [Ruediger Meier]
   - fix kill problems  [Ruediger Meier]
   - fix last for bigendian  [Ruediger Meier]
   - fix python tests for dist and out-of-tree builds  [Ruediger Meier]
   - fix trailing spaces in cal(1) stuff  [Karel Zak]
   - fix utmpdump/ipv6tobin for bigendian  [Ruediger Meier]
   - fix utmpdump/ipv6totxt for bigendian  [Ruediger Meier]
   - fix utmpdump/to-binary for bigendian  [Ruediger Meier]
   - fix utmpdump/to-text for bigendian  [Ruediger Meier]
   - fix var names  [Ruediger Meier]
   - fix, typo schedutils/cpuset  [Ruediger Meier]
   - getting paraller_jobs more robust  [Ruediger Meier]
   - ignore deprecated last  [Ruediger Meier]
   - introduce TS_CMD_UUIDGEN (never use installed one)  [Ruediger Meier]
   - ipcs/limits2 is known to fail  [Ruediger Meier]
   - kill_functions.sh needs gawk (skip if sourced)  [Ruediger Meier]
   - last  skip when last is not enabled  [Mike Frysinger]
   - libmount  skip tabfiles-py when pylibmount is disabled  [Mike Frysinger]
   - make tests to run parallel  [Sami Kerola]
   - merge last/ and utmpdump/ into new utmp/ dir  [Ruediger Meier]
   - provide missing test data for "last" on exotic archs  [Ruediger Meier]
   - quote generated arguments for ipcrm  [Ruediger Meier]
   - refresh fdisk outputs  [Karel Zak]
   - rely on ts_init_py only  [Karel Zak]
   - remove deprecated mount tests  [Ruediger Meier]
   - remove test_fsck.cramfs (reverts 6c32ae78)  [Ruediger Meier]
   - remove test_wholedisk  [Karel Zak]
   - return error if failures file not usable  [Ruediger Meier]
   - rewrite hwclock test  [Ruediger Meier]
   - run tests in deterministic order  [Ruediger Meier]
   - script/race would work with variable loop count  [Ruediger Meier]
   - skip some last tests if no dns support  [Ruediger Meier]
   - skip umount-alltargets on regular mtab  [Karel Zak]
   - skip utmpdump tests for exotic archs  [Ruediger Meier]
   - some more tests need loop support  [Ruediger Meier]
   - split last into dns and nodns subtests  [Ruediger Meier]
   - split off losetup scsi_debug part  [Ruediger Meier]
   - style Makefile and make output  [Ruediger Meier]
   - swaplabel needs to respect pagesize  [Ruediger Meier]
   - test corruted GPT headers  [Karel Zak]
   - try hard to create swaplabel's test image  [Ruediger Meier]
   - ts_device_init remove useless error handling  [Ruediger Meier]
   - ts_device_init requires loop support  [Ruediger Meier]
   - ts_mount knows which fs is expected  [Ruediger Meier]
   - ts_mount validates error message  [Ruediger Meier]
   - ts_scsi_debug_init must not run in a subshell  [Ruediger Meier]
   - ts_scsi_debug_init skip instead of die  [Ruediger Meier]
   - update Py parse mountinfo test  [Karel Zak]
   - update blkid swap tests  [Karel Zak]
   - update build tests  [Karel Zak]
   - update build-sys tests  [Karel Zak]
   - update fdisk MBR and SUN tests  [Karel Zak]
   - update fdisk sun test  [Karel Zak]
   - update ionice test  [Karel Zak]
   - update libmount tabdiff tests  [Karel Zak]
   - update lscpu tests  [Karel Zak]
   - update partx sgi test  [Karel Zak]
   - use ts_check_losetup in losetup test  [Ruediger Meier]
   - use ts_mount for cramfs  [Ruediger Meier]
   - write tests/failures to build- instead of srcdir  [Ruediger Meier]
textual:
   - fix some typos  [Sami Kerola]
   - fix the usage message of kill  [Benno Schulenberg]
   - remove square brackets from around three dots  [Benno Schulenberg]
   - slice up and standardize the usage text of ionice  [Benno Schulenberg]
   - small inprovements to usage and man page of fstrim  [Benno Schulenberg]
tools:
   - add usage information to checkconfig.sh  [Sami Kerola]
   - make config-gen to require build target argument  [Sami Kerola]
travis-ci:
   - abort if make check fails  [Ruediger Meier]
   - enable more features and update gettext  [Ruediger Meier]
   - enable root checks  [Ruediger Meier]
   - import travis yaml controller  [Ruediger Meier]
   - minor cleanup and speedup  [Ruediger Meier]
   - refactor and add .travis-functions.sh  [Ruediger Meier]
umount:
   - Make sure exit code does not overflow  [Nicolas Boichat]
   - add info that --all-targets works with mtab symlink only  [Karel Zak]
   - don't use mountinfo if possible  [Karel Zak]
   - fix memory leak [coverity scan]  [Karel Zak]
   - fix typo in usage  [Jonathan Liu]
   - fix umount by tag for non-roots  [Karel Zak]
   - more robust success message for --all  [Karel Zak]
   - slightly improve the man page  [Benno Schulenberg]
unshare:
   - Add possibility to add mapping into root user in user namespace  [Lubomir Rintel]
   - add + to getopt_long()  [Karel Zak]
   - add more hints about mount namespaces to the man page  [Karel Zak]
   - include libmount.h to provide missing MS_* defines  [Ruediger Meier]
utmpdump:
   - fix localtime() error handling  [Ruediger Meier]
   - minor man page improvements  [Ondrej Oprala]
uuidd:
   - do not mix signed type and unsigned code  [Sami Kerola]
   - ensure pid file is wrote when it is requested  [Sami Kerola]
   - remove timeout from systemd service file  [Karel Zak]
   - set options to be mutually exclusive  [Sami Kerola]
   - use pkg-config to find systemd-deamon support  [Sami Kerola]
uuidd.rc:
   - Requires remote_fs  [Andreas Henriksson]
   - drop on-demand mode from script  [Andreas Henriksson]
uuidgen:
   - use type definitions from uuid.h  [Sami Kerola]
vipw:
   - minor man page improvements  [Ondrej Oprala]
wall:
   - add fallback for failed sysconf()  [Karel Zak]
   - replace magic number by named value  [Sami Kerola]
wdctl:
   - clean up columns[] usage  [Karel Zak]
   - clean up scols usage  [Karel Zak]
   - use libsmartcols  [Ondrej Oprala]
whereis:
   - avoid printing uninitialized string  [Sami Kerola]
   - fix missing newline on empty results  [Andreas Henriksson]
wipefs:
   - add comments to code  [Karel Zak]
   - call BLKRRPART when erase partition table  [Karel Zak]
   - don't erase nested partition tables by default  [Karel Zak]
