]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agocifuzz: build fuzz target with UBsan and MSan as well
Evgeny Vereshchagin [Thu, 11 Jun 2020 20:26:17 +0000 (22:26 +0200)] 
cifuzz: build fuzz target with UBsan and MSan as well

4 years agoturn off fuzzit part 2
Evgeny Vereshchagin [Thu, 11 Jun 2020 16:34:42 +0000 (18:34 +0200)] 
turn off fuzzit part 2

it's just a follow-up to https://github.com/systemd/systemd/pull/16064

4 years agoMerge pull request #16144 from mrc0mmand/gh-actions-followup
Evgeny Vereshchagin [Thu, 11 Jun 2020 15:04:13 +0000 (18:04 +0300)] 
Merge pull request #16144 from mrc0mmand/gh-actions-followup

GH Actions followup

4 years agoci: tweak the dependency installation 16144/head
Frantisek Sumsal [Thu, 11 Jun 2020 13:00:15 +0000 (15:00 +0200)] 
ci: tweak the dependency installation

4 years agoci: tweak the compilation options
Frantisek Sumsal [Thu, 11 Jun 2020 12:21:02 +0000 (14:21 +0200)] 
ci: tweak the compilation options

Build each build with tests (slow tests and fuzzer tests as well), and
combine the LTO build with -O3.

4 years agoci: move the build check script to workflows directory
Frantisek Sumsal [Thu, 11 Jun 2020 11:29:01 +0000 (13:29 +0200)] 
ci: move the build check script to workflows directory

4 years agoci: do the compiler-detection magic in the test script
Frantisek Sumsal [Thu, 11 Jun 2020 11:18:07 +0000 (13:18 +0200)] 
ci: do the compiler-detection magic in the test script

so we have all PPA definitions at one place.

4 years agoMerge pull request #16137 from poettering/sleep-fixlets
Lennart Poettering [Thu, 11 Jun 2020 12:12:48 +0000 (14:12 +0200)] 
Merge pull request #16137 from poettering/sleep-fixlets

some log fixes in the sleep code

4 years agoMerge pull request #16136 from mrc0mmand/travis-cleanup
Evgeny Vereshchagin [Thu, 11 Jun 2020 11:16:44 +0000 (14:16 +0300)] 
Merge pull request #16136 from mrc0mmand/travis-cleanup

Move the gcc/clang build check to GitHub Actions

4 years agoci: add homed/zstd dependencies 16136/head
Frantisek Sumsal [Wed, 10 Jun 2020 18:51:15 +0000 (20:51 +0200)] 
ci: add homed/zstd dependencies

Also, sort the whole list when we're at it.

4 years agogithub: move the clang/gcc build check to GH Actions
Frantisek Sumsal [Wed, 10 Jun 2020 11:41:28 +0000 (13:41 +0200)] 
github: move the clang/gcc build check to GH Actions

Travis CI is getting overloaded, so let's move some load over to GitHub
Actions.

4 years agoMerge pull request #16124 from ssahani/dhcpv6-duid
Lennart Poettering [Thu, 11 Jun 2020 10:03:07 +0000 (12:03 +0200)] 
Merge pull request #16124 from ssahani/dhcpv6-duid

network: Display DHCPv6 DUID

4 years agopid1: rename manager_set_{show_status,watchdog}_overridden() into manager_override_... 15926/head
Franck Bui [Thu, 4 Jun 2020 11:25:25 +0000 (13:25 +0200)] 
pid1: rename manager_set_{show_status,watchdog}_overridden() into manager_override_(show_status,watchdog}

No functional change.

4 years agopid1: add a new SetShowStatus() bus call to override/restore show status mode
Franck Bui [Tue, 28 Apr 2020 14:21:12 +0000 (16:21 +0200)] 
pid1: add a new SetShowStatus() bus call to override/restore show status mode

The only way to control "ShowStatus" property programmatically was to use the
signal API and wait until the property "ShowStatus" switched to the new value.

This interface is rather cumbersome to use and doesn't allow to temporarily
override the current setting and later restore the overridden value in
race-free manner.

The new method also accepts the empty string as argument which allows to
restore the initial value of ShowStatus, ie the value before it was overridden
by this method.

Fixes: #11447.
4 years agopid1: introduce an helper to handle the show-status marker
Franck Bui [Thu, 11 Jun 2020 09:56:11 +0000 (11:56 +0200)] 
pid1: introduce an helper to handle the show-status marker

No functional change.

4 years agosleep: pass error we see to log function 16137/head
Lennart Poettering [Wed, 10 Jun 2020 14:54:10 +0000 (16:54 +0200)] 
sleep: pass error we see to log function

4 years agosleep-config: modernize destructors
Lennart Poettering [Wed, 10 Jun 2020 14:53:24 +0000 (16:53 +0200)] 
sleep-config: modernize destructors

