Commit Graph
38979 Commits
Author SHA1 Message Date
Yu Watanabe beeab352de resolve: fix heap-buffer-overflow reported by ASAN with strict_string_checks=1
Fixes #23942.
2022-07-08 22:01:02 +09:00
Lennart Poettering 149e0ca6c7 tmpfiles: correct error variable to use 2022-07-08 10:41:19 +02:00
Lennart Poettering 1ce268c789 namespace: fix propagated error number 2022-07-08 10:40:40 +02:00
Frantisek Sumsal db835e5d0e Merge pull request #23931 from yuwata/systemctl-color-log
systemctl: colorize logs
2022-07-07 13:15:59 +00:00
Jan Janssen b30a43dfd7 boot: Use UEFI protocol struct names
These are somewhat pointless gnu-efi typedefs. Using the names from the
UEFI spec makes things clearer.

The one exception left is EFI_FILE as we use it a lot and
EFI_FILE_PROTOCOL is quite a handful.
2022-07-07 10:43:49 +02:00
Jan Janssen 04f316f0ee boot: Use typedef for PE structs 2022-07-07 10:16:26 +02:00
Jan Janssen 6028dd6d8e boot: Constify PE sections type 2022-07-07 10:08:51 +02:00
Jan Janssen 008f47f139 boot: Use void for base pointer 2022-07-07 10:08:18 +02:00
Jan Janssen 3ed785e591 boot: Use open_volume when creating cpio 2022-07-07 10:06:44 +02:00
Yu Watanabe 557218776e systemctl: drop color settings in log message
`log_warning()` colorize the message gracefully.
2022-07-07 16:40:06 +09:00
Yu Watanabe 158fdd5326 systemctl: enable colorized logging by default 2022-07-07 16:40:06 +09:00
Michal Sekletar e73bf3425c logind: don't start user@UID.service instance for background sessions
We have had background session class for a long time (since commit
e2acb67baa), but so far the only difference in handling of background
sessions was logging, i.e. we log some messages with LOG_DEBUG for such
sessions.

Previously there were complains [1] about excessive logging for each
time cron session is started. We used to advise user to enable lingering
for users if they want to avoid these log messages. However, on servers
with a lot of users the extra processes that result from lingering just
adds too much overhead. Hence I think that our current handling of
background sessions is not ideal and we should make better use of this
attribute.

This commit introduces a change in default behavior of logind. Logind is
now not going to start user instance of systemd when background session
is created and that should address excessive logging problem for cron
where background class is used by default. When the same user actually
logs in normally then user instance will be started as previously.

Also note that PAM_TTY variable is now always set to some value for PAM
sessions started via PAMName= option. Otherwise we would categorize such
sessions as "background" and user manager won't be started.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1825942
2022-07-07 10:10:42 +09:00
Yu Watanabe 99080ed3f0 Merge pull request #23396 from msekletar/fix-idle-action-lock
logind: remember our idle state and use it to detect idle level transitions
2022-07-07 07:42:51 +09:00
Luca Boccassi c235945bd5 Merge pull request #23918 from yuwata/dissect
Revert "dissect: ID from os-release should be non-empty, not just non-NULL"
2022-07-06 21:31:04 +01:00
Thomas Haller da519f8c81 fundamental: adjust #if conditional for _fallthrough_ for clang
NetworkManager takes systemd sources. It gets compiler warnings
related to _fallthrough_. They probably can also affect systemd
itself.

A) on RHEL-7, gcc 4.8.5-44.el7 we get:

    ../src/libnm-systemd-shared/src/fundamental/macro-fundamental.h:45:22: error: "__clang__" is not defined [-Werror=undef]
     #if __GNUC__ >= 7 || __clang__
                          ^

   Presumably gcc older than 7 is supported, so fix this.

B) on Ubuntu 18.04, clang 1:6.0-41~exp5~ubuntu1 we get:

    ../src/libnm-systemd-core/src/libsystemd-network/sd-dhcp6-client.c:746:17: error: declaration does not declare anything [-Werror,-Wmissing-declarations]
                    _fallthrough_;
                    ^
    ../src/libnm-systemd-shared/src/fundamental/macro-fundamental.h:46:25: note: expanded from macro '_fallthrough_'
    #  define _fallthrough_ __attribute__((__fallthrough__))
                            ^

   Granted, README comments that clang >= 10 is required. However,
   parts of systemd build just fine with older clang. It seems unnecessary
   to break this and the fix helps NetworkManager.

Fixes: c0f5d58c9a ('meson: Document why -Wimplicit-fallthrough is not used with clang')
2022-07-06 22:10:23 +02:00
Zbigniew Jędrzejewski-Szmek 132b63bd31 Merge pull request #15205 from jlebon/pr/preset-all-firstboot
manager: optionally, do a full preset on first boot
2022-07-06 19:11:01 +02:00
Yu Watanabe d30d86b7ed dissect: refuse empty release ID 2022-07-06 19:16:24 +09:00
Yu Watanabe 8b2dcbbd00 Revert "dissect: ID from os-release should be non-empty, not just non-NULL"
This reverts commit a2cf73f0b6.

