Karel Zak [Wed, 24 Mar 2021 11:43:17 +0000 (12:43 +0100)]
libsmartcols: introduce default sort column
* add default sort column, set by scols_sort_table()
* sort tree according to default sort column also in scols_sort_table_by_tree()
The function scols_sort_table() does not sort tree branches if tree
is not enabled. The function scols_sort_table_by_tree() does not care
if tree is enabled and it always follows parent->child relations. For
scols_sort_table_by_tree() we need to follow order in branches if
previously scols_sort_table() has been called.
Asciidoc: Some more man page formatting improvements
Besides some formatting tweaks, I've changed »lsblk(1)« into »lsblk(8)«
in the SEE ALSO section of mount.8.adoc. At least Archlinux and Debian
ship lsblk as a system administration command.
Hannes Müller [Wed, 17 Mar 2021 19:42:11 +0000 (20:42 +0100)]
more: fix ARROW_DOWN and PAGE_DOWN behaviour to not skip lines
Currently ARROW_DOWN and PAGE_DOWN is bound to command 's' (skip lines).
But this behaviour is not what the user expects, since at least one line
is always missing! Furthermore at the end of the file there is typically
this skipping lines message, if the remainder does not fit in a
complete screen. This conflicts also with e.g. less and man PAGE_DOWN
behaviour. The 'natural' behaviour is binding to
more_kc_jump_lines_per_screen.
If more is extended to also jump only a specific number of lines forward,
this would be even a better binding for ARROW_DOWN.
The whole thing is complicated by the fact that we have two layers
of libraries: e.g. libmount also needs libblkid. If we just tell meson
to make libmount static, this is not enough, because we also need it
to link to a static libblkid. Hence in the case of libs that link to
other libs internally, we need to create a different object with a
a different set of link_with items.
To avoid building the libraries twice, libfdisk and libmount are first
built into an internal "convenience" library, which is then linked into
the static and shared versions as appropriate.
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
Karel Zak [Wed, 17 Mar 2021 11:46:22 +0000 (12:46 +0100)]
tests: update build test results
Update as usually before release to see differences (on Fedora 33).
- static programs are not enabled by tools/config-gen.d/all.conf
anymore (see 63f4e199287c6b2cfbb092f1e2b0f0a3e0e576e3)
- add new uclampset
- libdl and libpython3 seems unnecessary
- fdformat disabled by default
- new hardlink uses libpcre2-posix
Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
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>