All other destructors in the same .c file return NULL, let's make sure
the one where this so far wasn't done does it too.

4 years agosleep-config: downgrade log level in can_s2h()
Lennart Poettering [Wed, 10 Jun 2020 14:52:08 +0000 (16:52 +0200)] 
sleep-config: downgrade log level in can_s2h()

As in the previous commit: can_sleep() is more a library-style function,
hence log at debug level only.

4 years agosleep: clean up debug/error logging
Lennart Poettering [Wed, 10 Jun 2020 14:47:38 +0000 (16:47 +0200)] 
sleep: clean up debug/error logging

half of find_hibernation_location() logged at debug level, the other
half logged at error level, and the third half didn't log at all.

Let's clean this up somewhat. Since can_sleep() is probably more
a library-style function let's downgrade everything to LOG_DEBUG and
then make sure sleep.c logs at error level, as the main program.

4 years agosleep-config: return correct error code
Lennart Poettering [Wed, 10 Jun 2020 14:40:52 +0000 (16:40 +0200)] 
sleep-config: return correct error code

4 years agosleep-config: add more debug logging
Lennart Poettering [Wed, 10 Jun 2020 14:40:36 +0000 (16:40 +0200)] 
sleep-config: add more debug logging

4 years agogithub: rename CIFuzz workflow file to cifuzz.yml
Frantisek Sumsal [Wed, 10 Jun 2020 15:06:49 +0000 (17:06 +0200)] 
github: rename CIFuzz workflow file to cifuzz.yml

4 years agotravis: bump Ubuntu release to Bionic
Frantisek Sumsal [Wed, 10 Jun 2020 15:05:55 +0000 (17:05 +0200)] 
travis: bump Ubuntu release to Bionic

4 years agojournal: drop the assert-only variable completely
Frantisek Sumsal [Wed, 10 Jun 2020 17:45:33 +0000 (19:45 +0200)] 
journal: drop the assert-only variable completely

Followup to dfa64b64a7e2b9bffea260953b30e6236047fffb.

4 years agotravis: replace set (+|-)e with travis_terminate
Frantisek Sumsal [Wed, 10 Jun 2020 15:48:14 +0000 (17:48 +0200)] 
travis: replace set (+|-)e with travis_terminate

It looks nicer and works around
https://travis-ci.community/t/exit-0-cannot-exit-successfully-on-arm/5731/

4 years agotree-wide: port to fd_wait_for_event()
Lennart Poettering [Wed, 10 Jun 2020 09:43:40 +0000 (11:43 +0200)] 
tree-wide: port to fd_wait_for_event()

Prompted by the discussion on #16110, let's migrate more code to
fd_wait_for_event().

This only leaves 7 places where we call into poll()/poll() directly in
our entire codebase. (one of which is fd_wait_for_event() itself)

4 years agomeson: build standalone version of systemd-tmpfiles 16061/head
Filipe Brandenburger [Wed, 3 Jun 2020 21:49:53 +0000 (14:49 -0700)] 
meson: build standalone version of systemd-tmpfiles

Use -Dstandalone-binaries=yes to enable building and installing this standalone
version of the binary without a dependency on the systemd-shared solib.

Also move the list of sources for systemd-tmpfiles to its own meson.build file.

4 years agomeson: add a new -Dstandalone-binaries=true option
Filipe Brandenburger [Wed, 3 Jun 2020 21:02:59 +0000 (14:02 -0700)] 
meson: add a new -Dstandalone-binaries=true option

This adds an option to build standalone binaries that do not depend on the
systemd-shared library. This option can be handy to build binaries that can be
useful on a non-systemd system, binaries such as systemd-sysusers and
systemd-tmpfiles have been previously requested, but installing them with all
the required dependencies pulls in too much code that isn't really relevant for
those use cases. The standalone use case is also relevant in containers, where
minimizing the size of the container image is quite relevant.

For now, only `systemd-sysusers` is also built as a standalone binary.

The standalone binaries are installed as `/usr/bin/%{name}.standalone`, the
packaging system is reponsible for renaming those into the correct names
during the packaging step. RPM is able to do so with RemovePathPostfixes:

The default behavior is to build shared binaries only, since this option is
mainly intended for building distribution packages.

Tested that a proper separate binary is built when using this option and
that having it disabled (or using the default Meson configuration) does not
produce a binary for this option.

4 years agonetworkctl: Display DHCP6 DUID 16124/head
Susant Sahani [Tue, 9 Jun 2020 14:49:48 +0000 (16:49 +0200)] 
networkctl: Display DHCP6 DUID

4 years agosd-network: Introduce APIs to get DHCP6 DUID
Susant Sahani [Tue, 9 Jun 2020 14:49:12 +0000 (16:49 +0200)] 
sd-network: Introduce APIs to get DHCP6 DUID

