build-sys: make rc-local support part of SYSV compat
This also drops automatic selection of the rc local scripts
based on the local distro. Distributions now should specify the paths
of the rc-local and halt-local scripts on the configure command line.
core: drop support for old per-distro configuration files for console, hostname, locale, timezone
This simplifies the upstream system code quite a bit. If downstream distributions want to maintain compatibility with their old configuration files, they are welcome to do so, but need to maintain this as patches downstream. The burden needs to be on the distributions to maintain differences here. Our suggestion however is to just convert the old configuration files on upgrade, as multiple distributions already do.
I grabbed this one from the todo list. Most of the functionality was
already there for is-active. I just needed to make check_one_unit take
the states to check for as an argument instead of the hardcoded
"active" and "reloading".
is-failed will return 1 if none of the units given are failed. This is
different from is-active which will return 3 if none of the units
given are active. It returns 3 with this comment:
/* According to LSB: "program is not running" */
As that does not make sense when looking for failed units I simply
chose 1 instead.
Tom Gundersen [Fri, 23 Nov 2012 02:41:13 +0000 (03:41 +0100)]
fstab-generator: generate new_root.mount in initrd
The configuration is taken from /proc/cmdline, aiming at emulating the
behavior of the kernel when no initramfs is used.
The supported options are: root=, rootfstype=, rootwait=, rootflags=,
ro, and rw. rootdelay= was dropped, as it is not really useful in a
systemd world, but could easily be added.
v2: fix comments by Lennart, and complain loudly if root= can not be found
Cc: Harald Hoyer <harald@redhat.com> Cc: Dave Reisner <dreisner@archlinux.org>
hostnamed: make chassis type configurable via /etc/machine-info
For many usecases it is useful to store the chassis type somewhere, and
/etc/machine-info sounds like a good place. Ideally we could always
detect the chassis type from firmware, but frequently that's not
available and in many embedded devices probably entirely unrealistic.
This patch adds a configurable setting CHASSIS= to /etc/machine-info and
exposes this via hostnamectl/hostnamed. hostnamed will guess the chassis
type from DMI if nothing is set explicitly. I also added support for
detecting it from ACPI, which should be more useful as ACPI 5.0 actually
knows a "tablet" chassis type, which neither DMI nor previous ACPI
versions knew.
This also enables DMI-based and ACPI-based detection for non-x86 systems
as ACPI is apparently coming to ARM platforms soon.
I tried to minimize the vocabulary of chassis types understood and
added: desktop, laptop, server, tablet, handset. This is much less than
either APCI or DMI know. If we need more types later on we can easily
add them.
This is a bit of a contortion because libsystemd-shared.la is a
noinst_LTLIBRARY, but libtool should do the right thing here and emit
DT_NEEDED on libsystemd-daemon.so for things that consume
libsystemd-shared.la.
Michal Sekletar [Thu, 13 Dec 2012 13:59:39 +0000 (14:59 +0100)]
path-util: set pointer to null after calling free()
In cases where path_strv_canonicalize() returns NULL, strv_free() is
called afterwards and it will call free() on pointers which were freed
already in path_strv_canonicalize()
Sami Kerola [Mon, 17 Dec 2012 10:13:17 +0000 (11:13 +0100)]
sd-daemon: fix cppcheck warnings
Found with 'cppcheck --enable=all --inconclusive --std=posix' while
working with util-linux, which has a copy of this file.
[misc-utils/sd-daemon.c:363]: (style) Checking if unsigned variable \
'length' is less than zero.
[misc-utils/sd-daemon.c:366]: (style) Checking if unsigned variable \
'length' is less than zero.
GCC manual states that "For an enum, struct or union type, you may
specify attributes either between the enum, struct or union tag and
the name of the type, or just past the closing curly brace of the
definition. The former syntax is preferred." This means that the
attribute should not be located before 'struct'. Putting it between
'struct' and the name seems cluttered. Putting it at the end seems
most readable.
Richard Yao [Sun, 18 Nov 2012 19:55:10 +0000 (14:55 -0500)]
Fix "attribute 'packed' is ignored" warnings when using Clang
Clang 3.1 warned that "attribute 'packed' is ignored". This stems from
placing "__attribute__ ((packed))" at the start of structure
declarations when common practice is to place it at the end.
Michal Schmidt [Fri, 7 Dec 2012 16:44:50 +0000 (17:44 +0100)]
shutdown, umount: logging improvements
In bugreports about hangs during the late shutdown we are often missing
important information - what were we trying to unmount/detach when it hung.
Instead of printing what we successfully unmounted, print what we are
going to unmount/detach. And add messages to mark the completion of
categories (mount/swap/loop/DM).
Kay Sievers [Thu, 6 Dec 2012 20:48:49 +0000 (21:48 +0100)]
rules: usb-hid-pm - remove AMI devices
On Thu, Dec 6, 2012 at 9:20 AM, Robert Milasan <rmilasan@suse.com> wrote:
> It seems that the added rules:
>
> ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046b",
> ATTR{idProduct}=="ff10", TEST=="power/control",
> ATTR{power/control}="auto"
>
> creates problems for people with Supermicro X8ST3 mb (and maybe
> other Supermicro mb's) and renders the KVM-over-IP unusable, at BIOS
> and GRUB the KVM works perfectly, but after that the device is unusable.
>
> Dropping the rule fixes the issue.
>
> Reference bug: https://bugzilla.novell.com/show_bug.cgi?id=792576
Michal Schmidt [Thu, 6 Dec 2012 15:20:10 +0000 (16:20 +0100)]
systemctl: verbose message on missing [Install]
People still don't understand what the message implies.
We have to be more verbose (or more intelligent and detect some of the
cases automatically, but that's not so easy).
Shawn Landden [Mon, 3 Dec 2012 00:50:55 +0000 (00:50 +0000)]
timedated: do not incorrectly close non-opened dbus connection
Fix the fallowing error when no system dbus available:
Failed to get system D-Bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
process 14920: arguments to dbus_connection_close() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2889.
This is normally a bug in some application using the D-Bus library.
process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776.
This is normally a bug in some application using the D-Bus library.