1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 11:55:44 +03:00
Commit Graph

12253 Commits

Author SHA1 Message Date
Lennart Poettering
cd4010b373 build-ss: prepare new release 2013-10-02 03:02:25 +02:00
Lennart Poettering
a3b6fafed4 hashmap: randomize hash functions a bit 2013-10-01 23:11:49 +02:00
David Herrmann
ef7939dfbb Update TODO
Remove "logind fbdev removal" as it is no longer supported.
2013-10-01 19:21:35 +02:00
David Herrmann
3a83f5223a logind: remove fbdev session-device support
fbdev does not support access-handover so it is quite useless to route it
through logind. If compositors want to use it they ought to open it
themselves. It's highly recommended to be ignored entirely, though. fbdev
is about to be deprecated in the kernel.
2013-10-01 18:08:54 +02:00
David Herrmann
11c2f7a813 logind: run with CAP_SYS_ADMIN
DRM Master access requires CAP_SYS_ADMIN, yay! Add it to the capability
bounding set for systemd-logind. As CAP_SYS_ADMIN actually allows a huge
set of actions, this mostly renders the restriction-set useless. Anyway,
patches are already pending to reduce the restriction on the kernel side.
But these won't really make it into any stable-release so for now we're
stuck with CAP_SYS_ADMIN.
2013-10-01 17:59:44 +02:00
David Herrmann
dfd552707d logind: send PropertyChanged during deactivation
We only send the PropertyChanged signal for the to-be-activated session
but not for the to-be-deactivated one. Fix that so both listeners get
notified about the new state.
2013-10-01 17:58:58 +02:00
David Herrmann
c2e5d024a3 logind: check whether first drmSetMaster succeeded
The initial drmSetMaster may fail if there is an active master already. We
must not assume that all existing clients comply to logind rules. We check
for this during session-activation already but didn't during device setup.
Fix this by checking the return code.

As drmSetMaster has had horrible return codes in the past (0 for failure?
EINVAL for denied access, ..) we need to be quite pedantic. To guarantee
an open file-descriptor we need to close the device and reopen it without
master if setting master failed first.
2013-10-01 17:53:43 +02:00
David Herrmann
081dfa852f logind: fix session-device dbus notify
Had this fix lying around here for some time. Thanks to missing
type-checking for va-args we passed in the actual major/minor values
instead of pointers to it. Fix it by saving the values on the stack first
and passing in the pointers.
2013-10-01 17:48:15 +02:00
Tom Gundersen
ea52e2aee8 kernel-install: add compat with 'installkernel'
If 'kernel-install' is called as 'installkernel' it will be compatible with the
syntax used by the kernel's build system.

This means it can be called by doing 'make install' in a kernel build
directory, if the correct symlink has been installed (which we don't do by
default yet).

[Edit harald@redhat.com: removed basename and use shift]
2013-10-01 17:40:30 +02:00
Lennart Poettering
4cc1fe6913 update TODO 2013-10-01 13:35:37 +02:00
Lennart Poettering
7400b9d2e9 core: whenever a new PID is passed to us, make sure we watch it 2013-10-01 05:06:56 +02:00
Chen Jie
c22ceead43 util.c: ignore pollfd.revent for loop_read/loop_write
Let read()/write() report any error/EOF.
2013-10-01 04:49:59 +02:00
Evan Callicoat
e6dca81441 units: Add SHELL environment variable
With the advent of systemd --user sessions, it's become very interesting to spawn X as a user unit, as well as accompanying processes that may have previously been in a .xinitrc/.xsession, or even just to replace a collection of XDG/GDM/KDM/etc session files with independent systemd --user units. The simplest case here would be to login on a tty, with the traditional /usr/sbin/login "login manager".

However, systemd --user (spawned by user@.service) is at the top level of the slice for the user, and does not inherit any environment variables from the login process. Given the number of common applications which rely on SHELL being set in the environment, it seems like the cleanest way to provide this variable is to set it to %s in the user@.service.

