Util-linux 2.26 Release Notes
=============================

 This version provides a completely new sfdisk(8) command; the new version is
 based on libfdisk. If your use cases depend on sfdisk(8), then it is strongly
 recommended to be careful and re-test your scripts. The new version supports
 MBR and GPT disk labels (SGI and SUN are also supported but not well tested).
 The new version no longer supports some obscure MBR-specific command-line
 options nor legacy CHS addressing.


 The library libblkid (and blkid(8) on the command line) now uses the same UDF
 fields as Windows and other operating systems in order to get human-readable
 UDF volume identifiers (LABEL= tag). This change may be backwardly incompatible
 for some UDF volumes.


 The command hwclock(8) uses the drift correction for all relevant operations
 and it is unnecessary to specify --adjust on the hwclock command line now.

 The command hwclock(8) does not automatically (re)calculate the drift factor on
 --systohc to avoid several problems (ntpd with '11 minute mode', for example),
 but the new command-line option --update-drift has to be explicitly used to
 force hwclock(8) to update /etc/adjtime.

 For more details see the hwclock(8) man page.


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

zramctl(8):
 - this NEW COMMAND allows to control /dev/zramN devices

agetty(8):
 - supports new option --reload to force already running agetty processes to
   reprint the /etc/issue file

cfdisk(8), sfdisk(8) and fdisk(8):
 - support sfdisk-compatible scripts; it's possible to save your partitioning
   layout to text files and (re)use it in all fdisks

fdisk(8), sfdisk(8):
 - support new command-line option "--output <list>" to specify output columns
   for --list or print commands

nsenter(1):
 - has been updated to work with the latest kernel changes in user namespaces
 - supports new command-line option --preserve-credentials

unshare(1):
 - has been updated to work with the latest kernel changes in user namespaces
 - supports new command-line option "--setgroups=<deny|allow>"

swapon(8):
 - supports new command-line option "-o <list>" with the same semantics as
   -o for mount(8); it's now possible to specify swap options on the command
   line by the same string as in fstab

fdformat(8):
 - supports new command-line options --from and --to to specify tracks and
   --repair for broken floppies

getopt(1):
 - has been updated to the latest version (originally maintained outside of
   util-linux) and refactored

ldattach(8):
 - has been improved to support GSM0710 and intro modem commands

logger(1):
 - supports new command-line option --id= to specify PID (or another ID)
 - allows to specify --rfc3164 or --rfc5424 syslog protocols

libfdisk:
 - the library is distributed as a shared library with a stable API and a
   standard header file

libmount:
 - provides a new simple API to monitor mount-table changes (including
   changes in userspace mount options)


The debug infrastructure in the libraries libmount, libsmartcolsm, libfdisk and
libblkid allows to specify debug options by human-readable strings too. For
example "LIBMOUNT_DEBUG=all mount /mnt".


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

util-linux 2.25.1 [Sep 3 2014]

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

util-linux 2.25.2 [Oct 24 2014]

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


Changes between v2.25 and v2.26
-------------------------------

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

agetty:
   - Reprompt and reprint /etc/issue when asked  [Stef Walter]
   - don't ignore TERM  [Karel Zak]
   - fix typo  [Karel Zak]
   - fixing FTBFS on !linux (Debian util-linux 2.20.1-1.2)  [Christoph Egger]
   - keep the current baud before try 9600 on serial lines  [Karel Zak]
   - use futimens, check for all in configure.ac  [Karel Zak]
   - always set default serial line speed  [Karel Zak]
bash-completion:
   - Invoke actual commands to be completed, not basenames  [Ville Skyttä]
   - fix runuser install  [Mike Frysinger]
   - stop being clever when listing block devices  [Sami Kerola]
   - use swapon label and uuid listing support  [Sami Kerola]
blkdiscard:
   - add support for steps and progress  [Federico Simoncelli]
   - fail on sector misalignment  [Federico Simoncelli]
   - fix compiler warning  [Karel Zak]
   - fix err->errx()  [Karel Zak]
   - fix includes  [Karel Zak]
   - fix underflow when offset is greater than device size  [Raphael S. Carvalho]
   - update man page  [Karel Zak]
blkid:
   - add hint about lsblk to the man page  [Karel Zak]
   - remove extra trailing spaces in output  [Karel Zak]
blockdev:
   - check return when read from sysfs [coverity scan]  [Karel Zak]
build:
   - fix printf warnings for icc (-Wformat-security)  [Ruediger Meier]
build-sys:
   - add -Wimplicit-function-declaration to compiler warnings  [Karel Zak]
   - add fdisk.pc  [Karel Zak]
   - add fdiskP.h to sources  [Karel Zak]
   - add hint about 'make'  [Karel Zak]
   - add sfdisk.static  [Karel Zak]
   - avoid icc warnings "ignoring unknown option"  [Ruediger Meier]
   - build libmount everywhere  [Andreas Henriksson]
   - check for libtoolize rather than libtool  [Helmut Grohne]
   - cleanup in libmount Makemodule  [Karel Zak]
   - cleanup library symbol files  [Karel Zak]
   - create a regular shared libfdisk.so  [Karel Zak]
   - create parent directory for $(PATHFILES)  [Michael Marineau]
   - fix UL_SCANF_TYPE_MODIFIER for icc  [Ruediger Meier]
   - fix double prefix with explict --libdir  [Christoph Junghans]
   - fix make checkincludes warnings  [Sami Kerola]
   - fix switch_root/pivot_root cut-n-paste error in configure.ac  [Andreas Henriksson]
   - free() needs stdlib.h  [Ruediger Meier]
   - hwclock requires -lm  [Cristian Rodríguez]
   - improve wording and punctuation of several messages  [Benno Schulenberg]
   - make scanf_cv_alloc_modifier to work [LeakSanitizer]  [Sami Kerola]
   - move all around clock_gettime() to monotonic.c  [Karel Zak]
   - old glibc requires -lrt clock_gettime()  [Karel Zak]
   - properly check for -lrt  [Karel Zak]
   - release++ (v2.26-rc1)  [Karel Zak]
   - release++ (v2.26-rc2)  [Karel Zak]
   - remove swap-common.h from sys-utils/Makemodule.am  [Sami Kerola]
   - support nsenter.static  [Karel Zak]
   - use -lutil for BSD only  [Karel Zak]
   - use CLOCKGETTIME_LIBS  [Karel Zak]
cal:
   - `color` option documentation should match actual behaviour  [Eugene Yunak]
   - fix signed integer overflow [AddressSanitizer]  [Sami Kerola]
   - use int64_t instead of long  [Ruediger Meier]
