Commit Graph
100 Commits
Author SHA1 Message Date
Luca Boccassi 58270534bf Merge pull request #22923 from poettering/userns-check-refactor
virt: minor running_in_userns() modernizations
2022-03-31 22:11:03 +01:00
Luca Boccassi 8c70e8024b NEWS: specify that public headers are still C89 2022-03-29 21:54:01 +01:00
Luca Boccassi 7503fbd4a6 NEWS: mention that C11 is now used 2022-03-29 21:52:21 +01:00
Luca Boccassi b586cbdefc NEWS: mention kernel requirement change 3.13 -> 3.15 2022-03-29 17:22:30 +01:00
Luca Boccassi 2350712e32 portable: allow reattaching when one image has a version and the other does not
A reattach might go from img.raw to img_0.1.raw or viceversa, but this is
not allowed right now as we try to match the full name.

Also take into account that running strcspn(a, '/') on an image name, without
leading path, will return the length of the full string, but the versions
might be different so they won't match, eg:

img_0.1.raw -> 12
img_0.1.1.raw -> 14

So adjust the check to take that into account, and skip it if we are not
dealing with directories
2022-03-29 14:02:48 +01:00
Luca Boccassi 505df87ea8 docs: use native type instead of byte stream in COREDUMP_PACKAGE_METADATA
The first three fields of a note are binary, so they are subject to
flipping due to endianess. Instead of a stream of bytes, just use
the native 4-bytes type so that it gets encoded automatically.

Implemented in the tools via: https://github.com/systemd/package-notes/pull/31
2022-03-28 14:19:42 +02:00
Luca Boccassi d13ce742e1 Merge pull request #22834 from yuwata/network-sriov-request-queue
network: sriov: use request queue
2022-03-26 19:12:42 +00:00
Luca Boccassi 6b72105a78 portable: clarify error when detach fails to match to existing unit
Clarify that it's looking at attached units, not at units inside the referenced
image. Also take into account extensions.
2022-03-26 11:20:39 +00:00
Luca Boccassi f72f802118 update NEWS
Fix typo and list all user session settings that now are documented
to work
2022-03-24 22:46:14 +00:00
Luca Boccassi a8c122c4cb NEWS: adjust MONITOR_ env vars paragraph
This actually never shipped in a release, so it's not a backward-incompatible
change. Move it down and reword it.
2022-03-22 23:03:23 +00:00
Luca Boccassi 961758c750 Merge pull request #22821 from poettering/udev-tweaklets
Udev tweaklets
2022-03-22 20:17:38 +00:00
Luca Boccassi 94c17d67be Merge pull request #22808 from poettering/openat-report-newly
journal: add openat() wrapper that reports file creation, and use it in journal
2022-03-21 21:56:37 +00:00
Luca Boccassi a557e61993 Merge pull request #22804 from mrc0mmand/test-tweaks
A couple of TEST-69 tweaks
2022-03-21 20:05:06 +00:00
Luca Boccassi 7659e52397 Merge pull request #22798 from keszybz/test-output-narrow-and-timeouts
Increase timeout for a flaky test and make test names shorter to avoid line wrapping in output
2022-03-21 14:13:22 +00:00
Luca Boccassi 02036ca7e9 Merge pull request #22799 from keszybz/man-spelling-and-crosslinks
Typos and more internal links in documentation
2022-03-21 13:40:03 +00:00
Luca Boccassi 1219bd4306 Add tests and documentation for all remaining sandboxing in user manager 2022-03-18 10:09:56 +01:00
Luca Boccassi 4355c04fef core: insist on sandboxing if ExtensionImages/Directories are configured
Same as other image mounting in the namespace
2022-03-18 10:02:47 +01:00
Luca Boccassi 3e6f89e013 Merge pull request #22774 from poettering/nspawn-uidmap-fix
nspawn: uidmap mount fix
2022-03-17 21:59:29 +00:00
Luca Boccassi 3b1276c28b Merge pull request #22746 from yuwata/home-cleanups
home: two cleanups
2022-03-15 22:44:58 +00:00
Luca Boccassi 2979c852a4 Merge pull request #22757 from DaanDeMeyer/bpf-error
BPF error logging improvements
2022-03-15 22:42:48 +00:00
Luca Boccassi 629c1cdf03 Merge pull request #22730 from GeorgesStavracas/gbsneto/multimedia-stream-deck
Add AV production devices to hwdb
2022-03-14 23:40:51 +00:00
Luca Boccassi e9c3312da1 Merge pull request #22727 from fbuihuu/journald-preserve-acl-when-rotating
Journald preserve acl when rotating
2022-03-14 20:39:14 +00:00
Luca Boccassi 1627f158fc Merge pull request #22463 from poettering/kernel-install-propagate-machine-id
kernel-install: clean-up machine-id handling
2022-03-12 17:17:28 +00:00
Luca Boccassi 9c9a6123d7 Merge pull request #22714 from mrc0mmand/codeql-docs
A couple of doc updates
2022-03-11 19:03:38 +00:00
Luca Boccassi 1bd29614ff Merge pull request #22631 from yuwata/network-redesign-request-queue
network: re-design request queue
2022-03-11 10:48:45 +00:00
Luca Boccassi 0d3c36641d Merge pull request #22701 from poettering/raise-memlock
pid1/nspawn: raise RLIMIT_MEMLOCK to 8M matching kernel 5.16's new default
2022-03-11 01:09:33 +00:00
Luca Boccassi bed1f67874 Merge pull request #22705 from mrc0mmand/pretty_hostname_specifier
core: introduce %R specifier for pretty hostname
2022-03-10 21:45:34 +00:00
Luca Boccassi 24759d8f08 core: support ExtensionDirectories in user manager
Unprivileged overlayfs is supported since Linux 5.11. The only
change needed to get ExtensionDirectories to work is to avoid
hard-coding the staging directory to the system manager runtime
directory, everything else just works (TM).
2022-03-10 20:38:10 +00:00
Luca Boccassi a8c5363ba9 Merge pull request #22682 from bluca/start_skip
core: do not return 'skipped' when Condition*= fail with StartUnitWithFlags()
2022-03-10 17:25:44 +00:00
Luca Boccassi e2cb73c946 Merge pull request #22695 from poettering/crash-handle-refactor
pid1: add comment clarifying not to use memory allocation from crash handler
2022-03-10 16:42:50 +00:00
Luca Boccassi 3fbd5f2007 NEWS: note backward-incompatible MONITOR_METADATA change 2022-03-10 14:43:14 +00:00
Luca Boccassi c19c4ab148 test: cover template OnFailure/OnSuccess handlers in TEST-68-PROPAGATE-EXIT-STATUS 2022-03-10 14:43:14 +00:00
Luca Boccassi 95c81c55b2 core: split $MONITOR_METADATA and return it only if a single unit triggers OnFailure/OnSuccess
Remove the list logic, and simply skip passing metadata if more than one
unit triggered an OnFailure/OnSuccess handler.
Instead of a single env var to loop over, provide each separate item
as its own variable.

