1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-15 07:24:00 +03:00
Commit Graph

1241 Commits

Author SHA1 Message Date
Lennart Poettering
2aa40788f7 update TODO 2013-12-21 18:13:01 +01:00
Lennart Poettering
daee56067f update TODO 2013-12-21 00:19:30 +01:00
Lennart Poettering
53461b74df driverd: implement AddMatch/RemoveMatch logic 2013-12-19 04:40:56 +01:00
Kay Sievers
df32a1caaf libudev: disable monitor inside a container
Uevents are events of the host, which should not leak into a container.
Containers do not support hotplug at the moment, and devices and uevents
are not namespace aware.
2013-12-18 22:01:31 +01:00
Kay Sievers
f6613dd959 libudev: devices received from udev are always initialized 2013-12-18 17:34:22 +01:00
Kay Sievers
48b9cfcb7c comment out udev's is_initialized call until the problem is sorted out 2013-12-18 05:07:16 +01:00
Lennart Poettering
06db8540cd update TODO 2013-12-17 21:45:43 +01:00
Lennart Poettering
10e4e52be8 update TODO 2013-12-16 17:05:42 +01:00
Lennart Poettering
58f299eef6 update TODO 2013-12-13 17:16:06 +01:00
Lennart Poettering
a56b63f41d man: document more error codes for sd_bus_request_name() 2013-12-13 16:01:54 +01:00
Lennart Poettering
9f97c93671 update TODO 2013-12-13 15:30:12 +01:00
Lennart Poettering
12179984a3 event: when unreffing an event source from its own handler, detach fd from epoll
The pattern of unreffing an IO event source and then closing its fd is
frequently seen in even source callbacks. Previously this likely
resultet in us removing the fd from the epoll after it was closed which
is problematic, since while we were dispatching we always kept an extra
reference to event source objects because we might still need it later.
2013-12-13 04:06:43 +01:00
Lennart Poettering
6203e07a83 event: rework sd-event exit logic
With this change a failing event source handler will not cause the
entire event loop to fail. Instead, we just disable the specific event
source, log a message at debug level and go on.

This also introduces a new concept of "exit code" which can be stored in
the event loop and is returned by sd_event_loop(). We also rename "quit"
to "exit" everywhere else.

Altogether this should make things more robus and keep errors local
while still providing a way to return event loop errors in a clear way.
2013-12-13 04:06:43 +01:00
Lennart Poettering
01390ca8a2 update TODO 2013-12-12 15:59:13 +01:00
Lennart Poettering
d78bf250b0 bus: properly generate NameOwnerChanged messages when we take from/give back to queue/starter 2013-12-12 01:51:51 +01:00
Lennart Poettering
0a825b5cd4 update TODO 2013-12-12 01:39:21 +01:00
Lennart Poettering
b6741478e7 journal: add ability to browse journals of running OS containers
This adds the new library call sd_journal_open_container() and a new
"-M" switch to journalctl. Particular care is taken that journalctl's
"-b" switch resolves to the current boot ID of the container, not the
host.
2013-12-11 22:04:03 +01:00
Lennart Poettering
f9a810beda journald: port to sd-event and enable watchdog support 2013-12-11 20:55:09 +01:00
Lennart Poettering
cde93897cd event: hook up sd-event with the service watchdog logic
Adds a new call sd_event_set_watchdog() that can be used to hook up the
event loop with the watchdog supervision logic of systemd. If enabled
and $WATCHDOG_USEC is set the event loop will ping the invoking systemd
daemon right after coming back from epoll_wait() but not more often than
$WATCHDOG_USEC/4. The epoll_wait() will sleep no longer than
$WATCHDOG_USEC/4*3, to make sure the service manager is called in time.

This means that setting WatchdogSec= in a .service file and calling
sd_event_set_watchdog() in your daemon is enough to hook it up with the
watchdog logic.
2013-12-11 18:20:09 +01:00
Lennart Poettering
08cd155254 event: when handling SIGCHLD of a child process only reap after dispatching event source
That way the even source callback is run with the zombie process still
around so that it can access /proc/$PID/ and similar, and so that it can
be sure that the PID has not been reused yet.
2013-12-11 18:20:09 +01:00
Lennart Poettering
80caea6cc7 update TODO 2013-12-10 22:50:29 +00:00
Lennart Poettering
adacb9575a bus: introduce "trusted" bus concept and encode access control in object vtables
Introduces a new concept of "trusted" vs. "untrusted" busses. For the
latter libsystemd-bus will automatically do per-method access control,
for the former all access is automatically granted. Per-method access
control is encoded in the vtables: by default all methods are only
accessible to privileged clients. If the SD_BUS_VTABLE_UNPRIVILEGED flag
is set for a method it is accessible to unprivileged clients too. By
default whether a client is privileged is determined via checking for
its CAP_SYS_ADMIN capability, but this can be altered via the
SD_BUS_VTABLE_CAPABILITY() macro that can be ORed into the flags field
of the method.