cfdisk:
   - actually translate the table headers and the bottom line  [Benno Schulenberg]
   - add libfdisk independent debug stuff  [Karel Zak]
   - add support for sfdisk scripts  [Karel Zak]
   - also recognize a lowercase 'l' for loading a script file  [Benno Schulenberg]
   - cleanup menuitem draw functions  [Karel Zak]
   - default to Quit menu item  [Karel Zak]
   - detect too small partition sizes  [Karel Zak]
   - disable some KEY_* in ui_get_wqstring()  [Karel Zak]
   - do not startle the user with a false message when --zero is used  [Benno Schulenberg]
   - don't mess up the help screen by printing the PO file header  [Benno Schulenberg]
   - don't modify ncurses LINES and COLS  [Karel Zak]
   - fix mem leak and main_menu_action() logic [coverity scan]  [Karel Zak]
   - fix typo in the previous commit  [Karel Zak]
   - force main menu to default to Quit/New menu items  [Karel Zak]
   - improve Dump dialog  [Karel Zak]
   - improve create-label UI  [Karel Zak]
   - improve menu clean function  [Karel Zak]
   - improve ui_get_size() warnings  [Karel Zak]
   - improve wording and consistency of the size warnings  [Benno Schulenberg]
   - make '?' an alias of 'h', to also show the help screen  [Benno Schulenberg]
   - move curs_set(1) to ui_end()  [Karel Zak]
   - print "wrong order" warning after startup, colorize info messages  [Karel Zak]
   - punctuate the bottombar messages consistently  [Benno Schulenberg]
   - reenable cursor when quitting  [Andreas Henriksson]
   - remove [Load] from menu  [Karel Zak]
   - remove the mistaken B from the explanation of size suffixes  [Benno Schulenberg]
   - shorten the help screen to make it fit within 25 lines  [Benno Schulenberg]
   - use only public libfdisk API  [Karel Zak]
   - wrong interpretation of yes in non-english language  [Karel Zak]
chfn:
   - add minimalistic struct chfn_control  [Sami Kerola]
   - clean up parse_argv()  [Sami Kerola]
   - fix compilation without libuser  [Karel Zak]
   - fix usage() regression  [Sami Kerola]
   - make command to obey login.defs CHFN_RESTRICT instructions  [Sami Kerola]
   - move new and old finger structs to chfn control struct  [Sami Kerola]
   - remove function prototypes  [Sami Kerola]
   - remove set_changed_data() and add add_missing()  [Sami Kerola]
   - rename prompt() to ask_new_field()  [Sami Kerola]
   - rewrite prompt() to use strutils  [Sami Kerola]
   - simplify parse_passwd() by using strsep()  [Sami Kerola]
   - use xasprintf() rather than bunch of strlen() and malloc() calls  [Sami Kerola]
chfn, chsh:
   - share illegal_passwd_chars() function  [Sami Kerola]
chrt:
   - add note about zero priority for IDLE and BATCH  [Karel Zak]
chsh:
   - allow user to set shell to /bin/sh if none is set  [Sami Kerola]
   - clean up parse_argv()  [Sami Kerola]
   - fail get_shell_list() check when /etc/shells cannot be opened  [Sami Kerola]
   - keep struct options in .rodata  [Karel Zak]
   - remove function prototypes  [Sami Kerola]
   - rewrite function interacting with user to get path to new shell  [Sami Kerola]
   - set few variables read-only and rename one of them  [Sami Kerola]
   - simplify check_shell()  [Sami Kerola]
   - simplify get_shell_list()  [Karel Zak]
   - use getline() to support arbitrarily long lines  [Sami Kerola]
colcrt:
   - slice up the usage text for ease of translation  [Benno Schulenberg]
dmesg:
   - Enable proper indent for messages containing line breaks  [Ingo Brückl]
   - improve reltime colors  [Karel Zak]
docs:
   - Spelling fixes  [Ville Skyttä]
   - add TODO entry for libblkid  [Karel Zak]
   - add cfdisk auto-sort to TODO file  [Karel Zak]
   - add howto-pull-request.txt  [Sami Kerola]
   - add info about *_DEBUG= to man pages  [Karel Zak]
   - add logger protocol notes to manual page  [Sami Kerola]
   - add new cfdisk request to TODO file  [Karel Zak]
   - add swapon -o to TODO file  [Karel Zak]
   - add the Sort command to the man page of cfdisk  [Benno Schulenberg]
   - adjust some formatting and wordings in a handful of man pages  [Benno Schulenberg]
   - adjust the grammar, text, sorting and formatting of logger man page  [Benno Schulenberg]
   - bring the chrt and taskset man pages closer to standard formatting  [Benno Schulenberg]
   - bring the rtcwake man page closer to standard formatting  [Benno Schulenberg]
   - bring the runuser and su man pages closer to standard formatting  [Benno Schulenberg]
   - don't use bold or italics for "[option]" in synopsis of man pages  [Benno Schulenberg]
   - fix grammar and punctuation and typos in 2.26 release notes  [Benno Schulenberg]
   - fix inconsistencies in man pages  [Steven Honeyman]
   - fix some things that were overlooked during the first pass  [Benno Schulenberg]
   - fix some wording and formatting in man page of swapon  [Benno Schulenberg]
   - fix some wording, grammar and formatting in man page of swapon  [Benno Schulenberg]
   - fix the grammar and formatting in the man page of sfdisk  [Benno Schulenberg]
   - fix the grammar of the recent comment about comments  [Benno Schulenberg]
   - fix the link to the rc1 changelog  [Benno Schulenberg]
   - fix two "maybe be" duplications in program comments  [Benno Schulenberg]
   - fix two paths of the v2.20-ReleaseNotes  [Benno Schulenberg]
   - fix two spellings in man page of logger  [Benno Schulenberg]
   - fix typos  [Karel Zak]
   - fix-up man-pages flagged by checkmans.sh  [J William Piggott]
   - give the man page of utmpdump the proper User Commands header  [Benno Schulenberg]
   - improve some wordings in the man page of mount  [Benno Schulenberg]
   - improve some wordings on the man page of wipefs  [Benno Schulenberg]
   - improve the description of --size in the man page of zramctl  [Benno Schulenberg]
   - improve the formatting of the chfn and chsh man pages  [Benno Schulenberg]
   - improve the grammar of the "see the changelog" phrase  [Benno Schulenberg]
   - improve the sorting of the options in the man page of getopt  [Benno Schulenberg]
   - improve the wording and formatting of the zramctl man page  [Benno Schulenberg]
   - make logger.1 facilities and levels easier to read  [Sami Kerola]
   - make the man-page licenses of chrt and taskset match their intent  [Benno Schulenberg]
   - make the wording of the partx man page a bit more precise  [Benno Schulenberg]
   - make tools/checkmans.sh to pass without warnings  [Sami Kerola]
   - mentintion default udp and tcp ports logger is using  [Sami Kerola]
   - mention nice(1) in renice(1) manual page  [Sami Kerola]
   - mention that setarch may not be able to set all listed architectures  [Benno Schulenberg]
   - remove all mention of helper= and uhelper= from umount man page  [Benno Schulenberg]
   - remove obsolete READMEs for (s)fdisk  [Karel Zak]
   - remove obsolete and unneeded comments from man-page files  [Benno Schulenberg]
   - restore minus symbols in long opts  [J William Piggott]
   - restore the alternative form of setarch in its man page  [Benno Schulenberg]
   - restore the mention of uhelper= and helper= in man page of umount  [Benno Schulenberg]
   - retrofit the dates on some old release announcements  [Benno Schulenberg]
   - small improvements to howto-contribute.txt  [Sami Kerola]
   - sort the options in the man page of sfdisk alphabetically  [Benno Schulenberg]
   - sort the options in the man pages of hwclock and uuidd  [Benno Schulenberg]
   - spelling, wording, and grammar fixes in the man page of whereis  [Benno Schulenberg]
   - sync the docstring of addpart, delpart and resizepart to the man page  [Benno Schulenberg]
   - update API docs years  [Karel Zak]
   - update AUTHORS file  [Karel Zak]
   - update TODO  [Karel Zak]
   - update TODO file  [Karel Zak]
   - update deprecation banners  [Sami Kerola]
   - update info about env debug variables  [Karel Zak]
   - update v2.26-ReleaseNotes  [Karel Zak]