4 years agonetwork: DHCP6 - save DUID to state file
Susant Sahani [Tue, 9 Jun 2020 14:48:42 +0000 (16:48 +0200)] 
network: DHCP6 - save DUID to state file

4 years agonetwork: DHCP6 - introduce DHCP6 DUID to string
Susant Sahani [Tue, 9 Jun 2020 14:47:49 +0000 (16:47 +0200)] 
network: DHCP6 - introduce DHCP6 DUID to string

4 years agoMerge pull request #15940 from keszybz/names-set-optimization
Lennart Poettering [Wed, 10 Jun 2020 16:52:08 +0000 (18:52 +0200)] 
Merge pull request #15940 from keszybz/names-set-optimization

Try to optimize away Unit.names set

4 years agoupdate TODO
Lennart Poettering [Wed, 10 Jun 2020 16:37:00 +0000 (18:37 +0200)] 
update TODO

4 years agotest: make TEST-02-CRYPTSETUP a bit more robust
Frantisek Sumsal [Tue, 9 Jun 2020 14:51:55 +0000 (16:51 +0200)] 
test: make TEST-02-CRYPTSETUP a bit more robust

Prompted by systemd/systemd#16111.

* check if /var is a mountpoint - if not, something went wrong. In case
  of systemd/systemd#16111 the /failed file was created, because
  systemd-cryptsetup failed, but it ended up being empty, making the result
  check incorrectly pass
* forward journal messages to console - if we fail to mount /var,
  journald won't flush logs to the persistent storage and we end up
  empty handed and with no clue what went wrong

For example, without systemd/systemd#16111 and with this patch:
...
[FAILED] Failed to start systemd-cryptsetup@varcrypt.service.
See 'systemctl status systemd-cryptsetup@varcrypt.service' for details.
[DEPEND] Dependency failed for cryptsetup.target.
...
[    3.882451] systemd-cryptsetup[581]: Key file /etc/varkey is world-readable. This is not a good idea!
[    3.883946] systemd-cryptsetup[581]: WARNING: Locking directory /run/cryptsetup is missing!
[    3.884846] systemd-cryptsetup[581]: Failed to load Bitlocker superblock on device /dev/disk/by-uuid/180ba5ef-873b-4018-9968-47c23431f71a: Invalid argument
...
[    4.099451] sh[606]: + mountpoint /var
[    4.100025] sh[603]: + systemctl poweroff --no-block
[    4.101636] systemd[1]: Finished systemd-user-sessions.service.
[    4.102598] sh[608]: /var is not a mountpoint
[FAILED] Failed to start testsuite-02.service.

4 years agocore: don't consider SERVICE_SKIP_CONDITION for abnormal or failure restarts
Anita Zhang [Wed, 10 Jun 2020 08:18:00 +0000 (01:18 -0700)] 
core: don't consider SERVICE_SKIP_CONDITION for abnormal or failure restarts

Fixes: #16115
4 years agodocs: Change suffix for desktop applications to support non-transient services
David Edmundson [Mon, 8 Jun 2020 21:00:33 +0000 (22:00 +0100)] 
docs: Change suffix for desktop applications to support non-transient services

One problem found with the current draft specification is we can't have
an application provide a non-transient systemd service file in a way
that is spec compliant as the service name currently needs to end in a
random token defined by the launcher.

This came up when trying to put DBus activated services into the correct
cgroup. There isn't enough metadata in the DBus service file to know the
correct application ID, and the most intuitive fix is for those
applications to just specify the SystemdService file in the existing
system. They're generally unique for a given user session anyway so
don't need a separate cgroup identifier.

This changes the spec for RANDOM to be optional for services.

It also changes the separator between in services to act like templates.
Ultimately that's what we're trying to recreate with the RANDOM token of
the systemd service and it's a better fit. It's needed as otherwise with
launcher and the random ident being both optional it would be impossible
to get the application ID reliably.

Scopes are unchanged as they don't support templates.

4 years agojournal: simplify vsnprintf() ret value check
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jun 2020 09:24:57 +0000 (11:24 +0200)] 
journal: simplify vsnprintf() ret value check

Follow-up for dfa64b64a7.

4 years agopager: set PR_DEATHSIG for pager to SIGINT rather than SIGTERM
Lennart Poettering [Tue, 9 Jun 2020 06:59:33 +0000 (08:59 +0200)] 
pager: set PR_DEATHSIG for pager to SIGINT rather than SIGTERM

"less" doesn't properly reset its terminal on SIGTERM, it does so only
on SIGINT. Let's thus configure SIGINT instead of SIGTERM.

I think this is something less should fix too, and clean up things
correctly on SIGTERM, too. However, given that we explicitly enable
SIGINT behaviour by passing "K" to $LESS I figure it makes sense if we
also send SIGINT instead of SIGTERM to match it.

