Commit Graph
100 Commits
Author SHA1 Message Date
Dave Reisner cc479760b4 Revert "job: Don't mark as redundant if deps are relevant"
This reverts commit 097537f07a.

At least Fedora and Debian have already reverted this at the distro
level because it causes more problems than it solves. Arch is debating
reverting it as well [0] but would strongly prefer that this happens
upstream first. Fixes #15188.

[0] https://bugs.archlinux.org/task/66458
2020-06-23 11:42:45 +02:00
Dave Reisner d8c72e87a0 importd: Avoid need for fd translation table
Make use of curl_multi_assign to associate each IO sd_event_source with
a CURL object. This means we always get passed the right event source
and don't need to worry about looking up the associated CURL object,
particularly in the case where the FD has been closed on a REMOVE event.
2019-07-09 10:00:13 +02:00
Dave Reisner 8ca9e92c74 Make default locale a compile time option
Default to a locale that's guaranteed to exist everywhere, but let
distros override this with something more exotic if they choose to.

Closes #11259.
2018-12-29 21:43:04 +09:00
Dave Reisner e6b538d066 curl-util: fix error code check from curl_multi_socket_action
After curl 7.20.0, this function never returns negative error codes.
Make this consistent with the other call to this function and only
compare against CURLM_OK.
2018-10-27 12:04:45 +02:00
Dave Reisner 25ea58d373 network/link: Fix logic error in matching devices by MAC
Prior to this commit, a .link file with a [Match] section containing
MACAddress= would match any device without a MAC. This restores the
matching logic prior to e90d037.
2018-07-07 13:48:59 +02:00
Dave Reisner b200489b2b cgroup: properly check for ignore-notfound paths (#4803)
Follow-up to #4687 and e7330dfe14.
2016-12-02 09:23:23 -05:00
Dave Reisner d112eae7da device: Avoid calling unit_free(NULL) in device setup logic (#4748)
Since a581e45ae8, there's a few function calls to
unit_new_for_name which will unit_free on failure. Prior to this commit,
a failure would result in calling unit_free with a NULL unit, and hit an
assertion failure, seen at least via device_setup_unit:

Assertion 'u' failed at src/core/unit.c:519, function unit_free().  Aborting.

Fixes #4747
https://bugs.archlinux.org/task/51950
2016-11-27 23:05:39 +01:00
Dave Reisner 222953e87f Ensure kdbus isn't used (#3501)
Delete the dbus1 generator and some critical wiring. This prevents
kdbus from being loaded or detected. As such, it will never be used,
even if the user still has a useful kdbus module loaded on their system.

Sort of fixes #3480. Not really, but it's better than the current state.
2016-06-18 17:24:23 -04:00
Dave Reisner 4f9020fa10 Mention initrd-root-device.target in NEWS (#3325) 2016-05-23 10:31:47 +02:00
Dave Reisner d2f0e78f2b test-verbs: add unit tests for verbs minilib 2015-01-08 15:57:38 -05:00
Dave Reisner ee9c4ff4c8 doc: fix stale references to systemd-verify
This was subsumed into systemd-analyze back in 142c4ecaa9.
2015-01-08 15:57:38 -05:00
Dave Reisner 0a7f0fcc79 configure.ac: keep posix compat for string tests
'==' and '=' are equivalent in /bin/bash, but POSIX compliant shells do
not understand '==.'
2014-12-25 11:43:26 -05:00
Dave Reisner 540d858183 verbs: fix typo in error message 2014-12-22 08:21:50 -05:00
Dave Reisner e40872fc53 path-util: fix breakage in path_is_mount_point
This fixes 2 problems introduced by 6feeeab0bc:

1) If name_to_handle_at returns ENOSYS for the child, we'll wrongly
return -ENOSYS when it returns the same for the parent. Immediately
jump to the fallback logic when we get ENOSYS.

2) If name_to_handle_at returns EOPNOTSUPP for the child but suceeds
for the parent, we'll be comparing an uninitialized value (mount_id) to
an initialized value (mount_id_parent). Initialize the mount_id
variables to invalid mount_ids to avoid this.
2014-12-18 18:34:12 -05:00
Dave Reisner 0f5a314b2e build-sys: fix distcheck
- fix misspelling in filename (intenal -> internal)
- remove deleted hwdb-related file (nuked with sd-hwdb refactor)
2014-12-14 10:56:25 -05:00
Dave Reisner 7cd3aba6bd build-sys: always distribute systemd-consoled.service.in
Similar to how we handle other facilities that can be flagged out at
configure time, we should always distribute this input file.

http://lists.freedesktop.org/archives/systemd-devel/2014-December/026272.html
2014-12-14 10:40:25 -05:00
Dave Reisner 285760fedf Check return value from reading name_assign_type attr
This file won't exist on kernels earlier than 3.17.
2014-12-08 18:38:55 +01:00
Dave Reisner a4962513c5 systemd-logind.service: set Type=notify
The code already calls sd_notify("READY=1"), so we may as well take
advantage of the startup behavior in the unit. The same was done for
the journal in a87a38c20.
2014-11-19 08:13:34 -05:00
Dave Reisner 0ffce503cd shared/install: avoid prematurely rejecting "missing" units
f7101b7368 copied some logic to prevent enabling masked units, but
also added a check which causes attempts to enable templated units to
fail. Since we know the logic beyond this check will properly handle
units which truly do not exist, we can rely on the unit file state
comparison to suffice for expressing the intent of f7101b7368.

ref: https://bugs.archlinux.org/task/42616
2014-10-31 08:19:26 -04:00
Dave Reisner 74a550c5d8 missing.h: fix wrong __NR_getrandom syscall def
278 is vmsplice on x86_64. 318 is what we want:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/syscalls/syscall_64.tbl
2014-10-29 20:41:46 -04:00
Dave Reisner 1ab19cb167 nspawn: ignore EEXIST when creating mount point
A combination of commits f3c80515c and 79d80fc14 cause nspawn to
silently fail with a commandline such as:

  # systemd-nspawn -D /build/extra-x86_64 --bind=/usr

strace shows the culprit:

  [pid 27868] writev(2, [{"Failed to create mount point /build/extra-x86_64/usr: File exists", 82}, {"\n", 1}], 2) = 83
2014-10-29 13:42:51 -04:00
Dave Reisner 9ff5ff320e python-systemd: avoid hitting assert in __exit__
Reader_close() asserts that 'args' is always NULL, but the __exit__
function forwards a non-NULL args.
2014-10-14 08:35:16 -04:00
Dave Reisner e7aab54128 tmpfiles: compare return against correct errno
name_to_handle_at returns -EOPNOTSUPP, not -ENOTSUP.
2014-10-12 21:41:57 -04:00
Dave Reisner 124f09e812 networkd: remove vestigial event sources
187fe1db took advantage of floating events, but didn't remove pointers
it made superfluous.
2014-09-13 14:18:20 -04:00
Dave Reisner eed9386748 core: use correct function to free CalendarSpec 2014-09-13 11:18:26 -04:00
Dave Reisner 4cb4060678 machined: remove redundant sd_notify
We already call this on via bus_event_loop_with_idle on exit. This
makes machined consistent with other similar daemons: localed,
hostnamed, timedated.
2014-09-08 09:29:36 -04:00
Dave Reisner ec15977a3c completion: filter templates from restartable units
Since c6a373a263, we might encounter unit templates via the
'list-units' verb. These aren't restartable (and we throw errors), so
make sure they're filtered out of the completion options.

fixes downstream bug: https://bugs.archlinux.org/task/41719
2014-08-29 20:40:38 -04:00
Dave Reisner 8085f163c5 util: allow strappenda to take any number of args
This makes strappenda3 redundant, so we remove its usage and
definition. Add a few tests along the way for sanity.
2014-08-13 20:41:41 -04:00
Dave Reisner 735a1a2ea5 systemctl: reverse order of args when verbosely creating symlinks
This was backwards. The symlink itself points to the source unit, not
the other way around.
2014-06-16 23:30:30 -04:00
Dave Reisner bfa501e150 build: fix copypaste error in networkd-wait-online symlink 2014-06-09 08:48:21 -04:00
Dave Reisner d0069261a7 ycm: update flag blacklist
-Wdate-time isn't known to clang, and it seems to cause errors in
syntastic.
2014-06-04 15:41:10 -04:00
Dave Reisner 370c860f74 implement a union to pad out file_handle
Cases where name_to_handle_at is used allocated the full struct to be
MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong
since handle_bytes should describe the length of the flexible array
member and not the whole struct.

Define a union type which includes sufficient padding to allow
assignment of MAX_HANDLE_SZ to be correct.
2014-04-21 09:52:08 -04:00
Dave Reisner dbb9401dba condense assignment and path_kill_slashes calls 2014-04-21 09:52:08 -04:00
Dave Reisner 7947952ede nspawn: remove unused variable 2014-03-13 21:56:07 -04:00
Dave Reisner 26abdc73a2 fix off by one error in array index assertion
Since the index is already post-incremented when the array is appended
to, this assertion can be wrongly reached when the array is at capacity
(with the NULL terminator). The bug is reproducible on shutdown with
the following settings in /etc/systemd/system.conf:

  LogTarget=journal-or-kmsg
  LogColor=yes
  LogLocation=yes

Reported by Thermi on IRC.
2014-03-08 17:57:18 -05:00
Dave Reisner 28def94cc8 journald: ignore failure to watch hostname_fd on older kernels
Prior to 3.2, /proc/sys/kernel/hostname isn't a pollable file and
sd_event_add_io will return EPERM. Ignore this failure, since it isn't
critical to journald operation.

Reported and tested by user sraue on IRC.
2014-02-21 12:49:05 -05:00
Dave Reisner e288d6a81a readd journald.so install hooks under libsystemd.so
Inadvertently removed in add00dfd1f.
2014-02-20 09:05:59 -05:00
Dave Reisner f3d5485b80 nspawn: allow 32-bit chroots from 64-bit hosts
Arch Linux uses nspawn as a container for building packages and needs
to be able to start a 32bit chroot from a 64bit host. 24fb111207
disrupted this feature when seccomp handling was added.
2014-02-18 21:26:24 +01:00
Dave Reisner 29e254f7f0 man: systemd.service(5): clarify behavior of SuccessExitStatus
The behavior of this is a little cryptic in that $MAINPID must exit as
a direct result of receiving a signal in order for a listed signal to
be considered a success condition.
2014-02-14 01:40:52 +01:00
Dave Reisner 5a1aece581 systemctl: fix exit statuses from is-active/is-failed
This was inadvertantly disturbed in e3e0314b when glob support was
added.
2014-02-13 10:14:31 -05:00
Dave Reisner 66a5dbdf28 cryptsetup-generator: auto add deps for device as password
If the password is a device file, we can add Requires/After dependencies
on the device rather than requiring the user to do so.
2014-02-08 13:53:02 -05:00
Dave Reisner 0d8efe3535 ycm: autocompose flags from the Makefile
This should hopefully be self-maintaining.
2014-01-11 13:35:43 -05:00
Dave Reisner 146ccaafd5 configure: use POSIX conformant syntax for test
In shells like bash, == and = are equivalent in test contexts. In POSIX
compliant shells, == isn't a valid operator.
2014-01-05 11:57:05 -05:00
Dave Reisner 49002eb5f6 sd-event: add missing symbol, sd_event_source_set_io_fd
This appears to have been omitted in 30caf8f3af when the
the function was added.
2014-01-04 09:34:09 -05:00
Dave Reisner c756a6d57c completion: don't offer completions for journalctl -b
Since this is a shortopt with an optional argument, assume the user
knows what they're doing. The longopts --boot and --this-boot will
continue to offer boot IDs as completions.
2013-12-25 12:58:37 -05:00
Dave Reisner cf5bccc2bb journalctl: remove unexpected behavior of journalctl -b
This flag shouldn't try and consume the following argument. It should
behave like every other flag which takes an optional argument when
parsed by getopt_long.
2013-12-25 12:39:47 -05:00
Dave Reisner db69869f26 sleep-config: fix useless check for swapfile type
Since 0c6f1f4ea4 the check was useless, because the kernel will
ever only write "partition" or "file" there.

OTOH, it is possible that "\\040(deleted)" (escaped " (deleted)")
will be added for removed files. This should not happen, so add
a warning to detect those cases.
2013-12-24 16:43:33 -05:00
Dave Reisner a9bc6d2df1 networkd: use correct printf formatter
uint64_t can be formatted correctly with %ju, rather than casting to
unsigned and potentially losing accuracy.
2013-11-25 18:19:49 -05:00
Dave Reisner 7d74558bb6 ycm_extra_conf: include src/systemd for headers 2013-11-15 22:44:15 -05:00
Dave Reisner 4e1b76c214 build: use printf to generate symbol tests
echo is basically unportable, so use printf instead.
2013-11-15 22:44:02 -05:00
Dave Reisner d181115929 shell: add list-timers to systemctl completions 2013-11-11 11:04:06 -05:00
Dave Reisner 2b51bd3c9b udev.xml: add missing </para> tag 2013-11-11 09:17:08 -05:00
Dave Reisner 22925e1a25 udev.xml: minor fixes to network link configuration
- Refer to net_setup_link, not net-setup-link
- Mention the required file extension earlier
2013-11-10 20:04:29 -05:00
Dave Reisner 489124365d link-config: Fix typo in log_warning 2013-11-08 09:38:50 -05:00
Dave Reisner da66338e17 link-config: match length for kernel commandline option
This prevents enable_name_policy() from invariably returning false when
it matches a zero length string at the end of /proc/cmdline.
2013-11-08 09:25:19 -05:00
Dave Reisner 36f9f99556 timedated: support --enable-split-usr 2013-10-30 11:06:43 -04:00
Dave Reisner c50e28a38c link-config: support --enable-split-usr 2013-10-30 11:00:46 -04:00
Dave Reisner 51271a3060 update gitignore 2013-10-26 09:53:06 -04:00
Dave Reisner 464b3d6441 socket-proxyd(1): fix references to non-existant files
socket.target -> sockets.target
/usr/bin/systemd-socket-proxyd -> /usr/lib/systemd/systemd-socket-proxyd
2013-10-20 19:30:38 -04:00
Dave Reisner fe8245eb3c sd-event: initialize return value
src/libsystemd-bus/sd-event.c:1597:13: warning: 'r' may be used
uninitialized in this function [-Wmaybe-uninitialized]
2013-10-17 16:19:48 -04:00
Dave Reisner 14a9283eb3 udevadm.xml: document --resolve-names option for test
And remove documentation of the --subsystem flag which doesn't actually
exist.
2013-10-13 17:42:51 -04:00
Dave Reisner 1d5989fd80 shared/util: fix off-by-one error in tag_to_udev_node
Triggered false negatives when encoding a string which needed every
character to be escaped, e.g. "LABEL=/".
2013-10-06 18:29:12 -04:00
Dave Reisner 9c03872bc8 mount: check for NULL before reading pm->what
Since a57f7e2c82, a mount unit with garbage in it would cause
systemd to crash on loading it.

ref: https://bugs.freedesktop.org/show_bug.cgi?id=70148
2013-10-04 18:23:53 -04:00
Dave Reisner 7074fecf67 tmpfiles.d: include setgid perms for /run/log/journal
4608af4333 set permissions for journal storage on persistent disk
but not the volatile storage.

ref: https://bugs.archlinux.org/task/37170
2013-10-02 15:35:16 -04:00
Dave Reisner 6c8c92fef7 fix lingering references to /var/lib/{backlight,random-seed}
This should have been part of ef5bfcf668.
2013-10-02 07:51:06 -04:00
Dave Reisner 8083d486d0 kmod-static-nodes: condition execution on modules.devname 2013-09-28 14:51:39 -04:00
Dave Reisner 8bd94f7a03 journalctl(1): s/adm/systemd-journal/ 2013-09-24 14:39:40 -04:00
Dave Reisner d808ca6414 completion/systemctl: add missing list-sockets verb 2013-09-20 14:48:43 -04:00
Dave Reisner 184ecaf794 systemctl: Avoid ellipsizing when piping output 2013-09-19 17:39:49 -04:00
Dave Reisner cecf24e7f0 fix grammatical error 2013-09-19 14:55:35 -04:00
Dave Reisner d2421337f6 nspawn: be less liberal about creating bind mount destinations
Previously, if a file's bind mount destination didn't exist, nspawn
would blindly create a directory, and the subsequent bind mount would
fail. Examine the filetype of the source and ensure that, if the
destination does not exist, that it is created appropriately.

Also go one step further and ensure that the filetypes of the source
and destination match.
2013-09-19 14:48:43 -04:00
Dave Reisner e7363c59d6 test-utf8: add more tests for public functions 2013-09-19 11:50:36 -04:00
Dave Reisner 8f6ce71fe7 device-nodes: move device node specific code to own file
In the process, rename udev_encode_string which is poorly named for what
it does. It deals specifically with encoding names that udev creates and
has its own rules: utf8 is valid but some ascii is not (e.g. path
separators), and everything else is simply escaped. Rename it to
encode_devnode_name.
2013-09-19 11:50:34 -04:00
Dave Reisner 7991ac34ab shared/utf8: merge implementations, remove cruft
This unifies the utf8 handling code which was previously duplicated in
udev and systemd.
2013-09-19 11:49:03 -04:00
Dave Reisner 894a156de7 udev-builtin-blkid: export ID_PART_TABLE_UUID 2013-09-19 11:38:48 -04:00
Dave Reisner 22f5f6281f Use udev_encode_string in fstab_node_to_udev_node
Resolves a longstanding bug which caused this function to wrongly
handle (escape) valid utf8 characters.
2013-09-17 16:31:32 -04:00
Dave Reisner 02a36bc9a1 move utf8 functions from libudev-private.h to utf8.h
There's now some more obvious overlap amongst the two utf8 validation
functions, but no more than there already was previously.

This also adds some menial tests for anyone who wants to do more
merging of these two in the future.
2013-09-17 16:31:32 -04:00
Dave Reisner 328b5bc96e Add YouCompleteMe configuration 2013-09-16 19:10:03 -04:00
Dave Reisner 3cf0f8f7e0 udev-rules: avoid erroring on trailing whitespace
https://bugs.archlinux.org/task/36950
2013-09-16 11:46:05 -04:00
Dave Reisner a012ab5293 TODO: update todo 2013-09-06 16:26:55 -04:00
Dave Reisner b5b7ea7503 bash-completion: simplify udevadm completion
The AA is unnecessary and only adds needless complexity. Replace it
with a case statement instead of repeatedly calling __contains_word to
overglorify string equalities.
2013-07-30 13:04:46 -04:00
Dave Reisner a72d698d0d bash-completion: use a better definition of __contains_word
- scope the iterator var
- use the correct, quoted, non-expansion prone positional parameter
  notation
- prevent expansion on RHS of comparison
- remove unneeded explicit returns.

This really should be defined only once...
2013-07-30 13:04:46 -04:00
Dave Reisner e736cf3582 udev-rules: report rule parsing errors from get_key 2013-07-29 21:51:58 -04:00
Dave Reisner d240b2e1ba systemctl.8: fix typo in SEE ALSO 2013-07-26 20:01:33 -04:00
Dave Reisner ec99834cb0 tmpfiles-setup: exclude /dev prefixes files
Fixes Arch Linux bug: https://bugs.archlinux.org/task/36259
2013-07-24 12:04:00 -04:00
Dave Reisner 5c7951141f tmpfiles: introduce --exclude-prefix
The opposite of --prefix, allows specifying path prefixes which should
be skipped when processing rules.
2013-07-24 12:04:00 -04:00
Dave Reisner a2aced4add tmpfiles: support passing --prefix multiple times 2013-07-24 11:10:05 -04:00
Dave Reisner 41f1a1da57 remove systemd-timestamp from sources
No sense in keeping this around if support for reading RD_TIMESTAMP has
been removed.
2013-07-23 11:41:54 -04:00
Dave Reisner e2ca86cf78 configure: split checks for libkmod >= 14
PKG_CHECK_EXISTS won't created a cached variable that later messes with
our PKG_CHECK_MODULES check for an explicit version. Unfortunately,
nesting these checks as the code existed lead to an odd error. Rather,
split the checks apart.

This also improves to the error message when the requisite version
isn't found, and supplies the literal version systemd needs.
2013-07-11 10:33:48 -04:00
Dave Reisner 2c4c73b3ff machine: fix -Wmaybe-uninitialized warning
The return value of machine_start_scope might be undefined if m->scope
is non-NULL.
2013-07-02 13:50:54 -04:00
Dave Reisner aba8b84e8d machined: check correct return value for NULL 2013-07-02 13:44:50 -04:00
Dave Reisner 294a90cc4a dbus-scope: initialize variable before accessing 2013-07-02 10:44:02 -04:00
Dave Reisner c2384970ff nspawn: only warn about audit when booting the container
The audit subsystem isn't relevant when nspawn is only being used as a
chroot.
2013-05-10 08:59:00 -04:00
Dave Reisner a5f5f8a077 nspawn: inherit the exit status of container
If we get as far as successfully starting the container, nspawn should
inherit the exit status of the child container process as its own.
2013-05-02 10:41:03 -04:00
Dave Reisner 1e335af70f nss-myhostname: ensure that glibc's assert is used 2013-04-19 16:31:52 -04:00
Dave Reisner 11ea5a4a7f bus: compare to negative errno 2013-03-20 19:25:37 -04:00
Dave Reisner 855f6f07fe build: remove explicit -shared in LDFLAGS
This doesn't need to be passed, as it's handled by libtool. Since the
default for autoconf is --disable-static, this change is effectively a
noop. It only matters if you pass --enable-static, in which case the
static libs for systemd libraries will actually be built.

Nitpicky, but this only affects systemd libs. The override for the
other libs remains since these libs are always loaded dynamically and
never compiled staticly.
2013-02-24 16:46:02 -05:00
Dave Reisner ec76596cab systemctl: fix assertion hit by incorrect comparison 2013-01-15 18:49:31 -05:00
Dave Reisner 45db2956ba bash-completion: update list of verbs
Add suspend, hibernate, hybrid-sleep
2012-12-19 08:11:20 -05:00
Dave Reisner a9cdc94f7f enable localization for common *ctl commands 2012-11-12 14:16:07 -05:00