summaryrefslogtreecommitdiff
path: root/Makefile.am
AgeCommit message (Collapse)Author
2013-10-26udev: link-config: add ethtool supportTom Gundersen
This adds support for setting the link speed, duplex and WakeOnLan settings. Example: [Link] SpeedMBytes=100 Duplex=half WakeOnLan=magic
2013-10-26udev: add network link configuration toolTom Gundersen
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-25analyze: port to sd-busThomas Hindoe Paaboel Andersen
2013-10-22systemd: use unit name in PrivateTmp directoriesZbigniew Jędrzejewski-Szmek
Unit name is used whole in the directory name, so that the unit name can be easily extracted from it, e.g. "/tmp/systemd-abcd.service-DEDBIF1". https://bugzilla.redhat.com/show_bug.cgi?id=957439
2013-10-22inhibit: port to sd-busTom Gundersen
2013-10-22analyze: systemd-analyze.c -> analyze.cKay Sievers
2013-10-22localed: port from libdbus to libsystemd-busKay Sievers
2013-10-21bus: remove static introspection file exportKay Sievers
2013-10-20build-sys: unify foo_CFLAGS = usage and add explaining commentsKay Sievers
Always add the default AM_CFLAGS first. If variables are used in conditionals, the default assignment of AM variables is disabled, even when the conditional is not in use; foo_CFLAGS = $(AM_CFLAGS) is needed, even when it looks like a no-op.
2013-10-20Revert "build-sys: move journalctl CFLAGS= to one line"Colin Walters
This reverts commit e5d5aa1d0f4e143f12f5e00ca072547369d37e53; it breaks if !HAVE_QRENCODE since then we aren't using $(AM_CFLAGS) for journalctl.
2013-10-20build-sys: move journalctl CFLAGS= to one lineKay Sievers
2013-10-19fsck-root: only run when requested in fstabTom Gundersen
fsck-root is redundant in case an initrd is used, or in case the rootfs is never remounted 'rw', so the new default is the correct behavior for most users. For the rest, they should enable it in fstab.
2013-10-18build-sys: Honor CFLAGS for journalctl againColin Walters
Regression from e905a456814eadfb904c49241e3841c1e4a1d119.
2013-10-18build-sys: fix += vs = in MakefileLennart Poettering
2013-10-18update-utmp: port to sd-busTom Gundersen
Change from GetUnit to LoadUnit to make sure we can detect the current legacy runlevel, even if nothing loaded the legacy target files yet.
2013-10-18socket-proxyd: rename from saproxyLennart Poettering
The thing is a daemon, hence needs a "d" prefix. Also, we tend to not abbreviate names of background components unnecessarily, since they are not primary commands people type. Then, the fact that this thing does socket actviation is mostly in implementationd detail for the proxy. Also, do some minor indenting clean-ups and other code updates.
2013-10-18build-sys: drop a number CFLAGS assignments in Makefile that are pointlessLennart Poettering
2013-10-18initctl: port to sd-busTom Gundersen
2013-10-18cgroup-agent: port to sd-busTom Gundersen
2013-10-18fsck: port to sd-busTom Gundersen
2013-10-18hostnamed: port over from libdbus to libsystemd-busLennart Poettering
2013-10-16api: unify some common bits used by public systemd APIsLennart Poettering
2013-10-16timedated: use libsystemd-bus instead of libdbus for bus communicationLennart Poettering
Among other things this also adds a few things necessary for the change: - Considerably more powerful error returning APIs in libsystemd-bus - Adapter for connecting an sd_bus to an sd_event - As I reworked the PolicyKit logic to the new library I also made it asynchronous, so that PolicyKit requests of one user cannot block out another user anymore. - We always use the macro names for common bus error. That way it is harder to mistype them since the compiler will notice
2013-10-15Rename sabridge to saproxy to be less crypticDavid Strauss
2013-10-15Add sabridge for socket activation of traditional daemonsDavid Strauss
2013-10-15build-sys: libsystemd-id128 - get rid of the needless selinux linking (again)Kay Sievers
$ ldd libsystemd-id128.so linux-vdso.so.1 => (0x00007fffce377000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4de1fc1000) librt.so.1 => /lib64/librt.so.1 (0x00007f4de1db9000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f4de1bb4000) libc.so.6 => /lib64/libc.so.6 (0x00007f4de17f5000) /lib64/ld-linux-x86-64.so.2 (0x00007f4de2406000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f4de158f000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4de1371000) $ ldd libsystemd-id128.so linux-vdso.so.1 => (0x00007fff25187000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f41a3964000) libc.so.6 => /lib64/libc.so.6 (0x00007f41a35a5000) /lib64/ld-linux-x86-64.so.2 (0x00007f41a3d89000)
2013-10-15build-sys: libudev - get rid of the needless selinux linking (again)Kay Sievers
2013-10-14rfkill: add new rfkill tool to save/restore rfkill state across rebootsLennart Poettering
This works analogous to the existing backlight and random seed services
2013-10-13Introduce udev object cleanup functionsZbigniew Jędrzejewski-Szmek
2013-10-13test: test for ellipsizeShawn Landden
2013-10-13util, utf8: make ellipsize take multi-byte characters into accountShawn Landden
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-11bus: split up overly long sd-bus.c into three filesLennart Poettering
2013-10-10security: rework selinux, smack, ima, apparmor detection logicLennart Poettering
Always cache the results, and bypass low-level security calls when the respective subsystem is not enabled.
2013-10-10bus: add minimal event loop APILennart Poettering
So far we tried to use epoll directly wherever we needed an event loop. However, that has various shortcomings, such as the inability to handle larger amounts of timers (since each timerfd costs one fd, which is a very limited resource, usually bounded to 1024), and inability to do priorisation between multiple queued events. Let's add a minimal event loop API around epoll that is suitable for implementation of our own daemons and maybe one day can become public API for those who desire it. This loop is part of libsystemd-bus, but may be used independently of it.
2013-10-09Smack: Test if smack is enabled before mountingAuke Kok
Since on most systems with xattr systemd will compile with Smack support enabled, we still attempt to mount various fs's with Smack-only options. Before mounting any of these Smack-related filesystems with Smack specific mount options, check if Smack is functionally active on the running kernel. If Smack is really enabled in the kernel, all these Smack mounts are now *fatal*, as they should be. We no longer mount smackfs if systemd was compiled without Smack support. This makes it easier to make smackfs mount failures a critical error when Smack is enabled. We no longer mount these filesystems with their Smack specific options inside containers. There these filesystems will be mounted with there non-mount smack options for now.
2013-10-09build-sys: add a makefile target to run all tests through valgrindLennart Poettering
2013-10-09build-sys: add sd-bus-vtable.h headerKay Sievers
2013-10-09libsystemd-bus: add lightweight object vtable implementation for exposing ↵Lennart Poettering
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-02cgroup: there's no point in labelling cgroupfs dirs, so let's not do thatsystemd/v208Lennart Poettering
This allows us to get rid of the dep on libsystemd-label for cgroup management. https://bugs.freedesktop.org/show_bug.cgi?id=69966
2013-10-02build-sys: mkdir.[ch] should be in libsystemd-sharedLennart Poettering
Otherwise, why is mkdir-label.[ch] split out?
2013-10-02build-ss: prepare new releaseLennart Poettering
2013-10-01Revert "build-sys: link libsystemd-login with libsystemd-label.la"Kay Sievers
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 ceadabb102b05b237bfab11e1f742975ee4daeb1.
2013-10-01build-sys: link libsystemd-login with libsystemd-label.laMichał Górny
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-09-26Move part of logind.c into a separate fileZbigniew Jędrzejewski-Szmek
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-24support acpi firmware performance data (FPDT)Kay Sievers
Prefer firmware-provided performance data over loader-exported ones; if ACPI data is available, always use it, otherwise try to read the loader data. The firmware-provided variables start at the time the first EFI image is executed and end when the operating system exits the boot services; the (loader) time calculated in systemd-analyze increases.
2013-09-19device-nodes: move device node specific code to own fileDave Reisner
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-17backlight,random-seed: move state files into /var/lib/systemdLennart Poettering
Let's not scatter (private) files in /var around, let's place them all in /var/lib/systemd and below.
2013-09-17logind: introduce session-devicesDavid Herrmann
A session-device is a device that is bound to a seat and used by a session-controller to run the session. This currently includes DRM, fbdev and evdev devices. A session-device can be created via RequestDevice() on the dbus API of the session. You can drop it via ReleaseDevice() again. Once the session is destroyed or you drop control of the session, all session-devices are automatically destroyed. Session devices follow the session "active" state. A device can be active/running or inactive/paused. Whenever a session is not the active session, no session-device of it can be active. That is, if a session is not in foreground, all session-devices are paused. Whenever a session becomes active, all devices are resumed/activated by logind. If it fails, a device may stay paused. With every session-device you request, you also get a file-descriptor back. logind keeps a copy of this fd and uses kernel specific calls to pause/resume the file-descriptors. For example, a DRM fd is muted by logind as long as a given session is not active. Hence, the fd of the application is also muted. Once the session gets active, logind unmutes the fd and the application will get DRM access again. This, however, requires kernel support. DRM devices provide DRM-Master for synchronization, evdev devices have EVIOCREVOKE (pending on linux-input-ML). fbdev devices do not provide such synchronization methods (and never will). Note that for evdev devices, we call EVIOCREVOKE once a session gets inactive. However, this cannot be undone (the fd is still valid but mostly unusable). So we reopen a new fd once the session is activated and send it together with the ResumeDevice() signal. With this infrastructure in place, compositors can now run without CAP_SYS_ADMIN (that is, without being root). They use RequestControl() to acquire a session and listen for devices via udev_monitor. For every device they want to open, they call RequestDevice() on logind. This returns a fd which they can use now. They no longer have to open the devices themselves or call any privileged ioctls. This is all done by logind. Session-switches are still bound to VTs. Hence, compositors will get notified via the usual VT mechanisms and can cleanup their state. Once the VT switch is acknowledged as usual, logind will get notified via sysfs and pause the old-session's devices and resume the devices of the new session. To allow using this infrastructure with systems without VTs, we provide notification signals. logind sends PauseDevice("force") dbus signals to the current session controller for every device that it pauses. And it sends ResumeDevice signals for every device that it resumes. For seats with VTs this is sent _after_ the VT switch is acknowledged. Because the compositor already acknowledged that it cleaned-up all devices. However, for seats without VTs, this is used to notify the active compositor that the session is about to be deactivated. That is, logind sends PauseDevice("force") for each active device and then performs the session-switch. The session-switch changes the "Active" property of the session which can be monitored by the compositor. The new session is activated and the ResumeDevice events are sent. For seats without VTs, this is a forced session-switch. As this is not backwards-compatible (xserver actually crashes, weston drops the related devices, ..) we also provide an acknowledged session-switch. Note that this is never used for sessions with VTs. You use the acknowledged VT-switch on these seats. An acknowledged session switch sends PauseDevice("pause") instead of PauseDevice("force") to the active session. It schedules a short timeout and waits for the session to acknowledge each of them with PauseDeviceComplete(). Once all are acknowledged, or the session ran out of time, a PauseDevice("force") is sent for all remaining active devices and the session switch is performed. Note that this is only partially implemented, yet, as we don't allow multi-session without VTs, yet. A follow up commit will hook it up and implemented the acknowledgements+timeout. The implementation is quite simple. We use major/minor exclusively to identify devices on the bus. On RequestDevice() we retrieve the udev_device from the major/minor and search for an existing "Device" object. If no exists, we create it. This guarantees us that we are notified whenever the device changes seats or is removed. We create a new SessionDevice object and link it to the related Session and Device. Session->devices is a hashtable to lookup SessionDevice objects via major/minor. Device->session_devices is a linked list so we can release all linked session-devices once a device vanishes. Now we only have to hook this up in seat_set_active() so we correctly change device states during session-switches. As mentioned earlier, these are forced state-changes as VTs are currently used exclusively for multi-session implementations. Everything else are hooks to release all session-devices once the controller changes or a session is closed or removed.
2013-09-17move utf8 functions from libudev-private.h to utf8.hDave Reisner
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-17tmpfiles: support simple specifier expansion for specified pathsLennart Poettering