Commit Graph

4913 Commits

Author SHA1 Message Date
Tom Gundersen
84b6ad702e udev: export tags of "dead" device nodes to /run/udev/static_node-tags/
Based on a patch by Kay Sievers.

A tag is exported at boot as a symlinks to the device node in the folder
/run/udev/static_node-tags/<tagname>/, if the device node exists.

These tags are cleaned up by udevadm info --cleanup-db, but are otherwise
never removed.
2013-07-16 20:07:57 +02:00
Harald Hoyer
6cf2f1d94d util.c:is_locale_utf8(): check, if "C" was set on purpose
If you have a ASCII only terminal, there is no way to set the charmap to
ANSI_X3.4-1968, other than using LC_CTYPE=C.

We don't want to assume a UTF-8 capable terminal in this case and only
do so, if LANG, LC_ALL and LC_CTYPE are unset.
2013-07-16 19:03:23 +02:00
Lennart Poettering
042e33ae3a rpm: add RPM macro for creating tmpfiles entries after package installation 2013-07-16 18:54:03 +02:00
Zbigniew Jędrzejewski-Szmek
a65f06bb27 journal: return -ECHILD after a fork
A few asserts are replaced with 'return -EINVAL'. I think that
assert should not be used to check argument in public functions.

Fields in struct sd_journal are rearranged to make it less
swiss-cheesy.
2013-07-16 12:09:48 -04:00
Zbigniew Jędrzejewski-Szmek
daabe5491e test-tables: allow sparse tables and check mapping for -1
Jan: test-tables fails on my system. The one it's failing on is:
    syscall: 222 → (null) → -1
... and indeed, our own tables should not have holes, but syscall
tables certainly might.
2013-07-16 12:04:31 -04:00
Harald Hoyer
21c72713ae Do not set LANG=C in every child environment.
LANG does not have to be set and setting it to default to the default
does not add any value.
2013-07-16 18:01:40 +02:00
Jan Janssen
a331b5e6d4 journalctl: Add support for showing messages from a previous boot
Hi,

I redid the boot ID look up to use enumerate_unique.

This is quite fast if the cache is warm but painfully slow if
it isn't. It has a slight chance of returning the wrong order if
realtime clock jumps around.

This one has to do n searches for every boot ID there is plus
a sort, so it depends heavily on cache hotness. This is in contrast
to the other way of look-up through filtering by a MESSAGE_ID,
which only needs about 1 seek + whatever amount of relative IDs
you want to walk.

I also have a linked-list + (in-place) mergesort version of this
patch, which has pretty much the same runtime. But since this one
is using libc sorting and armortized allocation, I prefer this
one.

To summarize: The MESSAGE_ID way is a *lot* faster but can be
incomplete due to rotation, while the enumerate+sort will find
every boot ID out there but will be painfully slow for large
journals and cold caches.

You choose :P

Jan
2013-07-16 17:38:12 +02:00
Kay Sievers
ddc77f6224 switch from udev keymaps to hwdb 2013-07-16 16:22:01 +02:00
Ramkumar Ramachandra
7080ea16b5 detect-virt: detect User-Mode Linux
In a User-Mode Linux session:

  $ systemd-detect-virt
  none

Although it is possible to reliably detect virtualization:

  $ cat /proc/cpuinfo
  processor       : 0
  vendor_id       : User Mode Linux
  model name      : UML
  mode            : skas
  host            : Linux kytes 3.11.0-rc1-00009-ge5fd680 (...)
  bogomips        : 7007.43

So, grep for the string "\nvendor_id\t: User Mode Linux\n" in
/proc/cpuinfo, and say "uml" when asked.
2013-07-16 14:27:53 +02:00
Martin Pitt
f3c19b70fa keymap: Drop non-existant Samsung 900XC3
Revert commit 90fc91d006 again. There is no 900XC3 model, that's 900X3C and
already covered by the 900X3* match.

See https://launchpad.net/bugs/1012365
2013-07-16 09:06:57 +02:00
Zbigniew Jędrzejewski-Szmek
7801356442 build-sys: discover the path to kexec during build time
https://bugs.freedesktop.org/show_bug.cgi?id=55248
2013-07-15 23:20:56 -04:00
Shawn Landden
3a83211689 journal: add logging of effective capabilities _CAP_EFFECTIVE
I think this is the most important of the capabilities bitmasks to log.
2013-07-16 04:27:04 +02:00
Zbigniew Jędrzejewski-Szmek
65cd79f7f5 man: add FILES section to systemd-journald.service(8) 2013-07-15 22:20:17 -04:00
Zbigniew Jędrzejewski-Szmek
31a7eb86f1 systemd: do not output status messages once gettys are running
Make Type=idle communication bidirectional: when bootup is finished,
the manager, as before, signals idling Type=idle jobs to continue.
However, if the boot takes too long, idling jobs signal the manager
that they have had enough, wait a tiny bit more, and continue, taking
ownership of the console. The manager, when signalled that Type=idle
jobs are done, makes a note and will not write to the console anymore.