eject:
   - add struct eject_control to remove global variables  [Sami Kerola]
   - add verbosity to cdrom door lock error  [Sami Kerola]
   - make open_device() and select_speed() to use struct eject_control  [Sami Kerola]
   - move unreachable code to preprocessor #else block [smatch scan]  [Sami Kerola]
   - use sysfs API to detect hotplug  [Karel Zak]
fallocate:
   - create mode 0666, that's what umask is for  [Karel Zak]
fdformat:
   - Add new switches -f/--from, -t/--to, -r/--repair  [Jaromir Capik]
   - clean up usage()  [Karel Zak]
   - fixing copy'n'paste issue in the manual  [Jaromir Capik]
fdisk:
   - (sgi) fix unsigned integer overflow [AddressSanitizer]  [Sami Kerola]
   - add --output <list> for print command(s)  [Karel Zak]
   - add --output to usage()  [Karel Zak]
   - add independent debug stuff  [Karel Zak]
   - add section about sizes to the man page  [Karel Zak]
   - add support for sfdisk scripts  [Karel Zak]
   - always print warning for mis-aligned partitions  [Karel Zak]
   - check return and robust label usage [coverity scan]  [Karel Zak]
   - fix -l [<device>]  [Karel Zak]
   - fix and improve -l warnings  [Karel Zak]
   - fix typo  [Karel Zak]
   - improve --list output  [Karel Zak]
   - missing break in switch  [Boris Egorov]
   - move --list functionality to separated file  [Karel Zak]
   - refactor /proc/partitions usage  [Karel Zak]
   - reset cached output fields when change disk label  [Karel Zak]
   - update tests and clean up output  [Karel Zak]
   - use libfdisk public API only  [Karel Zak]
findmnt:
   - document --uniq option in man page  [Bernhard Voelker]
   - don't parse mountinfo twice  [Karel Zak]
   - fix mem leaks [coverity scan]  [Karel Zak]
flock:
   - add error message to translations  [Sami Kerola]
   - zero timeout is valid  [Karel Zak]
fsck:
   - deallocate when no cache [coverity scan]  [Karel Zak]
   - fix compiler warning [-Wlogical-not-parentheses]  [Karel Zak]
   - use monotonic time to fsck run time measurement  [Sami Kerola]
fsck.minix:
   - fix segmentation fault  [Sami Kerola]
fstrim:
   - initialize path variable  [Sami Kerola]
getopt:
   - add struct getopt_control and remove global variables  [Sami Kerola]
   - avoid re-terminating long_option list at every update  [Sami Kerola]
   - change --shell argument parsing function  [Sami Kerola]
   - cleanup add_log_options()  [Karel Zak]
   - fix compiler warning  [Karel Zak]
   - make nonoptions optstring comment correct  [Sami Kerola]
   - make normalize() print strings  [Sami Kerola]
   - prefer switch-case rather than long if statement  [Sami Kerola]
   - remove function prototypes  [Sami Kerola]
   - remove unnecessary code  [Sami Kerola]
   - rename function to keep code readable  [Karel Zak]
   - sync with 1.1.6 release  [Sami Kerola]
   - use xstrdup rather than malloc + strcpy  [Sami Kerola]
hexdump:
   - Fix parse format of "byte count without repetition count"  [HUANG Wei]
   - remove deprecation message  [Sami Kerola]
   - use 'll' format modifier instead of the non-standard 'q'.  [Natanael Copa]
hwclock:
   - Add --update-drift option  [J William Piggott]
   - Add --update-drift option MAN  [J William Piggott]
   - Add ntptime reference to man-page  [J William Piggott]
   - Incorrect UTC defaults  [JWP]
   - Reduce drift factor update period  [J William Piggott]
   - add checking kernel vars to man-page  [J William Piggott]
   - add notes about default behavior changes  [Karel Zak]
   - adjust wording of v2.26 notes  [J William Piggott]
   - check for permissions before use clock interface  [Karel Zak]
   - cleanup man and usage()  [Karel Zak]
   - don't check CMOS automatically on x86_64  [Karel Zak]
   - enable --directisa for x86_64  [JWP]
   - exclude also i386 from CMOS auto-probing  [Karel Zak]
   - fix superfluous 'if' statement and typo  [J William Piggott]
   - hctosys drift compensation II  [J William Piggott]
   - hctosys drift compensation II COMMENTS  [J William Piggott]
   - hctosys drift compensation II MAN  [J William Piggott]
   - improve man-page language  [J William Piggott]
   - improve wording and formatting of man page  [Benno Schulenberg]
   - man page 'Since v2.26' notes  [JWP]
   - man regression  [JWP]
   - man-page errata  [J William Piggott]
   - persistent_clock_is_local  [J William Piggott]
   - persistent_clock_is_local MAN  [J William Piggott]
   - remove automatic ISA fallback  [J William Piggott]
   - remove referral to deprecated keyboard interface  [Sami Kerola]
   - update man page for v2.26 rc  [JWP]
   - update man-page for directisa change  [J William Piggott]
   - use fabs() instead abs() when argument is double  [Sami Kerola]
   - use pluralized translations.  [Lauri Nurmi]
ibfdisk:
   - (gpt) allow to maximize partition  [Karel Zak]
include:
   - fix compiler warnings  [Sami Kerola]
   - simplify fputc_careful() in carefulputc.h  [Sami Kerola]
include/c:
   - define UL_ASAN_BLACKLIST address_sanitizer function attribute  [Sami Kerola]
include/carefulputc:
   - encode also ' and $ in fputs_quoted() output  [Karel Zak]
include/debug:
   - allow to speficy empty masknames  [Karel Zak]
   - cleanup masks  [Karel Zak]
   - fix typo  [Karel Zak]
   - improve and cleanup  [Karel Zak]
   - make masknames optional  [Karel Zak]
   - remove duplicate 'const' declaration warning  [Sami Kerola]
include/optutils:
   - fix typo  [Karel Zak]