Fixes: #16084
4 years agodocs: point contributors to list of most recent systemd releases
Lennart Poettering [Tue, 9 Jun 2020 07:42:12 +0000 (09:42 +0200)] 
docs: point contributors to list of most recent systemd releases

Fixes: #16083
4 years agoMerge pull request #16111 from poettering/bitlck-fix
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jun 2020 08:25:36 +0000 (10:25 +0200)] 
Merge pull request #16111 from poettering/bitlck-fix

bitlocker cryptsetup fix

4 years agoMerge pull request #16118 from poettering/inaccessible-fixlets
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jun 2020 08:23:13 +0000 (10:23 +0200)] 
Merge pull request #16118 from poettering/inaccessible-fixlets

move $XDG_RUNTIME_DIR/inaccessible/ to $XDG_RUNTIME_DIR/systemd/inaccessible

4 years agoMerge pull request #16120 from poettering/udevd-fixlets
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jun 2020 08:18:36 +0000 (10:18 +0200)] 
Merge pull request #16120 from poettering/udevd-fixlets

minor udev fixlets

4 years agocore: do not touch instance from unit_choose_id() 15940/head
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2020 14:36:38 +0000 (16:36 +0200)] 
core: do not touch instance from unit_choose_id()

unit_choose_id() is about marking one of the aliases of the unit as the main
name. With the preparatory work in previous patches, all aliases of the unit
must have the same instance, so the operation to update the instance is a noop.

4 years agocore: create socket service instances with the correct name from the start
Zbigniew Jędrzejewski-Szmek [Fri, 29 May 2020 12:24:12 +0000 (14:24 +0200)] 
core: create socket service instances with the correct name from the start

Upon an incoming connection for an accepting socket, we'd create a unit like
foo@0.service, then figure out that the instance name should be e.g. "0-41-0",
and then add the name foo@0-41-0.service to the unit. This obviously violates
the rule that any service needs to have a constance instance part.

So let's reverse the order: we first determine the instance name and then
create the unit with the correct name from the start.

There are two cases where we don't know the instance name:
- analyze-verify: we just do a quick check that the instance unit can be
  created. So let's use a bogus instance string.
- selinux: the code wants to load the service unit to extract the ExecStart path
  and query it for the selinux label. Do the same as above.

Note that in both cases it is possible that the real unit that is loaded could
be different than the one with the bogus instance value, for example if there
is a dropin for a specific instance name. We can't do much about this, since we
can't figure out the instance name in advance. The old code had the same
shortcoming.

4 years agocore: rework error messages in unit_add_name()
Zbigniew Jędrzejewski-Szmek [Fri, 29 May 2020 09:22:14 +0000 (11:22 +0200)] 
core: rework error messages in unit_add_name()

They were added recently in acd1987a1867fc3390ef2516962b2313cbeb366e. We can
make them more informative by using unit_type_to_string() and not repeating
unit names as much. Also, %m should not be used together with SYNTHETIC_ERRNO().

4 years agocore: when adding names to unit, require matching instance strings
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2020 14:39:35 +0000 (16:39 +0200)] 
core: when adding names to unit, require matching instance strings

We would check that the instance is present in both units (or missing in both).
But when it is defined, it should be the same in both. The comment in the code
was explicitly saying that differing instance strings are allowed, but this
mostly seems to be a left-over from old times. The man page is pretty clear:

> the instance (if any) is always uniquely defined for a given unit and all its
> aliases.

4 years agocore: store unit aliases in a separate set
Zbigniew Jędrzejewski-Szmek [Wed, 27 May 2020 13:49:17 +0000 (15:49 +0200)] 
core: store unit aliases in a separate set

We allocated the names set for each unit, but in the majority of cases, we'd
put only one name in the set:

$ systemctl show --value -p Names '*'|grep .|grep -v ' '|wc -l
564
$ systemctl show --value -p Names '*'|grep .|grep ' '|wc -l
16

So let's add a separate .id field, and only store aliases in the set, and only
create the set if there's at least one alias. This requires a bit of gymnastics
in the code, but I think this optimization is worth the trouble, because we
save one object for many loaded units.

In particular set_complete_move() wasn't very useful because the target
unit would always have at least one name defined, i.e. the optimization to
move the whole set over would never fire.

4 years agoMerge pull request #16087 from mrc0mmand/travis-build-check
Zbigniew Jędrzejewski-Szmek [Wed, 10 Jun 2020 07:06:14 +0000 (09:06 +0200)] 
Merge pull request #16087 from mrc0mmand/travis-build-check

travis: check build with various compiler options

4 years agotree-wide: check POLLNVAL everywhere
Lennart Poettering [Tue, 9 Jun 2020 11:40:25 +0000 (13:40 +0200)] 
tree-wide: check POLLNVAL everywhere

