Luca Boccassi
6c3f7ca036
MountImages: parse unit specifiers after permissive hyphen
...
The permissive bit it not something a specifier might synthetise
2021-02-23 01:11:05 +01:00
Luca Boccassi
79e20ceb59
MountImages: fix exec_context_dump printf
...
Use strempty as options might not be set, and add the separator
for each option tuple
2021-02-23 04:42:39 +09:00
Luca Boccassi
905348da28
Merge pull request #18625 from bluca/sysext_refactor
...
dissect: parse and store extension-release metadata
2021-02-18 10:43:08 +00:00
Luca Boccassi
93547f2812
env-util: refactor parsing helper for SYSTEMD_SYSEXT_HIERARCHIES out of sysext
2021-02-17 21:45:31 +00:00
Luca Boccassi
d335f4c583
os-util: allow missing VERSION_ID on the host
...
Rolling releases, like ArchLinux, do not set VERSION_ID in
their os-release files, so allow matching simply on ID if the host
does not provide anything.
2021-02-17 21:45:31 +00:00
Luca Boccassi
7eda2d7fa5
os-util: split extension_release_validate out of sysext
2021-02-17 21:45:31 +00:00
Luca Boccassi
bcf94222a5
machine: parse and store extension-release
...
Follow the same pattern as os-release parsing, and store the key-value
pairs in a strv if found
2021-02-17 21:45:31 +00:00
Luca Boccassi
7718ac9721
dissect: parse, store and show extension-release info
2021-02-17 21:45:31 +00:00
Luca Boccassi
593fe6c04d
dissect: store image name, following usual parsing rules
...
The name of '/foo/bar/baz.raw' name is 'baz'
2021-02-17 21:24:23 +00:00
Luca Boccassi
42e6a77bc5
env-util: add strv_env_pairs_get helper
2021-02-17 21:24:23 +00:00
Luca Boccassi
eb590035b9
os-util: add load_extension_release_pairs helper
2021-02-17 21:24:23 +00:00
Luca Boccassi
1d0796739c
os-util: add path_is_extension_tree helper
2021-02-17 21:24:23 +00:00
Luca Boccassi
0761da386a
test: avoid leaking open loop devices
...
When a subshell is used ('make' or 'make all') the LOOPDEV environment
variable, which is used to store the opened loop device, is lost.
So the cleanup on trap/exit doesn't do anything, and the loop
device used to mount the test image is left around.
Avoid using a subshell to fix the issue.
2021-02-17 18:55:05 +01:00
Luca Boccassi
b8f762f2fe
stat-util: fix dir_is_empty_at without path
...
Use the right FD, and do a fd_reopen instead of a dup, since the
latter will still share the internal pointer which then gets
moved by FOREACH_DIRENT, affecting the caller's FD.
2021-02-16 20:24:27 +01:00
Luca Boccassi
809ceb8217
namespace: store and use original MountEntry paths when prefixing
...
Some paths (eg: mount_tmpfs) simply assumed that prefixing always
happens and it always stores the original path in path_const, and
the prefixed path in path_malloc.
But if a MountEntry is set up in a helper function and thus uses
only _malloc struct members, this assumption doesn't hold and there's
a crash.
Refactor so that prefixing is done with a helper which stores the
original path in a separate struct member, and accessing it also
uses a helper which does the right thing.
2021-02-16 14:33:23 +00:00
Luca Boccassi
b850a9b29f
MountImages: actually support optional paths
...
ENOENT did not cause an image mount to be skipped, fix it
2021-02-16 14:33:23 +00:00
Luca Boccassi
23e5c8d296
portabled: add DBUS documentation
2021-02-15 21:34:00 +00:00
Luca Boccassi
598f938e3b
portabled: use SD_BUS_METHOD_WITH_ARGS
2021-02-15 21:30:01 +00:00
Luca Boccassi
3b91bae3ce
portabled: use service_parse_argv/bus_add_implementation
...
Remove some boilerplate and allow introspection
2021-02-15 21:20:14 +00:00
Luca Boccassi
79dbbb261d
Merge pull request #18593 from keszybz/fuzz-more-systemctl-paths
...
Fuzz more systemctl paths
2021-02-15 19:13:58 +00:00
Luca Boccassi
acc8890a8a
Merge pull request #18565 from poettering/randomize-answers
...
resolved: randomize order in local query replies
2021-02-14 19:35:54 +00:00
Luca Boccassi
26c59e4e95
NEWS: add a note about no longer probind mmcblk*boot*
2021-02-14 01:30:59 +09:00
Luca Boccassi
9ba008cbc3
NEWS: mention new systemctl verb and fix typo
2021-02-13 08:41:13 +09:00
Luca Boccassi
1c3c43a417
Merge pull request #18550 from keszybz/coverity-inspired-fixes
...
Coverity inspired fixes
2021-02-11 15:44:25 +00:00
Luca Boccassi
e26fe5f911
portable: add 'reattach' verb and DBUS interface
...
Add 'reattach' verb to portablectl, and corresponding DBUS interface
to systemd-portabled.
Takes the same parameters as 'attach', but it will do a 'detach' (and
it will refuse to proceed if it cannot be done) first, matching on
the unversioned prefix of the new image. Eg:
portablectl reattach /tmp/foo_2.raw
will cause foo_1.raw to be detached, and foo_2.raw to be attached.
The key difference with a manual 'detach old' plus 'attach new' is that
the running units are not disturbed until after the attach completed,
and if --now is passed they are then restarted.
A 'detach' is not allowed normally if the units are running.
By using a restart-after-deploy method, 'reattach' allows for minimal
interruption of service and also for features that only work on restart
(eg: file descriptor store) to work as intended.
The DBUS interface returns two lists: first the removals from the detach
that were not immediately re-added in the attach, so that the caller
can stop the relevant units, and then the list of additions that are
either new or updates, so that the caller can restart/enable the
relevant units. portablectl already implements this with the existing
--now/--enable switches.
2021-02-10 19:07:36 +00:00
Luca Boccassi
9e4079d411
portable: allow Detach to match images with different version suffixes
2021-02-10 19:07:27 +00:00
Luca Boccassi
8b535f3aac
test: setup var/tmp in the test image as well
2021-02-10 18:54:12 +00:00
Luca Boccassi
e763342091
test: add empty /etc/resolv.conf in test image
...
Portable services have a BindPath pointing to it, so it needs to
be available in the image
2021-02-10 18:54:12 +00:00
Luca Boccassi
9785c44dd8
test-50-dissect: move minimal image setup to common setup function
...
So that it can be re-used for other tests by simply setting
TEST_INSTALL_VERITY_MINIMAL=1 in test.sh, without having to
replicate the setup commands.
2021-02-10 18:54:12 +00:00
Luca Boccassi
8aa35d09d3
Fix coverity warning in test-string-util.c
...
CID 1446368: Incorrect expression (MISSING_COMMA)
2021-02-10 13:22:06 +01:00
Luca Boccassi
0f15cb2243
Merge pull request #18470 from mrc0mmand/ci-clang-12
...
ci: run build test with clang-12 as well
2021-02-09 13:06:40 +00:00
Luca Boccassi
2a8e00846f
Merge pull request #18490 from keszybz/prettify-update-dbus-docs
...
Prettify update-dbus-docs
2021-02-06 15:36:39 +00:00
Luca Boccassi
23cfef7bb1
Merge pull request #18435 from keszybz/oomd-readiness-and-other-tweaks
...
Mark oomd as supported and other tweaks
2021-02-02 23:15:19 +00:00
Luca Boccassi
21be71eefb
test: fix 'make clean' not removing shared image
2021-01-29 09:56:45 +00:00
Luca Boccassi
668b3a42fe
tools: make update-dbus-docs compatible with Python 3.7
...
Debian Stable uses Python 3.7, but there are a couple of 3.8 features used
in the script. Add fallbacks.
2021-01-29 09:53:34 +00:00
Luca Boccassi
e953dcab39
Merge pull request #18384 from poettering/mangle-os-fix
...
import: two fixes to OS mangling logic
2021-01-26 20:23:52 +00:00
Luca Boccassi
4a5fc0e61f
Merge pull request #18358 from jwrdegoede/hwdb-2-accel-quirks
...
Hwdb 2 accel quirks
2021-01-24 11:35:59 +00:00
Luca Boccassi
664e54b1bb
Merge pull request #18349 from poettering/import-fixlets2
...
minor importd fixlets
2021-01-23 00:21:48 +00:00
Luca Boccassi
95457dc13c
Merge pull request #18302 from bluca/mount_image_runtime
...
systemctl/core: add DBUS method to mount images without service restart
2021-01-22 17:49:11 +00:00
Luca Boccassi
87970ee5bc
Merge pull request #18338 from poettering/print-table-with-bells-and-whistles
...
json/table printing unification work
2021-01-21 22:41:18 +00:00
Luca Boccassi
6faecbd353
systemctl: add new option to mount image inside a running service namespace
...
Use the new DBUS method and follow the same pattern as the
systemctl bind command.
2021-01-21 19:08:40 +00:00
Luca Boccassi
af47713952
pid1: add DBUS method to mount image inside a running service namespace
...
Follow the same pattern as the BindMount method.
2021-01-21 18:37:00 +00:00
Luca Boccassi
7059996766
mount-util: add helper to mount image inside live namespace
2021-01-21 18:35:31 +00:00
Luca Boccassi
4beda31698
dissect: split verity_dissect_and_mount helper out for reuse
2021-01-21 18:32:44 +00:00
Luca Boccassi
988172cecf
core: split read_mount_options helper out for reuse
2021-01-21 18:31:45 +00:00
Luca Boccassi
7504f599e1
Merge pull request #18325 from ssahani/more-cleanup
...
Tree wide various cleanup
2021-01-20 20:48:18 +00:00
Luca Boccassi
aac5fbff0b
sysext: install in rootbindir, remove template from unit
...
This reverts commit 71ad75f306 .
2021-01-20 15:25:03 +01:00
Luca Boccassi
71ad75f306
sysext: install in /usr/lib/systemd/ for now
...
This is a brand new binary, and the CI packaging doesn't pick it up,
causing the upstream testrun to fail (sysext is pulled in by the unit).
2021-01-19 13:41:42 +01:00
Luca Boccassi
60bb6caaae
sysext: use parse_extension_release and reject extension if not found
2021-01-19 13:41:42 +01:00
Luca Boccassi
6ddd051193
os-release: add support for /usr/lib/extension-release.d/
...
Add helpers to look for extension-release.$NAME files in
/usr/lib/extension-release.d/ following the same pattern as os-release.
2021-01-19 13:41:42 +01:00
Luca Boccassi
44bb7b0956
sysext: add verity boilerplate
2021-01-19 13:41:42 +01:00
Luca Boccassi
4db4792a93
Merge pull request #17228 from bluca/bind_path_runtime
...
core: add systemctl and DBUS method to bind mount new paths without service restart
2021-01-18 21:22:57 +00:00
Luca Boccassi
fa7a3cd00e
test: run strace with -f and copy log out
2021-01-18 17:24:05 +00:00
Luca Boccassi
a9d34376e6
test: skip missing optional libraries in image install
...
Not all optional libraries might be available on developers machines,
so log and skip.
Also some pkg-config files are broken (eg: tss2 on Debian Stable) so
skip if the required variables are missing, and improve logs.
2021-01-18 17:24:05 +00:00
Luca Boccassi
5e8deb94c6
core: add DBUS method to bind mount new nodes without service restart
...
Allow to setup new bind mounts for a service at runtime (via either
DBUS or a new 'systemctl bind' verb) with a new helper that forks into
the unit's mount namespace.
Add a new integration test to cover this.
Useful for zero-downtime addition to services that are running inside
mount namespaces, especially when using RootImage/RootDirectory.
If a service runs with a read-only root, a tmpfs is added on /run
to ensure we can create the airlock directory for incoming mounts
under /run/host/incoming.
2021-01-18 17:24:05 +00:00
Luca Boccassi
94293d65cd
MountAPIVFS: always mount a tmpfs on /run
...
We need a writable /run for most operations, but in case a read-only
RootImage (or similar) is used, by default there's no additional
tmpfs mount on /run. Change this behaviour and document it.
2021-01-18 17:24:05 +00:00
Luca Boccassi
f7c18d3de8
machine: use file descriptor when chasing bind mount sources
...
Allows to always operate on pinned inodes, rather than paths, so that
races are less likely
2021-01-18 17:24:05 +00:00
Luca Boccassi
2338a175fd
shared/mount-util: use namespace_fork utils
2021-01-18 17:23:46 +00:00
Luca Boccassi
724e689715
machine: adjust error message to use 'normalized' instead of ../
2021-01-18 17:23:12 +00:00
Luca Boccassi
6af52c3a45
machine/basic: factor out helper function to add airlocked mount to namespace
2021-01-18 17:23:11 +00:00
Luca Boccassi
55eeb47631
Merge pull request #18264 from ssahani/net3
...
network: Use TAKE_PTR
2021-01-16 12:16:43 +00:00
Luca Boccassi
66e27e698e
Merge pull request #18268 from ssahani/net5
...
network: tighten variable scope used in loop
2021-01-16 12:13:14 +00:00
Luca Boccassi
bf1868c8d7
Merge pull request #18254 from keszybz/trivial-cleanups
...
Assorted small cleanups
2021-01-15 14:00:06 +00:00
Luca Boccassi
d8434c523c
Merge pull request #18245 from poettering/unit-file-install-fixes
...
minor unit file install fixes
2021-01-14 18:46:48 +00:00
Luca Boccassi
c17b2155e5
Merge pull request #18226 from mrc0mmand/actions-flake-workarounds
...
ci: assorted workarounds for recent flakes
2021-01-14 10:00:24 +00:00
Luca Boccassi
bcac754d66
Merge pull request #18174 from systemd/coverity-now-for-real
...
ci: move the Coverity job to GitHub Actions
2021-01-11 17:56:13 +00:00
Luca Boccassi
91737e1453
Merge pull request #18186 from DaanDeMeyer/translations-option
...
meson: Add option to disable translations
2021-01-10 14:37:56 +00:00
Luca Boccassi
edb75b6234
Merge pull request #18172 from dmedri/master
...
po: minor fixes and updates
2021-01-08 21:50:37 +00: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
Luca Boccassi
68147f9371
Merge pull request #18109 from yuwata/network-routing-policy-rule-family-both-fixes
...
network: fixes related to Family=both in [RoutingPolicyRule]
2020-12-30 11:27:24 +00:00
Luca Boccassi
d514454446
Merge pull request #18048 from poettering/timesync-man-more
...
man: extend time-{set,sync}.target + systemd-timesyncd/wait-sync docs
2020-12-28 12:28:35 +00:00
Luca Boccassi
e3284031ae
Merge pull request #17960 from yuwata/network-log-routing-policy-rule
...
network: introduce log_routing_policy_rule()
2020-12-14 22:22:51 +00:00
Luca Boccassi
e1f3685750
Merge pull request #17959 from yuwata/network-log-address
...
network: introduce log_address_debug()
2020-12-14 22:21:50 +00:00
Luca Boccassi
e82b77e984
Merge pull request #17958 from yuwata/network-route-log
...
network: introduce log_route_debug()
2020-12-14 22:17:33 +00:00
Luca Boccassi
213b8ebe43
Merge pull request #17921 from yuwata/network-drop-assertion-17920
...
network: drop assertions to check link state in netlink callback handlers
2020-12-11 22:53:33 +00:00
Luca Boccassi
0727a75a3b
Merge pull request #17911 from yuwata/log-cli-program-use-journal
...
log: open journal when cli program run in a service unit
2020-12-09 14:30:32 +00:00
Luca Boccassi
141d3a14d4
Merge pull request #17882 from poettering/logind-async-close
...
logind: fix closing of button input devices
2020-12-09 14:27:03 +00:00
Luca Boccassi
a6c7811f0d
meson: specify correct libqrencode version in meson dep
2020-12-09 13:34:53 +01:00
Luca Boccassi
b7fca1b059
test: pull in weak deps into tests
...
(Pulled from @bluca's comment here:
https://github.com/systemd/systemd/pull/17884#issuecomment-740005624 and
turned into a commit by @poettering)
2020-12-09 13:34:49 +01:00
Luca Boccassi
77613416e0
Merge pull request #17855 from poettering/more-socktops
...
socket-util: some helpers for various sockopts
2020-12-07 21:15:28 +00:00
Luca Boccassi
bf2d8c03c1
Merge pull request #17760 from mrc0mmand/revert-semaphore-timedated
...
Revert "semaphore: temporarily disable the timedated test suite"
2020-12-05 11:12:35 +00:00
Luca Boccassi
f1027d7c28
Merge pull request #17787 from DaanDeMeyer/mkosi-boot-tests
...
CI: Add mkosi boot tests
2020-12-04 23:38:29 +00:00
Luca Boccassi
32c7f02bb4
Merge pull request #17829 from anitazha/testoomdfix
...
test: fix TEST-56-OOMD thresholds for linux 5.9 changes
2020-12-04 12:22:46 +00:00
Luca Boccassi
442bc2afee
meson: check that cxx variable is set before using it
...
In some cases it is not defined. Eg in a yocto build:
src/systemd/meson.build:61:15: ERROR: Unknown variable cxx.
2020-12-04 08:35:56 +01:00
Luca Boccassi
964523e6c2
test/README: notes about Ubuntu CI logs and dependencies
...
Add a note about where to find the full journal, and how to add
packages/dependencies for the Ubuntu CI.
2020-10-17 17:58:40 +01:00
Luca Boccassi
d888cd4cfc
test: fix TEST-50-DISSECT build on Ubuntu CI
...
Ubuntu CI's just got the dependencies require dto run this test added,
and it seems the build is different enough from other platforms
that it fails to create the required directories:
cp: cannot create regular file '/var/tmp/systemd-test.JJMOBY/minimal/usr/lib/os-release': No such file or directory
2020-10-17 17:58:40 +01:00
Luca Boccassi
1bac565641
Revert "Block TEST-50-DISSECT on Ubuntu CI temporarily"
...
This reverts commit 329315b29f .
2020-10-17 17:58:40 +01:00
Luca Boccassi
329315b29f
Block TEST-50-DISSECT on Ubuntu CI temporarily
...
It looks like we need to do some whack-a-mole before it will fully pass,
so disable for now. It was skipped until today anyway due to missing
dependencies.
2020-10-17 09:05:31 +02:00
Luca Boccassi
feee7f6288
libcrypt-util: use build-time check for crypt_preferred_method
...
After https://github.com/systemd/systemd/pull/16981 only the presence of crypt_gensalt_ra
is checked, but there are cases where that function is available but crypt_preferred_method
is not, and they are used in the same ifdef.
Add a check for the latter as well.
2020-09-28 10:23:48 +02:00
Luca Boccassi
c848516f3f
dissect-image: do not refuse verity GPT without /usr partition
...
Only enforce that /usr verity partition is present if a /usr
partition is there
2020-09-22 15:24:59 +01:00
Luca Boccassi
7025fa8b1a
dissect-image: use correct path variable when reading verity signatures
...
Copypasta slipped in via https://github.com/systemd/systemd/pull/17101
2020-09-22 13:19:19 +01:00
Luca Boccassi
836540070d
core: add [Enable|Disable]UnitFilesWithFlags DBUS methods
...
The new methods work as the unflavoured ones, but takes flags as a
single uint64_t DBUS parameters instead of different booleans, so
that it can be extended without breaking backward compatibility.
Add new flag to allow adding/removing symlinks in
[/etc|/run]/systemd/system.attached so that portable services
configuration files can be self-contained in those directories, without
affecting the system services directories.
Use the new methods and flags from portablectl --enable.
Useful in case /etc is read-only, with only the portable services
directories being mounted read-write.
2020-09-04 17:56:37 +02:00
Luca Boccassi
427353f668
core: add mount options support for MountImages
...
Follow the same model established for RootImage and RootImageOptions,
and allow to either append a single list of options or tuples of
partition_number:options.
2020-08-20 14:45:40 +01:00
Luca Boccassi
9ece644435
core: change RootImageOptions to use names instead of partition numbers
...
Follow the designations from the Discoverable Partitions Specification
2020-08-20 13:58:02 +01:00
Luca Boccassi
bc8d56d305
core: use strv_split_colon_pairs when parsing RootImageOptions
2020-08-20 13:24:32 +01:00
Luca Boccassi
c20acbb2bd
core: cleanup unused variables
...
Leftovers from previous implementation of MountImages feature, unused now
2020-08-20 13:24:32 +01:00
Luca Boccassi
46ad9c5378
systemctl: add --timestamp to change timestamp print format
...
Timestamps for unit start/stop are recorded with microsecond granularity,
but status and show truncate to second granularity by default.
Add a --timestamp=pretty|us|utc option to allow including the microseconds
or to use the UTC TZ to all timestamps printed by systemctl.
2020-08-19 15:30:13 +01:00
Luca Boccassi
7b3eb5c97e
basic/time-util: add function to format timestamps with different styles
...
Instead of a multiple fixed format helper functions, add an enum and
a single helper, so that it's easier to extend in the future.
2020-08-19 15:30:13 +01:00
Luca Boccassi
ce5eef6530
shared/udev-util: fix sd_device leak in device_wait_for_initialization
...
If the caller doesn't pass a return pointer, or if sd_event_loop fails
after the device was found and referenced, it never gets dereferenced.
2020-08-14 15:26:04 +01:00
Luca Boccassi
efc3b12fdb
tree-wide: enable/disable libcrypsetup debug output depending on our level
...
Avoid always setting to debug, as it will incur in many more callbacks from
libcrypsetup that then get discarded, wasting resources.
2020-08-14 15:26:04 +01:00