Fixes https://github.com/systemd/systemd/issues/22370
2022-03-10 14:43:14 +00:00
Luca Boccassi 169bb1dee9 NEWS: note backward-incompatible change in StartUnitWithFlags() 2022-03-10 13:18:28 +00:00
Luca Boccassi ee3ae55e75 core: do not return 'skipped' when Condition*= fail with StartUnitWithFlags()
Backward incompatible change to avoid returning 'skipped' if a condition causes
a job activation to be skipped when using StartUnitWithFlags().
Job results are broadcasted, so it is theoretically possible that existing
software could get confused if they see this result.

Replaces https://github.com/systemd/systemd/pull/22369
2022-03-10 13:16:21 +00:00
Luca Boccassi bd844eae23 Merge pull request #22685 from bluca/user_root_dir
core: support MountAPIVFS and RootDirectory in user manager
2022-03-10 13:12:19 +00:00
Luca Boccassi ea63a260d4 core: support MountAPIVFS and RootDirectory in user manager
The only piece missing was to somehow make /proc appear in the
new user+mount namespace. It is not possible to mount a new
/proc instance, not even with hidepid=invisible,subset=pid, in
a user namespace unless a PID namespace is created too (and also
at the same time as the other namespaces, it is not possible to
mount a new /proc in a child process that creates a PID namespace
forked from a parent that created a user+mount namespace, it has
to happen at the same time).

