Zbigniew Jędrzejewski-Szmek [Sat, 16 Apr 2016 22:31:42 +0000 (18:31 -0400)]
journald: rewrite function with switch, fix handling of -ESHUTDOWN
The comments and the log messages are next to one another, so it's easier
to check that the messages match the comments.
The sign was omitted in the check for -ESHUTDOWN, so it was never matched.
Zbigniew Jędrzejewski-Szmek [Sat, 16 Apr 2016 22:21:58 +0000 (18:21 -0400)]
sd-bus: use IN_SET
Zbigniew Jędrzejewski-Szmek [Sat, 16 Apr 2016 21:41:46 +0000 (17:41 -0400)]
systemctl: make --root=/ disable dbus again
Before
0f03c2a4c093 specifying any path would cause the systemctl client
to do the installation itself, instead of going over dbus. Restore that
behaviour.
Harald Hoyer [Thu, 14 Apr 2016 23:14:29 +0000 (01:14 +0200)]
core/mount-setup.c: also relabel /dev/shm for selinux (#3039)
daemons, which wish to transition state from the initramfs to the real
root, might use /dev/shm for their state.
As /dev is not relabeled across mount points, /dev/shm has to be
relabled explicitly.
Daniel Mack [Thu, 14 Apr 2016 16:13:34 +0000 (18:13 +0200)]
Merge pull request #3036 from evverx/add-ldl
build-sys: add missing -ldl
Susant Sahani [Thu, 14 Apr 2016 09:56:57 +0000 (15:26 +0530)]
networkd: Add support to configure proxy arp support to interfaces (#3020)
Fixes: #2889
Daniel Mack [Thu, 14 Apr 2016 08:41:27 +0000 (10:41 +0200)]
Merge pull request #3029 from ipuustin/supplementary-gids
sd-bus: query pid also when requesting supplementary gids information
Martin Pitt [Thu, 14 Apr 2016 08:14:41 +0000 (10:14 +0200)]
Merge pull request #3033 from keszybz/code-cleanups
Code cleanups
Zbigniew Jędrzejewski-Szmek [Thu, 14 Apr 2016 01:11:28 +0000 (21:11 -0400)]
systemctl: fix leak
CID #1354670.
Zbigniew Jędrzejewski-Szmek [Thu, 14 Apr 2016 01:10:33 +0000 (21:10 -0400)]
shared/path-lookup: fix leak
CID #1354671: char **l would be leaked.
Also rename l to paths, to make the code easier to read,
and do strv deduplication immediately when extending. No need to allocate
strings to remove them a few lines down.
Zbigniew Jędrzejewski-Szmek [Thu, 14 Apr 2016 01:09:32 +0000 (21:09 -0400)]
test-strv: add a test that extending empty strv works as expected
Just making sure :)
Evgeny Vereshchagin [Thu, 14 Apr 2016 00:24:58 +0000 (00:24 +0000)]
build-sys: add missing -ldl
Fixes #3035
Evgeny Vereshchagin [Wed, 13 Apr 2016 13:57:06 +0000 (16:57 +0300)]
tests: don't rely on the host's systemd-nspawn, don't register test machine (#3023)
Fixes:
$ cd test/TEST-07-ISSUE-1981/
$ sudo make clean setup run
...
timeout: failed to run command ‘systemd-nspawn’: No such file or directory
...
TEST RUN: https://github.com/systemd/systemd/issues/1981 [FAILED]
Makefile:10: recipe for target 'run' failed
make: *** [run] Error 1
Ismo Puustinen [Wed, 13 Apr 2016 12:38:03 +0000 (15:38 +0300)]
sd-bus: query pid also when searching for supplementary gids
If the SD_BUS_CREDS_SUPPLEMENTARY_GIDS value is requested, the pid is
queried to find out the supplementary gids value from /proc/pid/status.
Otherwise sd_bus_creds_get_supplementary_gids() won't work unless some
other value in mask triggered fetching the pid information.
Zbigniew Jędrzejewski-Szmek [Sat, 9 Apr 2016 18:04:09 +0000 (14:04 -0400)]
tree-wide: remove useless NULLs from strjoina
The coccinelle patch didn't work in some places, I have no idea why.
Zbigniew Jędrzejewski-Szmek [Sat, 9 Apr 2016 02:20:22 +0000 (22:20 -0400)]
basic/util: silence stupid gcc warnings about unitialized variable
Martin Pitt [Tue, 12 Apr 2016 16:20:13 +0000 (18:20 +0200)]
Merge pull request #2973 from poettering/search-path
Many fixes, in particular to the install logic
Nicolas Braud-Santoni [Tue, 12 Apr 2016 16:00:19 +0000 (18:00 +0200)]
load-fragment: Resolve specifiers in DeviceAllow (#3019)
Closes #1602
Lennart Poettering [Tue, 12 Apr 2016 14:13:28 +0000 (16:13 +0200)]
systemctl: when we want to know whether there's a native unit file, don't choke on ELOOP
ELOOP indicates that there's a symlink in /etc for a native unit file, and
that's completely OK.
Lennart Poettering [Tue, 12 Apr 2016 11:51:28 +0000 (13:51 +0200)]
test-dnssec: drop unused variable
Lennart Poettering [Tue, 12 Apr 2016 11:51:06 +0000 (13:51 +0200)]
core: make sure we always free the list of changes
Lennart Poettering [Mon, 11 Apr 2016 16:48:31 +0000 (18:48 +0200)]
man: shorten the list of unit file paths a bit
Let's make this more digestable to read by making the list of documented unit
file paths a bit shorter.
Specifically, let's drop references to $XDG_CONFIG_HOME and $XDG_DATA_HOME, as
their default values are listed too already. Given that the fact that the XDG
basedir spec makes these paths configurable is probably not a strong point of
the spec, let's drop the reference to the env vars, and keep only the literal,
default paths for them in the list. Of course, we do support the full XDG
basedir spec in this regard, but it's one thing to implement it and another one
to recommend it by documenting it.
Replace "$HOME" by "~", because UNIX.
Lennart Poettering [Mon, 11 Apr 2016 16:20:02 +0000 (18:20 +0200)]
core: keep track of the mtime of the transient unit file we wrote
Otherwise "systemctl status" will immediately report that our unit file is out
of date.
Lennart Poettering [Wed, 24 Feb 2016 16:20:12 +0000 (17:20 +0100)]
update TODO
Lennart Poettering [Mon, 11 Apr 2016 16:07:45 +0000 (18:07 +0200)]
sd-lldp: minor whitespace fixes
Lennart Poettering [Mon, 11 Apr 2016 16:07:04 +0000 (18:07 +0200)]
sd-lldp: drop LLDP ethernet export from sd-lldp.h
We only use it for the Tx code anyway, hence sd-lldp.h shouldn't expose it, as
it only implements Rx.
Lennart Poettering [Mon, 11 Apr 2016 15:57:05 +0000 (17:57 +0200)]
core: make sure we generate a nicer error when a linked unit is attempted to be enabled
We don't allow using config symlinks to enable units, but the error message we
printed was awful. Fix that, and generate a more readable error.
Fixes #3010.
Lennart Poettering [Mon, 11 Apr 2016 15:24:08 +0000 (17:24 +0200)]
machinectl: add new "machinectl clean" command
This new command removes all, or all hidden container images that have been
downloaded.
Lennart Poettering [Fri, 8 Apr 2016 17:13:43 +0000 (19:13 +0200)]
README: document that we only support util-linux built with --enable-libmount-force-mountinfo
Fixes: #2978
Lennart Poettering [Fri, 8 Apr 2016 17:00:00 +0000 (19:00 +0200)]
man: clarify that DefaultDependencies= is in the [Unit] section
This hopefully reduces confusion resulting in issues like #2992.
Lennart Poettering [Fri, 8 Apr 2016 16:54:05 +0000 (18:54 +0200)]
tests: override XDG_RUNTIME_DIR where we use the user runtime dir
We don#t really support systems where XDG_RUNTIME_DIR is not supported for
systemd --user. Hence, let's always set our own XDG_RUNTIME_DIR for tests that
involve systemd --user, so that we know it is set, and that it doesn't polute
the user's actual runtime dir.
Lennart Poettering [Fri, 8 Apr 2016 16:13:02 +0000 (18:13 +0200)]
core: optimize unit_write_drop_in a bit
There's no point in first determining the drop-in file name path, then
forgetting it again, and then determining it again. Instead, just generated it
once, and then write to ti directly.
Lennart Poettering [Fri, 8 Apr 2016 16:10:32 +0000 (18:10 +0200)]
core: when creating a drop-in snippet, add a comment explaining this to it
Lennart Poettering [Fri, 8 Apr 2016 16:00:36 +0000 (18:00 +0200)]
core,systemctl: add new "systemctl revert" command
This allows dropping all user configuration and reverting back to the vendor
default of a unit file. It basically undoes what "systemctl edit", "systemctl
set-property" and "systemctl mask" do.
Lennart Poettering [Fri, 8 Apr 2016 15:59:52 +0000 (17:59 +0200)]
install: fix errno handling
Lennart Poettering [Fri, 8 Apr 2016 15:58:53 +0000 (17:58 +0200)]
install: simplify skip_root() a bit
Exit early, so that we can get rid of the large if block.
Lennart Poettering [Fri, 8 Apr 2016 09:30:24 +0000 (11:30 +0200)]
nstall: no need to export unit_file_lookup_state() anymore
We only use it inside of install.c, hence let's make it static.
Lennart Poettering [Fri, 8 Apr 2016 09:27:28 +0000 (11:27 +0200)]
tree-wide: add new SIGNAL_VALID() macro-like function that validates signal numbers
And port all code over to use it.
Lennart Poettering [Thu, 7 Apr 2016 17:22:24 +0000 (19:22 +0200)]
basic: remove rbtree code, it's unused
it's unused, and should we need it one day we can always resurrect it from git
history.
Lennart Poettering [Thu, 7 Apr 2016 17:18:59 +0000 (19:18 +0200)]
sysv-generator: port to use new unit_file_exists() call
The code previously queries the state of a unit file, but was only interested
in the existance of it, hence let's use unit_file_exists() instead, the same
way the SysV compat code in systemctl does it.
Lennart Poettering [Thu, 7 Apr 2016 16:48:01 +0000 (18:48 +0200)]
systemctl: don't confuse sysv code with generated units
The SysV compat code checks whether there's a native unit file before looking
for a SysV init script. Since the newest rework generated units will show up in
the unit path, and hence the checks ended up assuming that there always was a
native unit file for each init script: the generated one.
With this change the generated unit file directory is suppressed from the
search path when this check is done, to avoid the confusion.
Lennart Poettering [Thu, 7 Apr 2016 15:51:26 +0000 (17:51 +0200)]
path-lookup: move generator_binary_paths() to end of file
Let's keep the code that manipulates LookupPaths together, and move
generator_binary_paths() to the end of the .h and .c files, since it is not
strictly related to that.
Lennart Poettering [Thu, 7 Apr 2016 15:41:48 +0000 (17:41 +0200)]
systemctl: add error message when we get unexpected event from waitid()
We should log about everything we don't expect.
Also, add a comment for one case were we do not log, on purpose, and make it
use a separate error code.
Lennart Poettering [Thu, 7 Apr 2016 15:41:35 +0000 (17:41 +0200)]
systemctl: fix incorrect errno for error message
Lennart Poettering [Thu, 7 Apr 2016 15:40:11 +0000 (17:40 +0200)]
systemctl: move check whether a service exists as native unit file to install.c
Move the search path check from the SysV service compat support into install.c
so that we can reuse the usual algorithm instead of rolling a private loop for
this.
Lennart Poettering [Thu, 7 Apr 2016 14:53:37 +0000 (16:53 +0200)]
core: rework reboot parameter logic a bit
Always warn if something fails, and clarify that the involved utility functions
do so in their name.
Drop the REBOOT_PARAM_FILE macro. We don't do this for other flag file paths
like this, so don't do this for this one either. The path isn't configurable
anyway, hence let's make this easier to read by avoiding this one indirection.
Lennart Poettering [Thu, 7 Apr 2016 14:15:26 +0000 (16:15 +0200)]
core: be more paranoid when mixing umask and fopen()
Let's be extra careful with the umask when we use simple fopen(), as this
creates files with 0777 by default.
Lennart Poettering [Thu, 7 Apr 2016 13:43:59 +0000 (15:43 +0200)]
core: rework how transient unit files and property drop-ins work
With this change the logic for placing transient unit files and drop-ins
generated via "systemctl set-property" is reworked.
The latter are now placed in the newly introduced "control" unit file
directory. The fomer are now placed in the "transient" unit file directory.
Note that the properties originally set when a transient unit was created will
be written to and stay in the transient unit file directory, while later
changes are done via drop-ins.
This is preparation for a later "systemctl revert" addition, where existing
drop-ins are flushed out, but the original transient definition is restored.
Lennart Poettering [Wed, 6 Apr 2016 19:02:36 +0000 (21:02 +0200)]
core: introduce a "control" unit file directory
This patch adds a concept of a "control" unit file directory, which is supposed
to be used as place for unit file drop-ins created by "systemctl set-property"
(note that this directory is not actually hooked up to "systemctl set-property"
yet, that's coming in a later patch).
The rationale for this: previously changes made by the user and by "systemctl
set-property" were done in the same directory, which made semantics very
unclear: the changes made by "systemctl set-property" were applied instantly,
and their drop-ins only written to not lose settings on a later "systemctl
daemon-reload", while drop-ins made by the user would only be in effect after
"systemctl daemon-reload". This is particular problematic as the changes made
by "systemctl set-property" would really apply immediately without any respect
for the unit search path. This meant that using "set-property" could have an
effect that is lsot as soon as "daemon-reload" is issued, in case there was a
"later" drop-in already in place.
With this change the directories are seperated, and the "control" directory
always takes the highest priority of all, to avoid any confusion.
Lennart Poettering [Wed, 6 Apr 2016 18:48:58 +0000 (20:48 +0200)]
install: rename generator_paths() → generator_binary_paths()
This is too confusing, as this funciton returns the paths to the generator
binaries, while usually when we refer to the just the "generator path" we mean
the generated unit files. Let's clean this up.
Lennart Poettering [Wed, 6 Apr 2016 18:47:44 +0000 (20:47 +0200)]
core: move flushing of generated unit files to path-lookup.c
It's very similar to the mkdir and trim operations for the generator dirs,
hence let's unify this at a single place.
Lennart Poettering [Wed, 6 Apr 2016 18:46:52 +0000 (20:46 +0200)]
core: minor coding style fix
Lennart Poettering [Wed, 6 Apr 2016 17:15:12 +0000 (19:15 +0200)]
tests: make sure test-path-lookup can run even when no units are installed on test system
Lennart Poettering [Wed, 6 Apr 2016 16:23:37 +0000 (18:23 +0200)]
localed: downgrade libxkbcommon to an optional runtime dependency
Previously, libxkbcommon was a compile-time option. When enabled the localed
binary would strictly depend on it, thus pulling in libxkbcommon and its
dependencies, which are non-trivial in size.
With this change we dlopen() libxkbcommon when it is available instead. If the
library is available behaviour is as before. However, if it isn't the system is
considered "headless", i.e. without local hardware and all attempts to set the
local keyboard configuration will be refused.
This is useful for general-purpose distributions which want to support
"headless" (such as container systems) and "full" systems with the same build.
Lennart Poettering [Wed, 6 Apr 2016 15:49:27 +0000 (17:49 +0200)]
test: bump up log level for install root test
Lennart Poettering [Tue, 5 Apr 2016 17:30:31 +0000 (19:30 +0200)]
shared: add a temporary work-around for kernel header inclusion fuck-up
See: #2864
Lennart Poettering [Mon, 7 Mar 2016 18:15:51 +0000 (19:15 +0100)]
install: unify checking whether operations may be applied to a unit file in a new function
Let's replace repeated code by a single implementation in a single function.
Lennart Poettering [Mon, 7 Mar 2016 18:07:30 +0000 (19:07 +0100)]
install: introduce a new unit file state "transient"
Now, that the search path logic knows the unit path for transient units we also
can introduce an explicit unit file state "transient" that clarifies to the
user what kind of unit file he is encountering.
Lennart Poettering [Mon, 7 Mar 2016 16:40:07 +0000 (17:40 +0100)]
install: fix root prefix handling
Previously, we'd execute some operations with the root prefix applied, while
others without (which was a bug). Clean this up: all paths are now prefixed
properly with the root path, and we strip it off when necessary.
(Of course, an alternative option would be to strictly pass around paths
without the prefix prepended and only prepend it right before hitting the disk,
however, I am came to the conclusion this would result in more code.)
Lennart Poettering [Mon, 29 Feb 2016 19:56:47 +0000 (20:56 +0100)]
path-lookup: make user_runtime_dir() more generic
Let's make the suffix it appends configurable. This way we can reuse it at a second place.
Lennart Poettering [Mon, 29 Feb 2016 19:41:54 +0000 (20:41 +0100)]
path-lookup: clean up user_config_home() and user_runtime_dir()
Let's modernize these calls a bit.
Also, don't call them from user_dirs() anymore, as we already have both dirs in
the list a second time via the persistent_config and runtime_config function
parameters.
Lennart Poettering [Mon, 29 Feb 2016 19:29:53 +0000 (20:29 +0100)]
update CODING_STYLE a bit
Lennart Poettering [Fri, 26 Feb 2016 17:35:46 +0000 (18:35 +0100)]
path-lookup: stop exporting two functions
user_runtime_dir() and user_config_home() are not used externally anymore,
hence let's not export them anymore.
Lennart Poettering [Fri, 26 Feb 2016 17:28:45 +0000 (18:28 +0100)]
core: modernize manager_build_unit_patch_cache() a bit
Lennart Poettering [Fri, 26 Feb 2016 16:58:37 +0000 (17:58 +0100)]
core: don't reorder drop-ins when changing properties
The drop-in order we present should actually show what we is in effect, hence
let's not reorder it when writing changes. After all, just sorting
alphabetically is going to break things, as it doesn't respect that /etc breaks
/run breaks /usr...
Lennart Poettering [Fri, 26 Feb 2016 16:05:33 +0000 (17:05 +0100)]
core: don't drop transient drop-ins when loading the rest
Previously, when creating a transient unit, we'd first add the transient
drop-ins to the unit, and then normally load any other drop-ins later on top of
this, replacing the already loaded drop-ins. Let's not do this, after all the
transient drop-ins area already in effect, let's just add what we find on disk,
but not replace it.
Lennart Poettering [Thu, 25 Feb 2016 01:32:19 +0000 (02:32 +0100)]
core: rework logic to drop duplicate and non-existing items from search path
Move this into a function of its own, so that we can run it after we ran the
generators, so that it takes into account removed generator dirs.
Lennart Poettering [Thu, 25 Feb 2016 00:44:30 +0000 (01:44 +0100)]
path-lookup: split out logic for mkdir/rmdir of generator dirs in their own functions
Lennart Poettering [Thu, 25 Feb 2016 00:13:57 +0000 (01:13 +0100)]
core: add a separate unit directory for transient units
Previously, transient units were created below the normal runtime directory
/run/systemd/system. With this change they are created in a special transient
directory /run/systemd/transient, which only contains data for transient units.
This clarifies the life-cycle of transient units, and makes clear they are
distinct from user-provided runtime units. In particular, users may now
extend transient units via /run/systemd/system, without systemd interfering
with the life-cycle of these files.
This change also adds code so that when a transient unit exits only the
drop-ins in this new directory are removed, but nothing else.
Fixes: #2139
Lennart Poettering [Wed, 24 Feb 2016 23:54:31 +0000 (00:54 +0100)]
path-lookup: add configured unit paths back into search path
After all, for test builds they might differ from /etc/systemd/{user|system},
hence they should be included.
Lennart Poettering [Wed, 24 Feb 2016 23:30:32 +0000 (00:30 +0100)]
core: reuse manager_get_runtime_prefix() at more places
Lennart Poettering [Wed, 24 Feb 2016 23:16:51 +0000 (00:16 +0100)]
install: add root directory to LookupPaths structure
We use the root directory parameter while putting together the LookupPaths
structure, hence let's also store it in the structure as-is. That way we can
drop a parameter from half of the functions in install.c
Also, let's move the validation of the root paths into lookup_paths_init() so
that we can drop even more code from install.c
Lennart Poettering [Wed, 24 Feb 2016 20:47:54 +0000 (21:47 +0100)]
install: change in_search_path() to take a LookupPaths structure
Similar to the other calls that operate on the collected path data.
Lennart Poettering [Wed, 24 Feb 2016 20:45:19 +0000 (21:45 +0100)]
install: rename unit_file_is_generated() → path_is_generator()
This way the funciton name matches nicely our other calls path_is_config() and
path_is_runtime().
Lennart Poettering [Wed, 24 Feb 2016 20:43:09 +0000 (21:43 +0100)]
install: be more accurate when checking whether something is runtime configuration
Let's actually check the runtime config dir, instead of just /run.
Lennart Poettering [Wed, 24 Feb 2016 20:37:42 +0000 (21:37 +0100)]
network: hashmap_put() can fail
Let's properly handle hashmap_put() failing.
Lennart Poettering [Wed, 24 Feb 2016 20:36:09 +0000 (21:36 +0100)]
core: introduce MANAGER_IS_RELOADING() macro
This replaces the old function call manager_is_reloading_or_reexecuting() which
was used only at very few places. Use the new macro wherever we check whether
we are reloading. This should hopefully make things a bit more readable, given
the nature of Manager:n_reloading being a counter.
Lennart Poettering [Wed, 24 Feb 2016 20:24:23 +0000 (21:24 +0100)]
core: remove ManagerRunningAs enum
Previously, we had two enums ManagerRunningAs and UnitFileScope, that were
mostly identical and converted from one to the other all the time. The latter
had one more value UNIT_FILE_GLOBAL however.
Let's simplify things, and remove ManagerRunningAs and replace it by
UnitFileScope everywhere, thus making the translation unnecessary. Introduce
two new macros MANAGER_IS_SYSTEM() and MANAGER_IS_USER() to simplify checking
if we are running in one or the user context.
Lennart Poettering [Wed, 24 Feb 2016 17:17:42 +0000 (18:17 +0100)]
systemctl: port systemctl over to the new LookupPaths configuration directory fields
Lennart Poettering [Wed, 24 Feb 2016 16:52:45 +0000 (17:52 +0100)]
install: make use of configuration directory paths in LookupPaths
Now that the LookupPaths structure contains the directory paths, let's make use
of that everywhere instead of duplicating the logic.
Lennart Poettering [Wed, 24 Feb 2016 16:18:42 +0000 (17:18 +0100)]
core: add configuration directories to LookupPaths
Let's add a seperate fields for the directories where we place runtime and
persistent configuration, so that we can use this in install.c (to be added in
a later commit), and we store path information in the same place everywhere.
Lennart Poettering [Wed, 24 Feb 2016 15:02:48 +0000 (16:02 +0100)]
core: when enabling a generated unit file, return a clean error
Let's be precise when the user tries to invoke an "enable" operation on a
generated unit file.
Lennart Poettering [Wed, 24 Feb 2016 14:44:46 +0000 (15:44 +0100)]
core: add a new unit file state "generated"
Now that we store the generator directories in LookupPaths we can use this to
intrdouce a new unit file state called "generated", for units in these
directories.
Fixes: #2348
Lennart Poettering [Wed, 24 Feb 2016 14:31:33 +0000 (15:31 +0100)]
core: rework generator dir logic, move the dirs into LookupPaths structure
A long time ago – when generators where first introduced – the directories for
them were randomly created via mkdtemp(). This was changed later so that they
use fixed name directories now. Let's make use of this, and add the genrator
dirs to the LookupPaths structure and into the unit file search path maintained
in it. This has the benefit that the generator dirs are now normal part of the
search path for all tools, and thus are shown in "systemctl list-unit-files"
too.
Lennart Poettering [Wed, 24 Feb 2016 13:08:53 +0000 (14:08 +0100)]
man: minor nspawn doc fixes
Lennart Poettering [Tue, 23 Feb 2016 19:38:53 +0000 (20:38 +0100)]
core: drop SysV paths from path-lookup logic
We don't need it anymore, give that sysv-generator can determine the path on
its own now.
Lennart Poettering [Tue, 23 Feb 2016 19:37:37 +0000 (20:37 +0100)]
sysv-generator: don't use LookupPath logic for determining SysV paths
The sysv-generator is the only user of the SysV paths these days, let's make it
figure out the right paths on its own.
(In a subsequent commit we can then drop the same logic from LookupPath).
Lennart Poettering [Tue, 23 Feb 2016 19:29:06 +0000 (20:29 +0100)]
import: drop unused definition
Lennart Poettering [Tue, 12 Apr 2016 09:34:44 +0000 (11:34 +0200)]
Merge pull request #3016 from martinpitt/systemctl-enable
Install: correctly report symlink creations
Zbigniew Jędrzejewski-Szmek [Tue, 12 Apr 2016 09:10:57 +0000 (05:10 -0400)]
Do not report masked units as changed (#2921)
* core/unit: extract checking of stat paths into helper function
The same code was repeated three times.
* core: treat masked files as "unchanged"
systemctl prints the "unit file changed on disk" warning
for a masked unit. I think it's better to print nothing in that
case.
When a masked unit is loaded, set mtime as 0. When checking
if a unit with mtime of 0 needs reload, check that the mask
is still in place.
* test-dnssec: fix build without gcrypt
Also reorder the test functions to follow the way they are called
from main().
Lukáš Nykrýn [Tue, 12 Apr 2016 05:44:28 +0000 (07:44 +0200)]
rules: set SYSTEMD_READY=0 on DM_UDEV_DISABLE_OTHER_RULES_FLAG=1 only with ADD event (#2747)
The "SYSTEMD_READY=0" will cause automatic unmount
of mountpoint that is on top of such DM device
if this is used with multipath which sets
DM_UDEV_DISABLE_OTHER_RULES_FLAG in case
we have a CHANGE event thatcomes after DM multipath
device reload when one of the paths is down or up.
See https://bugzilla.redhat.com/show_bug.cgi?id=1312011
Evgeny Vereshchagin [Mon, 11 Apr 2016 19:31:57 +0000 (22:31 +0300)]
tests: port udev-test to log_*_errno (#3015)
SYSTEMD_LOG_LEVEL=debug test/udev-test.pl is working now
Also, fixes CID 1354602
Martin Pitt [Mon, 11 Apr 2016 19:03:29 +0000 (21:03 +0200)]
Install: correctly report symlink creations
All callers of create_symlink(), such as install_info_symlink_wants(), expect
that to return > 0 if it actually did something, and then return that number.
unit_file_enable() uses that to determine if any action was done
(carries_install_info != 0) and if not, show a "The unit files have no
[Install] section" warning.
Return 1 instead of 0 in the two code paths of create_symlink() when the link
was created or replaced with a new value.
This fixes getting a bogus "No [Install] section" warning when enabling a unit
with full path, like "systemctl enable /some/path/myunit.service".
Lennart Poettering [Mon, 11 Apr 2016 15:27:11 +0000 (17:27 +0200)]
Merge pull request #3014 from msekletar/nspawn-empty-machine-id-v3
nspawn: always setup machine id (v3)
Michal Sekletar [Fri, 8 Apr 2016 11:22:54 +0000 (13:22 +0200)]
nspawn: always setup machine id
We check /etc/machine-id of the container and if it is already populated
we use value from there, possibly ignoring value of --uuid option from
the command line. When dealing with R/O image we setup transient machine
id.
Once we determined machine id of the container, we use this value for
registration with systemd-machined and we also export it via
container_uuid environment variable.
As registration with systemd-machined is done by the main nspawn process
we communicate container machine id established by setup_machine_id from
outer child to the main process by unix domain socket. Similarly to PID
of inner child.
Lennart Poettering [Mon, 11 Apr 2016 14:07:16 +0000 (16:07 +0200)]
Merge pull request #3012 from martinpitt/hwdb
hwdb updates
Ronny Chevalier [Mon, 11 Apr 2016 12:51:51 +0000 (13:51 +0100)]
Merge pull request #3011 from evverx/dont-silently-skip-test-namespace
tests: don't silently skip `test-namespace`
Martin Pitt [Mon, 11 Apr 2016 09:19:27 +0000 (11:19 +0200)]
Merge pull request #2996 from keszybz/coverity-fixes
Coverity fixes
Martin Pitt [Mon, 11 Apr 2016 09:17:07 +0000 (11:17 +0200)]
keymap: Add HP ProBook 640 G2
Fixes #2997
Martin Pitt [Mon, 11 Apr 2016 08:42:51 +0000 (10:42 +0200)]
hwdb: Add SteelSeries Sensei Raw mouse
Fixes #3009