Hi, * Chris Hofstaedtler <z...@debian.org> [250221 11:57]:
Do you have some estimates from last releases of util-linux how many changes go into a release after rc1? Do you expect a big diff between rc1 and the final release?
Attached are two filtered debdiffs. The first one is from rc1 to final - util-linux_2.41-1-from-rc1.debdiff.filtered.gz
The second one is from rc2 to final - util-linux_2.41-1-from-rc2.debdiff.filtered.
The filtered diffs were produced using the following command. Currently we do not use meson to build, and the translation and manpage updates are filtered out.
debdiff util-linux_2.41~rc2-1.dsc util-linux_2.41-1.dsc | filterdiff -x '*/po*/*.po' -x '*/po*/*.pot' -x '*/*.[1358]' -x '*.adoc' -x '*/meson.build'rc2 was in experimental since 2025-03-06. I've now uploaded the final release to experimental.
Chris
util-linux_2.41-1-from-rc1.debdiff.filtered.gz
Description: application/gunzip
diff -Nru util-linux-2.41~rc2/ChangeLog util-linux-2.41/ChangeLog --- util-linux-2.41~rc2/ChangeLog 2025-03-06 12:25:41.215978531 +0100 +++ util-linux-2.41/ChangeLog 2025-03-18 13:56:05.331195955 +0100 @@ -1,3 +1,3 @@ See version control history. -https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/log?h=v2.41-rc2 +https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/log?h=v2.41 diff -Nru util-linux-2.41~rc2/config.h.in util-linux-2.41/config.h.in --- util-linux-2.41~rc2/config.h.in 2025-03-06 12:20:59.472105026 +0100 +++ util-linux-2.41/config.h.in 2025-03-18 13:52:33.260910749 +0100 @@ -381,6 +381,9 @@ /* Define to 1 if you have the <linux/raw.h> header file. */ #undef HAVE_LINUX_RAW_H +/* Define to 1 if you have the <linux/seccomp.h> header file. */ +#undef HAVE_LINUX_SECCOMP_H + /* Define to 1 if you have the <linux/securebits.h> header file. */ #undef HAVE_LINUX_SECUREBITS_H diff -Nru util-linux-2.41~rc2/configure util-linux-2.41/configure --- util-linux-2.41~rc2/configure 2025-03-06 12:20:58.808107899 +0100 +++ util-linux-2.41/configure 2025-03-18 13:52:32.593913806 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for util-linux 2.41-rc2. +# Generated by GNU Autoconf 2.72 for util-linux 2.41. # # Report bugs to <k...@redhat.com>. # @@ -614,8 +614,8 @@ # Identity of this package. PACKAGE_NAME='util-linux' PACKAGE_TARNAME='util-linux' -PACKAGE_VERSION='2.41-rc2' -PACKAGE_STRING='util-linux 2.41-rc2' +PACKAGE_VERSION='2.41' +PACKAGE_STRING='util-linux 2.41' PACKAGE_BUGREPORT='k...@redhat.com' PACKAGE_URL='https://www.kernel.org/pub/linux/utils/util-linux/' @@ -2131,7 +2131,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures util-linux 2.41-rc2 to adapt to many kinds of systems. +'configure' configures util-linux 2.41 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2202,7 +2202,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of util-linux 2.41-rc2:";; + short | recursive ) echo "Configuration of util-linux 2.41:";; esac cat <<\_ACEOF @@ -2595,7 +2595,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -util-linux configure 2.41-rc2 +util-linux configure 2.41 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -3205,7 +3205,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by util-linux $as_me 2.41-rc2, which was +It was created by util-linux $as_me 2.41, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -6051,7 +6051,7 @@ # Define the identity of the package. PACKAGE='util-linux' - VERSION='2.41-rc2' + VERSION='2.41' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -6612,7 +6612,7 @@ sub("-.*","",$3); print $3 ~ /^[0-9]+$/ ? $3 : 0}') LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="06-Mar-2025" +LIBBLKID_DATE="18-Mar-2025" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -25934,6 +25934,12 @@ printf "%s\n" "#define HAVE_LINUX_RAW_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "linux/seccomp.h" "ac_cv_header_linux_seccomp_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_seccomp_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_SECCOMP_H 1" >>confdefs.h + +fi ac_fn_c_check_header_compile "$LINENO" "linux/securebits.h" "ac_cv_header_linux_securebits_h" "$ac_includes_default" if test "x$ac_cv_header_linux_securebits_h" = xyes then : @@ -26506,6 +26512,7 @@ have_linux_mount_h=$ac_cv_header_linux_mount_h have_linux_pr_h=$ac_cv_header_linux_pr_h have_linux_raw_h=$ac_cv_header_linux_raw_h +have_linux_seccomp_h=$ac_cv_header_linux_seccomp_h have_linux_securebits_h=$ac_cv_header_linux_securebits_h have_linux_version_h=$ac_cv_header_linux_version_h have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h @@ -35445,6 +35452,33 @@ ul_haveone_setpriv=no + if test "x$have_linux_seccomp_h" = xyes; then + ul_haveone_setpriv=yes + fi + + case $enable_setpriv:$ul_haveone_setpriv in #( + no:*) + build_setpriv=no ;; + yes:yes) + build_setpriv=yes ;; + yes:*) + as_fn_error $? "setpriv selected, but required linux/seccomp.h header file not available" "$LINENO" 5;; + check:yes) + build_setpriv=yes ;; + check:*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: linux/seccomp.h header file not found; not building setpriv" >&5 +printf "%s\n" "$as_me: WARNING: linux/seccomp.h header file not found; not building setpriv" >&2;} + build_setpriv=no ;; + esac + fi + + + + + if test "x$build_setpriv" != xno; then + + ul_haveone_setpriv=no + if test "x$have_linux_securebits_h" = xyes; then ul_haveone_setpriv=yes fi @@ -38120,6 +38154,33 @@ esac fi + + + + if test "x$build_enosys" != xno; then + + ul_haveone_enosys=no + + if test "x$have_linux_seccomp_h" = xyes; then + ul_haveone_enosys=yes + fi + + case $enable_enosys:$ul_haveone_enosys in #( + no:*) + build_enosys=no ;; + yes:yes) + build_enosys=yes ;; + yes:*) + as_fn_error $? "enosys selected, but required linux/seccomp.h header file not available" "$LINENO" 5;; + check:yes) + build_enosys=yes ;; + check:*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: linux/seccomp.h header file not found; not building enosys" >&5 +printf "%s\n" "$as_me: WARNING: linux/seccomp.h header file not found; not building enosys" >&2;} + build_enosys=no ;; + esac + fi + if test "x$build_enosys" = xyes then : @@ -47157,7 +47218,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by util-linux $as_me 2.41-rc2, which was +This file was extended by util-linux $as_me 2.41, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -47226,7 +47287,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -util-linux config.status 2.41-rc2 +util-linux config.status 2.41 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" diff -Nru util-linux-2.41~rc2/configure.ac util-linux-2.41/configure.ac --- util-linux-2.41~rc2/configure.ac 2025-03-06 12:14:41.865690098 +0100 +++ util-linux-2.41/configure.ac 2025-03-18 13:50:51.818370378 +0100 @@ -29,7 +29,7 @@ dnl libblkid version LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="06-Mar-2025" +LIBBLKID_DATE="18-Mar-2025" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -349,6 +349,7 @@ linux/nsfs.h \ linux/pr.h \ linux/raw.h \ + linux/seccomp.h \ linux/securebits.h \ linux/tiocl.h \ linux/version.h \ @@ -515,6 +516,7 @@ have_linux_mount_h=$ac_cv_header_linux_mount_h have_linux_pr_h=$ac_cv_header_linux_pr_h have_linux_raw_h=$ac_cv_header_linux_raw_h +have_linux_seccomp_h=$ac_cv_header_linux_seccomp_h have_linux_securebits_h=$ac_cv_header_linux_securebits_h have_linux_version_h=$ac_cv_header_linux_version_h have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h @@ -1704,6 +1706,7 @@ ) UL_BUILD_INIT([setpriv]) UL_REQUIRES_LINUX([setpriv]) +UL_REQUIRES_HAVE([setpriv], [linux_seccomp_h], [linux/seccomp.h header file]) UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file]) UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file]) UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library]) @@ -2021,6 +2024,7 @@ UL_BUILD_INIT([enosys]) UL_REQUIRES_LINUX([enosys]) UL_REQUIRES_HAVE([enosys], [linux_audit_h], [linux/audit.h header file]) +UL_REQUIRES_HAVE([enosys], [linux_seccomp_h], [linux/seccomp.h header file]) AS_IF([test "x$build_enosys" = xyes], [ AC_MSG_CHECKING([for valid audit arch]) AC_COMPILE_IFELSE( diff -Nru util-linux-2.41~rc2/debian/changelog util-linux-2.41/debian/changelog --- util-linux-2.41~rc2/debian/changelog 2025-03-06 13:30:32.000000000 +0100 +++ util-linux-2.41/debian/changelog 2025-03-18 17:26:32.000000000 +0100 @@ -1,3 +1,12 @@ +util-linux (2.41-1) experimental; urgency=medium + + * New upstream release. + * d/control: put myself directly into the Maintainer field + * Refresh patches + * Update list of installed localized manpages + + -- Chris Hofstaedtler <z...@debian.org> Tue, 18 Mar 2025 17:26:32 +0100 + util-linux (2.41~rc2-1) experimental; urgency=medium * New upstream release candidate. diff -Nru util-linux-2.41~rc2/debian/control util-linux-2.41/debian/control --- util-linux-2.41~rc2/debian/control 2025-03-06 13:30:32.000000000 +0100 +++ util-linux-2.41/debian/control 2025-03-18 17:26:32.000000000 +0100 @@ -34,9 +34,7 @@ libedit-dev, Section: utils Priority: required -Maintainer: util-linux packagers <util-li...@packages.debian.org> -Uploaders: - Chris Hofstaedtler <z...@debian.org>, +Maintainer: Chris Hofstaedtler <z...@debian.org> Standards-Version: 4.7.0 Rules-Requires-Root: no Vcs-Browser: https://salsa.debian.org/debian/util-linux diff -Nru util-linux-2.41~rc2/debian/patches/debian/man-getopt-examples.patch util-linux-2.41/debian/patches/debian/man-getopt-examples.patch --- util-linux-2.41~rc2/debian/patches/debian/man-getopt-examples.patch 2025-03-06 13:30:32.000000000 +0100 +++ util-linux-2.41/debian/patches/debian/man-getopt-examples.patch 2025-03-18 17:26:32.000000000 +0100 @@ -9,7 +9,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc-utils/getopt.1 b/misc-utils/getopt.1 -index a4a5f42..f9adf28 100644 +index 73a407b..0e2f9c4 100644 --- a/misc-utils/getopt.1 +++ b/misc-utils/getopt.1 @@ -155,7 +155,7 @@ In compatibility mode, leading \*(Aq\fB\-\fP\*(Aq and \*(Aq\fB+\fP\*(Aq characte diff -Nru util-linux-2.41~rc2/debian/util-linux-locales.install util-linux-2.41/debian/util-linux-locales.install --- util-linux-2.41~rc2/debian/util-linux-locales.install 2025-03-06 13:30:32.000000000 +0100 +++ util-linux-2.41/debian/util-linux-locales.install 2025-03-18 17:26:32.000000000 +0100 @@ -5,6 +5,7 @@ <!nodoc> debian/tmp/usr/share/man/*/man1/col.1 <!nodoc> debian/tmp/usr/share/man/*/man1/colcrt.1 <!nodoc> debian/tmp/usr/share/man/*/man1/colrm.1 +<!nodoc> debian/tmp/usr/share/man/*/man1/column.1 <!nodoc> debian/tmp/usr/share/man/*/man1/hexdump.1 <!nodoc> debian/tmp/usr/share/man/*/man1/look.1 <!nodoc> debian/tmp/usr/share/man/*/man1/ul.1 @@ -14,6 +15,7 @@ <!nodoc> debian/tmp/usr/share/man/*/man1/renice.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/script.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/scriptlive.1 +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/scriptreplay.1 <!nodoc> debian/tmp/usr/share/man/*/man1/wall.1 # eject @@ -24,9 +26,27 @@ <!nodoc> debian/tmp/usr/share/man/*/man8/fdisk.8 <!nodoc> debian/tmp/usr/share/man/*/man8/sfdisk.8 +# lastlog2 +<!nodoc> debian/tmp/usr/share/man/*/man8/lastlog2.8 + # libblkid-dev <!nodoc> debian/tmp/usr/share/man/*/man3/libblkid.3 +# liblastlog2-dev +<!nodoc> debian/tmp/usr/share/man/*/man3/lastlog2.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_import_lastlog.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_read_all.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_read_entry.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_remove_entry.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_update_login_time.3 +<!nodoc> debian/tmp/usr/share/man/*/man3/ll2_write_entry.3 + +# libpam-lastlog2 +<!nodoc> debian/tmp/usr/share/man/*/man8/pam_lastlog2.8 + +# login +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/newgrp.1 + # mount <!nodoc> debian/tmp/usr/share/man/*/man5/fstab.5 <!nodoc> debian/tmp/usr/share/man/*/man8/losetup.8 @@ -48,6 +68,8 @@ <!nodoc> debian/tmp/usr/share/man/*/man1/hardlink.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/ionice.1 <!nodoc> debian/tmp/usr/share/man/*/man1/ipcs.1 +<!nodoc> debian/tmp/usr/share/man/*/man1/ipcmk.1 +<!nodoc> debian/tmp/usr/share/man/*/man1/ipcrm.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/lscpu.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/lsipc.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/lslocks.1 @@ -58,8 +80,10 @@ <!nodoc> debian/tmp/usr/share/man/*/man1/mountpoint.1 <!nodoc> debian/tmp/usr/share/man/*/man1/namei.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/nsenter.1 +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/prlimit.1 <!nodoc> debian/tmp/usr/share/man/de/man1/rename.1 => /usr/share/man/de/man1/rename.ul.1 <!nodoc> debian/tmp/usr/share/man/fr/man1/rename.1 => /usr/share/man/fr/man1/rename.ul.1 +<!nodoc> debian/tmp/usr/share/man/pl/man1/rename.1 => /usr/share/man/pl/man1/rename.ul.1 <!nodoc> debian/tmp/usr/share/man/ro/man1/rename.1 => /usr/share/man/ro/man1/rename.ul.1 <!nodoc> debian/tmp/usr/share/man/sr/man1/rename.1 => /usr/share/man/sr/man1/rename.ul.1 <!nodoc> debian/tmp/usr/share/man/uk/man1/rename.1 => /usr/share/man/uk/man1/rename.ul.1 @@ -68,11 +92,14 @@ [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/pipesz.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/setpriv.1 <!nodoc> debian/tmp/usr/share/man/*/man1/setsid.1 +<!nodoc> debian/tmp/usr/share/man/*/man1/setterm.1 <!nodoc> debian/tmp/usr/share/man/*/man1/su.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/taskset.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/uclampset.1 +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/unshare.1 <!nodoc> debian/tmp/usr/share/man/*/man1/whereis.1 <!nodoc> debian/tmp/usr/share/man/*/man5/adjtime_config.5 +<!nodoc> debian/tmp/usr/share/man/*/man5/scols-filter.5 <!nodoc> debian/tmp/usr/share/man/*/man5/terminal-colors.d.5 <!nodoc> debian/tmp/usr/share/man/*/man8/agetty.8 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man8/blkdiscard.8 @@ -114,6 +141,9 @@ [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man8/zramctl.8 # util-linux-extra +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/bits.1 +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/coresched.1 +[linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/enosys.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/exch.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/fadvise.1 [linux-any] <!nodoc> debian/tmp/usr/share/man/*/man1/fincore.1 diff -Nru util-linux-2.41~rc2/disk-utils/raw.8.deps util-linux-2.41/disk-utils/raw.8.deps --- util-linux-2.41~rc2/disk-utils/raw.8.deps 2025-03-06 12:25:40.809980136 +0100 +++ util-linux-2.41/disk-utils/raw.8.deps 2025-03-18 13:56:04.909196953 +0100 @@ -1 +1 @@ -/home/proj-me/util-linux/util-linux/util-linux-2.41-rc2/disk-utils/raw.8: /home/proj-me/util-linux/util-linux/man-common/help-version.adoc /home/proj-me/util-linux/util-linux/man-common/bugreports.adoc /home/proj-me/util-linux/util-linux/man-common/footer.adoc \ No newline at end of file +/home/proj-me/util-linux/util-linux/util-linux-2.41/disk-utils/raw.8: /home/proj-me/util-linux/util-linux/man-common/help-version.adoc /home/proj-me/util-linux/util-linux/man-common/bugreports.adoc /home/proj-me/util-linux/util-linux/man-common/footer.adoc \ No newline at end of file diff -Nru util-linux-2.41~rc2/Documentation/releases/v2.41-ReleaseNotes util-linux-2.41/Documentation/releases/v2.41-ReleaseNotes --- util-linux-2.41~rc2/Documentation/releases/v2.41-ReleaseNotes 2025-03-06 12:13:49.190911078 +0100 +++ util-linux-2.41/Documentation/releases/v2.41-ReleaseNotes 2025-03-18 13:48:52.997908724 +0100 @@ -121,6 +121,7 @@ - add defines for m68k, sh (by Chris Hofstaedtler) autotools: + - 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) - fix po-man discheck (by Karel Zak) @@ -189,6 +190,7 @@ - bump actions/checkout from 1 to 4 (by dependabot[bot]) build-sys: + - update release dates (by Karel Zak) - keep the most recent version in NEWS (by Karel Zak) - update version dates (by Karel Zak) - build sample-mount-overwrite only on Linux (by Pino Toscano) @@ -257,6 +259,9 @@ column.1.adoc: - Fix spelling and improve option descriptions (by Nejc Bertoncelj) +{configure.ac,meson.build}: + - conditionally build {enosys,setpriv} if seccomp is present #3280 (by Thomas Devoogdt) + coresched: - add bash completions (by Thijs Raymakers) - Manage core scheduling cookies for tasks (by Thijs Raymakers) @@ -275,6 +280,7 @@ - fsck.8.adoc - fix email typo (by Geoffrey Casper) docs: + - update v2.41-rc2-ReleaseNotes (by Karel Zak) - fix typo in v2.41-ReleaseNotes (by Chris Hofstaedtler) - add v2.41-ReleaseNotes (by Karel Zak) - reduce and freeze NEWS file (by Karel Zak) @@ -307,6 +313,10 @@ - add "overwrite" argument to env_list_setenv() (by Karel Zak) - save parsed variables into ul_env_list (by Karel Zak) +exch: + - cosmetic code changes (by Karel Zak) + - fix compile error if renameat2 is not present (by Thomas Devoogdt) + fadvise: - fix a typo of an option name in the bash completion rule (by Masatake YAMATO) @@ -408,6 +418,7 @@ - check blocksize when display data (by Karel Zak) hwclock: + - avoid dereferencing a pointer [coverity scan] (by Karel Zak) - Support GNU Hurd (by Zhaoming Luo) - Remove ioperm declare as it causes nested extern declare warning (by Zhaoming Luo) - cleanup save_adjtime() (by Karel Zak) @@ -416,6 +427,7 @@ - initialize parser variables (by Karel Zak) include: + - use public domain for colors.{c,h} and xalloc.h (by Karel Zak) - add functions to implement --hyperlink (by Karel Zak) - Include <unistd.h> in pidfd-utils.h for syscall() (by Xi Ruoyao) - introduce seccomp.h (by Thomas Weißschuh) @@ -461,6 +473,9 @@ ipcrm: - simplify code (by Yang Kun) +irqtop,lsirq: + - set up locale path, so messages get actually translated (by Benno Schulenberg) + jsonwrt: - add ul_jsonwrt_flush (by Thomas Weißschuh) @@ -539,10 +554,12 @@ - introduce ul_jsonwrt_empty() (by Karel Zak) liblastlog2: + - (test) fix memory leak in failed test [coverity scan] (by Karel Zak) - tests provide fallback PATH_MAX definition (by Pino Toscano) - Improved sqlite3 error handling (by Stefan Schubert) libmount: + - remove possible leak in mnt_context_guess_srcpath_fstype() [coverity scan] (by Karel Zak) - add support for STATMOUNT_SB_SOURCE (by Karel Zak) - fix table_init_listmount() (by Karel Zak) - fix use-after free, etc. [coverity scan] (by Karel Zak) @@ -712,6 +729,7 @@ - fix FD leak (by Karel Zak) lscpu: + - New Arm part numbers (by Jeremy Linton) - skip frequencies of 0 MHz when getting minmhz (by Ricardo Neri) - make three column descriptions more grammatical (by Benno Schulenberg) - Add FUJITSU aarch64 MONAKA cpupart (by Emi, Kisanuki) @@ -729,6 +747,9 @@ - restructure op-mode printing (by Thomas Weißschuh) lsfd: + - (man) fix a typo (by Masatake YAMATO) + - initialize struct stat [coverity scan] (by Karel Zak) + - (man) fix a typo (by Masatake YAMATO) - remove C++ comment (by Karel Zak) - support AF_VSOCK sockets (by Masatake YAMATO) - don't enable hyperlinks for deleted files (by Masatake YAMATO) @@ -805,6 +826,8 @@ - fix buffer overflow (by Karel Zak) lslogins: + - fix typo (by Karel Zak) + - remove possible memory leaks [coverity scan] (by Karel Zak) - don't ignore stat error (by Thorsten Kukuk) lsmem: @@ -851,6 +874,7 @@ - remove ability to compile with fchmod(S_IWOTH) (by Karel Zak) meson: + - bring hexdump in line with others (by Christian Hesse) - demote two libraries to library (by Rosen Penev) - generate man page translations (by Jordan Williams) - use files() for man page source files (by Jordan Williams) @@ -964,6 +988,8 @@ - update note regarding swapfile creation (by Mike Yuan) more: + - remove a duplicate call of setlocale() (by Benno Schulenberg) + - fix repeat command (by Karel Zak) - fix compilation (by Yang Kun) - make sure we have data on stderr (by Karel Zak) - remove second check for EOF (#2714) (by Thorsten Kukuk) @@ -1000,6 +1026,13 @@ - make sure cmdline[] not overflow [coverity scan] (by Karel Zak) po: + - 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) - merge changes (by Karel Zak) - update nl.po (from translationproject.org) (by Benno Schulenberg) - update es.po (from translationproject.org) (by Antonio Ceballos Roa) @@ -1025,6 +1058,12 @@ po-man: - 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) + - merge changes (by Karel Zak) - merge changes (by Karel Zak) - update uk.po (from translationproject.org) (by Yuri Chornoivan) - update sr.po (from translationproject.org) (by Мирослав Николић) @@ -1112,6 +1151,7 @@ - Include strings.h header for strncasecmp function (by Jordan Williams) su: + - (man) fix duplicate asterisk (by Gaël PORTAY) - use lib/env.c for --whitelist-environment (by Karel Zak) - fix use after free in run_shell (by Tanish Yadav) @@ -1125,6 +1165,10 @@ swapoff: - avoid being killed by OOM (by Karel Zak) +swapon: + - remove unnecessary variable usage (by Karel Zak) + - make options --help and --version override --summary (by Benno Schulenberg) + sys-utils: - remove redundant comparison in read_hypervisor_dmi in lscpu-virt.c (by Anton Moryakov) - warns if mqueue fs is not mounted (by Prasanna Paithankar) @@ -1136,6 +1180,9 @@ - (setpriv) fix potential memory leak (by Maks Mishin) - hwclock-rtc fix pointer usage (by Karthikeyan Krishnasamy) +sys-utils/chmem: + - fix typo. (by WanBingjiang) + sys-utils/irq-common: - fix SPDX typos (by Karel Zak) @@ -1149,6 +1196,9 @@ - fix --help typo (foregound > foreground) + alignment (by Emanuele Torre) - make -f work (by Emanuele Torre) +terminal-colors.d: + - support NO_COLOR (by Karel Zak) + term-utils: - make pointer arrays const (by Max Kellermann) @@ -1163,6 +1213,7 @@ - (cosmetic) remove whitespaces between a function and its arguments (by Masatake YAMATO) tests: + - 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) @@ -1234,6 +1285,9 @@ - (lsfd) add a case testing ERROR type appeared in TYPE column (by Masatake YAMATO) - (test_mkfds::mmap) new factory (by Masatake YAMATO) +test_sysinfo: + - remove memory lea [coverity scan] (by Karel Zak) + textual: - make two incorrect synopses identical to a better one (by Benno Schulenberg) - fix three misspellings of "unsupported" (by Benno Schulenberg) @@ -1254,7 +1308,11 @@ - depend on systemd... (by Christian Hesse) - add and install for uuidd, generate /run/uuidd & /var/lib/libuuid (by Christian Hesse) +tools: + - add SPDX-License-Identifier (by Karel Zak) + tools/git-grouped-log: + - sort output (by Karel Zak) - add from master branch (by Karel Zak) tools/git-tp-sync: @@ -1270,6 +1328,12 @@ tools/git-tp-sync-man: - remove obsolete script (by Karel Zak) +tools/git-version-bump: + - add from master branch (by Karel Zak) + +tools/poman-translate: + - fix to work outside on source dir (by Karel Zak) + treewide: - use scols printf api where possible (by Robin Jarry) - use fgetc() instead of getc() (by Thomas Weißschuh) @@ -1278,6 +1342,8 @@ - Document loop destroy behavior (by Stanislav Brabec) unshare: + - fix typo in --map-groups=subids map name [coverity scan] (by Karel Zak) + - make strings more robust (by Karel Zak) - in usage text, reshuffle options into somewhat related groups (by Benno Schulenberg) - don't mark " (by " and ":" as part of the placeholders|Benno Schulenberg) - use single asterisks around long options, double around values (by Benno Schulenberg) @@ -1305,6 +1371,9 @@ - add support for RFC9562 UUIDs (by Thomas Weißschuh) - only report type/version for DCE variant (by Thomas Weißschuh) +various: + - (man) list --help and --version last among the options (by Benno Schulenberg) + wall: - always use utmp as fallback (by Karel Zak) - check sysconf() returnvalue (by Karel Zak) @@ -1338,6 +1407,7 @@ - add COMP-RATIO column (by Karel Zak) Misc: + - Use ipc_stat::cgid for the column COL_CGID. (by Koutheir Attouchi) - remove duplicate includes (by Karel Zak) - Defined macros for POSIX IPC compilation and removed path buffer. (by Prasanna Paithankar) - Fix CodeQL warning (by Prasanna Paithankar) diff -Nru util-linux-2.41~rc2/include/colors.h util-linux-2.41/include/colors.h --- util-linux-2.41~rc2/include/colors.h 2025-02-26 13:27:07.503597179 +0100 +++ util-linux-2.41/include/colors.h 2025-03-18 12:52:41.657620085 +0100 @@ -1,8 +1,9 @@ /* - * SPDX-License-Identifier: LGPL-2.1-or-later + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. * - * Copyright (C) 2012 Ondrej Oprala <oopr...@redhat.com> - * Copyright (C) 2012-2014 Karel Zak <k...@redhat.com> + * Authors: 2012 Ondrej Oprala <oopr...@redhat.com> + * 2012-2025 Karel Zak <k...@redhat.com> * * This file may be distributed under the terms of the * GNU Lesser General Public License. diff -Nru util-linux-2.41~rc2/include/xalloc.h util-linux-2.41/include/xalloc.h --- util-linux-2.41~rc2/include/xalloc.h 2025-02-26 13:27:07.506597167 +0100 +++ util-linux-2.41/include/xalloc.h 2025-03-18 12:52:41.657620085 +0100 @@ -1,11 +1,9 @@ /* - * SPDX-License-Identifier: LGPL-2.1-or-later + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. * - * Copyright (C) 2010 Davidlohr Bueso <d...@gnu.org> - * Copyright (C) 2010-2022 Karel Zak <k...@redhat.com> - * - * This file may be redistributed under the terms of the - * GNU Lesser General Public License. + * Authors 2010 Davidlohr Bueso <d...@gnu.org> + * 2010-2025 Karel Zak <k...@redhat.com> * * General memory allocation wrappers for malloc, realloc, calloc and strdup */ diff -Nru util-linux-2.41~rc2/lib/colors.c util-linux-2.41/lib/colors.c --- util-linux-2.41~rc2/lib/colors.c 2025-02-26 13:27:07.507597163 +0100 +++ util-linux-2.41/lib/colors.c 2025-03-18 12:52:41.811619376 +0100 @@ -1,8 +1,9 @@ /* - * SPDX-License-Identifier: LGPL-2.1-or-later + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. * - * Copyright (C) 2012 Ondrej Oprala <oopr...@redhat.com> - * Copyright (C) 2012-2014 Karel Zak <k...@redhat.com> + * Authors: 2012 Ondrej Oprala <oopr...@redhat.com> + * 2012-2025 Karel Zak <k...@redhat.com> * * This file may be distributed under the terms of the * GNU Lesser General Public License. @@ -600,7 +601,9 @@ cc->mode = mode; if (cc->mode == UL_COLORMODE_UNDEF + && getenv("NO_COLOR") == NULL && (ready = colors_terminal_is_ready())) { + int rc = colors_read_configuration(cc); if (rc) cc->mode = UL_COLORMODE_DEFAULT; diff -Nru util-linux-2.41~rc2/libblkid/docs/version.xml util-linux-2.41/libblkid/docs/version.xml --- util-linux-2.41~rc2/libblkid/docs/version.xml 2025-03-06 12:21:09.771061885 +0100 +++ util-linux-2.41/libblkid/docs/version.xml 2025-03-18 13:52:49.680836400 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41 diff -Nru util-linux-2.41~rc2/libfdisk/docs/version.xml util-linux-2.41/libfdisk/docs/version.xml --- util-linux-2.41~rc2/libfdisk/docs/version.xml 2025-03-06 12:21:09.808061729 +0100 +++ util-linux-2.41/libfdisk/docs/version.xml 2025-03-18 13:52:49.735836151 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41 diff -Nru util-linux-2.41~rc2/liblastlog2/src/tests/tst_write_read_user.c util-linux-2.41/liblastlog2/src/tests/tst_write_read_user.c --- util-linux-2.41~rc2/liblastlog2/src/tests/tst_write_read_user.c 2025-02-26 13:27:07.520597110 +0100 +++ util-linux-2.41/liblastlog2/src/tests/tst_write_read_user.c 2025-03-17 12:21:53.060758315 +0100 @@ -42,6 +42,7 @@ test_args (struct ll2_context *context, const char *user, int64_t ll_time, const char *tty, const char *rhost, const char *service) { + int rc = 1; char *error = NULL; int64_t res_time; char *res_tty = NULL; @@ -54,7 +55,7 @@ free (error); } else fprintf (stderr, "ll2_write_entry failed\n"); - return 1; + goto done; } if (ll2_read_entry (context, user, &res_time, &res_tty, &res_rhost, &res_service, &error) != 0) { @@ -63,42 +64,42 @@ free (error); } else fprintf (stderr, "Unknown error reading database %s", context->lastlog2_path); - return 1; + goto done; } if (ll_time != res_time) { fprintf (stderr, "Wrong time: got %lld, expect %lld\n", (long long int)res_time, (long long int)ll_time); - return 1; + goto done; } if ((tty == NULL && res_tty != NULL) || (tty != NULL && res_tty == NULL) || (tty != NULL && res_tty != NULL && strcmp (tty, res_tty) != 0)) { fprintf (stderr, "Wrong tty: got %s, expect %s\n", tty, res_tty); - return 1; + goto done; } if ((rhost == NULL && res_rhost != NULL) || (rhost != NULL && res_rhost == NULL) || (rhost != NULL && res_rhost != NULL && strcmp (rhost, res_rhost) != 0)) { fprintf (stderr, "Wrong rhost: got %s, expect %s\n", rhost, res_rhost); - return 1; + goto done; } if ((service == NULL && res_service != NULL) || (service != NULL && res_service == NULL) || (service != NULL && res_service != NULL && strcmp (service, res_service) != 0)) { fprintf (stderr, "Wrong service: got %s, expect %s\n", service, res_service); - return 1; + goto done; } - + rc = 0; +done: free (res_tty); free (res_rhost); free (res_service); - - return 0; + return rc; } int diff -Nru util-linux-2.41~rc2/libmount/docs/version.xml util-linux-2.41/libmount/docs/version.xml --- util-linux-2.41~rc2/libmount/docs/version.xml 2025-03-06 12:21:09.844061578 +0100 +++ util-linux-2.41/libmount/docs/version.xml 2025-03-18 13:52:49.790835902 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41 diff -Nru util-linux-2.41~rc2/libmount/src/context.c util-linux-2.41/libmount/src/context.c --- util-linux-2.41~rc2/libmount/src/context.c 2025-02-26 13:27:07.522597102 +0100 +++ util-linux-2.41/libmount/src/context.c 2025-03-17 12:21:53.055758334 +0100 @@ -2023,8 +2023,11 @@ struct libmnt_opt *opt; const char *allowed; - if (!ol) + if (!ol) { + free(*type); + *type = NULL; return -ENOMEM; + } opt = mnt_optlist_get_named(ol, "X-mount.auto-fstypes", cxt->map_userspace); diff -Nru util-linux-2.41~rc2/libmount/src/hook_loopdev.c util-linux-2.41/libmount/src/hook_loopdev.c --- util-linux-2.41~rc2/libmount/src/hook_loopdev.c 2025-02-26 13:27:07.523597098 +0100 +++ util-linux-2.41/libmount/src/hook_loopdev.c 2025-03-17 12:21:53.055758334 +0100 @@ -458,6 +458,7 @@ rc = mnt_context_guess_srcpath_fstype(cxt, &autotype); if (rc) { + free(autotype);; DBG(CXT, ul_debugobj(cxt, "failed to guess regfile FS type [rc=%d]", rc)); return 0; } diff -Nru util-linux-2.41~rc2/libsmartcols/docs/version.xml util-linux-2.41/libsmartcols/docs/version.xml --- util-linux-2.41~rc2/libsmartcols/docs/version.xml 2025-03-06 12:21:09.881061423 +0100 +++ util-linux-2.41/libsmartcols/docs/version.xml 2025-03-18 13:52:49.846835648 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41 diff -Nru util-linux-2.41~rc2/login-utils/lslogins.c util-linux-2.41/login-utils/lslogins.c --- util-linux-2.41~rc2/login-utils/lslogins.c 2025-02-26 13:27:07.529597074 +0100 +++ util-linux-2.41/login-utils/lslogins.c 2025-03-17 12:22:56.229513271 +0100 @@ -838,13 +838,15 @@ while (n < ncolumns) { switch (columns[n++]) { case COL_USER: - user->login = xstrdup(pwd->pw_name); + if (!user->login) + user->login = xstrdup(pwd->pw_name); break; case COL_UID: user->uid = pwd->pw_uid; break; case COL_GROUP: - user->group = xstrdup(grp->gr_name); + if (!grp->gr_name) + user->group = xstrdup(grp->gr_name); break; case COL_GID: user->gid = pwd->pw_gid; @@ -856,15 +858,20 @@ err(EXIT_FAILURE, _("failed to get supplementary groups")); break; case COL_HOME: - user->homedir = xstrdup(pwd->pw_dir); + if (!user->homedir) + user->homedir = xstrdup(pwd->pw_dir); break; case COL_SHELL: - user->shell = xstrdup(pwd->pw_shell); + if (!user->shell) + user->shell = xstrdup(pwd->pw_shell); break; case COL_GECOS: - user->gecos = xstrdup(pwd->pw_gecos); + if (!user->gecos) + user->gecos = xstrdup(pwd->pw_gecos); break; case COL_LAST_LOGIN: + if (user->last_login) + break; if (user_wtmp) { time = user_wtmp->ut_tv.tv_sec; user->last_login = make_time(ctl->time_mode, time); @@ -876,6 +883,8 @@ } break; case COL_LAST_TTY: + if (user->last_tty) + break; user->last_tty = xcalloc(1, sizeof(user_wtmp->ut_line) + 1); if (user_wtmp) { mem2strcpy(user->last_tty, user_wtmp->ut_line, @@ -885,6 +894,8 @@ get_lastlog(ctl, user->uid, user->login, user->last_tty, LASTLOG_LINE); break; case COL_LAST_HOSTNAME: + if (user->last_hostname) + break; user->last_hostname = xcalloc(1, sizeof(user_wtmp->ut_host) + 1); if (user_wtmp) { mem2strcpy(user->last_hostname, user_wtmp->ut_host, @@ -894,13 +905,13 @@ get_lastlog(ctl, user->uid, user->login, user->last_hostname, LASTLOG_HOST); break; case COL_FAILED_LOGIN: - if (user_btmp) { + if (!user->failed_login && user_btmp) { time = user_btmp->ut_tv.tv_sec; user->failed_login = make_time(ctl->time_mode, time); } break; case COL_FAILED_TTY: - if (user_btmp) { + if (!user->failed_tty && user_btmp) { user->failed_tty = xmalloc(sizeof(user_btmp->ut_line) + 1); mem2strcpy(user->failed_tty, user_btmp->ut_line, sizeof(user_btmp->ut_line), @@ -972,11 +983,11 @@ access(_PATH_VAR_NOLOGIN, F_OK) == 0; break; case COL_PWD_WARN: - if (shadow && shadow->sp_warn >= 0) + if (!user->pwd_warn && shadow && shadow->sp_warn >= 0) xasprintf(&user->pwd_warn, "%ld", shadow->sp_warn); break; case COL_PWD_EXPIR: - if (shadow && shadow->sp_expire >= 0) + if (!user->pwd_expire && shadow && shadow->sp_expire >= 0) user->pwd_expire = make_time(ctl->time_mode == TIME_ISO ? TIME_ISO_SHORT : ctl->time_mode, shadow->sp_expire * 86400); @@ -985,17 +996,17 @@ /* sp_lstchg is specified in days, showing hours * (especially in non-GMT timezones) would only serve * to confuse */ - if (shadow) + if (!user->pwd_ctime && shadow) user->pwd_ctime = make_time(ctl->time_mode == TIME_ISO ? TIME_ISO_SHORT : ctl->time_mode, shadow->sp_lstchg * 86400); break; case COL_PWD_CTIME_MIN: - if (shadow && shadow->sp_min > 0) + if (!user->pwd_ctime_min && shadow && shadow->sp_min > 0) xasprintf(&user->pwd_ctime_min, "%ld", shadow->sp_min); break; case COL_PWD_CTIME_MAX: - if (shadow && shadow->sp_max > 0) + if (!user->pwd_ctime_max && shadow && shadow->sp_max > 0) xasprintf(&user->pwd_ctime_max, "%ld", shadow->sp_max); break; case COL_SELINUX: @@ -1006,8 +1017,8 @@ break; case COL_NPROCS: #ifdef __linux__ - - xasprintf(&user->nprocs, "%d", get_nprocs(pwd->pw_uid)); + if (!user->nprocs) + xasprintf(&user->nprocs, "%d", get_nprocs(pwd->pw_uid)); #endif break; default: diff -Nru util-linux-2.41~rc2/lsfd-cmd/lsfd.c util-linux-2.41/lsfd-cmd/lsfd.c --- util-linux-2.41~rc2/lsfd-cmd/lsfd.c 2025-02-26 13:27:07.531597066 +0100 +++ util-linux-2.41/lsfd-cmd/lsfd.c 2025-03-18 13:42:56.568315681 +0100 @@ -872,7 +872,7 @@ bool sockets_only) { char sym[PATH_MAX] = { '\0' }; - struct stat sb; + struct stat sb = { .st_mode = 0 }; struct file *f, *prev; if (ul_path_readlink(pc, sym, sizeof(sym), name) < 0) @@ -963,7 +963,7 @@ uint64_t start, end, offset, ino; unsigned long major, minor; enum association assoc = ASSOC_MEM; - struct stat sb; + struct stat sb = { .st_mode = 0 }; struct file *f, *prev; char *path, modestr[5]; dev_t devno; diff -Nru util-linux-2.41~rc2/Makefile.am util-linux-2.41/Makefile.am --- util-linux-2.41~rc2/Makefile.am 2025-02-26 13:27:07.494597216 +0100 +++ util-linux-2.41/Makefile.am 2025-03-13 10:17:02.557989997 +0100 @@ -132,23 +132,29 @@ tools/meson-make-manpage-stub.sh \ tools/meson-make-symlink.sh \ \ + disk-utils/meson.build \ include/meson.build \ libblkid/meson.build \ + libfdisk/meson.build \ + liblastlog2/man/meson.build \ + liblastlog2/meson.build \ + lib/meson.build \ libmount/meson.build \ libmount/python/meson.build \ - misc-utils/meson.build \ libsmartcols/meson.build \ - text-utils/meson.build \ - po/meson.build \ - po-man/meson.build \ - lib/meson.build \ + libuuid/man/meson.build \ libuuid/meson.build \ - liblastlog2/meson.build \ + login-utils/meson.build \ + lsfd-cmd/meson.build \ + man-common/meson.build \ + misc-utils/meson.build \ + pam_lastlog2/man/meson.build \ + po-man/meson.build \ + po/meson.build \ + schedutils/meson.build \ sys-utils/meson.build \ - libfdisk/meson.build \ term-utils/meson.build \ - disk-utils/meson.build \ - login-utils/meson.build + text-utils/meson.build # pylibmountexec module must be installed after usrlib_exec libraries, # otherwise the libtool relink step will fail to find libmount.la and diff -Nru util-linux-2.41~rc2/Makefile.in util-linux-2.41/Makefile.in --- util-linux-2.41~rc2/Makefile.in 2025-03-06 12:21:00.701099953 +0100 +++ util-linux-2.41/Makefile.in 2025-03-18 13:52:34.538904994 +0100 @@ -6076,13 +6076,17 @@ tests/expected tests/functions.sh tests/commands.sh \ tests/run.sh tests/ts meson.build meson_options.txt \ tools/meson-make-manpage-stub.sh tools/meson-make-symlink.sh \ - include/meson.build libblkid/meson.build libmount/meson.build \ - libmount/python/meson.build misc-utils/meson.build \ - libsmartcols/meson.build text-utils/meson.build po/meson.build \ - po-man/meson.build lib/meson.build libuuid/meson.build \ - liblastlog2/meson.build sys-utils/meson.build \ - libfdisk/meson.build term-utils/meson.build \ - disk-utils/meson.build login-utils/meson.build \ + disk-utils/meson.build include/meson.build \ + libblkid/meson.build libfdisk/meson.build \ + liblastlog2/man/meson.build liblastlog2/meson.build \ + lib/meson.build libmount/meson.build \ + libmount/python/meson.build libsmartcols/meson.build \ + libuuid/man/meson.build libuuid/meson.build \ + login-utils/meson.build lsfd-cmd/meson.build \ + man-common/meson.build misc-utils/meson.build \ + pam_lastlog2/man/meson.build po-man/meson.build po/meson.build \ + schedutils/meson.build sys-utils/meson.build \ + term-utils/meson.build text-utils/meson.build \ $(PATHFILES:=.in) $(ADOCFILES_COMMON) $(am__append_733) \ $(am__append_736) CLEANFILES = $(am__append_367) errnos.h errnos.h.deps \ diff -Nru util-linux-2.41~rc2/misc-utils/exch.c util-linux-2.41/misc-utils/exch.c --- util-linux-2.41~rc2/misc-utils/exch.c 2025-02-26 13:27:07.533597057 +0100 +++ util-linux-2.41/misc-utils/exch.c 2025-03-10 14:50:08.752436411 +0100 @@ -26,13 +26,21 @@ # define RENAME_EXCHANGE (1 << 1) #endif -#if !defined(HAVE_RENAMEAT2) && defined(SYS_renameat2) -static inline int renameat2(int olddirfd, const char *oldpath, - int newdirfd, const char *newpath, unsigned int flags) +static inline int rename_exchange(const char *oldpath, const char *newpath) { - return syscall (SYS_renameat2, olddirfd, oldpath, newdirfd, newpath, flags); -} + int rc; + +#if defined(HAVE_RENAMEAT2) + rc = renameat2(AT_FDCWD, oldpath, AT_FDCWD, newpath, RENAME_EXCHANGE); +#elif defined(SYS_renameat2) + rc = syscall(SYS_renameat2, + AT_FDCWD, oldpath, AT_FDCWD, newpath, RENAME_EXCHANGE); +#else + rc = -1; + errno = ENOSYS; #endif + return rc; +} static void __attribute__((__noreturn__)) usage(void) { @@ -54,7 +62,6 @@ int main(int argc, char **argv) { int c; - int rc; static const struct option longopts[] = { { "version", no_argument, NULL, 'V' }, @@ -85,11 +92,11 @@ errtryhelp(EXIT_FAILURE); } - rc = renameat2(AT_FDCWD, argv[optind], - AT_FDCWD, argv[optind + 1], RENAME_EXCHANGE); - if (rc) + if (rename_exchange(argv[optind], argv[optind + 1]) != 0) { warn(_("failed to exchange \"%s\" and \"%s\""), argv[optind], argv[optind + 1]); + return EXIT_FAILURE; + } - return rc == 0 ? EXIT_SUCCESS : EXIT_FAILURE; + return EXIT_SUCCESS; } diff -Nru util-linux-2.41~rc2/NEWS util-linux-2.41/NEWS --- util-linux-2.41~rc2/NEWS 2025-03-06 12:14:41.862690110 +0100 +++ util-linux-2.41/NEWS 2025-03-18 13:50:51.815370392 +0100 @@ -1,4 +1,4 @@ -util-linux 2.41-rc2: Mar 06 2025 (the latest and greatest!) +util-linux 2.41: Mar 18 2025 (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. Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/fr.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/fr.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/hr.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/hr.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/ko.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/ko.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/nl.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/nl.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/pl.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/pl.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/ro.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/ro.gmo differ Binary files /tmp/V9THXohMgV/util-linux-2.41~rc2/po/uk.gmo and /tmp/ZUgpLkWXkM/util-linux-2.41/po/uk.gmo differ diff -Nru util-linux-2.41~rc2/po-man/po4a.cfg util-linux-2.41/po-man/po4a.cfg --- util-linux-2.41~rc2/po-man/po4a.cfg 2025-02-26 13:27:07.556596964 +0100 +++ util-linux-2.41/po-man/po4a.cfg 2025-03-18 13:43:57.618086044 +0100 @@ -1,4 +1,4 @@ -[po4a_langs] cs de es fr ko pt_BR ro sr uk +[po4a_langs] cs de es fr ko pl pt_BR ro sr uk [po4a_paths] util-linux-man.pot $lang:$lang.po [type:asciidoc] ../man-common/bugreports.adoc $lang:$lang/man-common/bugreports.adoc opt:"--keep 0" diff -Nru util-linux-2.41~rc2/sys-utils/chmem.c util-linux-2.41/sys-utils/chmem.c --- util-linux-2.41~rc2/sys-utils/chmem.c 2025-02-26 13:27:07.634596647 +0100 +++ util-linux-2.41/sys-utils/chmem.c 2025-03-10 14:51:10.016191026 +0100 @@ -367,7 +367,7 @@ int c, rc; static const struct option longopts[] = { - {"block", no_argument, NULL, 'b'}, + {"blocks", no_argument, NULL, 'b'}, {"disable", no_argument, NULL, 'd'}, {"enable", no_argument, NULL, 'e'}, {"help", no_argument, NULL, 'h'}, diff -Nru util-linux-2.41~rc2/sys-utils/hwclock-rtc.c util-linux-2.41/sys-utils/hwclock-rtc.c --- util-linux-2.41~rc2/sys-utils/hwclock-rtc.c 2025-02-26 13:27:07.635596642 +0100 +++ util-linux-2.41/sys-utils/hwclock-rtc.c 2025-03-17 12:21:53.078758245 +0100 @@ -431,6 +431,9 @@ { const struct hwclock_param *param = &hwclock_params[0]; + if (!alias) + return 1; + while (param->name) { if (!strcmp(alias, param->name)) { *value = param->id; diff -Nru util-linux-2.41~rc2/sys-utils/irqtop.c util-linux-2.41/sys-utils/irqtop.c --- util-linux-2.41~rc2/sys-utils/irqtop.c 2025-03-06 12:13:49.294910641 +0100 +++ util-linux-2.41/sys-utils/irqtop.c 2025-03-18 13:42:56.678315267 +0100 @@ -391,6 +391,9 @@ }; setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + close_stdout_atexit(); parse_args(&ctl, &out, argc, argv); diff -Nru util-linux-2.41~rc2/sys-utils/lscpu-arm.c util-linux-2.41/sys-utils/lscpu-arm.c --- util-linux-2.41~rc2/sys-utils/lscpu-arm.c 2025-02-26 13:27:07.637596634 +0100 +++ util-linux-2.41/sys-utils/lscpu-arm.c 2025-03-10 14:50:28.311358057 +0100 @@ -93,10 +93,14 @@ { 0xd80, "Cortex-A520" }, { 0xd81, "Cortex-A720" }, { 0xd82, "Cortex-X4" }, + { 0xd83, "Neoverse-V3AE" }, { 0xd84, "Neoverse-V3" }, { 0xd85, "Cortex-X925" }, { 0xd87, "Cortex-A725" }, + { 0xd88, "Cortex-A520AE" }, + { 0xd89, "Cortex-A720AE" }, { 0xd8e, "Neoverse-N3" }, + { 0xd8f, "Cortex-A320" }, { -1, "unknown" }, }; diff -Nru util-linux-2.41~rc2/sys-utils/lsipc.c util-linux-2.41/sys-utils/lsipc.c --- util-linux-2.41~rc2/sys-utils/lsipc.c 2025-02-26 13:27:07.637596634 +0100 +++ util-linux-2.41/sys-utils/lsipc.c 2025-03-17 12:29:55.819883683 +0100 @@ -926,7 +926,7 @@ rc = scols_line_refer_data(ln, n, arg); break; case COL_CGID: - rc = scols_line_sprintf(ln, n, "%u", p->msg_perm.cuid); + rc = scols_line_sprintf(ln, n, "%u", p->msg_perm.cgid); break; case COL_CGROUP: arg = get_groupname(&gr, p->msg_perm.cgid); diff -Nru util-linux-2.41~rc2/sys-utils/lsirq.c util-linux-2.41/sys-utils/lsirq.c --- util-linux-2.41~rc2/sys-utils/lsirq.c 2025-03-06 12:13:49.294910641 +0100 +++ util-linux-2.41/sys-utils/lsirq.c 2025-03-18 13:42:56.679315263 +0100 @@ -105,6 +105,9 @@ int softirq = 0; setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + close_stdout_atexit(); while ((c = getopt_long(argc, argv, "no:s:t:C:ShJPV", longopts, NULL)) != -1) { err_exclusive_options(c, longopts, excl, excl_st); diff -Nru util-linux-2.41~rc2/sys-utils/swapon.c util-linux-2.41/sys-utils/swapon.c --- util-linux-2.41~rc2/sys-utils/swapon.c 2025-02-26 13:27:07.640596622 +0100 +++ util-linux-2.41/sys-utils/swapon.c 2025-03-17 12:19:15.138370990 +0100 @@ -145,6 +145,7 @@ no_heading, /* toggle --show headers */ raw, /* toggle --show alignment */ show, /* display --show information */ + summarize, /* display summary of swap use */ verbose; /* be chatty */ }; @@ -965,8 +966,8 @@ ctl.fix_page_size = 1; break; case 's': /* status report */ - status = display_summary(); - return status; + ctl.summarize = 1; + break; case 'v': /* be chatty */ ctl.verbose = 1; break; @@ -1007,6 +1008,9 @@ } argv += optind; + if (ctl.summarize) + return display_summary(); + if (ctl.show || (!ctl.all && !numof_labels() && !numof_uuids() && *argv == NULL)) { if (!ctl.ncolumns) { /* default columns */ @@ -1016,8 +1020,7 @@ ctl.columns[ctl.ncolumns++] = COL_USED; ctl.columns[ctl.ncolumns++] = COL_PRIO; } - status = show_table(&ctl); - return status; + return show_table(&ctl); } if (ctl.props.no_fail && !ctl.all) { diff -Nru util-linux-2.41~rc2/sys-utils/unshare.c util-linux-2.41/sys-utils/unshare.c --- util-linux-2.41~rc2/sys-utils/unshare.c 2025-03-04 19:14:02.601173534 +0100 +++ util-linux-2.41/sys-utils/unshare.c 2025-03-17 13:57:12.789532733 +0100 @@ -737,7 +737,7 @@ flags = strrchr(interp, ':'); - return strchr(flags, 'F') != NULL; + return flags && strchr(flags, 'F') != NULL; } static void load_interp(const char *binfmt_mnt, const char *interp) @@ -1005,7 +1005,7 @@ insert_map_range(&groupmap, read_subid_range(_PATH_SUBGID, real_euid, 0)); else if (!strcmp(optarg, "subids")) - insert_map_range(&usermap, + insert_map_range(&groupmap, read_subid_range(_PATH_SUBGID, real_euid, 1)); else if (!strcmp(optarg, "all")) read_kernel_map(&groupmap, _PATH_PROC_GIDMAP); diff -Nru util-linux-2.41~rc2/.tarball-version util-linux-2.41/.tarball-version --- util-linux-2.41~rc2/.tarball-version 2025-03-06 12:25:41.213978539 +0100 +++ util-linux-2.41/.tarball-version 2025-03-18 13:56:05.329195960 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41 diff -Nru util-linux-2.41~rc2/tests/helpers/test_sysinfo.c util-linux-2.41/tests/helpers/test_sysinfo.c --- util-linux-2.41~rc2/tests/helpers/test_sysinfo.c 2025-03-05 14:17:30.356392119 +0100 +++ util-linux-2.41/tests/helpers/test_sysinfo.c 2025-03-17 12:21:53.049758357 +0100 @@ -215,6 +215,7 @@ { char * h = xgethostname(); printf("%s\n", h); + free(h); return 0; } diff -Nru util-linux-2.41~rc2/text-utils/more.c util-linux-2.41/text-utils/more.c --- util-linux-2.41~rc2/text-utils/more.c 2025-02-26 13:27:07.722596289 +0100 +++ util-linux-2.41/text-utils/more.c 2025-03-17 12:24:23.810173287 +0100 @@ -1684,6 +1684,9 @@ continue; if (cmd.key == more_kc_repeat_previous) cmd = ctl->previous_command; + else + ctl->previous_command = cmd; + switch (cmd.key) { case more_kc_backwards: if (ctl->no_tty_in) { @@ -1849,7 +1852,6 @@ fflush(NULL); break; } - ctl->previous_command = cmd; if (done) { cmd.key = more_kc_unknown_command; break; @@ -2095,7 +2097,6 @@ bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); close_stdout_atexit(); - setlocale(LC_ALL, ""); /* Auto set no scroll on when binary is called page */ if (!(strcmp(program_invocation_short_name, "page"))) diff -Nru util-linux-2.41~rc2/tools/git-tp-sync util-linux-2.41/tools/git-tp-sync --- util-linux-2.41~rc2/tools/git-tp-sync 2025-03-06 12:13:49.294910641 +0100 +++ util-linux-2.41/tools/git-tp-sync 2025-03-18 13:42:56.679315263 +0100 @@ -1,20 +1,17 @@ #!/bin/bash # +# SPDX-License-Identifier: GPL-2.0-or-later +# # git-tp-sync - downloads the latest PO files from translationproject.org # and commits changes to your GIT repository. # # Copyright (C) 2007-2025 Karel Zak <k...@redhat.com> # -# This file is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# This file is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# declare -A TP_PROJECTS # Define local directories and project names on TP.org diff -Nru util-linux-2.41~rc2/tools/git-version-gen util-linux-2.41/tools/git-version-gen --- util-linux-2.41~rc2/tools/git-version-gen 2025-03-06 12:13:49.294910641 +0100 +++ util-linux-2.41/tools/git-version-gen 2025-03-18 13:42:56.680315260 +0100 @@ -1,4 +1,7 @@ #!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later +# # Print a version string. scriptversion=2011-02-19.19; # UTC diff -Nru util-linux-2.41~rc2/tools/poman-translate.sh util-linux-2.41/tools/poman-translate.sh --- util-linux-2.41~rc2/tools/poman-translate.sh 2025-02-26 13:27:07.724596281 +0100 +++ util-linux-2.41/tools/poman-translate.sh 2025-03-17 12:16:24.077000919 +0100 @@ -90,13 +90,16 @@ PO4A_TRANSLATE_ONLY_FLAGS=() for LOCALE in "${LOCALES[@]}"; do for ADOC in "${ADOCS[@]}"; do - if [[ ! " ${PO4ACFG_TRANSLATIONS[*]} " =~ .*${ADOC}[[:space:]] ]]; then - echo "Untranslated: $LOCALE: $ADOC" - continue + if [[ "$ADOC" == *"/man-common/manpage-stub.adoc" ]]; then + continue + fi + ADOC_NAME=$(basename "$ADOC") + if [[ ! " ${PO4ACFG_TRANSLATIONS[*]} " =~ .*${ADOC_NAME}[[:space:]] ]]; then + echo "unconfigured in $PO4ACFG: $ADOC" + continue fi PO4A_TRANSLATE_ONLY_FLAGS+=("--translate-only") - ADOC_NAME=$(basename "$ADOC") - if [[ "$ADOC" == *"/man-common/"* ]]; then + if [[ "$ADOC" == *"/man-common/"* ]]; then PO4A_TRANSLATE_ONLY_FLAGS+=("$LOCALE/man-common/$ADOC_NAME") else MANADOCS+=("$LOCALE/$ADOC_NAME") diff -Nru util-linux-2.41~rc2/.version util-linux-2.41/.version --- util-linux-2.41~rc2/.version 2025-03-06 12:21:11.388055098 +0100 +++ util-linux-2.41/.version 2025-03-18 13:52:51.337828894 +0100 @@ -1 +1 @@ -2.41-rc2 +2.41