Use the host's /proc with a bind-mount as a fallback for this
case. User session services would already run with it, so
nothing is lost.
2022-03-10 10:21:03 +00:00
Luca Boccassi 4c0ab40ab8 test: set log level of user manager in TEST-43 to debug 2022-03-09 02:08:25 +00:00
Luca Boccassi 3ebf0b0bd4 core: create parent directory for mount point of ExtensionDirectories
This is used by ExtensionDirectories too, as they are bind-mounted in the
propagate directory to check the extension-release files
2022-03-09 02:02:17 +00:00
Luca Boccassi 4f2dba98ad TEST-29: do not pass -q to mk/unsquashfs, not supported on CentOS 8 2022-03-08 18:02:09 +09:00
Luca Boccassi 963c560a29 TEST-29: do not pass -q to mk/unsquashfs, not supported on CentOS 8 2022-03-07 17:05:59 +00:00
Luca Boccassi ce3ca32cb9 NEWS: note GetMetadataWithExtensions backward incompatible change 2022-03-07 14:49:54 +00:00
Luca Boccassi 3a0692e3a8 Merge pull request #22522 from lnussel/fix_logind_restart
logind: load scheduled shutdown on restart
2022-03-02 17:58:53 +00:00
Luca Boccassi ba119ffcf9 Merge pull request #22627 from yuwata/network-l2tp-cleanups
network: cleanups for L2TP tunnel
2022-02-27 18:01:14 +00:00
Luca Boccassi a50c5845f5 Merge pull request #22625 from yuwata/network-tc-cleanups
network: cleanups for traffic control
2022-02-26 10:39:18 +00:00
Luca Boccassi 82a03e8a85 Merge pull request #22389 from poettering/resolved-sysinit
units: move resolved to sysinit.target (from basic.target)
2022-02-24 23:00:27 +00:00
Luca Boccassi 6b3211c15e Merge pull request #22611 from yuwata/network-activation-policy-stacked-netdevs
network: make activation policy also work for stacked netdevs
2022-02-24 22:57:35 +00:00
Luca Boccassi 224f21e64f Merge pull request #22615 from yuwata/network-dhcp-server-support-pxe-boot-systems
network: dhcp server: support pxe boot systems
2022-02-24 22:52:56 +00:00
Luca Boccassi a549442fff Merge pull request #22582 from medhefgo/boot-input
boot: Minor input fixes
2022-02-22 22:11:44 +00:00
Luca Boccassi 6ccc08954e Merge pull request #19970 from curtistklein/watchdog-pretimeout-merge
watchdog: Add watchdog pretimeout support
2022-02-22 22:08:09 +00:00
Luca Boccassi aff3a9e1fa watchdog: add setting to configure pretimeout governor 2022-02-22 17:19:54 +00:00
Luca Boccassi 21838f36a6 mkosi CI: mask isc-dhcp-server units
The packages are installed to provide the dhcpd binary, used by
test/test-network/systemd-networkd-tests.py, but we don't need the units
to run, and in fact in some cases the image fails to boot because of
them:

Spawning container image on /home/runner/work/systemd/systemd/image.raw.
Press ^] three times within 1s to kill container.
● isc-dhcp-server.service  loaded failed failed ISC DHCP IPv4 server
● isc-dhcp-server6.service loaded failed failed ISC DHCP IPv6 server
Container image failed with error code 1.
Error: Process completed with exit code 1.

