Commit Graph

31666 Commits

Author SHA1 Message Date
Félix Baylac-Jacqué 15d1e0badf
wip 2021-01-10 22:45:49 +01:00
Luka Kudra a95e930685
network: register callback for dhcp server (#18146)
Setting dhcp_server_callback is needed in order to get an event when dhcp
leases change.

The callback was introduced by 38ee31a6e4,
but never used.
2021-01-10 14:36:07 +09:00
Lennart Poettering 1ea9580d8f
Merge pull request #18183 from poettering/arg-json-rework
--json= argument rework in various tools
2021-01-09 21:52:56 +01:00
Lennart Poettering 84319c5c07 test-xattr-util: don't insist that /usr supports xattrs
(apparently overlayfs has issues with xattrs, hence don't require that
/usr supports xattrs)
2021-01-09 21:31:25 +01:00
Lennart Poettering 923d37c64a busctl: port busctl to JSON_FORMAT_OFF too
This is a bit more complex, since busctl's JSON code predates json.c and
was only minimally updated sofar.
2021-01-09 17:36:28 +01:00
Lennart Poettering 6a01ea4a2f json: port various tools to the new JSON_FORMAT_OFF flag
These are the obvious cases.
2021-01-09 17:36:24 +01:00
Lennart Poettering b95a05d014 json: add generic cmdline parser for --json= switch 2021-01-09 17:36:11 +01:00
Lennart Poettering 10d7126365 json: add new json format flag for disabling JSON output
This adds a new flag JSON_FORMAT_OFF that is a marker for "no JSON
output please!".

Of course, this flag sounds pointless in a JSON implementation, however
this is useful in code that can generate JSON output, but also more
human friendly output (for example our table formatters).

With this in place various tools that so far maintained one boolean
field "arg_json" that controlled whether JSON output was requested at
all and another field "arg_json_format_flags" for selecing the precise
json output flags may merge them into one, simplifying code a bit.
2021-01-09 17:35:58 +01:00
Luca Boccassi 28abf5ad34 bpf: zero bpf_attr before initialization
When building with Clang and using structured initialization, the
bpf_attr union is not zero-padded, so the kernel misdetects it as
an unsupported extension.
zero it until Clang's behaviour matches GCC. Do not skip the test
on Github Actions anymore.
2021-01-09 17:35:38 +01:00
Lennart Poettering 02dcf21571 machine-image: pick up crtime of directory images, too 2021-01-09 15:56:03 +01:00
Lennart Poettering c21087014e machine-image: use structured initialization 2021-01-09 15:48:33 +01:00
Zach Smith ae463e4ef2 systemd-sleep: Set SYSTEMD_SLEEP_ACTION for systemd-sleep hooks.
When suspend-then-hibernate is called, hooks have no ability to determine which
stage of the request is being handled; they only see 'pre' and 'post' with the
verb 'suspend-then-hibernate'. This change introduces an environment variable
called SYSTEMD_SLEEP_ACTION that contains the name of the action that is
processing: 'suspend', 'hibernate', 'hybrid-sleep', or
'suspend-after-failed-hibernate'.
2021-01-09 18:11:01 +09:00
Yu Watanabe 83f0ff1eda
Merge pull request #18137 from keszybz/deprecate-blanket-import-environment
Deprecate blanket import-environment
2021-01-09 09:24:16 +09:00
Yu Watanabe 66bf4617b1
Merge pull request #18169 from OnkelUlla/can_bus_error_reporting
network: can: add support for bus error reporting
2021-01-09 09:21:54 +09:00
Yu Watanabe 608ac76367
Merge pull request #18168 from yuwata/network-cleanups
network: several follow-ups for recently merged PRs
2021-01-09 09:21:19 +09:00
Ulrich Ölmann 77b674049b network: can: add support for bus error reporting
Enhance systemd-networkd to be able to control a CAN device's berr-reporting
flag via the new boolean directive BusErrorReporting= to be used in network
files.
2021-01-08 20:23:12 +01:00
Ulrich Ölmann 3757912db4 network: can: pretty up debug messages
Do not construct the english words "Enabling"/"Disabling" but use one of the
smart helper functions here.
2021-01-08 20:21:59 +01:00
Zbigniew Jędrzejewski-Szmek 32854f7044 systemctl: deprecate blanket import-environment
Importing the full environment is convenient, but it doesn't work too well in
practice, because we get a metric ton of shell-specific crap that should never
end up in the global environment block:

$ systemctl --user show-environment
...
SHELL=/bin/zsh
AUTOJUMP_ERROR_PATH=/home/zbyszek/.local/share/autojump/errors.log
AUTOJUMP_SOURCED=1
CONDA_SHLVL=0
CVS_RSH=ssh
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=gnome
DISPLAY=:0
FPATH=/usr/share/Modules/init/zsh-functions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/5.8/functions
GDMSESSION=gnome
GDM_LANG=en_US.UTF-8
GNOME_SETUP_DISPLAY=:1
GUESTFISH_INIT=$'\\e[1;34m'
GUESTFISH_OUTPUT=$'\\e[0m'
GUESTFISH_PS1=$'\\[\\e[1;32m\\]><fs>\\[\\e[0;31m\\] '
GUESTFISH_RESTORE=$'\\e[0m'
HISTCONTROL=ignoredups
HISTSIZE=1000
LOADEDMODULES=
OLDPWD=/home/zbyszek
PWD=/home/zbyszek
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
QT_IM_MODULE=ibus
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2612,unix/unix:/tmp/.ICE-unix/2612
SHLVL=0
STEAM_FRAME_FORCE_CLOSE=1
TERM=xterm-256color
USERNAME=zbyszek
WISECONFIGDIR=/usr/share/wise2/
...

Plenty of shell-specific and terminal-specific stuff that have no global
significance.

Let's start warning when this is used to push people towards importing only
specific variables.

Putative NEWS entry:
  * systemctl import-environment will now emit a warning when called without
    any arguments (i.e. to import the full environment block of the called
    program). This command will usually be invoked from a shell, which means
    that it'll inherit a bunch of variables which are specific to that shell,
    and usually to the tty the shell is connected to, and don't have any
    meaning in the global context of the system or user service manager.
    Instead, only specific variables should be imported into the manager
    environment block.

    Similarly, programs which update the manager environment block by directly
    calling the D-Bus API of the manager, should also push specific variables,
    and not the full inherited environment.
2021-01-08 20:01:40 +01:00
Luca Boccassi bde8c2cc1a
Merge pull request #18128 from mrc0mmand/coverity
ci: move jobs from Travis CI to GitHub Actions
2021-01-08 18:11:55 +00:00
Yu Watanabe 0c2c0fd256 resolve: fix use after free in DnsAnswer
This fixes a bug introduced by ae45e1a383.

The set DnsAnswer::set_items contains the reference to the array in
DnsAnswer. So, the set must be reconstructed when we realloc() the
object.

Fixes #18132.
2021-01-08 19:06:00 +01:00
Ulrich Ölmann 6ed6c4780f network: can: simplify usage of booleans
Harmonize with what is done for TripleSampling, Termination & ListenOnly.
2021-01-08 18:42:34 +01:00
Yu Watanabe f7d0ea5b6f network: refuse to set 0 for rx or tx queue
Man page says that the valid value is 1-4096.
2021-01-09 00:05:45 +09:00
Yu Watanabe 386e89083f network: read RTAX_ADVMSS in received route message 2021-01-08 23:56:13 +09:00
Yu Watanabe 78ebbf0286 network: add missing TAKE_PTR() 2021-01-08 23:25:20 +09:00
Yu Watanabe a084b38789 udev/cdrom: split main() into main() and run()
However, we do not use DEFINE_MAIN_FUNCTION() here, as ubuntu s390x CI
does not like it...
2021-01-08 14:08:38 +00:00
Yu Watanabe 2131110553 udev/cdrom: drop unnecessary headers 2021-01-08 14:08:38 +00:00
Yu Watanabe 2af5ad50d1 udev/cdrom: drop never hit condition 2021-01-08 14:08:38 +00:00
Yu Watanabe 0dd6189f8c udev/cdrom: void()ify several function calls 2021-01-08 14:08:38 +00:00
Yu Watanabe 80cb2a69ec udev/cdrom: tighten variable scope used in loop 2021-01-08 14:08:38 +00:00
Yu Watanabe 67e5bc0be9 udev/cdrom: use unaligned_read_be32() or friends 2021-01-08 14:08:38 +00:00
Yu Watanabe 866725e8aa udev/cdrom: split cd_media_info() into small pieces 2021-01-08 14:08:38 +00:00
Yu Watanabe 530a715ea9 udev/cdrom: introduce enum for media state 2021-01-08 14:08:38 +00:00
Yu Watanabe 97b2248475 udev/cdrom: move media status to Context 2021-01-08 14:08:38 +00:00
Yu Watanabe 38f3e20883 udev/cdrom: introduce enum for media and drive feature 2021-01-08 14:08:38 +00:00
Yu Watanabe e5aac5cdf1 udev/cdrom: introduce Context 2021-01-08 14:08:38 +00:00
Yu Watanabe 0f0b079135 udev/cdrom: make cd_profiles() return positive value if drive has media 2021-01-08 14:08:38 +00:00
Yu Watanabe 138dd9545a udev/cdrom: make media_lock() return negative errno 2021-01-08 14:08:38 +00:00
Yu Watanabe 4fe9ab406e udev/cdrom: introduce scsi_cmd_run_and_log() 2021-01-08 14:08:38 +00:00
Yu Watanabe 511ff06e99 udev/cdrom: use random_u64() and usleep() 2021-01-08 14:08:38 +00:00
Yu Watanabe 56c1a2977b udev/cdrom: split out parse_argv() and help() 2021-01-08 14:08:38 +00:00
Susant Sahani 007cac09a2 network: route - add support to configure tcp advmss 2021-01-08 14:06:13 +00:00
Frantisek Sumsal d1b74295e8 test: temporarily skip failing tests on GH Actions 2021-01-08 11:37:01 +01:00
Jan Tojnar 60bce7c6d9 pkg-config: make prefix overridable again
While we don't support prefix being != /usr, and this is hardcoded
all over the place, variables in pkg-config file are expected
to have overridable base directory.

This is important for at least the following two use cases:

- Installing projects to non-FHS package-specific prefixes for Nix-style
  package managers. Of course, it is then their responsibility
  to ensure systemd can find the service files.
- Installing to local path for development purposes.
  This is a compromise between running a program from a build directory,
  and running it fully installed to system prefix.

You will not want to write to system prefix in either case.

For more information, see also
https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/

Fixes https://github.com/systemd/systemd/issues/18082

Partially reverts 6e65df89c3
2021-01-07 15:28:21 +01:00
Lennart Poettering 15308e5083 stat-util: don't try to open path on path_is_temporary_fs()
I mean, the old code at least used O_PATH, but still, we shouldn't
allocate/close an fd if we don't have to.
2021-01-06 23:26:08 +00:00
Lennart Poettering 8b1ac00fa9
Merge pull request #18150 from poettering/strextend-tweak
tree-wide: beef up strextend() a bit
2021-01-06 19:55:29 +01:00
Luca Boccassi bf3b428f73 systemctl: have is-enabled return success for aliases when calling into pid1 too
commit 15d7ab87c4 introduced the
change to add an 'alias' state, but it was wired to systemctl
only when running in 'client-side' mode. Return success as
expected and documented also when running in 'server-mode'.

Fixes https://github.com/systemd/systemd/issues/18134
2021-01-06 17:39:18 +01:00
Lennart Poettering 2a4e1fd0d4 string-util: use GREEDY_ALLOC_ROUND_UP() in strextend()
This uses GREEDY_ALLOC_ROUND_UP() to grow the allocation size
exponentially. This should speed allocation loops up a bit, given
that we often call strextend() repeatedly in a loop on the same
buffer.
2021-01-06 17:25:12 +01:00
Lennart Poettering c2bc710b24 string-util: imply NULL termination of strextend() argument list
The trailing NULL in the argument list is now implied (similar to
what we already have in place in strjoin()).
2021-01-06 17:24:46 +01:00
Luca Boccassi 3c2c8e62c9 cryptsetup: use crypt_token_max if available
New API added upstream:

8a12f6dc2c
2021-01-05 12:16:07 +00:00
Susant Sahani 0a9fb9bad8 network: Allow to set device's receive queues and transmit queues 2021-01-05 12:46:28 +09:00