Commit Graph
39372 Commits
Author SHA1 Message Date
Jan Engelhardt 085f826676 rpm: check argument counts for systemd macros
Invoking %systemd_tmpfiles (in %post) without any arguments, while
possible, will cause systemd-tmpfiles to process the entire system
configuration, rather than just the newly installed configuration
files. In https://github.com/systemd/systemd/pull/12048, it was
established that processing everything constitutes unusual practice,
and should be flagged as a mistake at build time.

Furthermore, invoking %systemd_post without any arguments will cause
the underlying `systemctl preset` to outright return an error ("Too
few arguments") when run. This can be flagged during build time in
the same manner.

As I have found no ways to successfully nest %if clauses inside a
macro[1], I am helping myself by reusing the recursive variable
expansion technique pioneered in [2].

Now, when %systemd_post or %systemd_tmpfiles is incorrectly used,
rpm gives accurate line number reporting, too:

	error: This macro requires some arguments
	error: line 11: %{systemd_post}

	error: This macro requires two arguments
	error: line 13: %{tmpfiles_create_package meh more more}

[1] what has been tried: %{expand:%%if "%#" == 0 \\\
    %%{error:you have given me %# args} \\\
    %%endif}

[2] http://git.savannah.gnu.org/cgit/automake.git/commit/?id=e0bd4af16da88e4c2c61bde42675660eff7dff51
2019-03-21 19:01:33 +01:00
Yu Watanabe b239288f72 Merge pull request #11931 from yuwata/condition-test-list
split static condition tests from net_match_config()
2019-03-22 02:30:57 +09:00
Zbigniew Jędrzejewski-Szmek 59b44cc3b1 Merge pull request #12020 from mrc0mmand/test-functions-interactive-debug
test: test-functions improvements for debugging
2019-03-21 18:15:04 +01:00
Lennart Poettering 8d1ee64829 systemctl: make a copy of the "verb" from argv[] before forking off a child 2019-03-21 18:10:06 +01:00
Lennart Poettering a0c6f3cb66 main-func: make sure we destruct memory and stuff last
Let's terminate pagers and agents before releasing all memory.
2019-03-21 18:10:06 +01:00
Lennart Poettering 290cb8e883 systemctl: tiny optimization 2019-03-21 18:10:06 +01:00
Lennart Poettering b1dffbb91b systemctl: add missing OOM check 2019-03-21 18:10:06 +01:00
Lennart Poettering 3483460cb8 systemctl: document argv[] array 2019-03-21 18:10:06 +01:00
Lennart Poettering d86e4c979a systemctl: use saved_argv where we can
No need to have another variable where we keep the original argv[].
Let's juse reuse the one DEFINE_MAIN_FUNCTION() stores for us anyway.
2019-03-21 18:10:06 +01:00
Lennart Poettering 60ffa37a65 main-func: implicitly save argc/argv in DEFINE_MAIN_FUNCTION() functions
Let's remove the risk of forgetting to save argc/argv if
DEFINE_MAIN_FUNCTION() is used.
2019-03-21 18:10:06 +01:00
Lennart Poettering 36fea15565 util: introduce save_argc_argv() helper 2019-03-21 18:08:56 +01:00
Lennart Poettering c82cfae00b Merge pull request #12062 from poettering/nspawn-main-func
nspawn: port to DEFINE_MAIN_FUNCTION()
2019-03-21 18:08:27 +01:00
Yu Watanabe bb9683e096 network: fix netdev_tunnel_verify()
Fixes #12041.
2019-03-22 01:47:38 +09:00
Zbigniew Jędrzejewski-Szmek bb068de080 nspawn: add --no-pager switch
It only matters for --help.
2019-03-21 17:42:43 +01:00
Zbigniew Jędrzejewski-Szmek 9dd6ccf7c0 Merge pull request #12014 from poettering/systemctl-exit-fix
systemctl fallback error propagation fix
2019-03-21 17:37:09 +01:00
Zbigniew Jędrzejewski-Szmek 05a8a7a0fb Merge pull request #12052 from poettering/systemctl-fixlets
systemctl refactorings
2019-03-21 17:33:44 +01:00
Zbigniew Jędrzejewski-Szmek c8c194a982 Merge pull request #12057 from poettering/chown-tty
chown TTY back to root:tty after a service terminates that used them
2019-03-21 17:31:19 +01:00
Lennart Poettering 04f590a4a4 nspawn: voidify sd_notify() calls 2019-03-21 16:32:46 +01:00
Lennart Poettering 6145bb4f78 nspawn: port to static destructors 2019-03-21 16:32:46 +01:00
Lennart Poettering 44dbef90f1 nspawn: port to main-func.h logic 2019-03-21 16:32:46 +01:00
Yu Watanabe d689bbcaa3 man: mention that conditions in [Match] section support negation 2019-03-21 23:38:51 +09:00
Yu Watanabe 1cdca39752 man: use literal tag 2019-03-21 23:38:51 +09:00
Yu Watanabe c4f58deab5 network,udev: split static condition tests from net_match_config() 2019-03-21 23:37:39 +09:00
Yu Watanabe 2bd0da7a05 network: drop unnecessary strdup() 2019-03-21 23:37:39 +09:00
Yu Watanabe f9f88198ce core/unit: use condition_test_list() 2019-03-21 23:37:39 +09:00
Yu Watanabe 828fa6108b condition: introduce condition_test_list() 2019-03-21 23:37:39 +09:00
Yu Watanabe f6d6d53237 log: expose log_object_internalv() 2019-03-21 23:37:39 +09:00
Zbigniew Jędrzejewski-Szmek fa28e4e377 Merge pull request #12059 from poettering/nspawn-typos
some typo and other fixes result of the OCI nspawn merge
2019-03-21 15:14:11 +01:00
Zbigniew Jędrzejewski-Szmek b1de39dec8 man: make separate "Errors" sections subsection of "Return value"
Logically, this is better, because we're describing a subset of possible
return values. Visually this also looks quite good because groff renders
refsect2 much less prominently.

Also rewrap things, add <constant> in various places, fix some typos.
2019-03-21 14:53:00 +01:00
Zbigniew Jędrzejewski-Szmek 6d99c5d1d9 man: document error values for sd_id128_get_*() 2019-03-21 14:13:02 +01:00
Lennart Poettering c3d13d2ad5 Merge pull request #12058 from keszybz/oci-simplifications
Follow-ups for nspawn-oci review
2019-03-21 13:55:09 +01:00
Lennart Poettering f4e803c809 nspawn: add a few missing flags from --help text 2019-03-21 13:31:09 +01:00
Lennart Poettering d99058c979 man: adjust nspawn man page to follow same section/order as --help text
No other changes, just some reshuffling and adding of section headers
(well, admittedly, I changed some "see above" and "see below" in the
text to match the new order.)
2019-03-21 13:27:48 +01:00
Lennart Poettering 2514865391 nspawn: reorder --help text, and add section
The list is so long, let's add a bit of structure and order things a
bit.
2019-03-21 13:27:19 +01:00
Lennart Poettering 2c9b7a7e62 mount: when we fail to establish an inaccessible mount gracefully, undo the mount 2019-03-21 12:41:02 +01:00
Lennart Poettering 74b6ce90a0 capability: add a test that fails if we ever enter > 64bit capability territory 2019-03-21 12:38:18 +01:00
Lennart Poettering 46eda04373 capability: also cap CAP_LAST_CAP at 63 2019-03-21 12:37:30 +01:00
Lennart Poettering 664ff517d3 capability: typo fix 2019-03-21 12:31:36 +01:00
Lennart Poettering 246bb37044 capability: use UINT64_C() where appropriate 2019-03-21 12:31:29 +01:00
Lennart Poettering bff749416e capability: minimize scope of a few variables 2019-03-21 12:31:14 +01:00
Lennart Poettering 15ce3f2664 capability: minor coding style updates 2019-03-21 12:30:49 +01:00
Lennart Poettering d09a25855f capability: add missing ')'
As pointed out by @polarina

https://github.com/systemd/systemd/commit/d0b6a10c005ab1fff44d032be995e3f2bcfba225#commitcomment-32857641
2019-03-21 12:29:18 +01:00
Zbigniew Jędrzejewski-Szmek c924888ffd sd-id128: look for invocation id in environment first, keyring second
As general principle, we generally check command line args first, the
enviroment second, and external configuration and system state only later.
In case of the invocation ID, checking the keyring before the environment
was implemented as a poor-man's security measure. But this is not really
useful, since we're moving within the same security boundary. So let's just
do the expected thing, and check environment first.

Prompted by https://github.com/systemd/systemd/pull/11991#issuecomment-474647652.
2019-03-21 12:06:15 +01:00
Zbigniew Jędrzejewski-Szmek 6757a01356 util-lib: get rid of a helper variable 2019-03-21 11:08:58 +01:00
Zbigniew Jędrzejewski-Szmek f1531db5af nspawn-oci: add helper function for free_and_strdup with oom check 2019-03-21 11:08:58 +01:00
Zbigniew Jędrzejewski-Szmek d0b6a10c00 Merge pull request #9762 from poettering/nspawn-oci
OCI runtime support for nspawn
2019-03-21 11:01:53 +01:00
Zbigniew Jędrzejewski-Szmek 19130626a0 nspawn-oci: use SYNTHETIC_ERRNO 2019-03-21 10:51:43 +01:00
Lennart Poettering 13fbfc3013 update TODO 2019-03-20 21:49:33 +01:00
Lennart Poettering 6f765baf23 core: rework how we reset the TTY after use by a service
This makes two changes:

1. Instead of resetting the configured service TTY each time after a
   process exited, let's do so only when the service goes back to "dead"
   state. This should be preferable in case the started processes leave
   background child processes around that still reference the TTY.

2. chmod() and chown() the TTY at the same time. This should make it
   safe to run "systemd-run -p DynamicUser=1 -p StandardInput=tty -p
   TTYPath=/dev/tty8 /bin/bash" without leaving a TTY owned by a dynamic
   user around.
2019-03-20 21:28:02 +01:00
Lennart Poettering 6c0ae73956 execute: split check if we might touch a tty out of exec_context_may_touch_console()
Some simple refactoring that'll come handy in a later commit.
2019-03-20 21:20:00 +01:00