From 6f08afde53f4ca721e2023413bc90d4424ba859e Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 26 Feb 2026 13:32:37 +0100 Subject: [PATCH 001/267] docs: add v2.42-ReleaseNotes Signed-off-by: Karel Zak --- Documentation/releases/v2.42-ReleaseNotes | 1710 +++++++++++++++++++++ 1 file changed, 1710 insertions(+) create mode 100644 Documentation/releases/v2.42-ReleaseNotes diff --git a/Documentation/releases/v2.42-ReleaseNotes b/Documentation/releases/v2.42-ReleaseNotes new file mode 100644 index 00000000000..20855dba84d --- /dev/null +++ b/Documentation/releases/v2.42-ReleaseNotes @@ -0,0 +1,1710 @@ +util-linux 2.42 Release Notes +============================= + +The NTFS mount type (kernel FS driver) can be changed by the compile option +--with-ntfs-mounttype=, the default is ntfs3. + +login(1) now uses the original FQDN (as specified by "-h ") to configure +the PAM RHOST item. All previous versions used the hostname without domain. +This may affect users who use login(1) for remote access (rlogin, rsh) and +pam_access to define access rules. (Don't worry, if you still use rlogin then +security is already irrelevant for you.) + +login(1), if configured with LOGIN_SHELL_FALLBACK in login.defs, can fall back +to another valid shell from /etc/shells if the user's configured shell is +inaccessible due to administrative errors. + +agetty reads issue file(s) in a way compatible with libeconf and systemd, +hermetic-usr and drop-ins are now supported. For more details see +https://uapi-group.org/specifications/specs/configuration_files_specification/ + +agetty uses netlink to get network interface information for issue file output. + +The libsmartcols-based tools with JSON support can now produce additional JSON +formats. The output format may be changed by LIBSMARTCOLS_JSON={lines,compact} +environment variable. + +column(1) now supports colors. + +New command copyfilerange(1) to copy file ranges using the copy_file_range() +syscall. + +New command getino(1) to print the unique inode number associated with a +process file descriptor or namespace for a given PID. + +fadvise(1) now supports --fd to address a file by file descriptor rather than +by path. + +fallocate(1) now supports --report-holes to scan the file and report the +distribution of holes. + +A significant performance regression has been fixed in hardlink(1). + +hardlink(1) now supports FIEMAP-based sparse file optimization. + +kill(1), waitpid(1) and nsenter(1) now support the PID:INO convention to +precisely address processes. + +mount(8) now supports --beneath to atomically replace a filesystem at a +mountpoint. + +mount(8) now supports --exclusive to ensure that the filesystem is mounted as a +unique instance and that the superblock is not reused by the kernel. + +libmount now reads filesystem information from udevd (with fallback to classic +libblkid-based detection). This feature can be disabled by +--disable-libmount-udev-support. + +setarch(8) now supports --pid to show the personality of a specified process. + +The pager support for tools like "dmesg -H" has been improved to work better +with signals. + +losetup(8) now supports --remove to remove a loop device node from the system. + +lsblk(8), lslocks(8), lsmem(1) and lsclocks(1) support _COLUMNS +environment variable to specify output columns as an alternative to --output. + +lsfd(1) now supports new UNIX.IPEER, PACKET.PROTOCOL.RAW and TUN.DEVNETNS +columns. + +setpriv(1) now supports landlock via --landlock-access and --landlock-rule +options. + + +Changes between v2.41 and v2.42 +------------------------------- + +agetty: + - Fix reading /run/issue.d/ again (by Fabian Vogt) + - Process all data from ul_nl_process() (by Stanislav Brabec) + - Implement netlink based IP processing (by Stanislav Brabec) + - use standard path macros (by Karel Zak) + - using configs lib for parsing issue files (by Stefan Schubert) + - fix erasure of escape sequences and tab characters (by Karel Zak) + - fix stdin conversion to tty name (by Karel Zak) + +agetty,setterm: + - (man) remove the mistakenly added -h and -V short options (by Benno Schulenberg) + +AUTHORS: + - add copyfilerange (by Karel Zak) + - update Zhenwei Pi email (by zhenwei pi) + +autotools: + - use $PTHREAD_LIBS everywhere (by Karel Zak) + - optionally add libpthread to uuid.pc (by Bernd Kuhls) + - cleanup tests to use libcommon.la (by Karel Zak) + - don't use wide-character ncurses if --disable-widechar (by Karel Zak) + - add missing meson.build files (by Karel Zak) + - Fix use of mq_open and mq_close (by Samuel Thibault) + - remove tools/git-tp-sync-man (by Karel Zak) + +bash-completion: + - add getino completions (by Christian Goeschel Ndjomouo) + - (lscpu) add --annotate option (by Christian Goeschel Ndjomouo) + - (lslogins) fix typo in long option (by Christian Goeschel Ndjomouo) + - (unshare) add missing --map-subids option (by Christian Goeschel Ndjomouo) + - (mountpoint) add missing --show option (by Christian Goeschel Ndjomouo) + - (mount) add missing --ro option (by Christian Goeschel Ndjomouo) + - (lslogins) add missing long options (by Christian Goeschel Ndjomouo) + - (lsclocks) add missing --no-discover-rtc option (by Christian Goeschel Ndjomouo) + - (hwclock) add missing --ul-debug option (by Christian Goeschel Ndjomouo) + - (flock) add missing long options (by Christian Goeschel Ndjomouo) + - (nsenter) add missing --follow-context (by cgoesche) + - (namei) add missing --context (by cgoesche) + - (setpriv) add missing long options (by cgoesche) + - (pg) add missing long options (by cgoesche) + - (lastlog2) add missing --active (by cgoesche) + - (whereis) add missing long options (by Christian Goeschel Ndjomouo) + - (wdctl) add missing long options (by Christian Goeschel Ndjomouo) + - (uuidd) add missing --cont-clock (by Christian Goeschel Ndjomouo) + - (unshare) add missing long options (by Christian Goeschel Ndjomouo) + - (swapon) add missing --options (by Christian Goeschel Ndjomouo) + - (sfdisk) add missing long options (by Christian Goeschel Ndjomouo) + - (setsid) add missing --fork (by Christian Goeschel Ndjomouo) + - (scriptlive) add missing --echo (by Christian Goeschel Ndjomouo) + - (renice) add missing --relative (by Christian Goeschel Ndjomouo) + - (more) add missing --exit-on-eof (by Christian Goeschel Ndjomouo) + - (mkswap) add missing long options (by Christian Goeschel Ndjomouo) + - (mkfs.minix) add missing --lock (by Christian Goeschel Ndjomouo) + - (mkfs.cramfs) add missing long options (by Christian Goeschel Ndjomouo) + - (mkfs.bfs) add missing --lock (by Christian Goeschel Ndjomouo) + - (lsmem) add missing --split (by Christian Goeschel Ndjomouo) + - (lslogins) add missing --shell (by Christian Goeschel Ndjomouo) + - (lscpu) add missing --hierarchic (by Christian Goeschel Ndjomouo) + - (lsclocks) add missing --no-discover-dynamic (by Christian Goeschel Ndjomouo) + - (lsblk) add missing long options (by Christian Goeschel Ndjomouo) + - (losetup) add missing long options (by Christian Goeschel Ndjomouo) + - (hwclock) add missing long options (by Christian Goeschel Ndjomouo) + - (hardlink) add missing long options (by Christian Goeschel Ndjomouo) + - (getopt) add missing --unknown (by Christian Goeschel Ndjomouo) + - (fsck) add missing long options (by Christian Goeschel Ndjomouo) + - (flock) add missing --verbose (by Christian Goeschel Ndjomouo) + - (findmnt) add missing long options (by Christian Goeschel Ndjomouo) + - (fincore) add missing --total (by Christian Goeschel Ndjomouo) + - (fallocate) add missing --write-zeroes (by Christian Goeschel Ndjomouo) + - (fadvise) add missing --fd (by Christian Goeschel Ndjomouo) + - (column) add missing long options (by Christian Goeschel Ndjomouo) + - (cfdisk) add missing --sector-size (by Christian Goeschel Ndjomouo) + - (cal) add missing long options (by Christian Goeschel Ndjomouo) + - (blockdev) add missing long options (by Christian Goeschel Ndjomouo) + - (blkid) add missing --hint (by Christian Goeschel Ndjomouo) + - (bits) add missing --binary (by Christian Goeschel Ndjomouo) + - (mount) add missing options (by Christian Goeschel Ndjomouo) + - (lslogins) add --list-columns option (by Christian Goeschel Ndjomouo) + - (lslogins) add --json completion (by Christian Goeschel Ndjomouo) + - dmesg remove redundant completion for --buffer-size (by Christian Goeschel Ndjomouo) + - dmesg complete filenames for --kmsg-file (by Christian Goeschel Ndjomouo) + - dmesg add missing long options (by Christian Goeschel Ndjomouo) + - add lsfd (by Karel Zak) + - add blkpr (by Karel Zak) + - add bits to dist tarball (by Karel Zak) + - (swapon) add --annotation option (by Christian Goeschel Ndjomouo) + - add MICROCODE to $OPTS_ALL (by Christian Goeschel Ndjomouo) + - (lsns) add -H/--list-columns options (by Christian Goeschel Ndjomouo) + - (lscpu) add -H/--list-columns options (by Christian Goeschel Ndjomouo) + - add fallback to filename expansion for umount (by Christian Goeschel Ndjomouo) + - fix function name of enosys completion (by Koichi Murase) + - add choom and coresched (by Karel Zak) + - update autocompletion list to 'ntfs3' (by Johannes Schneider) + - use "command ls" instead of "\ls" (by Koichi Murase) + - prefix "command" to other external commands (by Koichi Murase) + - prefer "builtin cd" to "cd" to avoid aliases (by Koichi Murase) + - prefer "command lsblk" to "lsblk" to avoid aliases (by Koichi Murase) + - (chrt) add completion for -e/--ext (by Shashank Balaji) + - (setarch) show some options as the 1st arg (by Masatake YAMATO) + +bits: + - only build when cpu_set_t is available (by Alyssa Ross) + - (man) normalize the markup and improve some layout (by Benno Schulenberg) + +blkdev: + - Correct zone report size calculation (by Leefancy) + +blkdiscard: + - (tests) add more long option tests (by Christian Goeschel Ndjomouo) + +blkid: + - add --garbage-collect test (by Christian Goeschel Ndjomouo) + - (testcoverage) add more long option tests (by Christian Goeschel Ndjomouo) + - move error checks before JSON output initialization (by Karel Zak) + - Drop const from blkid_partitions_get_name() (by Daan De Meyer) + - correct an erroneous error message (by Benno Schulenberg) + +blkpr: + - fix compilation [-Werror,-Wunused-function] (by Karel Zak) + - Call gettext() for descriptions, clean up (by Karel Zak) + - add read-reservation command (by Stefan Hajnoczi) + - add read-keys command (by Stefan Hajnoczi) + - prepare for _IOR() ioctls (by Stefan Hajnoczi) + +blkzone: + - remove unnecessary brackets (by Karel Zak) + - add more checks when printing zone write_pointer (by Wilfred Mallawa) + - make N/A string translatable (by Karel Zak) + - don't show wptr when zones are full (by Wilfred Mallawa) + - (man) reduce two overblown tables to legible proportions (by Benno Schulenberg) + +build: + - simplify checks for fallocate() and posix_fallocate() (by Thomas Weißschuh) + +build(deps): + - bump actions/cache from 4 to 5 (by dependabot[bot]) + - bump actions/upload-artifact from 5 to 6 (by dependabot[bot]) + - bump actions/checkout from 1 to 6 (by dependabot[bot]) + - bump actions/upload-artifact from 4 to 5 (by dependabot[bot]) + - bump github/codeql-action from 3 to 4 (by dependabot[bot]) + - bump actions/labeler from 5 to 6 (by dependabot[bot]) + - bump actions/checkout from 1 to 5 (by dependabot[bot]) + +build-sys: + - add a target for tools/testcoverage.sh (by Christian Goeschel Ndjomouo) + - (gcc) ignore -Wunused-but-set-variable for bison (by Christian Goeschel Ndjomouo) + - make sure _PATH_SYSCONFDIR is defined (by Karel Zak) + - update release dates (by Karel Zak) + - keep the most recent version in NEWS (by Karel Zak) + +cal: + - add note about today highlight on -w (by Karel Zak) + - improve header color printing (by Karel Zak) + +cfdisk: + - fix memory leak and possible NULL dereference [gcc-analyzer] (by Karel Zak) + +chfn: + - allow --help and --version without login.defs restrictions (by Karel Zak) + - improve man page (by Christian Goeschel Ndjomouo) + - make comment more accurate (by Christian Goeschel Ndjomouo) + - fix minor grammar mistakes in comments (by Christian Goeschel Ndjomouo) + - use true/false bool values for semantic clarity (by Christian Goeschel Ndjomouo) + - use direct equality check for semantic clarity and readability (by Christian Goeschel Ndjomouo) + - free memory before return from save_new_data() (by Christian Goeschel Ndjomouo) + - use null character (0) for better readability (by Christian Goeschel Ndjomouo) + - fix typos, wording, and punctuation inconsistencies (by Christian Goeschel Ndjomouo) + - enable the use of the username or UID (by Christian Goeschel Ndjomouo) + +chmem: + - do not word a configuration failure as an instruction to the user (by Benno Schulenberg) + - improve messages (by Karel Zak) + - add chmem documentation for dynamic (de)configuration of memory (by Sumanth Korikkar) + - add support for dynamic (de)configuration of hotplug memory (by Sumanth Korikkar) + - Remove commit - chmem print warnings about failures always (by Sumanth Korikkar) + - (man) add missing end-of-bold marker, and add missing OR bar (by Benno Schulenberg) + - print warnings about failures always (not only with --verbose) (by Benno Schulenberg) + +choom: + - (testcoverage) add long options tests (by Christian Goeschel Ndjomouo) + - (man) add the missing SYNOPSIS section header, and improve wording (by Benno Schulenberg) + +chrt: + - (man) fix note about --sched-period lower limit (by Jan Krieg) + - (man,usage) put --pid first in synopses and examples, for clarity (by Benno Schulenberg) + - (man) improve wording and markup of some examples (by Benno Schulenberg) + - (man,usage) mark the priority value as optional in the synopses (by Benno Schulenberg) + - produce better error message for missing priority with implied -r (by Benno Schulenberg) + - Allow optional priority for non‑prio policies without --pid (by Madadi Vineeth Reddy) + - do not try to interpret any other option as a PID either (by Benno Schulenberg) + - simplify the other check for too few arguments (by Benno Schulenberg) + - do not try to interpret the --pid option itself as a PID (by Benno Schulenberg) + - with more than one argument, interpret first argument as priority (by Benno Schulenberg) + - (man) mark "argument" as optional, and unabbreviate it in usage (by Benno Schulenberg) + - (man) correct the short form of --ext, from -d to -e (by Benno Schulenberg) + - Make priority optional for policies that don't use it (by Madadi Vineeth Reddy) + - Only display current settings when no policy is specified (by Madadi Vineeth Reddy) + - Make minor cleanups in chrt (by Madadi Vineeth Reddy) + - (man) add SCHED_EXT (by Shashank Balaji) + - add support for SCHED_EXT (by Shashank Balaji) + +chsh: + - extend usage message (by Tobias Stoeckmann) + - use new xgetuserpw() instead of xgetpwnam() (by Christian Goeschel Ndjomouo) + +ci: + - add usage message consistency check to CI CODECHECK phase (by Christian Goeschel Ndjomouo) + - add usage message consistency check to CI CHECK phase (by Christian Goeschel Ndjomouo) + - roll back the version of checkout for "build (compat, ubuntu:18.04)" (by Masatake YAMATO) + - add bash-completion consistency check to CODECHECK (by Karel Zak) + - build on MIPS (by Thomas Weißschuh) + - add OpenWRT subtarget to matrix name (by Thomas Weißschuh) + - update gcc to version 14 (by Thomas Weißschuh) + - update clang to version 20 (by Thomas Weißschuh) + - bump uraimo/run-on-arch-action to v3 (by Frantisek Sumsal) + - (reverted) temporarily switch the alt-arch job worker to Ubuntu 22.04 (by Frantisek Sumsal) + +col: + - use snprintf() instead of sprintf() (by Karel Zak) + +colrm: + - make two error messages actually say that something is wrong (by Benno Schulenberg) + +column: + - using switch-case replaces if-else (by WanBingjiang) + - add JSON compact format output subtest. (by WanBingjiang) + - add JSON LINES format output subtest. (by WanBingjiang) + - introduce LIBSMARTCOLS_JSON environment argument (by WanBingjiang) + - add bash-completion for table-header-as-columns (by WanBingjiang) + - add option '--table-header-as-columns' for using first line as table columns names. (by WanBingjiang) + - add --input-separator as an alias for --separator (by Karel Zak) + - (usage) wrap two descriptions, to make them fit within 80 columns (by Benno Schulenberg) + - (usage) correct the description of --wrap-separator (by Benno Schulenberg) + - add --wrap-separator option for custom text wrapping (by Karel Zak) + - add support for color scheme (by Karel Zak) + - call gettext() on an error message only when it gets printed (by Benno Schulenberg) + - add --color[=] to control colorization (by Karel Zak) + - add basic colors support (by Karel Zak) + - (man) fix broken markup, and improve other markup and wordings (by Benno Schulenberg) + - fix compiler warning for non-widechar compilation (by Karel Zak) + - replace a mistaken word in an error message (by Benno Schulenberg) + +column doc: + - add missing attrubutes (by WanBingjiang) + - fix incorrect attribute hidden (by WanBingjiang) + +{configure.ac,meson.build}: + - conditionally build {enosys,setpriv} if seccomp is present #3280 (by Thomas Devoogdt) + +copyfilerange: + - new command to call copy-file-range (by Dick Marinus) + +coresched: + - reduce excessive whitespace and verbosity in usage text (by Benno Schulenberg) + +cpuset: + - Use stride in cpulist_create (by Jesse Rosenstock) + +disk-utils: + - add attribute nonstring to bfs byte arrays (by Cristian Rodríguez) + +dmesg: + - add bounds checking to parse_kmsg_timestamp() (by Karel Zak) + - Gracefully handle EPIPE errors (by Tobias Stoeckmann) + - Register pager_close as exit handler (by Tobias Stoeckmann) + - Keep error messages in parent's stderr (by Tobias Stoeckmann) + - update prepare_buffer() comment (by Karel Zak) + - improve buffer size error message (by Karel Zak) + - Fix short memory allocation with 32 bit (by Tobias Stoeckmann) + - Add release_buffer function (by Tobias Stoeckmann) + - Split preparing and printing of buffer (by Tobias Stoeckmann) + - Check if file is too large (by Tobias Stoeckmann) + - Only check for newline if input exists (by Tobias Stoeckmann) + - Check input length before calling strtol (by Tobias Stoeckmann) + - fix const qualifier warnings in parse_callerid (by Karel Zak) + - use snprintf() instead of sprintf() (by Karel Zak) + +docs: + - lsns(8) add missing a comma in SEE ALSO section (by Masatake YAMATO) + - write about EditorConfig (by Masatake YAMATO) + - update mount options for 'ntfs3' (by Johannes Schneider) + - update mount type to 'ntfs3' (by Johannes Schneider) + - stop the copyright verbiage from getting included in the POT file (by Benno Schulenberg) + - make the "po4a:" line the first line, like in all other .adoc files (by Benno Schulenberg) + - correct mistaken uses of "overwrite" to say "override" instead (by Benno Schulenberg) + - correct misspellings of "may be" and mistaken uses of "overwritten" (by Benno Schulenberg) + - add -h/--help and -V/--version to three man pages that lacked them (by Benno Schulenberg) + - fix a few indentation issues (by Benno Schulenberg) + - improve and harmonize the description of -H / --list-columns (by Benno Schulenberg) + - rewrite the description of --bytes, to be clearer (by Benno Schulenberg) + - cherry-pick 2.41-ReleaseNotes (by Karel Zak) + +docs,usage: + - harmonize description of --hyperlink, and add 2 missing ones (by Benno Schulenberg) + +Documentation: + - Fix "maybe be" typo (by Tobias Stoeckmann) + +editorconfig: + - add .sh setting (by Karel Zak) + +eject: + - fix const qualifier warning in read_speed (by Karel Zak) + - (man) add the missing SYNOPSIS header (by Benno Schulenberg) + +enosys: + - fix const qualifier warning in parse_block (by Karel Zak) + - add the missing arguments of -s and -i to the usage text (by Benno Schulenberg) + +env: + - ignore only invalid environment variables (by Tobias Stoeckmann) + +exch: + - cosmetic code changes (by Karel Zak) + - fix compile error if renameat2 is not present (by Thomas Devoogdt) + +fadvise: + - add --fd to the help output (by Christian Goeschel Ndjomouo) + +fallocate: + - refactor --report-holes and --dig-holes output (by Karel Zak) + - add --report-holes (by syokensyo) + - require posix_fallocate() from libc (by Thomas Weißschuh) + - drop syscall() fallback for fallocate() (by Thomas Weißschuh) + - allow O_CREATE if mode is FALLOC_FL_WRITE_ZEROES (by Lukas Herbolt) + - (man,usage) correct the alphabetical sorting of the options (by Benno Schulenberg) + - (man) slightly improve the grammar of two sentences (by Benno Schulenberg) + - redo four tweaks that were accidentally undone (by Benno Schulenberg) + - update FALLOC_FL_WRITE_ZEROES (by Karel Zak) + - add FALLOC_FL_WRITE_ZEROES support (by Zhang Yi) + - rework incompatible options (by Antonio Russo) + +fdformat: + - use size_t and ssize_t (by Karel Zak) + +fdisk: + - (man) correct the markup + punctuation of two option descriptions (by Benno Schulenberg) + - make SIGINT handler signal-safe (by Tobias Stoeckmann) + - (manpage) add --bytes option description (by Christian Goeschel Ndjomouo) + - fix possible memory leak (by Karel Zak) + - (man) add note about partition size calculation (by Karel Zak) + +fdisk,partx: + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + +fincore: + - The previous exit did not call munmap, resulting in a memory mapping leak. (by fortunate-lee) + - close the ftsp to prevent fd leak (by syokensyo) + - do not fall back to mincore if cachestat fails with EPERM (by Thomas Weißschuh) + - add option to show a grand total (by Matteo Croce) + - add recursive directory scanning (by Matteo Croce) + +findmnt: + - fix misleading warning messages for ntfs3 (by Karel Zak) + - (usage) add a needed equals sign before an optional argument (by Benno Schulenberg) + - add missing newline in --raw, --pair and --list output formats (by Christian Goeschel Ndjomouo) + - fix -k option parsing regression (by Karel Zak) + - (man) remove duplicated option, and correct a description (by Benno Schulenberg) + +fix: + - use Py_REFCNT macro to work with free-threaded python (by Wouter Deconinck) + +fix typo: + - exciting -> existing (by Matteo Croce) + +flock: + - (manpage) fix typo in option description (by Christian Goeschel Ndjomouo) + - resolve consistency issue in the usage message (by Christian Goeschel Ndjomouo) + - fix incomplete -n option info in usage message (by Christian Goeschel Ndjomouo) + - support locking with byte-range (by Masatake YAMATO) + +fsck.cramfs: + - fix off-by-one heap write in do_symlink() (by Karel Zak) + - check buffer size for memcpy() (by Karel Zak) + +fstrim: + - use F_TYPE_EQUAL() macro for statfs.f_type comparison (by cgoesche) + - mark only the mountpoint as placeholder, not options -A and -a (by Benno Schulenberg) + +getino: + - (manpage) improve grammar and wording (by Christian Goeschel Ndjomouo) + - new tool to print the unique pidfd or namespace inode number (by Christian Goeschel Ndjomouo) + +getopt: + - (usage) make the description of -U fit within 80 columns (by Benno Schulenberg) + - add member posixly_correct to struct getopt_control (by Christian Goeschel Ndjomouo) + - add feature to ignore unknown options (by Christian Goeschel Ndjomouo) + - clarify the use of '--long' instead of '--longoptions' in shell examples (by cgoesche) + - document special symbols that should not be used as option characters (by cgoesche) + +github: + - revert actions/checkout for ubuntu 18.04 (by Karel Zak) + +gitignore: + - Ignore tests/diff/ and test/output/ (by Jesse Rosenstock) + +hardlink: + - (man) add note note about ULFILEEQ_DEBUG= (by Karel Zak) + - (man,usage) sort the options mostly alphabetically (by Benno Schulenberg) + - (usage) improve the descriptions of three options (by Benno Schulenberg) + - (usage) remove mistaken period from two option descriptions (by Benno Schulenberg) + - define more function as inline (by Karel Zak) + - fix performance regression (inefficient signal evaluation) (by Karel Zak) + - Use macro for verbose output (by Karel Zak) + - fix typoed semicolon to colon in error message (by Benno Schulenberg) + - replace a strange word in an error message (by Benno Schulenberg) + +hexdump: + - (man) document byte order dependency in multi-byte formats (by Karel Zak) + - sanitize fiemap ioctl output (by Karel Zak) + - add fetch_more_extents to retrieve all file extents (by WanBingjiang) + - fixes Heap-buffer-overflow in rewrite_rules (by WanBingjiang) + - add FIEMAP-based sparse file optimization (by WanBingjiang) + - (man) put a list item on a single line, to avoid a warning (by Benno Schulenberg) + - (man) normalize the synopsis, and shrink a list and two tables (by Benno Schulenberg) + +hwclock: + - (manpage) add --param-index description (by Christian Goeschel Ndjomouo) + - mark non-standard long options to ignore in CI CHECK (by Christian Goeschel Ndjomouo) + - skip RTC_PARAM_SET for --param-set with unchanged value (by Bastian Krause) + - use snprintf() instead of sprintf() (by Karel Zak) + - remove two comments about parameters that no longer exist (by Benno Schulenberg) + - avoid dereferencing a pointer [coverity scan] (by Karel Zak) + +hwclock-rtc: + - fix verbose output when --param-set value is unchanged (by Jesse Gilles) + +hwclock-rtc.c: + - (reverted) try the 'new' rtc class first (by Rasmus Villemoes) + +include: + - rename mount-api-utils.h to mountutils.h (by Karel Zak) + - (pidfd-utils.h) conditionally define pidfd inode support (by Christian Goeschel Ndjomouo) + - (statfs_magic.h) add pidfs magic number (by Christian Goeschel Ndjomouo) + - add helper routines for opening and validating pidfds (by Christian Goeschel Ndjomouo) + - implement ARRAY_SIZE with compiler _Countof if supported (by Cristian Rodríguez) + - use public domain for colors.{c,h} and xalloc.h (by Karel Zak) + +include/cctype: + - fix string comparison (by Karel Zak) + +include/c.h: + - add MAX_OF_UINT_TYPE macro to get max num of an uint type (by Christian Goeschel Ndjomouo) + - add USAGE_LIST_COLUMNS_OPTION() macro (by Christian Goeschel Ndjomouo) + +include/list: + - add a macro for initializing list_head a declarative way (by Masatake YAMATO) + +include/list,lsfd: + - remove LIST_HEAD macro again (by Masatake YAMATO) + +include/mount-api-utils: + - update to recent kernel (by Karel Zak) + - avoid using sys/mount.h (by Karel Zak) + - include linux/unistd.h (by Thomas Weißschuh) + - improve coding style (by Karel Zak) + +include/mountutils: + - remove duplicate inttypes.h include (by Karel Zak) + +include/optutils: + - improve err_exclusive_options() output (by Karel Zak) + +include/path: + - fix HAVE_STRUCT_STATX use (by Karel Zak) + +include/pidfd-utils: + - improve robustness (by Karel Zak) + +include/strutils: + - add missing header guard comment (by Christian Goeschel Ndjomouo) + - add ul_strtou16() (by Karel Zak) + - Add startswithpath() (by Karel Zak) + +ipcrm: + - (manpage) add --verbose description (by Christian Goeschel Ndjomouo) + - in usage text, use two lines when option+arguments is very long (by Benno Schulenberg) + - move a constant argument in order to gettextize the message (by Benno Schulenberg) + +ipcs: + - align the first group of options with later ones in the usage text (by Benno Schulenberg) + +ipcutils, lsipc: + - unabbreviate two words in some error messages (by Benno Schulenberg) + +irqtop: + - use standard 'always/never' arguments instead of 'enable/disable' (by Benno Schulenberg) + - make the wording of an error message identical to that of another (by Benno Schulenberg) + - improve several more option descriptions, and align them all (by Benno Schulenberg) + - improve the description of --batch, and align it with others (by Benno Schulenberg) + - use output string in a more robust way (by Karel Zak) + - support json output format (by Joe Jin) + - add max iteration support (by Joe Jin) + - add batch mode support (by Joe Jin) + +irqtop,lsirq: + - use scols debug (by Karel Zak) + - set up locale path, so messages get actually translated (by Benno Schulenberg) + +jsonwrt: + - rename ul_json_format_t to enum ul_json_format (by Karel Zak) + - simplify ul_jsonwrt_empty() and add comments for COMPACT format (by WanBingjiang) + - support Compact JSON format output (by WanBingjiang) + +kill: + - use uint64_t as type for kill_control->pidfd_ino (by Christian Goeschel Ndjomouo) + - replace USE_KILL_WITH_PIDFD_INO ifdef with USE_PIDFD_INO_SUPPORT (by Christian Goeschel Ndjomouo) + - use ul_get_valid_pidfd_or_err() to validate user provided pidfd inodes (by Christian Goeschel Ndjomouo) + - the situation where fd is opened but not closed (by fortunate-lee) + - (refactor) rename parameter to better reflect its purpose (by Masatake YAMATO) + - add support for race-free process kills using pidfd inodes (by Christian Goeschel Ndjomouo) + - comments fix grammar in parse_arguments() (by Naoki Wake) + - usage fix wrapped indent in -l/--list description (by Naoki Wake) + +kill.1.adoc: + - update the description for -l/-L option (by Masatake YAMATO) + +kill (-l/-L): + - print one signal per line when stdout is not a TTY (by Masatake YAMATO) + +last: + - (man) reduce an inflated table to sane proportions (by Benno Schulenberg) + - (man) correct the descriptions of --present and --since (by Benno Schulenberg) + - don't use a tab character in the --help usage text (by Benno Schulenberg) + +lastlog2: + - besides -v, recognize also the standard -V for --version (by Benno Schulenberg) + - (man) fix some broken markup, and lowercase option arguments (by Benno Schulenberg) + +ldattach: + - Allow changing the MTU for GSM0710 framing (by Seppo Takalo) + - add ifndef BOTHER (by Karel Zak) + +lib: + - (strutils.c) fix unchecked lookahead in ul_parse_size() (by Christian Goeschel Ndjomouo) + - (pidfd-utils) provide a more liberal variant of ul_get_valid_pidfd_or_err() (by Christian Goeschel Ndjomouo) + - (pidutils) improve the return protocol (by Christian Goeschel Ndjomouo) + - (pidutils) add a routine to parse pids and err() on failure (by Christian Goeschel Ndjomouo) + - (pidutils) improve 'PID:inode' parsing logic (by Christian Goeschel Ndjomouo) + - (pidfd-utils) minor correction in the ul_get_valid_pidfd_or_err() description (by Christian Goeschel Ndjomouo) + - (pidfd-utils.c) set __unused__ in right way (by Karel Zak) + - (procfs.c) remove extraneous return statement (by Christian Goeschel Ndjomouo) + - (pidutils.c) use uint64_t instead of ino_t for seamless cross-compatibility (by Christian Goeschel Ndjomouo) + - (pidfd-utils.c) remove extraneous _GNU_SOURCE feature test macro (by Christian Goeschel Ndjomouo) + - (pidfd-utils) new helper function to retrieve pidfd inode number (by Christian Goeschel Ndjomouo) + - (pidfd-utils.c) add a helper routine to check the pidfd fs type (by Christian Goeschel Ndjomouo) + - introduce ul_default_shell() for consistent shell resolution (by Alessandro Ratti) + - (pwdutils.c) new library routines to get a group/passwd struct by name or GID/UID (by Christian Goeschel Ndjomouo) + - fix bad indentation in meson.build (by Christian Goeschel Ndjomouo) + - add FSCONFIG_CMD_CREATE_EXCL (by Karel Zak) + +libblkid: + - fix integer overflows in HFS+ offset calculations (by Karel Zak) + - fix integer overflow in linux_raid checksum size (by Karel Zak) + - fix integer overflow in nvidia_raid size check (by Karel Zak) + - iso9660 validate root directory to reduce false positives (by Karel Zak) + - remove empty loop devices from cache when garbage collecting (by Christian Goeschel Ndjomouo) + - (btrfs) use BTRFS_NR_SB_LOG_ZONES and rep->zones (by Karel Zak) + - zfs fix unaligned memory access on SPARC (by Ameer Hamza) + - (bcachefs) fix LABEL_SUB probing (by Nikita Ofitserov) + - (bcachefs) add new bcachefs_sb_member fields (by Nikita Ofitserov) + - (bcachefs) add members_v2 parsing support (by Nikita Ofitserov) + - Keep NTFS name unmodified and mount driver independent (by Karel Zak) + - fix const qualifier warning in blkid_parse_tag_string (by Karel Zak) + - use snprintf() instead of sprintf() (by Karel Zak) + - Fix probe_ioctl_tp assigning BLKGETDISKSEQ as physical sector size (by Sam Fink) + - (ext) reduce false positive (by 胡玮文) + - improve UUID_SUB= description (by Karel Zak) + - Add scoutfs filesystem. (by Auke Kok) + - Fix crash while parsing config with libeconf (by Stanislav Brabec) + - befs fix underflow (by Milan Broz) + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + - ddf_read validate header checksum (by Thomas Weißschuh) + - ddf_raid drop little-endian handling (by Thomas Weißschuh) + - ddf_raid respect constness of buffer (by Thomas Weißschuh) + +libblkid/libmount: + - ntfs return filesystem type 'ntfs3' (by Johannes Schneider) + +libblkid/src/topology/dm: + - fix fscanf return value check to match expected number of parsed items (by Mingjie Shen) + +lib/canonicalize: + - use ul_ prefix (by Karel Zak) + - introduce generic drop-permission caller (by Karel Zak) + - refactor canonicalize_path() (by Karel Zak) + - rename to ul_absolute_path() (by Karel Zak) + +libc/crc32: + - make fill value of excluded area configurable (by Thomas Weißschuh) + +lib/color-names: + - fix stupid bugs (by Karel Zak) + - Fix color name canonicalization (by Karel Zak) + +lib/colors: + - call gettext() only when the argument of --color is invalid (by Benno Schulenberg) + +libcommon: + - added lib "configs" for parsing configuration files in the correct order (by Stefan Schubert) + +lib/config: + - fix file counter (by Karel Zak) + - Make /run path configurable (by Karel Zak) + +lib/configs: + - simplify merge error checking (by Karel Zak) + - eliminate counter variable (by Karel Zak) + - add head parameter to configs_refer_filename() (by Karel Zak) + - simplify variable names (by Karel Zak) + - merge new_list_entry() and configs_add_filename() (by Karel Zak) + - refactor directory list merging (by Karel Zak) + - simplify suffix verification (by Karel Zak) + - introduce config_mk_path() helper (by Karel Zak) + - add test program for ul_configs_file_list() (by Karel Zak) + - initialize FD to -1 (by Karel Zak) + - improve readability (by Karel Zak) + +lib/env, ...: + - use getauxval(AT_SECURE) for SUID check (by Max Kellermann) + +libfdisk: + - remove duplicate code (by Karel Zak) + - (dos) fix logical partition start (by Martin Jungblut Schreiner) + - modernize ZFS GPT type description (by Martin Minkus) + - (dos) fix off-by-one in maximum last sector calculation (by Karel Zak) + - use snprintf() instead of sprintf() (by Karel Zak) + - improve collision reporting (by Karel Zak) + - (script) improve separator usage in named-fields dump (by Karel Zak) + - (script) fix device name separator parsing (by Karel Zak) + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + +lib/fileeq: + - Handle large files on 32 bit correctly (by Tobias Stoeckmann) + - Prevent OOB with short read files (by Tobias Stoeckmann) + - Extend debug message (by Tobias Stoeckmann) + - Fix formatters (by Tobias Stoeckmann) + - Fix typos (by Tobias Stoeckmann) + +lib/fileutils: + - add is_dotdir_dirent() (by Karel Zak) + +liblastlog2: + - refactor conditional assignments for better readability (by Karel Zak) + - fix operator precedence in conditional assignments (by Karel Zak) + - markup fixes for man pages (by Mario Blättermann) + - (test) fix memory leak in failed test [coverity scan] (by Karel Zak) + +lib/loopdev: + - avoid null pointer dereferences [coverity] (by Karel Zak) + - introduce loopcxt_get_device_nr() helper (by Karel Zak) + - open loop control device read-only if possible (by Thomas Weißschuh) + - clarify comment about device and backing file modes (by Thomas Weißschuh) + - remove loopcxt_set_fd() (by Thomas Weißschuh) + +lib, lscpu: + - fix const qualifier discarded warnings in bsearch (by Karel Zak) + +lib/mbsalign: + - use snprintf() instead of sprintf() (by Karel Zak) + +libmount: + - move fstype_to_mounttype() to include/ (by Karel Zak) + - add option to override fs-type with mount-type (by Karel Zak) + - read from udev, add --disable-libmount-udev-support (by Karel Zak) + - enhance readability of read_from_blkid() (by Karel Zak) + - refactor mnt_cache_read_tags() (by Karel Zak) + - refactor mnt_get_fstype() (by Karel Zak) + - add pidfs magic number for fstype check (by Christian Goeschel Ndjomouo) + - fix const qualifier warning in mnt_parse_mountinfo_line (by Karel Zak) + - fix const qualifier warnings for C23 (by Karel Zak) + - don't report fsconfig errors with "nofail" (by Karel Zak) + - add MOVE_MOUNT_BENEATH support (by Karel Zak) + - ifdef for fanotify support on older systems (by Karel Zak) + - (monitor) add fanotify_next_fs() (by Karel Zak) + - (monitor) add basic fanotify support (by Karel Zak) + - (monitor) rename public API to "mountinfo" (by Karel Zak) + - (monitor) clean up mountinfo function names (by Karel Zak) + - add mnt_fs_is_{moved,attached,detached} functions (by Karel Zak) + - (monitor) cleanup userspace_add_watch() exiting (by Karel Zak) + - (monitor) check for utab delete (by Karel Zak) + - (monitor) optimize inotify utab watch (by Karel Zak) + - (monitor) cleanup op_process_event() return codes (by Karel Zak) + - (monitor) add next-fs API (by Karel Zak) + - (monitor) epoll_wait code consolidation (by Karel Zak) + - (monitor) require entry-specific functions (by Karel Zak) + - (monitor) clean up internal names (by Karel Zak) + - (monitor) support type-specific data (by Karel Zak) + - (monitor) support additional monitor identifiers (by Karel Zak) + - split monitor code to more files (by Karel Zak) + - Add support for FSCONFIG_CMD_CREATE_EXCL (by Karel Zak) + - don't update utab when moving /run (by Karel Zak) + - (verity) use messages API for important errors (by Karel Zak) + - (verity) use messages API for dlopen errors (by Karel Zak) + - (verity) fix compiler warning (by Karel Zak) + - (verity) fix deinitialization (by Karel Zak) + - add function to remove escaped chars (by Karel Zak) + - fix typo in comment (by Karel Zak) + - use and add has_listmount() (by Karel Zak) + - avoid calling memset() unnecessarily (by Karel Zak) + - clean up statmount syscall-related functions (by Karel Zak) + - (subdir) support detached open_tree() (>=6.15) (by Karel Zak) + - (subdir) restrict for real mounts only (by Karel Zak) + - (subdir) remove unused code (by Karel Zak) + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + - fix --no-canonicalize regression (by Karel Zak) + - remove possible leak in mnt_context_guess_srcpath_fstype() [coverity scan] (by Karel Zak) + - add support for STATMOUNT_SB_SOURCE (by Karel Zak) + +Libmount: + - Fix removal of "owner" option when executed as root (by Karel Zak) + +lib/netlink: + - set SOCK_CLOEXEC on netlink socket (by Karel Zak) + +lib/pager: + - Remove unused code (by Tobias Stoeckmann) + - Use async-signal safe signal handler (by Tobias Stoeckmann) + - Handle dup errors (by Tobias Stoeckmann) + - Gracefully handle SIGPIPE errors (by Tobias Stoeckmann) + - Drop pager_redirect (by Tobias Stoeckmann) + - Rename caught_signal to pager_caught_signal (by Karel Zak) + - Use original stderr in pager_close (by Tobias Stoeckmann) + - Use pager_open/close for pager_redirect (by Tobias Stoeckmann) + - Release resources on pager_open error (by Tobias Stoeckmann) + - Clear potential stdout/stderr errors (by Tobias Stoeckmann) + - Flush outputs in pager_close (by Tobias Stoeckmann) + - Improve signal handling in pager_close (by Tobias Stoeckmann) + - Call _exit in signal handler, not raise (by Tobias Stoeckmann) + - Do not resolve directories with PATH (by Tobias Stoeckmann) + - Set SIGCHLD to default handling (by Tobias Stoeckmann) + - Fix typos (by Tobias Stoeckmann) + - Simplify wait_for_pager (by Tobias Stoeckmann) + - Merge wait_or_whine into wait_for_pager (by Tobias Stoeckmann) + - The variable need_in is always 1 (by Tobias Stoeckmann) + - Remove struct field `no_stdin` (by Tobias Stoeckmann) + - Remove struct field preexec_cb (by Tobias Stoeckmann) + - Remove unused define (by Tobias Stoeckmann) + - Remove unused struct entry `err` (by Tobias Stoeckmann) + - Remove unused struct field "out" (by Tobias Stoeckmann) + +lib/path: + - add NULL checks for path in statx and access (by Karel Zak) + - Ensure consistent and robust path checks (by Karel Zak) + - add wrapers for statx(2) (by Masatake YAMATO) + - add __format__ attr to ul_path_v?statf() (by Masatake YAMATO) + - (cosmetic) delete the empty line at the EOF (by Masatake YAMATO) + - avoid double free() for cpusets (by Karel Zak) + +lib/procfs: + - remove duplicate statfs_magic.h include (by Karel Zak) + +lib/shells: + - fix indentation (by Karel Zak) + +libsmartcols: + - support JSON Lines format output (by WanBingjiang) + - avoid cumulative width reduction during printing (by Alessandro Ratti) + - small uri and annotation cleanup (by Karel Zak) + - new scols_column_{refer,get}_annotation routines (by Christian Goeschel Ndjomouo) + - add function to set/get header colors (by Karel Zak) + - report cells data size on debug (by Karel Zak) + - add scols_filter_has_holder() (by Karel Zak) + +lib/strutils: + - add helper function for --annotation option (by Christian Goeschel Ndjomouo) + - add ul_optstr_get_value() (by Karel Zak) + - add ul_ prefix to strrep() and strrem() functions (by Karel Zak) + - add ul_ prefix to split() function (by Karel Zak) + - add ul_ prefix to strappend() functions (by Karel Zak) + - add ul_ prefix to strconcat() functions (by Karel Zak) + - add ul_ prefix to startswith() and endswith() (by Karel Zak) + - call gettext() only when argument of --hyperlink is invalid (by Benno Schulenberg) + +lib/strv: + - use ul_ prefix for strv functions (by Karel Zak) + +libuuid: + - reset initial cont-clock time on service start (by Michael Trapp) + - fix timestamp overflow for pre-1970 dates (by Kiran Rangoon) + - refactor gregorian_to_unix to populate timeval directly (by Kiran Rangoon) + - simplify gregorian-to-unix offset calculation (by Kiran Rangoon) + - fix uuid_time on macOS without attribute((alias)) (by Eugene Gershnik) + +logger: + - ignore libsystemd-dependent long opt in CI CHECK (by Christian Goeschel Ndjomouo) + - fix const qualifier warnings for C23 (by Karel Zak) + - fix buffer overflow when read stdin (by Karel Zak) + - fix incorrect warning message when both --file and a message are specified (by Alexander Kappner) + - drop pointless bitfields (by Karel Zak) + - (man) improve --prio-prefix and --stderr description (by Karel Zak) + +login: + - improve comments for signal handling in fork_session() (by Karel Zak) + - Fix signal race in child handling (by Tobias Stoeckmann) + - use original FQDN for PAM_RHOST (by Karel Zak) + - only print regular files for motd (by Tobias Stoeckmann) + - remove signal handler before cleanup (by Tobias Stoeckmann) + - Add UID to usage message (by Tobias Stoeckmann) + - duplicate --shell argument to avoid nulling through explicit_bzero() (by Christian Goeschel Ndjomouo) + - document -s and --shell on the man page (by Christian Goeschel Ndjomouo) + - define shell to log in to with -s or --shell (by Christian Goeschel Ndjomouo) + - use new xgetuserpw() instead of xgetpwnam() (by Christian Goeschel Ndjomouo) + - add line break after timeout message (by Karel Zak) + - fix minor grammar mistake in the manpage (by cgoesche) + - (adoc) add a description about LOGIN_SHELL_FALLBACK (by WanBingjiang) + - using an avaiable shell while logging in. (by WanBingjiang) + - use logindefs_setenv_path() (by Karel Zak) + - protect COLORTERM and NO_COLOR env. variables (by Karel Zak) + +logindefs: + - Add function to set PATH (by Karel Zak) + +login-utils: + - Use _PATH macros (by Tobias Stoeckmann) + - Use /etc/passwd- as backup file (by Tobias Stoeckmann) + - add UIDs to manual pages (by Tobias Stoeckmann) + +login-utils/login: + - Sync usage with manual page (by Tobias Stoeckmann) + +login-utils, sys-utils: + - use _PATH_BSHELL consistently (by Alessandro Ratti) + +losetup: + - snip --verbose from bash-completion, and 'v' from options string (by Benno Schulenberg) + - (man) put the synopses in a better order, the name-giver first (by Benno Schulenberg) + - remove the --verbose flag, as it doesn't actually do anything (by Benno Schulenberg) + - sort 'O' correctly for the mutual-exclusive check to work (by Benno Schulenberg) + - improve command line option processing (by Karel Zak) + - improve --remove documentation (by Karel Zak) + - make --remove a long-only option with mutual exclusivity (by Karel Zak) + - add error feedback for --remove command (by Karel Zak) + - Add the --remove/-R parameter to remove loop devices (by wguanghao) + - rename function *_delete_* to *_detach_* (by wguanghao) + +losetup,lscpu: + - (man) add the missing -h/--help and -V/--version options (by Benno Schulenberg) + +lostup: + - report EACCES on loop-control (by Karel Zak) + +lsblk: + - improve error reporting for invalid device paths (by Sina Abroshan) + - use ul_startswith() (by codefiles) + - add support for LSBLK_COLUMNS environmental variable as an alternative to --output (by cgoesche) + - (typo) rename list_colunms() to list_columns() (by cgoesche) + - fix possible use-after-free (by Karel Zak) + - fix memory leak [coverity scan] (by Karel Zak) + - use md as fallback TYPE when md/level empty (by codefiles) + - use ID_PART_ENTRY_SCHEME as fallback for PTTYPE (by Karel Zak) + - (man) remove the incorrect spaces between the arguments of --ct (by Benno Schulenberg) + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + +lsclocks: + - fix inconsistency in usage message (by Christian Goeschel Ndjomouo) + - add missing --no-discover-rtc option info in usage message (by Christian Goeschel Ndjomouo) + - add support for LSCLOCKS_COLUMNS environmental variable (by Christian Goeschel Ndjomouo) + - stop using MAX_CLOCKS (by Thomas Weißschuh) + - use MAX_CLOCKS, improve indention (by Karel Zak) + - add auxiliary clocks (by Thomas Weißschuh) + - (man) remove stray backslash, and correct short form of --time (by Benno Schulenberg) + - (man) list supported clock types (by Thomas Weißschuh) + +lscpu: + - Implement options for dumping ARM implementer/model name tables (by Martin Storsjö) + - remove duplicate ARM names, clean up names (by Karel Zak) + - add --annotate info to man page (by Christian Goeschel Ndjomouo) + - add column header annotations for -C and -e (by Christian Goeschel Ndjomouo) + - Add a few missing Arm CPU identifiers (by Jonathan Thackray) + - New Arm C1 parts (by Jeremy Linton) + - Add NVIDIA Olympus arm64 core (by Matthew R. Ochs) + - (man) add description of the --list-columns option (by Christian Goeschel Ndjomouo) + - add MICROCODE output column (by Christian Goeschel Ndjomouo) + - (man) document the LSCPU_{CACHES_}COLUMNS environment variables (by Christian Goeschel Ndjomouo) + - add --list-columns option and declutter --help output (by Christian Goeschel Ndjomouo) + - add support for LSCPU_{CACHES_}COLUMNS environment variables (by Christian Goeschel Ndjomouo) + - add 'microcode' information to the CPU summary (by cgoesche) + - use maximum CPU speed from DMI, avoid duplicate version string (by Karel Zak) + - Fix loongarch op-mode output with recent kernel (by Xi Ruoyao) + - fix possible buffer overflow in cpuinfo parser (by Karel Zak) + - (man) don't refer to a missing section, and improve some wordings (by Benno Schulenberg) + - RISC-V Print ISA information in summary (by Sunil V L) + - New Arm part numbers (by Jeremy Linton) + +lsfd: + - fill SOCK.NETNS column for tuntap (by Masatake YAMATO) + - load the information of the network namespace behind a tun device (by Masatake YAMATO) + - (refactor) call ioctl(TUNGETDEVNETNS) from target_fd related methods (by Masatake YAMATO) + - add stubs of target_fd related methods to cdev_class (by Masatake YAMATO) + - fill SOCK.NETNS even when sock_diag netlink can't report sockets (by Masatake YAMATO) + - add inspect_target_fd method to file_class (by Masatake YAMATO) + - (refactor) make call_with_foreign_fd reusable (by Masatake YAMATO) + - make pidfd for the target process available while collecting fds (by Masatake YAMATO) + - (comment) update the description of sock_xinfo::netns_inode (by Masatake YAMATO) + - (cosmetic) delete an empty line (by Masatake YAMATO) + - add new association "pidfs" (by Masatake YAMATO) + - (bugfix) do not reuse stat(2) buffer for files with identical names (by Masatake YAMATO) + - fix dependency on errnos.h (by Masatake YAMATO) + - make sure errors array is not empty [-Werror=type-limits] (by Karel Zak) + - (refactor) move the error object related code to a new file (by Masatake YAMATO) + - (refactor) remove redundant is_error member from struct file (by Masatake YAMATO) + - (refactor) add a helper function making error file objects (by Masatake YAMATO) + - remove __unused__ attr from parameters used actually (by Masatake YAMATO) + - (cosmetic) adjust white spaces in column definitions (by Masatake YAMATO) + - fill MNTID coulmn for exe, cwd, and rtd assocations (by Masatake YAMATO) + - fill MNTID coulmn for shm and mem assocations (by Masatake YAMATO) + - (refactor) add has_mnt_id helper macro (by Masatake YAMATO) + - fix memory leak related to stat_error_class (by Masatake YAMATO) + - fix const qualifier warning in strnrstr (by Karel Zak) + - fix const qualifier warning in new_counter_spec (by Karel Zak) + - add TUN.DEVNETNS column (by Masatake YAMATO) + - fix bsearch macro usage with glibc C23 (by Cristian Rodríguez) + - (doc) fix English in SOCK.NETNS description (by Masatake YAMATO) + - (cleanup) add missing "break" in a case statement (by Masatake YAMATO) + - (cleanup) return 0 instead of false (by Masatake YAMATO) + - (refactor) introduce tundata struct (by Masatake YAMATO) + - (bugfix) use PRIu32 for prining lport of netlink socket (by Masatake YAMATO) + - use snprintf() instead of sprintf() (by Karel Zak) + - refer to /proc/$pid/map_files if a mapped file is masked (by Masatake YAMATO) + - revise the code disabling hyperlinks (by Masatake YAMATO) + - decode protocol numbers of RAW and RAW6 sockets (by Masatake YAMATO) + - add PACKET.PROTOCOL.RAW, a new column (by Masatake YAMATO) + - improve grammar, and use angular brackets around placeholder word (by Benno Schulenberg) + - (bug fix) scan the protocol field of /proc/net/packet as a hex number (by Masatake YAMATO) + - fix the description for PACKET.PROTOCOL column (by Masatake YAMATO) + - (man) fix a typo (by Masatake YAMATO) + - add UNIX.IPEER column (by Masatake YAMATO) + - fill ENDPOINTS column for UNIX one-way sockets (by Masatake YAMATO) + - (refactor) add a helper function building ENDPOINTS strings for UNIX socket (by Masatake YAMATO) + - add a dummy entry for UNIX socket having no peer to the IPC table (by Masatake YAMATO) + - (man) fix a typo (by Masatake YAMATO) + - initialize struct stat [coverity scan] (by Karel Zak) + +lsfd/mkfds-foreign-sockets: + - skip when lacking sock_diag ability (by Chen Qi) + +lsfd,test_mkfds: + - make linux/vm_sockets_diag.h optional (by Masatake YAMATO) + +lsipc: + - use snprintf() instead of sprintf() (by Karel Zak) + - doesn't mount /dev/mqueue (by Prasanna Paithankar) + +lsirq: + - add support for reading data from given file (by Joe Jin) + +lslocks: + - (bugfix) don't set rawdata in COL_PID if rawdata is null (by Masatake YAMATO) + - special-case PID for filtering (skip −1) (by Masatake YAMATO) + - make SIZE filterable by normalizing to bytes (by Masatake YAMATO) + - implement Q, --filter option (by Masatake YAMATO) + - factor out code getting and setting the data from add_scols_line (by Masatake YAMATO) + - (refactor) move proc_locks to struct lslocks (by Masatake YAMATO) + - (refactor) move pid_locks in main to struct lslocks (by Masatake YAMATO) + - (refactor) move "tab" file static variable to struct lslocks (by Masatake YAMATO) + - (refactor) add struct lslocks representing the global context (by Masatake YAMATO) + - (refactor) use global bytes in get_json_type_for_column() (by Masatake YAMATO) + - (refactor) add a helper function refining value returned from get_lock (by Masatake YAMATO) + - (refactor) don't use redundant callback functions (by Masatake YAMATO) + - (refactor) specify list_head as type instead of abusing void* (by Masatake YAMATO) + - (refactor) use separate function to initialize libscols_table (by Masatake YAMATO) + - (refactor) remove an unused local variable (by Masatake YAMATO) + - (refactor) use narrow variable scoping for loop counters (by Masatake YAMATO) + - (comment) fix grammar (by Masatake YAMATO) + - (man) add LSLOCKS_COLUMNS description in new ENVIRONMENT section (by Christian Goeschel Ndjomouo) + - add support for LSLOCKS_COLUMNS environmental variable (by Christian Goeschel Ndjomouo) + +lslogins: + - (manpage) fix typo in option description (by Christian Goeschel Ndjomouo) + - ignore special long options in CI CHECK (by Christian Goeschel Ndjomouo) + - remove duplicate errno initialization (by Christian Goeschel Ndjomouo) + - fix incomplete option info in usage message (by Christian Goeschel Ndjomouo) + - (man) add --list-columns description (by Christian Goeschel Ndjomouo) + - add -H and --list-columns option; declutter --help output (by Christian Goeschel Ndjomouo) + - (man) add --json information (by Christian Goeschel Ndjomouo) + - add JSON output format mode (by Christian Goeschel Ndjomouo) + - fix typo (by Karel Zak) + - remove possible memory leaks [coverity scan] (by Karel Zak) + +lsmem: + - fix missing zone info when memory blocks start at an index other than 0 (by Christian Goeschel Ndjomouo) + - use xstrncpy() (by Karel Zak) + - add doc for dynamic (de)configuration and memmap-on-memory support (by Sumanth Korikkar) + - add support to display dynamic (de)configuration of memory (by Sumanth Korikkar) + - display global memmap on memory parameter (by Sumanth Korikkar) + - add support for LSMEM_COLUMNS environmental variable (by Christian Goeschel Ndjomouo) + - increase the available width for the summary text labels (by Benno Schulenberg) + +lsmem,chmem: + - add configure/deconfigure bash completion options (by Sumanth Korikkar) + +lsns: + - make the synopsis more coherent (by Christian Goeschel Ndjomouo) + - fix const qualifier warnings for C23 (by Karel Zak) + - don't abort if /proc/self/ns/user is absent; probe other ns entries (by Masatake YAMATO) + - fix --list-columns option (by Christian Goeschel Ndjomouo) + - enhance compilation without USE_NS_GET_API (by Karel Zak) + - fix undefined reference to add_namespace_for_nsfd #3483 (by Thomas Devoogdt) + - make "-Q NETNSID ..." work even if NETNSID column is not enabled (by Masatake YAMATO) + - show NETNSID for namespaces with no process running (by Masatake YAMATO) + - (refactor) generalize the code for collecting netnsid information (by Masatake YAMATO) + +man: + - Fixed incorrect ipcrm options (by Prasanna Paithankar) + - Replace RETURN VALUE with EXIT STATUS in section 1 (by Jesse Rosenstock) + +man-common: + - rename annotation.adoc to annotate.adoc (by Christian Goeschel Ndjomouo) + +man pages: + - consolidate libsmartcols environment variables (by Karel Zak) + +meson: + - fix non threaded toolchains (by Rosen Penev) + - cleanup tests to use libcommon.la (by Karel Zak) + - use curses dep for ncurses (by Rosen Penev) + - fix a bug in posixipc_libs configuration (by Martin Valgur) + - use .to_string() in configuration data check (by Thomas Weißschuh) + - add feature for translated documentation (by Thomas Weißschuh) + - remove tinfo dependency from 'more' (by Thomas Weißschuh) + - fix manadocs for libsmartcols and libblkid (by Karel Zak) + - fix po-man installation (by Karel Zak) + - bring hexdump in line with others (by Christian Hesse) + +misc: + - never include wchar.h (by Karel Zak) + +misc-utils/lastlog2: + - Add option -a for listing active users only (by WanBingjiang) + +mkfs.bfs: + - fix memory leaks and weak code (by Karel Zak) + +mkfs.cramfs: + - avoid uninitialized value [coverity scan] (by Karel Zak) + - (man) mark arguments of -N and -l in bold, not italics (by Benno Schulenberg) + - vertically align the option descriptions of the usage text (by Benno Schulenberg) + - reduce the synopsis to the standard, succinct form (by Benno Schulenberg) + +more: + - Use ul_strtou16() in a robust way (by Karel Zak) + - temporarily ignore stdin when waiting for stderr (by Karel Zak) + - Add MORE_SHELL_LINES environmental variable (by cgoesche) + - fix broken ':!command' command key (by cgoesche) + - fix implicit previous shell_line execution #3508 (by cgoesche) + - Add MORESECURE and PAGERSECURE environment variables #3503 (by Christian Goeschel Ndjomouo) + - improve help readability (by Karel Zak) + - fix repeat command (by Karel Zak) + - remove a duplicate call of setlocale() (by Benno Schulenberg) + +mount: + - (manpage) fix minor grammar mistakes (by Christian Goeschel Ndjomouo) + - (man) add link to mount.ceph(8) (by Karel Zak) + - (man) add hint for session= on iso9660 (by Karel Zak) + - document --ro option on the man page (by Christian Goeschel Ndjomouo) + - add missing --ro option info in usage message (by Christian Goeschel Ndjomouo) + - add note about systemd and --all historical context (by Karel Zak) + - improve --all documentation regarding swap areas (by Karel Zak) + - add --beneath support (by Karel Zak) + - (bash-completion) add --exclusive (by Karel Zak) + - add --exclusive command line option (by Karel Zak) + - check for stdout for fstab reload hint (by Karel Zak) + - (man) add missing word (by Jakub Wilk) + - (man) shorten an overlong line, and improve some markup (by Benno Schulenberg) + - (man) fix some indentation issues, and improve a few wordings (by Benno Schulenberg) + - (man) add info about info messages (by Karel Zak) + +mountpoint: + - use single libmount cache for all path resolutions (by Karel Zak) + - add --show option to print mountpoint path (by Karel Zak) + - use statmount() syscall on modern kernels (by Karel Zak) + +namei: + - ignore SELinux-specific long option in CI CHECK (by Christian Goeschel Ndjomouo) + - fix const qualifier warning in readlink_to_namei (by Karel Zak) + - reestablish --nosymlinks option's functionality (by Christian Goeschel Ndjomouo) + +namespace.h: + - fix compilation on Linux < 4.10 (by Thomas Devoogdt) + +netaddrq: + - Fix crash if there are no IP addresses (by Stanislav Brabec) + +netlink process_addr(): + - Ignore UL_NL_SOFT_ERROR (by Stanislav Brabec) + +newgrp: + - provide --command info in output message (by Christian Goeschel Ndjomouo) + +nologin: + - ignore well-known shell command-line options in CI CHECK (by Christian Goeschel Ndjomouo) + +nsenter: + - use USE_NAMESPACE_ID_SUPPORT macro for nsid feature (by Karel Zak) + - fix minor issues with namespace ID support (by Karel Zak) + - Support specifying namespace by ID (by Xiao Liang) + - (manpage) fix minor grammar mistake (by Christian Goeschel Ndjomouo) + - support 'PID:inode' process address format (by Christian Goeschel Ndjomouo) + - ignore SELinux-specific long option in CI CHECK (by Christian Goeschel Ndjomouo) + - (man) improve descriptions for some options (by Martin Joerg) + +nsenter,unshare: + - (man) add the NS-related commands to SEE ALSO (by Masatake YAMATO) + +pager: + - remove stale pager_redirect() declaration (by Karel Zak) + +partx: + - fix const qualifier warning in get_max_partno (by Karel Zak) + - mark the --list option as deprecated (by Christian Goeschel Ndjomouo) + +pg: + - Fix compiler warning (by Tobias Stoeckmann) + +pidfd-utils: + - move USE_PIDFD_INO_SUPPORT after syscall fallbacks (by Karel Zak) + - define HAVE_PIDFD_* when syscall fallbacks are used (by Karel Zak) + +pipesz: + - use snprintf() instead of sprintf() (by Karel Zak) + - report default size in --help, instead of referring the user (by Benno Schulenberg) + - (man) improve the markup and some wordings (by Benno Schulenberg) + +po: + - merge changes (by Karel Zak) + - update LINGUAS list (by Karel Zak) + - add ar.po (from translationproject.org) (by Zayed Al-Saidi) + - update uk.po (from translationproject.org) (by Yuri Chornoivan) + - update sv.po (from translationproject.org) (by Daniel Nylander) + - update sr.po (from translationproject.org) (by Мирослав Николић) + - update ro.po (from translationproject.org) (by Remus-Gabriel Chelu) + - update pt.po (from translationproject.org) (by Pedro Albuquerque) + - update pl.po (from translationproject.org) (by Jakub Bogusz) + - update nl.po (from translationproject.org) (by Benno Schulenberg) + - update ko.po (from translationproject.org) (by Seong-ho Cho) + - update ja.po (from translationproject.org) (by YOSHIDA Hideki) + - update hr.po (from translationproject.org) (by Božidar Putanec) + - update fr.po (from translationproject.org) (by Frédéric Marchal) + - update es.po (from translationproject.org) (by Antonio Ceballos Roa) + - update de.po (from translationproject.org) (by Christian Kirbach) + - update cs.po (from translationproject.org) (by Petr Písař) + - update uk.po (from translationproject.org) (by Yuri Chornoivan) + - update sr.po (from translationproject.org) (by Мирослав Николић) + - update ro.po (from translationproject.org) (by Remus-Gabriel Chelu) + - update pt.po (from translationproject.org) (by Pedro Albuquerque) + - update pl.po (from translationproject.org) (by Jakub Bogusz) + - update nl.po (from translationproject.org) (by Benno Schulenberg) + - update ja.po (from translationproject.org) (by YOSHIDA Hideki) + - update hr.po (from translationproject.org) (by Božidar Putanec) + - update fr.po (from translationproject.org) (by Frédéric Marchal) + - update es.po (from translationproject.org) (by Antonio Ceballos Roa) + - update de.po (from translationproject.org) (by Mario Blättermann) + - update cs.po (from translationproject.org) (by Petr Písař) + - update uk.po (from translationproject.org) (by Yuri Chornoivan) + - update ro.po (from translationproject.org) (by Remus-Gabriel Chelu) + - update pl.po (from translationproject.org) (by Jakub Bogusz) + - update nl.po (from translationproject.org) (by Benno Schulenberg) + - update ko.po (from translationproject.org) (by Seong-ho Cho) + - update hr.po (from translationproject.org) (by Božidar Putanec) + - update fr.po (from translationproject.org) (by Frédéric Marchal) + - update es.po (from translationproject.org) (by Antonio Ceballos Roa) + - merge changes (by Karel Zak) + - update hr.po (from translationproject.org) (by Božidar Putanec) + - upadte LINGUAS file (by Karel Zak) + +po-man: + - merge changes (by Karel Zak) + - merge changes (by Karel Zak) + - add sv.po (from translationproject.org) (by Daniel Nylander) + - add ar.po (from translationproject.org) (by Zayed Al-Saidi) + - update uk.po (from translationproject.org) (by Yuri Chornoivan) + - update sr.po (from translationproject.org) (by Мирослав Николић) + - update ro.po (from translationproject.org) (by Remus-Gabriel Chelu) + - update pl.po (from translationproject.org) (by Michał Kułach) + - update es.po (from translationproject.org) (by Antonio Ceballos Roa) + - update de.po (from translationproject.org) (by Mario Blättermann) + - merge changes (by Karel Zak) + - update sr.po (from translationproject.org) (by Мирослав Николић) + - update de.po (from translationproject.org) (by Mario Blättermann) + - add hyperlink.adoc to po4a.cfg (by Karel Zak) + - merge changes (by Karel Zak) + - add pl.po (from translationproject.org) (by Michał Kułach) + - update uk.po (from translationproject.org) (by Yuri Chornoivan) + - update ro.po (from translationproject.org) (by Remus-Gabriel Chelu) + - update fr.po (from translationproject.org) (by Frédéric Marchal) + - fix typos in configuration (by Karel Zak) + +prlimit: + - raise a nicer error message when modifying NOFILE (by Karel Zak) + +procfs: + - use F_TYPE_EQUAL() macro for statfs.f_type comparison (by cgoesche) + - add a helper function to access /proc/$pid/personality (by Masatake YAMATO) + +pwdutils: + - fix grammar in comments (by Tobias Stoeckmann) + +readprofile: + - (manpage) add --no-auto option description (by Christian Goeschel Ndjomouo) + - fix memory leak related to boot_uname_r_str() in usage() (by Christian Goeschel Ndjomouo) + - (manpage) fix incorrect file name in --mapfile description (by Christian Goeschel Ndjomouo) + +rename: + - change "expression" to "substring" (by Haelwenn (lanodan) Monnier) + +renice: + - (man) reword several things, to be clearer, and improve some markup (by Benno Schulenberg) + - in usage text, condense the oververbose description of option -n (by Benno Schulenberg) + +rev: + - add --zero option to --help output (by Christian Goeschel Ndjomouo) + +rfkill: + - Output in JSON format if -J is provided. (by Xing Guo) + +rtcwake: + - (man) reduce an inflated table to sane proportions (by Benno Schulenberg) + +script: + - (man,usage) correct the markup of the synopsis (by Benno Schulenberg) + - support non-option argument as command (by WanBingjiang) + +scriptlive: + - (manpage) add --command option description (by Christian Goeschel Ndjomouo) + - improve some descriptions, markup, and grammar in the manpage (by Benno Schulenberg) + - reduce two usage synopses to one simple one (by Benno Schulenberg) + +scriptreplay: + - mark literal values in the man page in bold, not italic (by Benno Schulenberg) + - reduce two usage synopses to one, and drop the -t from it (by Benno Schulenberg) + - make Up/Down keys use a percentage instead of fixed amount (by Benno Schulenberg) + - indicate that is conditional on (by Benno Schulenberg) + +setarch: + - (man) correct the markup of the synopsis and of two options (by Benno Schulenberg) + - use strtopid_or_err() (by Karel Zak) + - add -p/--pid option showing the personality of specified process (by Masatake YAMATO) + +setpriv: + - use AppArmor LSM-specific proc interface (by Karel Zak) + - (man) Fix grammar (by Tobias Stoeckmann) + - (man) fix typo (by Jakub Wilk) + - (manpage) fix typo in option description (by Christian Goeschel Ndjomouo) + - fix usage message inconsistency (by Christian Goeschel Ndjomouo) + - improve landlock usage() output (by Karel Zak) + - Add support for LANDLOCK_ACCESS_FS_IOCTL_DEV (by Günther Noack) + - Improve getgroups() Portability (by Karel Zak) + - protect COLORTERM and NO_COLOR env. variables (by Karel Zak) + - follow /etc/login.defs for PATH (by Karel Zak) + +setpwnam: + - use getline instead of fgets (by Tobias Stoeckmann) + - only unlock when actually locked (by Tobias Stoeckmann) + - check if /etc/passwd was fully read (by Tobias Stoeckmann) + +sfdisk: + - (manpage) fix option description inconsistencies (by Christian Goeschel Ndjomouo) + - (man) do not use the common 'include' for --help and --version (by Benno Schulenberg) + - reject spurious arguments for --reorder/--backup-pt-sectors (by Thomas Weißschuh) + +sfdisk.8.adoc: + - Replace --help and --version with external entity (by Mario Blättermann) + +shells.c: + - call setusershell before getusershell (by WanBingjiang) + +strutils: + - move an error message to where it is used, and improve it (by Benno Schulenberg) + +strutils.c: + - ignore escape characters while parsing options. (by WanBingjiang) + +style: + - convert tabs to spaces in meson.build (by zhanghongyuan) + - adapt function definitions to kernel style (by Christian Goeschel Ndjomouo) + - fix coding style issues (by Christian Goeschel Ndjomouo) + +su: + - accept group name and GID in -g and -G options (by Christian Goeschel Ndjomouo) + - pass arguments after to shell (by cgoesche) + - use logindefs_setenv_path() (by Karel Zak) + - protect COLORTERM and NO_COLOR env. variables (by Karel Zak) + - (man) fix duplicate asterisk (by Gaël PORTAY) + +su-common: + - ignore runuser(1) specific long option in CI CHECK (by Christian Goeschel Ndjomouo) + +swapoff: + - check blkid_probe_lookup_value() return code [coverity scan] (by Karel Zak) + - add comments for do_swapoff (by zt20xx) + - clean up tag resolution (by Karel Zak) + +swapon: + - (man page) use "defaults" (plural) (by Chris Hofstaedtler) + - use ANNOTATE_OPTION as enum name for --annotate (by Christian Goeschel Ndjomouo) + - rename the new --annotation option to --annotate (by Benno Schulenberg) + - (usage) make the help text fit within 80 columns again (by Benno Schulenberg) + - document --annotation option on the man page (by Christian Goeschel Ndjomouo) + - control column header tooltips with --annotation (by Christian Goeschel Ndjomouo) + - annotate column header names with OSC8 hyperlinks (by Christian Goeschel Ndjomouo) + - (man page) add details about fstab configuration (by Karel Zak) + - improve a translator hint, and remove a pointless one (by Benno Schulenberg) + - remove unnecessary variable usage (by Karel Zak) + - make options --help and --version override --summary (by Benno Schulenberg) + +sys-utils/chmem: + - fix typo. (by WanBingjiang) + +sys-utils/lscpu: + - Change object type to SCOLS_JSON_STRING if data == "-" (by WanBingjiang) + +taskset: + - Accept 0 pid for current process (by Jesse Rosenstock) + +terminal-colors.d: + - (man) reduce two tables to succinct lists (by Benno Schulenberg) + - support NO_COLOR (by Karel Zak) + +test_mkfds: + - disable ppoll multiplexer if sigset_t is not defined (by Masatake YAMATO) + - remove local pidfd_open() fallback (by Karel Zak) + +tests: + - (lsfd::*) revise the way to use "$?" (by Masatake YAMATO) + - (lsns::*) revise the way to use "$?" (by Masatake YAMATO) + - add tests for column --table-header-as-columns (by Karel Zak) + - (test_mkfds:netns) conditionally report EPERM when ioctl(SIOCGSKNS) fails (by Masatake YAMATO) + - (test_mkfd::tcp-bare) new factory creating an unbound/unconnected TCP socket (by Masatake YAMATO) + - search for all executable scripts in test subdirs (by Christian Goeschel Ndjomouo) + - (waitpid) add tests for the pidfd inode format support (by Christian Goeschel Ndjomouo) + - (waitpid) move waitpid tests to a dedicated subdir (by Christian Goeschel Ndjomouo) + - (waitpid) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - use long options globally in test scripts (by Christian Goeschel Ndjomouo) + - (setarch) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (script) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (rev) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (rename) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (mount) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (more) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (lsns) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (lsmem) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (lscpu) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (lsclocks) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (losetup) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (logger) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (ipcs) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (ionice) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (hexdump) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (getopt) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (findmnt) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (fdisk) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (fallocate) use long options to improve test coverage report (by Christian Goeschel Ndjomouo) + - (enosys) use long options instead, to improve test coverage report (by Christian Goeschel Ndjomouo) + - (chfn) test all long options (by Christian Goeschel Ndjomouo) + - (cal) use more long options to improve test coverage accuracy (by Christian Goeschel Ndjomouo) + - (blkid) use more long options to improve test coverage accuracy (by Christian Goeschel Ndjomouo) + - (blkdiscard) use long options to improve test coverage accuracy (by Christian Goeschel Ndjomouo) + - (column) add more tests (by Christian Goeschel Ndjomouo) + - (chrt) fix various shellcheck warnings (by Christian Goeschel Ndjomouo) + - (flock) fix shellcheck warning (by Christian Goeschel Ndjomouo) + - (uuidd) fix various shellcheck warnings (by Christian Goeschel Ndjomouo) + - move schedutils tool test scripts to dedicated subdirs (by Christian Goeschel Ndjomouo) + - move uuid* tool test scripts to dedicated subdirectories (by Christian Goeschel Ndjomouo) + - move test scripts from tests/ts/misc to dedicated subdir (by Christian Goeschel Ndjomouo) + - (chfn) ensure that invalid input is detected correctly (by Christian Goeschel Ndjomouo) + - add a helper command, test_open_twice (by Masatake YAMATO) + - simplify TS_DESC in fdisk/mbr-logical-ebr-gap (by Karel Zak) + - (fdisk) make sure test_strerror avalable (by Karel Zak) + - add tests for unshare --forward-signals (by Kiran Rangoon) + - (lsfd::column-mntid) add a new case (by Masatake YAMATO) + - (test_mkfds::mmap) add "shared" paramter (by Masatake YAMATO) + - (refactor) add ts_skip_config, a new helper function (by Masatake YAMATO) + - (lsfd::mkfds-mmap-maksed-file) revise the description (by Masatake YAMATO) + - add getino tests (by Christian Goeschel Ndjomouo) + - add regression test for repeated termreduce printing (by Alessandro Ratti) + - add libsmartcols termreduce regression helper (by Alessandro Ratti) + - fdisk add regression test for missing EBR gap between logical partitions (by Martin Jungblut Schreiner) + - correct UUID timestamp test expectations (by Kiran Rangoon) + - (lslocks) test -Q,--filter option (by Masatake YAMATO) + - (test_mkfds::nop) new factory just printing pid (by Masatake YAMATO) + - convert fallocate to use subtests (by Karel Zak) + - (su) test GID argument in --group option (by Christian Goeschel Ndjomouo) + - (lsfd::mkfds-cdev-tun,refactor) make the case extensible (by Masatake YAMATO) + - (swaplabel) don't create test image with truncate(1) (by Thomas Weißschuh) + - update cal color outputs (by Karel Zak) + - update lsmem outputs (by Karel Zak) + - (su) add more options tests (by cgoesche) + - optstr test redundant commas (by Cole Robinson) + - (configs) add sorting and masking test (by Karel Zak) + - (configs) check for scandirat() (by Karel Zak) + - (configs) add file listings to expected output (by Karel Zak) + - add regression tests for ul_configs_file_list() (by Karel Zak) + - (libmount) improve explicit loop read-write mount check (by Christian Goeschel Ndjomouo) + - (lslogins) test --json output mode (by Christian Goeschel Ndjomouo) + - (lsfd/mkfds-unix-dgram) skip if the unix diag netlink interface is not available (by Masatake YAMATO) + - (lsfd-functions.sh) make lsfd_check_sockdiag usable in subtests (by Masatake YAMATO) + - (lsfd/mkfds-unix-stream-requiring-sockdiag) revise the test description (by Masatake YAMATO) + - (lsfd/column-source-btrfs) extract a minor number in a more reliable way (by Masatake YAMATO) + - (lsmem) update expected/lscpu/* with 'ZONES' column (by Christian Goeschel Ndjomouo) + - add canonicalize test (by Karel Zak) + - add color names test (by Karel Zak) + - update expected type to 'ntfs3' (by Johannes Schneider) + - add chrt SCHED_EXT test (by Shashank Balaji) + - update coresched tests (by Karel Zak) + - mark lsns/filer as TS_KNOWN_FAIL (by Karel Zak) + - (test_mkfds::mapped-packet-socket) add a new parameter, protocol (by Masatake YAMATO) + - (lscpu) update RISC-V tests to add ISA line (by Karel Zak) + - (lsfd::mkfds-unix-dgram, refactor) split the test into subtests (by Masatake YAMATO) + - add ts_is_in_docker as a helper function (by Masatake YAMATO) + - (lsns) verify NETNSID column for namespaces with no process running (by Masatake YAMATO) + - update lsmem outputs (by Karel Zak) + - (lsns/nsfs) consider the cases that lsns returns multiple paths (by Masatake YAMATO) + - (lsns/nsfs) check test_sysinfo helper (by Masatake YAMATO) + - improve test_sysinfo to check for NS_GET_NSTYPE usability (by Karel Zak) + - check for ns-get*-ok (by Karel Zak) + - (flock::range-lock) add a case testing --start/--length (by Masatake YAMATO) + +tests/helpers/test_sigstate.c: + - explicitly reset SIGINT to default action after trapping (by Hongxu Jia) + +tests/ts/kill/decode: + - avoid using shell built-in kill command (by Chen Qi) + +test_sysinfo: + - remove memory lea [coverity scan] (by Karel Zak) + +textual: + - rename list_colunms() to list_columns() and remove trailing whitespaces (by Christian Goeschel Ndjomouo) + - harmonize the messages for invalid count and timeout values (by Benno Schulenberg) + - harmonize the messages for an invalid size, length, and offset (by Benno Schulenberg) + - harmonize the wording of the error message for an invalid PID (by Benno Schulenberg) + - fix a mistruncated message, and fix a typo (by Benno Schulenberg) + +tools: + - git-version-bump, accept X.Y-devel version on master branch (by Karel Zak) + - (get-options.sh) refine regex for unsupported programs to avoid false positives (by Christian Goeschel Ndjomouo) + - expand relative paths provided by $top_srcdir for robustness (by Christian Goeschel Ndjomouo) + - helper script to generate a test coverage report (by Christian Goeschel Ndjomouo) + - (get-options.sh) ensure functionality for out-of-tree builds (by Christian Goeschel Ndjomouo) + - verify the consistency of manpages for all programs (by Christian Goeschel Ndjomouo) + - (get-options.sh) skip programs that do not use (by Christian Goeschel Ndjomouo) + - (get-options.sh) ignore long opt definitions marked with IGNORECHECK=yes (by Christian Goeschel Ndjomouo) + - (checkusage.sh) verify the completeness of listed long options (by Christian Goeschel Ndjomouo) + - (checkcompletion.sh) test the integrity of long options completion (by Christian Goeschel Ndjomouo) + - new helper for extraction of program long options from source files (by cgoesche) + - rewrite checkcompletion.sh to be source-based (by Karel Zak) + - improve git-version-bump with validation and help (by Karel Zak) + - improve git-version-next to always output version variables (by Karel Zak) + - add git-version-next script release versioning (by Karel Zak) + - add checktarball-meson.sh (by Karel Zak) + - add SPDX-License-Identifier (by Karel Zak) + - improve in-repo check (by Karel Zak) + +tools/checkconfig: + - strip C comments before macro extraction (by Karel Zak) + +tools/git-grouped-log: + - sort output (by Karel Zak) + - add script to generated git log (by Karel Zak) + +tools/git-tp-sync: + - fix po/ update (by Karel Zak) + - update also po-man (by Karel Zak) + - fix checkout -f use (by Karel Zak) + - require git (by Karel Zak) + - merge changes to PO files (by Karel Zak) + - support multiple directories (by Karel Zak) + - reuse git ls-files calls (by Karel Zak) + - add --dry-run and --help (by Karel Zak) + - Compare Revisions (by Karel Zak) + +tools/git-tp-sync-man: + - remove obsolete script (by Karel Zak) + +tools/git-version-bump: + - add script to update hardcoded versions (by Karel Zak) + +tools/git-version-gen: + - accept -start in version (as -rc) (by Karel Zak) + +tools/poman-translate: + - fix to work outside on source dir (by Karel Zak) + +treewide: + - consistently use tabs for indentation where it is the rule (by Benno Schulenberg) + - use is_dotdir_dirent() helper (by Karel Zak) + - consolidate --list-columns option in usage() to USAGE_LIST_COLUMNS_OPTION() (by Christian Goeschel Ndjomouo) + - replace postal address in license specifier with a terse URL (by Benno Schulenberg) + - improve getauxval(AT_SECURE) usage (by Karel Zak) + - add ul_ to parse_timestamp() function name (by Karel Zak) + - add ul_ to parse_switch() function name (by Karel Zak) + - add ul_ to parse_size() function name (by Karel Zak) + - add ul_ to parse_range() function name (by Karel Zak) + - fix optional arguments usage (by Karel Zak) + - use strtopid_or_err() (by Masatake YAMATO) + - avoid strcasecmp() for ASCII-only strings (by Karel Zak) + +ts/kill/decode: + - compare decoded output in an architecture-independent way (by Masatake YAMATO) + - check the availability of "sed" (by Masatake YAMATO) + - consider arch dependent signum/name association (by Masatake YAMATO) + - use RTMIN from 'kill -L' instead of hardcoding 34 (by Chen Qi) + +tunelp: + - remove extraneous -T option (by Christian Goeschel Ndjomouo) + +uclampset: + - simplify the synopsis in the --help usage text (by Benno Schulenberg) + +ul_nl_addr_dup(): + - Fix address comparison (by Stanislav Brabec) + +umount: + - consider helper return status for success message (by Christian Goeschel Ndjomouo) + +unshare: + - document --forward-signals in man page (by Kiran Rangoon) + - implement signal forwarding when --forward-signals is used (by Kiran Rangoon) + - add --forward-signals option to argument parser (by Kiran Rangoon) + - (man) fix grammar (by Tobias Stoeckmann) + - fix inconsistency in usage message (by Christian Goeschel Ndjomouo) + - fix user namespace bind mounts (by Chris Webb) + - remove get_mnt_ino() check in bind_ns_files_from_child() (by Chris Webb) + - add --owner to set user namespace owner uid and gid (by Chris Webb) + - use MAX_OF_UINT_TYPE instead of (type)-1 (by Christian Goeschel Ndjomouo) + - use the new ul_get{grp,userpw}_str() routines (by Christian Goeschel Ndjomouo) + - make the wording of a message identical to that of three others (by Benno Schulenberg) + - fix typo in --map-groups=subids map name [coverity scan] (by Karel Zak) + - make strings more robust (by Karel Zak) + +uuidd: + - use locked system user account if available (by Tobias Stoeckmann) + - put an option and its description in a single message (by Benno Schulenberg) + +uuidgen.1.adoc: + - remove superfluous 'plus' (by Daniel Lublin) + +various: + - (man) list --help and --version last among the options (by Benno Schulenberg) + +waitpid: + - (manpage) document the support for the "PID:inode" addressing format (by Christian Goeschel Ndjomouo) + - close fd after removal from epoll interest list (by Christian Goeschel Ndjomouo) + - support 'PID:inode' process addressing format (by Christian Goeschel Ndjomouo) + - refactor to improve maintainability (by Christian Goeschel Ndjomouo) + +wdctl: + - remove -d option leftover (by Munehisa Kamata) + +whereis: + - fix const qualifier warnings for C23 (by Karel Zak) + +Wipefs: + - improve --all descriptions for whole-disks (by Karel Zak) + +zramctl: + - (manpage) add --bytes option description (by Christian Goeschel Ndjomouo) + - Add note about column descriptions (by Karel Zak) + - ignore ENOENT when setting max_comp_streams (by Jiang XueQian) + - fix MEM-USED column description (by Jérôme Poulin) + - (man) mention the required arguments for -p and -r (by Benno Schulenberg) + - restore normal description indentations in the usage text (by Benno Schulenberg) + - wait for device being initialized and unlocked by udevd (by Yu Watanabe) + +Misc: + - Fix formatting in getino.1.adoc (by Mario Blättermann) + - avoid repetitive code (by Arvin Schnell) + - always use array with name in json output (by Arvin Schnell) + - updated test case (by Arvin Schnell) + - include device in json output and use json array when needed (by Arvin Schnell) + - Fix various typos and markup in man pages (by Mario Blättermann) + - Fix typo in flock.1.adoc (by Mario Blättermann) + - Fix typos (by Tobias Stoeckmann) + - runuser (by su: elaborate man page regarding TIOCSTI/TIOCLINUX ioctl command injection|finefoot) + - Add man page section to (sys)calls (by Dick Marinus) + - Fix typos in comments (by Tobias Stoeckmann) + - Fix gettext macro calls (by Tobias Stoeckmann) + - Add fuse.kio-fuse to list of pseudo file systems (by Oliver Schramm) + - Fix memory leak in setpwnam() (by yao zhang) + - Fix typos when "set up" is used as a verb (by Louis Sautier) + - Fix the issue of fd resource leakage (by Leefancy) + - Fix memory leak issue in read_Subid_range() (by fortunate-lee) + - update .gitignore (by Karel Zak) + - parsing /run/issue.d/* too (by Stefan Schubert) + - New netlink library (by Stanislav Brabec) + - Using fix issue dir path "/usr/lib" for agetty (by Stefan Schubert) + - Fix another issue in login.1.adoc (by Mario Blättermann) + - Fix markup in pam_lastlog2.8.adoc (by Mario Blättermann) + - Fix markup in column.1.adoc (by Mario Blättermann) + - Fix markup in mount.8.adoc (by Mario Blättermann) + - Fix typo and markup in getopt.1.adoc (by Mario Blättermann) + - Fix markup in lsfd.1.adoc (by Mario Blättermann) + - Fix markup, grammar and spelling in scols-filter.5.adoc (by Mario Blättermann) + - Fix login.1.adoc (by Mario Blättermann) + - Fix markup in pam_lastlog2.8.adoc (by Mario Blättermann) + - Fix markup in ll2_import_lastlog.3.adoc (by Mario Blättermann) + - Fix markup in more.1.adoc (by Mario Blättermann) + - Fix markup in column.1.adoc (by Mario Blättermann) + - Fix markup in mesg.1.adoc (by Mario Blättermann) + - Fix markup in unshare.1.adoc (by Mario Blättermann) + - Fix markup in swapon.8.adoc (by Mario Blättermann) + - Fix typos and markup in setpriv.1.adoc (by Mario Blättermann) + - Fix markup in lsirq.1.adoc (by Mario Blättermann) + - Fix markup in flock.1.adoc (by Mario Blättermann) + - Fix markup in chmem.8.adoc (by Mario Blättermann) + - Fix markup in lastlog2.8.adoc (by Mario Blättermann) + - Fix markup in findmnt.8.adoc (by Mario Blättermann) + - Fix markup in su.1.adoc (by Mario Blättermann) + - Fix markup in login.1.adoc (by Mario Blättermann) + - Fix markup in scols-filter.5.adoc (by Mario Blättermann) + - Add reflink support for ZFS. (by Chester Gregg) + - Add missing ;; to -m case (#1) (by Nate Drake) + - Make scols_column_set_data_func docs visible (by FeRD (Frank Dana)) + - correct the full name of the GPL in various files (by Benno Schulenberg) + - remove "Copyright (C) ...." notes from files that claim no copyright (by Benno Schulenberg) + - remove two leftover license lines from colors.{c,h} (by Benno Schulenberg) + - add option to force cachestat() usage (by Matteo Croce) + - Update bufflen (by Mohamed Maatallah) + - fix sectors typos (by formtapez) + - Update setpwnam.c (by Mohamed Maatallah) + - Do not call exit() on code ending in shared libraries (by Cristian Rodríguez) + - fix and add parse_switch() test (by Karel Zak) + - Do not use strerror on shared libraries (by Cristian Rodríguez) + - Use the 'fallthrough' attribute (by Matteo Croce) + - move XXH_FALLTHROUGH into a generic include file (by Matteo Croce) + - Fix XXH_HAS_C_ATTRIBUTE check (by easyaspi314 (Devin)) + - Fix typo in blkdiscard docs (by pls-no-hack) + - sys-utils/flock.c Fix a typo in flock.c (by Masanari Iida) + - lib/fileeq.c Fix a typo in message. (by Masanari Iida) + - Use ipc_stat::cgid for the column COL_CGID. (by Koutheir Attouchi) + - use ul_default_shell() for interactive shell spawning (by Alessandro Ratti) + From 3721d9dcd12e806474b5302a95879b9c775e8bd6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 26 Feb 2026 13:32:52 +0100 Subject: [PATCH 002/267] build-sys: update release dates Signed-off-by: Karel Zak --- NEWS | 2 +- configure.ac | 2 +- meson.build | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 908bb10c4a4..e2f7ee436bb 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -util-linux v2.41: Mar 18 2025 (the latest and greatest!) +util-linux 2.42-rc1: Feb 26 2026 (the latest and greatest!) The most recent version (on the first line) may be used as a fallback for the ./tools/git-version-gen script. diff --git a/configure.ac b/configure.ac index a0c8d075214..e3a620ccb20 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{ dnl libblkid version LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="18-Mar-2025" +LIBBLKID_DATE="26-Feb-2026" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 diff --git a/meson.build b/meson.build index 6ab1bd85ce4..e9267a35fd5 100644 --- a/meson.build +++ b/meson.build @@ -13,7 +13,7 @@ pkgconfig = import('pkgconfig') # soname versions; This never change because we use symbol versioning. There is also # API version (LIB*_VERSION macros) and it follow package version. libblkid_version = '1.1.0' -libblkid_date = '18-Mar-2025' +libblkid_date = '26-Feb-2026' libuuid_version = '1.3.0' liblastlog2_version = '2.0.0' libmount_version = '1.1.0' From 08a6f5e345561f971c5ba78cb8c0f5dd0b89d4f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 26 Feb 2026 17:52:44 +0100 Subject: [PATCH 003/267] meson: define _GNU_SOURCE when testing for 'struct statx' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit glibc (at least with 2.43) requires _GNU_SOURCE to be defined to expose 'struct statx' from 'sys/stat.h'. Define _GNU_SOURCE in the feature test, so 'struct statx' is correctly detected. The code is being build with _GNU_SOURCE anyways. With autotools this happens automatically. Reported-by: Christian Hesse Signed-off-by: Thomas Weißschuh (cherry picked from commit 1f3644e5f1b08ba5374f8f50210ba3363c45e166) --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index e9267a35fd5..ed6cfdc7f13 100644 --- a/meson.build +++ b/meson.build @@ -107,7 +107,7 @@ have_mountfd_api = cc.has_type('struct mount_attr', prefix : '#include ') +have_struct_statx = cc.has_type('struct statx', args : '-D_GNU_SOURCE', prefix : '#include ') conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false) have = cc.has_member('struct statx', 'stx_mnt_id', prefix : '#include ') From 22f0c430b2f2c62fb5c3a6522f563cadfb9bf7d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 26 Feb 2026 17:55:58 +0100 Subject: [PATCH 004/267] tests/lsfd: skip executable mode tests when not running as root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This test does not necessarily work without root. Reported-by: Christian Hesse Signed-off-by: Thomas Weißschuh (cherry picked from commit 97cc11b16027a0694fcf25ae46a3116a658bec0d) --- tests/ts/lsfd/column-xmode | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/ts/lsfd/column-xmode b/tests/ts/lsfd/column-xmode index 048be3b5db6..2a4ab0f16cb 100755 --- a/tests/ts/lsfd/column-xmode +++ b/tests/ts/lsfd/column-xmode @@ -87,6 +87,8 @@ EXPR='(ASSOC == "mem") and (INODE == '"$INO"') and (MODE != "r--") and (MODE != ts_init_subtest "MODE-x-bit" if [ "$QEMU_USER" == "1" ]; then ts_skip_subtest "running under qemu-user emulation" +elif [ "$UID" != "0" ]; then + ts_skip_subtest "no root permissions" else { coproc MKFDS { "$TS_HELPER_MKFDS" ro-regular-file $FD; } @@ -103,6 +105,8 @@ fi ts_init_subtest "XMODE-x-bit" if [ "$QEMU_USER" == "1" ]; then ts_skip_subtest "running under qemu-user emulation" +elif [ "$UID" != "0" ]; then + ts_skip_subtest "no root permissions" else { coproc MKFDS { "$TS_HELPER_MKFDS" ro-regular-file $FD; } From 39189ac3136056fd8535d0eed039612016febf6c Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Tue, 24 Feb 2026 21:43:16 +0100 Subject: [PATCH 005/267] lib/fileeq: Check arithmetic in ul_fileeq_set_size Make sure that arithmetics do not overflow data types. Such overflows could occur with large hardlink options or on 32 bit systems with large files (due to size_t usage). If possible, reduce sizes so operations can continue successfully. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 0e6b542b41e9681f70f7b90b2a96bce7beacd978) --- include/fileeq.h | 4 ++-- lib/fileeq.c | 32 +++++++++++++++++++++++--------- misc-utils/hardlink.c | 8 ++++++-- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/include/fileeq.h b/include/fileeq.h index df5e6d8222f..90b8d5118a0 100644 --- a/include/fileeq.h +++ b/include/fileeq.h @@ -53,8 +53,8 @@ extern void ul_fileeq_data_init(struct ul_fileeq_data *data); extern void ul_fileeq_data_deinit(struct ul_fileeq_data *data); extern void ul_fileeq_data_set_file(struct ul_fileeq_data *data, const char *name); -extern size_t ul_fileeq_set_size(struct ul_fileeq *eq, uint64_t filesiz, - size_t readsiz, size_t memsiz); +extern bool ul_fileeq_set_size(struct ul_fileeq *eq, int64_t st_size, + size_t readsiz, size_t memsiz); extern int ul_fileeq(struct ul_fileeq *eq, struct ul_fileeq_data *a, struct ul_fileeq_data *b); diff --git a/lib/fileeq.c b/lib/fileeq.c index d13fc40454a..5a56b4753de 100644 --- a/lib/fileeq.c +++ b/lib/fileeq.c @@ -250,16 +250,23 @@ void ul_fileeq_data_set_file(struct ul_fileeq_data *data, const char *name) data->name = name; } -size_t ul_fileeq_set_size(struct ul_fileeq *eq, uint64_t filesiz, - size_t readsiz, size_t memsiz) +bool ul_fileeq_set_size(struct ul_fileeq *eq, int64_t st_size, + size_t readsiz, size_t memsiz) { - uint64_t nreads, maxdigs; + uint64_t filesiz, nreads, maxdigs; size_t digsiz; assert(eq); + assert(st_size >= 0); + assert(readsiz); + + filesiz = (uint64_t) st_size; eq->filesiz = filesiz; + if (filesiz != 0 && readsiz > filesiz) + readsiz = filesiz; + switch (eq->method->id) { case UL_FILEEQ_MEMCMP: /* align file size */ @@ -275,22 +282,28 @@ size_t ul_fileeq_set_size(struct ul_fileeq *eq, uint64_t filesiz, maxdigs = memsiz / digsiz; if (maxdigs == 0) maxdigs = 1; + else if (maxdigs > filesiz) + maxdigs = filesiz; nreads = filesiz / readsiz; /* enlarge readsize for large files */ - if (nreads > maxdigs) - readsiz = (filesiz + maxdigs - 1) / maxdigs; + if (nreads > maxdigs) { + uint64_t ceiling = filesiz + maxdigs - 1; + if (ceiling / maxdigs > SIZE_MAX) + return false; + readsiz = ceiling / maxdigs; + } break; } eq->readsiz = readsiz; eq->blocksmax = (filesiz + readsiz - 1) / readsiz; - DBG(EQ, ul_debugobj(eq, "set sizes: filesiz=%" PRIu64 ", maxblocks=%" PRIu64 ", readsiz=%zu", + DBG(EQ, ul_debugobj(eq, "set sizes: filesiz=%" PRIu64 ", blocksmax=%" PRIu64 ", readsiz=%zu", eq->filesiz, eq->blocksmax, eq->readsiz)); reset_fileeq_bufs(eq); - return eq->blocksmax; + return true; } static unsigned char *get_buffer(struct ul_fileeq *eq) @@ -624,8 +637,9 @@ int main(int argc, char *argv[]) if (file_c) ul_fileeq_data_set_file(&c, file_c); - /* filesiz, readsiz, memsiz */ - ul_fileeq_set_size(&eq, st_a.st_size, 1024*1024, 4*1024); + /* st_size, readsiz, memsiz */ + if (!ul_fileeq_set_size(&eq, st_a.st_size, 1024*1024, 4*1024)) + err(EXIT_FAILURE, "failed to set sizes"); rc = ul_fileeq(&eq, &a, &b); diff --git a/misc-utils/hardlink.c b/misc-utils/hardlink.c index 114b5c4c940..2c02e25d4f9 100644 --- a/misc-utils/hardlink.c +++ b/misc-utils/hardlink.c @@ -1097,8 +1097,12 @@ static void visitor(const void *nodep, const VISIT which, const int depth) /* per-file cache size */ memsiz = opts.cache_size / nnodes; - /* filesiz, readsiz, memsiz */ - ul_fileeq_set_size(&fileeq, master->st.st_size, opts.io_size, memsiz); + /* st_size, readsiz, memsiz */ + if (!ul_fileeq_set_size(&fileeq, master->st.st_size, opts.io_size, memsiz)) { + jlog(VERBOSE2, + printf(_("Skipped (memory constraints) %s"), master->links->path)); + continue; + } #ifdef USE_REFLINK if (reflink_mode || reflinks_skip) { From 27c89afb54e435bfeb79d03eef9b461996046887 Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Thu, 26 Feb 2026 22:08:57 +0100 Subject: [PATCH 006/267] lib/pager: Do not overwrite LESS environment var If LESS is already set, do not overwrite it. Taken from https://github.com/git/git/commit/25fc1786ab147daa9ffa43ebcbaf5c1cc6e50d4f Signed-off-by: Tobias Stoeckmann (cherry picked from commit 45541fc392974f851c57c3a053b21e9788359552) --- lib/pager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pager.c b/lib/pager.c index 91c1db591a6..f8383ff52c5 100644 --- a/lib/pager.c +++ b/lib/pager.c @@ -67,7 +67,7 @@ static void pager_preexec(void) select(STDIN_FILENO + 1, &in, NULL, &ex, NULL); - if (setenv("LESS", "FRSX", 0) != 0) + if (getenv("LESS") == NULL && setenv("LESS", "FRSX", 0) != 0) warn(_("failed to set the %s environment variable"), "LESS"); } From 7bf62a1c0f30f2e215f523ddf7ad43e5bf6ac35f Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Thu, 26 Feb 2026 22:10:40 +0100 Subject: [PATCH 007/267] lib/pager: Add LV support Set LV environment variable to "-c" for lv support. Taken from https://github.com/git/git/commit/e54c1f2d2533c5406abeb8e3e0cf78c68ca9c21e Signed-off-by: Tobias Stoeckmann (cherry picked from commit ab613312dcb566a15b79c5accd74746c37f571ee) --- lib/pager.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pager.c b/lib/pager.c index f8383ff52c5..54fbb5bf949 100644 --- a/lib/pager.c +++ b/lib/pager.c @@ -69,6 +69,8 @@ static void pager_preexec(void) if (getenv("LESS") == NULL && setenv("LESS", "FRSX", 0) != 0) warn(_("failed to set the %s environment variable"), "LESS"); + if (getenv("LV") == NULL && setenv("LV", "-c", 0) != 0) + warn(_("failed to set the %s environment variable"), "LV"); } static int start_command(struct child_process *cmd) From 9e488a5c60cf6775770c23dd8a6116b6093ce4b9 Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Thu, 26 Feb 2026 22:11:28 +0100 Subject: [PATCH 008/267] lib/pager: Drop less workaround This was fixed in less back in 2007. Let's follow git and drop the workaround. Taken from https://github.com/git/git/commit/e8320f350f523c3219ff8ec639663193941af57d Signed-off-by: Tobias Stoeckmann (cherry picked from commit 9edd83d120b82168442f1599f6917a04ed4dc1c0) --- lib/pager.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/pager.c b/lib/pager.c index 54fbb5bf949..eac0047b11d 100644 --- a/lib/pager.c +++ b/lib/pager.c @@ -55,18 +55,6 @@ static inline void close_pair(int fd[2]) static void pager_preexec(void) { - /* - * Work around bug in "less" by not starting it until we - * have real input - */ - fd_set in, ex; - - FD_ZERO(&in); - FD_SET(STDIN_FILENO, &in); - ex = in; - - select(STDIN_FILENO + 1, &in, NULL, &ex, NULL); - if (getenv("LESS") == NULL && setenv("LESS", "FRSX", 0) != 0) warn(_("failed to set the %s environment variable"), "LESS"); if (getenv("LV") == NULL && setenv("LV", "-c", 0) != 0) From 2ef8d6fa603dca393639d2310c5faeb9dc6cd53f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Sun, 1 Mar 2026 12:10:39 +0100 Subject: [PATCH 009/267] libblkid: (probe) Account for IO bias when retrieving buffer from parent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'off' variable gets aligned to 'pr->io_size'. However when delegating to the parent prober, the value for 'off' from the original function parameter needs to be used. Undo the bias before calling into the parent prober. Fixes: 8a534253bc52 ("libblkid: (probe) read data in chunks") Closes: https://github.com/util-linux/util-linux/issues/4078 Signed-off-by: Thomas Weißschuh (cherry picked from commit dc47ed2f5f6a7736d7b5332d6fe7af6652cf0bd0) --- libblkid/src/probe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index a38f5990ebe..60af2915c0d 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -770,7 +770,7 @@ const unsigned char *blkid_probe_get_buffer(blkid_probe pr, uint64_t off, uint64 * begin of the device. */ return blkid_probe_get_buffer(pr->parent, - pr->off + off - pr->parent->off, len); + pr->off + off + bias - pr->parent->off, len); } /* try buffers we already have in memory or read from device */ From 74b136627748565ed0e444648a13752a0ad720b1 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 11:39:14 +0100 Subject: [PATCH 010/267] build-sys: move netlink sources from libcommon to agetty The netlink and netaddrq sources use Linux-specific headers (linux/netlink.h, linux/rtnetlink.h) and cannot be compiled on non-Linux systems like GNU/Hurd. Move them out of libcommon and link directly into agetty (the only user), following the same pattern as plymouth-ctrl.c. Also move the corresponding test programs to the Linux-only section. Co-authored-by: Samuel Thibault Signed-off-by: Karel Zak (cherry picked from commit f6e4d10ea627705c9c68c372d47b1cb68425cbe7) --- lib/Makemodule.am | 20 +++++++++----------- lib/meson.build | 4 ++-- term-utils/Makemodule.am | 3 +++ term-utils/meson.build | 3 +++ 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/Makemodule.am b/lib/Makemodule.am index 9464bd9d2ef..a8542af5b5b 100644 --- a/lib/Makemodule.am +++ b/lib/Makemodule.am @@ -31,8 +31,6 @@ libcommon_la_SOURCES = \ lib/mbsalign.c \ lib/mbsedit.c\ lib/md5.c \ - lib/netaddrq.c \ - lib/netlink.c \ lib/pidutils.c \ lib/pidfd-utils.c \ lib/pwdutils.c \ @@ -99,8 +97,6 @@ check_PROGRAMS += \ test_ismounted \ test_pwdutils \ test_mangle \ - test_netlink \ - test_netaddrq \ test_randutils \ test_remove_env \ test_strutils \ @@ -120,7 +116,9 @@ check_PROGRAMS += \ test_pager \ test_caputils \ test_loopdev \ - test_linux_version + test_linux_version \ + test_netlink \ + test_netaddrq endif if HAVE_OPENAT @@ -148,12 +146,6 @@ test_ismounted_LDADD = libcommon.la $(LDADD) test_mangle_SOURCES = lib/mangle.c test_mangle_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_MANGLE -test_netlink_SOURCES = lib/netlink.c -test_netlink_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_NETLINK - -test_netaddrq_SOURCES = lib/netaddrq.c lib/netlink.c -test_netaddrq_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_NETADDRQ - test_strutils_SOURCES = lib/strutils.c test_strutils_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_STRUTILS test_strutils_LDADD = $(LDADD) libcommon.la @@ -210,6 +202,12 @@ test_linux_version_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_LINUXVERSION test_loopdev_SOURCES = lib/loopdev.c test_loopdev_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_LOOPDEV test_loopdev_LDADD = $(LDADD) libcommon.la + +test_netlink_SOURCES = lib/netlink.c +test_netlink_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_NETLINK + +test_netaddrq_SOURCES = lib/netaddrq.c lib/netlink.c +test_netaddrq_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_NETADDRQ endif test_configs_SOURCES = lib/configs.c diff --git a/lib/meson.build b/lib/meson.build index db871913d29..1469fb14046 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -17,8 +17,6 @@ lib_common_sources = ''' mbsalign.c mbsedit.c md5.c - netaddrq.c - netlink.c pidutils.c pidfd-utils.c procfs.c @@ -51,6 +49,8 @@ lib_common_sources += [idcache_c, strutils_c, strv_c] +netlink_files_c = files('netlink.c', 'netaddrq.c') + monotonic_c = files('monotonic.c') timer_c = files('timer.c') swapprober_c = files('swapprober.c') diff --git a/term-utils/Makemodule.am b/term-utils/Makemodule.am index a0ebd077ef6..261325dbd92 100644 --- a/term-utils/Makemodule.am +++ b/term-utils/Makemodule.am @@ -51,6 +51,9 @@ agetty_SOURCES = term-utils/agetty.c \ if USE_PLYMOUTH_SUPPORT agetty_SOURCES += lib/plymouth-ctrl.c endif +if LINUX +agetty_SOURCES += lib/netlink.c lib/netaddrq.c +endif agetty_LDADD = $(LDADD) libcommon.la if BSD agetty_LDADD += -lutil diff --git a/term-utils/meson.build b/term-utils/meson.build index dca399016d7..c9e3739ee71 100644 --- a/term-utils/meson.build +++ b/term-utils/meson.build @@ -24,6 +24,9 @@ scriptreplay_manadocs = files('scriptreplay.1.adoc') agetty_sources = files( 'agetty.c', ) +if LINUX + agetty_sources += netlink_files_c +endif agetty_manadocs = files('agetty.8.adoc') setterm_sources = files( From 7cb8d2d8f722110ff06268413d978bbc72ca1681 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 11:41:50 +0100 Subject: [PATCH 011/267] build-sys: move shells.c to common (non-Linux) sources shells.c uses POSIX setusershell()/getusershell()/endusershell() which are available on non-Linux systems (e.g., GNU/Hurd). Move it from the Linux-only section to common libcommon sources. The meson build already had shells.c in common sources, so only the autotools build needed fixing. Co-authored-by: Samuel Thibault Signed-off-by: Karel Zak (cherry picked from commit 1a7e3e2bb3a3041d1a453ca1f52a47ec7baef104) --- lib/Makemodule.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Makemodule.am b/lib/Makemodule.am index a8542af5b5b..5a2e9a9074c 100644 --- a/lib/Makemodule.am +++ b/lib/Makemodule.am @@ -37,6 +37,7 @@ libcommon_la_SOURCES = \ lib/randutils.c \ lib/sha1.c \ lib/sha256.c \ + lib/shells.c \ lib/signames.c \ lib/strutils.c \ lib/strv.c \ @@ -48,7 +49,6 @@ libcommon_la_SOURCES = \ if LINUX libcommon_la_SOURCES += \ lib/linux_version.c \ - lib/shells.c \ lib/loopdev.c endif From 83ee5eeeee9e72ef8f1b347201dce75ed4acfd3d Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 11:42:55 +0100 Subject: [PATCH 012/267] libblkid: guard loop device code with __linux__ in cache The is_loopdev() and loopdev_has_backing_file() functions from loopdev.h are Linux-specific. Guard the loop device cache cleanup in blkid_gc_cache() with __linux__ to allow compilation on non-Linux systems like GNU/Hurd. Co-authored-by: Samuel Thibault Signed-off-by: Karel Zak (cherry picked from commit 427df295a1fe9d99514c5e197f3f3e0a78c56adb) --- libblkid/src/cache.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libblkid/src/cache.c b/libblkid/src/cache.c index 6a2cc342083..d2fa077d447 100644 --- a/libblkid/src/cache.c +++ b/libblkid/src/cache.c @@ -188,12 +188,15 @@ void blkid_gc_cache(blkid_cache cache) DBG(CACHE, ul_debugobj(cache, "freeing non-existing %s", dev->bid_name)); blkid_free_dev(dev); cache->bic_flags |= BLKID_BIC_FL_CHANGED; + +#ifdef __linux__ } else if (is_loopdev(dev->bid_name) && !loopdev_has_backing_file(dev->bid_name)) { /* remove empty loop device from cache */ DBG(CACHE, ul_debugobj(cache, "freeing empty loop device %s", dev->bid_name)); blkid_free_dev(dev); cache->bic_flags |= BLKID_BIC_FL_CHANGED; +#endif } else { DBG(CACHE, ul_debug("Device %s exists", dev->bid_name)); } From 7c9d1e426c28868398d1ae5275d18b121487dc29 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 12:00:43 +0100 Subject: [PATCH 013/267] agetty: guard netlink-related code with AGETTY_RELOAD The struct issue nl field and related helper functions use types and headers (netaddrq.h, linux/netlink.h) that are only available when AGETTY_RELOAD is defined. Guard the .nl.fd initializations in main() and show_issue(), and wrap the netlink helper functions (print_iface_best, print_addrq_bestofall, dump_iface_good, dump_iface_all) with #ifdef AGETTY_RELOAD. This fixes compilation on systems without inotify/netlink support (e.g., GNU/Hurd). Co-authored-by: Samuel Thibault Signed-off-by: Karel Zak (cherry picked from commit b82c580054712607a20285130cfbf9d249256e01) --- term-utils/agetty.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 02f86502ab8..ca404a10054 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -365,7 +365,9 @@ int main(int argc, char **argv) }; struct issue issue = { .mem = NULL, +#ifdef AGETTY_RELOAD .nl.fd = -1 +#endif }; char *login_argv[LOGIN_ARGV_MAX + 1]; int login_argc = 0; @@ -1976,7 +1978,12 @@ static void eval_issue_file(struct issue *ie, */ static void show_issue(struct options *op) { - struct issue ie = { .output = NULL, .nl.fd = -1 }; + struct issue ie = { + .output = NULL, +#ifdef AGETTY_RELOAD + .nl.fd = -1 +#endif + }; struct termios tp; memset(&tp, 0, sizeof(struct termios)); @@ -2589,6 +2596,7 @@ static void log_warn(const char *fmt, ...) va_end(ap); } +#ifdef AGETTY_RELOAD static void print_iface_best(struct issue *ie, const char *ifname, uint8_t ifa_family) @@ -2754,6 +2762,7 @@ static void dump_iface_all(struct issue *ie, if (!first) fputs("\n", ie->output); } +#endif /* AGETTY_RELOAD */ /* * parses \x{argument}, if not argument specified then returns NULL, the @fd From 4a3c91cfb191504abe31f34389da90f179bc40c6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 12:52:11 +0100 Subject: [PATCH 014/267] tools/git-grouped-log: add co-author support Parse Co-authored-by and Co-Author trailers from commit bodies and display co-author names alongside the primary author. Signed-off-by: Karel Zak (cherry picked from commit b1baf61cc032d72020cf03b930d350d9ee56cafd) --- tools/git-grouped-log | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/tools/git-grouped-log b/tools/git-grouped-log index 7308f92fe76..47f83dd6ba2 100755 --- a/tools/git-grouped-log +++ b/tools/git-grouped-log @@ -66,7 +66,28 @@ else range="$start_commit" fi -while IFS='|' read -r subj author; do +while IFS= read -r -d '' record; do + # Strip inter-entry newline separator added by git log format: + record="${record#$'\n'}" + [[ -z "$record" ]] && continue + + # First line contains "subject|author", rest is commit body + first_line="${record%%$'\n'*}" + subj="${first_line%%|*}" + author="${first_line#*|}" + + # Extract co-author names from commit body trailers + coauthors="" + while IFS= read -r name; do + [[ -n "$name" ]] && coauthors="${coauthors:+$coauthors, }$name" + done < <(echo "$record" | \ + grep -iE '^[[:space:]]*(Co-authored-by|Co-Author)[[:space:]]*:' | \ + sed -E 's/^[^:]+:[[:space:]]*//; s/[[:space:]]*<[^>]*>[[:space:]]*$//') + + if [[ -n "$coauthors" ]]; then + author="$author, $coauthors" + fi + # Handle "Revert" commits separately if [[ "$subj" =~ ^Revert\ \"([^:]+):.* ]]; then subsys="${BASH_REMATCH[1]}" @@ -76,19 +97,19 @@ while IFS='|' read -r subj author; do subsys=$(echo "$subj" | awk -F': ' '{print $1}') desc=$(echo "$subj" | awk -F': ' '{$1=""; sub(/^ /, ""); print}') fi - + # If no subsystem is detected, categorize under "Misc" if [[ -z "$desc" ]]; then subsys="Misc" desc="$subj" fi - + key=$(echo "$subsys" | sed 's|[^a-zA-Z0-9_]|_|g') - + subsystems["$key"]="$subsys" commits["$key"]+=" - $desc (by $author) " -done < <(git log --no-merges --pretty=format:'%s|%an' "$range" --) +done < <(git log --no-merges --pretty=format:'%s|%an%n%b%x00' "$range" --) misc="" for key in $(printf "%s\n" "${!commits[@]}" | sort); do From 2a574240362abcc4345ae0d0efff75e7c971df55 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 3 Mar 2026 10:56:38 +0100 Subject: [PATCH 015/267] lsmem: apply --sysroot prefix to all sysfs paths Tests fail on architectures where /sys/module/memory_hotplug/parameters/ memmap_on_memory does not exist (e.g., loong64), because lsmem reads from the real /sys instead of the --sysroot directory. - Route memmap_on_memory read through ul_path API with a local handler in print_summary(), so --sysroot prefix is respected. - Apply --sysroot prefix to sysmemconfig (/sys/firmware/memory) before the memory0 existence check. - Fix sysmemconfig memory leak (missing ul_unref_path). - Update expected test output (remove "Memmap on memory parameter" lines, not available in test dumps). Reported-by: Chris Hofstaedtler Signed-off-by: Karel Zak Tested-by: Sumanth Korikkar (cherry picked from commit e4e624530fd1b2939f0bee194f5e9e71c9da691b) --- sys-utils/lsmem.c | 49 ++++++++++++++++---------- tests/expected/lsmem/lsmem-s390-zvm-6g | 7 ---- tests/expected/lsmem/lsmem-x86_64-16g | 7 ---- 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/sys-utils/lsmem.c b/sys-utils/lsmem.c index c68f2317c4b..b74c95d437d 100644 --- a/sys-utils/lsmem.c +++ b/sys-utils/lsmem.c @@ -32,7 +32,7 @@ #include "optutils.h" #define _PATH_SYS_MEMORY "/sys/devices/system/memory" -#define _PATH_SYS_MEMMAP_PARM "/sys/module/memory_hotplug/parameters/memmap_on_memory" +#define _PATH_SYS_MEMPARAM "/sys/module/memory_hotplug/parameters" #define _PATH_SYS_MEMCONFIG "/sys/firmware/memory" #define MEMORY_STATE_ONLINE 0 @@ -361,7 +361,8 @@ static int get_memmap_mode(char *res, char *src, int len) static void print_summary(struct lsmem *lsmem) { char buf[8], res[8]; - FILE *memmap; + struct path_cxt *pc; + const char *prefix; if (lsmem->bytes) { printf("%-32s %15"PRId64"\n",_("Memory block size:"), lsmem->block_size); @@ -382,18 +383,23 @@ static void print_summary(struct lsmem *lsmem) printf("%-32s %5s\n",_("Total offline memory:"), p); free(p); } - memmap = fopen(_PATH_SYS_MEMMAP_PARM, "r"); - if (!memmap) + + pc = ul_new_path(_PATH_SYS_MEMPARAM); + if (!pc) return; - if (fgets(buf, sizeof(buf), memmap)) { - if (!get_memmap_mode(res, buf, sizeof(res))) { - if (lsmem->bytes) - printf("%-32s %15s\n", _("Memmap on memory parameter:"), _(res)); - else - printf("%-32s %5s\n", _("Memmap on memory parameter:"), _(res)); - } + prefix = ul_path_get_prefix(lsmem->sysmem); + if (prefix && ul_path_set_prefix(pc, prefix) != 0) + goto done; + if (ul_path_read_buffer(pc, buf, sizeof(buf), "memmap_on_memory") <= 0) + goto done; + if (!get_memmap_mode(res, buf, sizeof(res))) { + if (lsmem->bytes) + printf("%-32s %15s\n", _("Memmap on memory parameter:"), _(res)); + else + printf("%-32s %5s\n", _("Memmap on memory parameter:"), _(res)); } - fclose(memmap); +done: + ul_unref_path(pc); } static int memory_block_get_node(struct lsmem *lsmem, char *name) @@ -801,20 +807,26 @@ int main(int argc, char **argv) ul_path_init_debug(); + /* open /sys/devices/system/memory handler (required) */ lsmem->sysmem = ul_new_path(_PATH_SYS_MEMORY); if (!lsmem->sysmem) err(EXIT_FAILURE, _("failed to initialize %s handler"), _PATH_SYS_MEMORY); - lsmem->sysmemconfig = ul_new_path(_PATH_SYS_MEMCONFIG); - /* Always check for the existence of /sys/firmware/memory/memory0 first */ - if (ul_path_access(lsmem->sysmemconfig, F_OK, "memory0") == 0) - lsmem->have_memconfig = 1; - if (!lsmem->sysmemconfig) - err(EXIT_FAILURE, _("failed to initialized %s handler"), _PATH_SYS_MEMCONFIG); if (prefix && ul_path_set_prefix(lsmem->sysmem, prefix) != 0) err(EXIT_FAILURE, _("invalid argument to --sysroot")); if (!ul_path_is_accessible(lsmem->sysmem)) err(EXIT_FAILURE, _("cannot open %s"), _PATH_SYS_MEMORY); + /* open /sys/firmware/memory handler (optional) */ + lsmem->sysmemconfig = ul_new_path(_PATH_SYS_MEMCONFIG); + if (!lsmem->sysmemconfig) + err(EXIT_FAILURE, _("failed to initialized %s handler"), _PATH_SYS_MEMCONFIG); + if (prefix && ul_path_set_prefix(lsmem->sysmemconfig, prefix) != 0) + err(EXIT_FAILURE, _("invalid argument to --sysroot")); + + /* Always check for the existence of /sys/firmware/memory/memory0 first */ + if (ul_path_access(lsmem->sysmemconfig, F_OK, "memory0") == 0) + lsmem->have_memconfig = 1; + /* Shortcut to avoid scols machinery on --summary=only */ if (lsmem->want_table == 0 && lsmem->want_summary) { read_basic_info(lsmem); @@ -918,6 +930,7 @@ int main(int argc, char **argv) scols_unref_table(lsmem->table); ul_unref_path(lsmem->sysmem); + ul_unref_path(lsmem->sysmemconfig); free_info(lsmem); return 0; } diff --git a/tests/expected/lsmem/lsmem-s390-zvm-6g b/tests/expected/lsmem/lsmem-s390-zvm-6g index fe3892f6ec3..40dcfe982e9 100644 --- a/tests/expected/lsmem/lsmem-s390-zvm-6g +++ b/tests/expected/lsmem/lsmem-s390-zvm-6g @@ -17,7 +17,6 @@ RANGE SIZE STATE REMOVABLE BLOCK Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -28,7 +27,6 @@ RANGE SIZE Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -42,7 +40,6 @@ RANGE SIZE STATE Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -76,7 +73,6 @@ RANGE SIZE STATE REMOVABLE BLOCK NODE Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -220,7 +216,6 @@ RANGE SIZE STATE REMOVABLE BLOCK ZON Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -242,7 +237,6 @@ RANGE SIZE STATE REMOVABLE BLOCK NODE Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no --- @@ -262,4 +256,3 @@ RANGE SIZE STATE REMOVABLE BLOCK Memory block size: 256M Total online memory: 4.8G Total offline memory: 1.3G -Memmap on memory parameter: no diff --git a/tests/expected/lsmem/lsmem-x86_64-16g b/tests/expected/lsmem/lsmem-x86_64-16g index d3232470c6e..52975be9b85 100644 --- a/tests/expected/lsmem/lsmem-x86_64-16g +++ b/tests/expected/lsmem/lsmem-x86_64-16g @@ -37,7 +37,6 @@ RANGE SIZE STATE REMOVABLE BLOCK Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -49,7 +48,6 @@ RANGE SIZE Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -61,7 +59,6 @@ RANGE SIZE STATE Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -199,7 +196,6 @@ RANGE SIZE STATE REMOVABLE BLOCK NODE ZONES Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -523,7 +519,6 @@ RANGE SIZE STATE REMOVABLE BLOCK ZONES Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -563,7 +558,6 @@ RANGE SIZE STATE REMOVABLE BLOCK NODE ZONES Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no --- @@ -603,4 +597,3 @@ RANGE SIZE STATE REMOVABLE BLOCK Memory block size: 128M Total online memory: 16G Total offline memory: 0B -Memmap on memory parameter: no From e52eaa20ef5e32ff5085c0f71c1a22a27d09fe88 Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Tue, 3 Mar 2026 18:04:08 +0100 Subject: [PATCH 016/267] mkfs.minix: Simplify SIGALRM handler Calling printf is not signal safe and in general there are too many branches in alarm_intr for what it's used for. Check the signal flag outside of the handler and print messages when needed. Also, disable the alarm and reset the signal handling when it's not needed anymore. While at it, use correct formatter in printf. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 7e1a93e8f5e58d6adf7bf79024b617c944724fd8) --- disk-utils/mkfs.minix.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/disk-utils/mkfs.minix.c b/disk-utils/mkfs.minix.c index 43f464ccabb..60faa2f7e6f 100644 --- a/disk-utils/mkfs.minix.c +++ b/disk-utils/mkfs.minix.c @@ -610,31 +610,25 @@ static size_t do_check(const struct fs_control *ctl, char * buffer, int try, uns return got; } -static unsigned int currently_testing = 0; +static volatile sig_atomic_t print_status; static void alarm_intr(int alnum __attribute__ ((__unused__))) { - unsigned long zones = get_nzones(); - - if (currently_testing >= zones) - return; - signal(SIGALRM,alarm_intr); - alarm(5); - if (!currently_testing) - return; - printf("%d ...", currently_testing); - fflush(stdout); + print_status = 1; } static void check_blocks(struct fs_control *ctl) { + struct sigaction sa, old; size_t try, got; static char buffer[MINIX_BLOCK_SIZE * TEST_BUFFER_BLOCKS]; unsigned long zones = get_nzones(); unsigned long first_zone = get_first_zone(); + unsigned int currently_testing = 0; - currently_testing=0; - signal(SIGALRM,alarm_intr); + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = alarm_intr; + sigaction(SIGALRM, &sa, &old); alarm(5); while (currently_testing < zones) { if (lseek(ctl->device_fd, currently_testing * MINIX_BLOCK_SIZE,SEEK_SET) != @@ -646,6 +640,12 @@ static void check_blocks(struct fs_control *ctl) try = zones-currently_testing; got = do_check(ctl, buffer, try, currently_testing); currently_testing += got; + if (print_status) { + print_status = 0; + printf("%u ...", currently_testing); + fflush(stdout); + alarm(5); + } if (got == try) continue; if (currently_testing < first_zone) @@ -655,6 +655,8 @@ static void check_blocks(struct fs_control *ctl) ctl->fs_bad_blocks++; currently_testing++; } + alarm(0); + sigaction(SIGALRM, &old, NULL); if (ctl->fs_bad_blocks > 0) printf(P_("%d bad block\n", "%d bad blocks\n", ctl->fs_bad_blocks), ctl->fs_bad_blocks); } From 369b96ee61437f2bd58429250df0fd7f424b1079 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 9 Mar 2026 11:25:58 +0100 Subject: [PATCH 017/267] pam_lastlog2: add -lpam to Makemodule.am If we don't add this, we don't actually link with PAM; compare the before and after of pam_lastlog2.so -- without -lpam it does not list libpam.so.0 as a NEEDED dependency. Signed-off-by: Morgan Jones Signed-off-by: Karel Zak (cherry picked from commit 515b08cecc57019d96ee652c616fa821a857b236) --- pam_lastlog2/src/Makemodule.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pam_lastlog2/src/Makemodule.am b/pam_lastlog2/src/Makemodule.am index 40d597c5869..62993085389 100644 --- a/pam_lastlog2/src/Makemodule.am +++ b/pam_lastlog2/src/Makemodule.am @@ -13,7 +13,7 @@ pam_lastlog2_la_CFLAGS = \ pam_lastlog2_la_LIBADD = liblastlog2.la -pam_lastlog2_la_LDFLAGS = $(SOLIB_LDFLAGS) -module -avoid-version -shared +pam_lastlog2_la_LDFLAGS = $(SOLIB_LDFLAGS) -lpam -module -avoid-version -shared if HAVE_VSCRIPT pam_lastlog2_la_LDFLAGS += $(VSCRIPT_LDFLAGS),$(top_srcdir)/pam_lastlog2/src/pam_lastlog2.sym endif From e7f56f6c78543b1dc2c9f1e2745c13f785fa6f51 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 9 Mar 2026 12:04:44 +0100 Subject: [PATCH 018/267] lslogins: fix broken GROUP column output The condition on COL_GROUP incorrectly checked `!grp->gr_name` instead of `!user->group`. This caused the GROUP column to always be empty because when gr_name is non-NULL (normal case) the assignment was skipped, and when gr_name is NULL, xstrdup() would crash. Fixes: https://github.com/util-linux/util-linux/issues/4097 Fixes: 52a6e45bfe5ddee1fed20f2f4f7542cac6bf13c9 Signed-off-by: Karel Zak (cherry picked from commit a0ba7a713587fc3f6a3f8a59dd871a45e4225acd) --- login-utils/lslogins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c index 26c08783fc8..28dd7d79aed 100644 --- a/login-utils/lslogins.c +++ b/login-utils/lslogins.c @@ -853,7 +853,7 @@ static struct lslogins_user *get_user_info(struct lslogins_control *ctl, const c user->uid = pwd->pw_uid; break; case COL_GROUP: - if (!grp->gr_name) + if (!user->group) user->group = xstrdup(grp->gr_name); break; case COL_GID: From 8fde01b57aaca95b38abbe62d968dc5198c4f7cf Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 28 Feb 2026 12:52:45 +0100 Subject: [PATCH 019/267] findfs: (man) improve the markup, the layout, and the wording Mark NAME as a placeholder instead of a literal, and rename it to TAGNAME to make it clearer what "tag" in the description refers to. Indent the list of possible tags, to make it clearer where the description continues. Drop the angle brackets around placeholders -- those are used in --help output, but in man pages it is just italics. Also add a missing section header. Signed-off-by: Benno Schulenberg (cherry picked from commit b9461aa1cb1aae9d4ee3056fabefe269b6f94018) --- misc-utils/findfs.8.adoc | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/misc-utils/findfs.8.adoc b/misc-utils/findfs.8.adoc index 8783cdc2505..02d08f953ad 100644 --- a/misc-utils/findfs.8.adoc +++ b/misc-utils/findfs.8.adoc @@ -16,36 +16,44 @@ findfs - find a filesystem by label or UUID == SYNOPSIS -*findfs* *NAME*=_value_ +*findfs* _TAGNAME_**=**_value_ == DESCRIPTION -*findfs* will search the block devices in the system looking for a filesystem or partition with specified tag. The currently supported tags are: +*findfs* will search the block devices in the system for a filesystem or partition +with the specified tag. The currently supported tags are: -*LABEL*=_