This is a cosmetic issue, but quite noticable, so let's just fix it.

Based on Harald Hoyer's patch.

https://bugs.freedesktop.org/show_bug.cgi?id=54247
http://unix.stackexchange.com/questions/51805/systemd-messages-after-starting-login/
2013-07-15 21:34:57 -04:00
Jan Janssen
8cf3ca8068 cryptsetup: Add tcrypt support
Tcrypt uses a different approach to passphrases/key files. The
passphrase and all key files are incorporated into the "password"
to open the volume. So, the idea of slots that provide a way to
open the volume with different passphrases/key files that are
independent from each other like with LUKS does not apply.

Therefore, we use the key file from /etc/crypttab as the source
for the passphrase. The actual key files that are combined with
the passphrase into a password are provided as a new option in
/etc/crypttab and can be given multiple times if more than one
key file is used by a volume.
2013-07-16 01:24:31 +02:00
Jan Janssen
10fb4e35fd cryptsetup: Move attaching of the device out of main 2013-07-16 01:24:28 +02:00
Jan Janssen
e7d90b7127 cryptsetup: Move password query out of main
Also use _cleanup_free_ where possible.
2013-07-16 01:24:24 +02:00
Frederic Crozat
dac70dc777 util: recognize 'ncp' as an alias to 'ncpfs'
ncp is also used for Netware mount point, recognize it as such. Fixes
https://bugzilla.novell.com/show_bug.cgi?id=828905.
2013-07-16 00:10:48 +02:00
Thomas Hindoe Paaboel Andersen
b4ecc95973 tests: add more tests for shared/util.c 2013-07-16 00:13:15 +02:00
Shawn Landden
b8547c10c8 journalctl: add --force option to recreate FSS 2013-07-14 23:55:18 -04:00
Zbigniew Jędrzejewski-Szmek
6c5a28255b systemd: fix NULL dereference when disabling a nonexistent instance
Assertion 'p' failed at src/shared/path-util.c:51, function path_get_file_name(). Aborting.

The unit file could not be found, and i->path would not be set.
In 02b9e969 a code path was added which attempts to remove symlinks
to a nonexistent (removed) unit file. This worked OK in case of
non-instance services, but broke in the case of instance services.

Behaviour wrt. to instance units is changed in the way that 02b9e969
changed it for non-instance units: it is now possible to remove
instance symlinks to a template unit that has been removed.

This patch isn't a full fix, because the behaviour wrt. to enabling
and disabling instance units is still broken: e.g it is possible to
start autovt@tty5.service, but it is not possible to enable it,
because autovt@.service is a symlink, and on the other hand, disabling
getty@tty5.service removes all symlinks to getty@.service, which is
wrong too. But segfaults make bad pr, so let's add at least this
partial fix for now.
2013-07-14 23:53:45 -04:00
Zbigniew Jędrzejewski-Szmek
bf502e636b test: add trivial test for syscall table and extend table tests to error paths 2013-07-13 21:59:17 -04:00
Thomas H.P. Andersen
6aea6d10f4 Add test coverage and generate report with lcov
Enable coverage with --enable-coverage.
"make coverage" will create the report locally,
"make coverage-sync" will upload the report to
http://www.freedesktop.org/software/systemd/coverage/.

Requires lcov version 1.10 to handle naming in systemd and to
use the --no-external option.

[zj: make the coverage at least generate something with
     separate build dir, simplify rules a bit: all errors
     are mine. ]
2013-07-13 21:56:33 -04:00
Ross Lagerwall
92d430a9e0 install: make "reenable" work with templated units
Before, "systemctl reenable getty@tty1.service" would fail with:
Failed to issue method call: File exists
To fix this, reimplement "reenable" explicitly as a disable followed by
an enable.
This is shorter and is how the man page documents its behavior.
2013-07-13 07:56:11 -04:00
Shawn Landden
b98e3866fd journalctl: have a useful --setup-keys error message when using non-persistant logging
Generating seed...