Mask the units with an --extra-tree.
2022-02-19 14:01:17 +00:00
Luca Boccassi 915e2786f4 Merge pull request #22546 from poettering/resolved-bus-error-reply-rework
resolved: rework how we reply to D-Bus messages for resolution requests
2022-02-18 22:20:17 +00:00
Luca Boccassi 5d11af60ac Merge pull request #22498 from yuwata/cgroup-threaded-mode
cgroup: ignore error in attaching process when threaded mode is used
2022-02-16 18:59:06 +00:00
Luca Boccassi d74da762a3 Merge pull request #22506 from poettering/devnum-zero-btrfs-block-dev
gpt-auto: some (primarily cosmetic) fixes to backing block device detection in gpt-auto-generator/sd-device
2022-02-14 16:17:04 +00:00
Luca Boccassi bfba9946a1 Merge pull request #22445 from lnussel/logind
logind: post review fixes
2022-02-14 16:16:39 +00:00
Luca Boccassi d0ebe2a835 Merge pull request #22496 from yuwata/network-cleanups-keep-configuration
network: cleanups for KeepConfiguration= setting
2022-02-14 13:17:23 +00:00
Luca Boccassi 6fb81984ee Merge pull request #22485 from poettering/cgroup-id-not-support
cgroup: downgrade warnings of "cgroup ID" can't be read (on old kernels)
2022-02-11 17:06:30 +00:00
Luca Boccassi 0b0ad494a0 Merge pull request #22458 from poettering/parse-safe-string
some safety tweaks to conf-parser.[ch]
2022-02-09 16:59:14 +00:00
Luca Boccassi 0628d48ec2 meson: disable export-dbus-interfaces target when cross-compiling
ERROR:
Cannot use target systemd as a generator because it is built for the
host machine and no exe wrapper is defined or needs_exe_wrapper is
true. You might want to set `native: true` instead to build it for
the build machine.
2022-02-09 14:31:44 +01:00
Luca Boccassi 0c7649c2aa Merge pull request #22430 from yuwata/resolve-fix-memleak-and-use-after-free
resolve: fix memleak and use-after-free, and several cleanups
2022-02-08 12:01:14 +00:00
Luca Boccassi 3c84905b08 Merge pull request #22383 from yuwata/network-generator-keep-configuration
network: enable KeepConfiguration= when running on network filesystem
2022-02-07 18:06:24 +00:00
Luca Boccassi 1d2bf1f0ee portable: reopen socket with O_RDONLY
Follow-up for e3f7ed944a
2022-02-03 22:50:56 +00:00
Luca Boccassi 75844b44ee Merge pull request #22408 from mrc0mmand/test-network-cleanup
test-network: code cleanup
2022-02-03 22:50:38 +00:00
Luca Boccassi cbfa043149 man: explicitly mention that Requires propagates restarts
It's implicit, but the actions are different, so let's be explicit to
avoid any confusion.
2022-02-03 14:48:27 +00:00
Luca Boccassi dde009a879 core: simply freeing list in job_free()
Follow-up for cdebedb4d4
2022-02-02 16:33:25 +00:00
Luca Boccassi b7b4252443 core: use strextend instead of strextendf when possible
Follow-up for cdebedb4d4
2022-02-02 16:33:25 +00:00
Luca Boccassi 5c10b98350 Merge pull request #22358 from yuwata/udevadm-test-support-dev-path-or-device-unit
udevadm: test,test-builtin: support /dev path or device unit
2022-02-02 15:32:20 +00:00
Luca Boccassi b0c7e3d0e1 Merge pull request #22359 from yuwata/mkdir-fix
mkdir: allow to create directory whose path contains symlink
2022-02-02 11:03:04 +00:00
Luca Boccassi 1e15b7c7f7 Merge pull request #22343 from poettering/assert-se-efi
efi: add/user assert_se()/ASSERT_SE_PTR() for OOM handling
2022-02-01 19:26:57 +00:00
Luca Boccassi a1cad433bd Merge pull request #22341 from poettering/pam-end-fix
pid1: pam_end() PAM_DATA_SILENT fix
2022-02-01 16:34:00 +00:00
Luca Boccassi 98fd285c28 Merge pull request #22331 from yuwata/network-xfrm-interface-id
network: xfrm: refuse zero interface ID
2022-02-01 13:25:38 +00:00
Luca Boccassi 2ef2024462 portable: add support for ExtensionDirectories in --extension
Same as for the root os image, support passing a directory, using
the new ExtensionDirectories setting.
2022-01-24 00:21:15 +09:00
Luca Boccassi 9d0ad242b8 man/glib-event-glue example: relicense to CC0-1.0
All other examples were relicensed to CC0-1.0 since they are intended
to be copied and pasted anywhere without any restrictions.
Relicense the last one too.
2021-10-04 11:05:22 +02:00
Luca Boccassi 66e093def8 docs: portable services are no longer in preview
Reword the intro to the document, as portable services are a stable interface
and no longer a preview.
2021-08-18 11:30:53 +02:00
Luca Boccassi 95b63c755b git-contrib: copypaste-friendly output
Format output in a manner that can be copypasted as-is to NEWS.
That is, with 8 spaces indentation and wrapped at 80 columns.

Before:

$ tools/git-contrib.sh
        Ben Stockett,
        Carl Lei,
        Frantisek Sumsal,
        Gibeom Gwon,
        Hugo Osvaldo Barrera,
        James Hilliard,
        Jan Palus,
        Lennart Poettering,
        Luca Boccassi,
        Luca BRUNO,
        Mike Gilbert,
        nassir90,
        nl6720,
        Raul Tambre,
        Yegor Alexeyev,
        Yu Watanabe,
        Zbigniew Jędrzejewski-Szmek,

After:

        Contributions from: Ben Stockett, Carl Lei, Frantisek Sumsal,
        Gibeom Gwon, Hugo Osvaldo Barrera, James Hilliard, Jan Palus,
        Lennart Poettering, Luca Boccassi, Luca BRUNO, Mike Gilbert,
        nassir90, nl6720, Raul Tambre, Yegor Alexeyev, Yu Watanabe,
        Zbigniew Jędrzejewski-Szmek
2021-07-19 15:39:26 +09:00
Luca Boccassi e7fbba5612 NEWS: note new user-visible change, drop 'in spe' 2021-07-07 10:36:04 +01:00
Luca Boccassi fc4340b077 NEWS: update contributors list
Added Alexey Rubtsov, Icenowy Zheng, milaq, qhill, Trent Piepho,
Hamish Moffatt
2021-07-07 10:35:53 +01:00
Luca Boccassi 2d79d4a753 hwdb: run ninja -C build update-hwdb update-hwdb-autosuspend 2021-07-07 10:35:53 +01:00
Luca Boccassi 07eabc2beb TODO: reorder entries by component
Roughly reorder entries, without rewording anything, by component, so
that there's some structure to the text.
Only 3 lines are deleted: an empty line, 'External:' at the bottom since
it was merged with 'External:' at the top, and the weird last line:
'String is not UTF-8 clean, ignoring assignment' which was likely an error
from some editor
2021-07-03 16:43:07 +01:00
Luca Boccassi a381a9d134 analyze: use MANAGER_TEST_RUN_MINIMAL instead of MANAGER_TEST_RUN_BASIC
MANAGER_TEST_RUN_MINIMAL allows to skip setting up cgroups, which we don't
really want to do in systemd-analyze. MANAGER_TEST_RUN_BASIC doesn't
actually do anything by itself anyway.
2021-07-01 00:06:35 +01:00
Luca Boccassi 5dd2f5ff07 core: do not setup/teardown cgroup if MANAGER_TEST_RUN_MINIMAL is set as a flag
Rather than checking if test_run_flags is set exclusively to MANAGER_TEST_RUN_MINIMAL,
check if it is set as a flag, so that it can be used together with other flags.
2021-07-01 00:06:35 +01:00
Luca Boccassi b152adbfa9 test-loop-block: run in qemu
test-loop-block needs to run in qemu, so we are currently not
testing it in the CI. Run it by itself in a separate job from
TEST-02-UNITTESTS to avoid slowing that suite down.

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

Disable it in the bionic-* CI for now, as it's affected by
the same uevent ordering issue as TEST-50-DISSECT which makes
it flaky.
2021-06-21 20:55:19 +01:00
Luca Boccassi 35cde9e935 test: install nls modules, required by vfat
kernel: FAT-fs (loop0p2): codepage cp437 not found
kernel: FAT-fs (loop0p2): IO charset ascii not found
2021-06-21 19:47:38 +01:00
Luca Boccassi 63878c52be test: do not run 'meson configure' if NO_BUILD is set
There is no build tree and packages are used, so it cannot work. Unlikely
that static linking has been set for those builds anyway.

Fixes https://github.com/systemd/systemd/issues/19955
2021-06-17 17:21:17 +09:00
Luca Boccassi c5fd89adcd core: make libbpf a dlopen() dependency 2021-05-25 12:59:26 +01:00
Luca Boccassi 936cfad7e5 meson: look for bpftool in /usr/sbin too
On Debian, bpftool is installed in /usr/sbin, which is not in $PATH for
non-root users by default, so finding it fails.
Add a secondary, hard-coded '/usr/sbin/bpftool' after 'bpftool' so that
meson can find it.