include/statfs_magic:
   - use macro rather than type for f_type  [Karel Zak]
ionice:
   - drop the duplicate docstring  [Benno Schulenberg]
ipc*:
   - use customary fputs() instead of fprintf() with the usage macros  [Benno Schulenberg]
ipcrm:
   - add hacks to avoid FTBFS  [Andreas Henriksson]
   - fix usage  [Karel Zak]
   - gettextize the command synopsis of the usage text  [Benno Schulenberg]
ipcs:
   - fix shmctl() usage  [Karel Zak]
   - fix two data type errors [AddressSanitizer]  [Sami Kerola]
   - in usage show resource option as nonoptional when used with -i  [Benno Schulenberg]
   - remaining kFreeBSD hackery for building.  [Aurelien Jarno]
   - remove FIXME markup  [Sami Kerola]
last:
   - improve code readability by renaming variable names  [Sami Kerola]
   - make is_phantom() when kernel config does not include audit support  [Sami Kerola]
ldattach:
   - GSM0710 support, add intro modem command  [Karel Zak]
   - add fallback for N_GSM0710  [Karel Zak]
lib:
   - fix crc32 and crc64 integer overflows [AddressSanitizer]  [Sami Kerola]
   - remove xgetpass()  [Sami Kerola]
lib/blkdev:
   - report correct disk size on GNU/kFreeBSD. Thanks Tuco.  [Robert Millan]
lib/colors:
   - add function to return color from scheme  [Karel Zak]
   - fix double free on error path  [Andreas Henriksson]
   - use static buffers when parse scheme  [Karel Zak]
lib/ismounted:
   - make it more compatible with lsblk output  [Karel Zak]
lib/loopdev:
   - remove test program  [Karel Zak]
   - replace custom DBG() with include/debug.h  [Karel Zak]
lib/mbalign:
   - fix unsigned integer overflow [AddressSanitizer]  [Sami Kerola]
lib/strutils:
   - accept not just 'B' but also lowercase 'b' in a size suffix  [Benno Schulenberg]
lib/swapprober:
   - add missing header file  [Karel Zak]
lib/sysfs:
   - add subsystem and hotplug detection  [Karel Zak]
   - allow to write to sysfs attributes  [Karel Zak]
   - use ssize_t for sysfs_readlink() [coverity scan]  [Karel Zak]
libblkid:
   - (bcache) fix keys usage  [Karel Zak]
   - (gpt) fix PT offset  [Karel Zak]
   - (gpt) use real sector size to set PTMAGIC_OFFSET  [Karel Zak]
   - (hfs) avoid overflow [coverity scan]  [Karel Zak]
   - (nilfs) fix typo  [Boris Egorov]
   - assume strtoull() is available  [Sami Kerola]
   - care about unsafe chars in cache  [Karel Zak]
   - clean up debug, add "help" debug mask  [Karel Zak]
   - fix compiler warnings [-Wpointer-sign]  [Karel Zak]
   - fix macro redefinition [coverity scan]  [Karel Zak]
   - fix potential bufer overflows  [Sebastian Krahmer]
   - improve MBR vs. FAT + boot sector detection  [Karel Zak]
   - move string trim function to strutils.h  [Karel Zak]
   - set SBMAGIC for nilfs2  [Karel Zak]
   - superblocks  Add function blkid_probe_set_utf8_id_label for setting utf8 id label  [Pali Rohár]
   - udf  Fix reading LABEL, add support for UUID and other udf identifiers  [Pali Rohár]
   - zeroize errno on blkid_probe_get_buffer() success  [Karel Zak]
