Util-linux 2.32 Release Notes
=============================

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

The command cal(1) has been improved to provide better control on used calendar
system. Now it is possible to switch between Gregorian and Julian exclusively,
or use the current default (reform in September 1752). The new command line
options --reform and --iso have been added. The command also follows terminal
width to format output.

The library libblkid has been extended to support LUKS2, Micron mpool, VDO and
Atari partition table.

The command rfkill(8) has been moved to /usr/sbin to be compatible with the
original rfkill implementation.

The command dmesg(1) provides better support for multi-line messages and the
new command line option --force-prefix to print facility, level or timestamp
information to each line of a multi-line message

The command fallocate(1) --dig-holes is faster and more effect now.

The command fdisk(8) provides access to Protective MBR accessible from main
menu. The Sun label support has been improved.

The command lscpu(1) provides more details about ARM CPUs now.

The command lsmem(1) supports memory zone awareness now.

The command lsns(8) provides netnsid and nsfs columns now.

The command rtcwake(8) waits stdin to settle down before entering a system
sleep.

The new command line option --kill-child has been added to unshare(1).


Stable maintenance releases between v2.31 and v2.32
---------------------------------------------------

util-linux 2.31.1 [Dec 19 2017]

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


Changes between v2.31 and v2.32
-------------------------------

agetty:
   - Fix a use of uninitialised memory in an agetty error path.  [Steven Smith]
   - add support for /etc/issue.d  [Karel Zak]
   - remove unused flag  [Karel Zak]
bash-completion:
   - (umount) use findmnt, escape a space in paths  [Karel Zak]
   - Exclude /dev/fd from fsck find  [Kevin Locke]
   - update zramctl algorithms list  [Sami Kerola]
blkid:
   - Add support for LUKS2 and new LABEL attributes.  [Milan Broz]
blkzone:
   - Fix a typo in blkzone.8  [Masanari Iida]
blockdev:
   - be more explicit for BLKSSZ in blockdev.8  [Karel Zak]
build-sys:
   - (configure) fix bashisms  [Mike Frysinger]
   - add --enable-asan and --memcheck-asan for tests  [Karel Zak]
   - add missing include  [Karel Zak]
   - automake is able to find headers in builddir ...  [Ruediger Meier]
   - avoid using prog_DEPENDENCIES  [Ruediger Meier]
   - disable bz2 tarball and fix some am warnings  [Ruediger Meier]
   - don't check for swapon() number of arguments  [Karel Zak]
   - forgot update NEWS for v2.32-rc1  [Karel Zak]
   - gtkdoc-fixxref v1.27 requires module option  [Karel Zak]
   - lsns requires libmount  [Karel Zak]
   - move rfkill to /usr/sbin  [Karel Zak]
   - release++ (v2.32-rc2)  [Karel Zak]
   - remove generated headers from dist tar ball  [Ruediger Meier]
   - remove redundant EXTRA_DIST files  [Ruediger Meier]
   - remove unneeded dependencies on bla.h.in  [Ruediger Meier]
cal:
   - Use ALTMON_* correctly  [Rafal Luzynski]
   - add ifdef TEST_CAL  [Karel Zak]
   - add option to set Gregorian reform date  [J William Piggott]
   - clean up man page synopsis syntax  [Karel Zak]
   - do not set months_in_row with -3 option  [J William Piggott]
   - don't use year header for -1, -3 or -n  [Karel Zak]
   - explain magic values for day of week calculation  [Karel Zak]
   - fix first week calculation  [J William Piggott]
   - fix julian calendars for large years  [J William Piggott]
   - fix multi-byte comment, explain in better way  [Karel Zak, J William Piggott]
   - fix week calculations for 1752  [J William Piggott]
   - follow terminal width  [Karel Zak]
   - honor num_months when only a year argument  [J William Piggott]
   - move REFORMATION_YEAR to control struct  [J William Piggott]
   - remove extra space after year output  [Karel Zak]
   - update man page  [J William Piggott]
chmem:
   - cleanup includes  [Karel Zak]
   - cleanup usage()  [Karel Zak]
chrt:
   - fix compiler warning [-Wmaybe-uninitialized]  [Karel Zak]