poll() sets POLLNVAL inside of the poll structures if an invalid fd is
passed. So far we generally didn't check for that, thus not taking
notice of the error. Given that this specific kind of error is generally
indication of a programming error, and given that our code is embedded
into our projects via NSS or because people link against our library,
let's explicitly check for this and convert it to EBADF.

(I ran into a busy loop because of this missing check when some of my
test code accidentally closed an fd it shouldn't close, so this is a
real thing)

4 years agotree-wide: mark assert()-only variables as unused 16087/head
Frantisek Sumsal [Tue, 9 Jun 2020 19:31:10 +0000 (21:31 +0200)] 
tree-wide: mark assert()-only variables as unused

to make a compilation with -Db_ndebug=true and --werror pass once again.

4 years agotravis: check build with various compiler options
Frantisek Sumsal [Sun, 7 Jun 2020 12:05:20 +0000 (14:05 +0200)] 
travis: check build with various compiler options

In the past we occasionally stumbled upon a build issue which could be
reproduced only with specific optimization level or other compilation
option. Let's try to build the current revision with several most common
compiler options causing such issues to catch them early.

4 years agoMerge pull request #16104 from ssahani/dhcpv6-iaid
Daan De Meyer [Tue, 9 Jun 2020 19:18:28 +0000 (21:18 +0200)] 
Merge pull request #16104 from ssahani/dhcpv6-iaid

networkctl: Display DHCPv6 IAID

4 years agoAppArmor: Support for loading a set of pre-compiled profiles at startup time
YmrDtnJu [Mon, 25 May 2020 08:46:54 +0000 (10:46 +0200)] 
AppArmor: Support for loading a set of pre-compiled profiles at startup time

Let systemd load a set of pre-compiled AppArmor profile files from a policy
cache at /etc/apparmor/earlypolicy. Maintenance of that policy cache must be
done outside of systemd.

After successfully loading the profiles systemd will attempt to change to a
profile named systemd.

If systemd is already confined in a profile, it will not load any profile files
and will not attempt to change it's profile.

If anything goes wrong, systemd will only log failures. It will not fail to
start.

4 years agoMerge pull request #16058 from Werkov/fix-memory-protection-default
Lennart Poettering [Tue, 9 Jun 2020 18:02:53 +0000 (20:02 +0200)] 
Merge pull request #16058 from Werkov/fix-memory-protection-default

Fix memory protection default setting

4 years agoMerge pull request #16046 from bluca/dissect_squashfs_verity
Lennart Poettering [Tue, 9 Jun 2020 17:52:21 +0000 (19:52 +0200)] 
Merge pull request #16046 from bluca/dissect_squashfs_verity

dissect: single-filesystem verity images with external hashdevice

4 years agoman: udevadm: mention non-zero exit code on settle
Yigal Korman [Sun, 7 Jun 2020 18:46:59 +0000 (21:46 +0300)] 
man: udevadm: mention non-zero exit code on settle

'udevadm settle --timeout=XY' will return 1 in case the timeout was
reached and the event queue was not empty.
The manpage should mention it.

4 years agotest-network: wait 2min for the bridge being in configured state
Yu Watanabe [Tue, 9 Jun 2020 09:27:57 +0000 (18:27 +0900)] 
test-network: wait 2min for the bridge being in configured state

On some CIs, it may takes more than 40 seconds.

Hopefully fixes #16105.

4 years agodoc: Try to clarify automount dependency confusion
Chris Down [Tue, 9 Jun 2020 13:43:05 +0000 (14:43 +0100)] 
doc: Try to clarify automount dependency confusion

Arch recently upgraded systemd to 245.6. Shortly afterwards, users began
reporting[0] that systemd detected an ordering cycle, and they were
unable to log in. The reason they were unable to log in was because of
ordering cycle resolution:

    [...]
    systemd[1]: sysinit.target: Job systemd-tmpfiles-setup.service/start deleted to break ordering cycle starting with sysinit.target/start
    systemd[1]: sysinit.target: Job systemd-update-done.service/start deleted to break ordering cycle starting with sysinit.target/start
    systemd[1]: sysinit.target: Job systemd-journal-catalog-update.service/start deleted to break ordering cycle starting with sysinit.target/start
    systemd[1]: sysinit.target: Job local-fs.target/start deleted to break ordering cycle starting with sysinit.target/start
    systemd[1]: sysinit.target: Job systemd-tmpfiles-setup.service/start deleted to break ordering cycle starting with sysinit.target/start
    [...]

Whether the resolution did the right thing here or not is a longer-term
discussion, but in the interim we should at least make this distinction
between automount dependencies and mount dependencies clearer in the
documentation, so that users and distribution maintainers know what's
acceptable. In this case Arch actually backed out b3d7aef5 entirely and
released a new version due to the confusion.

