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]

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

util-linux 2.24.2 [Apr 24 2014]

 * https://www.kernel.org/pub/linux/utils/util-linux/v2.24/v2.24.2-ReleaseNotes
   https://www.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:
 https://www.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]