Writable properties are also subject to SD_BUS_VTABLE_UNPRIVILEGED and
SD_BUS_VTABLE_CAPABILITY() for controlling write access to them. Note
however that read access is unrestricted, as PropertiesChanged messages
might send out the values anyway as an unrestricted broadcast.

By default the system bus is set to "untrusted" and the user bus is
"trusted" since per-method access control on the latter is unnecessary.

On dbus1 busses we check the UID of the caller rather than the
configured capability since the capability cannot be determined without
race. On kdbus the capability is checked if possible from the attached
meta-data of a message and otherwise queried from the sending peer.

This also decorates the vtables of the various daemons we ship with
these flags.
2013-12-10 16:52:49 +00:00
Ronny Chevalier
c6a77179a4 test: rework run_qemu
It tries to find a suitable QEMU binary and will use KVM if present.
We can now configure QEMU from outside with 4 variables :
  - $QEMU_BIN : path to QEMU's binary
  - $KERNEL_APPEND : arguments appended to kernel cmdline
  - $KERNEL_BIN : path to a kernel
    Default /boot/vmlinuz-$KERNEL_VER
  - $INITRD : path to an initramfs
    Default /boot/initramfs-${KERNEL_VER}.img
  - $QEMU_SMP : number of CPU simulated by QEMU.
    Default 1