libfdisk:
   - (bsd) add set_part() API  [Karel Zak]
   - (docs) fix typo  [Karel Zak]
   - (dos) allow to maximize partition  [Karel Zak]
   - (dos) be sure that sorted EBR list is terminated  [Karel Zak]
   - (dos) delete also logical with extended  [Karel Zak]
   - (dos) don't inform about logical partition  [Karel Zak]
   - (dos) fix N-1 error for partition size  [Karel Zak]
   - (dos) fix booable flag usage  [Karel Zak]
   - (dos) fix logical partitions add/delete code  [Karel Zak]
   - (dos) fix logical partitions errors handling  [Karel Zak]
   - (dos) fix typo  [Karel Zak]
   - (dos) follow bootable setting when add partition  [Karel Zak]
   - (dos) follow explicit sizes  [Karel Zak]
   - (dos) implement fdisk_set_partition() backend  [Karel Zak]
   - (dos) make a helpful message fit within 80 characters  [Benno Schulenberg]
   - (dos) more carefully check for primary partitions  [Karel Zak]
   - (dos) reset logical partition stuff after error  [Karel Zak]
   - (dos) set partition start/size only when requested  [Karel Zak]
   - (dos) use script label-id  [Karel Zak]
   - (dos) write new empty label too  [Karel Zak]
   - (gpt) add Microsoft Storage Spaces GUID  [Sergei Antonov]
   - (gpt) allow to specify attr bit by API  [Karel Zak]
   - (gpt) allow to specify uuid and name when create new partition  [Karel Zak]
   - (gpt) check return from GUID parser [coverity scan]  [Karel Zak]
   - (gpt) check string_to_guid()  [Karel Zak]
   - (gpt) cleanup header size usage  [Karel Zak]
   - (gpt) don't align last possible LBA  [Karel Zak]
   - (gpt) don't offer first sector before the first partion  [Karel Zak]
   - (gpt) fix N-1 error for partition size  [Karel Zak]
   - (gpt) follow explicit size, fiz size+1 buf  [Karel Zak]
   - (gpt) follow label-id from script  [Karel Zak]
   - (gpt) implement fdisk_set_partition() backend  [Karel Zak]
   - (gpt) make mode more readable  [Karel Zak]
   - (gpt) parse attr bits  [Karel Zak]
   - (gpt) remove 'Cylinders'  [Karel Zak]
   - (gpt) set_{name,uuid} functions refactoring  [Karel Zak]
   - (gpt) use generic API to change UUID and name  [Karel Zak]
   - (sgi) add set_part() API  [Karel Zak]
   - accept Start offset in {B,M,G..}iB in sfdisk scripts  [Karel Zak]
   - accept dump with quotes  [Karel Zak]
   - actually translate the human-readable name of the partition type  [Benno Schulenberg]
   - add API docs  [Karel Zak]
   - add comments to header file  [Karel Zak]
   - add docs for BSD functions  [Karel Zak]
   - add docs for DOS functions  [Karel Zak]
   - add docs for GPT functions  [Karel Zak]
   - add docs for SGI functions  [Karel Zak]
   - add docs for SUN functions  [Karel Zak]
   - add docs for init functions  [Karel Zak]
   - add docs for iterator  [Karel Zak]
   - add fdisk_apply_table() and fdisk_delete_all_partitions()  [Karel Zak]
   - add fdisk_copy_parttype()  [Karel Zak]
   - add fdisk_label_get_field_by_name() and const for labels  [Karel Zak]
   - add fdisk_partition_is_bootable()  [Karel Zak]
   - add fdisk_partition_is_wholedisk()  [Karel Zak]
   - add fdisk_set_partition()  [Karel Zak]
   - add functions to apply partitiong scripts  [Karel Zak]
   - add functions to play nasty games with first/last LBA  [Karel Zak]
   - add geometry to API, cleanup  [Karel Zak]
   - add more comments  [Karel Zak]
   - add ref.counting to ask API  [Karel Zak]
   - add reference to context to dump  [Karel Zak]
   - add some docs  [Karel Zak]
   - add support for sfdisk-like script format  [Karel Zak]
   - add version.c  [Karel Zak]
   - allow to specify partition size by explicit number of sectors  [Karel Zak]
   - basic fdisk_dump_* functions  [Karel Zak]
   - clean up API (alignment.c)  [Karel Zak]
   - clean up API (context.c)  [Karel Zak]
   - clean up debug, add help debug mask  [Karel Zak]
   - cleanup ask API, add comments  [Karel Zak]
   - cleanup context devname usage  [Karel Zak]
   - cleanup fdisk_is_label stuff  [Karel Zak]
   - cleanup fdisk_partition_to_string() comment  [Karel Zak]
   - cleanup gtk-docs warnings  [Karel Zak]
   - cleanup internal drivers' API  [Karel Zak]
   - cleanup label geometry API  [Karel Zak]
   - cleanup partno API  [Karel Zak]
   - cleanup parttype API  [Karel Zak]
   - cleanup script dump  [Karel Zak]
   - cleanup script size= code  [Karel Zak]
   - consolidate script parser code  [Karel Zak]
   - don't align very small partitions  [Karel Zak]
   - don't use off_t in public API  [Karel Zak]
   - extend dump parsing function  [Karel Zak]
   - fdisk_label_is_labeltype()  [Karel Zak]
   - fdisk_read_firstsector should seek to offset 0  [Samuel Thibault]
   - final parttype API cleanup  [Karel Zak]
   - fix add_logical() assert  [Karel Zak]
   - fix bug in cmp_numbers() and partitions sorting  [Karel Zak]
   - fix cfdisk freespace analyze  [Karel Zak]
   - fix compiler warning  [Karel Zak]
   - fix fdisk_delete_all_partitions()  [Karel Zak]
   - fix fdisk_get_optimal_iosize() and update tests  [Karel Zak]
   - fix fdisk_partition_get_parent() docs  [Karel Zak]
   - fix get_partition_unused_primary()  [Boris Egorov]
   - fix issues with very small partitions  [Karel Zak]
   - fix partition names on GNU Hurd.  [Gabriele Giacone]
   - fix possible mem leak [coverity scan]  [Karel Zak]
   - fix script next_token()  [Karel Zak]
   - fix script parser  [Karel Zak]
   - fix script parser, add debug messages  [Karel Zak]
   - fix script partitions size parsing  [Karel Zak]
   - fix script unit test  [Karel Zak]
   - fix some typos  [Karel Zak]
   - fix sun and sgi to be usable from sfdisk  [Karel Zak]
   - fix table_add_freespace(), add debug messages  [Karel Zak]
   - fix typo  [Karel Zak]
   - follow explicitly specified partition size  [Karel Zak]
   - grain is in bytes, fix previous patches  [Karel Zak]
   - ignore whole-disk partition when check order  [Karel Zak]
   - improve debug messages  [Karel Zak]
   - make code more readable  [Karel Zak]
   - make fdisk_partition_to_string() more robust [coverity scan]  [Karel Zak]
   - make it possible to get fields for all labes  [Karel Zak]
   - make it possible to use zero for size and start  [Karel Zak]
   - make label names case insensitive  [Karel Zak]
   - make script header parser more pedantic  [Karel Zak]
   - make yes/no dialogs more robust  [Karel Zak]
   - more docs  [Karel Zak]
   - move fdisk_ask_partnum() to API  [Karel Zak]
   - move get_parttypes to label API  [Karel Zak]
   - propagate assign-device operation to parent  [Karel Zak]
   - remove 'end' from struct fdisk_partition  [Karel Zak]
   - remove debug dump function, cleanup API  [Karel Zak]
   - remove dependence on libsmartcols  [Karel Zak]
   - remove flags from fdisk_ask API  [Karel Zak]
   - remove old label drives' API for parttypes  [Karel Zak]
   - rename and move function  [Karel Zak]
   - rename fdisk_column to fdisk_field  [Karel Zak]
   - rename fdisk_dump_ to fdisk_script_  [Karel Zak]
   - rename sector_t to fdisk_sector_t  [Karel Zak]
   - return partno when add new partition  [Karel Zak]
   - support unknown partition types in sfdisk scripts  [Karel Zak]
   - use new set_part API in fdisk_set_partition_type()  [Karel Zak]
   - use reference counting for context  [Karel Zak]
   - use skip_blank() in scripts  [Karel Zak]
   - vary basic dump parsing functions  [Karel Zak]
libmount:
   - (docs) add monitor example  [Karel Zak]
   - (monitor) add kernel mountninfo monitoring  [Karel Zak]
   - (monitor) cleanup wait/verify stuff  [Karel Zak]
   - (monitor) make mnt_monitor_next_changed() usable for epoll version too  [Karel Zak]
   - (monitor) use inotify for utab lock file  [Karel Zak]
   - MNT_OMODE_FORCE usage  [Fridolin Pokorny]
   - add --enable-libmount-force-mountinfo  [Karel Zak]
   - add new libmnt_monitor API  [Karel Zak]
   - add options map to docs  [Karel Zak]
   - add private mnt_context_get_mtab_for_target()  [Karel Zak]
   - allow unspecified source on remount  [Karel Zak]
   - clean up debug, add help debug mask  [Karel Zak]
   - cleanup gtk-docs warnings  [Karel Zak]
   - cleanup monitor test  [Karel Zak]
   - don't return root if path contains // or ending /  [Søren Holm]
   - don't use /{proc,ext}/filesystems when more fs types specified  [Karel Zak]
   - fix lock test to use real time to sync  [Karel Zak]
   - fix mem leak in do_mount_by_types() [coverity scan]  [Karel Zak]
   - fix memory overflow [AddressSanitizer]  [Sami Kerola]
   - fix mnt_is_readonly() #ifdef  [Karel Zak]
   - fix possible mem leak in has_utab_entry() [coverity scan]  [Karel Zak]
   - fix type pointer usage  [Karel Zak]
   - fix utab entry on remount  [Karel Zak]
   - hide details about failed search in fstab/mtab  [Karel Zak]
   - improve kernel command line parsing  [Mike Frysinger]
   - improve mnt_reset_fs()  [Karel Zak]
   - improve remount logic  [Karel Zak]
   - make public top-level monitor FD only  [Karel Zak]
   - monitor unref function refactoring  [Karel Zak]
   - only include context on linux  [Andreas Henriksson]
   - only invoke loopcxt on linux  [Andreas Henriksson]
   - provide version as int for better compiletime test  [Søren Holm]
   - read utab always when read mtab from /proc  [Karel Zak]
   - remove assert(arg) from public functions  [Karel Zak]
   - reuse allocated fs in parser  [Karel Zak]
   - revert "read mtab on remount" idea  [Karel Zak]
   - split monitor initialization  [Karel Zak]
   - use -t for type.subtype in helpers API  [Karel Zak]