Generating key pair...
Generating sealing key...
Failed to open /var/log/journal/33f46101703a10c5fc6fa4f451840101/fss.tmp.k2wDDU: No such file or directory
2013-07-13 07:56:11 -04:00
Zbigniew Jędrzejewski-Szmek
d7b478b448 shared/install: fix trivial memleak
We lost the reference when setting path second time.
2013-07-12 13:24:06 -04:00
Zbigniew Jędrzejewski-Szmek
b463b81399 test-path-util,test-sched-prio: uninitialize manager to appease valgrind 2013-07-12 13:24:06 -04:00
Lukas Nykryn
433dd10044 journald-server: r should be checked after journal_file_open_reliably 2013-07-12 01:18:16 +02:00
Lukas Nykryn
66a6931494 systemctl: remove unused variable 2013-07-12 01:10:04 +02:00
Lukas Nykryn
f440e1bb8a unit: check correct variable after strdup 2013-07-12 01:09:34 +02:00
Lennart Poettering
b9ec935936 core: simplify drop-in writing logic a bit
let's make use of some format string magic!
2013-07-11 21:29:33 +02:00
Lennart Poettering
665f8316f4 core: when writing drop-in files, name them directly after the property we set
Mapping from "FooBar" to "foo-bar" is unnecessary and makes it hard to
handle many different properties with the same code, hence, let's just
not do it.
2013-07-11 21:03:06 +02:00
Lennart Poettering
8e7076caae cgroup: split out per-device BlockIOWeight= setting into BlockIODeviceWeight=
This way we can nicely map the configuration directive to properties and
back, without requiring two different signatures for the same property.
2013-07-11 20:40:18 +02:00
Lennart Poettering
554604b307 machined: forward scope properties array from client to systemd
This makes nspawn's --scope= switch work again.
2013-07-11 19:53:46 +02:00
Lennart Poettering
042f9f5e5e systemctl: show cgroup tree if cgroup is empty but has non-empty children
This makes sure "systemctl status user.slice" shows a nice cgroup tree
of all logged in users.
2013-07-11 19:15:01 +02:00
Lennart Poettering
9d12709626 loginctl: suppress cgroup tree output if cgroup is empty
same for machinectl
2013-07-11 19:14:38 +02:00
Lennart Poettering
d7bd3de065 cgroup: simplify how instantiated units are mapped to cgroups
Previously for an instantiated unit foo@bar.service we created a cgroup
foo@.service/foo@bar.service, in order to place all instances of the
same template inside the same subtree. As we now implicitly add all
instantiated units into one per-template slice we don't need this
complexity anymore, and instance units can map directly to the cgroups
of their full name.
2013-07-11 18:49:53 +02:00
Lennart Poettering
8a84192905 cgroup: don't ever try to destroy the cgroup of the root slice
The root slice is after all the root cgroup, so don't attempt to delete
it.
2013-07-11 18:49:52 +02:00
Lennart Poettering
be2c1bd2a8 cgroup: don't move systemd into systems.slice when running as --user instance 2013-07-11 18:49:52 +02:00
Lennart Poettering
a883394464 core: implicitly create a per-template slice for all instantiated units by default
If no explicit slice is configured for an instantiated unit, create an
implicit one for all instances of the same template.
2013-07-11 18:49:52 +02:00
Harald Hoyer
852752fca2 kernel-install/90-loaderentry.install: do not fail for missing initrd 2013-07-11 13:43:35 +02:00
Shawn Landden
f7db7a691c basic SO_REUSEPORT support 2013-07-11 03:09:18 +02:00
Lennart Poettering
8aa7519366 core: grant user@.service instances write access to their own cgroup 2013-07-11 01:56:12 +02:00
Lennart Poettering
befb5b6a71 core: rearrange if blocks a bit 2013-07-11 00:48:52 +02:00
Lennart Poettering
f6940be782 shutdown: avoid malloc() if we can 2013-07-11 00:35:01 +02:00
Lennart Poettering
aa1936ea1a loginctl: restore cgroup display for status output
Same for machinectl.
2013-07-11 00:32:32 +02:00
Kay Sievers
8577e67245 shutdown: fix /proc/cmdline reading of 'quiet' 2013-07-11 00:13:46 +02:00
Lennart Poettering
66713f77e8 core: uninstall cgroup agent only if we are running outside of a container
Since the cgroupfs is currently not virtualized for containers we
shouldn't reset the hosts agent from the container.
2013-07-10 23:50:28 +02:00
Lennart Poettering
ac9ef33358 cgroup: when uninstalling agent, actually turn it off first 2013-07-10 23:47:15 +02:00
Lennart Poettering
7fb3ee51c1 user-sessions: rely on PID 1 to kill sessions
As we want to centralized cgroup access we should stop killing the user
sessions directly from the systemd-user-sessions service. Instead, rely
on PID 1 doing this by adding the right ordering dependencies to the
session scope units.
2013-07-10 23:41:04 +02:00