Also see https://github.com/systemd/systemd-stable/issues/69.

0: https://bugs.archlinux.org/task/66908

4 years agodocs: use bool in varlink interface definition
Michał Bartoszkiewicz [Thu, 28 May 2020 16:02:03 +0000 (18:02 +0200)] 
docs: use bool in varlink interface definition

Boolean type in varlink is named bool, not boolean.

4 years agoinaccessible: move inaccessible file nodes to /systemd/ subdir in runtime dir always 16118/head
Lennart Poettering [Tue, 9 Jun 2020 14:22:24 +0000 (16:22 +0200)] 
inaccessible: move inaccessible file nodes to /systemd/ subdir in runtime dir always

Let's make sure $XDG_RUNTIME_DIR for the user instance and /run for the
system instance is always organized the same way: the "inaccessible"
device nodes should be placed in a subdir of either called "systemd" and
a subdir of that called "inaccessible".

This way we can emphasize the common behaviour, and only differ where
really necessary.

Follow-up for #13823

4 years agologin: use ERRNO_IS_PRIVILEGE() where appropriate
Lennart Poettering [Tue, 9 Jun 2020 14:13:51 +0000 (16:13 +0200)] 
login: use ERRNO_IS_PRIVILEGE() where appropriate

4 years agomkdir: use log_full_errno() where appropriate
Lennart Poettering [Tue, 9 Jun 2020 14:13:16 +0000 (16:13 +0200)] 
mkdir: use log_full_errno() where appropriate

4 years agoudev: set fewer process properties 16120/head
Lennart Poettering [Tue, 9 Jun 2020 13:40:20 +0000 (15:40 +0200)] 
udev: set fewer process properties

On systemd systems we generally don't need to chdir() to root, we don't
need to setup /dev/ ourselves (as PID 1 does that during earliest boot),
and we don't need to set the OOM adjustment values, as that's done via
unit files.

Hence, drop this. if people want to use udev from other init systems
they should do this on their own, I am very sure it's a good thing to do
it from outside of udevd, so that fewer privileges are required by udevd. In
particular the dev_setup() stuff is something that people who build
their own non-systemd distros want to set up themselves anyway, in
particular as they already have to mount devtmpfs themselves anyway.

Note that this only drops stuff that isn't really necessary for testing
stuff, i.e. process properties and settings that don't matter if you
quickly want to invoke udev from a terminal session to test something.

4 years agoudevd: use cpus_in_affinity_mask()
Lennart Poettering [Tue, 9 Jun 2020 13:39:51 +0000 (15:39 +0200)] 
udevd: use cpus_in_affinity_mask()

Let's make use of our own helpers. This has the benefit that we can deal
with arbitrarily sized affinity masks.

4 years agoMerge pull request #16074 from msekletar/freezer-test-flakes
Lennart Poettering [Tue, 9 Jun 2020 12:38:40 +0000 (14:38 +0200)] 
Merge pull request #16074 from msekletar/freezer-test-flakes

Freezer test flakes

4 years agocryptsetup: pass selected mode to crypt_load() when doing LUKS 16111/head
Lennart Poettering [Tue, 9 Jun 2020 12:21:32 +0000 (14:21 +0200)] 
cryptsetup: pass selected mode to crypt_load() when doing LUKS

This doesn't fix anything IRL, but is a bit cleaner, since it makes sure
that arg_type is properly passed to crypt_load() in all cases.

We actually never set arg_type to CRYPT_LUKS2, which is why this wasn't
noticed before, but theoretically this might change one day, and
existing comments suggest it as possible value for arg_type, hence let's
process it properly.

4 years agocryptsetup: try to load bitlocker superblock only if requested
Lennart Poettering [Tue, 9 Jun 2020 12:18:09 +0000 (14:18 +0200)] 
cryptsetup: try to load bitlocker superblock only if requested

let's do automatic discovery only for our native LUKS/LUKS2 headers,
since they are Linux stuff, and let's require that BitLocker to be
requested explicitly.

This makes sure cryptsetup without either "luks" nor "bitlk" in the
option string will work. Right now it would fail because we'd load the
superblock once with luks and once with bitlk and one of them would
necessarily fail.

Follow-up for #15979