Ideally in the long-term, applications which rely on SHELL being set should be fixed to just grab it from getpwnam() or similar, but until that becomes more common, I propose this simple change to make user sessions a little bit nicer out of the box.
2013-10-01 04:17:31 +02:00
Lennart Poettering
abaaabf40a build-sys: don't fallback to upstart defaults 2013-10-01 03:23:14 +02:00
Cristian Rodríguez
ba5ecfcdbb systemctl: remove legacy upstart compatibility 2013-10-01 03:23:08 +02:00
Patrick McCarty
a1c9563cce smack-setup: fix path to Smack/CIPSO mappings
The correct path to the dir with CIPSO mappings is /etc/smack/cipso.d/;
/etc/smack/cipso is a file that can include these mappings as well,
though it is no longer supported in upstream libsmack.
2013-10-01 02:52:46 +02:00
Kay Sievers
ae05436265 Revert "build-sys: link libsystemd-login with libsystemd-label.la"
Systemd-logind does not pull in cg_create(), if we unconditionally link
this, all users of systemd-logind qill need the label stuff and therefore
link against selinux.

It is probably a build-system issue, or something that need to be sorted
out in a differnt way than linking not needed libs.

This reverts commit ceadabb102.
2013-10-01 00:21:50 +02:00
Lennart Poettering
0b926f194a Update TODO 2013-10-01 00:17:21 +02:00
Lennart Poettering
45fa9e29f8 hashmap: size hashmap bucket array dynamically
Instead of fixing the hashmap bucket array to 127 entries dynamically
size it, starting with a smaller one of 31. As soon as a fill level of
75% is reached, quadruple the size, and so on.

This should siginficantly optimize the lookup time in large tables
(from O(n) back to O(1)), and save memory on smaller tables (which most
are).
2013-10-01 00:17:21 +02:00
Lennart Poettering
bcd8e6d1bd local: fix memory leak when putting together locale settings
Also, we need to use proper strv_env_xyz() calls when putting together
the environment array, since otherwise settings won't be properly
overriden.

