Since upstream util-linux's flock command now supports the --fcntl
flag, there is no longer any reason to keep building the separate
fcntl-lock binary.
(From OE-Core rev: f42becf48a22f8f40e4076d962693e18d38aa264)
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Avoid compile error:
| In file included from /usr/include/linux/fs.h:19,
| from /usr/include/linux/btrfs.h:29,
| from ../sources/util-linux-2.41.1/libmount/src/btrfs.c:18:
| /usr/include/x86_64-linux-gnu/sys/mount.h:35:3: \
error: expected identifier before numeric constant
| 35 | MS_RDONLY = 1, /* Mount read-only. */
| | ^~~~~~~~~
This is seen on PopOS 22.04, an Ubuntu/Debian-based distro.
(From OE-Core rev: 67f17867c605bc0e1ca69ab9dec6209e85c38c1e)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After upgrading bash to 5.3 to contain commit [1], if SIGINT was trapped in
asynchronous subshell, bash called set_signal_async_ignored to make sure
processes that are created by this asynchronous subshell to ignore SIGINT.
And it caused test case `kill/decode' failed, the signal INT was existed in
both of Blocked and Ignored
root@qemux86-64:~# cd /usr/lib/util-linux/ptest/
root@qemux86-64:/usr/lib/util-linux/ptest# ./run-ptest
...
diff-{{{
|--- /usr/lib/util-linux/ptest/tests/expected/kill/decode 2011-04-05 23:00:00.000000000 +0000
|+++ /usr/lib/util-linux/ptest/tests/output/kill/decode 2025-07-28 12:09:46.279000000 +0000
@@ -16,5 +16,5 @@
Pending (thread): INT ILL
Pending (process): USR1
Blocked: INT ILL ABRT FPE USR1 SEGV TERM
-Ignored: HUP QUIT TRAP PIPE ALRM
+Ignored: HUP INT QUIT TRAP PIPE ALRM
Caught: ILL USR1
}}}-diff
...
Explicitly reset SIGINT to default action after trapping, then the
test case `kill/decode' works on both of old (<5.3) and new (>=5.3) bash
[1] https://cgit.git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=a5d2617c7a7e602ace1f4149987cdfd075c4e762
(From OE-Core rev: 175f5a5bba6204cbcfbdeabb6c6b98f0f7453558)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The kill/decode test case fails for musl. The root cause is the test
case only considers glibc and uses 34 as SIGRTMIN while musl uses 35.
Add patches to fix this issue.
(From OE-Core rev: 0a1dd5f04a843dfa0b1fc3ce0069e26bd0fbc48e)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: add EUPL-1.2.
See 74f3265b9a
0001-tests-ts-kill-decode-avoid-using-shell-built-in-kill.patch is
a backported patch to fix kill/decode test case.
0001-lsfd-mkfds-foreign-sockets-skip-when-lacking-sock_di.patch is
used to fix testcase failure of lsfd/mkfds-foreign-sockets.
The su tests (su/environ for now) are removed when 'pam' is not in
PACKAGECONFIG. This is because su is not enabled in such case.
lsfd/option-inet is removed out of the excluded list because upstream
has fixed the issue:
eaa3870880
(From OE-Core rev: ed76e5fbec0f1926c14aedbb03ca1421c3920355)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
They do not pass with GCC-15, ignore them for now
[RP: Fix formatting of exclude to be whitespace separated]
(From OE-Core rev: dc989569d3528d999f2a1f4363a9ef8325e09600)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The following patch dropped because it is in the new version:
- 0001-autotools-fix-securedir-and-pam_lastlog2-install.patch
libfdisk-cfdisk-and-sfdisk-sector-size-improvements.patch is replaced
by two new patches:
- 0001-cfdisk-add-sector-size-commanand-line-option.patch
- 0002-sfdisk-add-sector-size-commanand-line-option.patch
This is because the original patch is a squash of four patches and
two of them are in the new version. So extract the remaining two
that are not in the current version and make them separate patches
for better tracking.
(From OE-Core rev: e87b9bccc52bfba0c48db4920c0996d7dd6a0866)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upgrade util-linux from 2.40.1 to 2.40.2.
0001-Revert-autotools-make-pam-install-path-configurable.patch
is added to solve a problem of lastlog2 pam module not installed
in the expected location.
(From OE-Core rev: 2303f28de507ceb88a012647f70b74e0fad6ec4b)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update:
===============
GPL-2.0 is changed to GPL-2.0-only in README.licensing.
The following two patches are removed as they've been there in new release:
0001-login-utils-include-libgen.h-for-basename-API.patch
mit-license.patch
Other existing patches are refreshed to avoid patch-fuzz error.
A new PACKAGECONFIG, lastlog2, is added, which serves as a switch to build Y2038
safe lastlog pam module. This is a new functionality added in 2.40.
This 2.40.1 version has the problem of unnecessary remake, causing
intermmittent errors at parallel make. The do_compile:prepend is a
workaround for this. Upstream issue and PR are:
https://github.com/util-linux/util-linux/issues/3061https://github.com/util-linux/util-linux/pull/3064
do_install is changed to do_install:append, the legacy codes are
removed. They've been there since the born of oe-core. I tested
with ccache, there's no error.
A new dependency, diffutils, is added to ptest. Because the mkswap-offset
test case needs 'cmp' from diffutils.
The tests/ts/misc/enosys test case is deleted for musl. This is because
the test case is comparing error description output and that's libc
specific. Results below can demonstrate the case.
'''
root@qemux86-64:/usr/lib/util-linux/ptest# cat /usr/lib/util-linux/ptest/tests/expected/misc/enosys-ioctl
test_enosys: ioctl r=0 errno=Success
test_enosys: ioctl r=-1 errno=Function not implemented
test_enosys: ioctl r=-1 errno=Inappropriate ioctl for device
test_enosys: ioctl r=-1 errno=Inappropriate ioctl for device
test_enosys: ioctl r=-1 errno=Function not implemented
root@qemux86-64:/usr/lib/util-linux/ptest# cat /usr/lib/util-linux/ptest/tests/output/misc/enosys-ioctl
test_enosys: ioctl r=0 errno=No error information
test_enosys: ioctl r=-1 errno=Function not implemented
test_enosys: ioctl r=-1 errno=Not a tty
test_enosys: ioctl r=-1 errno=Not a tty
test_enosys: ioctl r=-1 errno=Function not implemented
'''
(From OE-Core rev: 2c5f70e7e73362502a7d8d0773fbd04520b26eef)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a version of flock that uses the fnctl based lockf locking instead of
flock based locks. This allows us to take the same lock that opkg would
use from a shell script. The two different locking mechanisms operate
independently of each other.
Inserting this C file into the util-linux build seems like the easiest/best
place to insert the code. At this point it hasn't been discussed with upstream.
(From OE-Core rev: d2b784110e2c3df8a0a41e4819cf2de9003f9fa3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The MIT license was missing from the license list for util-linux. Add
a patch, submitted to upstream which adds the missing license mentions.
(From OE-Core rev: 24078c0542626f74c93203d17ab4b2bb2f9b5630)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update:
===============
GPL-1.0-or-later is added. fdisk.c is licensed under it.
0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch is dropped as
it's been in the new version.
(From OE-Core rev: 9a0bd46e6988b2da446f89864131639dde63c6d0)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check whether magic.h header exists before defining HAVE_MAGIC.
Despite library availability there still can be missing header.
Current test doesn't cover that possibility which will lead compilation
to fail in case of separate sysroot.
Upstream-Status: Backport
[263381ddd4]
(From OE-Core rev: a93e5c4aba34996fdb9b253a4a8529f33ec114f5)
Signed-off-by: Mateusz Marciniec <mateuszmar2@gmail.com>
Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc 2.36 has added sys/pidfd.h and APIs for
pidfd_send_signal and pidfd_open, therefore check
for this header and include it if it exists
(From OE-Core rev: c72d4ad4d3c41e6bc36e7d7542a42db04b5a2e97)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
close_range expects 3 parameters, thus far it was not implemented in
glibc so it was hidden but with glibc 2.34+ it will start to show up
(From OE-Core rev: 0d6f638230a96808e22438d9925aec6383d136a7)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of duplicating logic, we can use the run.sh that the test suite
installs.
Unless told otherwise, the util-linux test suite assumes that it is
running in a build tree and looks for binaries to run, but we're on
target so pass --use-system-commands (drops ~180 skips to tens).
Add --show-diff so that debugging can be done from the logs alone.
Remove redundant path manipulation that is now done upstream.
If PAM is disabled, delete the chfn test: it will run the chfn from
shadow which has different output, and the test will fail.
[ YOCTO #14244 ]
(From OE-Core rev: 720660b936b5523ec48a7c04712d10c88198e12c)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport a number of fixes so the test suite passes.
(From OE-Core rev: 398b9dab8675829f3428a4f00bffcf84525e0a46)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop manpages support, as it requires asciidoctor
(written in ruby, isn't in oe-core).
(From OE-Core rev: 6cb58dd4feae12a064fad3ab30b1d44e159fe7e2)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
util-linux-uuid does not need libtcolors.a and libcommon.a but
they get build regardless. Backport a patch from upstream to
skip them and save some compilation time.
c65953d72b
(From OE-Core rev: 9353c4338acd51e1bc4172554fca018c4044829f)
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0001-build-sys-do-not-build-plymouth-ctrl.c-w-disabled-pl.patch
0001-hwclock-do-not-assume-__NR_settimeofday_time32.patch
removed since they are included in 2.36.2
(From OE-Core rev: 4db0babf6a69a90df14363103f5f6b643f208b12)
Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
some 32bit architectures ( e.g. riscv32 and arc ) are using 64bit time_t
from get go, therefore may not have time32 syscalls, these backports
help restore the successful builds for util-linux on such machines
(From OE-Core rev: df9535626c66e59c6769bd7cc285c6f26271c6aa)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0001-hwclock-fix-for-glibc-2.31-settimeofday.patch
0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch
0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch
are removed since they are included in 2.35.2
(From OE-Core rev: 3165c26b38f60f48c83cae266085363fe1aaa283)
Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport patches from upstream to fix a build error in the kill utility.
Fixes:
| In file included from ../util-linux-2.35.1/misc-utils/kill.c:57:
| ../util-linux-2.35.1/include/pidfd-utils.h: In function ‘pidfd_open’:
| ../util-linux-2.35.1/include/pidfd-utils.h:19:17: error: ‘SYS_pidfd_open’ undeclared (first use in this function); did you mean ‘pidfd_open’?
(From OE-Core rev: 11876e819dae43d0ba3b9010e30e91c9501f3593)
Signed-off-by: Benjamin Fair <benjaminfair@google.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: add GPLv3 text in README.licensing
Also:
- Drop upstreamed patch
- Backport an upstream patch to fix an issue with 'sfdisk'
- Use 'disable-hwclock-gplv3' explicitly.
Since commit 7a3000f7ba548cf7d74ac77cc63fe8de228a669e ("hwclock: use parse_date function") hwclock is linked
with parse_date.y from gnullib. This gnulib code is distributed with GPLv3.
So, we have to use '--disable-hwclock-gplv3' to exclude this code.
See full changelog https://lore.kernel.org/util-linux/20200131095846.ogjtqrs7ai774tka@ws.net.home/T/#u
(From OE-Core rev: 324f33ba5a77d498cfff81c6857c78ad13b27125)
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The change of settimeofday() systemcall since Glibc 2.31
will cause "hwclock -s" doesn't work with error:
"hwclock: settimeofday() failed: Invalid argument"
Backport a upstream patch to fix this issue.
(From OE-Core rev: b80bf70748609b92ce766d11380353fdfbb1d916)
Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PKNAME is NULL when run "lsblk -o+PKNAME /dev/sda1"
backport an upstream patch to fix it.
(From OE-Core rev: a5a987ff5e5e333e28be44a12e729907272ea3cb)
Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upgrade from util-linux_2.33.2.bb to util-linux_2.34.bb.
-util-linux/check-for-_HAVE_STRUCT_TERMIOS_C_OSPEED.patch
Removed since this is included in 2.34.
(From OE-Core rev: c8685430d81b60c38d43ed20e480b2a0942dc768)
Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The util-linux's ptest uses the SCSI_DEBUG kernel module to create
virtual SCSI disks. The automount feature of udevd will try to mount
these disks by default. Because udevd controls the mount of the disks,
the eject/mount tests will fail or be skipped. This change will stop
udevd before executing the util-linux's ptest and start the daemon
again after all the tests.
This is for eudevd only, systemd-udevd doesn't present this problem
because there are no automount rules.
[YOCTO #13301]
(From OE-Core rev: f7becf0b5743dfbee06b354a086dc553db2b1348)
Signed-off-by: Mariano López <just.another.mariano@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some binaries generated by util-linux will be replaced by core-utils
in the final image by update-alternatives, so use a dedicated directory
with symlinks to avoid using a binary generated by another package.
This will solve the issue with the ptest runner timing out when
running the kill ptests for util-linux.
[YOCTO #13238]
(From OE-Core rev: 1a8fd875f0b171e25a5ac8a32cc81ff3887935bd)
Signed-off-by: Mariano Lopez <just.another.mariano@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to run sed with the -u option to ensure the output is unbuffered else
ptest-runner may timeout thinkig things were idle. Busybox doesn't have the -u
option so we need to RDEPEND on sed (which is a good thing to do if we use it
anyway).
Alex Kanavin should get credit for discovering the problem.
(From OE-Core rev: d3ffbebf43c23faa43af81c9ecf6fcaef36d675b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The patch in question is patching the code to use
qsort() instead of qsort_r(), without adopting the
compare function. This is a major issue, because
the compare function as written is evaluating /
accessing a third argument, which is not passed
with this OE patch, causing access to random
memory.
Given this patch was added so as to support (old)
linux (host) distros which might not provide
qsort_r(), according to the git history, and given
these days util-linux detects availability of
qsort_r() during configure phase, and given musl
builds (which doesn't provide qsort_r() either)
work without problem, the right solution is to
simply drop this invalid patch.
Do so.
(From OE-Core rev: a85f93b4265a20b269085d12326e32915c561e62)
Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have a problem when for example, a glibc 2.27 based system builds some
library like libpopt-native and puts it into sstate then it is reused
on a pre glibc-2.27 system to build something which depends on popt like
rpm-native. This results in an error like:
recipe-sysroot-native/usr/lib/libpopt.so: undefined reference to `glob@GLIBC_2.27'
In the past we've had this problem with new symbols like getrandom and
getentropy, here its with a more complex symbol where there is an old
version and a newer version.
We've looked into various options, basically we cannot link against our
uninative libc/ld.so since we don't have the right headers or compiler
link libraries. The compiler doesn't allow you to switch in a new set
either, even if we did want to ship them. Shipping a complete compiler,
dev headers and libs also isn't an option.
On the other hand if we follow the ld man page, it does say:
"""
The reasons for allowing undefined symbol references in shared libraries
specified at link time are that:
- A shared library specified at link time may not be the same as the one
that is available at load time, so the symbol might actually be
resolvable at load time.
"""
which is exactly this case. By the time the binary runs, it will use
our uninative loader and libc and the symbol will be available.
Therefore we basically have a choice, we get weird intermittent bugs,
we drop uninative entirely, or we pass this option.
If we pass the option, we can drop the other workarounds too.
(From OE-Core rev: 75a62ede393bf6b4972390ef5290d50add19341a)
(From OE-Core rev: d18bf7fa8e80d6cfaf3fdbe1ab06eec84b954432)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The patch tool will apply patches by default with "fuzz", which is where if the
hunk context isn't present but what is there is close enough, it will force the
patch in.
Whilst this is useful when there's just whitespace changes, when applied to
source it is possible for a patch applied with fuzz to produce broken code which
still compiles (see #10450). This is obviously bad.
We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For
that to be realistic the existing patches with fuzz need to be rebased and
reviewed.
(From OE-Core rev: 16c27f3bb7b99193a88949eb85f3a3da725f3a6c)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
getrandom() is only available in glibc 2.25+ and uninative may relocate binaries
onto systems that don't have this function. For now, force the code to the older
codepath until we can come up with a better solution for this kind of issue.
(From OE-Core rev: 95e31e4b15573eb1cbeb4ff1d0903c5141b84d54)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop uuid-test-error-api.patch as it's been fixed upstream differently:
b770b48700
Drop ptest for tailf, as it got deprecated and removed:
70ca1a7772
(From OE-Core rev: 6b69e08cf60abbc40236cc3894b9783d720a6e6d)
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Related patches are rebased.
util-linux-ng-2.16-mount_lock_path.patch is removed because there's
no _PATH_MOUNTED_LOCK in the latest codes.
util-linux-native.patch is removed because 2.28 version of util-linux
has taken mkostemp into consideration and provide fallback if mkostemp
fails.
avoid_unsupported_sleep_param.patch is removed and coreutils is added
as a runtime dependency to util-linux-ptest to solve the same problem.
avoid_unsupported_grep_opts.patch is removed and grep is added as a
runtime dependency to util-linux-ptest to solve the sanme problem.
(From OE-Core rev: fccf99d9130f3c5ce358c97c97c52cd74deef25c)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>