column:
   - add --table-noheadings  [Karel Zak]
   - allow to hide unnamed columns  [Karel Zak]
   - don't ignore space-char separators at begin of the line  [Karel Zak]
   - fix memory leak [coverity scan]  [Karel Zak]
   - update column.1  [ahmogit]
   - use \x<hex> for invalid multibyte seq.  [Karel Zak]
dmesg:
   - Add --force-prefix option  [Prarit Bhargava]
   - add note about -F format to the man page  [Karel Zak]
   - fix compiler warning [-Wuninitialized]  [Karel Zak]
   - use xstrdup() in xalloc.h based util  [Karel Zak]
docs:
   - add ISC licence  [Carlos Santos]
   - add new idea to TODO list  [Karel Zak]
   - add note about JSON  [Karel Zak]
   - add note about NVMe-multipath to TODO  [Karel Zak]
   - add remount-all idea to TODO  [Karel Zak]
   - add script(1) events idea to TODO  [Karel Zak]
   - improve setarch(8) manual page  [Sami Kerola]
   - update AUTHORS file  [Karel Zak]
   - update TODO  [Karel Zak]
   - update TODO file  [Karel Zak]
   - update v2.32-ReleaseNotes  [Karel Zak]
eject:
   - remove list_speeds() #ifdef CDROM_SELECT_SPEED protection  [Sami Kerola]
fallocate:
   - dig holes only in data extents  [Karel Zak, Vaclav Dolezal]
   - remove typo  [Karel Zak]
fdisk:
   - (gpt) make PMBR accessible from main menu  [Karel Zak]
fincore:
   - Handle large files correctly on 32 bit  [Tobias Stoeckmann]
   - Handle large files on 32 bit without LFS  [Tobias Stoeckmann]
   - fix a typo in fincore.1  [Masatake YAMATO]
findfs:
   - don't include exitcodes.h  [Karel Zak]
findmnt:
   - findmnt.8 remove spurious spaces before "--tree" and "--verbose"  [Jakub Wilk]