https://packages.debian.org/sid/amd64/bpftool/filelist
2021-05-25 12:59:26 +01:00
Luca Boccassi d4d7127d94 Revert "sysusers/firstboot: temporarily disable LoadCredential"
This reverts commit 7c20dd4b6e.

Debian has now been updated to patch the issue, so SemaphoreCI should
no longer fail. The fix has also been backported to the affected
stable branches.
2021-05-03 12:16:35 +09:00
Luca Boccassi cf9844ffab test: use systemd-run --wait in TEST-44-LOG-NAMESPACE
The test appears to be occasionally failing. It uses systemd-run to echo
'hello world' into a namespaced journal and then uses journalctl to look for it,
but it doesn't wait.
In the failed runs it can't find it, but the automated journal dump shows
the message at the end.

Use --wait to avoid races.
2021-04-15 08:16:19 +02:00
Luca Boccassi a7b7cab66d mkosi.arch: add rsync build dependency
Program rsync found: NO

man/meson.build:187:0: ERROR: Program 'rsync' not found
2021-04-10 22:22:08 +02:00
Luca Boccassi a0cc411724 in-addr-util: suppress LGTM warning about htobe32
We are not calling it directly, it's coming from a standard library
macro, so just suppress it.
2021-04-08 13:08:38 +01:00
Luca Boccassi 82cdb75b8d errno-util: suppress LGTM warning about strerror 2021-04-08 13:08:38 +01:00
Luca Boccassi a9a49d2fea scsi_id: modernize and use extract_many_words instead of strsep
Also use standard error loggin/return pattern.

Only cursory tested, by checking that with a simple config file
the array is the same before/after. Not tested with actual scsi
rules and devices, due to missing hardware.
2021-04-08 13:07:31 +01:00
Luca Boccassi b01339f74f test-extract-word: add a couple more corner cases 2021-04-08 13:07:31 +01:00
Luca Boccassi dfc5c4f26d timedated: use format_timestamp instead of ctime
Some static analyzers (lgtm) warn against using non-re-entrant functions,
even though at the moment this code is not multi-threaded, just switch to
format_timestamp.
2021-04-08 13:07:31 +01:00
Luca Boccassi 7c20dd4b6e sysusers/firstboot: temporarily disable LoadCredential
Single-param LoadCredential= in units causes systemd v247/v248 to
assert when parsing. Disable it for now, until the fix is merged
in the stable trees, released and available (eg: in Debian
for the CI)

See: https://github.com/systemd/systemd/issues/19178
2021-04-06 12:02:42 +02:00
Luca Boccassi 248b1e0aa4 gcrypt: do not ignore return values
Check the return code from gcrypt's functions. In some
cases just log, as it shoulnd't really happen.

Fixes various Coverity issues:

CID #1444702
CID #1444704
CID #1444706
CID #1444711
CID #1444712
CID #1444713
2021-03-31 10:51:35 +02:00
Luca Boccassi 301e7cd047 man: specify that ProtectProc= does not work with root/cap_sys_ptrace
When using hidepid=invisible on procfs, the kernel will check if the
gid of the process trying to access /proc is the same as the gid of
the process that mounted the /proc instance, or if it has the ptrace
capability:

https://github.com/torvalds/linux/blob/v5.10/fs/proc/base.c#L723
https://github.com/torvalds/linux/blob/v5.10/fs/proc/root.c#L155

Given we set up the /proc instance as root for system services,
The same restriction applies to CAP_SYS_PTRACE, if a process runs with
it then hidepid=invisible has no effect.

ProtectProc effectively can only be used with User= or DynamicUser=yes,
without CAP_SYS_PTRACE.
Update the documentation to explicitly state these limitations.

Fixes #18997
2021-03-15 16:53:16 +00:00
Luca Boccassi 7eba0c50f5 test: install binaries from local d/control file
The source package in the apt cache might be older than the
packaging from salsa.debian.org/systemd-team/systemd so it might not
list all the current binary packages.
This is currently the case for systemd-timesyncd, so TEST-30 fails.

Simply grep the control file rather than using apt-cache when iterating
over the packages contents.
2021-02-15 10:17:39 +01:00
Luca Boccassi d9e606e89f tests: build the image once and then copy/extend it
Building custom images for each test takes a lot of time.
Build the default one, and if the test needs incompatible changes
just copy it and extend it instead.
2021-01-24 13:07:39 +00:00