This is not necessary after 78ab2b5064.

Addresses https://github.com/systemd/systemd/pull/23454#discussion_r913611798.
2022-07-06 14:39:54 +09:00
Yu Watanabe 917c6bb4b3 Merge pull request #23916 from keszybz/assorted-patches
Assorted patches
2022-07-06 14:15:50 +09:00
Lennart Poettering 93258c7d72 json: actually use numeric C locale we just allocated
This fixes formatting of JSON real values, and uses C locale for them.
It's kinda interesting that this wasn't noticed before: the C locale
object we allocated was not used, hence doing the dance had zero effect.

This makes "test-varlink" pass again on systems with non-C locale.

(My guess: noone noticed this because "long double" was used before by
the JSON code and that had no locale supporting printer or so?)
2022-07-05 22:14:50 +02:00
Daan De Meyer 977ad21b5b journal: Make sd_journal_previous/next() return 0 at HEAD/TAIL
Currently, both these functions don't return 0 if we're at HEAD/TAIL
and move in the corresponding direction. Let's fix that.

Replaces #23480
2022-07-05 22:13:40 +02:00
Zbigniew Jędrzejewski-Szmek 891fc28b45 tree-wide: drop duplicated semicolons 2022-07-05 21:49:12 +02:00
Lennart Poettering a87af99ef1 Merge pull request #23855 from keszybz/drop-list-is-empty
basic/list: drop LIST_IS_EMPTY
2022-07-05 17:29:53 +02:00
Daan De Meyer 87a3a4a802 firstboot: Don't skip passwd/shadow logic if only one of the files exists
If one of the files exists but not the other one, we want to make sure
we create the other file to make sure the passwd database is in a valid
state.
2022-07-05 17:09:16 +02:00
Lennart Poettering e386a6d69b Merge pull request #23906 from poettering/isdigitisalpha
tree-wide: add global ascii_isalpha() + ascii_isdigit() and use it everywhere
2022-07-05 16:40:39 +02:00
Quentin Deslandes 57f28dee00 machine: switch to BusLocator-oriented helpers
Replace existing sd_bus_x calls with counterparts from bus-locator.h.
2022-07-05 16:40:16 +02:00
Lennart Poettering ff25d3385d tree-wide: add global ascii_isdigit() + ascii_isalpha()
We now have a local implementation in string-util-fundamental.c, but
it's useful at a lot of other places, hence let's give it a more
expressive name and share it across the tree.