fsck:
   - cleanup find_fsck()  [Karel Zak]
   - coding style cleanup  [Karel Zak]
   - use xasprintf to avoid buffer overruns with an insane fs type  [Theodore Ts'o]
fsck.cramfs:
   - Fix bus error on broken file system.  [Tobias Stoeckmann]
   - fix crash when superblock size is too small  [Ruediger Meier]
   - fix error message  [Ruediger Meier]
fstrim:
   - don't include exitcodes.h  [Karel Zak]
   - fix fs.h and mount.h collision  [Karel Zak]
hwclock:
   - add --ul-debug implementing debug.h  [J William Piggott]
   - add iso-8601 overflow check  [J William Piggott]
   - fix debug regression  [J William Piggott]
   - rename --debug option to --verbose  [J William Piggott]
   - revert ioctl test  [Karel Zak]
   - use reentrant time conversion functions  [J William Piggott]
include/c:
   - add errexec()  [Karel Zak]
include/debug:
   - don't print pointer address for SUID programs  [Karel Zak]
   - improve debug message  [Karel Zak]
   - introduce __UL_INIT_DEBUG_FROM_STRING()  [Karel Zak]
   - print info when addresses suppressed  [Karel Zak]
kill:
   - Extract signal names into signames.h/signames.c  [Niklas Hambüchen]
lib:
   - Add simple crc32c() function  [John Groves]
lib/exec_shell:
   - (and pager) use errexec()  [Karel Zak]
   - cleanup function attributes  [Karel Zak]
lib/mangle:
   - return size of the decoded buffer  [Karel Zak]
lib/mbsalign:
   - Fix escaping nonprintable multibyte characters  [Vaclav Dolezal]
   - add mbs_invalid_encode()  [Karel Zak]
   - encode \x to \xecx  [Karel Zak]
   - encode backslash to prevent ambiguity  [Vaclav Dolezal]
   - escape "\x" when HAVE_WIDECHAR not defined  [Vaclav Dolezal]
lib/md5:
   - use ul_/UL_ prefix  [Karel Zak]
lib/path:
   - make path_set_prefix() independent on cpu_set_t  [Karel Zak]
lib/randutils:
   - Do not block on getrandom()  [Carlo Caione]
   - don't break on EAGAIN, use usleep()  [Karel Zak]
lib/sha1:
   - fix indention  [Karel Zak]
   - use proper WORDS_BIGENDIAN macro  [Karel Zak]
   - use ul_/UL_prefix for symbols  [Karel Zak]
lib/signames:
   - fix redefinition of 'sys_signame' on OSX  [Karel Zak]
   - remove signame array from header file  [Karel Zak]
   - remove unused function  [Sami Kerola]
lib/timeutils:
   - ISO_8601_BUFSIZ too small  [J William Piggott]
   - add common ISO timestamp masks  [J William Piggott]
   - add get_gmtoff()  [J William Piggott]
lib/timeutils.c:
   - bug fix Segmentation fault  [J William Piggott]
   - strxxx_iso  do not wrap tm_year  [J William Piggott]
   - strxxx_iso  test conversion errors  [J William Piggott]
   - warn format_iso_time() overflow  [J William Piggott]
libblkid:
   - (bcache) cleanup magic string definition  [Karel Zak]
   - (dos)  make subtypes probing more robust  [Karel Zak]
   - (mpool) checksum is LE  [Karel Zak]
   - (mpool) don't use gtkdocs-like comment block  [Karel Zak]
   - Add VDO superblock information into blkid  [Sweet Tea Dorminy]
   - Add support for Micron mpool formatted drives  [John Groves]
   - Add support for stratis  [Tony Asleson]
   - Mark char* params to blkid_dev_set_search as const  [Andy Grover]
   - Support for Atari partitioning scheme  [Vaclav Dolezal]
   - add debug messages when ignore useless devices  [Karel Zak]
   - atari - don't add duplicate entries  [Vaclav Dolezal]
   - atari - fix bad variable name  [Vaclav Dolezal]
   - atari - reject devices with blocksize != 512  [Vaclav Dolezal]
   - atari - test if any partition fits disk size  [Vaclav Dolezal]
   - ignore private Stratis devices  [Tony Asleson]
   - improve FreeBSD partitions parsing  [Karel Zak]
   - make mpool independent on libuuid  [Karel Zak]
   - udf  Fix parsing LVID location  [Pali Rohár]
   - udf  Fix parsing UDF revision  [Pali Rohár]
   - udf  Fix reading Logical Volume Integrity Descriptor Implementation Use (LVIDIU)  [Pali Rohár]
   - udf  Optimize and fix probing when block size > 2048 bytes  [Pali Rohár]
   - udf  Really try to read only first LVID  [Pali Rohár]
   - udf  Stop scanning Volume Descriptors after we found Terminating Descriptor  [Pali Rohár]
   - udf  Update copyright  [Pali Rohár]
   - udf  Use UDF revision field from LVD domain id "*OSTA UDF Compliant" as a fallback value for ID_FS_VERSION when LVIDIU is missing  [Pali Rohár]
   - vfat  Fix reading labels which starts with byte 0x05  [Pali Rohár]
libfdisk:
   - (docs) add missing docs blocks  [Karel Zak]
   - (docs) improve enums documentation  [Karel Zak]
   - (docs) update year  [Karel Zak]
   - (dos) fix max heads  [Karel Zak]
   - (gpt) add VMware specific UUIDs  [Karel Zak]
   - (gpt) move backup header after device resize  [Karel Zak]
   - (gpt) use fdisk_warn() for failed name setting  [Karel Zak]
   - (script) be consistent in code with types  [Karel Zak]
   - (script) support R (RAID) and V (LVM) shortcuts  [Karel Zak]
   - (sun) enhance searching of free space  [Mikhail Vorobyov]
   - (sun) fix creation of whole disk partition  [Mikhail Vorobyov]
   - (sun) fix n-1 bug and whole-disk  [Karel Zak]
   - (sun) move aligning of the first sector before availability check  [Mikhail Vorobyov]
   - Fix uninitialized structure  [Roddy Shuler]
   - allocate enough bytes for ucs2 to utf8 encoding  [Vaclav Dolezal]
   - allow to start freespace for zero  [Karel Zak]
   - extend API to provide label specific geometry ranges  [Karel Zak]
   - fix docs warnings  [Karel Zak]
   - gpt  properly encode string on rename  [Vaclav Dolezal]
   - return bytes processed from gpt_entry_set_name(), process rc  [Vaclav Dolezal]
libmount:
   - (docs) update year  [Karel Zak]
   - Allow MNT_FORCE and MNT_DETACH at umount  [Joshua Watt]
   - Use waitpid() when waiting for mount helper child process  [Vratislav Podzimek]
   - add missing macro to docs  [Karel Zak]
   - add nsfs between pseudo filesystems  [Karel Zak]
   - check waitpid() return code  [Karel Zak]
   - deallocate on /proc/swaps parse error  [Karel Zak]
   - fix access() utab write test  [Karel Zak]
   - fix debug message  [Karel Zak]
   - fix example in docs  [Karel Zak]
   - fix fs pattern usage in mount --all  [Karel Zak]
   - fix mnt_table_is_fs_mounted() for rbind  [Karel Zak]
   - make libmount.h more robust  [Karel Zak]
   - make sure we deallocate on parse error  [Karel Zak]
   - minimize utimensat() write test usage  [Karel Zak]
   - use eacess() rather than open() to check mtab/utab  [Karel Zak]
libsmartcols:
   - (docs) update year  [Karel Zak]
   - don't add blank padding after left aligned title  [Karel Zak]
   - fix docs warnings  [Karel Zak]
   - fix mem-leaks in samples  [Karel Zak]
   - fixes issue with 0 width columns  [taiyu]
   - interpret zero width for pending data as error  [Karel Zak]
   - set minimal column width to 1  [Karel Zak]
libuuid:
   - make "CONFORMING TO" man sections more explicit  [Karel Zak]
login:
   - add LOGIN_PLAIN_PROMPT to login.defs  [Karel Zak]
login-utils:
   - use free_getlogindefs_data()  [Karel Zak]
lsblk:
   - add hint about perms to man page  [Karel Zak]
   - document LSBLK_DEBUG=  [Karel Zak]
   - try device/dev to read devno  [Karel Zak]
lscpu:
   - (arm) cleanup code  [Karel Zak]
   - Decode ARM CPUs  [Riku Voipio]
   - Treat read failure on Xen Hypervisor properties as non-fatal  [Dirk Mueller]
   - move ARM decoding to lscpu-arm.c  [Karel Zak]
   - move struct lscpu_desc header file  [Karel Zak]
lscpu-arm:
   - add Faraday And Brahma cores  [Riku Voipio]
lslocks:
   - add note about OFDLCK  [Karel Zak]
lsmem:
   - add --split  [Karel Zak]
   - add hint about block merges to the man page  [Karel Zak]
   - fix memory leak [coverity scan]  [Karel Zak]
   - fix total online/offline memory calculation  [Gerald Schaefer]
   - improve path_read_xxx() usage  [Karel Zak]
   - make --split optional, follow output by default  [Karel Zak]
lsmem/chmem:
   - add memory zone awareness  [Gerald Schaefer]
   - add memory zone awareness to bash-completion  [Andre Wild]
lsns:
   - (man) write about using multi-line in NSFS cell of lsns  [Masatake YAMATO]
   - add --nowrap(-W) option  [Masatake YAMATO]
   - add a case for testing netnsid column  [Masatake YAMATO]
   - add a case for testing nsfs column  [Masatake YAMATO]
   - add netnsid column  [Masatake YAMATO]
   - add nsfs column  [Masatake YAMATO]
   - disable netnsid column by default  [Masatake YAMATO]
   - fix clang compiler warning  [Ruediger Meier]
   - initialize stuff when really necessary  [Karel Zak]
   - nsfs stuff cleanup  [Karel Zak]
   - remove if-after-xcalloc  [Karel Zak]
   - rename notruns to no_trunc  [Karel Zak]
man:
   - use long options in text and add example to uuidgen  [Sami Kerola]
mcookie:
   - (man) add note about getrandom()  [Karel Zak]
   - properly initialize hash  [Karel Zak]
md5:
   - declare byteReverse as static  [Luca Ceresoli]
misc:
   - fix printf i386 compiler warnings  [Ruediger Meier]
   - fix typos  [Sami Kerola]
   - fix typos using codespell  [Ruediger Meier]
   - remove %p from debug messages  [Karel Zak]
mount:
   - (man) be explicit about bind operation  [Karel Zak]
   - (man) update mount options for UDF  [Steve Kenton]
   - add hint about -t and root perms to the man page  [Karel Zak]
   - add more details about UUIDs and LABELs to the man page  [Karel Zak]
   - add note about "already mounted" behavior  [Karel Zak]
   - add note about cached kernel table for --all  [Karel Zak]
   - be more accurate in man page about propagation flags  [Karel Zak]
mount(8):
   - drop redundant filesystem-specific sections  [Mike Frysinger]
   - point people to the proc(5) page for mount options  [Mike Frysinger]
   - umount does not (anymore?) say `none busy'  [Alan Jenkins]
newgrp:
   - use errexec()  [Karel Zak]
nsenter:
   - fix compiler warning [-Wuninitialized]  [Karel Zak]
   - revert changes committed by accident  [Karel Zak]
po:
   - merge changes  [Karel Zak]
   - update cs.po (from translationproject.org)  [Petr Písař]
   - update es.po (from translationproject.org)  [Antonio Ceballos Roa]
   - update fi.po (from translationproject.org)  [Lauri Nurmi]
   - update fr.po (from translationproject.org)  [Frédéric Marchal]
   - update ja.po (from translationproject.org)  [Takeshi Hamasaki]
   - update pl.po (from translationproject.org)  [Jakub Bogusz]
   - update pt_BR.po (from translationproject.org)  [Rafael Fontenelle]
   - update uk.po (from translationproject.org)  [Yuri Chornoivan]
rename:
   - rename.1 fix typo, where -> were  [Kenyon Ralph]
   - use access(3) to check if a file exists  [Sami Kerola]
rfkill:
   - provide RFKILL_TYPE_FM if undefined  [Ruediger Meier]
rtcwake:
   - add note about HW and sleep to the man page  [Karel Zak]
   - fix sys vs. rtc time delta usage  [Karel Zak]
   - wait stdin to settle down before entering a system sleep  [Sami Kerola]
sample-scols-title:
   - add left title without padding  [Karel Zak]
schedutils:
   - use errexec()  [Karel Zak]
setarch:
   - minor code clean up  [Sami Kerola]
setpriv:
   - add example section  [Sam Morris]
   - fix manpage typo  [Sam Morris]
   - improve description in man page  [Sam Morris]
   - include --init-groups in the list of options that can be specified with --[re]gid  [Sam Morris]
setsid:
   - new option --fork  [Karel Zak]
sfdisk:
   - add hint about udev and flock to the man page  [Karel Zak]
   - allow to disable bootable flag on all partitions  [Karel Zak]
   - allow to use --activate for PMBR  [Karel Zak]
   - cleanup shortcuts in man page too  [Karel Zak]
   - create empty label on 'write' command  [Karel Zak]
   - wait before re-read  [Karel Zak]
signames:
   - Make input char buffers const  [Niklas Hambüchen]
su:
   - build fix for the case where USE_PTY is not defined  [Samuel Thibault]
   - use errexec()  [Karel Zak]
sys-utils:
   - use errexec()  [Karel Zak]
test:
   - Add UDF hdd image with final block size 4096 created by Linux mkudffs 1.3  [Pali Rohár]
   - use subtests for jan1753 cal(1) test  [Karel Zak]
test_sha1:
   - update helper  [Karel Zak]
tests:
   - Add UDF cd image created by mkudfiso 20100208  [Pali Rohár]
   - GPT device resize test  [Karel Zak]
   - add /proc/swaps libmount parser test  [Karel Zak]
   - add LUKS test images  [Milan Broz]
   - add cal(1) --week=40 1752  [Karel Zak]
   - add fsck.cramfs bad-header test  [Karel Zak]
   - add ipcslimits lock  [Ruediger Meier]
   - add lock on shared resources (e.g. scsi_debug)  [Karel Zak]
   - add mdadm locks  [Karel Zak]
   - add mpool blkid test image  [Karel Zak]
   - add set-x to lsns test  [Karel Zak]
   - add some more udevadm settle  [Ruediger Meier]
   - add tests for encode functions from lib/mbsalign.c  [Vaclav Dolezal]
   - add udevadm settle to sfdisk/resize  [Ruediger Meier]
   - add wierd sleep for libmount/context  [Ruediger Meier]
   - added missing expected outputs for partx (atari)  [Vaclav Dolezal]
   - added test for libblkid atari pt  [Vaclav Dolezal]
   - adjust for ISO timezone colon use  [J William Piggott]
   - allow to use memory checks for libsmartcols  [Karel Zak]
   - better lsns report on fail  [Karel Zak]
   - check for HAVE_LINUX_NET_NAMESPACE_H  [Karel Zak]
   - column(1) test for space-char separator  [Karel Zak]
   - column(1) test non-space separator at begin of line  [Karel Zak]
   - consolidate ts_device_has UUID or LABEL  [Ruediger Meier]
   - don't call tests with races in --parallel  [Karel Zak]
   - don't lock fd 1 (stdout), don't use /proc/$$/fd  [Ruediger Meier]
   - don't use mount.<type> helpers in mount-by-pattern tests  [Karel Zak]
   - don't use unlocked resources  [Ruediger Meier]
   - dont't timeout flock  [Ruediger Meier]
   - fix fincore/count KNOWN_FAIL  [Ruediger Meier]
   - fix grep expressions for devices  [Ruediger Meier]
   - fix losetup race  [Ruediger Meier]
   - fix lsns perms  [Karel Zak]
   - handle xargs errors and invalid args  [Ruediger Meier]
   - make lsns test more robust  [Karel Zak]
   - mark fincore/count as KNOWN_FAIL  [Karel Zak]
   - mark mbsencode as KNOWN_FAIL  [Vaclav Dolezal]
   - mbsencode - removed emoji, added control unicode character  [Vaclav Dolezal]
   - mbsencode - test for HAVE_WIDECHAR  [Vaclav Dolezal]
   - merge 1m and 3m cal(1) tests  [Karel Zak]
   - merge sep1752 cal(1) tests  [Karel Zak]
   - merge year cal(1) tests  [Karel Zak]
   - re-introduce bash 3 compatibility (OSX)  [Ruediger Meier]
   - rename --memcheck to --memcheck-valgrind  [Karel Zak]
   - rename ts_valgrind to ts_run  [Karel Zak]
   - rewrite cal(1) bigyear test  [Karel Zak]
   - rewrite fsck-bad-header  [Ruediger Meier]
   - simplify cal(1) sep1752w test  [Karel Zak]
   - support multiple locks  [Karel Zak]
   - suppress warning for old sync(1)  [root]
   - unlocks on failed ts_scsi_debug_init  [Karel Zak]
   - update build-sys tests  [Karel Zak]
   - update cal(1) tests  [Karel Zak]
   - update columns test due to dda229c7b2b16a31fae8e99079ab4f4ae5bc8eac  [Karel Zak]
   - update default lsmem output  [Karel Zak]
   - update libsmartcols/title  [Karel Zak]
   - update lsmem  [Karel Zak]
   - update setarch test  [Karel Zak]
   - use TS_HELPER_CAL  [Karel Zak]
   - use flock to modify fstab  [Karel Zak]
   - use libtool to execute with valgrind  [Karel Zak]
   - use pgrep instead of ps --ppid ...  [Ruediger Meier]
   - use subtests for sep1752w test  [Karel Zak]
   - use subtests for weekarg cal(1) tests  [Karel Zak]
   - use subtests for weeknum cal(1) tests  [Karel Zak]
tests/lsmem:
   - update lsmem test with ZONES column  [Gerald Schaefer]
text-utils:
   - use errexec()  [Karel Zak]
tools:
   - improve checkmans  [Karel Zak]
travis:
   - enable osx root checks  [Ruediger Meier]
   - homebrew/dupes was deprecated  [Ruediger Meier]
   - use parallel root checks  [Ruediger Meier]
unshare:
   - Add --kill-child option.  [Niklas Hambüchen]
   - Allow passing <signame> to --kill-child  [Niklas Hambüchen]
   - cleanup if-if code  [Karel Zak]
uuidd:
   - cosmetic coding style change  [Karel Zak]
   - don't truncate long socket paths  [Ruediger Meier]
vipw:
   - do not let editor to inherit open file descriptors  [Sami Kerola]
   - use errexec()  [Karel Zak]
whereis:
   - fix typo in debug message  [Karel Zak]
zramctl:
   - use xstrdup()  [Karel Zak]
