Ruediger Meier [Tue, 6 Mar 2018 23:29:59 +0000 (00:29 +0100)]
tests: don't lock fd 1 (stdout), don't use /proc/$$/fd
On debian-kfreebsd we've locked stdout which messed up our test logs. Using
/proc/*/fd/ is not portable. Even ts_init's test for "/proc/self/fd"
does not help because /proc/*/fd behaves strange here:
$ ls -l /proc/$$/fd
lr--r--r-- 1 rudi user 0 Mar 6 23:11 /proc/2194/fd -> unknown
$ file /proc/$$/fd
/proc/2194/fd: broken symbolic link to `unknown'
## wtf?
$ test -d /proc/$$/fd; echo $?
0
$ ls -l /proc/$$/fd/
ls: cannot access /proc/2194/fd/: No such file or directory
## but
$ ls -l /proc/self/fd/
total 0
cr-xr-xr-x 1 root root 0, 3 Mar 6 19:39 0
cr-xr-xr-x 1 root root 0, 4 Mar 6 19:39 1
cr-xr-xr-x 1 root root 0, 5 Mar 6 19:39 2
cr-xr-xr-x 1 root root 0, 6 Mar 6 19:39 3
This is how this patch changes the test output:
[...]
blkid: partitions probing: [06] sgi ... OK
blkid: partitions probing: [07] sun ... OK
blkid: partitions probing ... OK (all 7 sub-tests PASSED)
-ls: cannot access /proc/66215/fd/: No such file or directory
+ blkid: mbr-wholedisk ... SKIPPED (missing scsi_debug module (dry-run))
blkid: MD raid0 (whole-disks) ... SKIPPED (losetup not found)
blkid: MD raid1 (last partition) ... SKIPPED (missing in PATH: mdadm)
blkid: MD raid1 (whole-disks) ... SKIPPED (losetup not found)
@@ -343,11 +343,11 @@
dmesg: facilities ... SKIPPED (test_dmesg not found)
dmesg: indentation ... SKIPPED (test_dmesg not found)
eject: umount ... SKIPPED (eject not found)
-ls: cannot access /proc/69561/fd/: No such file or directory
-ls: cannot access /proc/69609/fd/: No such file or directory
+ fdisk: align 512/4K ... SKIPPED (missing scsi_debug module (dry-run))
+ fdisk: align 512/4K +alignment_offset ... SKIPPED (missing scsi_debug module (dry-run))
fdisk: align 512/4K +MD ... SKIPPED (missing in PATH: mdadm)
fdisk: align 512/512 ... SKIPPED (losetup not found)
[...]
Ruediger Meier [Tue, 23 Jan 2018 23:20:15 +0000 (00:20 +0100)]
tests: add wierd sleep for libmount/context
I still don't understand why this helps to fix these tests on my system.
udevadm settle had no positive effect. Adding the sleeps before
"is_mounted" also didn't fixed that, that's amazing!?
Below the test log, very often seen on my system since a long time:
Ruediger Meier [Wed, 7 Mar 2018 09:40:23 +0000 (10:40 +0100)]
uuidd: don't truncate long socket paths
This was the error
uuidd: couldn't bind unix socket /var/tmp/portage/sys-apps/util-linux-2.31.1/work/util-linux-2.31.1-abi_x86_64.amd64/tests/output/uuid/uuiddkOcTUuoZ7kaP3: Address already in use
because the socket path was truncated to 108 chars which was luckily
an existing directory.
Now we abort early with "uuidd: socket name too long: ... "
Reported-by: Thomas Deutschmann <whissi@gentoo.org> Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Sam Morris [Tue, 6 Mar 2018 17:05:38 +0000 (17:05 +0000)]
setpriv: fix manpage typo
The example given in the man page didn't work. Judging by commit db663995bd93e170a43b1a7050c7a738782dabfb, --inh-caps= used to be called
--caps= but the man page was not updated after the change was made.
Karel Zak [Tue, 6 Mar 2018 13:44:23 +0000 (14:44 +0100)]
libmount: fix fs pattern usage in mount --all
The command "mount -a -t <pattern>" uses the -t as pattern to filter
fstab entries. And "mount -t <type>" is used to specify FS type.
Unfortunately libmount does not care about this difference when it
calls standard mount functionality. The original pattern is still in
the library control struct and mnt_do_mount() tries to use it as FS
type.
This patch is just bugfix. Maybe the long term solution would be to
differentiate between the pattern and type in the library API. Now the
library follows mount(8) command line and it's little bit messy.
Reported-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
Even though iterating with "len" seems counter-intuitive, it fixes
this issue. The variable len is only in the last iteration not a
multiplication of pagesize -- which is the requirement for mmap.
If a file is larger than 4 GB on a 32 bit system with large file
support (default), it can happen that not all pages are properly
processed. This happens due to an int truncation (off_t vs size_t).
You can reproduce this on 32 bit with these commands:
$ dd if=/dev/zero of=4gb-file seek=4294967295 count=1 bs=1
$ fincore 4gb-file
fincore: failed to do mmap: 4gb-file: Invalid argument
If a file is larger than 4 GB, the first few pages of a file won't
be properly processed. "len" will be smaller than window_size,
but the for-loop iterates "window_size" bytes, skipping some pages.
Karel Zak [Fri, 16 Feb 2018 10:25:22 +0000 (11:25 +0100)]
Merge branch 'maybe-for-v2.32' of https://github.com/rudimeier/util-linux
* 'maybe-for-v2.32' of https://github.com/rudimeier/util-linux:
tests: use pgrep instead of ps --ppid ...
misc: fix typos using codespell
lsns: fix clang compiler warning
tests: add udevadm settle to sfdisk/resize
build-sys: disable bz2 tarball and fix some am warnings
Ruediger Meier [Sun, 21 Jan 2018 23:04:38 +0000 (00:04 +0100)]
lsns: fix clang compiler warning
../sys-utils/lsns.c:360:8: warning: comparison of integers of different signs: '__u32' (aka 'unsigned int') and 'int' [-Wsign-compare]
if (!(NLMSG_OK(nlh, reslen)
^~~~~~~~~~~~~~~~~~~~~
/usr/include/linux/netlink.h:90:24: note: expanded from macro 'NLMSG_OK'
(nlh)->nlmsg_len <= (len))
~~~~~~~~~~~~~~~~ ^ ~~~
Ruediger Meier [Thu, 15 Feb 2018 20:18:27 +0000 (21:18 +0100)]
build-sys: disable bz2 tarball and fix some am warnings
Nobody needs the .bz2 tarball. We dont't even upload it to
kernel.org.
BTW we fix dozens of these automake warnings:
automake-1.13/am/ltlibrary.am: warning: 'libblkid.la': linking libtool libraries using a non-POSIX
automake-1.13/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
So we can remove -Wno-portability. The only warning left is this
last GNU-make'ism which somebody may fix when reading it:
sys-utils/Makemodule.am:191: warning: addprefix sys-utils/,$(SETARCH_LINKS: non-POSIX variable name
sys-utils/Makemodule.am:191: (probably a GNU make extension)
Makefile.am:90: 'sys-utils/Makemodule.am' included from here
taiyu [Thu, 15 Feb 2018 06:50:36 +0000 (22:50 -0800)]
libsmartcols: fixes issue with 0 width columns
[kzak@redhat.com: - it's possible that column has zero width when
minimal width is reduced due to very small terminal. In this case
make sure that we do not use such column at all.]
Karel Zak [Thu, 15 Feb 2018 10:58:41 +0000 (11:58 +0100)]
libsmartcols: set minimal column width to 1
The default is to use header width or relative width setting as the
minimal column width. The problem are columns where is no header or
relative width. Let's set minimal width to 1 in this case.
Addresses: https://github.com/karelzak/util-linux/pull/577 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Thu, 15 Feb 2018 10:58:41 +0000 (11:58 +0100)]
libsmartcols: interpret zero width for pending data as error
The command
$ column -t -W2 -c11 <<< "cat dog bird"
causes finite loop, because there is no minimal column width (missing
header). The print functions should be robust enough to return -EINVAL
when nonsense is requested.
Addresses: https://github.com/karelzak/util-linux/pull/577 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Fri, 2 Feb 2018 09:05:15 +0000 (10:05 +0100)]
cal: add ifdef TEST_CAL
The test program follows CAL_TEST_TIME=<sec> rather than libc time().
It allows to use cal(1) in regression tests in cases where output
depends on the current time.
Karel Zak [Wed, 31 Jan 2018 10:08:06 +0000 (11:08 +0100)]
Merge branch 'libblkid-atari' of https://github.com/yontalcar/util-linux
* 'libblkid-atari' of https://github.com/yontalcar/util-linux:
libblkid: atari - reject devices with blocksize != 512
libblkid: atari - don't add duplicate entries
libblkid: atari - test if any partition fits disk size
tests: added missing expected outputs for partx (atari)
libblkid: atari - fix bad variable name
tests: added test for libblkid atari pt
libblkid: Support for Atari partitioning scheme