(from Alexander Graf's script: http://www.spinics.net/lists/kvm/msg72389.html)
2013-12-10 07:46:21 -05:00
Lennart Poettering
a99b3a4a9f update TODO 2013-12-10 01:11:43 +01:00
Zbigniew Jędrzejewski-Szmek
014e7ea7f2 Trim TODO 2013-12-08 19:26:51 -05:00
Tom Gundersen
0a4b9a0787 TODO: add networkd entries 2013-12-04 14:15:13 +01:00
Lennart Poettering
0e7be1293f core: use normal library call to query list of current names 2013-12-03 18:58:18 +01:00
Lennart Poettering
e7176abbe8 bus: make sd_bus_request_name() and sd_bus_release_name() behave more like other calls
Instead of returning an enum of return codes, make them return error
codes like kdbus does internally.

Also, document this behaviour so that clients can stick to it.

(Also rework bus-control.c to always have to functions for dbus1 vs.
kernel implementation of the various calls.)
2013-12-03 18:02:46 +01:00
Zbigniew Jędrzejewski-Szmek
c7332b0844 catalog: determine language from the filename 2013-12-02 22:12:02 -05:00
Lennart Poettering
e821075a23 bus: add .busname unit type to implement kdbus-style bus activation 2013-12-02 23:32:34 +01:00
Lennart Poettering
fd5b0b9141 nspawn: make sure /dev/kdbus in the container is world accessible 2013-12-02 19:59:15 +01:00
Lennart Poettering
6717d47350 bus: when replying to an incoming message and the vtable contains the expected return signature generate an error if the response message doesn't match it 2013-12-02 15:29:40 +01:00
Shawn Landden
e93c33d4aa systemctl: add "systemctl cat" 2013-11-30 22:20:20 -05:00
Lennart Poettering
626851be97 bus: do kdbus only if this is enabled on the configure switch
Since we want to retain the ability to break kernel ←→ userspace ABI
after the next release, let's not make use by default of kdbus, so that
people with future kernels will not suddenly break with current systemd
versions.

kdbus support is left in all builds but must now be explicitly requested
at runtime (for example via setting $DBUS_SESSION_BUS). Via a configure
switch the old behaviour can be restored. In fact, we change autogen.sh
to do this, so that git builds (which run autogen.sh) get kdbus by
default, but tarball builds (which ue the configure defaults) do not get
it, and hence this stays out of the distros by default.
2013-11-30 20:18:48 +01:00
Lennart Poettering
4734b89564 update TODO 2013-11-30 19:55:23 +01:00
Lennart Poettering
49b832c5b8 bus: include unique and well known names in credentials object 2013-11-30 14:46:14 +01:00
Lennart Poettering
f38afcd0c7 clean up TODO 2013-11-28 18:44:50 +01:00
Lennart Poettering
34c7dc47d3 man: get rid of shell script example in systemd-socket-proxyd man page 2013-11-28 18:42:18 +01:00
Tom Gundersen
88e4d1d733 TODO: add sd-rtnl items 2013-11-27 23:15:04 +01:00
Lennart Poettering
8cf030b349 Revert "socket-proxyd: Add --listener option for listener/destination pairs."
This reverts commit adcf4c81c5.

We have a better solution for the problem of making two processes run in
the same namespace, and --listener is not needed hence and should be
dropped.

Conflicts:
	man/systemd-socket-proxyd.xml
2013-11-27 20:55:15 +01:00
Lukasz Skalski
4ec181a006 updates for TODO and README
* library support for setns() system call was added to glibc
version 2.14 (setns() call is use in src/machine/machinectl.c
and src/libsystemd-bus-container.c)

* utf8 validation call are already exported (via sd-utf8.c file) -
commit - 369c583b3f
2013-11-27 13:14:24 +01:00
Lennart Poettering
d0767ffd08 journal: add a test case for flushing messages out of a series of journal files into a single new one 2013-11-27 01:01:53 +01:00
Daniel Buch
f5f6d0e255 tree-wide usage of %m specifier instead of strerror(errno)
Also for log_error() except where a specific error is specified

e.g. errno ? strerror(errno) : "Some user specified message"
2013-11-26 21:07:46 +10:00
Lennart Poettering
0bee65f062 shutdown: during final killing spree also send SIGHUP in addition to SIGTERM to deal with shells
This makes shutdown a bit faster if debug-shell.service is enabled.
2013-11-25 22:10:22 +01:00
David Strauss
adcf4c81c5 socket-proxyd: Add --listener option for listener/destination pairs. 2013-11-25 10:46:48 +10:00
David Strauss
bfe76ec3ce Update TODO 2013-11-23 07:55:37 +10:00
Lennart Poettering
baabc57764 build-sys: move more files from core/ to share/ that are generic enough 2013-11-22 16:31:40 +01:00
Lennart Poettering
f00c31213a bus: also add error parameter to object find and enumerator callbacks
Just in order to bring things inline with the method and property
callbacks.
2013-11-22 01:42:15 +01:00
Lennart Poettering
969987ea93 bus: restore selinux access control to PID 1 for properties 2013-11-21 23:36:51 +01:00
Lennart Poettering
9f5eb56a13 timer: make timer accuracy configurable
And make it default to 1min
2013-11-21 22:08:20 +01:00
Lennart Poettering
ebcf1f97de bus: rework message handlers to always take an error argument
Message handler callbacks can be simplified drastically if the
dispatcher automatically replies to method calls if errors are returned.

Thus: add an sd_bus_error argument to all message handlers. When we
dispatch a message handler and it returns negative or a set sd_bus_error
we send this as message error back to the client. This means errors
returned by handlers by default are given back to clients instead of
rippling all the way up to the event loop, which is desirable to make
things robust.

As a side-effect we can now easily turn the SELinux checks into normal
function calls, since the method call dispatcher will generate the right
error replies automatically now.

Also, make sure we always pass the error structure to all property and
method handlers as last argument to follow the usual style of passing
variables for return values as last argument.
2013-11-21 21:12:36 +01:00
Lennart Poettering
51b4ea6f48 bus: the :no-sender hack is now unnecessary, since the new library doesn't require this anymore 2013-11-21 21:12:36 +01:00
Lennart Poettering
df2d202e6e bus: let's simplify things by getting rid of unnecessary bus parameters 2013-11-21 02:07:35 +01:00
Lennart Poettering
28383ba189 bus: add API calls to escape string components of objects paths 2013-11-21 01:03:26 +01:00
Lennart Poettering
850516e012 sd-event: try to move timer wakeups to the same spot within each minute 2013-11-21 00:46:13 +01:00
Lennart Poettering
2e41a51ea4 socket: fix segfault 2013-11-21 00:06:11 +01:00
Lennart Poettering
718db96199 core: convert PID 1 to libsystemd-bus
This patch converts PID 1 to libsystemd-bus and thus drops the
dependency on libdbus. The only remaining code using libdbus is a test
case that validates our bus marshalling against libdbus' marshalling,
and this dependency can be turned off.

This patch also adds a couple of things to libsystem-bus, that are
necessary to make the port work:

- Synthesizing of "Disconnected" messages when bus connections are
  severed.

- Support for attaching multiple vtables for the same interface on the
  same path.

This patch also fixes the SetDefaultTarget() and GetDefaultTarget() bus
calls which used an inappropriate signature.

As a side effect we will now generate PropertiesChanged messages which
carry property contents, rather than just invalidation information.
2013-11-20 20:52:36 +01:00
Olivier Brunel
9cd861842c Fix RemainAfterExit services keeping a hold on console
When a service exits succesfully and has RemainAfterExit set, its hold
on the console (in m->n_on_console) wasn't released since the unit state
didn't change.
2013-11-16 12:08:11 -05:00
Zbigniew Jędrzejewski-Szmek
24710f6d2f Update TODO 2013-11-14 00:08:36 -05:00
Lennart Poettering
966204e010 timer: consider (usec_t) -1 an invalid timestamp 2013-11-11 15:54:42 +01:00
Lennart Poettering
60411ac750 bus: we really need to get rid of the :no-sender hack
This is where a hack from PID 1 spilled into the client side. We need
to get rid of this as soon as PID 1 is converted to libsystemd-bus.
2013-11-10 23:54:55 +01:00
Zbigniew Jędrzejewski-Szmek
9cb74bcb23 man,units: fix installation of systemd-nspawn@.service and add example 2013-11-09 19:02:53 -05:00
Kay Sievers
dbb642afae bus: let magic ":no-sender" pass the validation 2013-11-09 00:58:11 +01:00
Lennart Poettering
94676f3e93 localectl: port over to bus_log_create_error() 2013-11-08 19:48:42 +01:00
Lennart Poettering
477def8097 shutdown: unify handling of reboot() syscall a bit 2013-11-08 19:32:45 +01:00
Lennart Poettering
41dd15e474 systemctl: restore ability to directly connect to PID1 from systemctl 2013-11-08 17:07:42 +01:00
Lennart Poettering
6fd4d02098 update TODO 2013-11-08 14:07:27 +01:00
Lennart Poettering
6cc532fdcc update TODO 2013-11-07 21:41:06 +01:00
Lennart Poettering
49a6199b42 update TODO 2013-11-07 16:53:25 +01:00
Ronny Chevalier
889a90422d test: remove duplicated code 2013-11-07 01:23:54 -05:00
David Strauss
fd201fda7d socket-proxyd: The proxy can now accept multiple sockets (but only to one remote host). 2013-11-07 14:46:31 +10:00
Lennart Poettering
ce6d4630c1 update TODO 2013-11-05 20:55:14 +01:00
Lennart Poettering
d16bd05561 update TODO 2013-11-05 20:52:20 +01:00
Lennart Poettering
ced4d06784 update TODO 2013-11-05 03:07:39 +01:00
Lennart Poettering
90e071d1d5 update TODO 2013-11-05 01:13:05 +01:00
Ronny Chevalier
d74ab85216 zsh-completion: add systemd-run 2013-10-30 22:45:18 -04:00
Lennart Poettering
4ba9328022 nspawn: split out pty forwaring logic into ptyfwd.c 2013-10-31 01:43:38 +01:00
Lennart Poettering
07459db69f update TODO 2013-10-30 02:08:57 +01:00
Lennart Poettering
c20fd707a2 update TODO 2013-10-28 21:11:51 +01:00
David Strauss
a427c13d26 Update socket proxy name in TODO. Reformat to list. 2013-10-28 12:48:39 -07:00
Tom Gundersen
af6f0d422c udev: add network link configuration tool
This tool applies hardware specific settings to network devices before they
are announced via libudev.

Settings that will probably eventually be supported are MTU, Speed,
DuplexMode, WakeOnLan, MACAddress, MACAddressPolicy (e.g., 'hardware',
'synthetic' or 'random'), Name and NamePolicy (replacing our current
interface naming logic). This patch only introduces support for
Description, as a proof of concept.

Some of these settings may later be overriden by a network management
daemon/script. However, these tools should always listen and wait on libudev
before touching a device (listening on netlink is not enough). This is no
different from how things used to be, as we always supported changing the
network interface name from udev rules, which does not work if someone
has already started using it.

The tool is configured by .link files in /etc/net/links/ (with the usual
overriding logic in /run and /lib). The first (in lexicographical order)
matching .link file is applied to a given device, and all others are ignored.

The .link files contain a [Match] section with (currently) the keys
MACAddress, Driver, Type (see DEVTYPE in udevadm info) and Path (this
matches on the stable device path as exposed as ID_PATH, and not the
unstable DEVPATH). A .link file matches a given device if all of the
specified keys do. Currently the keys are treated as plain strings,
but some limited globbing may later be added to the keys where it
makes sense.

Example:

/etc/net/links/50-wireless.link
[Match]
MACAddress=98:f2:e4:42:c6:92
Path=pci-0000:02:00.0-bcma-0
Type=wlan

[Link]
Description=The wireless link
2013-10-26 22:09:20 +02:00
Jan Engelhardt
19aadacf92 man: wording and grammar updates
This is a recurring submission and includes corrections to various
issue spotted.
2013-10-21 20:50:46 -04:00
Tom Gundersen
182ae34769 TODO: update 2013-10-19 12:23:41 +02:00
Tom Gundersen
d09ee17da2 efi-boot-generator: hookup to fsck 2013-10-19 12:23:17 +02:00
Tom Gundersen
accdd018ed mount/service: drop FsckPassNo support
We now treat passno as boleans in the generators, and don't need this any more. fsck itself
is able to sequentialize checks on the same local media, so in the common case the ordering
is redundant.

It is still possible to force an order by using .d fragments, in case that is desired.
2013-10-19 12:23:17 +02:00
Tom Gundersen
efc815a13d TODO: add some fsck items 2013-10-19 00:07:50 +02:00
David Strauss
d1b38fac57 Rename sabridge to saproxy to be less cryptic 2013-10-15 17:00:18 -07:00
David Strauss
ae25936d0f Update TODOs with follow-up sabridge work. 2013-10-15 16:25:45 -07:00
Lennart Poettering
690018ab40 git: add test-ellipsize to files to ignore by git 2013-10-14 19:02:44 +02:00
Lennart Poettering
71fda00f32 list: make our list macros a bit easier to use by not requring type spec on each invocation
We can determine the list entry type via the typeof() gcc construct, and
so we should to make the macros much shorter to use.
2013-10-14 06:11:19 +02:00
Lennart Poettering
416446221d update TODO 2013-10-14 06:11:18 +02:00
Shawn Landden
f405e86de3 util, utf8: make ellipsize take multi-byte characters into account
rename old versions to ascii_*

Do not take into account zerowidth characters, but do consider double-wide characters.
Import needed utf8 helper code from glib.

v3: rebase ontop of utf8 restructuring work

[zj: tweak the algorithm a bit, move new code to separate file]
2013-10-13 17:56:54 -04:00
Lennart Poettering
9db7635521 bus: if a a Set() vtable callback of a writable is left NULL, try to do the right thing automatically 2013-10-11 20:03:19 +02:00
Lennart Poettering
43a43f5016 bus: automatically do a NOP reply when a NULL callback is specified for a method in a vtable
Also, allow specifiying NULL as signature in vtables equivalent to ""
for empty parameter lists.
2013-10-11 20:03:19 +02:00
Lennart Poettering
29ddb38fea libsystemd-bus: add lightweight object vtable implementation for exposing objects on the bus
This adds a lightweight scheme how to define interfaces in static fixed
arrays which then can be easily registered on a bus connection. This
makes it much easier to write bus services.

This automatically handles implementation of the Properties,
ObjectManager, and Introspection bus interfaces.
2013-10-09 02:40:07 +02:00
Lennart Poettering
7f79cd7109 update TODO 2013-10-04 17:05:14 +02:00
Zbigniew Jędrzejewski-Szmek
59fccd8211 execute.c: always set $SHELL
In e6dca81 $SHELL was added to user@.service. Let's
instead provide it to all units which have a user.
2013-10-02 22:23:56 +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
Lennart Poettering
4cc1fe6913 update TODO 2013-10-01 13:35:37 +02:00
Lennart Poettering
0b926f194a Update TODO 2013-10-01 00:17:21 +02:00