And let's get rid of strv_appendf(), is overkill and there was only one
user.
2013-10-01 00:17:21 +02:00
Lennart Poettering
6c081276dc main: don't free fds array twice 2013-10-01 00:17:21 +02:00
Zbigniew Jędrzejewski-Szmek
69ae3ee07e logs-show.c: show all messages for a slice 2013-10-01 00:02:08 +02:00
Michał Górny
ceadabb102 build-sys: link libsystemd-login with libsystemd-label.la
libsystemd-login.la uses cg_create() that currently seems to be a part
of libsystemd-label.la. However, it doesn't link against that library
and it seems that none of the (unconditional) libraries it uses do. In
the end, people end up getting «undefined reference to `cg_create'»
when trying to build e.g. dbus.
2013-10-01 00:02:08 +02:00
Lennart Poettering
ba54bcb822 man: mention the systemd homepage from systemd(1) 2013-09-30 18:57:04 +02:00
Lennart Poettering
3efabbe47f update TODO 2013-09-30 18:57:04 +02:00
Lennart Poettering
ea021cc3ea man: link cgroups api docs from relevant man pages 2013-09-30 18:57:04 +02:00
Andrey Borzenkov
4469ff4ade set IgnoreOnIsolate=true for systemd-cryptsetup@.service
When crypttab contains noauto, cryptsetup service does not have any
explicit dependencies. If service is started later manually (directly or via
mount dependency) it will be stopped on isolate.

mount units already have IgnoreOnIsolate set by default. Set it by
default for cryptsetup units as well.
2013-09-29 20:36:59 +02:00
Zbigniew Jędrzejewski-Szmek
893fa014de Fix buffer overrun when enumerating files
https://bugs.freedesktop.org/show_bug.cgi?id=69887

Based-on-a-patch-by: Hans Petter Jansson <hpj@copyleft.no>
2013-09-29 15:28:35 +02:00
Dave Reisner
8083d486d0 kmod-static-nodes: condition execution on modules.devname 2013-09-28 14:51:39 -04:00
Michael Scherer
edcfd89ad0 Add a bit more explicit message, to help confused users
Seeing http://www.happyassassin.net/2013/09/27/further-sysadmin-adventures-wheres-my-freeipa-badge/
it seems that the default message is a bit confusing for people
who never encountered it before, so adding a link to the manpage could
help them.
2013-09-27 15:59:42 +02:00
Tom Gundersen
8b179a830a kernel-install: avoid using 'cp --preserve'
Force 0644 and root:root instead, to avoid problems with fat filesystems.
2013-09-27 15:56:54 +02:00
Zbigniew Jędrzejewski-Szmek
f2ec0646ab build-sys: restore detection of sphinx 2013-09-27 08:24:08 +02:00
Zbigniew Jędrzejewski-Szmek
8a7935a23b Do not use unitialized variable and remove duplicated line 2013-09-27 07:59:15 +02:00
Lennart Poettering
278d4bcfe9 Update TODO 2013-09-27 02:59:50 +02:00
Lennart Poettering
d43de69002 swap: properly expose timeout property on the bus 2013-09-27 02:02:21 +02:00
Lennart Poettering
a38d1d28d1 dbus: fix introspection for TimerSlackNSec 2013-09-27 00:35:36 +02:00
Lennart Poettering
68372da693 systemctl: make sure set-property mangles unit names 2013-09-27 00:11:54 +02:00
Lennart Poettering
3fde5f30bd man: drop references to "cgroup" wher appropriate
Since cgroups are mostly now an implementation detail of systemd lets
deemphasize it a bit in the man pages. This renames systemd.cgroup(5) to
systemd.resource-control(5) and uses the term "resource control" rather
than "cgroup" where appropriate.

This leaves the word "cgroup" in at a couple of places though, like for
example systemd-cgtop and systemd-cgls where cgroup stuff is at the core
of what is happening.
2013-09-27 00:05:07 +02:00
Lennart Poettering
7ac807320a core: drop some out-of-date references to cgroup settings 2013-09-26 22:57:43 +02:00
Lennart Poettering
c68ba912c3 logind: never consider a closing session relevant for PK checks
https://bugzilla.redhat.com/show_bug.cgi?id=1010215
2013-09-26 21:32:47 +02:00
Mike Gilbert
90dc8c2ea2 main: set umask before creating any files
This avoids a problem when we inherit a non-zero umask from the
initramfs. This would cause /run/systemd to be created with the wrong
mode.
2013-09-26 20:39:44 +02:00
Lennart Poettering
299404a19f logind: if a user is sitting in front of the computer and can shutdown the machine anyway he should also be able to reboot it 2013-09-26 20:31:37 +02:00
Lennart Poettering
a57f7e2c82 core: rework how we match mount units against each other
Previously to automatically create dependencies between mount units we
matched every mount unit agains all others resulting in O(n^2)
complexity. On setups with large amounts of mount units this might make
things slow.

This change replaces the matching code to use a hashtable that is keyed
by a path prefix, and points to a set of units that require that path to
be around. When a new mount unit is installed it is hence sufficient to
simply look up this set of units via its own file system paths to know
which units to order after itself.

This patch also changes all unit types to only create automatic mount
dependencies via the RequiresMountsFor= logic, and this is exposed to
the outside to make things more transparent.

With this change we still have some O(n) complexities in place when
handling mounts, but that's currently unavoidable due to kernel APIs,
and still substantially better than O(n^2) as before.

https://bugs.freedesktop.org/show_bug.cgi?id=69740
2013-09-26 20:20:30 +02:00
Lennart Poettering
6270c1bd8f unit-name: when escaping a path consider the empty path identical to the root dir 2013-09-26 20:20:30 +02:00
Lennart Poettering
e203f7c3ad util: properly handle the root dir in PATH_FOREACH_PREFIX
Also add PATH_FOREACH_PREFIX_MORE which includes the specified dir
itself in the iteration
2013-09-26 20:20:30 +02:00
Lennart Poettering
baa89da40a cgroup: when referencing cgroup controller trees allow omission of the path 2013-09-26 20:20:30 +02:00
Zbigniew Jędrzejewski-Szmek
2b3ab29de4 Move part of logind.c into a separate file
liblogind-core.la was underlinked, missing a few functions
defined in logind.c. They are moved to a new file, logind-core.c,
and this file is linked into liblogind-core.la.
In addition, logind-acl.c is attached to the liblogind-core.la,
instead of systemd-logind directly.
2013-09-26 11:12:04 +02:00
Zbigniew Jędrzejewski-Szmek
bd16acf35e Move functions around to fix underlinking in test-machine-tables 2013-09-26 11:12:04 +02:00
Zbigniew Jędrzejewski-Szmek
732bfe09ae build-sys: add ./configure --enable-address-sanitizer
Enabling address sanitizer seems like a useful thing, but is quite
tricky. Proper flags have to be passed to CPPFLAGS, CFLAGS and
LDFLAGS, but passing them on the commandline doesn't work because
we tests are done with ld directly, and not with libtool like in
real linking. We might want to fix this, but let's add a handy
way to enable address checking anyway.
2013-09-26 11:12:04 +02:00
Zbigniew Jędrzejewski-Szmek
5843c5ebb4 journald: accept EPOLLERR from /dev/kmsg
Also print out unexpected epoll events explictly.
2013-09-26 11:12:04 +02:00