libs/debug:
   - accept human readable names for _DEBUG=  [Ondrej Oprala]
libsmartcols:
   - (docs) improve section descriptions  [Karel Zak]
   - clean up debug, add help debug mask  [Karel Zak]
   - cleanup gtk-docs warnings  [Karel Zak]
   - fix docs namespace  [Karel Zak]
   - remove assert(arg) from public functions  [Karel Zak]
   - remove unnecessary check [coverity scan]  [Karel Zak]
   - use ASCII art for trees rather than padding  [Karel Zak]
libuuid:
   - add extern qualifiers to uuid/uuid.h system header  [Sami Kerola]
   - remove _SVID_SOURCE pre-processor definition  [Sami Kerola]
line:
   - use util-linux conventions  [Sami Kerola]
linfdisk:
   - cleanup fsync usage  [Karel Zak]
linmount:
   - (monitor) refresh docs, headers and symbols table  [Karel Zak]
logger:
   - add --socket-errors compatibility option  [Sami Kerola]
   - add function pointer to choose how logging is done  [Sami Kerola]
   - add hostname to rfc3164 message  [Sami Kerola]
   - add process --id=parent optional argument  [Sami Kerola]
   - add rfc5424 support  [Sami Kerola]
   - allow use of --id=ppid when logging locally  [Sami Kerola]
   - check availability of ntp_gettime()  [Samuel Thibault]
   - clean up strings usage  [Karel Zak]
   - do not rely only getlogin(3) telling who ran the command  [Sami Kerola]
   - ensure program writes everything to syslog file descriptor  [Sami Kerola]
   - fix -i=ppid  [Karel Zak]
   - fix indentation issues  [Sami Kerola]
   - fix untranslated message  [Karel Zak]
   - gettimeofday needs <sys/time.h>  [Andreas Henriksson]
   - improve readablity of pencode() function  [Sami Kerola]
   - improve usage()  [Karel Zak]
   - make --stderr print remote server messages  [Sami Kerola]
   - optimize string initializations  [Sami Kerola]
   - refactor long if clause  [Sami Kerola]
   - remove openlog(3) options  [Sami Kerola]
   - require --{server,socket} to remote rfc542/rfc3164 log  [Karel Zak]
   - set function arguments read-only when possible  [Sami Kerola]
   - tidy up main() by adding small functions and ctl data  [Sami Kerola]
   - use generic --id=<id>  [Karel Zak]
   - warn when --file and command line message are combined  [Sami Kerola]
login:
   - Fix unused variables in login.c if _HAVE_UT_TV isn't defined  [Will Johansson]
   - fix mem leak in init_environ() [coverity scan]  [Karel Zak]
   - ignore SIGXFSZ when write to lastlog  [Karel Zak]
login-utils:
   - Enable building util-linux against OpenPAM  [Will Johansson]
   - use libc error printing facility  [Sami Kerola]
look:
   - remove dead code  [Sami Kerola]
   - slice up the usage text for ease of translation  [Benno Schulenberg]
losetup:
   - improve man page -D docs  [Karel Zak]
lsblk:
   - add HOTPLUG column  [Karel Zak]
   - add SUBSYSTEMS column  [Karel Zak]
   - add notes about udev to the man page  [Karel Zak]
   - fix compiler warning  [Sami Kerola]
   - implement SOMEOK (=64) return code  [Karel Zak]
lscpu:
   - add s-Par support  [Benjamin Romer]
   - blacklist vmware_bdoor() AddressSanitizer check  [Sami Kerola]
   - clean up vmware inline asm  [Mike Frysinger]
   - cleanup ppc virtualization detection  [Karel Zak]
   - detect also QEMU emulation on ppc  [Karel Zak]
   - fix compiler error [-Werror=format-security]  [Karel Zak]
   - fix cppcheck warnings  [Boris Egorov]
   - fix typos in ppc code  [Karel Zak]
   - theoretical buffer overflow  [Tobias Stoeckmann]
lslocks:
   - fix type warning  [Sami Kerola]
lslogins:
   - add space to systemd journal header and message  [Sami Kerola]
   - align usage() and manual with struct option longopts  [Sami Kerola]
   - allow changing password changed and expiration time formats  [Sami Kerola]
   - cleanup after error [coverity scan]  [Karel Zak]
   - fix -l -g logic  [Karel Zak]
   - fix assertion failure for none existing logins  [Sami Kerola]
   - fix short options  [Sami Kerola]
   - free after error [coverity scan]  [Karel Zak]
   - make journald last logs time stamps to honor --time-format  [Sami Kerola]
   - reject unknown time format arguments  [Sami Kerola]
   - tell why command failed  [Sami Kerola]
   - use hardcoded paths from pathnames.h  [Sami Kerola]
maint:
   - fix shadow declaration  [Sami Kerola]
mcookie:
   - avoid format warning  [Bernhard Voelker]
misc:
   - use monotonic time rater than gettimeofday  [Karel Zak]
mkfs.minix:
   - fix couple compiler warnings  [Sami Kerola]
mkswap:
   - add struct mkswap_control to remove global variables  [Sami Kerola]
   - always use header from control struct  [Karel Zak]
   - coding style improvements  [Karel Zak]
   - device open code refactoring  [Karel Zak]
   - device write code refactoring  [Karel Zak]
   - make final report more human readable  [Karel Zak]
   - make remaining functions to take control structure as argument  [Sami Kerola]
   - remove memory leaks [LeakSanitizer] [valgrind]  [Sami Kerola]
   - remove system architecture specific max swap size checks  [Sami Kerola]
   - remove unnecessary size check  [Sami Kerola]
   - set variable only when it's value is known  [Sami Kerola]
   - use err() rather than perror() && exit()  [Sami Kerola]
   - various minor improvement  [Sami Kerola]
more:
   - blacklist unsigned integer overflow [AddressSanitizer]  [Sami Kerola]
   - fix compiler warnings  [Karel Zak]
   - fix repeat search crash  [Sami Kerola]
   - replace ad-hoc support for plurals with gettext plurals.  [Lauri Nurmi]
mount:
   - Add documentation of FAT mount option time_offset  [Jan Kara]
   - Further FAT mount option update  [Jan Kara]
   - clean up -t info in mount.8 and fstab.5  [Karel Zak]
   - don't ignore mtab for --bind -o remount  [Karel Zak]
   - improve --move docs  [Karel Zak]