Follow-up for: 8d9156660d
2022-07-05 14:25:07 +02:00
Lennart Poettering 82c3a0b74c sd-id128: don't allow chars > f in valid id128 values 2022-07-05 14:23:11 +02:00
Li kunyu aea29a300d tree-wide: Remove the repeated ';' from code (#23901) 2022-07-05 16:06:47 +09:00
nl6720 0e68582323 tree-wide: link to docs.kernel.org for kernel documentation
https://www.kernel.org/ links to https://docs.kernel.org/ for the documentation.
See https://git.kernel.org/pub/scm/docs/kernel/website.git/commit/?id=ebc1c372850f249dd143c6d942e66c88ec610520

These URLs are shorter and nicer looking.
2022-07-04 19:56:53 +02:00
Yu Watanabe 5932c87000 Merge pull request #23886 from keszybz/https-links-kernel
tree-wide: use html links for kernel docs
2022-07-03 00:55:59 +09:00
Zbigniew Jędrzejewski-Szmek 025f1279c7 Merge pull request #23088 from yuwata/udev-event-blocker
udev: cleanups for event blocker
2022-07-02 17:08:45 +02:00
Zbigniew Jędrzejewski-Szmek 7b3b2e5ad6 Merge pull request #23865 from keszybz/drop-memcpy-call
sd-id128: avoid an unnecessary function call in inline helper
2022-07-02 16:59:32 +02:00
Zbigniew Jędrzejewski-Szmek 4b2942aaea Merge pull request #23835 from yuwata/nspawn-private-users-identity
nspawn: follow-ups for --private-users=identity
2022-07-02 12:58:06 +02:00
Zbigniew Jędrzejewski-Szmek c4f2bff121 test-list: rename field to indicate that it's a list
With this commit, lists are generally either names with plural (items),
or in a way that indicates a multi-item container (queue, *_list, or similar).
2022-07-02 12:51:37 +02:00
Zbigniew Jędrzejewski-Szmek eb506199f0 systemctl: rename field for clarity 2022-07-02 12:51:37 +02:00
Zbigniew Jędrzejewski-Szmek d5fe7f7fb1 udev: rename field
When we start, the contents of the variable match the name. But then
in the loop, the variable doesn't point at the old head any more. So let's
rename it to something with a plural.
2022-07-02 12:46:19 +02:00
Zbigniew Jędrzejewski-Szmek ed828563a5 sd-event: rename field to indicate that it's a list 2022-07-02 12:46:19 +02:00
Zbigniew Jędrzejewski-Szmek 0601b95877 sd-event: rename field to indicate that it's a list 2022-07-02 12:46:19 +02:00
Zbigniew Jędrzejewski-Szmek 3f3548f8d2 sd-event: align table 2022-07-02 12:46:19 +02:00
Zbigniew Jędrzejewski-Szmek d70f15f5aa resolved: rename field to indicate that it's a list 2022-07-02 12:46:19 +02:00
Zbigniew Jędrzejewski-Szmek 64903d18df basic/list: drop LIST_IS_EMPTY
This was a trivial wrapper that didn't provide any added value. With more
complicated structures like strvs, hashmaps, sets, and arrays, it is possible
to have an empty container. But in case of a list, the list is empty only when
the head is missing.

Also, we generally want the positive condition, so we replace many
if (!LIST_IS_EMPTY(x)) with just if (x).
2022-07-02 12:46:16 +02:00
Zbigniew Jędrzejewski-Szmek 1474e66a52 homework: silence gcc warning
gcc was warning that found_fs_uuid was used unitialized. The issue stemmed from
the call to open(), where gcc seemingly didn't know that errno must be negative.
When that is set, we can drop some unnecessary initializations without warnings.
2022-07-02 12:39:26 +02:00
Yu Watanabe 0e85550eb5 debug-generator: shorten code a bit 2022-07-02 12:20:14 +02:00
Zbigniew Jędrzejewski-Szmek 2f8211c64a tree-wide: use html links for kernel docs
Instead of using "*.txt" as reference name, use the actual destination title.
2022-07-02 12:13:00 +02:00
Yu Watanabe bffde9b586 core: do not filter out systemd.unit= and run-level specifier from kernel command line
Fixes a bug introduced by 846f1da465.

The commit 846f1da465 made systemd.unit=
filtered out from the command line. That causes debug-generator does not
work as expected on daemon-reexecute, and we cannot call `systemctl
daemon-reexecute` in our test suite running on nspawn.

Fixes issue reported in https://github.com/systemd/systemd/pull/23851#issuecomment-1170992052.
2022-07-02 05:07:23 +09:00
Zbigniew Jędrzejewski-Szmek 55ce4e1bcb sd-journal: silence bogus gcc warning
In function 'sd_id128_equal',
    inlined from 'journal_file_verify' at ../src/libsystemd/sd-journal/journal-verify.c:1047:29:
../src/systemd/sd-id128.h:119:43: error: 'entry_boot_id.qwords[0]' may be used uninitialized [-Werror=maybe-uninitialized]
  119 |         return a.qwords[0] == b.qwords[0] && a.qwords[1] == b.qwords[1];
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/libsystemd/sd-journal/journal-verify.c: In function 'journal_file_verify':
../src/libsystemd/sd-journal/journal-verify.c:823:20: note: 'entry_boot_id.qwords[0]' was declared here
  823 |         sd_id128_t entry_boot_id;
      |                    ^~~~~~~~~~~~~
cc1: all warnings being treated as errors

entry_boot_id is only used when entry_monotonic_set has been set, and that's
only done in one place where entry_boot_id is also initalized.
2022-07-01 13:42:46 +02:00
Yu Watanabe 3daf1f913c journalctl: fix to show user slice
Fixes #23867.
2022-07-01 09:29:16 +01:00
Yu Watanabe 3bdb60055e Merge pull request #23868 from keszybz/lib-resplit-2
Export sd-netlink and clean up exported interfaces a bit
2022-07-01 13:13:42 +09:00
Zbigniew Jędrzejewski-Szmek 9075066955 logind: log wall messages to the journal
Currently kde installs a fake utmp session to listen for this. This provides an
alternative mechanism as discussed in #23574.

Example with 'shutdown 6 -r' and shutdown -c':
    PRIORITY=6
    SYSLOG_FACILITY=4
    SYSLOG_IDENTIFIER=systemd-logind
    ...
    CODE_FILE=src/login/logind-utmp.c
    CODE_LINE=90
    CODE_FUNC=warn_wall
    MESSAGE_ID=9e7066279dc8403da79ce4b1a69064b2
    OPERATOR=root
    MESSAGE=The system will reboot at Thu 2022-06-30 12:16:43 CEST!
    ACTION=reboot

    PRIORITY=5
    SYSLOG_FACILITY=4
    SYSLOG_IDENTIFIER=systemd-logind
    ...
    OPERATOR=root
    CODE_FILE=src/login/logind-dbus.c
    CODE_LINE=2407
    CODE_FUNC=method_cancel_scheduled_shutdown
    MESSAGE=System shutdown has been cancelled
    MESSAGE_ID=249f6fb9e6e2428c96f3f0875681ffa3
    ACTION=reboot
2022-06-30 19:28:41 +01:00