Karel Zak [Mon, 15 Mar 2021 15:22:20 +0000 (16:22 +0100)]
Merge branch 'extra_ltlibraries' of https://github.com/bluca/util-linux
* 'extra_ltlibraries' of https://github.com/bluca/util-linux:
Automake: install uuidgen bash completion only if it is built
Automake: use EXTRA_LTLIBRARIES instead of noinst_LTLIBRARIES
Luca Boccassi [Mon, 15 Mar 2021 12:16:08 +0000 (12:16 +0000)]
Automake: use EXTRA_LTLIBRARIES instead of noinst_LTLIBRARIES
noinst_LTLIBRARIES causes the libraries to be always built
unconditionally. EXTRA_LTLIBRARIES causes them to be built
only if other build target needs them.
In other words, avoid building libcommon.a and libtcolors.a
unless they are needed by another library/executable and
save some build time.
Karel Zak [Mon, 1 Mar 2021 15:50:20 +0000 (16:50 +0100)]
dmesg: fix and cleanup --read-clear
The function read_buffer() implements read and clear functionally, but
we do not differentiate between these actions in main() for error
messages, and one generic "dmesg: read kernel buffer failed" is used
in all cases. That's a bug.
This patch removes the "clear" action from read_buffer() and keeps it
for buffer reading only. The "clear" action is implemented in main()
by separate klogctl(SYSLOG_ACTION_CLEAR) for cases. It means also for
"dmesg --read-clear"; we do not use SYSLOG_ACTION_READ_CLEAR anymore.
In old versions "dmesg --syslog --read-clear" (syalog backed) was
implemented by logctl(SYSLOG_ACTION_READ_CLEAR) and it returns no
data for non-root users (due to EPERM), "dmesg --read-clear" (kmsg)
returns data and EPERM for the "clear" action.
Now the command "dmesg --syslog --read-clear" and "dmesg --read-clear"
behaves in the same way -- returns data and EPERM for the "clear"
action.
Fixes: https://github.com/karelzak/util-linux/issues/1255 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Thu, 4 Feb 2021 09:42:53 +0000 (10:42 +0100)]
hardlink: replace with code from Debian
The current version used in util-linux is based on original code from
Jakub Jelinek.
The new version is based on Debian implementation from
https://salsa.debian.org/jak/hardlink. This new version uses nftw()
to walk on directories tree and organize internal data binary tree
(tsearch() and twalk()). This new version provides more features like
--ignore-{mode,owner,time}, --respect-xattrs, --respect-name,
--include, --keep-oldest, --minimize, --maximize, etc.
Note that the new version uses -f for --respect-name, the old version
uses -f to hardlinking across filesystems (very probably rarely unused
feature).
Addresses: https://github.com/karelzak/util-linux/issues/808 Signed-off-by: Karel Zak <kzak@redhat.com>
Sami Loone [Tue, 9 Feb 2021 09:46:36 +0000 (10:46 +0100)]
agetty: tty eol defaults to REPRINT
Adapting tty eol settings from defaults misbehaves as CTRL('r') aka
REPRINT is confused with CR. Consequently --skip-login does not set
tty CR<->NL translations and thus acts against advertised CR as eol
default.
[kzak@redhat.com:
It seems this issue has been introduced by commit f566447 where we
merged sulogin and agetty terminal initialization together to the file
include/ttyutils.h.
The original agetty has really used .eol=13 (aka CR) for the default.
The problem is invisible for sulogin(1) because it always asks for a
password and .eol= is set to NL/CR, the same agetty when it asks for
username.]
Addresses: https://github.com/karelzak/util-linux/pull/1247 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Fri, 5 Feb 2021 09:29:26 +0000 (10:29 +0100)]
Merge branch 'gh-actions-bionic' of https://github.com/mrc0mmand/util-linux
* 'gh-actions-bionic' of https://github.com/mrc0mmand/util-linux:
ci: run the build test for each pull request
ci: build both w/ and w/o sanitizers on GH Actions
ci: code cleanup
ci: deal with uninstrumented binaries using instrumented libs
text-utils: correctly detect ASan under clang
ci: use the correct compiler version
ci: 'downgrade' Ubuntu version to Bionic
Karel Zak [Wed, 3 Feb 2021 13:45:15 +0000 (14:45 +0100)]
login: use full tty path for PAM_TTY
pam_set_item() man page:
PAM_TTY
The terminal name: prefixed by /dev/ if it is a device file;
for graphical, X-based, applications the value for this item
should be the $DISPLAY variable.
It seems for example pam_timestamp module is not robust enough to
differentiate between /dev/ and pty/0 and it assumes that '/' in the
path always means '/dev/' prefix ...
Fixes: https://github.com/karelzak/util-linux/issues/1242 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Wed, 3 Feb 2021 13:45:15 +0000 (14:45 +0100)]
su: use full tty path for PAM_TTY
pam_set_item() man page:
PAM_TTY
The terminal name: prefixed by /dev/ if it is a device file;
for graphical, X-based, applications the value for this item
should be the $DISPLAY variable.
It seems for example pam_timestamp module is not robust enough to
differentiate between /dev/ and pty/0 and it assumes that '/' in the
path always means '/dev/' prefix ...
Fixes: https://github.com/karelzak/util-linux/issues/1242 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Tue, 2 Feb 2021 15:32:51 +0000 (16:32 +0100)]
build-sys: cleanup uclampset dependencies
chrt requires sched_setattr() or sched_setscheduler(), the both is
covered by have_schedsetter variable in ./configure.ac. This variable
is useless for uclampset, because it requires sched_setattr(). Let's
make it more explicit for uclampset.
Karel Zak [Tue, 2 Feb 2021 15:53:50 +0000 (16:53 +0100)]
Merge branch 'uclampset-v3' of https://github.com/qais-yousef/util-linux
* 'uclampset-v3' of https://github.com/qais-yousef/util-linux:
uclampset: Plumb in bash-completion
uclampset: Plump into the build system
uclampset: Add man page
Add uclampset schedutil
Move sched_attr struct and syscall definitions into header file