mountpoint:
   - add struct mountpoint_control  [Sami Kerola]
   - clarify that it works on files  [Dave Reisner]
   - drop S_ISDIR check  [Dave Reisner]
   - simplify if statement  [Sami Kerola]
newgrp:
   - avoid use of obsolete getpass() function  [Sami Kerola]
   - move shell determination closer where it is used  [Sami Kerola]
   - set function arguments read-only when possible  [Sami Kerola]
   - simplify if else clauses  [Sami Kerola]
   - use libc function to read gshadow if it is available  [Sami Kerola]
nsenter:
   - add --preserve-credentials and cleanup setgroups() usage  [Karel Zak]
   - allow to use --set{uid,gid} for all namespaces  [Karel Zak]
   - keep semantic consistent  [Karel Zak]
partx:
   - add --update to ul_excl_twq list  [Karel Zak]
   - don't use "hard drive" in man pages  [Karel Zak]
   - simplify a --verbose progress message  [Benno Schulenberg]
po:
   - 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 ru.po (from translationproject.org)  [Pavel Maryanov]
   - 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]
   - update zh_TW.po (from translationproject.org)  [Wei-Lun Chao]
raw:
   - fix raw query  [Karel Zak]
rename:
   - add getpriority() message lookup table  [Sami Kerola]
   - allow renaming in subdirectories  [Sami Kerola]
   - continue despite something failed  [Sami Kerola]
   - use function pointer to select file or symlink operation  [Sami Kerola]
   - use strrchr() instead of rindex()  [Sami Kerola]
   - use usage and version print out macros  [Sami Kerola]
renice:
   - avoid having same lines of code twice  [Sami Kerola]
   - disallow --priority <arg> without pid argument  [Sami Kerola]
   - fix numeric uid argument parsing  [Sami Kerola]
   - reorder functions to avoid need of function prototype  [Sami Kerola]
   - reorder usage() option descriptions  [Sami Kerola]
script:
   - may be hangs  [Andreas Henriksson]
   - no logging for non-interactive shells  [Stanislav Brabec]
   - script.1 Improve documentation of non-interactive behavior  [Stanislav Brabec]
setarch:
   - cleanup options usage  [Karel Zak]
   - differentiate between "unrecognized" and "cannot set"  [Benno Schulenberg]
   - fix --list  [Karel Zak]
   - fix typo (missing braces) for ppcle  [Ruediger Meier]
   - make the usage synopsis comprehensible for translators  [Benno Schulenberg]
   - print error when command runs without arguments  [Sami Kerola]
   - reindent code  [Sami Kerola]
   - use personality() system call when it is available  [Sami Kerola]
setterm:
   - fix dubious one-bit signed bitfield [smatch scan]  [Sami Kerola]
sfdisk:
   - --list just one device  [Karel Zak]
   - actually translate the table headers by calling gettext()  [Benno Schulenberg]
   - add --activate  [Karel Zak]
   - add --append  [Karel Zak]
   - add --backup and --backup-file  [Karel Zak]
   - add --dump functionality  [Karel Zak]
   - add --label-nested for hybrid GPT  [Karel Zak]
   - add --list-types  [Karel Zak]
   - add --name  [Karel Zak]
   - add --no-act  [Karel Zak]
   - add --no-reread and --force  [Karel Zak]
   - add --output <list> for print command(s)  [Karel Zak]
   - add --part-attrs  [Karel Zak]
   - add --parttype  [Karel Zak]
   - add --quiet  [Karel Zak]
   - add --show-size  [Karel Zak]
   - add --unit and --show-geometry, update deprecated.txt  [Karel Zak]
   - add --uuid command  [Karel Zak]
   - add --verify  [Karel Zak]
   - add comments, remove unnecessary function  [Karel Zak]
   - add deprecated --Linux  [Karel Zak]
   - add missing stuff to usage()  [Karel Zak]
   - ask on EOF  [Karel Zak]
   - basic main() and friends  [Karel Zak]
   - be sensitive to PT limits  [Karel Zak]
   - cleanup comments and command_activate()  [Karel Zak]
   - cleanup isatty() usage  [Karel Zak]
   - cleanup option names  [Karel Zak]
   - cleanup sync() usage, fix --activate  [Karel Zak]
   - cleanup usage() and long options  [Karel Zak]
   - fix --bytes  [Karel Zak]
   - fix --id fallthrough [coverity scan]  [Karel Zak]
   - fix compiler warnings about uninitialized variables  [Sami Kerola]
   - fix version typos in man page  [Karel Zak]
   - implement --list  [Karel Zak]
   - implement command_fdisk()  [Karel Zak]
   - improve UI  [Karel Zak]
   - in the usage text show -v for --version instead of -V  [Benno Schulenberg]
   - include rpmatch.h  [Sami Kerola]
   - leave on error  [Karel Zak]
   - make dump format usable on stdin  [Karel Zak]
   - more update to the man page  [Karel Zak]
   - require confirmation before write to the device  [Karel Zak]
   - return deterministic value from sfdisk_deinit()  [Sami Kerola]
   - support -N for primary partitions  [Karel Zak]
   - update man page  [Karel Zak]
   - update usage()  [Karel Zak]
   - use fdisk_set_partition_type()  [Karel Zak]
   - use pluralized translation.  [Lauri Nurmi]
strutils:
   - fix unsigned integer overflows [AddressSanitizer]  [Sami Kerola]
su:
   - fix mem leak in modify_environ() [coverity scan]  [Karel Zak]
   - print proper core dump message when killed  [pcpa]
sulogin:
   - make sure that fallback FD is valid [coverity scan]  [Karel Zak]
sulogin, hwclock:
   - use xusleep() instead of usleep()  [Sami Kerola]
swaplabel:
   - move swapon-common to include directory  [Sami Kerola]
swapoff:
   - swapoff swap files by LABEL and UUID  [Karel Zak]
swapon:
   - add -o <list> for compatibility with mount  [Karel Zak]
   - align available columns section in usage()  [Sami Kerola]
   - don't print errors as data in smartcols table  [Karel Zak]
   - don't use empty strings for smartcols output  [Karel Zak]
   - improve man page notes about holes  [Karel Zak]
   - remove extra word from usage  [Karel Zak]
   - remove invalid error string print outs  [Sami Kerola]
   - reword some usage strings  [Benno Schulenberg]
   - share get_swap_prober() with swaplabel to print uuid and label  [Sami Kerola]
   - split swapon-common.c  [Karel Zak]
switch_root:
   - document that maintains /run too  [Karel Zak]
   - improve statfs->f_type portability  [Karel Zak]
tailf:
   - slice up the usage text for ease of translation  [Benno Schulenberg]
terminal-colors.d:
   - add debug stuff  [Karel Zak]
   - add note about comments to man page  [Karel Zak]
   - fix filter by name  [Karel Zak]
