summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2016-04-16install: allow paths like LookupPath.generator to be NULLZbigniew Jędrzejewski-Szmek
Fixes #3047.
2016-04-16tree-wide: introduce PATH_IN_SET macroZbigniew Jędrzejewski-Szmek
2016-04-16systemctl/core: ignore masked units in preset-allZbigniew Jędrzejewski-Szmek
With any masked unit that would that would be enabled by presets, we'd get: test@rawhide $ sudo systemctl preset-all Failed to execute operation: Unit file is masked. test@rawhide $ sudo systemctl --root=/ preset-all Operation failed: Cannot send after transport endpoint shutdown Simply ignore those units: test@rawhide $ sudo systemctl preset-all Unit xxx.service is masked, ignoring.
2016-04-16tree-wide: use ERFKILL instead of ESHUTDOWN for "unit masked"Zbigniew Jędrzejewski-Szmek
If the error code ever leaks (we print the strerror error instead of providing our own), the message for ESHUTDOWN is "Cannot send after transport endpoint shutdown", which can be misleading. In particular it suggest that some mishandling of the dbus connection occured. Let's change that to ERFKILL which has the advantage that a) it sounds implausible as actual error, b) has the connotation of disabling something manually.
2016-04-16journald: rewrite function with switch, fix handling of -ESHUTDOWNZbigniew Jędrzejewski-Szmek
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.
2016-04-16sd-bus: use IN_SETZbigniew Jędrzejewski-Szmek
2016-04-16systemctl: make --root=/ disable dbus againZbigniew Jędrzejewski-Szmek
Before 0f03c2a4c093 specifying any path would cause the systemctl client to do the installation itself, instead of going over dbus. Restore that behaviour.
2016-04-14core/mount-setup.c: also relabel /dev/shm for selinux (#3039)Harald Hoyer
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.
2016-04-14networkd: Add support to configure proxy arp support to interfaces (#3020)Susant Sahani
Fixes: #2889
2016-04-14Merge pull request #3029 from ipuustin/supplementary-gidsDaniel Mack
sd-bus: query pid also when requesting supplementary gids information
2016-04-13systemctl: fix leakZbigniew Jędrzejewski-Szmek
CID #1354670.
2016-04-13shared/path-lookup: fix leakZbigniew Jędrzejewski-Szmek
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.
2016-04-13test-strv: add a test that extending empty strv works as expectedZbigniew Jędrzejewski-Szmek
Just making sure :)
2016-04-13sd-bus: query pid also when searching for supplementary gidsIsmo Puustinen
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.
2016-04-13tree-wide: remove useless NULLs from strjoinaZbigniew Jędrzejewski-Szmek
The coccinelle patch didn't work in some places, I have no idea why.
2016-04-13basic/util: silence stupid gcc warnings about unitialized variableZbigniew Jędrzejewski-Szmek
2016-04-12Merge pull request #2973 from poettering/search-pathMartin Pitt
Many fixes, in particular to the install logic
2016-04-12load-fragment: Resolve specifiers in DeviceAllow (#3019)Nicolas Braud-Santoni
Closes #1602
2016-04-12systemctl: when we want to know whether there's a native unit file, don't ↵Lennart Poettering
choke on ELOOP ELOOP indicates that there's a symlink in /etc for a native unit file, and that's completely OK.
2016-04-12test-dnssec: drop unused variableLennart Poettering
2016-04-12core: make sure we always free the list of changesLennart Poettering
2016-04-12core: keep track of the mtime of the transient unit file we wroteLennart Poettering
Otherwise "systemctl status" will immediately report that our unit file is out of date.
2016-04-12sd-lldp: minor whitespace fixesLennart Poettering
2016-04-12sd-lldp: drop LLDP ethernet export from sd-lldp.hLennart Poettering
We only use it for the Tx code anyway, hence sd-lldp.h shouldn't expose it, as it only implements Rx.
2016-04-12core: make sure we generate a nicer error when a linked unit is attempted to ↵Lennart Poettering
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.
2016-04-12machinectl: add new "machinectl clean" commandLennart Poettering
This new command removes all, or all hidden container images that have been downloaded.
2016-04-12tests: override XDG_RUNTIME_DIR where we use the user runtime dirLennart Poettering
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.
2016-04-12core: optimize unit_write_drop_in a bitLennart Poettering
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.
2016-04-12core: when creating a drop-in snippet, add a comment explaining this to itLennart Poettering
2016-04-12core,systemctl: add new "systemctl revert" commandLennart Poettering
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.
2016-04-12install: fix errno handlingLennart Poettering
2016-04-12install: simplify skip_root() a bitLennart Poettering
Exit early, so that we can get rid of the large if block.
2016-04-12nstall: no need to export unit_file_lookup_state() anymoreLennart Poettering
We only use it inside of install.c, hence let's make it static.
2016-04-12tree-wide: add new SIGNAL_VALID() macro-like function that validates signal ↵Lennart Poettering
numbers And port all code over to use it.
2016-04-12basic: remove rbtree code, it's unusedLennart Poettering
it's unused, and should we need it one day we can always resurrect it from git history.
2016-04-12sysv-generator: port to use new unit_file_exists() callLennart Poettering
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.
2016-04-12systemctl: don't confuse sysv code with generated unitsLennart Poettering
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.
2016-04-12path-lookup: move generator_binary_paths() to end of fileLennart Poettering
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.
2016-04-12systemctl: add error message when we get unexpected event from waitid()Lennart Poettering
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.
2016-04-12systemctl: fix incorrect errno for error messageLennart Poettering
2016-04-12systemctl: move check whether a service exists as native unit file to install.cLennart Poettering
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.
2016-04-12core: rework reboot parameter logic a bitLennart Poettering
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.
2016-04-12core: be more paranoid when mixing umask and fopen()Lennart Poettering
Let's be extra careful with the umask when we use simple fopen(), as this creates files with 0777 by default.
2016-04-12core: rework how transient unit files and property drop-ins workLennart Poettering
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.
2016-04-12core: introduce a "control" unit file directoryLennart Poettering
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.
2016-04-12install: rename generator_paths() → generator_binary_paths()Lennart Poettering
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.
2016-04-12core: move flushing of generated unit files to path-lookup.cLennart Poettering
It's very similar to the mkdir and trim operations for the generator dirs, hence let's unify this at a single place.
2016-04-12core: minor coding style fixLennart Poettering
2016-04-12tests: make sure test-path-lookup can run even when no units are installed ↵Lennart Poettering
on test system
2016-04-12localed: downgrade libxkbcommon to an optional runtime dependencyLennart Poettering
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.