4 years agohwbd entry for Dell Inspiron Chromebook 14 2-in-1 sensor (#16109)
Yegor Vialov [Tue, 9 Jun 2020 11:31:58 +0000 (14:31 +0300)] 
hwbd entry for  Dell Inspiron Chromebook 14 2-in-1 sensor (#16109)

4 years agologin: allow individual USB ports to be assigned to seats
Adam Nielsen [Mon, 8 Jun 2020 02:40:47 +0000 (12:40 +1000)] 
login: allow individual USB ports to be assigned to seats

Assigning seats to specific USB ports lets the devices plugged into them
inherit the port's seat assignment.

4 years agodissect: support single-filesystem verity images with external verity hash 16046/head
Luca Boccassi [Fri, 29 May 2020 16:51:20 +0000 (17:51 +0100)] 
dissect: support single-filesystem verity images with external verity hash

dm-verity support in dissect-image at the moment is restricted to GPT
volumes.
If the image a single-filesystem type without a partition table (eg: squashfs)
and a roothash/verity file are passed, set the verity flag and mark as
read-only.

4 years agonetworkctl: DHCPv6 - display IAID 16104/head
Susant Sahani [Tue, 9 Jun 2020 08:50:21 +0000 (10:50 +0200)] 
networkctl: DHCPv6 - display IAID

4 years agosd-network: Introduce API to get DHCPv6 IAID
Susant Sahani [Tue, 9 Jun 2020 08:49:38 +0000 (10:49 +0200)] 
sd-network: Introduce API to get DHCPv6 IAID

4 years agonetwork: DHCPv6 - export IAID to state file
Susant Sahani [Tue, 9 Jun 2020 08:49:08 +0000 (10:49 +0200)] 
network: DHCPv6 - export IAID to state file

4 years agodhcp6: Provide method to access IAID
Susant Sahani [Tue, 9 Jun 2020 08:48:36 +0000 (10:48 +0200)] 
dhcp6: Provide method to access IAID

4 years agoMerge pull request #16080 from YmrDtnJu/9p
Lennart Poettering [Tue, 9 Jun 2020 08:51:20 +0000 (10:51 +0200)] 
Merge pull request #16080 from YmrDtnJu/9p

9p is a network filesystem

4 years agocore: let user define start-/stop-timeout behaviour
Jan Klötzke [Tue, 16 Apr 2019 14:45:20 +0000 (16:45 +0200)] 
core: let user define start-/stop-timeout behaviour

The usual behaviour when a timeout expires is to terminate/kill the
service. This is what user usually want in production systems. To debug
services that fail to start/stop (especially sporadic failures) it
might be necessary to trigger the watchdog machinery and write core
dumps, though. Likewise, it is usually just a waste of time to
gracefully stop a stuck service. Instead it might save time to go
directly into kill mode.

This commit adds two new options to services: TimeoutStartFailureMode=
and TimeoutStopFailureMode=. Both take the same values and tweak the
behavior of systemd when a start/stop timeout expires:

 * 'terminate': is the default behaviour as it has always been,
 * 'abort': triggers the watchdog machinery and will send SIGABRT
   (unless WatchdogSignal was changed) and
 * 'kill' will directly send SIGKILL.

To handle the stop failure mode in stop-post state too a new
final-watchdog state needs to be introduced.

4 years agoMerge pull request #16073 from keszybz/shell-completion
Lennart Poettering [Tue, 9 Jun 2020 07:33:41 +0000 (09:33 +0200)] 
Merge pull request #16073 from keszybz/shell-completion

Bash completion for homectl and help improvement for kernel-install

4 years agoMerge pull request #15953 from keszybz/gdb-script
Lennart Poettering [Tue, 9 Jun 2020 07:31:49 +0000 (09:31 +0200)] 
Merge pull request #15953 from keszybz/gdb-script

Update gdb script to match current sources and other hashmap improvements

4 years agopid1: rework handling of m->show_status
Franck Bui [Mon, 27 Apr 2020 09:06:34 +0000 (11:06 +0200)] 
pid1: rework handling of m->show_status

The fact that m->show_status was serialized/deserialized made impossible any
further customisation of this setting via system.conf. IOW the value was
basically always locked unless it was changed via signals.

This patch reworks the handling of m->show_status but also makes sure that if a
new value was changed via the signal API then this value is kept and preserved
accross PID1 reexecuting or reloading.

Note: this effectively means that once the value is set via the signal
interface, it can be changed again only through the signal API.

4 years agopid1: rename manager_get_show_status() to manager_should_show_status()
Franck Bui [Tue, 26 May 2020 08:20:44 +0000 (10:20 +0200)] 
pid1: rename manager_get_show_status() to manager_should_show_status()

The name 'manager_get_show_status()' suggests that the function simply reads
the property 'show_status' of the manager and hence returns a 'StatusType'
value.

However it was doing more than that since it contained the logic (based on
'show_status' but also on the state of the manager) to figure out if status
message could be emitted to the console.

Hence this patch renames the function to 'manager_should_show_status()'. The
previous name will be reused in a later patch to effectively return the value
of 'show_status' property.

No functional change.

4 years agopid1: make more use of show_status_on()
Franck Bui [Mon, 27 Apr 2020 16:14:44 +0000 (18:14 +0200)] 
pid1: make more use of show_status_on()

No functional change.

4 years agoMerge pull request #16047 from poettering/udev-ro-block
Lennart Poettering [Tue, 9 Jun 2020 07:09:32 +0000 (09:09 +0200)] 
Merge pull request #16047 from poettering/udev-ro-block

udev: optionally mark all block devices popping up read-only by default

4 years agoupdate TODO
Lennart Poettering [Tue, 9 Jun 2020 06:54:41 +0000 (08:54 +0200)] 
update TODO

4 years agoMerge pull request #16085 from ssahani/network-client-id
Yu Watanabe [Tue, 9 Jun 2020 06:30:23 +0000 (15:30 +0900)] 
Merge pull request #16085 from ssahani/network-client-id

networkctl: add support to display DHCPv4 client ID

4 years agoAdd 'bitlk' option to mount Bitlocker drives with cryptsetup.
Maxim Fomin [Sat, 30 May 2020 10:21:44 +0000 (11:21 +0100)] 
Add 'bitlk' option to mount Bitlocker drives with cryptsetup.

4 years agomount-tool: Replace fstype_is_{network,api_vfs} with fstype_is_blockdev_backed 16080/head
YmrDtnJu [Mon, 8 Jun 2020 17:25:18 +0000 (19:25 +0200)] 
mount-tool: Replace fstype_is_{network,api_vfs} with fstype_is_blockdev_backed

Not every filesystem that is not a network filesystem and also not an API VFS
filesystem has a corresponding block device.

4 years agobasic: New function fstype_is_blockdev_backed for fstypes that need a blockdev
YmrDtnJu [Sat, 6 Jun 2020 10:42:01 +0000 (12:42 +0200)] 
basic: New function fstype_is_blockdev_backed for fstypes that need a blockdev

The function returns true if the specified filesystem requires a block device.

4 years agohwdb: add HP Spectre x360's mic mute switch
Niccolò Maggioni [Mon, 8 Jun 2020 10:45:02 +0000 (12:45 +0200)] 
hwdb: add HP Spectre x360's mic mute switch

Tested on HP Spectre x360 Convertible 13-aw0xxx

4 years agoMerge pull request #16092 from yuwata/network-accept-local-16090
Lennart Poettering [Mon, 8 Jun 2020 16:15:03 +0000 (18:15 +0200)] 
Merge pull request #16092 from yuwata/network-accept-local-16090

network: introduce IPv4AcceptLocal= setting

4 years agoman: single-char parameters take no '=' 16047/head
Lennart Poettering [Fri, 5 Jun 2020 13:42:45 +0000 (15:42 +0200)] 
man: single-char parameters take no '='

The suggested syntax is simply not valid and results in an error.

4 years agounits: tweak udev unit descriptions
Lennart Poettering [Tue, 2 Jun 2020 13:36:17 +0000 (15:36 +0200)] 
units: tweak udev unit descriptions

4 years agoudev: optionally mark all block devices read-only as they pop up
Lennart Poettering [Tue, 2 Jun 2020 13:15:24 +0000 (15:15 +0200)] 
udev: optionally mark all block devices read-only as they pop up

4 years agodissect-image: wait for udev for single filesystem images too
Luca Boccassi [Wed, 3 Jun 2020 18:47:39 +0000 (19:47 +0100)] 
dissect-image: wait for udev for single filesystem images too

Single filesystem images are mounted from the /dev/block/X:Y symlink
rather than /dev/loopZ, so we need to wait for udev to create it or
mounting will be racy and occasionally fail.

4 years agonetworkctl: Display DHCP4 client ID 16085/head
Susant Sahani [Mon, 8 Jun 2020 04:40:23 +0000 (06:40 +0200)] 
networkctl: Display DHCP4 client ID

4 years agosd-network: Introduce API to access DHCP4 client ID
Susant Sahani [Mon, 8 Jun 2020 04:39:50 +0000 (06:39 +0200)] 
sd-network: Introduce API to access DHCP4 client ID

4 years agonetwork: DHCP4 client ID save in state file
Susant Sahani [Mon, 8 Jun 2020 04:39:06 +0000 (06:39 +0200)] 
network: DHCP4 client ID save in state file

4 years agotest-network: add test for IPv4AcceptLocal= 16092/head
Yu Watanabe [Mon, 8 Jun 2020 04:51:50 +0000 (13:51 +0900)] 
test-network: add test for IPv4AcceptLocal=

4 years agonetwork: introduce IPv4AcceptLocal= setting
Yu Watanabe [Mon, 8 Jun 2020 04:48:14 +0000 (13:48 +0900)] 
network: introduce IPv4AcceptLocal= setting

Closes #16090.

4 years agohomed help --uid short option
layderv [Sat, 6 Jun 2020 16:01:56 +0000 (12:01 -0400)] 
homed help --uid short option