tests:
   - Add UDF hdd image created by Linux mkudffs  [Pali Rohár]
   - Add UDF hdd image created by Linux mkudffs with custom params  [Pali Rohár]
   - Add UDF hdd image created by NetBSD newfs_udf (from UDFclient 0.7.5)  [Pali Rohár]
   - Add UDF hdd image created by NetBSD newfs_udf (from UDFclient 0.7.7)  [Pali Rohár]
   - Add UDF hdd image created by Windows 7  [Pali Rohár]
   - Fall back on host/getent in ts_resolve_host  [Andreas Henriksson]
   - add PMBR sfdisk test  [Karel Zak]
   - add blkdiscard offsets test  [Federico Simoncelli]
   - add debug tests  [Ondrej Oprala]
   - add function to change directory reliable way  [Sami Kerola]
   - add more getopt tests  [Sami Kerola]
   - add mount -t test  [Karel Zak]
   - add rename(1) checks  [Sami Kerola]
   - add rename(1) return value check  [Sami Kerola]
   - add sfdisk GPT tests  [Karel Zak]
   - add sfdisk test  [Karel Zak]
   - allow non-inotify tailf to keep up  [Andreas Henriksson]
   - apply travis clang PATH workaround  [Sami Kerola]
   - check for wipefs and helpers in fdisk tests  [Karel Zak]
   - cleanup libmount debug test  [Karel Zak]
   - copy test-suite from Frodo Looijaard's getopt  [Sami Kerola]
   - don't check the current ipcs limits  [Karel Zak]
   - don't hardcode devnames  [Karel Zak]
   - fix fdisk/bsd again for big endian  [Ruediger Meier]
   - fix fdisk/bsd for the two possible sectors/offsets  [Aurelien Jarno]
   - fix memory leak [AddressSanitizer]  [Sami Kerola]
   - fix rename subdir check that was failing in travis  [Sami Kerola]
   - fix swaplabel test for 9a83b03c  [Ruediger Meier]
   - fix the ipcs test for shmall being too big to show  [Karel Zak]
   - improve some wordings of the output  [Benno Schulenberg]
   - kill output message change  [Sami Kerola]
   - make ipcs limit calculations work when numbers are large  [Sami Kerola]
   - mark python libmount tests known to fail with AddressSanitizer  [Sami Kerola]
   - python tests should not remove user's LD_LIBRARY_PATH  [Ruediger Meier]
   - scsi_debug workaround  [Karel Zak]
   - simplify and update swaplabel test  [Karel Zak]
   - skip kill -SEGV test when running AddressSanitizer  [Sami Kerola]
   - test cazy sizes for sfdisk  [Karel Zak]
   - update MBR sort test  [Karel Zak]
   - update UDF test (add identifiers)  [Pali Rohár]
   - update bsd test  [Karel Zak]
   - update build tests  [Karel Zak]
   - update build-sys tests  [Karel Zak]
   - update fdisk formatting  [Karel Zak]
   - update fdisk tests  [Karel Zak]
   - update sfdisk tests  [Karel Zak]
   - use ts_cd everywhere to change direcrory  [Sami Kerola]
textual:
   - "ambivalent" applies to intentions, "ambiguous" to results  [Benno Schulenberg]
   - add a comma for clarity, plus some other tweaks  [Benno Schulenberg]
   - add a docstring to most of the utilities  [Benno Schulenberg]
   - angular brackets around a non-literal argument, singular  [Benno Schulenberg]
   - do not start option descriptions with a capital  [Benno Schulenberg]
   - fix couple typos in comments  [Sami Kerola]
   - fix some typos and inconsistencies in various messages  [Benno Schulenberg]
   - fix spellos and inconsistencies in several program messages  [Benno Schulenberg]
   - fix various minor typos  [Yuri Chornoivan]
   - grammarize an error message  [Benno Schulenberg]
   - grammarize an informative message, and tweak some comments  [Benno Schulenberg]
   - grammarize and harmonize the stat error message  [Benno Schulenberg]
   - grammarize another error message  [Benno Schulenberg]
   - improve error messages  [Sami Kerola]
   - list the options of setarch in a more alphabetical order  [Benno Schulenberg]
   - make the license of chrt and taskset slightly more explicit  [Benno Schulenberg]
   - not using angular brackets around literal arguments  [Benno Schulenberg]
   - put option and its description into a single translatable string  [Benno Schulenberg]
   - remove some inconsistent periods from error messages  [Benno Schulenberg]
   - share crypt() error message in sulogin and newgrp  [Sami Kerola]
   - slice up the usage text of swapon for ease of translation  [Benno Schulenberg]
   - sort the options in the usage text of sfdisk alphabetically  [Benno Schulenberg]
   - there may be no space between option and optional =arg  [Benno Schulenberg]
   - use a somewhat clearer and more standard failure message  [Benno Schulenberg]
   - use angular brackets around each individual argument  [Benno Schulenberg]
   - use manual tail usage() macro  [Sami Kerola]
   - use usage() text element macros  [Sami Kerola]
   - use version printing macro everywhere  [Sami Kerola]
   - using angular brackets around individual arguments  [Benno Schulenberg]
tools:
   - checkman.sh portability  [J William Piggott]
   - checkman.sh portability lexgrog  [J William Piggott]
   - checkmans.sh add stats  [J William Piggott]
   - checkmans.sh clean up 'let'  [J William Piggott]
travis:
   - whitelist branches  [Karel Zak]
ul:
   - fix filter() indentation  [Sami Kerola]
   - remove unexplained TERM=lpr override  [Sami Kerola]
umount:
   - read mountinfo if --detach-loop given  [Robert Schiele]
unshare:
   - Fix --map-root-user to work on new kernels  [Eric W. Biederman]
   - add --setgroups=deny|allow  [Karel Zak]
   - add some examples  [Lubomir Rintel]
utmpdump:
   - don't pass parameter of type "struct utmp" by value [coverity scan]  [Karel Zak]
uuidd:
   - Fixed a typo in daemon logging message  [Nikolay Sivov]
various:
   - erase all traces of the long-obsolete ext filesystem  [Benno Schulenberg]
   - erase all traces of the long-obsolete xiafs  [Benno Schulenberg]
wall:
   - wrap message header when it exceeds 79 characters  [Sami Kerola]
whereis:
   - cleanup debug stuff, fix argv[] usage  [Karel Zak]
   - lookup also info docs  [Karel Zak]
   - reset search mask more carefully  [Karel Zak]
wipefs:
   - fix FD leak on error [coverity scan]  [Karel Zak]
zramctl:
   - add bash completion script  [Sami Kerola]
   - add details to --size option documentation  [Sami Kerola]
   - cannonicalize devname when no fullpath specified  [Karel Zak]
   - fail status printout when device does not exist  [Karel Zak]
   - fix the wording of some message strings  [Benno Schulenberg]
   - fix typo  [Karel Zak]
   - fixed two -Wformat-security warnings  [Steven Honeyman]
   - improve error message  [Sami Kerola]
   - improve option combination error messaging  [Sami Kerola]
   - remove extra \n from usage()  [Karel Zak]
   - add new command to control /dev/zramN devices  [Karel Zak, Timofey Titovets]
