Backport fixes, documentation, and hwdb changes
This commit is contained in:
parent
627fdaef23
commit
12622292b9
|
@ -44,6 +44,3 @@ index 5397bd6..610fe88 100644
|
|||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
1.8.4.2
|
||||
|
||||
|
|
|
@ -23,6 +23,3 @@ index 610fe88..e02c207 100644
|
|||
char *state, *w;
|
||||
size_t l;
|
||||
|
||||
--
|
||||
1.8.4.2
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
From 371ce08fb9814a39ca2f984d6040aaf0f6c172e8 Mon Sep 17 00:00:00 2001
|
||||
From: Dan McGee <dan@archlinux.org>
|
||||
Date: Sun, 8 Dec 2013 14:33:45 -0600
|
||||
Subject: [PATCH] Fix memory leak in stdout journal streams
|
||||
|
||||
Just as 'identifier' is strdup-ed and freed, we need to do the same for
|
||||
unit_id.
|
||||
---
|
||||
src/journal/journald-stream.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
|
||||
index 9c4efec..4080622 100644
|
||||
--- a/src/journal/journald-stream.c
|
||||
+++ b/src/journal/journald-stream.c
|
||||
@@ -339,6 +339,7 @@ void stdout_stream_free(StdoutStream *s) {
|
||||
#endif
|
||||
|
||||
free(s->identifier);
|
||||
+ free(s->unit_id);
|
||||
free(s);
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
From 77e9da01ad6383aab4d50a00b705ec96f16cb55e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 8 Dec 2013 18:56:16 -0500
|
||||
Subject: [PATCH] man: document 'is-enabled' output
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=953077
|
||||
---
|
||||
man/systemctl.xml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 59 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/man/systemctl.xml b/man/systemctl.xml
|
||||
index 166282c..b4bc15d 100644
|
||||
--- a/man/systemctl.xml
|
||||
+++ b/man/systemctl.xml
|
||||
@@ -437,7 +437,7 @@ systemctl start foo
|
||||
|
||||
<listitem>
|
||||
<para>When used with <command>enable</command>,
|
||||
- <command>disable</command>, <command>is-enabled</command>
|
||||
+ <command>disable</command>,
|
||||
(and related commands), make changes only temporarily, so
|
||||
that they are lost on the next reboot. This will have the
|
||||
effect that changes are not made in subdirectories of
|
||||
@@ -885,10 +885,64 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
|
||||
|
||||
<listitem>
|
||||
<para>Checks whether any of the specified unit files are
|
||||
- enabled (as with <command>enable</command>). Returns an exit
|
||||
- code of 0 if at least one is enabled, non-zero
|
||||
- otherwise. Prints the current enable status. To suppress
|
||||
- this output, use <option>--quiet</option>.</para>
|
||||
+ enabled (as with <command>enable</command>). Returns an
|
||||
+ exit code of 0 if at least one is enabled, non-zero
|
||||
+ otherwise. Prints the current enable status (see table).
|
||||
+ To suppress this output, use <option>--quiet</option>.
|
||||
+ </para>
|
||||
+
|
||||
+ <table>
|
||||
+ <title>
|
||||
+ <command>is-enabled</command> output
|
||||
+ </title>
|
||||
+
|
||||
+ <tgroup cols='3'>
|
||||
+ <thead>
|
||||
+ <row>
|
||||
+ <entry>Printed string</entry>
|
||||
+ <entry>Meaning</entry>
|
||||
+ <entry>Return value</entry>
|
||||
+ </row>
|
||||
+ </thead>
|
||||
+ <tbody>
|
||||
+ <row>
|
||||
+ <entry><literal>enabled</literal></entry>
|
||||
+ <entry morerows='1'>Enabled through a symlink in <filename>.wants</filename> directory (permanently or just in <filename>/run</filename>)</entry>
|
||||
+ <entry morerows='1'>0</entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>enabled-runtime</literal></entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>linked</literal></entry>
|
||||
+ <entry morerows='1'>Made available through a symlink to the unit file (permanently or just in <filename>/run</filename>)</entry>
|
||||
+ <entry morerows='1'>1</entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>linked-runtime</literal></entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>masked</literal></entry>
|
||||
+ <entry morerows='1'>Disabled entirely (permanently or just in <filename>/run</filename>)</entry>
|
||||
+ <entry morerows='1'>1</entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>masked-runtime</literal></entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>static</literal></entry>
|
||||
+ <entry>Unit is not enabled, but has no provisions for enabling in [Install] section</entry>
|
||||
+ <entry>1</entry>
|
||||
+ </row>
|
||||
+ <row>
|
||||
+ <entry><literal>disabled</literal></entry>
|
||||
+ <entry>Unit is not enabled</entry>
|
||||
+ <entry>1</entry>
|
||||
+ </row>
|
||||
+ </tbody>
|
||||
+ </tgroup>
|
||||
+ </table>
|
||||
+
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
From d4ae9b53caa77d17528d36610ad70dd2eb1bb54c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 6 Jan 2014 12:16:55 +0000
|
||||
Subject: [PATCH] hostnamed: avoid using NULL in error path
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1047335
|
||||
---
|
||||
src/hostname/hostnamed.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
|
||||
index 6a43aeb..0c24b65 100644
|
||||
--- a/src/hostname/hostnamed.c
|
||||
+++ b/src/hostname/hostnamed.c
|
||||
@@ -637,7 +637,7 @@ static int connect_bus(DBusConnection **_bus) {
|
||||
if (!bus) {
|
||||
log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error));
|
||||
r = -ECONNREFUSED;
|
||||
- goto fail;
|
||||
+ goto fail2;
|
||||
}
|
||||
|
||||
dbus_connection_set_exit_on_disconnect(bus, FALSE);
|
||||
@@ -669,7 +669,7 @@ static int connect_bus(DBusConnection **_bus) {
|
||||
fail:
|
||||
dbus_connection_close(bus);
|
||||
dbus_connection_unref(bus);
|
||||
-
|
||||
+fail2:
|
||||
dbus_error_free(&error);
|
||||
|
||||
return r;
|
|
@ -0,0 +1,31 @@
|
|||
From 524147c1ef991edf4432aac51c880b363b4402df Mon Sep 17 00:00:00 2001
|
||||
From: Marius Vollmer <mvollmer@redhat.com>
|
||||
Date: Thu, 31 Oct 2013 15:55:07 +0200
|
||||
Subject: [PATCH] logind: use correct "who" enum values with KillUnit.
|
||||
|
||||
---
|
||||
src/login/logind-dbus.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
|
||||
index bb85c7d..583d62e 100644
|
||||
--- a/src/login/logind-dbus.c
|
||||
+++ b/src/login/logind-dbus.c
|
||||
@@ -2799,7 +2799,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo
|
||||
assert(manager);
|
||||
assert(unit);
|
||||
|
||||
- w = who == KILL_LEADER ? "process" : "cgroup";
|
||||
+ w = who == KILL_LEADER ? "control" : "all";
|
||||
assert_cc(sizeof(signo) == sizeof(int32_t));
|
||||
|
||||
r = bus_method_call_with_reply(
|
||||
@@ -2815,7 +2815,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo
|
||||
DBUS_TYPE_INT32, &signo,
|
||||
DBUS_TYPE_INVALID);
|
||||
if (r < 0) {
|
||||
- log_error("Failed to stop unit %s: %s", unit, bus_error(error, r));
|
||||
+ log_error("Failed to kill unit %s: %s", unit, bus_error(error, r));
|
||||
return r;
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
From 106c98f6b08d3b9254b419b09bc4ceed1963d7aa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 14 Jan 2014 17:31:00 -0500
|
||||
Subject: [PATCH] Revert "systemd: add a start job for all units specified with
|
||||
SYSTEMD_WANTS="
|
||||
|
||||
This reverts commit 043a559ff3732439fc61872a6320ee0a05dd088f.
|
||||
|
||||
This was a mistake, and was reverted upstream.
|
||||
---
|
||||
src/core/device.c | 14 +++-----------
|
||||
1 file changed, 3 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/core/device.c b/src/core/device.c
|
||||
index e02c207..f79c206 100644
|
||||
--- a/src/core/device.c
|
||||
+++ b/src/core/device.c
|
||||
@@ -282,8 +282,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p
|
||||
size_t l;
|
||||
|
||||
FOREACH_WORD_QUOTED(w, l, wants, state) {
|
||||
- _cleanup_free_ char *e, *n = NULL;
|
||||
- Unit *other;
|
||||
+ char *e, *n;
|
||||
|
||||
e = strndup(w, l);
|
||||
if (!e) {
|
||||
@@ -295,19 +294,12 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p
|
||||
r = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
+ free(e);
|
||||
|
||||
r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true);
|
||||
+ free(n);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
-
|
||||
- other = manager_get_unit(u->manager, n);
|
||||
- if (!other || !unit_can_start(other))
|
||||
- continue;
|
||||
-
|
||||
- r = manager_add_job(u->manager, JOB_START, other, JOB_REPLACE, true, NULL, NULL);
|
||||
- if (r < 0)
|
||||
- log_warning("Failed to add job %s/%s, ignoring: %s.",
|
||||
- other->id, job_type_to_string(JOB_START), strerror(-r));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
From 85a77eea8d7114675602a33d2e067fd7c4ad0624 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 12 Jan 2014 11:38:56 -0500
|
||||
Subject: [PATCH] core: do not segfault if swap activity happens when
|
||||
/proc/swaps is not open
|
||||
|
||||
In https://bugzilla.redhat.com/show_bug.cgi?id=969795 systemd crashes
|
||||
in swap_dispatch_reload called from manager_loop becuase m->proc_swaps
|
||||
is NULL. It can legitimately be NULL if something went wrong when
|
||||
initially enumerating swap devices when starting the manager. This
|
||||
is probably a sign of significant trouble, but let's do our best
|
||||
to recover.
|
||||
---
|
||||
src/core/swap.c | 45 +++++++++++++++++++++++++++++----------------
|
||||
1 file changed, 29 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index 147f710..f295b65 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -1068,14 +1068,40 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) {
|
||||
return r;
|
||||
}
|
||||
|
||||
+static int open_proc_swaps(Manager *m) {
|
||||
+ if (!m->proc_swaps) {
|
||||
+ struct epoll_event ev = {
|
||||
+ .events = EPOLLPRI,
|
||||
+ .data.ptr = &m->swap_watch,
|
||||
+ };
|
||||
+
|
||||
+ m->proc_swaps = fopen("/proc/swaps", "re");
|
||||
+ if (!m->proc_swaps)
|
||||
+ return (errno == ENOENT) ? 0 : -errno;
|
||||
+
|
||||
+ m->swap_watch.type = WATCH_SWAP;
|
||||
+ m->swap_watch.fd = fileno(m->proc_swaps);
|
||||
+
|
||||
+ if (epoll_ctl(m->epoll_fd, EPOLL_CTL_ADD, m->swap_watch.fd, &ev) < 0)
|
||||
+ return -errno;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int swap_dispatch_reload(Manager *m) {
|
||||
/* This function should go as soon as the kernel properly notifies us */
|
||||
+ int r;
|
||||
|
||||
if (_likely_(!m->request_reload))
|
||||
return 0;
|
||||
|
||||
m->request_reload = false;
|
||||
|
||||
+ r = open_proc_swaps(m);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
return swap_fd_event(m, EPOLLPRI);
|
||||
}
|
||||
|
||||
@@ -1225,22 +1251,9 @@ static int swap_enumerate(Manager *m) {
|
||||
int r;
|
||||
assert(m);
|
||||
|
||||
- if (!m->proc_swaps) {
|
||||
- struct epoll_event ev = {
|
||||
- .events = EPOLLPRI,
|
||||
- .data.ptr = &m->swap_watch,
|
||||
- };
|
||||
-
|
||||
- m->proc_swaps = fopen("/proc/swaps", "re");
|
||||
- if (!m->proc_swaps)
|
||||
- return (errno == ENOENT) ? 0 : -errno;
|
||||
-
|
||||
- m->swap_watch.type = WATCH_SWAP;
|
||||
- m->swap_watch.fd = fileno(m->proc_swaps);
|
||||
-
|
||||
- if (epoll_ctl(m->epoll_fd, EPOLL_CTL_ADD, m->swap_watch.fd, &ev) < 0)
|
||||
- return -errno;
|
||||
- }
|
||||
+ r = open_proc_swaps(m);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
|
||||
r = swap_load_proc_swaps(m, false);
|
||||
if (r < 0)
|
|
@ -0,0 +1,69 @@
|
|||
From cb5fd30c9ca64024335129d393c15a9586433ca2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 8 Dec 2013 07:46:46 -0500
|
||||
Subject: [PATCH] kernel-install: add -h/--help
|
||||
|
||||
---
|
||||
src/kernel-install/kernel-install | 21 ++++++++++++++-------
|
||||
1 file changed, 14 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
|
||||
index 9d3e75d..f5ff362 100644
|
||||
--- a/src/kernel-install/kernel-install
|
||||
+++ b/src/kernel-install/kernel-install
|
||||
@@ -21,9 +21,9 @@
|
||||
|
||||
usage()
|
||||
{
|
||||
- echo "Usage:" >&2
|
||||
- echo " $0 add <kernel-version> <kernel-image>" >&2
|
||||
- echo " $0 remove <kernel-version> <kernel-image>" >&2
|
||||
+ echo "Usage:"
|
||||
+ echo " $0 add KERNEL-VERSION KERNEL-IMAGE"
|
||||
+ echo " $0 remove KERNEL-VERSION KERNEL-IMAGE"
|
||||
}
|
||||
|
||||
dropindirs_sort()
|
||||
@@ -54,6 +54,13 @@ dropindirs_sort()
|
||||
|
||||
export LC_COLLATE=C
|
||||
|
||||
+for i in "$@"; do
|
||||
+ if [ "$i" == "--help" -o "$i" == "-h" ]; then
|
||||
+ usage
|
||||
+ exit 0
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
if [[ "${0##*/}" == 'installkernel' ]]; then
|
||||
COMMAND='add'
|
||||
else
|
||||
@@ -75,7 +82,7 @@ if ! [[ $MACHINE_ID ]]; then
|
||||
fi
|
||||
|
||||
if [[ ! $COMMAND ]] || [[ ! $KERNEL_VERSION ]]; then
|
||||
- usage
|
||||
+ echo "Not enough arguments" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -90,8 +97,8 @@ readarray -t PLUGINS < <(
|
||||
|
||||
case $COMMAND in
|
||||
add)
|
||||
- if [[ ! $KERNEL_IMAGE ]]; then
|
||||
- usage
|
||||
+ if [[ ! "$KERNEL_IMAGE" ]]; then
|
||||
+ echo "Command 'add' requires an argument" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -121,7 +128,7 @@ case $COMMAND in
|
||||
;;
|
||||
|
||||
*)
|
||||
- usage
|
||||
+ echo "Unknown command '$COMMAND'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,25 @@
|
|||
From 245b830c77bfbac0346bd1df3fa5d6b81d77014a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=A9bastien=20Luttringer?= <seblu@seblu.net>
|
||||
Date: Thu, 5 Dec 2013 02:55:05 +0100
|
||||
Subject: [PATCH] kernel-install: fix help output
|
||||
|
||||
Kernel install doesn't need the second argument on his command line when
|
||||
removing.
|
||||
This is correctly documented in the man page.
|
||||
---
|
||||
src/kernel-install/kernel-install | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
|
||||
index f5ff362..3ae1d77 100644
|
||||
--- a/src/kernel-install/kernel-install
|
||||
+++ b/src/kernel-install/kernel-install
|
||||
@@ -23,7 +23,7 @@ usage()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo " $0 add KERNEL-VERSION KERNEL-IMAGE"
|
||||
- echo " $0 remove KERNEL-VERSION KERNEL-IMAGE"
|
||||
+ echo " $0 remove KERNEL-VERSION"
|
||||
}
|
||||
|
||||
dropindirs_sort()
|
|
@ -0,0 +1,67 @@
|
|||
From 07e7e0378c3f2b73e56e886f7a4b59068dbbbc55 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason St. John" <jstjohn@purdue.edu>
|
||||
Date: Tue, 10 Dec 2013 00:10:03 -0500
|
||||
Subject: [PATCH] man: improve wording and comma usage in
|
||||
systemd.journal-fields(7)
|
||||
|
||||
Improve wording under "Description" and "_KERNEL_DEVICE="
|
||||
---
|
||||
man/systemd.journal-fields.xml | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml
|
||||
index 8a15598..bb89ed5 100644
|
||||
--- a/man/systemd.journal-fields.xml
|
||||
+++ b/man/systemd.journal-fields.xml
|
||||
@@ -51,14 +51,14 @@
|
||||
<title>Description</title>
|
||||
|
||||
<para>Entries in the journal resemble an environment
|
||||
- block in their syntax, however with fields that can
|
||||
+ block in their syntax but with fields that can
|
||||
include binary data. Primarily, fields are formatted
|
||||
UTF-8 text strings, and binary formatting is used only
|
||||
where formatting as UTF-8 text strings makes little
|
||||
sense. New fields may freely be defined by
|
||||
applications, but a few fields have special
|
||||
meaning. All fields with special meanings are
|
||||
- optional. In some cases fields may appear more than
|
||||
+ optional. In some cases, fields may appear more than
|
||||
once per entry.</para>
|
||||
</refsect1>
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
<term><varname>_UID=</varname></term>
|
||||
<term><varname>_GID=</varname></term>
|
||||
<listitem>
|
||||
- <para>The process, user and
|
||||
+ <para>The process, user, and
|
||||
group ID of the process the
|
||||
journal entry originates from
|
||||
formatted as a decimal
|
||||
@@ -190,7 +190,7 @@
|
||||
<term><varname>_CMDLINE=</varname></term>
|
||||
<listitem>
|
||||
<para>The name, the executable
|
||||
- path and the command line of
|
||||
+ path, and the command line of
|
||||
the process the journal entry
|
||||
originates from.</para>
|
||||
</listitem>
|
||||
@@ -389,12 +389,12 @@
|
||||
the major and minor of the
|
||||
device node, separated by <literal>:</literal>
|
||||
and prefixed by <literal>b</literal>. Similar
|
||||
- for character devices, but
|
||||
+ for character devices but
|
||||
prefixed by <literal>c</literal>. For network
|
||||
- devices the interface index,
|
||||
+ devices, this is the interface index
|
||||
prefixed by <literal>n</literal>. For all other
|
||||
- devices <literal>+</literal> followed by the
|
||||
- subsystem name, followed by
|
||||
+ devices, this is the subsystem name
|
||||
+ prefixed by <literal>+</literal>, followed by
|
||||
<literal>:</literal>, followed by the kernel
|
||||
device name.</para>
|
||||
</listitem>
|
|
@ -0,0 +1,84 @@
|
|||
From 26dcf06766bc1fc533d301831838e9e302315134 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Mon, 9 Dec 2013 21:58:34 -0800
|
||||
Subject: [PATCH] drop several entries from kbd-model-map whose kbd layouts do
|
||||
not exist
|
||||
|
||||
kbd-model-map was generated from system-config-keyboard's keyboard_models.py.
|
||||
Several of the kbd layouts referred in that file do not exist and, so far as I
|
||||
can tell, never did. I believe these entries existed simply to provide the xkb
|
||||
configuration information for those layouts, and there never were matching kbd
|
||||
entries; the kbd names were entirely notional, to satisfy the need for some
|
||||
entry or other in that field.
|
||||
|
||||
For systemd, the only function of kbd-model-map is to 'match' kbd and xkb
|
||||
configurations, so it does not make any sense to maintain entries for cases
|
||||
where only one or the other exists in this context.
|
||||
---
|
||||
src/locale/kbd-model-map | 12 ------------
|
||||
1 file changed, 12 deletions(-)
|
||||
|
||||
diff --git a/src/locale/kbd-model-map b/src/locale/kbd-model-map
|
||||
index 1fe9bca..78c7887 100644
|
||||
--- a/src/locale/kbd-model-map
|
||||
+++ b/src/locale/kbd-model-map
|
||||
@@ -4,22 +4,18 @@ sg ch pc105 de_nodeadkeys terminate:ctrl_alt_bksp
|
||||
nl nl pc105 - terminate:ctrl_alt_bksp
|
||||
mk-utf mk,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
trq tr pc105 - terminate:ctrl_alt_bksp
|
||||
-guj in,us pc105 guj terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
uk gb pc105 - terminate:ctrl_alt_bksp
|
||||
is-latin1 is pc105 - terminate:ctrl_alt_bksp
|
||||
de de pc105 - terminate:ctrl_alt_bksp
|
||||
-gur gur,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
la-latin1 latam pc105 - terminate:ctrl_alt_bksp
|
||||
us us pc105+inet - terminate:ctrl_alt_bksp
|
||||
ko kr pc105 - terminate:ctrl_alt_bksp
|
||||
ro-std ro pc105 std terminate:ctrl_alt_bksp
|
||||
de-latin1 de pc105 - terminate:ctrl_alt_bksp
|
||||
-tml-inscript in,us pc105 tam terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
slovene si pc105 - terminate:ctrl_alt_bksp
|
||||
hu101 hu pc105 qwerty terminate:ctrl_alt_bksp
|
||||
jp106 jp jp106 - terminate:ctrl_alt_bksp
|
||||
croat hr pc105 - terminate:ctrl_alt_bksp
|
||||
-ben-probhat in,us pc105 ben_probhat terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
fi-latin1 fi pc105 - terminate:ctrl_alt_bksp
|
||||
it2 it pc105 - terminate:ctrl_alt_bksp
|
||||
hu hu pc105 - terminate:ctrl_alt_bksp
|
||||
@@ -29,7 +25,6 @@ fr_CH ch pc105 fr terminate:ctrl_alt_bksp
|
||||
dk-latin1 dk pc105 - terminate:ctrl_alt_bksp
|
||||
fr fr pc105 - terminate:ctrl_alt_bksp
|
||||
it it pc105 - terminate:ctrl_alt_bksp
|
||||
-tml-uni in,us pc105 tam_TAB terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
ua-utf ua,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
fr-latin1 fr pc105 - terminate:ctrl_alt_bksp
|
||||
sg-latin1 ch pc105 de_nodeadkeys terminate:ctrl_alt_bksp
|
||||
@@ -39,16 +34,12 @@ fr-pc fr pc105 - terminate:ctrl_alt_bksp
|
||||
bg_pho-utf8 bg,us pc105 ,phonetic terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
it-ibm it pc105 - terminate:ctrl_alt_bksp
|
||||
cz-us-qwertz cz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
-ar-digits ara,us pc105 digits terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
br-abnt2 br abnt2 - terminate:ctrl_alt_bksp
|
||||
ro ro pc105 - terminate:ctrl_alt_bksp
|
||||
us-acentos us pc105 intl terminate:ctrl_alt_bksp
|
||||
pt-latin1 pt pc105 - terminate:ctrl_alt_bksp
|
||||
ro-std-cedilla ro pc105 std_cedilla terminate:ctrl_alt_bksp
|
||||
tj tj pc105 - terminate:ctrl_alt_bksp
|
||||
-ar-qwerty ara,us pc105 qwerty terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
-ar-azerty-digits ara,us pc105 azerty_digits terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
-ben in,us pc105 ben terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
de-latin1-nodeadkeys de pc105 nodeadkeys terminate:ctrl_alt_bksp
|
||||
no no pc105 - terminate:ctrl_alt_bksp
|
||||
bg_bds-utf8 bg,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
@@ -60,11 +51,8 @@ pl2 pl pc105 - terminate:ctrl_alt_bksp
|
||||
es es pc105 - terminate:ctrl_alt_bksp
|
||||
ro-cedilla ro pc105 cedilla terminate:ctrl_alt_bksp
|
||||
ie ie pc105 - terminate:ctrl_alt_bksp
|
||||
-ar-azerty ara,us pc105 azerty terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
-ar-qwerty-digits ara,us pc105 qwerty_digits terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
et ee pc105 - terminate:ctrl_alt_bksp
|
||||
sk-qwerty sk pc105 - terminate:ctrl_alt_bksp,qwerty
|
||||
-dev dev,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
fr-latin9 fr pc105 latin9 terminate:ctrl_alt_bksp
|
||||
fr_CH-latin1 ch pc105 fr terminate:ctrl_alt_bksp
|
||||
cf ca pc105 - terminate:ctrl_alt_bksp
|
|
@ -0,0 +1,22 @@
|
|||
From bc0cbe40cbfde7e8194f6f4b9b17e7102efa35c7 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Mon, 9 Dec 2013 22:02:25 -0800
|
||||
Subject: [PATCH] correct name of Tajik kbd layout in kbd-model-map
|
||||
|
||||
---
|
||||
src/locale/kbd-model-map | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/locale/kbd-model-map b/src/locale/kbd-model-map
|
||||
index 78c7887..322c0a9 100644
|
||||
--- a/src/locale/kbd-model-map
|
||||
+++ b/src/locale/kbd-model-map
|
||||
@@ -39,7 +39,7 @@ ro ro pc105 - terminate:ctrl_alt_bksp
|
||||
us-acentos us pc105 intl terminate:ctrl_alt_bksp
|
||||
pt-latin1 pt pc105 - terminate:ctrl_alt_bksp
|
||||
ro-std-cedilla ro pc105 std_cedilla terminate:ctrl_alt_bksp
|
||||
-tj tj pc105 - terminate:ctrl_alt_bksp
|
||||
+tj_alt-UTF8 tj pc105 - terminate:ctrl_alt_bksp
|
||||
de-latin1-nodeadkeys de pc105 nodeadkeys terminate:ctrl_alt_bksp
|
||||
no no pc105 - terminate:ctrl_alt_bksp
|
||||
bg_bds-utf8 bg,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
|
@ -0,0 +1,35 @@
|
|||
From 4ee475e4786ac69b74a75fd668f0bb8e07bdde2d Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Tue, 10 Dec 2013 03:17:39 -0800
|
||||
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
|
||||
|
||||
---
|
||||
hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
index dcc25bb..6f8301f 100644
|
||||
--- a/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
+++ b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
@@ -821,3 +821,21 @@ bluetooth:v010F*
|
||||
|
||||
bluetooth:v0110*
|
||||
ID_VENDOR_FROM_DATABASE=Nippon Seiki Co., Ltd.
|
||||
+
|
||||
+bluetooth:v0111*
|
||||
+ ID_VENDOR_FROM_DATABASE=Steelseries ApS
|
||||
+
|
||||
+bluetooth:v0112*
|
||||
+ ID_VENDOR_FROM_DATABASE=vyzybl Inc.
|
||||
+
|
||||
+bluetooth:v0113*
|
||||
+ ID_VENDOR_FROM_DATABASE=Openbrain Technologies, Co., Ltd.
|
||||
+
|
||||
+bluetooth:v0114*
|
||||
+ ID_VENDOR_FROM_DATABASE=Xensr
|
||||
+
|
||||
+bluetooth:v0115*
|
||||
+ ID_VENDOR_FROM_DATABASE=e.solutions
|
||||
+
|
||||
+bluetooth:v0116*
|
||||
+ ID_VENDOR_FROM_DATABASE=1OAK Technologies
|
|
@ -0,0 +1,33 @@
|
|||
From d8b3047ccb52c2b55683f2fe12f0674f63d746cb Mon Sep 17 00:00:00 2001
|
||||
From: Dan McGee <dan@archlinux.org>
|
||||
Date: Sun, 8 Dec 2013 13:27:05 -0600
|
||||
Subject: [PATCH] Ensure unit is journaled for short-lived or oneshot processes
|
||||
|
||||
In the time it takes to process incoming log messages, the process we
|
||||
are logging details for may exit. This means the cgroup data is no
|
||||
longer available from '/proc'. Unfortunately, the way the code was
|
||||
structured before, we never log _SYSTEMD_UNIT if we don't have this
|
||||
cgroup information.
|
||||
|
||||
Add an else if case that allows the passed in unit_id to be logged even
|
||||
if we couldn't capture cgroup information. This ensures a command like
|
||||
`journalctl -u run-XXX` will return all log messages from a oneshot
|
||||
process.
|
||||
---
|
||||
src/journal/journald-server.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
|
||||
index a0a8e9c..1fcb3d5 100644
|
||||
--- a/src/journal/journald-server.c
|
||||
+++ b/src/journal/journald-server.c
|
||||
@@ -626,6 +626,9 @@ static void dispatch_message_real(
|
||||
}
|
||||
|
||||
free(c);
|
||||
+ } else if (unit_id) {
|
||||
+ x = strappenda("_SYSTEMD_UNIT=", unit_id);
|
||||
+ IOVEC_SET_STRING(iovec[n++], x);
|
||||
}
|
||||
|
||||
#ifdef HAVE_SELINUX
|
|
@ -0,0 +1,62 @@
|
|||
From 4c5b792c88c81d0595a1273804d2cd405140f81d Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Tue, 10 Dec 2013 16:36:45 +0100
|
||||
Subject: [PATCH] libudev: hwdb - use libudev not systemd logging
|
||||
|
||||
---
|
||||
src/libudev/libudev-hwdb.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/libudev/libudev-hwdb.c b/src/libudev/libudev-hwdb.c
|
||||
index de1cb83..ba43b9f 100644
|
||||
--- a/src/libudev/libudev-hwdb.c
|
||||
+++ b/src/libudev/libudev-hwdb.c
|
||||
@@ -277,38 +277,38 @@ _public_ struct udev_hwdb *udev_hwdb_new(struct udev *udev) {
|
||||
|
||||
hwdb->f = fopen("/etc/udev/hwdb.bin", "re");
|
||||
if (!hwdb->f) {
|
||||
- log_debug("error reading /etc/udev/hwdb.bin: %m");
|
||||
+ udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
|
||||
udev_hwdb_unref(hwdb);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (fstat(fileno(hwdb->f), &hwdb->st) < 0 ||
|
||||
(size_t)hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) {
|
||||
- log_debug("error reading /etc/udev/hwdb.bin: %m");
|
||||
+ udev_dbg(udev, "error reading /etc/udev/hwdb.bin: %m");
|
||||
udev_hwdb_unref(hwdb);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
hwdb->map = mmap(0, hwdb->st.st_size, PROT_READ, MAP_SHARED, fileno(hwdb->f), 0);
|
||||
if (hwdb->map == MAP_FAILED) {
|
||||
- log_debug("error mapping /etc/udev/hwdb.bin: %m");
|
||||
+ udev_dbg(udev, "error mapping /etc/udev/hwdb.bin: %m");
|
||||
udev_hwdb_unref(hwdb);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (memcmp(hwdb->map, sig, sizeof(hwdb->head->signature)) != 0 ||
|
||||
(size_t)hwdb->st.st_size != le64toh(hwdb->head->file_size)) {
|
||||
- log_debug("error recognizing the format of /etc/udev/hwdb.bin");
|
||||
+ udev_dbg(udev, "error recognizing the format of /etc/udev/hwdb.bin");
|
||||
udev_hwdb_unref(hwdb);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- log_debug("=== trie on-disk ===\n");
|
||||
- log_debug("tool version: %"PRIu64, le64toh(hwdb->head->tool_version));
|
||||
- log_debug("file size: %8llu bytes\n", (unsigned long long) hwdb->st.st_size);
|
||||
- log_debug("header size %8"PRIu64" bytes\n", le64toh(hwdb->head->header_size));
|
||||
- log_debug("strings %8"PRIu64" bytes\n", le64toh(hwdb->head->strings_len));
|
||||
- log_debug("nodes %8"PRIu64" bytes\n", le64toh(hwdb->head->nodes_len));
|
||||
+ udev_dbg(udev, "=== trie on-disk ===\n");
|
||||
+ udev_dbg(udev, "tool version: %"PRIu64, le64toh(hwdb->head->tool_version));
|
||||
+ udev_dbg(udev, "file size: %8llu bytes\n", (unsigned long long) hwdb->st.st_size);
|
||||
+ udev_dbg(udev, "header size %8"PRIu64" bytes\n", le64toh(hwdb->head->header_size));
|
||||
+ udev_dbg(udev, "strings %8"PRIu64" bytes\n", le64toh(hwdb->head->strings_len));
|
||||
+ udev_dbg(udev, "nodes %8"PRIu64" bytes\n", le64toh(hwdb->head->nodes_len));
|
||||
return hwdb;
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From 906a89f8e60c9a39610afd7edbc41f79a3c711e7 Mon Sep 17 00:00:00 2001
|
||||
From: Shawn Landden <shawn@churchofgit.com>
|
||||
Date: Tue, 10 Dec 2013 09:28:26 -0800
|
||||
Subject: [PATCH] core/manager: remove infinite loop
|
||||
|
||||
---
|
||||
src/core/manager.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/core/manager.c b/src/core/manager.c
|
||||
index 944c196..a34a3c6 100644
|
||||
--- a/src/core/manager.c
|
||||
+++ b/src/core/manager.c
|
||||
@@ -2285,10 +2285,8 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
|
||||
}
|
||||
|
||||
finish:
|
||||
- if (ferror(f)) {
|
||||
+ if (ferror(f))
|
||||
r = -EIO;
|
||||
- goto finish;
|
||||
- }
|
||||
|
||||
assert(m->n_reloading > 0);
|
||||
m->n_reloading --;
|
|
@ -0,0 +1,34 @@
|
|||
From b7b1af75b9f76f3bff35369b0c1666890c586144 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Dec 2013 18:53:03 +0000
|
||||
Subject: [PATCH] util: check for overflow in greedy_realloc()
|
||||
|
||||
Conflicts:
|
||||
src/shared/util.c
|
||||
---
|
||||
src/shared/util.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
||||
index 1510c5e..02bae90 100644
|
||||
--- a/src/shared/util.c
|
||||
+++ b/src/shared/util.c
|
||||
@@ -5832,10 +5832,18 @@ void* greedy_realloc(void **p, size_t *allocated, size_t need) {
|
||||
size_t a;
|
||||
void *q;
|
||||
|
||||
+ assert(p);
|
||||
+ assert(allocated);
|
||||
+
|
||||
if (*allocated >= need)
|
||||
return *p;
|
||||
|
||||
a = MAX(64u, need * 2);
|
||||
+
|
||||
+ /* check for overflows */
|
||||
+ if (a < need)
|
||||
+ return NULL;
|
||||
+
|
||||
q = realloc(*p, a);
|
||||
if (!q)
|
||||
return NULL;
|
|
@ -0,0 +1,35 @@
|
|||
From ce69ab385535d23bec04018941b0cda19d2d4855 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Dec 2013 19:51:47 +0000
|
||||
Subject: [PATCH] journald: use a bit more cleanup magic!
|
||||
|
||||
---
|
||||
src/journal/journald-stream.c | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
|
||||
index 4080622..771a2bd 100644
|
||||
--- a/src/journal/journald-stream.c
|
||||
+++ b/src/journal/journald-stream.c
|
||||
@@ -75,7 +75,7 @@ struct StdoutStream {
|
||||
|
||||
static int stdout_stream_log(StdoutStream *s, const char *p) {
|
||||
struct iovec iovec[N_IOVEC_META_FIELDS + 5];
|
||||
- char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_identifier = NULL;
|
||||
+ _cleanup_free_ char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_identifier = NULL;
|
||||
unsigned n = 0;
|
||||
int priority;
|
||||
char *label = NULL;
|
||||
@@ -128,12 +128,6 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
|
||||
#endif
|
||||
|
||||
server_dispatch_message(s->server, iovec, n, ELEMENTSOF(iovec), &s->ucred, NULL, label, label_len, s->unit_id, priority, 0);
|
||||
-
|
||||
- free(message);
|
||||
- free(syslog_priority);
|
||||
- free(syslog_facility);
|
||||
- free(syslog_identifier);
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
From feaaf9358a0bd619ef77dca732aa08e21f5c1a56 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 10 Dec 2013 06:17:01 -0500
|
||||
Subject: [PATCH] journald: malloc less when streaming messages
|
||||
|
||||
---
|
||||
src/journal/journald-stream.c | 23 ++++++++++++-----------
|
||||
src/journal/journald-syslog.c | 4 ++--
|
||||
src/journal/journald-syslog.h | 2 +-
|
||||
3 files changed, 15 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
|
||||
index 771a2bd..aae381b 100644
|
||||
--- a/src/journal/journald-stream.c
|
||||
+++ b/src/journal/journald-stream.c
|
||||
@@ -75,9 +75,11 @@ struct StdoutStream {
|
||||
|
||||
static int stdout_stream_log(StdoutStream *s, const char *p) {
|
||||
struct iovec iovec[N_IOVEC_META_FIELDS + 5];
|
||||
- _cleanup_free_ char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_identifier = NULL;
|
||||
- unsigned n = 0;
|
||||
int priority;
|
||||
+ char syslog_priority[] = "PRIORITY=\0";
|
||||
+ char syslog_facility[sizeof("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(priority)];
|
||||
+ _cleanup_free_ char *message = NULL, *syslog_identifier = NULL;
|
||||
+ unsigned n = 0;
|
||||
char *label = NULL;
|
||||
size_t label_len = 0;
|
||||
|
||||
@@ -90,7 +92,7 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
|
||||
priority = s->priority;
|
||||
|
||||
if (s->level_prefix)
|
||||
- syslog_parse_priority((char**) &p, &priority, false);
|
||||
+ syslog_parse_priority(&p, &priority, false);
|
||||
|
||||
if (s->forward_to_syslog || s->server->forward_to_syslog)
|
||||
server_forward_syslog(s->server, syslog_fixup_facility(priority), s->identifier, p, &s->ucred, NULL);
|
||||
@@ -103,12 +105,13 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
|
||||
|
||||
IOVEC_SET_STRING(iovec[n++], "_TRANSPORT=stdout");
|
||||
|
||||
- if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0)
|
||||
- IOVEC_SET_STRING(iovec[n++], syslog_priority);
|
||||
+ syslog_priority[strlen("PRIORITY=")] = '0' + LOG_PRI(priority);
|
||||
+ IOVEC_SET_STRING(iovec[n++], syslog_priority);
|
||||
|
||||
- if (priority & LOG_FACMASK)
|
||||
- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
|
||||
- IOVEC_SET_STRING(iovec[n++], syslog_facility);
|
||||
+ if (priority & LOG_FACMASK) {
|
||||
+ snprintf(syslog_facility, sizeof(syslog_facility), "SYSLOG_FACILITY=%i", LOG_FAC(priority));
|
||||
+ IOVEC_SET_STRING(iovec[n++], syslog_facility);
|
||||
+ }
|
||||
|
||||
if (s->identifier) {
|
||||
syslog_identifier = strappend("SYSLOG_IDENTIFIER=", s->identifier);
|
||||
@@ -408,7 +411,7 @@ fail:
|
||||
|
||||
int server_open_stdout_socket(Server *s) {
|
||||
int r;
|
||||
- struct epoll_event ev;
|
||||
+ struct epoll_event ev = { .events = EPOLLIN };
|
||||
|
||||
assert(s);
|
||||
|
||||
@@ -441,8 +444,6 @@ int server_open_stdout_socket(Server *s) {
|
||||
} else
|
||||
fd_nonblock(s->stdout_fd, 1);
|
||||
|
||||
- zero(ev);
|
||||
- ev.events = EPOLLIN;
|
||||
ev.data.fd = s->stdout_fd;
|
||||
if (epoll_ctl(s->epoll_fd, EPOLL_CTL_ADD, s->stdout_fd, &ev) < 0) {
|
||||
log_error("Failed to add stdout server fd to epoll object: %m");
|
||||
diff --git a/src/journal/journald-syslog.c b/src/journal/journald-syslog.c
|
||||
index c2770a5..5d9b665 100644
|
||||
--- a/src/journal/journald-syslog.c
|
||||
+++ b/src/journal/journald-syslog.c
|
||||
@@ -236,7 +236,7 @@ size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid)
|
||||
return e;
|
||||
}
|
||||
|
||||
-void syslog_parse_priority(char **p, int *priority, bool with_facility) {
|
||||
+void syslog_parse_priority(const char **p, int *priority, bool with_facility) {
|
||||
int a = 0, b = 0, c = 0;
|
||||
int k;
|
||||
|
||||
@@ -365,7 +365,7 @@ void server_process_syslog_message(
|
||||
assert(buf);
|
||||
|
||||
orig = buf;
|
||||
- syslog_parse_priority((char**) &buf, &priority, true);
|
||||
+ syslog_parse_priority(&buf, &priority, true);
|
||||
|
||||
if (s->forward_to_syslog)
|
||||
forward_syslog_raw(s, priority, orig, ucred, tv);
|
||||
diff --git a/src/journal/journald-syslog.h b/src/journal/journald-syslog.h
|
||||
index 8ccdb77..057ea79 100644
|
||||
--- a/src/journal/journald-syslog.h
|
||||
+++ b/src/journal/journald-syslog.h
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
int syslog_fixup_facility(int priority) _const_;
|
||||
|
||||
-void syslog_parse_priority(char **p, int *priority, bool with_facility);
|
||||
+void syslog_parse_priority(const char **p, int *priority, bool with_facility);
|
||||
size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid);
|
||||
|
||||
void server_forward_syslog(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred, struct timeval *tv);
|
|
@ -0,0 +1,77 @@
|
|||
From 9b618fb2369046434ced28fe1420d8d5c75cd46e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 10 Dec 2013 21:52:11 -0500
|
||||
Subject: [PATCH] activate: clean up inherited descriptors
|
||||
|
||||
> [simon@troela server]$ /usr/lib/systemd/systemd-activate -l 9000 main.js
|
||||
> Assertion 'fd == 3 + count' failed at src/activate/activate.c:115,
|
||||
> function open_sockets(). Aborting.
|
||||
> Aborted (core dumped)
|
||||
|
||||
> after a bit debuging i found the problem:
|
||||
> slim appears to leak an fd into all of its children:
|
||||
> stat /proc/14004/fd/3 (14004 is the pid a random process in my session)
|
||||
> File: '/proc/14004/fd/3' -> '/var/log/slim.log'
|
||||
|
||||
systemd-activate should be robust against the shell (or anything else) leaking
|
||||
descriptors. Now everything except stdin/stdout/stderr and received sockets
|
||||
will be closed.
|
||||
---
|
||||
src/activate/activate.c | 23 +++++++++++++++++++----
|
||||
1 file changed, 19 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/activate/activate.c b/src/activate/activate.c
|
||||
index a9461bc..6aa8b9f 100644
|
||||
--- a/src/activate/activate.c
|
||||
+++ b/src/activate/activate.c
|
||||
@@ -137,6 +137,17 @@ static int open_sockets(int *epoll_fd, bool accept) {
|
||||
count ++;
|
||||
}
|
||||
|
||||
+ /* Close logging and all other descriptors */
|
||||
+ if (arg_listen) {
|
||||
+ int except[3 + n];
|
||||
+
|
||||
+ for (fd = 0; fd < SD_LISTEN_FDS_START + n; fd++)
|
||||
+ except[fd] = fd;
|
||||
+
|
||||
+ log_close();
|
||||
+ close_all_fds(except, 3 + n);
|
||||
+ }
|
||||
+
|
||||
/** Note: we leak some fd's on error here. I doesn't matter
|
||||
* much, since the program will exit immediately anyway, but
|
||||
* would be a pain to fix.
|
||||
@@ -147,6 +158,7 @@ static int open_sockets(int *epoll_fd, bool accept) {
|
||||
|
||||
fd = make_socket_fd(*address, SOCK_STREAM | (arg_accept*SOCK_CLOEXEC));
|
||||
if (fd < 0) {
|
||||
+ log_open();
|
||||
log_error("Failed to open '%s': %s", *address, strerror(-fd));
|
||||
return fd;
|
||||
}
|
||||
@@ -154,6 +166,9 @@ static int open_sockets(int *epoll_fd, bool accept) {
|
||||
count ++;
|
||||
}
|
||||
|
||||
+ if (arg_listen)
|
||||
+ log_open();
|
||||
+
|
||||
*epoll_fd = epoll_create1(EPOLL_CLOEXEC);
|
||||
if (*epoll_fd < 0) {
|
||||
log_error("Failed to create epoll object: %m");
|
||||
@@ -298,10 +313,10 @@ static void sigchld_hdl(int sig, siginfo_t *t, void *data) {
|
||||
|
||||
static int install_chld_handler(void) {
|
||||
int r;
|
||||
- struct sigaction act;
|
||||
- zero(act);
|
||||
- act.sa_flags = SA_SIGINFO;
|
||||
- act.sa_sigaction = sigchld_hdl;
|
||||
+ struct sigaction act = {
|
||||
+ .sa_flags = SA_SIGINFO,
|
||||
+ .sa_sigaction = sigchld_hdl,
|
||||
+ };
|
||||
|
||||
r = sigaction(SIGCHLD, &act, 0);
|
||||
if (r < 0)
|
|
@ -0,0 +1,95 @@
|
|||
From bb9c2f82137bb6d1a352341eb81ed2a0ac96d4cb Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 11 Dec 2013 18:38:51 +0100
|
||||
Subject: [PATCH] man: explain in more detail how SYSTEMD_READY= influences
|
||||
SYSTEMD_WANTS= in udev rules
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1026860
|
||||
---
|
||||
man/systemd.device.xml | 45 +++++++++++++++++++++++++++++++--------------
|
||||
1 file changed, 31 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.device.xml b/man/systemd.device.xml
|
||||
index 96ebe89..002b647 100644
|
||||
--- a/man/systemd.device.xml
|
||||
+++ b/man/systemd.device.xml
|
||||
@@ -70,12 +70,15 @@
|
||||
since no device-specific options may be
|
||||
configured.</para>
|
||||
|
||||
- <para>systemd will automatically create dynamic device
|
||||
- units for all kernel devices that are marked with the
|
||||
- "systemd" udev tag (by default all block and network
|
||||
- devices, and a few others). This may be used to define
|
||||
- dependencies between devices and other
|
||||
- units.</para>
|
||||
+ <para>systemd will dynamically create device units for
|
||||
+ all kernel devices that are marked with the "systemd"
|
||||
+ udev tag (by default all block and network devices,
|
||||
+ and a few others). This may be used to define
|
||||
+ dependencies between devices and other units. To tag a
|
||||
+ udev device use <literal>TAG+="systemd"</literal> in
|
||||
+ the udev rules file, see
|
||||
+ <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
+ for details.</para>
|
||||
|
||||
<para>Device units are named after the
|
||||
<filename>/sys</filename> and
|
||||
@@ -93,7 +96,7 @@
|
||||
|
||||
<para>The settings of device units may either be
|
||||
configured via unit files, or directly from the udev
|
||||
- database (which is recommended). The following udev
|
||||
+ database (which is recommended). The following udev device
|
||||
properties are understood by systemd:</para>
|
||||
|
||||
<variablelist class='udev-directives'>
|
||||
@@ -101,16 +104,26 @@
|
||||
<term><varname>SYSTEMD_WANTS=</varname></term>
|
||||
<listitem><para>Adds dependencies of
|
||||
type <varname>Wants</varname> from
|
||||
- this unit to all listed units. This
|
||||
+ the device unit to all listed units. This
|
||||
may be used to activate arbitrary
|
||||
- units, when a specific device becomes
|
||||
+ units when a specific device becomes
|
||||
available. Note that this and the
|
||||
other tags are not taken into account
|
||||
unless the device is tagged with the
|
||||
<literal>systemd</literal> string in
|
||||
the udev database, because otherwise
|
||||
the device is not exposed as systemd
|
||||
- unit.</para></listitem>
|
||||
+ unit (see above). Note that systemd
|
||||
+ will only act on
|
||||
+ <varname>Wants</varname> dependencies
|
||||
+ when a device first becomes active, it
|
||||
+ will not act on them if they are added
|
||||
+ to devices that are already
|
||||
+ active. Use
|
||||
+ <varname>SYSTEMD_READY=</varname> (see
|
||||
+ below) to influence on which udev
|
||||
+ event to trigger the device
|
||||
+ dependencies.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@@ -135,10 +148,14 @@
|
||||
device disappears from the udev
|
||||
tree. This option is useful to support
|
||||
devices that initially show up in an
|
||||
- uninitialized state in the tree, and for
|
||||
- which a changed event is generated the
|
||||
- moment they are fully set
|
||||
- up.</para></listitem>
|
||||
+ uninitialized state in the tree, and
|
||||
+ for which a <literal>changed</literal>
|
||||
+ event is generated the moment they are
|
||||
+ fully set up. Note that
|
||||
+ <varname>SYSTEMD_WANTS=</varname> (see
|
||||
+ above) is not acted on as long as
|
||||
+ <varname>SYSTEMD_READY=0</varname> is
|
||||
+ set for a device.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
|
@ -0,0 +1,36 @@
|
|||
From 3fa582ff9d4bea413a7a0e301b7dbca6b33382b0 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 11 Dec 2013 23:31:34 +0100
|
||||
Subject: [PATCH] units: don't run readahead done timers in containers
|
||||
|
||||
We don't run the collector in the container either, hence we don't need
|
||||
to stop it either.
|
||||
---
|
||||
units/systemd-readahead-done.service.in | 1 +
|
||||
units/systemd-readahead-done.timer | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/units/systemd-readahead-done.service.in b/units/systemd-readahead-done.service.in
|
||||
index c3b2ac5..e0d9579 100644
|
||||
--- a/units/systemd-readahead-done.service.in
|
||||
+++ b/units/systemd-readahead-done.service.in
|
||||
@@ -12,6 +12,7 @@ DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=default.target
|
||||
Before=shutdown.target
|
||||
+ConditionVirtualization=no
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
diff --git a/units/systemd-readahead-done.timer b/units/systemd-readahead-done.timer
|
||||
index 41bfb2b..a9f6278 100644
|
||||
--- a/units/systemd-readahead-done.timer
|
||||
+++ b/units/systemd-readahead-done.timer
|
||||
@@ -12,6 +12,7 @@ DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=default.target
|
||||
Before=shutdown.target
|
||||
+ConditionVirtualization=no
|
||||
|
||||
[Timer]
|
||||
OnActiveSec=30s
|
|
@ -0,0 +1,37 @@
|
|||
From 622dfd7a6553cc27b6f75653481dd8808f717c49 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Thu, 12 Dec 2013 00:06:30 +0100
|
||||
Subject: [PATCH] test-fileio: replace mktemp with mkstemp to avoid warnings
|
||||
|
||||
This is a fairly useless thing to do but it makes the compilers
|
||||
and analyzers shut up about the use of mktemp.
|
||||
---
|
||||
src/test/test-fileio.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/test/test-fileio.c b/src/test/test-fileio.c
|
||||
index 06f3e28..b005f3b 100644
|
||||
--- a/src/test/test-fileio.c
|
||||
+++ b/src/test/test-fileio.c
|
||||
@@ -41,7 +41,9 @@ static void test_parse_env_file(void) {
|
||||
char **i;
|
||||
unsigned k;
|
||||
|
||||
- assert_se(mktemp(p));
|
||||
+ fd = mkstemp(p);
|
||||
+ assert_se(fd >= 0);
|
||||
+ close(fd);
|
||||
|
||||
fd = mkostemp(t, O_CLOEXEC);
|
||||
assert_se(fd >= 0);
|
||||
@@ -152,7 +154,9 @@ static void test_parse_multiline_env_file(void) {
|
||||
_cleanup_strv_free_ char **a = NULL, **b = NULL;
|
||||
char **i;
|
||||
|
||||
- assert_se(mktemp(p));
|
||||
+ fd = mkstemp(p);
|
||||
+ assert_se(fd >= 0);
|
||||
+ close(fd);
|
||||
|
||||
fd = mkostemp(t, O_CLOEXEC);
|
||||
assert_se(fd >= 0);
|
|
@ -0,0 +1,45 @@
|
|||
From 59f2f4cfd399275c3da061212fc25636ee72367f Mon Sep 17 00:00:00 2001
|
||||
From: Djalal Harouni <tixxdz@opendz.org>
|
||||
Date: Thu, 12 Dec 2013 00:22:48 +0100
|
||||
Subject: [PATCH] journal: pipe journalctl help output into a pager
|
||||
|
||||
journalctl help output might run off the screen, so be consistent
|
||||
as other systemd tools do and pipe it into a pager.
|
||||
---
|
||||
src/journal/journalctl.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
||||
index a5c4779..71e28b0 100644
|
||||
--- a/src/journal/journalctl.c
|
||||
+++ b/src/journal/journalctl.c
|
||||
@@ -114,8 +114,18 @@ typedef struct boot_id_t {
|
||||
uint64_t last;
|
||||
} boot_id_t;
|
||||
|
||||
+static void pager_open_if_enabled(void) {
|
||||
+
|
||||
+ if (arg_no_pager)
|
||||
+ return;
|
||||
+
|
||||
+ pager_open(arg_pager_end);
|
||||
+}
|
||||
+
|
||||
static int help(void) {
|
||||
|
||||
+ pager_open_if_enabled();
|
||||
+
|
||||
printf("%s [OPTIONS...] [MATCHES...]\n\n"
|
||||
"Query the journal.\n\n"
|
||||
"Flags:\n"
|
||||
@@ -1635,8 +1645,8 @@ int main(int argc, char *argv[]) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
- if (!arg_no_pager && !arg_follow)
|
||||
- pager_open(arg_pager_end);
|
||||
+ if (!arg_follow)
|
||||
+ pager_open_if_enabled();
|
||||
|
||||
if (!arg_quiet) {
|
||||
usec_t start, end;
|
|
@ -0,0 +1,63 @@
|
|||
From bedb539662380d6a120db1e8dbb63b55d2ecac2c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Wed, 11 Dec 2013 22:00:33 -0500
|
||||
Subject: [PATCH] nspawn: complain and continue if machine has same id
|
||||
|
||||
If --link-journal=host or --link-journal=guest is used, this totally
|
||||
cannot work and we exit with an error. If however --link-journal=auto
|
||||
or --link-journal=no is used, just display a warning.
|
||||
|
||||
Having the same machine id can happen if booting from the same
|
||||
filesystem as the host. Since other things mostly function correctly,
|
||||
let's allow that.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=68369
|
||||
---
|
||||
src/nspawn/nspawn.c | 23 +++++++++++++++++++----
|
||||
1 file changed, 19 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||
index 7346253..618f9c3 100644
|
||||
--- a/src/nspawn/nspawn.c
|
||||
+++ b/src/nspawn/nspawn.c
|
||||
@@ -811,14 +811,11 @@ static int setup_hostname(void) {
|
||||
}
|
||||
|
||||
static int setup_journal(const char *directory) {
|
||||
- sd_id128_t machine_id;
|
||||
+ sd_id128_t machine_id, this_id;
|
||||
_cleanup_free_ char *p = NULL, *b = NULL, *q = NULL, *d = NULL;
|
||||
char *id;
|
||||
int r;
|
||||
|
||||
- if (arg_link_journal == LINK_NO)
|
||||
- return 0;
|
||||
-
|
||||
p = strappend(directory, "/etc/machine-id");
|
||||
if (!p)
|
||||
return log_oom();
|
||||
@@ -842,6 +839,24 @@ static int setup_journal(const char *directory) {
|
||||
return r;
|
||||
}
|
||||
|
||||
+ r = sd_id128_get_machine(&this_id);
|
||||
+ if (r < 0) {
|
||||
+ log_error("Failed to retrieve machine ID: %s", strerror(-r));
|
||||
+ return r;
|
||||
+ }
|
||||
+
|
||||
+ if (sd_id128_equal(machine_id, this_id)) {
|
||||
+ log_full(arg_link_journal == LINK_AUTO ? LOG_WARNING : LOG_ERR,
|
||||
+ "Host and machine ids are equal (%s): refusing to link journals", id);
|
||||
+ if (arg_link_journal == LINK_AUTO)
|
||||
+ return 0;
|
||||
+ return
|
||||
+ -EEXIST;
|
||||
+ }
|
||||
+
|
||||
+ if (arg_link_journal == LINK_NO)
|
||||
+ return 0;
|
||||
+
|
||||
free(p);
|
||||
p = strappend("/var/log/journal/", id);
|
||||
q = strjoin(directory, "/var/log/journal/", id, NULL);
|
|
@ -0,0 +1,150 @@
|
|||
From a6ba849c002fc991a290d2792573a9145f02aaf6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 14 Dec 2013 17:21:55 -0500
|
||||
Subject: [PATCH] man: beef up ExecStart description
|
||||
|
||||
We have lots of questions from people who assume that shell syntax works
|
||||
here, so let's be very explicit what is allowed and what is not. A few
|
||||
examples should also help.
|
||||
|
||||
http://bugs.debian.org/732156
|
||||
---
|
||||
man/systemd.service.xml | 97 ++++++++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 80 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 3f31c11..ca297ba 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -305,9 +305,10 @@
|
||||
<term><varname>ExecStart=</varname></term>
|
||||
<listitem><para>Commands with their
|
||||
arguments that are executed when this
|
||||
- service is started. The first
|
||||
- argument must be an absolute path
|
||||
- name.</para>
|
||||
+ service is started. For each of the
|
||||
+ specified commands, the first argument
|
||||
+ must be an absolute and literal path
|
||||
+ to an executable.</para>
|
||||
|
||||
<para>When <varname>Type</varname> is
|
||||
not <option>oneshot</option>, only one
|
||||
@@ -332,6 +333,35 @@
|
||||
prior assignments of this option will
|
||||
have no effect.</para>
|
||||
|
||||
+ <para>Each command line is split on
|
||||
+ whitespace, with the first item being
|
||||
+ the command to execute, and the
|
||||
+ subsequent items being the arguments.
|
||||
+ Double quotes ("...") and single
|
||||
+ quotes ('...') may be used, in which
|
||||
+ case everything until the next
|
||||
+ matching quote becomes part of the
|
||||
+ same argument. Quotes themselves are
|
||||
+ removed after parsing. In addition, a
|
||||
+ trailing backslash
|
||||
+ (<literal>\</literal>) may be used to
|
||||
+ merge lines. This syntax is intended
|
||||
+ to be very similar to shell syntax,
|
||||
+ but only the meta-characters and
|
||||
+ expansions described in the following
|
||||
+ paragraphs are understood.
|
||||
+ Specifically, redirection using
|
||||
+ <literal><</literal>,
|
||||
+ <literal><<</literal>,
|
||||
+ <literal>></literal>, and
|
||||
+ <literal>>></literal>, pipes
|
||||
+ using <literal>|</literal>, and
|
||||
+ running programs in the background
|
||||
+ using <literal>&</literal>
|
||||
+ and <emphasis>other elements of shell
|
||||
+ syntax are not supported</emphasis>.
|
||||
+ </para>
|
||||
+
|
||||
<para>If more than one command is
|
||||
specified, the commands are invoked
|
||||
one by one sequentially in the order
|
||||
@@ -350,10 +380,11 @@
|
||||
<para>The command line accepts
|
||||
<literal>%</literal> specifiers as
|
||||
described in
|
||||
- <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Note
|
||||
- that the first argument of the command
|
||||
- line (i.e. the program to execute) may
|
||||
- not include specifiers.</para>
|
||||
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
+ Note that the first argument of the
|
||||
+ command line (i.e. the program to
|
||||
+ execute) may not include
|
||||
+ specifiers.</para>
|
||||
|
||||
<para>Basic environment variable
|
||||
substitution is supported. Use
|
||||
@@ -372,9 +403,7 @@
|
||||
more arguments. To pass literal dollar sign
|
||||
use <literal>$$</literal>. Note that the first
|
||||
argument (i.e. the program to execute)
|
||||
- may not be a variable, since it must
|
||||
- be a literal and absolute path
|
||||
- name.</para>
|
||||
+ may not be a variable.</para>
|
||||
|
||||
<para>Optionally, if the absolute file
|
||||
name is prefixed with
|
||||
@@ -402,13 +431,47 @@
|
||||
<programlisting>ExecStart=/bin/sh -c 'dmesg | tac'
|
||||
</programlisting>
|
||||
|
||||
- <para>For services run by a user
|
||||
- instance of systemd the special
|
||||
- environment variable
|
||||
- <varname>$MANAGERPID</varname> is set
|
||||
- to the PID of the systemd
|
||||
- instance.</para>
|
||||
- </listitem>
|
||||
+ <para>Only select environment variables
|
||||
+ are set for executed commands. See
|
||||
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
+ </para>
|
||||
+
|
||||
+ <para>Example:</para>
|
||||
+ <programlisting>ExecStart=/bin/echo one ; /bin/echo "two two"
|
||||
+ </programlisting>
|
||||
+ <para>This will execute
|
||||
+ <command>/bin/echo</command> two
|
||||
+ times, each time with one argument,
|
||||
+ <literal>one</literal> and
|
||||
+ <literal>two two</literal>,
|
||||
+ respectively. Since two commands are
|
||||
+ specified
|
||||
+ <varname>Type=oneshot</varname> must
|
||||
+ be used.</para>
|
||||
+
|
||||
+ <para>Example:</para>
|
||||
+ <programlisting>ExecStart=/bin/echo / >/dev/null & \; \
|
||||
+/bin/ls
|
||||
+ </programlisting>
|
||||
+ <para>This will execute
|
||||
+ <command>/bin/echo</command> with five
|
||||
+ arguments: <literal>/</literal>,
|
||||
+ <literal>>/dev/null</literal>,
|
||||
+ <literal>&</literal>,
|
||||
+ <literal>;</literal>, and
|
||||
+ <literal>/bin/ls</literal>.</para>
|
||||
+
|
||||
+ <para>Example:</para>
|
||||
+ <programlisting>Environment="ONE=one" 'TWO=two two'
|
||||
+ExecStart=/bin/echo $ONE $TWO ${TWO}
|
||||
+ </programlisting>
|
||||
+ <para>This will execute
|
||||
+ <command>/bin/echo</command> with four
|
||||
+ arguments: <literal>one</literal>,
|
||||
+ <literal>two</literal>,
|
||||
+ <literal>two</literal>, and
|
||||
+ <literal>two two</literal>.</para>
|
||||
+ </listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
|
@ -0,0 +1,53 @@
|
|||
From 7c6c28dca3b75b7d0c2d067752ed917b113d90d2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 14 Dec 2013 17:30:25 -0500
|
||||
Subject: [PATCH] man: remove advice to avoid setting the same var more than
|
||||
once
|
||||
|
||||
So far the compatibility with .desktop settings hasn't been imporant
|
||||
at all, and we do not want people to write convoluted unit
|
||||
files.
|
||||
---
|
||||
man/systemd.service.xml | 6 +-----
|
||||
man/systemd.unit.xml | 11 +++++++++++
|
||||
2 files changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index ca297ba..8f9137c 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -321,11 +321,7 @@
|
||||
(these semicolons must be passed as
|
||||
separate words). Alternatively, this
|
||||
directive may be specified more than
|
||||
- once with the same effect. However,
|
||||
- the latter syntax is not recommended
|
||||
- for compatibility with parsers
|
||||
- suitable for XDG
|
||||
- <filename>.desktop</filename> files.
|
||||
+ once with the same effect.
|
||||
Lone semicolons may be escaped as
|
||||
<literal>\;</literal>. If the empty
|
||||
string is assigned to this option, the
|
||||
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
|
||||
index 029392c..77127ff 100644
|
||||
--- a/man/systemd.unit.xml
|
||||
+++ b/man/systemd.unit.xml
|
||||
@@ -120,6 +120,17 @@
|
||||
<citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
</para>
|
||||
|
||||
+ <para>Various settings are allowed to be specified
|
||||
+ more than once, in which case the interpretation
|
||||
+ depends on the setting. Often, multiple settings form
|
||||
+ a list, and setting to an empty value "resets", which
|
||||
+ means that previous assignments are ignored. When this
|
||||
+ is allowed, it is mentioned in the description of the
|
||||
+ setting. Note that using multiple assignments to the
|
||||
+ same value makes the unit file incompatible with
|
||||
+ parsers for the XDG <filename>.desktop</filename> file
|
||||
+ format.</para>
|
||||
+
|
||||
<para>Unit files are loaded from a set of paths
|
||||
determined during compilation, described in the next section.
|
||||
</para>
|
|
@ -0,0 +1,23 @@
|
|||
From c818ae0c9288afac78a1761de3bd65007448558a Mon Sep 17 00:00:00 2001
|
||||
From: Djalal Harouni <tixxdz@opendz.org>
|
||||
Date: Sun, 15 Dec 2013 00:05:38 +0100
|
||||
Subject: [PATCH] systemctl: add the --plain option to the help message
|
||||
|
||||
---
|
||||
src/systemctl/systemctl.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
|
||||
index db584b2..bc9808a 100644
|
||||
--- a/src/systemctl/systemctl.c
|
||||
+++ b/src/systemctl/systemctl.c
|
||||
@@ -4748,7 +4748,8 @@ static int systemctl_help(void) {
|
||||
" --root=PATH Enable unit files in the specified root directory\n"
|
||||
" -n --lines=INTEGER Number of journal entries to show\n"
|
||||
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
|
||||
- " verbose, export, json, json-pretty, json-sse, cat)\n\n"
|
||||
+ " verbose, export, json, json-pretty, json-sse, cat)\n"
|
||||
+ " --plain Print unit dependencies as a list instead of a tree\n\n"
|
||||
"Unit Commands:\n"
|
||||
" list-units List loaded units\n"
|
||||
" list-sockets List loaded sockets ordered by address\n"
|
|
@ -0,0 +1,67 @@
|
|||
From 010d6c4909ed75c247ff91a555c7942f9c2ce1c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 15 Dec 2013 16:25:04 -0500
|
||||
Subject: [PATCH] Fix a few resource leaks in error paths
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1043304
|
||||
|
||||
Conflicts:
|
||||
src/libsystemd-bus/bus-objects.c
|
||||
src/udev/net/link-config.c
|
||||
---
|
||||
src/sleep/sleep.c | 15 +++++++--------
|
||||
1 file changed, 7 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
|
||||
index a56ab89..f96987f 100644
|
||||
--- a/src/sleep/sleep.c
|
||||
+++ b/src/sleep/sleep.c
|
||||
@@ -57,15 +57,14 @@ static int write_mode(char **modes) {
|
||||
return r;
|
||||
}
|
||||
|
||||
-static int write_state(FILE *f0, char **states) {
|
||||
- FILE _cleanup_fclose_ *f = f0;
|
||||
+static int write_state(FILE **f, char **states) {
|
||||
char **state;
|
||||
int r = 0;
|
||||
|
||||
STRV_FOREACH(state, states) {
|
||||
int k;
|
||||
|
||||
- k = write_string_to_file(f, *state);
|
||||
+ k = write_string_to_file(*f, *state);
|
||||
if (k == 0)
|
||||
return 0;
|
||||
log_debug("Failed to write '%s' to /sys/power/state: %s",
|
||||
@@ -73,9 +72,9 @@ static int write_state(FILE *f0, char **states) {
|
||||
if (r == 0)
|
||||
r = k;
|
||||
|
||||
- fclose(f);
|
||||
- f = fopen("/sys/power/state", "we");
|
||||
- if (!f) {
|
||||
+ fclose(*f);
|
||||
+ *f = fopen("/sys/power/state", "we");
|
||||
+ if (!*f) {
|
||||
log_error("Failed to open /sys/power/state: %m");
|
||||
return -errno;
|
||||
}
|
||||
@@ -87,7 +86,7 @@ static int write_state(FILE *f0, char **states) {
|
||||
static int execute(char **modes, char **states) {
|
||||
char* arguments[4];
|
||||
int r;
|
||||
- FILE *f;
|
||||
+ _cleanup_fclose_ FILE *f = NULL;
|
||||
const char* note = strappenda("SLEEP=", arg_verb);
|
||||
|
||||
/* This file is opened first, so that if we hit an error,
|
||||
@@ -115,7 +114,7 @@ static int execute(char **modes, char **states) {
|
||||
note,
|
||||
NULL);
|
||||
|
||||
- r = write_state(f, states);
|
||||
+ r = write_state(&f, states);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
From dca7710c31218a2292c8e3987d1e906b27bed4e9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 15 Dec 2013 16:26:27 -0500
|
||||
Subject: [PATCH] Fix a few signed/unsigned format string issues
|
||||
|
||||
Since numbers involved are all small, behaviour was correct already.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1043304
|
||||
---
|
||||
src/shared/time-util.c | 2 +-
|
||||
src/udev/udev-builtin-net_id.c | 21 +++++++--------------
|
||||
2 files changed, 8 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/shared/time-util.c b/src/shared/time-util.c
|
||||
index 81d4ede..d31401b 100644
|
||||
--- a/src/shared/time-util.c
|
||||
+++ b/src/shared/time-util.c
|
||||
@@ -382,7 +382,7 @@ void dual_timestamp_deserialize(const char *value, dual_timestamp *t) {
|
||||
assert(value);
|
||||
assert(t);
|
||||
|
||||
- if (sscanf(value, "%lli %llu", &a, &b) != 2)
|
||||
+ if (sscanf(value, "%llu %llu", &a, &b) != 2)
|
||||
log_debug("Failed to parse finish timestamp value %s", value);
|
||||
else {
|
||||
t->realtime = a;
|
||||
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
|
||||
index 9ae8f08..9bc1946 100644
|
||||
--- a/src/udev/udev-builtin-net_id.c
|
||||
+++ b/src/udev/udev-builtin-net_id.c
|
||||
@@ -166,23 +166,17 @@ out:
|
||||
|
||||
static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
|
||||
struct udev *udev = udev_device_get_udev(names->pcidev);
|
||||
- unsigned int domain;
|
||||
- unsigned int bus;
|
||||
- unsigned int slot;
|
||||
- unsigned int func;
|
||||
- unsigned int dev_id = 0;
|
||||
+ unsigned domain, bus, slot, func, dev_id = 0;
|
||||
size_t l;
|
||||
char *s;
|
||||
const char *attr;
|
||||
struct udev_device *pci = NULL;
|
||||
- char slots[256];
|
||||
- DIR *dir;
|
||||
+ char slots[256], str[256];
|
||||
+ _cleanup_closedir_ DIR *dir = NULL;
|
||||
struct dirent *dent;
|
||||
- char str[256];
|
||||
- int hotplug_slot = 0;
|
||||
- int err = 0;
|
||||
+ int hotplug_slot = 0, err = 0;
|
||||
|
||||
- if (sscanf(udev_device_get_sysname(names->pcidev), "%x:%x:%x.%d", &domain, &bus, &slot, &func) != 4)
|
||||
+ if (sscanf(udev_device_get_sysname(names->pcidev), "%x:%x:%x.%u", &domain, &bus, &slot, &func) != 4)
|
||||
return -ENOENT;
|
||||
|
||||
/* kernel provided multi-device index */
|
||||
@@ -239,7 +233,6 @@ static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
|
||||
if (hotplug_slot > 0)
|
||||
break;
|
||||
}
|
||||
- closedir(dir);
|
||||
|
||||
if (hotplug_slot > 0) {
|
||||
s = names->pci_slot;
|
||||
@@ -341,11 +334,11 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) {
|
||||
return -ENOENT;
|
||||
|
||||
/* bus num:core num */
|
||||
- if (sscanf(udev_device_get_sysname(bcmadev), "bcma%*d:%d", &core) != 1)
|
||||
+ if (sscanf(udev_device_get_sysname(bcmadev), "bcma%*u:%u", &core) != 1)
|
||||
return -EINVAL;
|
||||
/* suppress the common core == 0 */
|
||||
if (core > 0)
|
||||
- snprintf(names->bcma_core, sizeof(names->bcma_core), "b%d", core);
|
||||
+ snprintf(names->bcma_core, sizeof(names->bcma_core), "b%u", core);
|
||||
|
||||
names->type = NET_BCMA;
|
||||
return 0;
|
|
@ -0,0 +1,60 @@
|
|||
From 4a0ab3a8fd59d38dabb9a7096939d8d8e8adc62f Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Mon, 16 Dec 2013 17:04:36 +0100
|
||||
Subject: [PATCH] util: try harder to increase the send/recv buffers of sockets
|
||||
|
||||
If we have the priviliges we will try SO_SNDBUFFORCE/SO_RCVBUFFORCE and
|
||||
only fall back to SO_SNDBUF/SO_RCVBUF if that fails.
|
||||
---
|
||||
src/shared/util.c | 25 ++++++++++++-------------
|
||||
1 file changed, 12 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
||||
index 02bae90..8824b9b 100644
|
||||
--- a/src/shared/util.c
|
||||
+++ b/src/shared/util.c
|
||||
@@ -4928,15 +4928,15 @@ int fd_inc_sndbuf(int fd, size_t n) {
|
||||
socklen_t l = sizeof(value);
|
||||
|
||||
r = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, &l);
|
||||
- if (r >= 0 &&
|
||||
- l == sizeof(value) &&
|
||||
- (size_t) value >= n*2)
|
||||
+ if (r >= 0 && l == sizeof(value) && (size_t) value >= n*2)
|
||||
return 0;
|
||||
|
||||
+ /* If we have the privileges we will ignore the kernel limit. */
|
||||
+
|
||||
value = (int) n;
|
||||
- r = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, sizeof(value));
|
||||
- if (r < 0)
|
||||
- return -errno;
|
||||
+ if (setsockopt(fd, SOL_SOCKET, SO_SNDBUFFORCE, &value, sizeof(value)) < 0)
|
||||
+ if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, sizeof(value)) < 0)
|
||||
+ return -errno;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -4946,16 +4946,15 @@ int fd_inc_rcvbuf(int fd, size_t n) {
|
||||
socklen_t l = sizeof(value);
|
||||
|
||||
r = getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, &l);
|
||||
- if (r >= 0 &&
|
||||
- l == sizeof(value) &&
|
||||
- (size_t) value >= n*2)
|
||||
+ if (r >= 0 && l == sizeof(value) && (size_t) value >= n*2)
|
||||
return 0;
|
||||
|
||||
- value = (int) n;
|
||||
- r = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, sizeof(value));
|
||||
- if (r < 0)
|
||||
- return -errno;
|
||||
+ /* If we have the privileges we will ignore the kernel limit. */
|
||||
|
||||
+ value = (int) n;
|
||||
+ if (setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, &value, sizeof(value)) < 0)
|
||||
+ if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, sizeof(value)) < 0)
|
||||
+ return -errno;
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
From 8d872d28194f58da2311ca88072084458dc2eb15 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Mon, 16 Dec 2013 20:00:09 +0100
|
||||
Subject: [PATCH] execute: also set SO_SNDBUF when spawning a service with
|
||||
stdout/stderr connected to journald
|
||||
|
||||
---
|
||||
src/core/execute.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/core/execute.c b/src/core/execute.c
|
||||
index 58be72a..9b85379 100644
|
||||
--- a/src/core/execute.c
|
||||
+++ b/src/core/execute.c
|
||||
@@ -75,6 +75,8 @@
|
||||
/* This assumes there is a 'tty' group */
|
||||
#define TTY_MODE 0620
|
||||
|
||||
+#define SNDBUF_SIZE (8*1024*1024)
|
||||
+
|
||||
static int shift_fds(int fds[], unsigned n_fds) {
|
||||
int start, restart_from;
|
||||
|
||||
@@ -232,6 +234,8 @@ static int connect_logger_as(const ExecContext *context, ExecOutput output, cons
|
||||
return -errno;
|
||||
}
|
||||
|
||||
+ fd_inc_sndbuf(fd, SNDBUF_SIZE);
|
||||
+
|
||||
dprintf(fd,
|
||||
"%s\n"
|
||||
"%s\n"
|
|
@ -0,0 +1,23 @@
|
|||
From a25fd0d4bd3cf652e55c24e7dc873fe530fa111a Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Mon, 16 Dec 2013 23:35:30 +0100
|
||||
Subject: [PATCH] journal-file: protect against alloca(0)
|
||||
|
||||
---
|
||||
src/journal/journal-file.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 090cf97..8ea258b 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -2737,7 +2737,8 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6
|
||||
ts.realtime = le64toh(o->entry.realtime);
|
||||
|
||||
n = journal_file_entry_n_items(o);
|
||||
- items = alloca(sizeof(EntryItem) * n);
|
||||
+ /* alloca() can't take 0, hence let's allocate at least one */
|
||||
+ items = alloca(sizeof(EntryItem) * MAX(1u, n));
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
uint64_t l, h;
|
|
@ -0,0 +1,42 @@
|
|||
From 2d46a006393fe823e119a14794a931bd9bc25f74 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 16 Dec 2013 23:40:00 -0500
|
||||
Subject: [PATCH] man: describe journalctl --show-cursor
|
||||
|
||||
---
|
||||
man/journalctl.xml | 22 +++++++++++++++++-----
|
||||
1 file changed, 17 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/man/journalctl.xml b/man/journalctl.xml
|
||||
index c0cc96d..d936933 100644
|
||||
--- a/man/journalctl.xml
|
||||
+++ b/man/journalctl.xml
|
||||
@@ -576,11 +576,23 @@
|
||||
<varlistentry>
|
||||
<term><option>--after-cursor=</option></term>
|
||||
|
||||
- <listitem><para>Start showing entries from the
|
||||
- location in the journal
|
||||
- <emphasis>after</emphasis> the location
|
||||
- specified by the this cursor.
|
||||
- </para></listitem>
|
||||
+ <listitem><para>Start showing entries
|
||||
+ from the location in the journal
|
||||
+ <emphasis>after</emphasis> the
|
||||
+ location specified by the this cursor.
|
||||
+ The cursor is shown when the
|
||||
+ <option>--show-cursor</option> option
|
||||
+ is used.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--show-cursor</option></term>
|
||||
+
|
||||
+ <listitem><para>The cursor is shown after the last
|
||||
+ entry after two dashes:</para>
|
||||
+ <programlisting>-- cursor: s=0639...</programlisting>
|
||||
+ <para>The format of this the cursor is private
|
||||
+ and subject ot change.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
|
@ -0,0 +1,39 @@
|
|||
From 9e32b8f531a1e15f85cce97bea931c43a9db7798 Mon Sep 17 00:00:00 2001
|
||||
From: Shawn Landden <shawn@churchofgit.com>
|
||||
Date: Mon, 16 Dec 2013 15:41:00 -0800
|
||||
Subject: [PATCH] journal: fix against (theoretical) undefined behavior
|
||||
|
||||
While all the libc implementations I know return NULL when memchr's size
|
||||
parameter is 0, without accessing any memory, passing NULL to memchr is
|
||||
still invalid:
|
||||
|
||||
C11 7.24.1p2: Where an argument declared as "size_t n" specifies the length
|
||||
of the array for a function, n can have the value zero on a call to that
|
||||
function. Unless explicitly stated otherwise in the description of a
|
||||
particular function in this subclause, pointer arguments on such a call
|
||||
shall still have valid values, as described in 7.1.4. On such a call, a
|
||||
function that locates a character finds no occurrence, a function that
|
||||
compares two character sequences returns zero, and a function that copies
|
||||
characters copies zero characters.
|
||||
|
||||
see http://llvm.org/bugs/show_bug.cgi?id=18247
|
||||
---
|
||||
src/journal/journal-file.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 8ea258b..71ef092 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -1010,7 +1010,10 @@ static int journal_file_append_data(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- eq = memchr(data, '=', size);
|
||||
+ if (!data)
|
||||
+ eq = NULL;
|
||||
+ else
|
||||
+ eq = memchr(data, '=', size);
|
||||
if (eq && eq > data) {
|
||||
uint64_t fp;
|
||||
Object *fo;
|
|
@ -0,0 +1,24 @@
|
|||
From 602fa0f30e4770b1f45e005a7ed9417065b0d640 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 17 Dec 2013 19:56:06 +0100
|
||||
Subject: [PATCH] journald: downgrade warning message when /dev/kmsg does not
|
||||
exist
|
||||
|
||||
---
|
||||
src/journal/journald-kmsg.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal/journald-kmsg.c b/src/journal/journald-kmsg.c
|
||||
index 21649d0..9895808 100644
|
||||
--- a/src/journal/journald-kmsg.c
|
||||
+++ b/src/journal/journald-kmsg.c
|
||||
@@ -382,7 +382,8 @@ int server_open_dev_kmsg(Server *s) {
|
||||
|
||||
s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||
if (s->dev_kmsg_fd < 0) {
|
||||
- log_warning("Failed to open /dev/kmsg, ignoring: %m");
|
||||
+ log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING,
|
||||
+ "Failed to open /dev/kmsg, ignoring: %m");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
From 029cd4a129832bcc750206deb05695da350efe77 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Tue, 17 Dec 2013 20:15:45 +0100
|
||||
Subject: [PATCH] journal-file.c: remove redundant assignment of variable
|
||||
|
||||
we also do 'last_index = (uint64_t) -1;' at the end of the while
|
||||
loop so there is no reason to also do it here.
|
||||
---
|
||||
src/journal/journal-file.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 71ef092..5ef6a2a 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -1628,8 +1628,6 @@ static int generic_array_bisect(
|
||||
else
|
||||
left = y + 1;
|
||||
}
|
||||
-
|
||||
- last_index = (uint64_t) -1;
|
||||
}
|
||||
|
||||
for (;;) {
|
|
@ -0,0 +1,33 @@
|
|||
From 0fa446efab8593abc726a7c2438549098db4cc70 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
|
||||
Date: Sun, 15 Dec 2013 12:06:37 +0100
|
||||
Subject: [PATCH] login: Don't stop a running user manager from
|
||||
garbage-collecting the user.
|
||||
|
||||
With the current logic, a user will never be garbage-collected, since its
|
||||
manager will always be around. Change the logic such that a user is
|
||||
garbage-collected when it has no sessions and linger is disabled.
|
||||
|
||||
Conflicts:
|
||||
src/login/logind-user.c
|
||||
---
|
||||
src/login/logind-user.c | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
|
||||
index adbe638..e2fce5c 100644
|
||||
--- a/src/login/logind-user.c
|
||||
+++ b/src/login/logind-user.c
|
||||
@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not_started) {
|
||||
if (u->slice_job || u->service_job)
|
||||
return 1;
|
||||
|
||||
- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0)
|
||||
- return 1;
|
||||
-
|
||||
- if (u->service && manager_unit_is_active(u->manager, u->service) != 0)
|
||||
- return 1;
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
From 0e075f4d98a653cc0b468fc786fcd869075a75e1 Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Wed, 18 Dec 2013 16:49:19 +0100
|
||||
Subject: [PATCH] libudev: devices received from udev are always initialized
|
||||
|
||||
Conflicts:
|
||||
TODO
|
||||
---
|
||||
src/libudev/libudev-device.c | 2 ++
|
||||
src/libudev/libudev-monitor.c | 62 +++++++++++++++++++++----------------------
|
||||
2 files changed, 33 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
|
||||
index 161181a..b6c4e24 100644
|
||||
--- a/src/libudev/libudev-device.c
|
||||
+++ b/src/libudev/libudev-device.c
|
||||
@@ -536,6 +536,8 @@ int udev_device_read_db(struct udev_device *udev_device, const char *dbfile)
|
||||
udev_dbg(udev_device->udev, "no db file to read %s: %m\n", dbfile);
|
||||
return -1;
|
||||
}
|
||||
+
|
||||
+ /* devices with a database entry are initialized */
|
||||
udev_device->is_initialized = true;
|
||||
|
||||
while (fgets(line, sizeof(line), f)) {
|
||||
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
|
||||
index 0212792..ff89e14 100644
|
||||
--- a/src/libudev/libudev-monitor.c
|
||||
+++ b/src/libudev/libudev-monitor.c
|
||||
@@ -324,9 +324,6 @@ _public_ int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor)
|
||||
int err = 0;
|
||||
const int on = 1;
|
||||
|
||||
- if (udev_monitor->snl.nl.nl_family == 0)
|
||||
- return -EINVAL;
|
||||
-
|
||||
udev_monitor_filter_update(udev_monitor);
|
||||
|
||||
if (!udev_monitor->bound) {
|
||||
@@ -524,7 +521,6 @@ _public_ struct udev_device *udev_monitor_receive_device(struct udev_monitor *ud
|
||||
char buf[8192];
|
||||
ssize_t buflen;
|
||||
ssize_t bufpos;
|
||||
- struct udev_monitor_netlink_header *nlh;
|
||||
|
||||
retry:
|
||||
if (udev_monitor == NULL)
|
||||
@@ -536,11 +532,8 @@ retry:
|
||||
smsg.msg_iovlen = 1;
|
||||
smsg.msg_control = cred_msg;
|
||||
smsg.msg_controllen = sizeof(cred_msg);
|
||||
-
|
||||
- if (udev_monitor->snl.nl.nl_family != 0) {
|
||||
- smsg.msg_name = &snl;
|
||||
- smsg.msg_namelen = sizeof(snl);
|
||||
- }
|
||||
+ smsg.msg_name = &snl;
|
||||
+ smsg.msg_namelen = sizeof(snl);
|
||||
|
||||
buflen = recvmsg(udev_monitor->sock, &smsg, 0);
|
||||
if (buflen < 0) {
|
||||
@@ -554,20 +547,18 @@ retry:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (udev_monitor->snl.nl.nl_family != 0) {
|
||||
- if (snl.nl.nl_groups == 0) {
|
||||
- /* unicast message, check if we trust the sender */
|
||||
- if (udev_monitor->snl_trusted_sender.nl.nl_pid == 0 ||
|
||||
- snl.nl.nl_pid != udev_monitor->snl_trusted_sender.nl.nl_pid) {
|
||||
- udev_dbg(udev_monitor->udev, "unicast netlink message ignored\n");
|
||||
- return NULL;
|
||||
- }
|
||||
- } else if (snl.nl.nl_groups == UDEV_MONITOR_KERNEL) {
|
||||
- if (snl.nl.nl_pid > 0) {
|
||||
- udev_dbg(udev_monitor->udev, "multicast kernel netlink message from pid %d ignored\n",
|
||||
- snl.nl.nl_pid);
|
||||
- return NULL;
|
||||
- }
|
||||
+ if (snl.nl.nl_groups == 0) {
|
||||
+ /* unicast message, check if we trust the sender */
|
||||
+ if (udev_monitor->snl_trusted_sender.nl.nl_pid == 0 ||
|
||||
+ snl.nl.nl_pid != udev_monitor->snl_trusted_sender.nl.nl_pid) {
|
||||
+ udev_dbg(udev_monitor->udev, "unicast netlink message ignored\n");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ } else if (snl.nl.nl_groups == UDEV_MONITOR_KERNEL) {
|
||||
+ if (snl.nl.nl_pid > 0) {
|
||||
+ udev_dbg(udev_monitor->udev, "multicast kernel netlink message from pid %d ignored\n",
|
||||
+ snl.nl.nl_pid);
|
||||
+ return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -583,35 +574,47 @@ retry:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+ udev_device = udev_device_new(udev_monitor->udev);
|
||||
+ if (udev_device == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
if (memcmp(buf, "libudev", 8) == 0) {
|
||||
+ struct udev_monitor_netlink_header *nlh;
|
||||
+
|
||||
/* udev message needs proper version magic */
|
||||
nlh = (struct udev_monitor_netlink_header *) buf;
|
||||
if (nlh->magic != htonl(UDEV_MONITOR_MAGIC)) {
|
||||
udev_err(udev_monitor->udev, "unrecognized message signature (%x != %x)\n",
|
||||
- nlh->magic, htonl(UDEV_MONITOR_MAGIC));
|
||||
+ nlh->magic, htonl(UDEV_MONITOR_MAGIC));
|
||||
+ udev_device_unref(udev_device);
|
||||
return NULL;
|
||||
}
|
||||
- if (nlh->properties_off+32 > (size_t)buflen)
|
||||
+ if (nlh->properties_off+32 > (size_t)buflen) {
|
||||
+ udev_device_unref(udev_device);
|
||||
return NULL;
|
||||
+ }
|
||||
+
|
||||
bufpos = nlh->properties_off;
|
||||
+
|
||||
+ /* devices received from udev are always initialized */
|
||||
+ udev_device_set_is_initialized(udev_device);
|
||||
} else {
|
||||
/* kernel message with header */
|
||||
bufpos = strlen(buf) + 1;
|
||||
if ((size_t)bufpos < sizeof("a@/d") || bufpos >= buflen) {
|
||||
udev_dbg(udev_monitor->udev, "invalid message length\n");
|
||||
+ udev_device_unref(udev_device);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* check message header */
|
||||
if (strstr(buf, "@/") == NULL) {
|
||||
udev_dbg(udev_monitor->udev, "unrecognized message header\n");
|
||||
+ udev_device_unref(udev_device);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
- udev_device = udev_device_new(udev_monitor->udev);
|
||||
- if (udev_device == NULL)
|
||||
- return NULL;
|
||||
udev_device_set_info_loaded(udev_device);
|
||||
|
||||
while (bufpos < buflen) {
|
||||
@@ -664,9 +667,6 @@ int udev_monitor_send_device(struct udev_monitor *udev_monitor,
|
||||
struct udev_list_entry *list_entry;
|
||||
uint64_t tag_bloom_bits;
|
||||
|
||||
- if (udev_monitor->snl.nl.nl_family == 0)
|
||||
- return -EINVAL;
|
||||
-
|
||||
blen = udev_device_get_properties_monitor_buf(udev_device, &buf);
|
||||
if (blen < 32)
|
||||
return -EINVAL;
|
|
@ -0,0 +1,49 @@
|
|||
From df5013c79d99848730abe4585dd93f77409a95c0 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Dec 2013 05:07:34 +0100
|
||||
Subject: [PATCH] log: don't reopen /dev/console each time we call log_open()
|
||||
|
||||
Instead, force reopen it only if we really really have to.
|
||||
---
|
||||
src/core/main.c | 1 +
|
||||
src/core/shutdown.c | 1 +
|
||||
src/shared/log.c | 2 --
|
||||
3 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/core/main.c b/src/core/main.c
|
||||
index 58c3a9e..935762f 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -1347,6 +1347,7 @@ int main(int argc, char *argv[]) {
|
||||
/* Running inside a container, as PID 1 */
|
||||
arg_running_as = SYSTEMD_SYSTEM;
|
||||
log_set_target(LOG_TARGET_CONSOLE);
|
||||
+ log_close_console(); /* force reopen of /dev/console */
|
||||
log_open();
|
||||
|
||||
/* For the later on, see above... */
|
||||
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
|
||||
index ea02b60..5e0f3ce 100644
|
||||
--- a/src/core/shutdown.c
|
||||
+++ b/src/core/shutdown.c
|
||||
@@ -155,6 +155,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
log_parse_environment();
|
||||
log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */
|
||||
+ log_close_console(); /* force reopen of /dev/console */
|
||||
log_open();
|
||||
|
||||
umask(0022);
|
||||
diff --git a/src/shared/log.c b/src/shared/log.c
|
||||
index 8f4995a..bd918fb 100644
|
||||
--- a/src/shared/log.c
|
||||
+++ b/src/shared/log.c
|
||||
@@ -272,8 +272,6 @@ int log_open(void) {
|
||||
log_close_journal();
|
||||
log_close_syslog();
|
||||
|
||||
- /* Get the real /dev/console if we are PID=1, hence reopen */
|
||||
- log_close_console();
|
||||
return log_open_console();
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
From 21804157ff0e60508fd128310505381f7b3ec2b0 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Dec 2013 16:49:15 +0100
|
||||
Subject: [PATCH] log: when we log to /dev/console and got disconnected (maybe
|
||||
due to vhangup) reconnect
|
||||
|
||||
---
|
||||
src/shared/log.c | 21 +++++++++++++++++++--
|
||||
1 file changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/shared/log.c b/src/shared/log.c
|
||||
index bd918fb..de770ca 100644
|
||||
--- a/src/shared/log.c
|
||||
+++ b/src/shared/log.c
|
||||
@@ -335,8 +335,25 @@ static int write_to_console(
|
||||
IOVEC_SET_STRING(iovec[n++], ANSI_HIGHLIGHT_OFF);
|
||||
IOVEC_SET_STRING(iovec[n++], "\n");
|
||||
|
||||
- if (writev(console_fd, iovec, n) < 0)
|
||||
- return -errno;
|
||||
+ if (writev(console_fd, iovec, n) < 0) {
|
||||
+
|
||||
+ if (errno == EIO && getpid() == 1) {
|
||||
+
|
||||
+ /* If somebody tried to kick us from our
|
||||
+ * console tty (via vhangup() or suchlike),
|
||||
+ * try to reconnect */
|
||||
+
|
||||
+ log_close_console();
|
||||
+ log_open_console();
|
||||
+
|
||||
+ if (console_fd < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (writev(console_fd, iovec, n) < 0)
|
||||
+ return -errno;
|
||||
+ } else
|
||||
+ return -errno;
|
||||
+ }
|
||||
|
||||
return 1;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
From d34a6029e4a59c75d9826e0aa57e548a86b08bba Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Dec 2013 17:16:33 +0100
|
||||
Subject: [PATCH] loginctl: when showing device tree of seats with no devices
|
||||
show something useful
|
||||
|
||||
---
|
||||
src/login/sysfs-show.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/login/sysfs-show.c b/src/login/sysfs-show.c
|
||||
index f7d11dd..cb12ebf 100644
|
||||
--- a/src/login/sysfs-show.c
|
||||
+++ b/src/login/sysfs-show.c
|
||||
@@ -181,6 +181,8 @@ int show_sysfs(const char *seat, const char *prefix, unsigned n_columns) {
|
||||
first = udev_enumerate_get_list_entry(e);
|
||||
if (first)
|
||||
show_sysfs_one(udev, seat, &first, "/", prefix, n_columns);
|
||||
+ else
|
||||
+ printf("%s%s%s\n", prefix, draw_special_char(DRAW_TREE_RIGHT), "(none)");
|
||||
|
||||
return r;
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
From 6bd96f28f8d67cb5cb77057e60badb4550ae35f3 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason St. John" <jstjohn@purdue.edu>
|
||||
Date: Tue, 17 Dec 2013 18:48:43 -0500
|
||||
Subject: [PATCH] man: be more explicit about option arguments that take
|
||||
128-bit IDs in journalctl(1)
|
||||
|
||||
It may not be immediately obvious to the reader what "ID128" is, so replace the
|
||||
example option argument "ID128" with "128-bit-ID".
|
||||
---
|
||||
man/journalctl.xml | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/man/journalctl.xml b/man/journalctl.xml
|
||||
index d936933..dced90f 100644
|
||||
--- a/man/journalctl.xml
|
||||
+++ b/man/journalctl.xml
|
||||
@@ -725,7 +725,7 @@
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--list-catalog
|
||||
- <optional><replaceable>ID128...</replaceable></optional>
|
||||
+ <optional><replaceable>128-bit-ID...</replaceable></optional>
|
||||
</option></term>
|
||||
|
||||
<listitem><para>List the contents of
|
||||
@@ -734,7 +734,7 @@
|
||||
description strings.</para>
|
||||
|
||||
<para>If any
|
||||
- <replaceable>ID128</replaceable>s are
|
||||
+ <replaceable>128-bit-ID</replaceable>s are
|
||||
specified, only those entries are shown.
|
||||
</para>
|
||||
</listitem>
|
||||
@@ -742,7 +742,7 @@
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--dump-catalog
|
||||
- <optional><replaceable>ID128...</replaceable></optional>
|
||||
+ <optional><replaceable>128-bit-ID...</replaceable></optional>
|
||||
</option></term>
|
||||
|
||||
<listitem><para>Show the contents of
|
||||
@@ -753,7 +753,7 @@
|
||||
files.</para>
|
||||
|
||||
<para>If any
|
||||
- <replaceable>ID128</replaceable>s are
|
||||
+ <replaceable>128-bit-ID</replaceable>s are
|
||||
specified, only those entries are shown.
|
||||
</para>
|
||||
</listitem>
|
|
@ -0,0 +1,59 @@
|
|||
From 1f3128aec84ea40d54423386384ad28a789cb381 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason St. John" <jstjohn@purdue.edu>
|
||||
Date: Tue, 17 Dec 2013 19:40:02 -0500
|
||||
Subject: [PATCH] man: add DOI for refereed article on Forward Secure Sealing
|
||||
to journald.conf(5)
|
||||
|
||||
In journalctl(1), be more explicit about the reference to "Seal=" in
|
||||
journald.conf(5) and what information can be found there.
|
||||
---
|
||||
man/journalctl.xml | 8 ++++++--
|
||||
man/journald.conf.xml | 10 +++++-----
|
||||
2 files changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/man/journalctl.xml b/man/journalctl.xml
|
||||
index dced90f..d75c758 100644
|
||||
--- a/man/journalctl.xml
|
||||
+++ b/man/journalctl.xml
|
||||
@@ -781,10 +781,14 @@
|
||||
sealing key is stored in the journal
|
||||
data directory and shall remain on the
|
||||
host. The verification key should be
|
||||
- stored externally. Also see the
|
||||
+ stored externally. Refer to the
|
||||
<option>Seal=</option> option in
|
||||
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
- for details.</para></listitem>
|
||||
+ for information on Forward Secure
|
||||
+ Sealing and for a link to a refereed
|
||||
+ scholarly paper detailing the
|
||||
+ cryptographic theory it is based on.
|
||||
+ </para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
diff --git a/man/journald.conf.xml b/man/journald.conf.xml
|
||||
index 7aa2e78..8e642a3 100644
|
||||
--- a/man/journald.conf.xml
|
||||
+++ b/man/journald.conf.xml
|
||||
@@ -130,15 +130,15 @@
|
||||
by
|
||||
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
|
||||
<option>--setup-keys</option>
|
||||
- command), forward secure sealing (FSS)
|
||||
+ command), Forward Secure Sealing (FSS)
|
||||
for all persistent journal files is
|
||||
enabled. FSS is based on <ulink
|
||||
url="https://eprint.iacr.org/2013/397">Seekable
|
||||
Sequential Key Generators</ulink> by
|
||||
- G. A. Marson and B. Poettering and
|
||||
- may be used to protect journal files
|
||||
- from unnoticed
|
||||
- alteration.</para></listitem>
|
||||
+ G. A. Marson and B. Poettering
|
||||
+ (doi:10.1007/978-3-642-40203-6_7)
|
||||
+ and may be used to protect journal files
|
||||
+ from unnoticed alteration.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
|
@ -0,0 +1,132 @@
|
|||
From 643f82598b69d3b3002294a456a459cceb075cd3 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason St. John" <jstjohn@purdue.edu>
|
||||
Date: Tue, 17 Dec 2013 21:36:27 -0500
|
||||
Subject: [PATCH] journalctl,zsh-completion: fix several issues in --help
|
||||
message text
|
||||
|
||||
-- fix grammar and reword some descriptions for clarity
|
||||
-- add a useful description of what --follow does
|
||||
-- fix the description for --after-cursor
|
||||
-- properly introduce the FSS acronym for "Forward Secure Sealing" in
|
||||
both sections
|
||||
-- clarify the --disk-usage command
|
||||
|
||||
[zj: perform similar changes to zsh completions]
|
||||
|
||||
squash! journalctl: fix several issues in --help message text
|
||||
|
||||
Conflicts:
|
||||
src/journal/journalctl.c
|
||||
---
|
||||
shell-completion/zsh/_journalctl | 14 +++++++-------
|
||||
src/journal/journalctl.c | 34 +++++++++++++++++-----------------
|
||||
2 files changed, 24 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/shell-completion/zsh/_journalctl b/shell-completion/zsh/_journalctl
|
||||
index 29ff3e3..8c3dbb0 100644
|
||||
--- a/shell-completion/zsh/_journalctl
|
||||
+++ b/shell-completion/zsh/_journalctl
|
||||
@@ -71,14 +71,14 @@ _arguments -s \
|
||||
{-m,--merge}'[Show entries from all available journals]' \
|
||||
{-b+,--boot=}'[Show data only from the specified boot or offset]:boot id or offset:_journal_boots' \
|
||||
'--list-boots[List boots ordered by time]' \
|
||||
- {-k,--dmesg}'[Show only kernel messages, Implies -b]' \
|
||||
+ {-k,--dmesg}'[Show only kernel messages from the current boot]' \
|
||||
{-u+,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \
|
||||
'--user-unit=[Show data only from the specified user session unit]:units:_journal_fields USER_UNIT' \
|
||||
{-p+,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \
|
||||
- {-c+,--cursor=}'[Start showing entries from specified cursor]:cursors:_journal_fields __CURSORS' \
|
||||
- '--after-cursor=[Start showing entries from the location in the journal after the cursor]:cursors:_journal_fields __CURSORS' \
|
||||
- '--since=[Start showing entries newer or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \
|
||||
- '--until=[Stop showing entries older or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \
|
||||
+ {-c+,--cursor=}'[Start showing entries from the specified cursor]:cursors:_journal_fields __CURSORS' \
|
||||
+ '--after-cursor=[Start showing entries from after the specified cursor]:cursors:_journal_fields __CURSORS' \
|
||||
+ '--since=[Start showing entries on or newer than the specified date]:YYYY-MM-DD HH\:MM\:SS' \
|
||||
+ '--until=[Stop showing entries on or older than the specified date]:YYYY-MM-DD HH\:MM\:SS' \
|
||||
{-F,--field=}'[List all values a certain field takes]:Fields:_list_fields' \
|
||||
'--system[Show system and kernel messages]' \
|
||||
'--user[Show messages from user services]' \
|
||||
@@ -91,8 +91,8 @@ _arguments -s \
|
||||
'--list-catalog[List messages in catalog]' \
|
||||
'--dump-catalog[Dump messages in catalog]' \
|
||||
'--update-catalog[Update binary catalog database]' \
|
||||
- '--setup-keys[Generate new FSS key pair]' \
|
||||
- '--force[Force recreation of FSS keys]' \
|
||||
+ '--setup-keys[Generate a new FSS key pair]' \
|
||||
+ '--force[Force recreation of the FSS keys]' \
|
||||
'--interval=[Time interval for changing the FSS sealing key]:time interval' \
|
||||
'--verify[Verify journal file consistency]' \
|
||||
'--verify-key=[Specify FSS verification key]:FSS key' \
|
||||
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
||||
index 71e28b0..1d66792 100644
|
||||
--- a/src/journal/journalctl.c
|
||||
+++ b/src/journal/journalctl.c
|
||||
@@ -130,30 +130,30 @@ static int help(void) {
|
||||
"Query the journal.\n\n"
|
||||
"Flags:\n"
|
||||
" --system Show only the system journal\n"
|
||||
- " --user Show only the user journal for current user\n"
|
||||
- " --since=DATE Start showing entries newer or of the specified date\n"
|
||||
- " --until=DATE Stop showing entries older or of the specified date\n"
|
||||
- " -c --cursor=CURSOR Start showing entries from specified cursor\n"
|
||||
- " --after-cursor=CURSOR Start showing entries from specified cursor\n"
|
||||
+ " --user Show only the user journal for the current user\n"
|
||||
+ " --since=DATE Start showing entries on or newer than the specified date\n"
|
||||
+ " --until=DATE Stop showing entries on or older than the specified date\n"
|
||||
+ " -c --cursor=CURSOR Start showing entries from the specified cursor\n"
|
||||
+ " --after-cursor=CURSOR Start showing entries from after the specified cursor\n"
|
||||
" --show-cursor Print the cursor after all the entries\n"
|
||||
- " -b --boot[=ID] Show data only from ID or current boot if unspecified\n"
|
||||
+ " -b --boot[=ID] Show data only from ID or, if unspecified, the current boot\n"
|
||||
" --list-boots Show terse information about recorded boots\n"
|
||||
- " -k --dmesg Show kernel message log from current boot\n"
|
||||
+ " -k --dmesg Show kernel message log from the current boot\n"
|
||||
" -u --unit=UNIT Show data only from the specified unit\n"
|
||||
" --user-unit=UNIT Show data only from the specified user session unit\n"
|
||||
" -p --priority=RANGE Show only messages within the specified priority range\n"
|
||||
" -e --pager-end Immediately jump to end of the journal in the pager\n"
|
||||
- " -f --follow Follow journal\n"
|
||||
+ " -f --follow Follow the journal\n"
|
||||
" -n --lines[=INTEGER] Number of journal entries to show\n"
|
||||
" --no-tail Show all lines, even in follow mode\n"
|
||||
" -r --reverse Show the newest entries first\n"
|
||||
" -o --output=STRING Change journal output mode (short, short-iso,\n"
|
||||
- " short-precise, short-monotonic, verbose,\n"
|
||||
- " export, json, json-pretty, json-sse, cat)\n"
|
||||
+ " short-precise, short-monotonic, verbose,\n"
|
||||
+ " export, json, json-pretty, json-sse, cat)\n"
|
||||
" -x --catalog Add message explanations where available\n"
|
||||
" -l --full Do not ellipsize fields\n"
|
||||
" -a --all Show all fields, including long and unprintable\n"
|
||||
- " -q --quiet Don't show privilege warning\n"
|
||||
+ " -q --quiet Do not show privilege warning\n"
|
||||
" --no-pager Do not pipe output into a pager\n"
|
||||
" -m --merge Show entries from all available journals\n"
|
||||
" -D --directory=PATH Show journal files from directory\n"
|
||||
@@ -162,20 +162,20 @@ static int help(void) {
|
||||
#ifdef HAVE_GCRYPT
|
||||
" --interval=TIME Time interval for changing the FSS sealing key\n"
|
||||
" --verify-key=KEY Specify FSS verification key\n"
|
||||
- " --force Force overriding new FSS key pair with --setup-keys\n"
|
||||
+ " --force Force overriding of the FSS key pair with --setup-keys\n"
|
||||
#endif
|
||||
"\nCommands:\n"
|
||||
- " -h --help Show this help\n"
|
||||
+ " -h --help Show this help text\n"
|
||||
" --version Show package version\n"
|
||||
- " --new-id128 Generate a new 128 Bit ID\n"
|
||||
+ " --new-id128 Generate a new 128-bit ID\n"
|
||||
" --header Show journal header information\n"
|
||||
- " --disk-usage Show total disk usage\n"
|
||||
- " -F --field=FIELD List all values a certain field takes\n"
|
||||
+ " --disk-usage Show total disk usage of all journal files\n"
|
||||
+ " -F --field=FIELD List all values that a specified field takes\n"
|
||||
" --list-catalog Show message IDs of all entries in the message catalog\n"
|
||||
" --dump-catalog Show entries in the message catalog\n"
|
||||
" --update-catalog Update the message catalog database\n"
|
||||
#ifdef HAVE_GCRYPT
|
||||
- " --setup-keys Generate new FSS key pair\n"
|
||||
+ " --setup-keys Generate a new FSS key pair\n"
|
||||
" --verify Verify journal file consistency\n"
|
||||
#endif
|
||||
, program_invocation_short_name);
|
|
@ -0,0 +1,145 @@
|
|||
From 7bf8a20c2f52a3684deef37098f7a73a873da93c Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Thu, 19 Dec 2013 08:33:32 +0100
|
||||
Subject: [PATCH] keymap: Refactor Acer tables
|
||||
|
||||
Move common keys into generic Acer table, and factorize the model specific
|
||||
exceptions.
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 101 ++++++++++++++++++--------------------------------
|
||||
1 file changed, 36 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index d4d948d..ab9e569 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -46,52 +46,7 @@
|
||||
# Acer
|
||||
##########################################
|
||||
|
||||
-# Acer platform kernel driver
|
||||
-keyboard:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:pvr*
|
||||
- KEYBOARD_KEY_82=f21
|
||||
-
|
||||
-# Aspire 5720
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5720*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnZG8*:pvr*
|
||||
- KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed
|
||||
- KEYBOARD_KEY_92=media # Acer arcade
|
||||
- KEYBOARD_KEY_d4=bluetooth # Bluetooth on
|
||||
- KEYBOARD_KEY_d9=bluetooth # Bluetooth off
|
||||
- KEYBOARD_KEY_f4=prog3 # e-key
|
||||
-
|
||||
-# Aspire 5920g
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5920G:*
|
||||
- KEYBOARD_KEY_8a=media
|
||||
- KEYBOARD_KEY_92=media
|
||||
- KEYBOARD_KEY_a6=setup
|
||||
- KEYBOARD_KEY_b2=www
|
||||
- KEYBOARD_KEY_d9=bluetooth # (toggle) on-to-off
|
||||
-
|
||||
-# Aspire 6920
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*6920:*
|
||||
- KEYBOARD_KEY_d9=bluetooth # (toggle) on-to-off
|
||||
- KEYBOARD_KEY_92=media
|
||||
- KEYBOARD_KEY_9e=back
|
||||
- KEYBOARD_KEY_83=rewind
|
||||
- KEYBOARD_KEY_89=fastforward
|
||||
-
|
||||
-# Aspire 8930
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:*
|
||||
- KEYBOARD_KEY_ca=prog3 # key 'HOLD' on CineDash Media Console
|
||||
- KEYBOARD_KEY_83=rewind
|
||||
- KEYBOARD_KEY_89=fastforward
|
||||
- KEYBOARD_KEY_92=media # key 'ARCADE' on CineDash Media Console
|
||||
- KEYBOARD_KEY_9e=back
|
||||
-
|
||||
-# Travelmate C300
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr*
|
||||
- KEYBOARD_KEY_67=f24 # FIXME: rotate screen
|
||||
- KEYBOARD_KEY_68=up
|
||||
- KEYBOARD_KEY_69=down
|
||||
- KEYBOARD_KEY_6b=fn
|
||||
- KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons
|
||||
-
|
||||
-#
|
||||
+# common keys
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
|
||||
@@ -99,6 +54,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
|
||||
KEYBOARD_KEY_a6=setup # Fn+F2 Acer eSettings
|
||||
KEYBOARD_KEY_a7=battery # Fn+F3 Power Management
|
||||
KEYBOARD_KEY_a9=switchvideomode # Fn+F5
|
||||
+ KEYBOARD_KEY_b2=www
|
||||
KEYBOARD_KEY_b3=euro
|
||||
KEYBOARD_KEY_b4=dollar
|
||||
KEYBOARD_KEY_ce=brightnessup # Fn+Right
|
||||
@@ -118,33 +74,48 @@ keyboard:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
|
||||
KEYBOARD_KEY_f8=fn
|
||||
KEYBOARD_KEY_f9=prog1 # Launch NTI shadow
|
||||
|
||||
-#
|
||||
+# Acer platform kernel driver
|
||||
+keyboard:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:pvr*
|
||||
+ KEYBOARD_KEY_82=f21 # Touchpad toggle
|
||||
+
|
||||
+# Aspire models
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:pvr*
|
||||
+ KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed
|
||||
+ KEYBOARD_KEY_d9=bluetooth # Bluetooth off
|
||||
+ KEYBOARD_KEY_92=media # Acer arcade
|
||||
+
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5720*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnZG8*:pvr*
|
||||
+ KEYBOARD_KEY_f4=prog3 # e-key
|
||||
+
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5920G:*
|
||||
+ KEYBOARD_KEY_8a=media
|
||||
+ KEYBOARD_KEY_a6=setup
|
||||
+
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*6920:*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:*
|
||||
+ KEYBOARD_KEY_ca=prog3 # key 'HOLD' on CineDash Media Console
|
||||
+ KEYBOARD_KEY_83=rewind
|
||||
+ KEYBOARD_KEY_89=fastforward
|
||||
+ KEYBOARD_KEY_9e=back
|
||||
+
|
||||
+# Travelmate C300
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr*
|
||||
+ KEYBOARD_KEY_67=f24 # FIXME: rotate screen
|
||||
+ KEYBOARD_KEY_68=up
|
||||
+ KEYBOARD_KEY_69=down
|
||||
+ KEYBOARD_KEY_6b=fn
|
||||
+ KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons
|
||||
+
|
||||
+# on some models this isn't brightnessup
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5610*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5620*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5720*:pvr*
|
||||
- KEYBOARD_KEY_ee=screenlock
|
||||
-
|
||||
-#
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6292*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*8471*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*7720*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1810T*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO751h:*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO531h:*
|
||||
- KEYBOARD_KEY_d9=bluetooth
|
||||
-
|
||||
-#
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:pvr*
|
||||
- KEYBOARD_KEY_b2=www
|
||||
- KEYBOARD_KEY_ee=screenlock
|
||||
-
|
||||
-#
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6593:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:*
|
||||
- KEYBOARD_KEY_b2=www
|
||||
KEYBOARD_KEY_ee=screenlock
|
||||
|
||||
###########################################################
|
|
@ -0,0 +1,49 @@
|
|||
From f1a638c065df3432bb69cc664b5425b96de13325 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 14 Dec 2013 11:54:26 -0500
|
||||
Subject: [PATCH] logging: reduce send timeout to something more sensible
|
||||
|
||||
For a user, the timeout of 1 min per message seems equivalent to a hang.
|
||||
If journald cannot process a message from PID1 for 10 ms then something
|
||||
is significantly wrong. It's better to lose the message and continue.
|
||||
---
|
||||
src/shared/log.c | 5 ++++-
|
||||
src/shared/time-util.c | 7 +++----
|
||||
2 files changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/shared/log.c b/src/shared/log.c
|
||||
index de770ca..2267764 100644
|
||||
--- a/src/shared/log.c
|
||||
+++ b/src/shared/log.c
|
||||
@@ -126,7 +126,10 @@ static int create_log_socket(int type) {
|
||||
/* We need a blocking fd here since we'd otherwise lose
|
||||
messages way too early. However, let's not hang forever in the
|
||||
unlikely case of a deadlock. */
|
||||
- timeval_store(&tv, 1*USEC_PER_MINUTE);
|
||||
+ if (getpid() == 1)
|
||||
+ timeval_store(&tv, 10 * USEC_PER_MSEC);
|
||||
+ else
|
||||
+ timeval_store(&tv, 10 * USEC_PER_SEC);
|
||||
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
|
||||
|
||||
return fd;
|
||||
diff --git a/src/shared/time-util.c b/src/shared/time-util.c
|
||||
index d31401b..505b280 100644
|
||||
--- a/src/shared/time-util.c
|
||||
+++ b/src/shared/time-util.c
|
||||
@@ -141,12 +141,11 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) {
|
||||
if (u == (usec_t) -1) {
|
||||
tv->tv_sec = (time_t) -1;
|
||||
tv->tv_usec = (suseconds_t) -1;
|
||||
- return tv;
|
||||
+ } else {
|
||||
+ tv->tv_sec = (time_t) (u / USEC_PER_SEC);
|
||||
+ tv->tv_usec = (suseconds_t) (u % USEC_PER_SEC);
|
||||
}
|
||||
|
||||
- tv->tv_sec = (time_t) (u / USEC_PER_SEC);
|
||||
- tv->tv_usec = (suseconds_t) (u % USEC_PER_SEC);
|
||||
-
|
||||
return tv;
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From e02f70c30b2ad98e5547faebd1304d5273eb0fe6 Mon Sep 17 00:00:00 2001
|
||||
From: Shawn Landden <shawn@churchofgit.com>
|
||||
Date: Fri, 20 Dec 2013 15:35:38 -0800
|
||||
Subject: [PATCH] DEFAULT_PATH_SPLIT_USR macro
|
||||
|
||||
---
|
||||
src/nspawn/nspawn.c | 2 +-
|
||||
src/shared/path-util.h | 7 +++++--
|
||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||
index 618f9c3..cafc306 100644
|
||||
--- a/src/nspawn/nspawn.c
|
||||
+++ b/src/nspawn/nspawn.c
|
||||
@@ -1227,7 +1227,7 @@ int main(int argc, char *argv[]) {
|
||||
gid_t gid = (gid_t) -1;
|
||||
unsigned n_env = 2;
|
||||
const char *envp[] = {
|
||||
- "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
||||
+ "PATH=" DEFAULT_PATH_SPLIT_USR,
|
||||
"container=systemd-nspawn", /* LXC sets container=lxc, so follow the scheme here */
|
||||
NULL, /* TERM */
|
||||
NULL, /* HOME */
|
||||
diff --git a/src/shared/path-util.h b/src/shared/path-util.h
|
||||
index 0a42de7..1e58e1b 100644
|
||||
--- a/src/shared/path-util.h
|
||||
+++ b/src/shared/path-util.h
|
||||
@@ -25,10 +25,13 @@
|
||||
|
||||
#include "macro.h"
|
||||
|
||||
+#define DEFAULT_PATH_NORMAL "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
||||
+#define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin"
|
||||
+
|
||||
#ifdef HAVE_SPLIT_USR
|
||||
-# define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
+# define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
|
||||
#else
|
||||
-# define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
||||
+# define DEFAULT_PATH DEFAULT_PATH_NORMAL
|
||||
#endif
|
||||
|
||||
bool is_path(const char *p) _pure_;
|
|
@ -0,0 +1,28 @@
|
|||
From 67ab7e43a7c5623af367193817f5b562d635b0aa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
|
||||
Date: Sat, 21 Dec 2013 11:22:37 +0100
|
||||
Subject: [PATCH] fstab-generator: Do not try to fsck non-devices
|
||||
|
||||
This fixes a regression introduced in 64e70e4 where the mount fails
|
||||
when fstab is misconfigured with fs_passno > 0 on a virtual file
|
||||
system like nfs, and the type is specified as "auto".
|
||||
---
|
||||
src/fstab-generator/fstab-generator.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
|
||||
index 4137796..8c4c61c 100644
|
||||
--- a/src/fstab-generator/fstab-generator.c
|
||||
+++ b/src/fstab-generator/fstab-generator.c
|
||||
@@ -153,6 +153,11 @@ static int add_fsck(FILE *f, const char *what, const char *where, const char *ty
|
||||
if (passno == 0)
|
||||
return 0;
|
||||
|
||||
+ if (!is_device_path(what)) {
|
||||
+ log_warning("Checking was requested for \"%s\", but it is not a device.", what);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (type && !streq(type, "auto")) {
|
||||
int r;
|
||||
const char *checker;
|
|
@ -0,0 +1,37 @@
|
|||
From 45e44dd49cafc1befdc1fb6d948071520335964a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 19 Dec 2013 14:16:46 -0500
|
||||
Subject: [PATCH] logind: remove dead variable
|
||||
|
||||
Noticed-by: Jan Alexander Steffens <jan.steffens@gmail.com>
|
||||
---
|
||||
src/login/logind-user.c | 3 ---
|
||||
src/login/logind-user.h | 1 -
|
||||
2 files changed, 4 deletions(-)
|
||||
|
||||
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
|
||||
index e2fce5c..b87311c 100644
|
||||
--- a/src/login/logind-user.c
|
||||
+++ b/src/login/logind-user.c
|
||||
@@ -648,9 +648,6 @@ UserState user_get_state(User *u) {
|
||||
|
||||
assert(u);
|
||||
|
||||
- if (u->closing)
|
||||
- return USER_CLOSING;
|
||||
-
|
||||
if (u->slice_job || u->service_job)
|
||||
return USER_OPENING;
|
||||
|
||||
diff --git a/src/login/logind-user.h b/src/login/logind-user.h
|
||||
index b9171d3..a36f456 100644
|
||||
--- a/src/login/logind-user.h
|
||||
+++ b/src/login/logind-user.h
|
||||
@@ -61,7 +61,6 @@ struct User {
|
||||
|
||||
bool in_gc_queue:1;
|
||||
bool started:1;
|
||||
- bool closing:1;
|
||||
|
||||
LIST_HEAD(Session, sessions);
|
||||
LIST_FIELDS(User, gc_queue);
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
From 3c0667a5ed5bc7043499f176d68f77dea6bae944 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu, 19 Dec 2013 11:16:12 +0100
|
||||
Subject: [PATCH] delta: replace readdir_r with readdir
|
||||
|
||||
---
|
||||
src/delta/delta.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/delta/delta.c b/src/delta/delta.c
|
||||
index b3272d9..fd024fc 100644
|
||||
--- a/src/delta/delta.c
|
||||
+++ b/src/delta/delta.c
|
||||
@@ -280,13 +280,13 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
|
||||
for (;;) {
|
||||
struct dirent *de;
|
||||
- union dirent_storage buf;
|
||||
int k;
|
||||
char *p;
|
||||
|
||||
- k = readdir_r(d, &buf.de, &de);
|
||||
- if (k != 0)
|
||||
- return -k;
|
||||
+ errno = 0;
|
||||
+ de = readdir(d);
|
||||
+ if (!de && errno != 0)
|
||||
+ return -errno;
|
||||
|
||||
if (!de)
|
||||
break;
|
|
@ -0,0 +1,375 @@
|
|||
From e0902bd55deee738f3d6e33b8744364ef922caa2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 22 Dec 2013 19:45:02 -0500
|
||||
Subject: [PATCH] delta: fix delta for drop-ins
|
||||
|
||||
Also, fix highlighting, add more debug statements, make const tables
|
||||
static and global, run path_kill_slashes only at entry.
|
||||
|
||||
Conflicts:
|
||||
src/delta/delta.c
|
||||
---
|
||||
src/delta/delta.c | 174 +++++++++++++++++++++++++-----------------------------
|
||||
1 file changed, 79 insertions(+), 95 deletions(-)
|
||||
|
||||
diff --git a/src/delta/delta.c b/src/delta/delta.c
|
||||
index fd024fc..e97f2e9 100644
|
||||
--- a/src/delta/delta.c
|
||||
+++ b/src/delta/delta.c
|
||||
@@ -33,6 +33,34 @@
|
||||
#include "build.h"
|
||||
#include "strv.h"
|
||||
|
||||
+static const char prefixes[] =
|
||||
+ "/etc\0"
|
||||
+ "/run\0"
|
||||
+ "/usr/local/lib\0"
|
||||
+ "/usr/local/share\0"
|
||||
+ "/usr/lib\0"
|
||||
+ "/usr/share\0"
|
||||
+#ifdef HAVE_SPLIT_USR
|
||||
+ "/lib\0"
|
||||
+#endif
|
||||
+ ;
|
||||
+
|
||||
+static const char suffixes[] =
|
||||
+ "sysctl.d\0"
|
||||
+ "tmpfiles.d\0"
|
||||
+ "modules-load.d\0"
|
||||
+ "binfmt.d\0"
|
||||
+ "systemd/system\0"
|
||||
+ "systemd/user\0"
|
||||
+ "systemd/system-preset\0"
|
||||
+ "systemd/user-preset\0"
|
||||
+ "udev/rules.d\0"
|
||||
+ "modprobe.d\0";
|
||||
+
|
||||
+static const char have_dropins[] =
|
||||
+ "systemd/system\0"
|
||||
+ "systemd/user\0";
|
||||
+
|
||||
static bool arg_no_pager = false;
|
||||
static int arg_diff = -1;
|
||||
|
||||
@@ -48,6 +76,14 @@ static enum {
|
||||
(SHOW_MASKED | SHOW_EQUIVALENT | SHOW_REDIRECTED | SHOW_OVERRIDDEN | SHOW_EXTENDED)
|
||||
} arg_flags = 0;
|
||||
|
||||
+static void pager_open_if_enabled(void) {
|
||||
+
|
||||
+ if (arg_no_pager)
|
||||
+ return;
|
||||
+
|
||||
+ pager_open(false);
|
||||
+}
|
||||
+
|
||||
static int equivalent(const char *a, const char *b) {
|
||||
_cleanup_free_ char *x = NULL, *y = NULL;
|
||||
|
||||
@@ -76,7 +112,7 @@ static int notify_override_equivalent(const char *top, const char *bottom) {
|
||||
return 0;
|
||||
|
||||
printf("%s%s%s %s → %s\n",
|
||||
- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight(), top, bottom);
|
||||
+ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -160,24 +196,26 @@ static int found_override(const char *top, const char *bottom) {
|
||||
}
|
||||
|
||||
static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const char *toppath, const char *drop) {
|
||||
- _cleanup_free_ char *conf = NULL;
|
||||
+ _cleanup_free_ char *unit = NULL;
|
||||
_cleanup_free_ char *path = NULL;
|
||||
_cleanup_strv_free_ char **list = NULL;
|
||||
char **file;
|
||||
char *c;
|
||||
int r;
|
||||
|
||||
+ assert(!endswith(drop, "/"));
|
||||
+
|
||||
path = strjoin(toppath, "/", drop, NULL);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
- path_kill_slashes(path);
|
||||
+ log_debug("Looking at %s", path);
|
||||
|
||||
- conf = strdup(drop);
|
||||
- if (!conf)
|
||||
+ unit = strdup(drop);
|
||||
+ if (!unit)
|
||||
return -ENOMEM;
|
||||
|
||||
- c = strrchr(conf, '.');
|
||||
+ c = strrchr(unit, '.');
|
||||
if (!c)
|
||||
return -EINVAL;
|
||||
*c = 0;
|
||||
@@ -200,35 +238,21 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
|
||||
p = strjoin(path, "/", *file, NULL);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
+ d = p + strlen(toppath) + 1;
|
||||
|
||||
- path_kill_slashes(p);
|
||||
-
|
||||
- d = strrchr(p, '/');
|
||||
- if (!d || d == p) {
|
||||
- free(p);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
- d--;
|
||||
- d = strrchr(p, '/');
|
||||
-
|
||||
- if (!d || d == p) {
|
||||
- free(p);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
-
|
||||
+ log_debug("Adding at top: %s → %s", d, p);
|
||||
k = hashmap_put(top, d, p);
|
||||
if (k >= 0) {
|
||||
p = strdup(p);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
- d = strrchr(p, '/');
|
||||
- d--;
|
||||
- d = strrchr(p, '/');
|
||||
+ d = p + strlen(toppath) + 1;
|
||||
} else if (k != -EEXIST) {
|
||||
free(p);
|
||||
return k;
|
||||
}
|
||||
|
||||
+ log_debug("Adding at bottom: %s → %s", d, p);
|
||||
free(hashmap_remove(bottom, d));
|
||||
k = hashmap_put(bottom, d, p);
|
||||
if (k < 0) {
|
||||
@@ -236,14 +260,14 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
|
||||
return k;
|
||||
}
|
||||
|
||||
- h = hashmap_get(drops, conf);
|
||||
+ h = hashmap_get(drops, unit);
|
||||
if (!h) {
|
||||
h = hashmap_new(string_hash_func, string_compare_func);
|
||||
if (!h)
|
||||
return -ENOMEM;
|
||||
- hashmap_put(drops, conf, h);
|
||||
- conf = strdup(conf);
|
||||
- if (!conf)
|
||||
+ hashmap_put(drops, unit, h);
|
||||
+ unit = strdup(unit);
|
||||
+ if (!unit)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -251,7 +275,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
- k = hashmap_put(h, path_get_file_name(p), p);
|
||||
+ log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p);
|
||||
+ k = hashmap_put(h, basename(p), p);
|
||||
if (k < 0) {
|
||||
free(p);
|
||||
if (k != -EEXIST)
|
||||
@@ -269,12 +294,14 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
assert(drops);
|
||||
assert(path);
|
||||
|
||||
+ log_debug("Looking at %s", path);
|
||||
+
|
||||
d = opendir(path);
|
||||
if (!d) {
|
||||
if (errno == ENOENT)
|
||||
return 0;
|
||||
|
||||
- log_error("Failed to enumerate %s: %m", path);
|
||||
+ log_error("Failed to open %s: %m", path);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
@@ -285,11 +312,8 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
|
||||
errno = 0;
|
||||
de = readdir(d);
|
||||
- if (!de && errno != 0)
|
||||
- return -errno;
|
||||
-
|
||||
if (!de)
|
||||
- break;
|
||||
+ return -errno;
|
||||
|
||||
if (dropins && de->d_type == DT_DIR && endswith(de->d_name, ".d"))
|
||||
enumerate_dir_d(top, bottom, drops, path, de->d_name);
|
||||
@@ -301,9 +325,8 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
- path_kill_slashes(p);
|
||||
-
|
||||
- k = hashmap_put(top, path_get_file_name(p), p);
|
||||
+ log_debug("Adding at top: %s → %s", basename(p), p);
|
||||
+ k = hashmap_put(top, basename(p), p);
|
||||
if (k >= 0) {
|
||||
p = strdup(p);
|
||||
if (!p)
|
||||
@@ -313,44 +336,37 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
return k;
|
||||
}
|
||||
|
||||
- free(hashmap_remove(bottom, path_get_file_name(p)));
|
||||
- k = hashmap_put(bottom, path_get_file_name(p), p);
|
||||
+ log_debug("Adding at bottom: %s → %s", basename(p), p);
|
||||
+ free(hashmap_remove(bottom, basename(p)));
|
||||
+ k = hashmap_put(bottom, basename(p), p);
|
||||
if (k < 0) {
|
||||
free(p);
|
||||
return k;
|
||||
}
|
||||
}
|
||||
-
|
||||
- return 0;
|
||||
}
|
||||
|
||||
-static int process_suffix(const char *prefixes, const char *suffix, bool dropins) {
|
||||
+static int process_suffix(const char *suffix) {
|
||||
const char *p;
|
||||
char *f;
|
||||
- Hashmap *top, *bottom=NULL, *drops=NULL;
|
||||
+ Hashmap *top, *bottom, *drops;
|
||||
Hashmap *h;
|
||||
char *key;
|
||||
int r = 0, k;
|
||||
Iterator i, j;
|
||||
int n_found = 0;
|
||||
+ bool dropins;
|
||||
|
||||
- assert(prefixes);
|
||||
assert(suffix);
|
||||
+ assert(!startswith(suffix, "/"));
|
||||
+ assert(!strstr(suffix, "//"));
|
||||
|
||||
- top = hashmap_new(string_hash_func, string_compare_func);
|
||||
- if (!top) {
|
||||
- r = -ENOMEM;
|
||||
- goto finish;
|
||||
- }
|
||||
+ dropins = nulstr_contains(have_dropins, suffix);
|
||||
|
||||
+ top = hashmap_new(string_hash_func, string_compare_func);
|
||||
bottom = hashmap_new(string_hash_func, string_compare_func);
|
||||
- if (!bottom) {
|
||||
- r = -ENOMEM;
|
||||
- goto finish;
|
||||
- }
|
||||
-
|
||||
drops = hashmap_new(string_hash_func, string_compare_func);
|
||||
- if (!drops) {
|
||||
+ if (!top || !bottom || !drops) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
}
|
||||
@@ -365,10 +381,8 @@ static int process_suffix(const char *prefixes, const char *suffix, bool dropins
|
||||
}
|
||||
|
||||
k = enumerate_dir(top, bottom, drops, t, dropins);
|
||||
- if (k < 0)
|
||||
+ if (r == 0)
|
||||
r = k;
|
||||
-
|
||||
- log_debug("Looking at %s", t);
|
||||
}
|
||||
|
||||
HASHMAP_FOREACH_KEY(f, key, top, i) {
|
||||
@@ -409,21 +423,20 @@ finish:
|
||||
return r < 0 ? r : n_found;
|
||||
}
|
||||
|
||||
-static int process_suffix_chop(const char *prefixes, const char *suffix, const char *have_dropins) {
|
||||
+static int process_suffix_chop(const char *suffix) {
|
||||
const char *p;
|
||||
|
||||
- assert(prefixes);
|
||||
assert(suffix);
|
||||
|
||||
if (!path_is_absolute(suffix))
|
||||
- return process_suffix(prefixes, suffix, nulstr_contains(have_dropins, suffix));
|
||||
+ return process_suffix(suffix);
|
||||
|
||||
/* Strip prefix from the suffix */
|
||||
NULSTR_FOREACH(p, prefixes) {
|
||||
if (startswith(suffix, p)) {
|
||||
suffix += strlen(p);
|
||||
suffix += strspn(suffix, "/");
|
||||
- return process_suffix(prefixes, suffix, nulstr_contains(have_dropins, suffix));
|
||||
+ return process_suffix(suffix);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -548,35 +561,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
-
|
||||
- const char prefixes[] =
|
||||
- "/etc\0"
|
||||
- "/run\0"
|
||||
- "/usr/local/lib\0"
|
||||
- "/usr/local/share\0"
|
||||
- "/usr/lib\0"
|
||||
- "/usr/share\0"
|
||||
-#ifdef HAVE_SPLIT_USR
|
||||
- "/lib\0"
|
||||
-#endif
|
||||
- ;
|
||||
-
|
||||
- const char suffixes[] =
|
||||
- "sysctl.d\0"
|
||||
- "tmpfiles.d\0"
|
||||
- "modules-load.d\0"
|
||||
- "binfmt.d\0"
|
||||
- "systemd/system\0"
|
||||
- "systemd/user\0"
|
||||
- "systemd/system-preset\0"
|
||||
- "systemd/user-preset\0"
|
||||
- "udev/rules.d\0"
|
||||
- "modprobe.d\0";
|
||||
-
|
||||
- const char have_dropins[] =
|
||||
- "systemd/system\0"
|
||||
- "systemd/user\0";
|
||||
-
|
||||
int r = 0, k;
|
||||
int n_found = 0;
|
||||
|
||||
@@ -595,14 +579,14 @@ int main(int argc, char *argv[]) {
|
||||
else if (arg_diff)
|
||||
arg_flags |= SHOW_OVERRIDDEN;
|
||||
|
||||
- if (!arg_no_pager)
|
||||
- pager_open(false);
|
||||
+ pager_open_if_enabled();
|
||||
|
||||
if (optind < argc) {
|
||||
int i;
|
||||
|
||||
for (i = optind; i < argc; i++) {
|
||||
- k = process_suffix_chop(prefixes, argv[i], have_dropins);
|
||||
+ path_kill_slashes(argv[i]);
|
||||
+ k = process_suffix_chop(argv[i]);
|
||||
if (k < 0)
|
||||
r = k;
|
||||
else
|
||||
@@ -613,7 +597,7 @@ int main(int argc, char *argv[]) {
|
||||
const char *n;
|
||||
|
||||
NULSTR_FOREACH(n, suffixes) {
|
||||
- k = process_suffix(prefixes, n, nulstr_contains(have_dropins, n));
|
||||
+ k = process_suffix(n);
|
||||
if (k < 0)
|
||||
r = k;
|
||||
else
|
|
@ -0,0 +1,251 @@
|
|||
From 31ce1352b687551d62d3b7d4dc1276b2dff1d65a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 22 Dec 2013 22:53:23 -0500
|
||||
Subject: [PATCH] delta: if prefix is specified, only show overrides there
|
||||
|
||||
systemd-delta /run/systemd/system will show all unit overrides
|
||||
in /run, etc.
|
||||
---
|
||||
man/systemd-delta.xml | 80 +++++++++++++++++++++++++++++++++++++++++----------
|
||||
src/delta/delta.c | 71 ++++++++++++++++++++++++++++-----------------
|
||||
2 files changed, 109 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/man/systemd-delta.xml b/man/systemd-delta.xml
|
||||
index 413ebd8..4d3ab78 100644
|
||||
--- a/man/systemd-delta.xml
|
||||
+++ b/man/systemd-delta.xml
|
||||
@@ -49,7 +49,9 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
- <command>systemd-delta <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">SUFFIX</arg></command>
|
||||
+ <command>systemd-delta</command>
|
||||
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
+ <arg choice="opt" rep="repeat"><replaceable>PREFIX</replaceable><optional>/<replaceable>SUFFIX</replaceable></optional>|<replaceable>SUFFIX</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
@@ -57,18 +59,46 @@
|
||||
<title>Description</title>
|
||||
|
||||
<para><command>systemd-delta</command> may be used to
|
||||
- identify and compare configuration files in
|
||||
- <filename>/etc</filename> that override default
|
||||
- counterparts in <filename>/usr</filename>. The command
|
||||
- line argument can be one or more name of a subdirectories of
|
||||
- <filename>/etc</filename> or
|
||||
- <filename>/usr/lib</filename> to compare, such as
|
||||
- <filename>tmpfiles.d</filename>, <filename>sysctl.d</filename> or
|
||||
- <filename>systemd/system</filename>.</para>
|
||||
-
|
||||
- <para>When no argument is specified a number of
|
||||
- well-known subdirectories are searched for overridden
|
||||
- files.</para>
|
||||
+ identify and compare configuration files that override
|
||||
+ other configuration files. Files in
|
||||
+ <filename>/etc</filename> have highest priority, files
|
||||
+ in <filename>/run</filename> have the second highest
|
||||
+ priority, ..., files in <filename>/lib</filename> have
|
||||
+ lowest priority. Files in a directory with higher
|
||||
+ priority override files with the same name in
|
||||
+ directories of lower priority. In addition, certain
|
||||
+ configuration files can have <literal>.d</literal>
|
||||
+ directories which contain "drop-in" files with
|
||||
+ configuration snippets which augment the main
|
||||
+ configuration file. "Drop-in" files can be overriden
|
||||
+ in the same way by placing files with the same name in
|
||||
+ a directory of higher priority (except that in case of
|
||||
+ "drop-in" files, both the "drop-in" file name and the
|
||||
+ name of the containing directory, which corresponds to
|
||||
+ the name of the main configuration file, must match).
|
||||
+ For a fuller explanation, see
|
||||
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
+ </para>
|
||||
+
|
||||
+ <para>The command line argument will be split into a
|
||||
+ prefix and a suffix. Either is optional. The prefix
|
||||
+ must be one of the directories containing
|
||||
+ configuration files (<filename>/etc</filename>,
|
||||
+ <filename>/run</filename>,
|
||||
+ <filename>/usr/lib</filename>, ...). If it is given,
|
||||
+ only overriding files contained in this directory will
|
||||
+ be shown. Otherwise, all overriding files will be
|
||||
+ shown. The suffix must be a name of a subdirectory
|
||||
+ containing configuration files like
|
||||
+ <filename>tmpfiles.d</filename>,
|
||||
+ <filename>sysctl.d</filename> or
|
||||
+ <filename>systemd/system</filename>. If it is given,
|
||||
+ only configuration files in this subdirectory (across
|
||||
+ all configuration paths) will be analyzed. Otherwise,
|
||||
+ all configuration files will be analyzed. If the
|
||||
+ commandline argument is not given at all, all
|
||||
+ configuration files will be analyzed. See below for
|
||||
+ some examples.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@@ -168,9 +198,28 @@
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
-
|
||||
</refsect1>
|
||||
|
||||
+ <refsect1>
|
||||
+ <title>Examples</title>
|
||||
+
|
||||
+ <para>To see all local configuration:</para>
|
||||
+ <programlisting>systemd-delta
|
||||
+ </programlisting>
|
||||
+
|
||||
+ <para>To see all runtime configuration:</para>
|
||||
+ <programlisting>systemd-delta /run
|
||||
+ </programlisting>
|
||||
+
|
||||
+ <para>To see all system unit configuration changes:</para>
|
||||
+ <programlisting>systemd-delta systemd/system
|
||||
+ </programlisting>
|
||||
+
|
||||
+ <para>To see all runtime "drop-in" changes for system units:</para>
|
||||
+ <programlisting>systemd-delta --type=extended /run/systemd/system
|
||||
+ </programlisting>
|
||||
+ </refsect1>
|
||||
+
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
@@ -181,7 +230,8 @@
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para>
|
||||
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/src/delta/delta.c b/src/delta/delta.c
|
||||
index e97f2e9..ae658f9 100644
|
||||
--- a/src/delta/delta.c
|
||||
+++ b/src/delta/delta.c
|
||||
@@ -4,6 +4,7 @@
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2012 Lennart Poettering
|
||||
+ Copyright 2013 Zbigniew Jędrzejewski-Szmek
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
@@ -346,7 +347,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
}
|
||||
}
|
||||
|
||||
-static int process_suffix(const char *suffix) {
|
||||
+static int process_suffix(const char *suffix, const char *onlyprefix) {
|
||||
const char *p;
|
||||
char *f;
|
||||
Hashmap *top, *bottom, *drops;
|
||||
@@ -391,20 +392,23 @@ static int process_suffix(const char *suffix) {
|
||||
o = hashmap_get(bottom, key);
|
||||
assert(o);
|
||||
|
||||
- if (path_equal(o, f))
|
||||
- notify_override_unchanged(f);
|
||||
- else {
|
||||
- k = found_override(f, o);
|
||||
- if (k < 0)
|
||||
- r = k;
|
||||
- else
|
||||
- n_found += k;
|
||||
+ if (!onlyprefix || startswith(o, onlyprefix)) {
|
||||
+ if (path_equal(o, f)) {
|
||||
+ notify_override_unchanged(f);
|
||||
+ } else {
|
||||
+ k = found_override(f, o);
|
||||
+ if (k < 0)
|
||||
+ r = k;
|
||||
+ else
|
||||
+ n_found += k;
|
||||
+ }
|
||||
}
|
||||
|
||||
h = hashmap_get(drops, key);
|
||||
if (h)
|
||||
HASHMAP_FOREACH(o, h, j)
|
||||
- n_found += notify_override_extended(f, o);
|
||||
+ if (!onlyprefix || startswith(o, onlyprefix))
|
||||
+ n_found += notify_override_extended(f, o);
|
||||
}
|
||||
|
||||
finish:
|
||||
@@ -423,24 +427,41 @@ finish:
|
||||
return r < 0 ? r : n_found;
|
||||
}
|
||||
|
||||
-static int process_suffix_chop(const char *suffix) {
|
||||
+static int process_suffixes(const char *onlyprefix) {
|
||||
+ const char *n;
|
||||
+ int n_found = 0, r;
|
||||
+
|
||||
+ NULSTR_FOREACH(n, suffixes) {
|
||||
+ r = process_suffix(n, onlyprefix);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+ else
|
||||
+ n_found += r;
|
||||
+ }
|
||||
+ return n_found;
|
||||
+}
|
||||
+
|
||||
+static int process_suffix_chop(const char *arg) {
|
||||
const char *p;
|
||||
|
||||
- assert(suffix);
|
||||
+ assert(arg);
|
||||
|
||||
- if (!path_is_absolute(suffix))
|
||||
- return process_suffix(suffix);
|
||||
+ if (!path_is_absolute(arg))
|
||||
+ return process_suffix(arg, NULL);
|
||||
|
||||
/* Strip prefix from the suffix */
|
||||
NULSTR_FOREACH(p, prefixes) {
|
||||
- if (startswith(suffix, p)) {
|
||||
- suffix += strlen(p);
|
||||
+ const char *suffix = startswith(arg, p);
|
||||
+ if (suffix) {
|
||||
suffix += strspn(suffix, "/");
|
||||
- return process_suffix(suffix);
|
||||
+ if (*suffix)
|
||||
+ return process_suffix(suffix, NULL);
|
||||
+ else
|
||||
+ return process_suffixes(arg);
|
||||
}
|
||||
}
|
||||
|
||||
- log_error("Invalid suffix specification %s.", suffix);
|
||||
+ log_error("Invalid suffix specification %s.", arg);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -594,15 +615,11 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
} else {
|
||||
- const char *n;
|
||||
-
|
||||
- NULSTR_FOREACH(n, suffixes) {
|
||||
- k = process_suffix(n);
|
||||
- if (k < 0)
|
||||
- r = k;
|
||||
- else
|
||||
- n_found += k;
|
||||
- }
|
||||
+ k = process_suffixes(NULL);
|
||||
+ if (k < 0)
|
||||
+ r = k;
|
||||
+ else
|
||||
+ n_found += k;
|
||||
}
|
||||
|
||||
if (r >= 0)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,401 @@
|
|||
From 6972095a2b6eb919b622a89d11e0dc823ed60efb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 24 Dec 2013 10:21:45 -0500
|
||||
Subject: [PATCH] man,units: tmpfiles.d(5) cleanup
|
||||
|
||||
Condition for /lib (necessary for split /usr) was missing from the unit.
|
||||
|
||||
Some changes which were done in tmpfiles.d(5) were not carried over to
|
||||
systemd-tmpfiles(1).
|
||||
|
||||
Also use markup where possible.
|
||||
|
||||
Conflicts:
|
||||
man/tmpfiles.d.xml
|
||||
---
|
||||
man/systemd-tmpfiles.xml | 53 ++++++----
|
||||
man/tmpfiles.d.xml | 168 +++++++++++++++++++-------------
|
||||
units/systemd-tmpfiles-setup.service.in | 1 +
|
||||
3 files changed, 134 insertions(+), 88 deletions(-)
|
||||
|
||||
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
|
||||
index ba727e1..91c0372 100644
|
||||
--- a/man/systemd-tmpfiles.xml
|
||||
+++ b/man/systemd-tmpfiles.xml
|
||||
@@ -54,7 +54,9 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
- <command>systemd-tmpfiles <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">CONFIGURATION FILE</arg></command>
|
||||
+ <command>systemd-tmpfiles</command>
|
||||
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
+ <arg choice="opt" rep="repeat"><replaceable>CONFIGFILE</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
<para><filename>systemd-tmpfiles-setup.service</filename></para>
|
||||
@@ -67,22 +69,20 @@
|
||||
<title>Description</title>
|
||||
|
||||
<para><command>systemd-tmpfiles</command> creates,
|
||||
- deletes and cleans up volatile and temporary files and
|
||||
+ deletes, and cleans up volatile and temporary files and
|
||||
directories, based on the configuration file format and
|
||||
- location specified in <citerefentry>
|
||||
- <refentrytitle>tmpfiles.d</refentrytitle>
|
||||
- <manvolnum>5</manvolnum>
|
||||
- </citerefentry>.</para>
|
||||
+ location specified in
|
||||
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
+ </para>
|
||||
|
||||
<para>If invoked with no arguments, it applies all
|
||||
directives from all configuration files. If one or
|
||||
more filenames are passed on the command line, only
|
||||
the directives in these files are applied. If only
|
||||
the basename of a configuration file is specified,
|
||||
- all configuration directories as specified in <citerefentry>
|
||||
- <refentrytitle>tmpfiles.d</refentrytitle>
|
||||
- <manvolnum>5</manvolnum>
|
||||
- </citerefentry> are searched for a matching file.</para>
|
||||
+ all configuration directories as specified in
|
||||
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
+ are searched for a matching file.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@@ -94,12 +94,25 @@
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--create</option></term>
|
||||
- <listitem><para>If this option is passed, all
|
||||
- files and directories marked with f,
|
||||
- F, d, D in the configuration files are
|
||||
- created. Files and directories marked with z,
|
||||
- Z have their ownership, access mode and security
|
||||
- labels set.</para></listitem>
|
||||
+ <listitem><para>If this option is
|
||||
+ passed, all files and directories
|
||||
+ marked with <varname>f</varname>,
|
||||
+ <varname>F</varname>,
|
||||
+ <varname>w</varname>,
|
||||
+ <varname>d</varname>,
|
||||
+ <varname>D</varname>,
|
||||
+ <varname>p</varname>,
|
||||
+ <varname>L</varname>,
|
||||
+ <varname>c</varname>,
|
||||
+ <varname>b</varname>,
|
||||
+ <varname>m</varname> in the
|
||||
+ configuration files are created or
|
||||
+ written to. Files and directories
|
||||
+ marked with <varname>z</varname>,
|
||||
+ <varname>Z</varname>,
|
||||
+ <varname>m</varname> have their
|
||||
+ ownership, access mode and security
|
||||
+ labels set. </para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@@ -113,9 +126,11 @@
|
||||
<varlistentry>
|
||||
<term><option>--remove</option></term>
|
||||
<listitem><para>If this option is
|
||||
- passed, all files and directories marked
|
||||
- with r, R in the configuration files
|
||||
- are removed.</para></listitem>
|
||||
+ passed, all files and directories
|
||||
+ marked with <varname>r</varname>,
|
||||
+ <varname>R</varname> in the
|
||||
+ configuration files are
|
||||
+ removed.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--prefix=PATH</option></term>
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index e8b630d..a00637b 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -67,23 +67,32 @@
|
||||
<title>Configuration Format</title>
|
||||
|
||||
<para>Each configuration file shall be named in the
|
||||
- style of <filename><package>.conf</filename>.
|
||||
- Files in <filename>/etc/</filename> override files
|
||||
- with the same name in <filename>/usr/lib/</filename>
|
||||
- and <filename>/run/</filename>. Files in
|
||||
- <filename>/run/</filename> override files with the same
|
||||
- name in <filename>/usr/lib/</filename>. Packages
|
||||
+ style of
|
||||
+ <filename><replaceable>package</replaceable>.conf</filename>
|
||||
+ or
|
||||
+ <filename><replaceable>package</replaceable>-<replaceable>part</replaceable>.conf</filename>.
|
||||
+ The second variant should be used when it is desirable
|
||||
+ to make it easy to override just this part of
|
||||
+ configuration.</para>
|
||||
+
|
||||
+ <para>Files in <filename>/etc/tmpfiles.d</filename>
|
||||
+ override files with the same name in
|
||||
+ <filename>/usr/lib/tmpfiles.d</filename> and
|
||||
+ <filename>/run/tmpfiles.d</filename>. Files in
|
||||
+ <filename>/run/tmpfiles.d</filename> override files
|
||||
+ with the same name in
|
||||
+ <filename>/usr/lib/tmpfiles.d</filename>. Packages
|
||||
should install their configuration files in
|
||||
- <filename>/usr/lib/</filename>. Files in
|
||||
- <filename>/etc/</filename> are reserved for the local
|
||||
- administrator, who may use this logic to override the
|
||||
- configuration files installed by vendor packages. All
|
||||
- configuration files are sorted by their filename in
|
||||
- lexicographic order, regardless in which of the
|
||||
- directories they reside. If multiple files specify the
|
||||
- same path, the entry in the file with the lexicographically
|
||||
- earliest name will be applied, all all other conflicting
|
||||
- entries logged as errors.</para>
|
||||
+ <filename>/usr/lib/tmpfiles.d</filename>. Files in
|
||||
+ <filename>/etc/tmpfiles.d</filename> are reserved for
|
||||
+ the local administrator, who may use this logic to
|
||||
+ override the configuration files installed by vendor
|
||||
+ packages. All configuration files are sorted by their
|
||||
+ filename in lexicographic order, regardless in which
|
||||
+ of the directories they reside. If multiple files
|
||||
+ specify the same path, the entry in the file with the
|
||||
+ lexicographically earliest name will be applied, all
|
||||
+ all other conflicting entries logged as errors.</para>
|
||||
|
||||
<para>If the administrator wants to disable a
|
||||
configuration file supplied by the vendor, the
|
||||
@@ -93,10 +102,10 @@
|
||||
same filename.</para>
|
||||
|
||||
<para>The configuration format is one line per path
|
||||
- containing action, path, mode, ownership, age and argument
|
||||
+ containing type, path, mode, ownership, age, and argument
|
||||
fields:</para>
|
||||
|
||||
- <programlisting>Type Path Mode UID GID Age Argument
|
||||
+ <programlisting>#Type Path Mode UID GID Age Argument
|
||||
d /run/user 0755 root root 10d -
|
||||
L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
|
||||
@@ -109,12 +118,12 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><varname>f</varname></term>
|
||||
- <listitem><para>Create a file if it does not exist yet (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
|
||||
+ <listitem><para>Create a file if it does not exist yet. If the argument parameter is given, it will be written to the file.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>F</varname></term>
|
||||
- <listitem><para>Create or truncate a file (optionally writing a short string into it, if the argument parameter is passed)</para></listitem>
|
||||
+ <listitem><para>Create or truncate a file. If the argument parameter is given, it will be written to the file.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@@ -127,32 +136,32 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>d</varname></term>
|
||||
- <listitem><para>Create a directory if it does not exist yet</para></listitem>
|
||||
+ <listitem><para>Create a directory if it does not exist yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>D</varname></term>
|
||||
- <listitem><para>Create or empty a directory</para></listitem>
|
||||
+ <listitem><para>Create or empty a directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>p</varname></term>
|
||||
- <listitem><para>Create a named pipe (FIFO) if it does not exist yet</para></listitem>
|
||||
+ <listitem><para>Create a named pipe (FIFO) if it does not exist yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>L</varname></term>
|
||||
- <listitem><para>Create a symlink if it does not exist yet</para></listitem>
|
||||
+ <listitem><para>Create a symlink if it does not exist yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>c</varname></term>
|
||||
- <listitem><para>Create a character device node if it does not exist yet</para></listitem>
|
||||
+ <listitem><para>Create a character device node if it does not exist yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>b</varname></term>
|
||||
- <listitem><para>Create a block device node if it does not exist yet</para></listitem>
|
||||
+ <listitem><para>Create a block device node if it does not exist yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@@ -174,11 +183,12 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
as controlled with the Age
|
||||
parameter. Note that lines of
|
||||
this type do not influence the
|
||||
- effect of r or R lines. Lines
|
||||
- of this type accept
|
||||
+ effect of <varname>r</varname>
|
||||
+ or <varname>R</varname> lines.
|
||||
+ Lines of this type accept
|
||||
shell-style globs in place of
|
||||
- normal path
|
||||
- names.</para></listitem>
|
||||
+ normal path names.
|
||||
+ </para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
@@ -187,28 +197,31 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
during cleaning. Use this type
|
||||
to exclude paths from clean-up
|
||||
as controlled with the Age
|
||||
- parameter. Unlike x this
|
||||
+ parameter. Unlike
|
||||
+ <varname>x</varname>, this
|
||||
parameter will not exclude the
|
||||
- content if path is a directory,
|
||||
- but only directory itself.
|
||||
- Note that lines of this type do
|
||||
- not influence the effect of r
|
||||
- or R lines. Lines of this type
|
||||
- accept shell-style globs in
|
||||
- place of normal path
|
||||
- names.</para></listitem>
|
||||
+ content if path is a
|
||||
+ directory, but only directory
|
||||
+ itself. Note that lines of
|
||||
+ this type do not influence the
|
||||
+ effect of <varname>r</varname>
|
||||
+ or <varname>R</varname> lines.
|
||||
+ Lines of this type accept
|
||||
+ shell-style globs in place of
|
||||
+ normal path names.
|
||||
+ </para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>r</varname></term>
|
||||
<listitem><para>Remove a file
|
||||
- or directory if it
|
||||
- exists. This may not be used
|
||||
- to remove non-empty
|
||||
- directories, use R for
|
||||
- that. Lines of this type
|
||||
- accept shell-style globs in
|
||||
- place of normal path
|
||||
+ or directory if it exists.
|
||||
+ This may not be used to remove
|
||||
+ non-empty directories, use
|
||||
+ <varname>R</varname> for that.
|
||||
+ Lines of this type accept
|
||||
+ shell-style globs in place of
|
||||
+ normal path
|
||||
names.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -308,11 +321,14 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<para>The file access mode to use when
|
||||
creating this file or directory. If omitted or
|
||||
when set to -, the default is used: 0755 for
|
||||
- directories, 0644 for all other file
|
||||
- objects. For z, Z lines, if omitted or when set
|
||||
- to -, the file access mode will not be
|
||||
- modified. This parameter is ignored for x, r,
|
||||
- R, L lines.</para>
|
||||
+ directories, 0644 for all other file objects.
|
||||
+ For <varname>z</varname>, <varname>Z</varname>
|
||||
+ lines, if omitted or when set to
|
||||
+ <literal>-</literal>, the file access mode
|
||||
+ will not be modified. This parameter is
|
||||
+ ignored for <varname>x</varname>,
|
||||
+ <varname>r</varname>, <varname>R</varname>,
|
||||
+ <varname>L</varname> lines.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
@@ -321,10 +337,15 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<para>The user and group to use for this file
|
||||
or directory. This may either be a numeric
|
||||
user/group ID or a user or group name. If
|
||||
- omitted or when set to -, the default 0 (root)
|
||||
- is used. For z, Z lines, when omitted or when set to -,
|
||||
- the file ownership will not be modified.
|
||||
- These parameters are ignored for x, r, R, L lines.</para>
|
||||
+ omitted or when set to <literal>-</literal>,
|
||||
+ the default 0 (root) is used. For
|
||||
+ <varname>z</varname>, <varname>Z</varname>
|
||||
+ lines, when omitted or when set to -, the file
|
||||
+ ownership will not be modified. These
|
||||
+ parameters are ignored for
|
||||
+ <varname>x</varname>, <varname>r</varname>,
|
||||
+ <varname>R</varname>, <varname>L</varname>
|
||||
+ lines.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
@@ -357,28 +378,37 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<para>When the age is set to zero, the files are cleaned
|
||||
unconditionally.</para>
|
||||
|
||||
- <para>The age field only applies to lines starting with
|
||||
- d, D and x. If omitted or set to -, no automatic clean-up
|
||||
- is done.</para>
|
||||
+ <para>The age field only applies to lines
|
||||
+ starting with <varname>d</varname>,
|
||||
+ <varname>D</varname>, and
|
||||
+ <varname>x</varname>. If omitted or set to
|
||||
+ <literal>-</literal>, no automatic clean-up is
|
||||
+ done.</para>
|
||||
|
||||
<para>If the age field starts with a tilde
|
||||
- character (~), the clean-up is only applied to
|
||||
- files and directories one level inside the
|
||||
- directory specified, but not the files and
|
||||
- directories immediately inside it.</para>
|
||||
+ character <literal>~</literal>, the clean-up
|
||||
+ is only applied to files and directories one
|
||||
+ level inside the directory specified, but not
|
||||
+ the files and directories immediately inside
|
||||
+ it.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Argument</title>
|
||||
|
||||
- <para>For L lines determines the destination
|
||||
- path of the symlink. For c, b determines the
|
||||
+ <para>For <varname>L</varname> lines
|
||||
+ determines the destination path of the
|
||||
+ symlink. For <varname>c</varname>,
|
||||
+ <varname>b</varname> determines the
|
||||
major/minor of the device node, with major and
|
||||
- minor formatted as integers, separated by :,
|
||||
- e.g. "1:3". For f, F, w may be used to specify
|
||||
- a short string that is written to the file,
|
||||
- suffixed by a newline. Ignored for all other
|
||||
- lines.</para>
|
||||
+ minor formatted as integers, separated by
|
||||
+ <literal>:</literal>, e.g.
|
||||
+ <literal>1:3</literal>. For
|
||||
+ <varname>f</varname>, <varname>F</varname>,
|
||||
+ and <varname>w</varname> may be used to
|
||||
+ specify a short string that is written to the
|
||||
+ file, suffixed by a newline. Ignored for all
|
||||
+ other lines.</para>
|
||||
</refsect2>
|
||||
|
||||
</refsect1>
|
||||
diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in
|
||||
index 6f98063..3405e28 100644
|
||||
--- a/units/systemd-tmpfiles-setup.service.in
|
||||
+++ b/units/systemd-tmpfiles-setup.service.in
|
||||
@@ -14,6 +14,7 @@ Conflicts=shutdown.target
|
||||
After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
|
||||
Before=sysinit.target shutdown.target
|
||||
ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d
|
||||
+ConditionDirectoryNotEmpty=|/lib/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/etc/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/run/tmpfiles.d
|
|
@ -0,0 +1,281 @@
|
|||
From 66b1ee20b814b02cd0fb73fec4a2a9b11defc607 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 20 Dec 2013 20:25:39 -0500
|
||||
Subject: [PATCH] tmpfiles: introduce the concept of unsafe operations
|
||||
|
||||
Various operations done by systemd-tmpfiles may only be safely done at
|
||||
boot (e.g. removal of X lockfiles in /tmp, creation of /run/nologin).
|
||||
Other operations may be done at any point in time (e.g. setting the
|
||||
ownership on /{run,var}/log/journal). This distinction is largely
|
||||
orthogonal to the type of operation.
|
||||
|
||||
A new switch --unsafe is added, and operations which should only be
|
||||
executed during bootup are marked with an exclamation mark in the
|
||||
configuration files. systemd-tmpfiles.service is modified to use this
|
||||
switch, and guards are added so it is hard to re-start it by mistake.
|
||||
|
||||
If we install a new version of systemd, we actually want to enforce
|
||||
some changes to tmpfiles configuration immediately. This should now be
|
||||
possible to do safely, so distribution packages can be modified to
|
||||
execute the "safe" subset at package installation time.
|
||||
|
||||
/run/nologin creation is split out into a separate service, to make it
|
||||
easy to override.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1043212
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1045849
|
||||
---
|
||||
Makefile.am | 1 +
|
||||
man/systemd-tmpfiles.xml | 6 ++++++
|
||||
man/tmpfiles.d.xml | 25 +++++++++++++++++++++++++
|
||||
src/tmpfiles/tmpfiles.c | 22 +++++++++++++++++++---
|
||||
tmpfiles.d/legacy.conf | 6 +++---
|
||||
tmpfiles.d/systemd-nologin.conf | 11 +++++++++++
|
||||
tmpfiles.d/systemd.conf | 4 +---
|
||||
tmpfiles.d/x11.conf | 2 +-
|
||||
units/systemd-tmpfiles-setup.service.in | 6 ++++--
|
||||
9 files changed, 71 insertions(+), 12 deletions(-)
|
||||
create mode 100644 tmpfiles.d/systemd-nologin.conf
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 16a5c3c..6233a7f 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1599,6 +1599,7 @@ nodist_systemunit_DATA += \
|
||||
|
||||
dist_tmpfiles_DATA = \
|
||||
tmpfiles.d/systemd.conf \
|
||||
+ tmpfiles.d/systemd-nologin.conf \
|
||||
tmpfiles.d/tmp.conf \
|
||||
tmpfiles.d/x11.conf
|
||||
|
||||
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
|
||||
index 91c0372..495247e 100644
|
||||
--- a/man/systemd-tmpfiles.xml
|
||||
+++ b/man/systemd-tmpfiles.xml
|
||||
@@ -133,6 +133,12 @@
|
||||
removed.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
+ <term><option>--unsafe</option></term>
|
||||
+ <listitem><para>Also execute lines
|
||||
+ with an exclamation mark.
|
||||
+ </para></listitem>
|
||||
+ </varlistentry>
|
||||
+ <varlistentry>
|
||||
<term><option>--prefix=PATH</option></term>
|
||||
<listitem><para>Only apply rules that
|
||||
apply to paths with the specified
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index a00637b..39aa68d 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -113,6 +113,9 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
<refsect2>
|
||||
<title>Type</title>
|
||||
|
||||
+ <para>The type consists of a single letter and
|
||||
+ optionally an exclamation mark.</para>
|
||||
+
|
||||
<para>The following line types are understood:</para>
|
||||
|
||||
<variablelist>
|
||||
@@ -262,6 +265,28 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
names.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
+
|
||||
+ <para>If the exclamation mark is used, this
|
||||
+ line is only safe of execute during boot, and
|
||||
+ can break a running system. Lines without the
|
||||
+ exclamation mark are presumed to be safe to
|
||||
+ execute at any time, e.g. on package upgrades.
|
||||
+ <command>systemd-tmpfiles</command> will
|
||||
+ execute line with an exclamation mark only if
|
||||
+ option <option>--unsafe</option> is given.
|
||||
+ </para>
|
||||
+
|
||||
+ <para>For example:
|
||||
+ <programlisting>
|
||||
+# Make sure these are created by default so that nobody else can
|
||||
+d /tmp/.X11-unix 1777 root root 10d
|
||||
+
|
||||
+# Unlink the X11 lock files
|
||||
+r! /tmp/.X[0-9]*-lock
|
||||
+ </programlisting>
|
||||
+ The second line in contrast to the first one
|
||||
+ would break a running system, and will only be
|
||||
+ executed with <option>--unsafe</option>.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
||||
index 00f74c2..30a8a55 100644
|
||||
--- a/src/tmpfiles/tmpfiles.c
|
||||
+++ b/src/tmpfiles/tmpfiles.c
|
||||
@@ -106,6 +106,7 @@ static Set *unix_sockets = NULL;
|
||||
static bool arg_create = false;
|
||||
static bool arg_clean = false;
|
||||
static bool arg_remove = false;
|
||||
+static bool arg_unsafe = false;
|
||||
|
||||
static char **include_prefixes = NULL;
|
||||
static char **exclude_prefixes = NULL;
|
||||
@@ -1073,7 +1074,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
_cleanup_item_free_ Item *i = NULL;
|
||||
Item *existing;
|
||||
_cleanup_free_ char
|
||||
- *mode = NULL, *user = NULL, *group = NULL, *age = NULL, *path = NULL;
|
||||
+ *action = NULL, *mode = NULL, *user = NULL, *group = NULL, *age = NULL, *path = NULL;
|
||||
char type;
|
||||
Hashmap *h;
|
||||
int r, n = -1;
|
||||
@@ -1083,8 +1084,8 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
assert(buffer);
|
||||
|
||||
r = sscanf(buffer,
|
||||
- "%c %ms %ms %ms %ms %ms %n",
|
||||
- &type,
|
||||
+ "%ms %ms %ms %ms %ms %ms %n",
|
||||
+ &action,
|
||||
&path,
|
||||
&mode,
|
||||
&user,
|
||||
@@ -1096,6 +1097,14 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
+ if (strlen(action) > 2 || (strlen(action) > 1 && action[1] != '!')) {
|
||||
+ log_error("[%s:%u] Unknown modifier '%s'", fname, line, action);
|
||||
+ return -EINVAL;
|
||||
+ } else if (strlen(action) > 1 && !arg_unsafe)
|
||||
+ return 0;
|
||||
+
|
||||
+ type = action[0];
|
||||
+
|
||||
i = new0(Item, 1);
|
||||
if (!i)
|
||||
return log_oom();
|
||||
@@ -1266,6 +1275,7 @@ static int help(void) {
|
||||
" --create Create marked files/directories\n"
|
||||
" --clean Clean up marked directories\n"
|
||||
" --remove Remove marked files/directories\n"
|
||||
+ " --unsafe Execute actions only safe at boot\n"
|
||||
" --prefix=PATH Only apply rules that apply to paths with the specified prefix\n"
|
||||
" --exclude-prefix=PATH Ignore rules that apply to paths with the specified prefix\n",
|
||||
program_invocation_short_name);
|
||||
@@ -1279,6 +1289,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
ARG_CREATE,
|
||||
ARG_CLEAN,
|
||||
ARG_REMOVE,
|
||||
+ ARG_UNSAFE,
|
||||
ARG_PREFIX,
|
||||
ARG_EXCLUDE_PREFIX,
|
||||
};
|
||||
@@ -1288,6 +1299,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "create", no_argument, NULL, ARG_CREATE },
|
||||
{ "clean", no_argument, NULL, ARG_CLEAN },
|
||||
{ "remove", no_argument, NULL, ARG_REMOVE },
|
||||
+ { "unsafe", no_argument, NULL, ARG_UNSAFE },
|
||||
{ "prefix", required_argument, NULL, ARG_PREFIX },
|
||||
{ "exclude-prefix", required_argument, NULL, ARG_EXCLUDE_PREFIX },
|
||||
{ NULL, 0, NULL, 0 }
|
||||
@@ -1318,6 +1330,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
arg_remove = true;
|
||||
break;
|
||||
|
||||
+ case ARG_UNSAFE:
|
||||
+ arg_unsafe = true;
|
||||
+ break;
|
||||
+
|
||||
case ARG_PREFIX:
|
||||
if (strv_extend(&include_prefixes, optarg) < 0)
|
||||
return log_oom();
|
||||
diff --git a/tmpfiles.d/legacy.conf b/tmpfiles.d/legacy.conf
|
||||
index 3fff347..a165687 100644
|
||||
--- a/tmpfiles.d/legacy.conf
|
||||
+++ b/tmpfiles.d/legacy.conf
|
||||
@@ -29,6 +29,6 @@ d /run/lock/lockdev 0775 root lock -
|
||||
# kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and
|
||||
# 'quotacheck.mode=force'
|
||||
|
||||
-r /forcefsck
|
||||
-r /fastboot
|
||||
-r /forcequotacheck
|
||||
+r! /forcefsck
|
||||
+r! /fastboot
|
||||
+r! /forcequotacheck
|
||||
diff --git a/tmpfiles.d/systemd-nologin.conf b/tmpfiles.d/systemd-nologin.conf
|
||||
new file mode 100644
|
||||
index 0000000..d61232b
|
||||
--- /dev/null
|
||||
+++ b/tmpfiles.d/systemd-nologin.conf
|
||||
@@ -0,0 +1,11 @@
|
||||
+# This file is part of systemd.
|
||||
+#
|
||||
+# systemd is free software; you can redistribute it and/or modify it
|
||||
+# under the terms of the GNU Lesser General Public License as published by
|
||||
+# the Free Software Foundation; either version 2.1 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+
|
||||
+# See tmpfiles.d(5) and systemd-forbid-user-logins.service(5).
|
||||
+# This file has special suffix so it is not run by mistake.
|
||||
+
|
||||
+F! /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)"
|
||||
diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf
|
||||
index a05c657..7c6d6b9 100644
|
||||
--- a/tmpfiles.d/systemd.conf
|
||||
+++ b/tmpfiles.d/systemd.conf
|
||||
@@ -8,7 +8,7 @@
|
||||
# See tmpfiles.d(5) for details
|
||||
|
||||
d /run/user 0755 root root ~10d
|
||||
-F /run/utmp 0664 root utmp -
|
||||
+F! /run/utmp 0664 root utmp -
|
||||
|
||||
f /var/log/wtmp 0664 root utmp -
|
||||
f /var/log/btmp 0600 root utmp -
|
||||
@@ -22,8 +22,6 @@ d /run/systemd/users 0755 root root -
|
||||
d /run/systemd/machines 0755 root root -
|
||||
d /run/systemd/shutdown 0755 root root -
|
||||
|
||||
-F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)"
|
||||
-
|
||||
m /var/log/journal 2755 root systemd-journal - -
|
||||
m /var/log/journal/%m 2755 root systemd-journal - -
|
||||
m /run/log/journal 2755 root systemd-journal - -
|
||||
diff --git a/tmpfiles.d/x11.conf b/tmpfiles.d/x11.conf
|
||||
index ece6a5c..4c96a54 100644
|
||||
--- a/tmpfiles.d/x11.conf
|
||||
+++ b/tmpfiles.d/x11.conf
|
||||
@@ -15,4 +15,4 @@ d /tmp/.font-unix 1777 root root 10d
|
||||
d /tmp/.Test-unix 1777 root root 10d
|
||||
|
||||
# Unlink the X11 lock files
|
||||
-r /tmp/.X[0-9]*-lock
|
||||
+r! /tmp/.X[0-9]*-lock
|
||||
diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in
|
||||
index 3405e28..c2dcae0 100644
|
||||
--- a/units/systemd-tmpfiles-setup.service.in
|
||||
+++ b/units/systemd-tmpfiles-setup.service.in
|
||||
@@ -6,7 +6,7 @@
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
-Description=Recreate Volatile Files and Directories
|
||||
+Description=Create Volatile Files and Directories
|
||||
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
|
||||
DefaultDependencies=no
|
||||
Wants=local-fs.target
|
||||
@@ -18,8 +18,10 @@ ConditionDirectoryNotEmpty=|/lib/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/etc/tmpfiles.d
|
||||
ConditionDirectoryNotEmpty=|/run/tmpfiles.d
|
||||
+RefuseManualStart=yes
|
||||
+RefuseManualStop=yes
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
-ExecStart=@rootbindir@/systemd-tmpfiles --create --remove --exclude-prefix=/dev
|
||||
+ExecStart=@rootbindir@/systemd-tmpfiles --create --remove --unsafe --exclude-prefix=/dev
|
|
@ -0,0 +1,43 @@
|
|||
From 5e86ba530ae6f7a4c9aec4069b0b8481003094c6 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Tue, 24 Dec 2013 16:42:06 -0500
|
||||
Subject: [PATCH] sleep-config: fix useless check for swapfile type
|
||||
|
||||
Since 0c6f1f4ea49 the check was useless, because the kernel will
|
||||
ever only write "partition" or "file" there.
|
||||
|
||||
OTOH, it is possible that "\\040(deleted)" (escaped " (deleted)")
|
||||
will be added for removed files. This should not happen, so add
|
||||
a warning to detect those cases.
|
||||
---
|
||||
src/shared/sleep-config.c | 10 +++-------
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
|
||||
index 2bb0493..d76e3ad 100644
|
||||
--- a/src/shared/sleep-config.c
|
||||
+++ b/src/shared/sleep-config.c
|
||||
@@ -183,7 +183,7 @@ static int hibernation_partition_size(size_t *size, size_t *used) {
|
||||
(void) fscanf(f, "%*s %*s %*s %*s %*s\n");
|
||||
|
||||
for (i = 1;; i++) {
|
||||
- _cleanup_free_ char *dev = NULL, *d = NULL, *type = NULL;
|
||||
+ _cleanup_free_ char *dev = NULL, *type = NULL;
|
||||
size_t size_field, used_field;
|
||||
int k;
|
||||
|
||||
@@ -202,12 +202,8 @@ static int hibernation_partition_size(size_t *size, size_t *used) {
|
||||
continue;
|
||||
}
|
||||
|
||||
- d = cunescape(dev);
|
||||
- if (!d)
|
||||
- return -ENOMEM;
|
||||
-
|
||||
- if (!streq(type, "partition") && !streq(type, "file")) {
|
||||
- log_debug("Partition %s has type %s, ignoring.", d, type);
|
||||
+ if (streq(type, "partition") && endswith(dev, "\\040(deleted)")) {
|
||||
+ log_warning("Ignoring deleted swapfile '%s'.", dev);
|
||||
continue;
|
||||
}
|
||||
|
|
@ -0,0 +1,178 @@
|
|||
From 2c3dd6140293fb09b4c78b5db2dbcad35ee7d002 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 26 Dec 2013 01:52:01 +0100
|
||||
Subject: [PATCH] journalctl: make sure -b --foobar cannot be misunderstood as
|
||||
--boot=--foobar
|
||||
|
||||
Conflicts:
|
||||
src/journal/journalctl.c
|
||||
src/systemd/sd-bus.h
|
||||
---
|
||||
src/journal/journalctl.c | 111 +++++++++++++++++++++++++----------------------
|
||||
1 file changed, 60 insertions(+), 51 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
||||
index 1d66792..ccd96b2 100644
|
||||
--- a/src/journal/journalctl.c
|
||||
+++ b/src/journal/journalctl.c
|
||||
@@ -72,7 +72,8 @@ static bool arg_no_tail = false;
|
||||
static bool arg_quiet = false;
|
||||
static bool arg_merge = false;
|
||||
static bool arg_boot = false;
|
||||
-static char *arg_boot_descriptor = NULL;
|
||||
+static sd_id128_t arg_boot_id = {};
|
||||
+static int arg_boot_offset = 0;
|
||||
static bool arg_dmesg = false;
|
||||
static const char *arg_cursor = NULL;
|
||||
static const char *arg_after_cursor = NULL;
|
||||
@@ -122,6 +123,41 @@ static void pager_open_if_enabled(void) {
|
||||
pager_open(arg_pager_end);
|
||||
}
|
||||
|
||||
+static int parse_boot_descriptor(const char *x, sd_id128_t *boot_id, int *offset) {
|
||||
+ sd_id128_t id = SD_ID128_NULL;
|
||||
+ int off = 0, r;
|
||||
+
|
||||
+ if (strlen(x) >= 32) {
|
||||
+ char *t;
|
||||
+
|
||||
+ t = strndupa(x, 32);
|
||||
+ r = sd_id128_from_string(t, &id);
|
||||
+ if (r >= 0)
|
||||
+ x += 32;
|
||||
+
|
||||
+ if (*x != '-' && *x != '+' && *x != 0)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ if (*x != 0) {
|
||||
+ r = safe_atoi(x, &off);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+ }
|
||||
+ } else {
|
||||
+ r = safe_atoi(x, &off);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+ }
|
||||
+
|
||||
+ if (boot_id)
|
||||
+ *boot_id = id;
|
||||
+
|
||||
+ if (offset)
|
||||
+ *offset = off;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int help(void) {
|
||||
|
||||
pager_open_if_enabled();
|
||||
@@ -365,16 +401,23 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
case 'b':
|
||||
arg_boot = true;
|
||||
|
||||
- if (optarg)
|
||||
- arg_boot_descriptor = optarg;
|
||||
- else if (optind < argc) {
|
||||
- int boot;
|
||||
+ if (optarg) {
|
||||
+ r = parse_boot_descriptor(optarg, &arg_boot_id, &arg_boot_offset);
|
||||
+ if (r < 0) {
|
||||
+ log_error("Failed to parse boot descriptor '%s'", optarg);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ } else {
|
||||
+
|
||||
+ /* Hmm, no argument? Maybe the next
|
||||
+ * word on the command line is
|
||||
+ * supposed to be the argument? Let's
|
||||
+ * see if there is one and is parsable
|
||||
+ * as a boot descriptor... */
|
||||
|
||||
- if (argv[optind][0] != '-' ||
|
||||
- safe_atoi(argv[optind], &boot) >= 0) {
|
||||
- arg_boot_descriptor = argv[optind];
|
||||
+ if (optind < argc &&
|
||||
+ parse_boot_descriptor(argv[optind], &arg_boot_id, &arg_boot_offset) >= 0)
|
||||
optind++;
|
||||
- }
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -809,9 +852,6 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative
|
||||
assert(j);
|
||||
assert(boot_id);
|
||||
|
||||
- if (relative == 0 && !sd_id128_equal(*boot_id, SD_ID128_NULL))
|
||||
- return 0;
|
||||
-
|
||||
r = sd_journal_query_unique(j, "_BOOT_ID");
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -878,58 +918,27 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative
|
||||
|
||||
static int add_boot(sd_journal *j) {
|
||||
char match[9+32+1] = "_BOOT_ID=";
|
||||
- char *offset;
|
||||
- sd_id128_t boot_id = SD_ID128_NULL;
|
||||
- int r, relative = 0;
|
||||
+ int r;
|
||||
|
||||
assert(j);
|
||||
|
||||
if (!arg_boot)
|
||||
return 0;
|
||||
|
||||
- if (!arg_boot_descriptor)
|
||||
+ if (arg_boot_offset == 0 && sd_id128_equal(arg_boot_id, SD_ID128_NULL))
|
||||
return add_match_this_boot(j);
|
||||
|
||||
- if (strlen(arg_boot_descriptor) >= 32) {
|
||||
- char tmp = arg_boot_descriptor[32];
|
||||
- arg_boot_descriptor[32] = '\0';
|
||||
- r = sd_id128_from_string(arg_boot_descriptor, &boot_id);
|
||||
- arg_boot_descriptor[32] = tmp;
|
||||
-
|
||||
- if (r < 0) {
|
||||
- log_error("Failed to parse boot ID '%.32s': %s",
|
||||
- arg_boot_descriptor, strerror(-r));
|
||||
- return r;
|
||||
- }
|
||||
-
|
||||
- offset = arg_boot_descriptor + 32;
|
||||
-
|
||||
- if (*offset && *offset != '-' && *offset != '+') {
|
||||
- log_error("Relative boot ID offset must start with a '+' or a '-', found '%s' ", offset);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
- } else
|
||||
- offset = arg_boot_descriptor;
|
||||
-
|
||||
- if (*offset) {
|
||||
- r = safe_atoi(offset, &relative);
|
||||
- if (r < 0) {
|
||||
- log_error("Failed to parse relative boot ID number '%s'", offset);
|
||||
- return -EINVAL;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- r = get_relative_boot_id(j, &boot_id, relative);
|
||||
+ r = get_relative_boot_id(j, &arg_boot_id, arg_boot_offset);
|
||||
if (r < 0) {
|
||||
- if (sd_id128_equal(boot_id, SD_ID128_NULL))
|
||||
- log_error("Failed to look up boot %+d: %s", relative, strerror(-r));
|
||||
+ if (sd_id128_equal(arg_boot_id, SD_ID128_NULL))
|
||||
+ log_error("Failed to look up boot %+i: %s", arg_boot_offset, strerror(-r));
|
||||
else
|
||||
- log_error("Failed to look up boot ID "SD_ID128_FORMAT_STR"%+d: %s",
|
||||
- SD_ID128_FORMAT_VAL(boot_id), relative, strerror(-r));
|
||||
+ log_error("Failed to look up boot ID "SD_ID128_FORMAT_STR"%+i: %s",
|
||||
+ SD_ID128_FORMAT_VAL(arg_boot_id), arg_boot_offset, strerror(-r));
|
||||
return r;
|
||||
}
|
||||
|
||||
- sd_id128_to_string(boot_id, match + 9);
|
||||
+ sd_id128_to_string(arg_boot_id, match + 9);
|
||||
|
||||
r = sd_journal_add_match(j, match, sizeof(match) - 1);
|
||||
if (r < 0) {
|
|
@ -0,0 +1,725 @@
|
|||
From 424e80301de3b39d8641a49a7755af6dc3d6b4e8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 26 Dec 2013 02:47:43 +0100
|
||||
Subject: [PATCH] man: resolve word omissions
|
||||
|
||||
This is a recurring submission and includes corrections to:
|
||||
word omissions and word class choice.
|
||||
|
||||
Conflicts:
|
||||
man/sd_bus_message_get_cookie.xml
|
||||
man/sd_bus_request_name.xml
|
||||
man/sd_watchdog_enabled.xml
|
||||
man/systemd-getty-generator.xml
|
||||
---
|
||||
man/binfmt.d.xml | 4 ++--
|
||||
man/journald.conf.xml | 2 +-
|
||||
man/loginctl.xml | 2 +-
|
||||
man/sd-daemon.xml | 2 +-
|
||||
man/sd-journal.xml | 2 +-
|
||||
man/sd-login.xml | 4 ++--
|
||||
man/sd_booted.xml | 2 +-
|
||||
man/sd_get_seats.xml | 8 ++++----
|
||||
man/sd_id128_get_machine.xml | 2 +-
|
||||
man/sd_id128_randomize.xml | 2 +-
|
||||
man/sd_id128_to_string.xml | 2 +-
|
||||
man/sd_is_fifo.xml | 2 +-
|
||||
man/sd_journal_add_match.xml | 2 +-
|
||||
man/sd_journal_get_catalog.xml | 2 +-
|
||||
man/sd_journal_get_cursor.xml | 2 +-
|
||||
man/sd_journal_get_cutoff_realtime_usec.xml | 2 +-
|
||||
man/sd_journal_get_data.xml | 2 +-
|
||||
man/sd_journal_get_fd.xml | 2 +-
|
||||
man/sd_journal_get_realtime_usec.xml | 2 +-
|
||||
man/sd_journal_get_usage.xml | 2 +-
|
||||
man/sd_journal_next.xml | 6 +++---
|
||||
man/sd_journal_print.xml | 2 +-
|
||||
man/sd_journal_query_unique.xml | 2 +-
|
||||
man/sd_journal_seek_head.xml | 4 ++--
|
||||
man/sd_journal_stream_fd.xml | 2 +-
|
||||
man/sd_listen_fds.xml | 4 ++--
|
||||
man/sd_login_monitor_new.xml | 2 +-
|
||||
man/sd_notify.xml | 4 ++--
|
||||
man/sd_pid_get_session.xml | 2 +-
|
||||
man/sd_seat_get_active.xml | 2 +-
|
||||
man/sd_session_is_active.xml | 2 +-
|
||||
man/sd_uid_get_state.xml | 4 ++--
|
||||
man/sysctl.d.xml | 4 ++--
|
||||
man/systemctl.xml | 4 ++--
|
||||
man/systemd-getty-generator.xml | 8 ++++----
|
||||
man/systemd-halt.service.xml | 2 +-
|
||||
man/systemd-machine-id-setup.xml | 2 +-
|
||||
man/systemd.preset.xml | 4 ++--
|
||||
man/systemd.service.xml | 2 +-
|
||||
man/systemd.socket.xml | 4 ++--
|
||||
man/systemd.unit.xml | 4 ++--
|
||||
man/tmpfiles.d.xml | 4 ++--
|
||||
42 files changed, 62 insertions(+), 62 deletions(-)
|
||||
|
||||
diff --git a/man/binfmt.d.xml b/man/binfmt.d.xml
|
||||
index 94f97e0..6f8668b 100644
|
||||
--- a/man/binfmt.d.xml
|
||||
+++ b/man/binfmt.d.xml
|
||||
@@ -88,8 +88,8 @@
|
||||
administrator, who may use this logic to override the
|
||||
configuration files installed from vendor
|
||||
packages. All files are sorted by their filename in
|
||||
- lexicographic order, regardless in which of the
|
||||
- directories they reside. If multiple files specify
|
||||
+ lexicographic order, regardless of which of the
|
||||
+ directories they reside in. If multiple files specify
|
||||
the same binary type name, the entry in the file with
|
||||
the lexicographically latest name will be applied.</para>
|
||||
|
||||
diff --git a/man/journald.conf.xml b/man/journald.conf.xml
|
||||
index 8e642a3..b362c5d 100644
|
||||
--- a/man/journald.conf.xml
|
||||
+++ b/man/journald.conf.xml
|
||||
@@ -155,7 +155,7 @@
|
||||
into the system journal. If
|
||||
<literal>uid</literal>, any user ID
|
||||
will get his own journal files
|
||||
- regardless whether it belongs to a
|
||||
+ regardless of whether it belongs to a
|
||||
system service or refers to a real
|
||||
logged in user. If
|
||||
<literal>none</literal>, journal files
|
||||
diff --git a/man/loginctl.xml b/man/loginctl.xml
|
||||
index 1b54ff7..133d6cf 100644
|
||||
--- a/man/loginctl.xml
|
||||
+++ b/man/loginctl.xml
|
||||
@@ -109,7 +109,7 @@
|
||||
|
||||
<listitem><para>When showing
|
||||
session/user/seat properties, show all
|
||||
- properties regardless whether they are
|
||||
+ properties regardless of whether they are
|
||||
set or not.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
diff --git a/man/sd-daemon.xml b/man/sd-daemon.xml
|
||||
index 6e804e1..84c1afa 100644
|
||||
--- a/man/sd-daemon.xml
|
||||
+++ b/man/sd-daemon.xml
|
||||
@@ -144,7 +144,7 @@
|
||||
<para>These APIs are implemented in the reference
|
||||
implementation's <filename>sd-daemon.c</filename> and
|
||||
<filename>sd-daemon.h</filename> files. These
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
diff --git a/man/sd-journal.xml b/man/sd-journal.xml
|
||||
index 6d39611..832d584 100644
|
||||
--- a/man/sd-journal.xml
|
||||
+++ b/man/sd-journal.xml
|
||||
@@ -98,7 +98,7 @@
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
- <para>These APIs are implemented as shared library,
|
||||
+ <para>These APIs are implemented as a shared library,
|
||||
which can be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd-login.xml b/man/sd-login.xml
|
||||
index 251b35b..1d47b29 100644
|
||||
--- a/man/sd-login.xml
|
||||
+++ b/man/sd-login.xml
|
||||
@@ -99,7 +99,7 @@
|
||||
caller with the libc
|
||||
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
call after use, including the strings referenced
|
||||
- therein. Similar, individual strings returned need to
|
||||
+ therein. Similarly, individual strings returned need to
|
||||
be freed, as well.</para>
|
||||
|
||||
<para>As a special exception, instead of an empty
|
||||
@@ -120,7 +120,7 @@
|
||||
<refsect1>
|
||||
<title>Notes</title>
|
||||
|
||||
- <para>These APIs are implemented as shared library,
|
||||
+ <para>These APIs are implemented as a shared library,
|
||||
which can be compiled and linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_booted.xml b/man/sd_booted.xml
|
||||
index 64c0cd9..6f8cc95 100644
|
||||
--- a/man/sd_booted.xml
|
||||
+++ b/man/sd_booted.xml
|
||||
@@ -100,7 +100,7 @@
|
||||
in the reference implementation's
|
||||
<filename>sd-daemon.c</filename> and
|
||||
<filename>sd-daemon.h</filename> files. These
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
diff --git a/man/sd_get_seats.xml b/man/sd_get_seats.xml
|
||||
index 8254b7c..1e55af3 100644
|
||||
--- a/man/sd_get_seats.xml
|
||||
+++ b/man/sd_get_seats.xml
|
||||
@@ -90,13 +90,13 @@
|
||||
<constant>NULL</constant> may be returned and should be considered
|
||||
equivalent to an empty array.</para>
|
||||
|
||||
- <para>Similar, <function>sd_get_sessions()</function> may
|
||||
+ <para>Similarly, <function>sd_get_sessions()</function> may
|
||||
be used to determine all current login sessions.</para>
|
||||
|
||||
- <para>Similar, <function>sd_get_uids()</function> may
|
||||
+ <para>Similarly, <function>sd_get_uids()</function> may
|
||||
be used to determine all Unix users who currently have login sessions.</para>
|
||||
|
||||
- <para>Similar,
|
||||
+ <para>Similarly,
|
||||
<function>sd_get_machine_names()</function> may be
|
||||
used to determine all current virtual machines and
|
||||
containers on the system.</para>
|
||||
@@ -122,7 +122,7 @@
|
||||
<function>sd_get_sessions()</function>,
|
||||
<function>sd_get_uids()</function> and
|
||||
<function>sd_get_machine_names()</function> interfaces
|
||||
- are available as shared library, which can be compiled
|
||||
+ are available as a shared library, which can be compiled
|
||||
and linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_id128_get_machine.xml b/man/sd_id128_get_machine.xml
|
||||
index 6bee7ad..084fda2 100644
|
||||
--- a/man/sd_id128_get_machine.xml
|
||||
+++ b/man/sd_id128_get_machine.xml
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
<para>The <function>sd_id128_get_machine()</function>
|
||||
and <function>sd_id128_get_boot()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<literal>libsystemd-id128</literal> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_id128_randomize.xml b/man/sd_id128_randomize.xml
|
||||
index 0b95803..100de16 100644
|
||||
--- a/man/sd_id128_randomize.xml
|
||||
+++ b/man/sd_id128_randomize.xml
|
||||
@@ -95,7 +95,7 @@
|
||||
<title>Notes</title>
|
||||
|
||||
<para>The <function>sd_id128_randomize()</function> interface
|
||||
- is available as shared library, which can be compiled
|
||||
+ is available as a shared library, which can be compiled
|
||||
and linked to with the
|
||||
<literal>libsystemd-id128</literal> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_id128_to_string.xml b/man/sd_id128_to_string.xml
|
||||
index 71cf82a..eae2915 100644
|
||||
--- a/man/sd_id128_to_string.xml
|
||||
+++ b/man/sd_id128_to_string.xml
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
<para>The <function>sd_id128_to_string()</function>
|
||||
and <function>sd_id128_from_string()</function> interfaces are
|
||||
- available as shared library, which can be compiled and
|
||||
+ available as a shared library, which can be compiled and
|
||||
linked to with the <literal>libsystemd-id128</literal> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
</refsect1>
|
||||
diff --git a/man/sd_is_fifo.xml b/man/sd_is_fifo.xml
|
||||
index 4d9cd79..5e79453 100644
|
||||
--- a/man/sd_is_fifo.xml
|
||||
+++ b/man/sd_is_fifo.xml
|
||||
@@ -208,7 +208,7 @@
|
||||
related functions are implemented in the reference
|
||||
implementation's <filename>sd-daemon.c</filename> and
|
||||
<filename>sd-daemon.h</filename> files. These
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
diff --git a/man/sd_journal_add_match.xml b/man/sd_journal_add_match.xml
|
||||
index b6c7b06..6568234 100644
|
||||
--- a/man/sd_journal_add_match.xml
|
||||
+++ b/man/sd_journal_add_match.xml
|
||||
@@ -174,7 +174,7 @@
|
||||
<function>sd_journal_add_disjunction()</function>,
|
||||
<function>sd_journal_add_conjunction()</function> and
|
||||
<function>sd_journal_flush_matches()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_catalog.xml b/man/sd_journal_get_catalog.xml
|
||||
index 4a7e0a1..ecd329f 100644
|
||||
--- a/man/sd_journal_get_catalog.xml
|
||||
+++ b/man/sd_journal_get_catalog.xml
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
<para>The <function>sd_journal_get_catalog()</function> and
|
||||
<function>sd_journal_get_catalog_for_message_id()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_cursor.xml b/man/sd_journal_get_cursor.xml
|
||||
index 4cee7d5..046c154 100644
|
||||
--- a/man/sd_journal_get_cursor.xml
|
||||
+++ b/man/sd_journal_get_cursor.xml
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
<para>The <function>sd_journal_get_cursor()</function>
|
||||
and <function>sd_journal_test_cursor()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_cutoff_realtime_usec.xml b/man/sd_journal_get_cutoff_realtime_usec.xml
|
||||
index 9bf8220..287c1c5 100644
|
||||
--- a/man/sd_journal_get_cutoff_realtime_usec.xml
|
||||
+++ b/man/sd_journal_get_cutoff_realtime_usec.xml
|
||||
@@ -122,7 +122,7 @@
|
||||
<function>sd_journal_get_cutoff_realtime_usec()</function>
|
||||
and
|
||||
<function>sd_journal_get_cutoff_monotonic_usec()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_data.xml b/man/sd_journal_get_data.xml
|
||||
index 0e1111e..6ed52b5 100644
|
||||
--- a/man/sd_journal_get_data.xml
|
||||
+++ b/man/sd_journal_get_data.xml
|
||||
@@ -203,7 +203,7 @@
|
||||
<function>sd_journal_set_data_threshold()</function>
|
||||
and
|
||||
<function>sd_journal_get_data_threshold()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_fd.xml b/man/sd_journal_get_fd.xml
|
||||
index 764f716..4b36f97 100644
|
||||
--- a/man/sd_journal_get_fd.xml
|
||||
+++ b/man/sd_journal_get_fd.xml
|
||||
@@ -253,7 +253,7 @@ else {
|
||||
<function>sd_journal_reliable_fd()</function>,
|
||||
<function>sd_journal_process()</function> and
|
||||
<function>sd_journal_wait()</function> interfaces are
|
||||
- available as shared library, which can be compiled and
|
||||
+ available as a shared library, which can be compiled and
|
||||
linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_realtime_usec.xml b/man/sd_journal_get_realtime_usec.xml
|
||||
index 8870c29..bf1aa50 100644
|
||||
--- a/man/sd_journal_get_realtime_usec.xml
|
||||
+++ b/man/sd_journal_get_realtime_usec.xml
|
||||
@@ -122,7 +122,7 @@
|
||||
<function>sd_journal_get_realtime_usec()</function>
|
||||
and
|
||||
<function>sd_journal_get_monotonic_usec()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_get_usage.xml b/man/sd_journal_get_usage.xml
|
||||
index 180d8b2..08d8640 100644
|
||||
--- a/man/sd_journal_get_usage.xml
|
||||
+++ b/man/sd_journal_get_usage.xml
|
||||
@@ -84,7 +84,7 @@
|
||||
<title>Notes</title>
|
||||
|
||||
<para>The <function>sd_journal_get_usage()</function>
|
||||
- interface is available as shared library, which can be
|
||||
+ interface is available as a shared library, which can be
|
||||
compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_next.xml b/man/sd_journal_next.xml
|
||||
index 6e437d1..1409b0d 100644
|
||||
--- a/man/sd_journal_next.xml
|
||||
+++ b/man/sd_journal_next.xml
|
||||
@@ -102,7 +102,7 @@
|
||||
functions such as
|
||||
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
|
||||
- <para>Similar, <function>sd_journal_previous()</function> sets
|
||||
+ <para>Similarly, <function>sd_journal_previous()</function> sets
|
||||
the read pointer back one entry.</para>
|
||||
|
||||
<para><function>sd_journal_next_skip()</function> and
|
||||
@@ -129,7 +129,7 @@
|
||||
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and <function>sd_journal_next()</function> in order to
|
||||
make iterating through the journal easier. See below
|
||||
- for an example. Similar,
|
||||
+ for an example. Similarly,
|
||||
<function>SD_JOURNAL_FOREACH_BACKWARDS()</function>
|
||||
may be used for iterating the journal in reverse
|
||||
order.</para>
|
||||
@@ -156,7 +156,7 @@
|
||||
<para>The <function>sd_journal_next()</function>, <function>sd_journal_previous()</function>,
|
||||
<function>sd_journal_next_skip()</function> and
|
||||
<function>sd_journal_previous_skip()</function> interfaces are
|
||||
- available as shared library, which can be compiled and
|
||||
+ available as a shared library, which can be compiled and
|
||||
linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_print.xml b/man/sd_journal_print.xml
|
||||
index e61a648..a716cc3 100644
|
||||
--- a/man/sd_journal_print.xml
|
||||
+++ b/man/sd_journal_print.xml
|
||||
@@ -227,7 +227,7 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
|
||||
<function>sd_journal_printv()</function>,
|
||||
<function>sd_journal_send()</function> and
|
||||
<function>sd_journal_sendv()</function> interfaces
|
||||
- are available as shared library, which can be compiled
|
||||
+ are available as a shared library, which can be compiled
|
||||
and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_query_unique.xml b/man/sd_journal_query_unique.xml
|
||||
index f5d9d2b..f0b9204 100644
|
||||
--- a/man/sd_journal_query_unique.xml
|
||||
+++ b/man/sd_journal_query_unique.xml
|
||||
@@ -156,7 +156,7 @@
|
||||
<para>The <function>sd_journal_query_unique()</function>,
|
||||
<function>sd_journal_enumerate_unique()</function> and
|
||||
<function>sd_journal_restart_unique()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_seek_head.xml b/man/sd_journal_seek_head.xml
|
||||
index 03de30a..939f0b1 100644
|
||||
--- a/man/sd_journal_seek_head.xml
|
||||
+++ b/man/sd_journal_seek_head.xml
|
||||
@@ -94,7 +94,7 @@
|
||||
seeks to the beginning of the journal, i.e. the oldest
|
||||
available entry.</para>
|
||||
|
||||
- <para>Similar,
|
||||
+ <para>Similarly,
|
||||
<function>sd_journal_seek_tail()</function> may be
|
||||
used to seek to the end of the journal, i.e. the most
|
||||
recent available entry.</para>
|
||||
@@ -156,7 +156,7 @@
|
||||
<function>sd_journal_seek_monotonic_usec()</function>,
|
||||
<function>sd_journal_seek_realtime_usec()</function>,
|
||||
and <function>sd_journal_seek_cursor()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_journal_stream_fd.xml b/man/sd_journal_stream_fd.xml
|
||||
index 4bd0abc..a8dc8fd 100644
|
||||
--- a/man/sd_journal_stream_fd.xml
|
||||
+++ b/man/sd_journal_stream_fd.xml
|
||||
@@ -112,7 +112,7 @@
|
||||
<title>Notes</title>
|
||||
|
||||
<para>The <function>sd_journal_stream_fd()</function>
|
||||
- interface is available as shared library, which can
|
||||
+ interface is available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-journal</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_listen_fds.xml b/man/sd_listen_fds.xml
|
||||
index 240300d..aaabdbf 100644
|
||||
--- a/man/sd_listen_fds.xml
|
||||
+++ b/man/sd_listen_fds.xml
|
||||
@@ -73,7 +73,7 @@
|
||||
parameter is non-zero,
|
||||
<function>sd_listen_fds()</function> will unset the
|
||||
<varname>$LISTEN_FDS</varname>/<varname>$LISTEN_PID</varname>
|
||||
- environment variables before returning (regardless
|
||||
+ environment variables before returning (regardless of
|
||||
whether the function call itself succeeded or
|
||||
not). Further calls to
|
||||
<function>sd_listen_fds()</function> will then fail,
|
||||
@@ -149,7 +149,7 @@
|
||||
implemented in the reference implementation's
|
||||
<filename>sd-daemon.c</filename> and
|
||||
<filename>sd-daemon.h</filename> files. These
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
diff --git a/man/sd_login_monitor_new.xml b/man/sd_login_monitor_new.xml
|
||||
index 909a3d9..f439d3e 100644
|
||||
--- a/man/sd_login_monitor_new.xml
|
||||
+++ b/man/sd_login_monitor_new.xml
|
||||
@@ -224,7 +224,7 @@ else {
|
||||
<function>sd_login_monitor_get_fd()</function>,
|
||||
<function>sd_login_monitor_get_events()</function> and
|
||||
<function>sd_login_monitor_get_timeout()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_notify.xml b/man/sd_notify.xml
|
||||
index 55965ff..e078140 100644
|
||||
--- a/man/sd_notify.xml
|
||||
+++ b/man/sd_notify.xml
|
||||
@@ -79,7 +79,7 @@
|
||||
<para>If the <parameter>unset_environment</parameter>
|
||||
parameter is non-zero, <function>sd_notify()</function>
|
||||
will unset the <varname>$NOTIFY_SOCKET</varname>
|
||||
- environment variable before returning (regardless
|
||||
+ environment variable before returning (regardless of
|
||||
whether the function call itself succeeded or
|
||||
not). Further calls to
|
||||
<function>sd_notify()</function> will then fail, but
|
||||
@@ -236,7 +236,7 @@
|
||||
the reference implementation's
|
||||
<filename>sd-daemon.c</filename> and
|
||||
<filename>sd-daemon.h</filename> files. These
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml
|
||||
index e5c7709..ff5905b 100644
|
||||
--- a/man/sd_pid_get_session.xml
|
||||
+++ b/man/sd_pid_get_session.xml
|
||||
@@ -186,7 +186,7 @@
|
||||
<function>sd_pid_get_owner_uid()</function>,
|
||||
<function>sd_pid_get_machine_name()</function> and
|
||||
<function>sd_pid_get_slice()</function> interfaces are
|
||||
- available as shared library, which can be compiled and
|
||||
+ available as a shared library, which can be compiled and
|
||||
linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_seat_get_active.xml b/man/sd_seat_get_active.xml
|
||||
index cd87696..23d582d 100644
|
||||
--- a/man/sd_seat_get_active.xml
|
||||
+++ b/man/sd_seat_get_active.xml
|
||||
@@ -164,7 +164,7 @@
|
||||
<function>sd_seat_can_multi_session()</function>,
|
||||
<function>sd_seat_can_tty()</function> and
|
||||
<function>sd_seat_can_grapical()</function> interfaces
|
||||
- are available as shared library, which can be compiled
|
||||
+ are available as a shared library, which can be compiled
|
||||
and linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_session_is_active.xml b/man/sd_session_is_active.xml
|
||||
index 293ce71..06891f7 100644
|
||||
--- a/man/sd_session_is_active.xml
|
||||
+++ b/man/sd_session_is_active.xml
|
||||
@@ -252,7 +252,7 @@
|
||||
<function>sd_session_get_class()</function>,
|
||||
<function>sd_session_get_display()</function> and
|
||||
<function>sd_session_get_tty()</function>
|
||||
- interfaces are available as shared library, which can
|
||||
+ interfaces are available as a shared library, which can
|
||||
be compiled and linked to with the
|
||||
<constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
diff --git a/man/sd_uid_get_state.xml b/man/sd_uid_get_state.xml
|
||||
index d4d23f4..0faa765 100644
|
||||
--- a/man/sd_uid_get_state.xml
|
||||
+++ b/man/sd_uid_get_state.xml
|
||||
@@ -139,7 +139,7 @@
|
||||
be returned and should be considered equivalent to an
|
||||
empty array.</para>
|
||||
|
||||
- <para>Similar, <function>sd_uid_get_seats()</function>
|
||||
+ <para>Similarly, <function>sd_uid_get_seats()</function>
|
||||
may be used to determine the list of seats on which
|
||||
the user currently has sessions. Similar semantics
|
||||
apply, however note that the user may have
|
||||
@@ -171,7 +171,7 @@
|
||||
<function>sd_uid_is_on_seat()</function>,
|
||||
<function>sd_uid_get_sessions()</function>, and
|
||||
<function>sd_uid_get_seats()</function> interfaces are
|
||||
- available as shared library, which can be compiled and
|
||||
+ available as a shared library, which can be compiled and
|
||||
linked to with the <constant>libsystemd-login</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file.</para>
|
||||
</refsect1>
|
||||
diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml
|
||||
index 854864c..5544283 100644
|
||||
--- a/man/sysctl.d.xml
|
||||
+++ b/man/sysctl.d.xml
|
||||
@@ -89,8 +89,8 @@
|
||||
administrator, who may use this logic to override the
|
||||
configuration files installed by vendor packages. All
|
||||
configuration files are sorted by their filename in
|
||||
- lexicographic order, regardless in which of the
|
||||
- directories they reside. If multiple files specify the
|
||||
+ lexicographic order, regardless of which of the
|
||||
+ directories they reside in. If multiple files specify the
|
||||
same variable name, the entry in the file with the
|
||||
lexicographically latest name will be applied. It is
|
||||
recommended to prefix all filenames with a two-digit
|
||||
diff --git a/man/systemctl.xml b/man/systemctl.xml
|
||||
index b4bc15d..61deb19 100644
|
||||
--- a/man/systemctl.xml
|
||||
+++ b/man/systemctl.xml
|
||||
@@ -250,7 +250,7 @@ systemctl start foo
|
||||
sleep state. Any user may take these locks and privileged
|
||||
users may override these locks. If any locks are taken,
|
||||
shutdown and sleep state requests will normally fail
|
||||
- (regardless if privileged or not) and a list of active locks
|
||||
+ (regardless of whether privileged or not) and a list of active locks
|
||||
is printed. However, if <option>--ignore-inhibitors</option>
|
||||
is specified, the locks are ignored and not printed, and the
|
||||
operation attempted anyway, possibly requiring additional
|
||||
@@ -445,7 +445,7 @@ systemctl start foo
|
||||
with identical immediate effects, however, since the latter
|
||||
is lost on reboot, the changes are lost too.</para>
|
||||
|
||||
- <para>Similar, when used with
|
||||
+ <para>Similarly, when used with
|
||||
<command>set-property</command>, make changes only
|
||||
temporarily, so that they are lost on the next
|
||||
reboot.</para>
|
||||
diff --git a/man/systemd-getty-generator.xml b/man/systemd-getty-generator.xml
|
||||
index da88e72..b1993ae 100644
|
||||
--- a/man/systemd-getty-generator.xml
|
||||
+++ b/man/systemd-getty-generator.xml
|
||||
@@ -61,10 +61,10 @@
|
||||
subsystem. It will also instantiate
|
||||
<filename>serial-getty@.service</filename> instances
|
||||
for virtualizer consoles, if execution in a
|
||||
- virtualized environment is detected. This should
|
||||
- ensure that the user is shown a login prompt at the
|
||||
- right place, regardless in which environment the
|
||||
- system is started. For example, it is sufficient to
|
||||
+ virtualized environment is detected. This
|
||||
+ should ensure that the user is shown a login prompt at
|
||||
+ the right place, regardless of which environment the
|
||||
+ system is started in. For example, it is sufficient to
|
||||
redirect the kernel console with a kernel command line
|
||||
argument such as <varname>console=</varname> to get
|
||||
both kernel messages and a getty prompt on a serial
|
||||
diff --git a/man/systemd-halt.service.xml b/man/systemd-halt.service.xml
|
||||
index 90b443f..99457aa 100644
|
||||
--- a/man/systemd-halt.service.xml
|
||||
+++ b/man/systemd-halt.service.xml
|
||||
@@ -65,7 +65,7 @@
|
||||
<para><filename>systemd-halt.service</filename> is a
|
||||
system service that is pulled in by
|
||||
<filename>halt.target</filename> and is responsible
|
||||
- for the actual system halt. Similar,
|
||||
+ for the actual system halt. Similarly,
|
||||
<filename>systemd-poweroff.service</filename> is
|
||||
pulled in by <filename>poweroff.target</filename>,
|
||||
<filename>systemd-reboot.service</filename> by
|
||||
diff --git a/man/systemd-machine-id-setup.xml b/man/systemd-machine-id-setup.xml
|
||||
index fef76bc..bc38d55 100644
|
||||
--- a/man/systemd-machine-id-setup.xml
|
||||
+++ b/man/systemd-machine-id-setup.xml
|
||||
@@ -80,7 +80,7 @@
|
||||
UUID passed is sufficiently unique and is different
|
||||
for every booted instanced of the VM.</para>
|
||||
|
||||
- <para>Similar, if run inside a Linux container
|
||||
+ <para>Similarly, if run inside a Linux container
|
||||
environment and a UUID is set for the container this
|
||||
is used to initialize the machine ID. For details see
|
||||
the documentation of the <ulink
|
||||
diff --git a/man/systemd.preset.xml b/man/systemd.preset.xml
|
||||
index 16db8cd..55cb4de 100644
|
||||
--- a/man/systemd.preset.xml
|
||||
+++ b/man/systemd.preset.xml
|
||||
@@ -126,8 +126,8 @@
|
||||
administrator, who may use this logic to override the
|
||||
preset files installed by vendor packages. All preset
|
||||
files are sorted by their filename in lexicographic
|
||||
- order, regardless in which of the directories they
|
||||
- reside. If multiple files specify the same unit name,
|
||||
+ order, regardless of which of the directories they
|
||||
+ reside in. If multiple files specify the same unit name,
|
||||
the entry in the file with the lexicographically earliest
|
||||
name will be applied. It is recommended to prefix all
|
||||
filenames with a two-digit number and a dash, to simplify
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 8f9137c..80a935d 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -712,7 +712,7 @@ ExecStart=/bin/echo $ONE $TWO ${TWO}
|
||||
timeout for the service expires.
|
||||
If set to
|
||||
<option>always</option>, the service
|
||||
- will be restarted regardless whether
|
||||
+ will be restarted regardless of whether
|
||||
it exited cleanly or not, got
|
||||
terminated abnormally by a signal or
|
||||
hit a timeout.</para>
|
||||
diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml
|
||||
index 1c78562..ac3127d 100644
|
||||
--- a/man/systemd.socket.xml
|
||||
+++ b/man/systemd.socket.xml
|
||||
@@ -213,7 +213,7 @@
|
||||
traffic on any of the sockets will
|
||||
trigger service activation, and all
|
||||
listed sockets will be passed to the
|
||||
- service, regardless whether there is
|
||||
+ service, regardless of whether there is
|
||||
incoming traffic on them or not. If
|
||||
the empty string is assigned to any of
|
||||
these options, the list of addresses
|
||||
@@ -225,7 +225,7 @@
|
||||
it is often desirable to listen on it
|
||||
before the interface it is configured
|
||||
on is up and running, and even
|
||||
- regardless whether it will be up and
|
||||
+ regardless of whether it will be up and
|
||||
running ever at all. To deal with this
|
||||
it is recommended to set the
|
||||
<varname>FreeBind=</varname> option
|
||||
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
|
||||
index 77127ff..b70c5e9 100644
|
||||
--- a/man/systemd.unit.xml
|
||||
+++ b/man/systemd.unit.xml
|
||||
@@ -634,7 +634,7 @@
|
||||
dependency on another unit is shut
|
||||
down while the latter is started up,
|
||||
the shut down is ordered before the
|
||||
- start-up regardless whether the
|
||||
+ start-up regardless of whether the
|
||||
ordering dependency is actually of
|
||||
type <varname>After=</varname> or
|
||||
<varname>Before=</varname>. If two
|
||||
@@ -938,7 +938,7 @@
|
||||
exists, is a regular file and marked
|
||||
executable.</para>
|
||||
|
||||
- <para>Similar,
|
||||
+ <para>Similarly,
|
||||
<varname>ConditionKernelCommandLine=</varname>
|
||||
may be used to check whether a
|
||||
specific kernel command line option is
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index 39aa68d..ed88751 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -88,8 +88,8 @@
|
||||
the local administrator, who may use this logic to
|
||||
override the configuration files installed by vendor
|
||||
packages. All configuration files are sorted by their
|
||||
- filename in lexicographic order, regardless in which
|
||||
- of the directories they reside. If multiple files
|
||||
+ filename in lexicographic order, regardless of which
|
||||
+ of the directories they reside in. If multiple files
|
||||
specify the same path, the entry in the file with the
|
||||
lexicographically earliest name will be applied, all
|
||||
all other conflicting entries logged as errors.</para>
|
|
@ -0,0 +1,507 @@
|
|||
From 4a1155c88d295e81037fd8a48b585a00fbf43cbc Mon Sep 17 00:00:00 2001
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 26 Dec 2013 02:47:44 +0100
|
||||
Subject: [PATCH] man: improvements to comma placement
|
||||
|
||||
This is a recurring submission and includes corrections to:
|
||||
comma placement.
|
||||
|
||||
Conflicts:
|
||||
man/sd_bus_message_get_cookie.xml
|
||||
man/sd_bus_request_name.xml
|
||||
man/sd_session_is_active.xml
|
||||
man/sd_watchdog_enabled.xml
|
||||
man/systemctl.xml
|
||||
man/systemd.exec.xml
|
||||
man/systemd.timer.xml
|
||||
man/systemd.unit.xml
|
||||
---
|
||||
man/halt.xml | 2 +-
|
||||
man/hostnamectl.xml | 2 +-
|
||||
man/sd-daemon.xml | 4 ++--
|
||||
man/sd-readahead.xml | 2 +-
|
||||
man/sd_booted.xml | 2 +-
|
||||
man/sd_get_seats.xml | 2 +-
|
||||
man/sd_is_fifo.xml | 2 +-
|
||||
man/sd_listen_fds.xml | 2 +-
|
||||
man/sd_login_monitor_new.xml | 6 +++---
|
||||
man/sd_notify.xml | 2 +-
|
||||
man/sd_readahead.xml | 2 +-
|
||||
man/sd_seat_get_active.xml | 4 ++--
|
||||
man/sd_uid_get_state.xml | 4 ++--
|
||||
man/shutdown.xml | 2 +-
|
||||
man/systemd-analyze.xml | 2 +-
|
||||
man/systemd-ask-password.xml | 2 +-
|
||||
man/systemd-cat.xml | 2 +-
|
||||
man/systemd-cgls.xml | 2 +-
|
||||
man/systemd-cgtop.xml | 2 +-
|
||||
man/systemd-coredumpctl.xml | 2 +-
|
||||
man/systemd-delta.xml | 2 +-
|
||||
man/systemd-machine-id-setup.xml | 2 +-
|
||||
man/systemd-notify.xml | 2 +-
|
||||
man/systemd-tmpfiles.xml | 2 +-
|
||||
man/systemd-tty-ask-password-agent.xml | 2 +-
|
||||
man/systemd.device.xml | 2 +-
|
||||
man/systemd.mount.xml | 2 +-
|
||||
man/systemd.service.xml | 2 +-
|
||||
man/systemd.special.xml | 2 +-
|
||||
man/systemd.swap.xml | 2 +-
|
||||
man/systemd.xml | 2 +-
|
||||
man/telinit.xml | 2 +-
|
||||
man/timedatectl.xml | 2 +-
|
||||
33 files changed, 38 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/man/halt.xml b/man/halt.xml
|
||||
index 2a13d3c..f54a864 100644
|
||||
--- a/man/halt.xml
|
||||
+++ b/man/halt.xml
|
||||
@@ -148,7 +148,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml
|
||||
index b39fb55..a0776f5 100644
|
||||
--- a/man/hostnamectl.xml
|
||||
+++ b/man/hostnamectl.xml
|
||||
@@ -255,7 +255,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/sd-daemon.xml b/man/sd-daemon.xml
|
||||
index 84c1afa..b48eac9 100644
|
||||
--- a/man/sd-daemon.xml
|
||||
+++ b/man/sd-daemon.xml
|
||||
@@ -83,7 +83,7 @@
|
||||
<citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
for more information about the functions
|
||||
- implemented. In addition to these functions a couple
|
||||
+ implemented. In addition to these functions, a couple
|
||||
of logging prefixes are defined as macros:</para>
|
||||
|
||||
<programlisting>#define SD_EMERG "<0>" /* system is unusable */
|
||||
@@ -135,7 +135,7 @@
|
||||
implementation. See the respective function man pages
|
||||
for details.</para>
|
||||
|
||||
- <para>In addition, for details about the algorithms
|
||||
+ <para>In addition, for details about the algorithms,
|
||||
check the liberally licensed reference implementation
|
||||
sources:
|
||||
<ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
|
||||
diff --git a/man/sd-readahead.xml b/man/sd-readahead.xml
|
||||
index f8a0a0b..bcc46b2 100644
|
||||
--- a/man/sd-readahead.xml
|
||||
+++ b/man/sd-readahead.xml
|
||||
@@ -83,7 +83,7 @@
|
||||
reference implementation. See the respective function
|
||||
man pages for details.</para>
|
||||
|
||||
- <para>In addition, for details about the algorithms
|
||||
+ <para>In addition, for details about the algorithms,
|
||||
check the liberally licensed reference implementation
|
||||
sources:
|
||||
<ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/readahead/sd-readahead.c"/>
|
||||
diff --git a/man/sd_booted.xml b/man/sd_booted.xml
|
||||
index 6f8cc95..1e38d2a 100644
|
||||
--- a/man/sd_booted.xml
|
||||
+++ b/man/sd_booted.xml
|
||||
@@ -106,7 +106,7 @@
|
||||
file. Alternatively, applications consuming these APIs
|
||||
may copy the implementation into their source
|
||||
tree. For more details about the reference
|
||||
- implementation see
|
||||
+ implementation, see
|
||||
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>If the reference implementation is used as
|
||||
diff --git a/man/sd_get_seats.xml b/man/sd_get_seats.xml
|
||||
index 1e55af3..f0e7655 100644
|
||||
--- a/man/sd_get_seats.xml
|
||||
+++ b/man/sd_get_seats.xml
|
||||
@@ -107,7 +107,7 @@
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
- <para>On success <function>sd_get_seats()</function>,
|
||||
+ <para>On success, <function>sd_get_seats()</function>,
|
||||
<function>sd_get_sessions()</function>,
|
||||
<function>sd_get_uids()</function> and
|
||||
<function>sd_get_machine_names()</function> return the
|
||||
diff --git a/man/sd_is_fifo.xml b/man/sd_is_fifo.xml
|
||||
index 5e79453..4bb2236 100644
|
||||
--- a/man/sd_is_fifo.xml
|
||||
+++ b/man/sd_is_fifo.xml
|
||||
@@ -214,7 +214,7 @@
|
||||
file. Alternatively, applications consuming these APIs
|
||||
may copy the implementation into their source
|
||||
tree. For more details about the reference
|
||||
- implementation see
|
||||
+ implementation, see
|
||||
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>These functions continue to work as described,
|
||||
diff --git a/man/sd_listen_fds.xml b/man/sd_listen_fds.xml
|
||||
index aaabdbf..6a9e082 100644
|
||||
--- a/man/sd_listen_fds.xml
|
||||
+++ b/man/sd_listen_fds.xml
|
||||
@@ -155,7 +155,7 @@
|
||||
file. Alternatively, applications consuming these APIs
|
||||
may copy the implementation into their source
|
||||
tree. For more details about the reference
|
||||
- implementation see
|
||||
+ implementation, see
|
||||
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>If the reference implementation is used as
|
||||
diff --git a/man/sd_login_monitor_new.xml b/man/sd_login_monitor_new.xml
|
||||
index f439d3e..14ff241 100644
|
||||
--- a/man/sd_login_monitor_new.xml
|
||||
+++ b/man/sd_login_monitor_new.xml
|
||||
@@ -198,13 +198,13 @@ else {
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
- <para>On success
|
||||
+ <para>On success,
|
||||
<function>sd_login_monitor_new()</function>,
|
||||
<function>sd_login_monitor_flush()</function> and
|
||||
<function>sd_login_monitor_get_timeout()</function>
|
||||
- return 0 or a positive integer. On success
|
||||
+ return 0 or a positive integer. On success,
|
||||
<function>sd_login_monitor_get_fd()</function> returns
|
||||
- a Unix file descriptor. On success
|
||||
+ a Unix file descriptor. On success,
|
||||
<function>sd_login_monitor_get_events()</function>
|
||||
returns a combination of <constant>POLLIN</constant>,
|
||||
<constant>POLLOUT</constant> and suchlike. On failure,
|
||||
diff --git a/man/sd_notify.xml b/man/sd_notify.xml
|
||||
index e078140..aae27a8 100644
|
||||
--- a/man/sd_notify.xml
|
||||
+++ b/man/sd_notify.xml
|
||||
@@ -241,7 +241,7 @@
|
||||
<constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
file. Alternatively, applications consuming these APIs
|
||||
may copy the implementation into their source tree. For
|
||||
- more details about the reference implementation see
|
||||
+ more details about the reference implementation, see
|
||||
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>If the reference implementation is used as
|
||||
diff --git a/man/sd_readahead.xml b/man/sd_readahead.xml
|
||||
index bb01bcf..9827299 100644
|
||||
--- a/man/sd_readahead.xml
|
||||
+++ b/man/sd_readahead.xml
|
||||
@@ -139,7 +139,7 @@
|
||||
<filename>sd-readahead.h</filename> files. It is
|
||||
recommended that applications consuming this API copy
|
||||
the implementation into their source tree. For more
|
||||
- details about the reference implementation see
|
||||
+ details about the reference implementation, see
|
||||
<citerefentry><refentrytitle>sd-readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry></para>
|
||||
|
||||
<para>If -DDISABLE_SYSTEMD is set during compilation,
|
||||
diff --git a/man/sd_seat_get_active.xml b/man/sd_seat_get_active.xml
|
||||
index 23d582d..c64ba13 100644
|
||||
--- a/man/sd_seat_get_active.xml
|
||||
+++ b/man/sd_seat_get_active.xml
|
||||
@@ -143,9 +143,9 @@
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
- <para> On success
|
||||
+ <para> On success,
|
||||
<function>sd_seat_get_active()</function>
|
||||
- returns 0 or a positive integer. On success
|
||||
+ returns 0 or a positive integer. On success,
|
||||
<function>sd_seat_get_sessions()</function> returns
|
||||
the number of entries in the session identifier
|
||||
array. If the test succeeds,
|
||||
diff --git a/man/sd_uid_get_state.xml b/man/sd_uid_get_state.xml
|
||||
index 0faa765..30b254c 100644
|
||||
--- a/man/sd_uid_get_state.xml
|
||||
+++ b/man/sd_uid_get_state.xml
|
||||
@@ -152,11 +152,11 @@
|
||||
<refsect1>
|
||||
<title>Return Value</title>
|
||||
|
||||
- <para>On success
|
||||
+ <para>On success,
|
||||
<function>sd_uid_get_state()</function> returns 0 or a
|
||||
positive integer. If the test succeeds,
|
||||
<function>sd_uid_is_on_seat()</function> returns a
|
||||
- positive integer, if it fails
|
||||
+ positive integer; if it fails,
|
||||
0. <function>sd_uid_get_sessions()</function> and
|
||||
<function>sd_uid_get_seats()</function> return the
|
||||
number of entries in the returned arrays. On failure,
|
||||
diff --git a/man/shutdown.xml b/man/shutdown.xml
|
||||
index 795fb66..27e7e87 100644
|
||||
--- a/man/shutdown.xml
|
||||
+++ b/man/shutdown.xml
|
||||
@@ -164,7 +164,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-analyze.xml b/man/systemd-analyze.xml
|
||||
index aefbfc8..b7753f9 100644
|
||||
--- a/man/systemd-analyze.xml
|
||||
+++ b/man/systemd-analyze.xml
|
||||
@@ -270,7 +270,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-ask-password.xml b/man/systemd-ask-password.xml
|
||||
index 8af328d..79902cb 100644
|
||||
--- a/man/systemd-ask-password.xml
|
||||
+++ b/man/systemd-ask-password.xml
|
||||
@@ -167,7 +167,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-cat.xml b/man/systemd-cat.xml
|
||||
index ffb1dfd..ba7a2cf 100644
|
||||
--- a/man/systemd-cat.xml
|
||||
+++ b/man/systemd-cat.xml
|
||||
@@ -158,7 +158,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-cgls.xml b/man/systemd-cgls.xml
|
||||
index 432706b..152b883 100644
|
||||
--- a/man/systemd-cgls.xml
|
||||
+++ b/man/systemd-cgls.xml
|
||||
@@ -145,7 +145,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-cgtop.xml b/man/systemd-cgtop.xml
|
||||
index 7faedfb..0e1f7c5 100644
|
||||
--- a/man/systemd-cgtop.xml
|
||||
+++ b/man/systemd-cgtop.xml
|
||||
@@ -264,7 +264,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-coredumpctl.xml b/man/systemd-coredumpctl.xml
|
||||
index 9ccb67d..67f75d1 100644
|
||||
--- a/man/systemd-coredumpctl.xml
|
||||
+++ b/man/systemd-coredumpctl.xml
|
||||
@@ -200,7 +200,7 @@
|
||||
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise. Not finding any matching coredumps is treated
|
||||
as failure.
|
||||
</para>
|
||||
diff --git a/man/systemd-delta.xml b/man/systemd-delta.xml
|
||||
index 4d3ab78..ebaa349 100644
|
||||
--- a/man/systemd-delta.xml
|
||||
+++ b/man/systemd-delta.xml
|
||||
@@ -223,7 +223,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-machine-id-setup.xml b/man/systemd-machine-id-setup.xml
|
||||
index bc38d55..7b3aa7e 100644
|
||||
--- a/man/systemd-machine-id-setup.xml
|
||||
+++ b/man/systemd-machine-id-setup.xml
|
||||
@@ -116,7 +116,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-notify.xml b/man/systemd-notify.xml
|
||||
index a769346..e14977d 100644
|
||||
--- a/man/systemd-notify.xml
|
||||
+++ b/man/systemd-notify.xml
|
||||
@@ -172,7 +172,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
|
||||
index 495247e..c678031 100644
|
||||
--- a/man/systemd-tmpfiles.xml
|
||||
+++ b/man/systemd-tmpfiles.xml
|
||||
@@ -178,7 +178,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd-tty-ask-password-agent.xml b/man/systemd-tty-ask-password-agent.xml
|
||||
index 31a18ba..cb5fb43 100644
|
||||
--- a/man/systemd-tty-ask-password-agent.xml
|
||||
+++ b/man/systemd-tty-ask-password-agent.xml
|
||||
@@ -148,7 +148,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/systemd.device.xml b/man/systemd.device.xml
|
||||
index 002b647..586473c 100644
|
||||
--- a/man/systemd.device.xml
|
||||
+++ b/man/systemd.device.xml
|
||||
@@ -75,7 +75,7 @@
|
||||
udev tag (by default all block and network devices,
|
||||
and a few others). This may be used to define
|
||||
dependencies between devices and other units. To tag a
|
||||
- udev device use <literal>TAG+="systemd"</literal> in
|
||||
+ udev device, use <literal>TAG+="systemd"</literal> in
|
||||
the udev rules file, see
|
||||
<citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
|
||||
index df5a79e..6f9f70c 100644
|
||||
--- a/man/systemd.mount.xml
|
||||
+++ b/man/systemd.mount.xml
|
||||
@@ -94,7 +94,7 @@
|
||||
in a unit file
|
||||
<filename>home-lennart.mount</filename>. For details
|
||||
about the escaping logic used to convert a file system
|
||||
- path to a unit name see
|
||||
+ path to a unit name, see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>Optionally, a mount unit may be accompanied by
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 80a935d..e869f95 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -441,7 +441,7 @@
|
||||
<literal>one</literal> and
|
||||
<literal>two two</literal>,
|
||||
respectively. Since two commands are
|
||||
- specified
|
||||
+ specified,
|
||||
<varname>Type=oneshot</varname> must
|
||||
be used.</para>
|
||||
|
||||
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
|
||||
index 863a029..76bb5cd 100644
|
||||
--- a/man/systemd.special.xml
|
||||
+++ b/man/systemd.special.xml
|
||||
@@ -996,7 +996,7 @@
|
||||
<filename>smartcard.target</filename>,
|
||||
<filename>sound.target</filename>.</para>
|
||||
|
||||
- <para>In addition the following special unit is
|
||||
+ <para>In addition, the following special unit is
|
||||
understood only when systemd runs as service instance:</para>
|
||||
|
||||
<variablelist>
|
||||
diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml
|
||||
index 13f6c84..5e8b25f 100644
|
||||
--- a/man/systemd.swap.xml
|
||||
+++ b/man/systemd.swap.xml
|
||||
@@ -85,7 +85,7 @@
|
||||
<filename noindex='true'>/dev/sda5</filename> must be configured in a
|
||||
unit file <filename>dev-sda5.swap</filename>. For
|
||||
details about the escaping logic used to convert a
|
||||
- file system path to a unit name see
|
||||
+ file system path to a unit name, see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>All swap units automatically get the appropriate
|
||||
diff --git a/man/systemd.xml b/man/systemd.xml
|
||||
index 85c06d3..23a0c26 100644
|
||||
--- a/man/systemd.xml
|
||||
+++ b/man/systemd.xml
|
||||
@@ -494,7 +494,7 @@
|
||||
<filename>/proc</filename>.</para>
|
||||
|
||||
<para>For more information about the concepts and
|
||||
- ideas behind systemd please refer to the <ulink
|
||||
+ ideas behind systemd, please refer to the <ulink
|
||||
url="http://0pointer.de/blog/projects/systemd.html">Original
|
||||
Design Document</ulink>.</para>
|
||||
|
||||
diff --git a/man/telinit.xml b/man/telinit.xml
|
||||
index bb80939..b20a60a 100644
|
||||
--- a/man/telinit.xml
|
||||
+++ b/man/telinit.xml
|
||||
@@ -171,7 +171,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/timedatectl.xml b/man/timedatectl.xml
|
||||
index be0ad3f..f4975ce 100644
|
||||
--- a/man/timedatectl.xml
|
||||
+++ b/man/timedatectl.xml
|
||||
@@ -222,7 +222,7 @@
|
||||
<refsect1>
|
||||
<title>Exit status</title>
|
||||
|
||||
- <para>On success 0 is returned, a non-zero failure
|
||||
+ <para>On success, 0 is returned, a non-zero failure
|
||||
code otherwise.</para>
|
||||
</refsect1>
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From cae52ffc976561b6c847a38e3ea9d9a9ce2c1513 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 26 Dec 2013 02:47:45 +0100
|
||||
Subject: [PATCH] man: grammar and wording improvements
|
||||
|
||||
This is a recurring submission and includes corrections to:
|
||||
- missing words, preposition choice.
|
||||
- change of /lib to /usr/lib, because that is what most distros are
|
||||
using as the system-wide location for systemd/udev files.
|
||||
|
||||
Conflicts:
|
||||
man/journalctl.xml
|
||||
man/sd_bus_message_get_cookie.xml
|
||||
man/sd_bus_request_name.xml
|
||||
man/systemctl.xml
|
||||
man/systemd-networkd.service.xml
|
||||
man/systemd.device.xml
|
||||
man/systemd.exec.xml
|
||||
man/systemd.timer.xml
|
||||
man/udev.xml
|
||||
---
|
||||
man/daemon.xml | 2 +-
|
||||
man/sd_is_fifo.xml | 2 +-
|
||||
man/systemd.service.xml | 2 +-
|
||||
man/systemd.unit.xml | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/man/daemon.xml b/man/daemon.xml
|
||||
index 7790420..1fe4546 100644
|
||||
--- a/man/daemon.xml
|
||||
+++ b/man/daemon.xml
|
||||
@@ -408,7 +408,7 @@
|
||||
description files.</para>
|
||||
|
||||
<para>In systemd, if the developer or
|
||||
- administrator wants to make sure a service or
|
||||
+ administrator wants to make sure that a service or
|
||||
other unit is activated automatically on boot,
|
||||
it is recommended to place a symlink to the
|
||||
unit file in the <filename>.wants/</filename>
|
||||
diff --git a/man/sd_is_fifo.xml b/man/sd_is_fifo.xml
|
||||
index 4bb2236..58cd1c9 100644
|
||||
--- a/man/sd_is_fifo.xml
|
||||
+++ b/man/sd_is_fifo.xml
|
||||
@@ -165,7 +165,7 @@
|
||||
called to check whether the specified file descriptor
|
||||
refers to a special file. If the
|
||||
<parameter>path</parameter> parameter is not
|
||||
- <constant>NULL</constant>, it is checked whether file
|
||||
+ <constant>NULL</constant>, it is checked whether the file
|
||||
descriptor is bound to the specified file
|
||||
name. Special files in this context are character
|
||||
device nodes and files in <filename>/proc</filename>
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index e869f95..e3a370f 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -427,7 +427,7 @@
|
||||
<programlisting>ExecStart=/bin/sh -c 'dmesg | tac'
|
||||
</programlisting>
|
||||
|
||||
- <para>Only select environment variables
|
||||
+ <para>Only select environment variables that
|
||||
are set for executed commands. See
|
||||
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
</para>
|
||||
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
|
||||
index b70c5e9..f6b4b24 100644
|
||||
--- a/man/systemd.unit.xml
|
||||
+++ b/man/systemd.unit.xml
|
||||
@@ -548,7 +548,7 @@
|
||||
of units. When systemd stops or restarts
|
||||
the units listed here, the action is
|
||||
propagated to this unit.
|
||||
- Note that this is a one way dependency —
|
||||
+ Note that this is a one-way dependency —
|
||||
changes to this unit do not affect the
|
||||
listed units.
|
||||
</para></listitem>
|
|
@ -0,0 +1,130 @@
|
|||
From 6566f27fc123e1b2fd14e5177dcb21c6b3598d5d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Wed, 25 Dec 2013 23:20:57 -0500
|
||||
Subject: [PATCH] man: document fail/nofail, auto/noauto
|
||||
|
||||
Also s/filesystem/file system/ in a few places.
|
||||
|
||||
Conflicts:
|
||||
TODO
|
||||
man/systemd-fsck@.service.xml
|
||||
man/systemd-fstab-generator.xml
|
||||
---
|
||||
man/systemd-fsck@.service.xml | 5 ++++-
|
||||
man/systemd-fstab-generator.xml | 6 ++++++
|
||||
man/systemd-halt.service.xml | 2 +-
|
||||
man/systemd.mount.xml | 20 +++++++++++++++++++-
|
||||
man/systemd.unit.xml | 2 +-
|
||||
man/udevadm.xml | 2 +-
|
||||
6 files changed, 32 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/man/systemd-fsck@.service.xml b/man/systemd-fsck@.service.xml
|
||||
index e934352..c653dc5 100644
|
||||
--- a/man/systemd-fsck@.service.xml
|
||||
+++ b/man/systemd-fsck@.service.xml
|
||||
@@ -62,7 +62,10 @@
|
||||
system
|
||||
check. <filename>systemd-fsck-root.service</filename> is
|
||||
responsible for file system checks on the root
|
||||
- file system.</para>
|
||||
+ file system. The root file system check is performed
|
||||
+ before the other file systems. Either service is enabled
|
||||
+ at boot if passno in <filename>/etc/fstab</filename> for
|
||||
+ the file system is set to a value greater than zero.</para>
|
||||
|
||||
<para><filename>systemd-fsck</filename> will
|
||||
forward file system checking progress to the
|
||||
diff --git a/man/systemd-fstab-generator.xml b/man/systemd-fstab-generator.xml
|
||||
index 9ca16c7..e3cf5d2 100644
|
||||
--- a/man/systemd-fstab-generator.xml
|
||||
+++ b/man/systemd-fstab-generator.xml
|
||||
@@ -61,6 +61,12 @@
|
||||
reloaded. This will instantiate mount and swap units
|
||||
as necessary.</para>
|
||||
|
||||
+ <para>The <varname>passno</varname> field is treated
|
||||
+ like a simple boolean, and the ordering information is
|
||||
+ discarded. However, if the root file system is
|
||||
+ checked, it is checked before all the other
|
||||
+ file systems.</para>
|
||||
+
|
||||
<para>See
|
||||
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
and
|
||||
diff --git a/man/systemd-halt.service.xml b/man/systemd-halt.service.xml
|
||||
index 99457aa..bec2e36 100644
|
||||
--- a/man/systemd-halt.service.xml
|
||||
+++ b/man/systemd-halt.service.xml
|
||||
@@ -86,7 +86,7 @@
|
||||
<para>It is necessary to have this code in a separate binary
|
||||
because otherwise rebooting after an upgrade might be broken —
|
||||
the running PID 1 could still depend on libraries which are not
|
||||
- available any more, thus keeping the filesystem busy, which
|
||||
+ available any more, thus keeping the file system busy, which
|
||||
then cannot be re-mounted read-only.</para>
|
||||
|
||||
<para>Immediately before executing the actual system
|
||||
diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
|
||||
index 6f9f70c..cadf950 100644
|
||||
--- a/man/systemd.mount.xml
|
||||
+++ b/man/systemd.mount.xml
|
||||
@@ -132,7 +132,10 @@
|
||||
for details). Mounts listed in
|
||||
<filename>/etc/fstab</filename> will be converted into
|
||||
native units dynamically at boot and when the
|
||||
- configuration of the system manager is reloaded. See
|
||||
+ configuration of the system manager is reloaded. In
|
||||
+ general, configuring mount points through
|
||||
+ <filename>/etc/fstab</filename> is the preferred
|
||||
+ approach. See
|
||||
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
for details about the conversion.</para>
|
||||
|
||||
@@ -159,6 +162,21 @@
|
||||
<literal>s</literal>, <literal>min</literal>,
|
||||
<literal>h</literal>, <literal>ms</literal>.</para>
|
||||
|
||||
+ <para>If <option>nofail</option> is given, this mount
|
||||
+ will be only wanted, not required, by the
|
||||
+ <filename>local-fs.target</filename>. This means that
|
||||
+ the boot will continue even if this mount point is not
|
||||
+ mounted successfully. Option <option>fail</option> has
|
||||
+ the opposite meaning and is the default.</para>
|
||||
+
|
||||
+ <para>If <option>noauto</option> is given, this mount
|
||||
+ will not be added as a dependency for
|
||||
+ <filename>local-fs.target</filename>. This means that
|
||||
+ it will not be mounted automatically during boot,
|
||||
+ unless it is pulled in by some other unit. Option
|
||||
+ <option>auto</option> has the opposite meaning and is
|
||||
+ the default.</para>
|
||||
+
|
||||
<para>If a mount point is configured in both
|
||||
<filename>/etc/fstab</filename> and a unit file that
|
||||
is stored below <filename>/usr</filename>, the former
|
||||
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
|
||||
index f6b4b24..4704352 100644
|
||||
--- a/man/systemd.unit.xml
|
||||
+++ b/man/systemd.unit.xml
|
||||
@@ -232,7 +232,7 @@
|
||||
multiple units from a single configuration file. If
|
||||
systemd looks for a unit configuration file, it will
|
||||
first search for the literal unit name in the
|
||||
- filesystem. If that yields no success and the unit
|
||||
+ file system. If that yields no success and the unit
|
||||
name contains an <literal>@</literal> character, systemd will look for a
|
||||
unit template that shares the same name but with the
|
||||
instance string (i.e. the part between the <literal>@</literal> character
|
||||
diff --git a/man/udevadm.xml b/man/udevadm.xml
|
||||
index a1ffe42..ca3713f 100644
|
||||
--- a/man/udevadm.xml
|
||||
+++ b/man/udevadm.xml
|
||||
@@ -461,7 +461,7 @@
|
||||
<varlistentry>
|
||||
<term><option>--root=<replaceable>string</replaceable></option></term>
|
||||
<listitem>
|
||||
- <para>Alternative root path in the filesystem for reading and writing files.</para>
|
||||
+ <para>Alternative root path in the file system for reading and writing files.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
|
@ -0,0 +1,22 @@
|
|||
From 8debc611398abf60d16e73982c9d56b5ea957e15 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 24 Dec 2013 22:57:15 -0500
|
||||
Subject: [PATCH] man: fix description of is-enabled returned value
|
||||
|
||||
---
|
||||
man/systemctl.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/systemctl.xml b/man/systemctl.xml
|
||||
index 61deb19..25b03d8 100644
|
||||
--- a/man/systemctl.xml
|
||||
+++ b/man/systemctl.xml
|
||||
@@ -932,7 +932,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
|
||||
<row>
|
||||
<entry><literal>static</literal></entry>
|
||||
<entry>Unit is not enabled, but has no provisions for enabling in [Install] section</entry>
|
||||
- <entry>1</entry>
|
||||
+ <entry>0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>disabled</literal></entry>
|
|
@ -0,0 +1,23 @@
|
|||
From c32611c5388de404cf4b169fa3d757c2603e597d Mon Sep 17 00:00:00 2001
|
||||
From: Marcos Felipe Rasia de Mello <marcosfrm@gmail.com>
|
||||
Date: Thu, 26 Dec 2013 17:47:57 -0200
|
||||
Subject: [PATCH] man: fix Type= reference
|
||||
|
||||
Simple man page fix attached.
|
||||
---
|
||||
man/systemd.service.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index e3a370f..898c19d 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
<para>If set to
|
||||
<option>simple</option> (the default
|
||||
- value if <varname>BusName=</varname>
|
||||
+ value if <varname>Type=</varname>
|
||||
is not specified), it is expected that
|
||||
the process configured with
|
||||
<varname>ExecStart=</varname> is the
|
|
@ -0,0 +1,37 @@
|
|||
From 73868c5b0a59438256d8abd4157ff915a7dc1f37 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 27 Dec 2013 01:18:39 -0500
|
||||
Subject: [PATCH] man: fix Type= reference v2
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
grawity:
|
||||
|
||||
It looks like the old version _was_ correct – the default value will
|
||||
be "Type=dbus" if the service has a BusName set.
|
||||
|
||||
Suggested change: "if neither Type= nor BusName= is specified"
|
||||
---
|
||||
man/systemd.service.xml | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 898c19d..71bcfb4 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -139,9 +139,11 @@
|
||||
|
||||
<para>If set to
|
||||
<option>simple</option> (the default
|
||||
- value if <varname>Type=</varname>
|
||||
- is not specified), it is expected that
|
||||
- the process configured with
|
||||
+ value if neither
|
||||
+ <varname>Type=</varname> nor
|
||||
+ <varname>BusName=</varname> are
|
||||
+ specified), it is expected that the
|
||||
+ process configured with
|
||||
<varname>ExecStart=</varname> is the
|
||||
main process of the service. In this
|
||||
mode, if the process offers
|
|
@ -0,0 +1,38 @@
|
|||
From d38baf3d9088a2d206a6b622fb7f609dc115bd6a Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Fri, 27 Dec 2013 09:35:20 -0800
|
||||
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
|
||||
|
||||
---
|
||||
hwdb/20-bluetooth-vendor-product.hwdb | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
index 6f8301f..192b715 100644
|
||||
--- a/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
+++ b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
@@ -427,7 +427,7 @@ bluetooth:v008B*
|
||||
ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC
|
||||
|
||||
bluetooth:v008C*
|
||||
- ID_VENDOR_FROM_DATABASE=Qualcomm Labs, Inc.
|
||||
+ ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.)
|
||||
|
||||
bluetooth:v008D*
|
||||
ID_VENDOR_FROM_DATABASE=Zscan Software
|
||||
@@ -839,3 +839,15 @@ bluetooth:v0115*
|
||||
|
||||
bluetooth:v0116*
|
||||
ID_VENDOR_FROM_DATABASE=1OAK Technologies
|
||||
+
|
||||
+bluetooth:v0117*
|
||||
+ ID_VENDOR_FROM_DATABASE=Wimoto Technologies Inc
|
||||
+
|
||||
+bluetooth:v0118*
|
||||
+ ID_VENDOR_FROM_DATABASE=Radius Networks, Inc.
|
||||
+
|
||||
+bluetooth:v0119*
|
||||
+ ID_VENDOR_FROM_DATABASE=Wize Technology Co., Ltd.
|
||||
+
|
||||
+bluetooth:v011A*
|
||||
+ ID_VENDOR_FROM_DATABASE=Qualcomm Labs, Inc.
|
|
@ -0,0 +1,61 @@
|
|||
From 16142c7f1f24c58af1388608f1efb382a094bcb5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 27 Dec 2013 15:27:24 -0500
|
||||
Subject: [PATCH] man: add a note about propagating signals
|
||||
|
||||
---
|
||||
man/systemd.service.xml | 39 +++++++++++++++++++++++++--------------
|
||||
1 file changed, 25 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 71bcfb4..af3e0f2 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -734,22 +734,33 @@ ExecStart=/bin/echo $ONE $TWO ${TWO}
|
||||
considered successful termination, in
|
||||
addition to the normal successful exit
|
||||
code 0 and the signals <constant>SIGHUP</constant>, <constant>SIGINT</constant>,
|
||||
- <constant>SIGTERM</constant> and <constant>SIGPIPE</constant>. Exit status
|
||||
+ <constant>SIGTERM</constant>, and <constant>SIGPIPE</constant>. Exit status
|
||||
definitions can either be numeric exit
|
||||
codes or termination signal names,
|
||||
- separated by spaces. Example:
|
||||
- <literal>SuccessExitStatus=1 2 8
|
||||
- <constant>SIGKILL</constant></literal>, ensures that exit
|
||||
- codes 1, 2, 8 and the termination
|
||||
- signal <constant>SIGKILL</constant> are considered clean
|
||||
- service terminations. This option may
|
||||
- appear more than once in which case
|
||||
- the list of successful exit statuses
|
||||
- is merged. If the empty string is
|
||||
- assigned to this option, the list is
|
||||
- reset, all prior assignments of this
|
||||
- option will have no
|
||||
- effect.</para></listitem>
|
||||
+ separated by spaces. For example:
|
||||
+ <programlisting>SuccessExitStatus=1 2 8 <constant>SIGKILL</constant></programlisting>
|
||||
+ ensures that exit codes 1, 2, 8 and
|
||||
+ the termination signal
|
||||
+ <constant>SIGKILL</constant> are
|
||||
+ considered clean service terminations.
|
||||
+ </para>
|
||||
+
|
||||
+ <para>Note that if a process has a
|
||||
+ signal handler installed and exits by
|
||||
+ calling
|
||||
+ <citerefentry><refentrytitle>_exit</refentrytitle><manvolnum>2</manvolnum></citerefentry>
|
||||
+ in response to a signal, the
|
||||
+ information about the signal is lost.
|
||||
+ Programs should instead perform cleanup and kill themselves with the same signal instead. See
|
||||
+ <ulink url="http://www.cons.org/cracauer/sigint.html">Proper handling of SIGINT/SIGQUIT — How to be a proper program</ulink>.</para>
|
||||
+
|
||||
+ <para>This option may appear more than once
|
||||
+ in which case the list of successful
|
||||
+ exit statuses is merged. If the empty
|
||||
+ string is assigned to this option, the
|
||||
+ list is reset, all prior assignments
|
||||
+ of this option will have no
|
||||
+ effect.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
|
@ -0,0 +1,41 @@
|
|||
From cc5b9c30f5e8312ee8905f7882da7ab79fef571c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Fri, 27 Dec 2013 23:44:27 -0500
|
||||
Subject: [PATCH] man: include autoconf snippet in daemon(7)
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=40446
|
||||
---
|
||||
man/daemon.xml | 20 ++++++++++++++------
|
||||
1 file changed, 14 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/man/daemon.xml b/man/daemon.xml
|
||||
index 1fe4546..105826a 100644
|
||||
--- a/man/daemon.xml
|
||||
+++ b/man/daemon.xml
|
||||
@@ -765,12 +765,20 @@
|
||||
|
||||
<programlisting>PKG_PROG_PKG_CONFIG
|
||||
AC_ARG_WITH([systemdsystemunitdir],
|
||||
- AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
|
||||
- [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
|
||||
-if test "x$with_systemdsystemunitdir" != xno; then
|
||||
- AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
|
||||
-fi
|
||||
-AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])</programlisting>
|
||||
+ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),,
|
||||
+ [with_systemdsystemunitdir=auto])
|
||||
+AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
|
||||
+ def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
||||
+
|
||||
+ AS_IF([test "x$def_systemdsystemunitdir" = "x"],
|
||||
+ [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
|
||||
+ [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
|
||||
+ with_systemdsystemunitdir=no],
|
||||
+ [with_systemdsystemunitdir=$def_systemdsystemunitdir])])
|
||||
+AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
||||
+ [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
||||
+AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
|
||||
+</programlisting>
|
||||
|
||||
<para>This snippet allows automatic
|
||||
installation of the unit files on systemd
|
|
@ -0,0 +1,325 @@
|
|||
From 2a683cff7e7ac4f94ce545a0907d5b5b883c2a36 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 29 Dec 2013 23:39:28 -0500
|
||||
Subject: [PATCH] systemd-python: fix setting of exception codes
|
||||
|
||||
The return value of 0 would be treated as failure by mistake,
|
||||
resulting in " SystemError: error return without exception set".
|
||||
The way that set_error() is used is changed to be the same
|
||||
everywhere.
|
||||
---
|
||||
src/python-systemd/_daemon.c | 14 +++++-----
|
||||
src/python-systemd/_reader.c | 63 ++++++++++++++++++++------------------------
|
||||
2 files changed, 35 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c
|
||||
index f0ab16f..c6db69f 100644
|
||||
--- a/src/python-systemd/_daemon.c
|
||||
+++ b/src/python-systemd/_daemon.c
|
||||
@@ -88,7 +88,7 @@ static PyObject* notify(PyObject *self, PyObject *args, PyObject *keywds) {
|
||||
#endif
|
||||
|
||||
r = sd_notify(unset, msg);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -123,7 +123,7 @@ static PyObject* listen_fds(PyObject *self, PyObject *args, PyObject *keywds) {
|
||||
#endif
|
||||
|
||||
r = sd_listen_fds(unset);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return long_FromLong(r);
|
||||
@@ -151,7 +151,7 @@ static PyObject* is_fifo(PyObject *self, PyObject *args) {
|
||||
#endif
|
||||
|
||||
r = sd_is_fifo(fd, path);
|
||||
- if (set_error(r, path, NULL))
|
||||
+ if (set_error(r, path, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -179,7 +179,7 @@ static PyObject* is_mq(PyObject *self, PyObject *args) {
|
||||
#endif
|
||||
|
||||
r = sd_is_mq(fd, path);
|
||||
- if (set_error(r, path, NULL))
|
||||
+ if (set_error(r, path, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -203,7 +203,7 @@ static PyObject* is_socket(PyObject *self, PyObject *args) {
|
||||
return NULL;
|
||||
|
||||
r = sd_is_socket(fd, family, type, listening);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -230,7 +230,7 @@ static PyObject* is_socket_inet(PyObject *self, PyObject *args) {
|
||||
}
|
||||
|
||||
r = sd_is_socket_inet(fd, family, type, listening, (uint16_t) port);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -265,7 +265,7 @@ static PyObject* is_socket_unix(PyObject *self, PyObject *args) {
|
||||
#endif
|
||||
|
||||
r = sd_is_socket_unix(fd, type, listening, path, length);
|
||||
- if (set_error(r, path, NULL))
|
||||
+ if (set_error(r, path, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c
|
||||
index bc5db19..0c88926 100644
|
||||
--- a/src/python-systemd/_reader.c
|
||||
+++ b/src/python-systemd/_reader.c
|
||||
@@ -206,8 +206,7 @@ PyDoc_STRVAR(Reader_reliable_fd__doc__,
|
||||
static PyObject* Reader_reliable_fd(Reader *self, PyObject *args)
|
||||
{
|
||||
int r = sd_journal_reliable_fd(self->j);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
return PyBool_FromLong(r);
|
||||
}
|
||||
@@ -221,8 +220,7 @@ PyDoc_STRVAR(Reader_get_events__doc__,
|
||||
static PyObject* Reader_get_events(Reader *self, PyObject *args)
|
||||
{
|
||||
int r = sd_journal_get_events(self->j);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
return long_FromLong(r);
|
||||
}
|
||||
@@ -242,8 +240,7 @@ static PyObject* Reader_get_timeout(Reader *self, PyObject *args)
|
||||
uint64_t t;
|
||||
|
||||
r = sd_journal_get_timeout(self->j, &t);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
if (t == (uint64_t) -1)
|
||||
@@ -265,8 +262,7 @@ static PyObject* Reader_get_timeout_ms(Reader *self, PyObject *args)
|
||||
uint64_t t;
|
||||
|
||||
r = sd_journal_get_timeout(self->j, &t);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return absolute_timeout(t);
|
||||
@@ -304,7 +300,7 @@ static PyObject* Reader_get_usage(Reader *self, PyObject *args)
|
||||
uint64_t bytes;
|
||||
|
||||
r = sd_journal_get_usage(self->j, &bytes);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
assert_cc(sizeof(unsigned long long) == sizeof(bytes));
|
||||
@@ -366,8 +362,7 @@ static PyObject* Reader_next(Reader *self, PyObject *args)
|
||||
assert_not_reached("should not be here");
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
return PyBool_FromLong(r);
|
||||
}
|
||||
@@ -445,7 +440,8 @@ static PyObject* Reader_get(Reader *self, PyObject *args)
|
||||
if (r == -ENOENT) {
|
||||
PyErr_SetString(PyExc_KeyError, field);
|
||||
return NULL;
|
||||
- } else if (set_error(r, NULL, "field name is not valid"))
|
||||
+ }
|
||||
+ if (set_error(r, NULL, "field name is not valid") < 0)
|
||||
return NULL;
|
||||
|
||||
r = extract(msg, msg_len, NULL, &value);
|
||||
@@ -530,7 +526,7 @@ static PyObject* Reader_get_realtime(Reader *self, PyObject *args)
|
||||
assert(!args);
|
||||
|
||||
r = sd_journal_get_realtime_usec(self->j, ×tamp);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
assert_cc(sizeof(unsigned long long) == sizeof(timestamp));
|
||||
@@ -555,7 +551,7 @@ static PyObject* Reader_get_monotonic(Reader *self, PyObject *args)
|
||||
assert(!args);
|
||||
|
||||
r = sd_journal_get_monotonic_usec(self->j, ×tamp, &id);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
assert_cc(sizeof(unsigned long long) == sizeof(timestamp));
|
||||
@@ -598,8 +594,7 @@ static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds
|
||||
return NULL;
|
||||
|
||||
r = sd_journal_add_match(self->j, match, match_len);
|
||||
- set_error(r, NULL, "Invalid match");
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, "Invalid match") < 0)
|
||||
return NULL;
|
||||
|
||||
Py_RETURN_NONE;
|
||||
@@ -616,8 +611,7 @@ static PyObject* Reader_add_disjunction(Reader *self, PyObject *args)
|
||||
{
|
||||
int r;
|
||||
r = sd_journal_add_disjunction(self->j);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -633,8 +627,7 @@ static PyObject* Reader_add_conjunction(Reader *self, PyObject *args)
|
||||
{
|
||||
int r;
|
||||
r = sd_journal_add_conjunction(self->j);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -661,7 +654,7 @@ static PyObject* Reader_seek_head(Reader *self, PyObject *args)
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_seek_head(self->j);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -678,7 +671,7 @@ static PyObject* Reader_seek_tail(Reader *self, PyObject *args)
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_seek_tail(self->j);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -699,7 +692,7 @@ static PyObject* Reader_seek_realtime(Reader *self, PyObject *args)
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_seek_realtime_usec(self->j, timestamp);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -723,20 +716,20 @@ static PyObject* Reader_seek_monotonic(Reader *self, PyObject *args)
|
||||
|
||||
if (bootid) {
|
||||
r = sd_id128_from_string(bootid, &id);
|
||||
- if (set_error(r, NULL, "Invalid bootid"))
|
||||
+ if (set_error(r, NULL, "Invalid bootid") < 0)
|
||||
return NULL;
|
||||
} else {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_id128_get_boot(&id);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_seek_monotonic_usec(self->j, id, timestamp);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
Py_RETURN_NONE;
|
||||
@@ -809,7 +802,7 @@ static PyObject* Reader_seek_cursor(Reader *self, PyObject *args)
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_seek_cursor(self->j, cursor);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, "Invalid cursor"))
|
||||
+ if (set_error(r, NULL, "Invalid cursor") < 0)
|
||||
return NULL;
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -828,7 +821,7 @@ static PyObject* Reader_get_cursor(Reader *self, PyObject *args)
|
||||
assert(!args);
|
||||
|
||||
r = sd_journal_get_cursor(self->j, &cursor);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return unicode_FromString(cursor);
|
||||
@@ -851,8 +844,7 @@ static PyObject* Reader_test_cursor(Reader *self, PyObject *args)
|
||||
return NULL;
|
||||
|
||||
r = sd_journal_test_cursor(self->j, cursor);
|
||||
- set_error(r, NULL, NULL);
|
||||
- if (r < 0)
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return PyBool_FromLong(r);
|
||||
@@ -876,7 +868,7 @@ static PyObject* Reader_query_unique(Reader *self, PyObject *args)
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_query_unique(self->j, query);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, "Invalid field name"))
|
||||
+ if (set_error(r, NULL, "Invalid field name") < 0)
|
||||
return NULL;
|
||||
|
||||
value_set = PySet_New(0);
|
||||
@@ -930,7 +922,8 @@ static PyObject* Reader_get_catalog(Reader *self, PyObject *args)
|
||||
else
|
||||
set_error(r, NULL, NULL);
|
||||
return NULL;
|
||||
- } else if (set_error(r, NULL, NULL))
|
||||
+ }
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return unicode_FromString(msg);
|
||||
@@ -955,13 +948,13 @@ static PyObject* get_catalog(PyObject *self, PyObject *args)
|
||||
return NULL;
|
||||
|
||||
r = sd_id128_from_string(id_, &id);
|
||||
- if (set_error(r, NULL, "Invalid id128"))
|
||||
+ if (set_error(r, NULL, "Invalid id128") < 0)
|
||||
return NULL;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
r = sd_journal_get_catalog_for_message_id(id, &msg);
|
||||
Py_END_ALLOW_THREADS
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return unicode_FromString(msg);
|
||||
@@ -979,7 +972,7 @@ static PyObject* Reader_get_data_threshold(Reader *self, void *closure)
|
||||
int r;
|
||||
|
||||
r = sd_journal_get_data_threshold(self->j, &cvalue);
|
||||
- if (set_error(r, NULL, NULL))
|
||||
+ if (set_error(r, NULL, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return long_FromSize_t(cvalue);
|
|
@ -0,0 +1,22 @@
|
|||
From 353a5553a38d002a69a4fbafabf1e9ab50ff32c2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 30 Dec 2013 00:01:00 -0500
|
||||
Subject: [PATCH] systemd-python: fix listen_fds under Python 2
|
||||
|
||||
---
|
||||
src/python-systemd/_daemon.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c
|
||||
index c6db69f..3982e85 100644
|
||||
--- a/src/python-systemd/_daemon.c
|
||||
+++ b/src/python-systemd/_daemon.c
|
||||
@@ -114,7 +114,7 @@ static PyObject* listen_fds(PyObject *self, PyObject *args, PyObject *keywds) {
|
||||
#else
|
||||
PyObject *obj = NULL;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, keywds, "|O:_listen_fds",
|
||||
- (char**) kwlist, &unset, &obj))
|
||||
+ (char**) kwlist, &obj))
|
||||
return NULL;
|
||||
if (obj != NULL)
|
||||
unset = PyObject_IsTrue(obj);
|
|
@ -0,0 +1,120 @@
|
|||
From 204a710b647527c35cee26962bbd324e6cebc822 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 30 Dec 2013 00:11:30 -0500
|
||||
Subject: [PATCH] man: expand on some more subtle points in systemd.socket(5)
|
||||
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727708#1694
|
||||
---
|
||||
man/systemd.socket.xml | 67 ++++++++++++++++++++++++++++++++++++--------------
|
||||
1 file changed, 49 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml
|
||||
index ac3127d..570a6fb 100644
|
||||
--- a/man/systemd.socket.xml
|
||||
+++ b/man/systemd.socket.xml
|
||||
@@ -85,21 +85,26 @@
|
||||
processes of the socket.</para>
|
||||
|
||||
<para>For each socket file a matching service file
|
||||
- (see
|
||||
+ must exist, describing the service to start on
|
||||
+ incoming traffic on the socket (see
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
- for details) must exist, describing the service to
|
||||
- start on incoming traffic on the socket. Depending on
|
||||
- the setting of <option>Accept=</option> (see below),
|
||||
- this must either be named like the socket unit, but
|
||||
- with the suffix replaced; or it must be a template
|
||||
- file named the same way. Example: a socket file
|
||||
+ for more information about .service files). The name
|
||||
+ of the .service unit is by default the same as the
|
||||
+ name of the .socket unit, but can be altered with
|
||||
+ <option>Service=</option> option described below.
|
||||
+ Depending on the setting of <option>Accept=</option>
|
||||
+ option described below, this .service unit must either
|
||||
+ be named like the .socket unit, but with the suffix
|
||||
+ replaced, unless overridden with
|
||||
+ <option>Service=</option>; or it must be a template
|
||||
+ unit named the same way. Example: a socket file
|
||||
<filename>foo.socket</filename> needs a matching
|
||||
service <filename>foo.service</filename> if
|
||||
<option>Accept=false</option> is set. If
|
||||
- <option>Accept=true</option> is set, a service template
|
||||
- file <filename>foo@.service</filename> must exist from
|
||||
- which services are instantiated for each incoming
|
||||
- connection.</para>
|
||||
+ <option>Accept=true</option> is set, a service
|
||||
+ template file <filename>foo@.service</filename> must
|
||||
+ exist from which services are instantiated for each
|
||||
+ incoming connection.</para>
|
||||
|
||||
<para>Unless <varname>DefaultDependencies=</varname>
|
||||
is set to <option>false</option>, socket units will
|
||||
@@ -116,9 +121,21 @@
|
||||
boot or late system shutdown should disable this
|
||||
option.</para>
|
||||
|
||||
+ <para>Socket units will have a
|
||||
+ <varname>Before=</varname> dependency on the service
|
||||
+ which they trigger added implicitly. No implicit
|
||||
+ <varname>WantedBy=</varname> or
|
||||
+ <varname>RequiredBy=</varname> dependency from the
|
||||
+ socket to the service is added. This means that the
|
||||
+ service may be started without the socket, in which
|
||||
+ case it must be able to open sockets by itself. To
|
||||
+ prevent this, an explicit <varname>Requires=</varname>
|
||||
+ dependency may be added.</para>
|
||||
+
|
||||
<para>Socket units may be used to implement on-demand
|
||||
starting of services, as well as parallelized starting
|
||||
- of services.</para>
|
||||
+ of services. See the blog stories linked at the end
|
||||
+ for introduction.</para>
|
||||
|
||||
<para>Note that the daemon software configured for
|
||||
socket activation with socket units needs to be able
|
||||
@@ -221,12 +238,23 @@
|
||||
of any of these options will have no
|
||||
effect.</para>
|
||||
|
||||
+ <para>It is also possible to have more
|
||||
+ than one socket unit for the same
|
||||
+ service when using
|
||||
+ <varname>Service=</varname>, and the
|
||||
+ service will receive all the sockets
|
||||
+ configured in all the socket units.
|
||||
+ Sockets configured in one unit are
|
||||
+ passed in the order of configuration,
|
||||
+ but no ordering between socket units
|
||||
+ is specified.</para>
|
||||
+
|
||||
<para>If an IP address is used here,
|
||||
it is often desirable to listen on it
|
||||
before the interface it is configured
|
||||
on is up and running, and even
|
||||
regardless of whether it will be up and
|
||||
- running ever at all. To deal with this
|
||||
+ running at any point. To deal with this
|
||||
it is recommended to set the
|
||||
<varname>FreeBind=</varname> option
|
||||
described below.</para></listitem>
|
||||
@@ -687,11 +715,14 @@
|
||||
<term><varname>Service=</varname></term>
|
||||
<listitem><para>Specifies the service
|
||||
unit name to activate on incoming
|
||||
- traffic. This defaults to the service
|
||||
- that bears the same name as the socket
|
||||
- (ignoring the different suffixes). In
|
||||
- most cases it should not be necessary
|
||||
- to use this option.</para></listitem>
|
||||
+ traffic. This setting is only allowed
|
||||
+ for sockets with
|
||||
+ <varname>Accept=no</varname>. It
|
||||
+ defaults to the service that bears the
|
||||
+ same name as the socket (with the
|
||||
+ suffix replaced). In most cases it
|
||||
+ should not be necessary to use this
|
||||
+ option.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
|
@ -0,0 +1,119 @@
|
|||
From 3d2c847396cf348ef1ee55f5d4211045a6202efc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 30 Dec 2013 13:00:38 -0500
|
||||
Subject: [PATCH] tmpfiles: rename --unsafe to --boot
|
||||
|
||||
As suggested by Kay, it is better to describe what is done,
|
||||
not what might happen.
|
||||
---
|
||||
man/systemd-tmpfiles.xml | 2 +-
|
||||
man/tmpfiles.d.xml | 4 ++--
|
||||
src/tmpfiles/tmpfiles.c | 14 +++++++-------
|
||||
units/systemd-tmpfiles-setup.service.in | 2 +-
|
||||
4 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml
|
||||
index c678031..64f9cf9 100644
|
||||
--- a/man/systemd-tmpfiles.xml
|
||||
+++ b/man/systemd-tmpfiles.xml
|
||||
@@ -133,7 +133,7 @@
|
||||
removed.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
- <term><option>--unsafe</option></term>
|
||||
+ <term><option>--boot</option></term>
|
||||
<listitem><para>Also execute lines
|
||||
with an exclamation mark.
|
||||
</para></listitem>
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index ed88751..8267ffc 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -273,7 +273,7 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
execute at any time, e.g. on package upgrades.
|
||||
<command>systemd-tmpfiles</command> will
|
||||
execute line with an exclamation mark only if
|
||||
- option <option>--unsafe</option> is given.
|
||||
+ option <option>--boot</option> is given.
|
||||
</para>
|
||||
|
||||
<para>For example:
|
||||
@@ -286,7 +286,7 @@ r! /tmp/.X[0-9]*-lock
|
||||
</programlisting>
|
||||
The second line in contrast to the first one
|
||||
would break a running system, and will only be
|
||||
- executed with <option>--unsafe</option>.</para>
|
||||
+ executed with <option>--boot</option>.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
||||
index 30a8a55..4dd1638 100644
|
||||
--- a/src/tmpfiles/tmpfiles.c
|
||||
+++ b/src/tmpfiles/tmpfiles.c
|
||||
@@ -106,7 +106,7 @@ static Set *unix_sockets = NULL;
|
||||
static bool arg_create = false;
|
||||
static bool arg_clean = false;
|
||||
static bool arg_remove = false;
|
||||
-static bool arg_unsafe = false;
|
||||
+static bool arg_boot = false;
|
||||
|
||||
static char **include_prefixes = NULL;
|
||||
static char **exclude_prefixes = NULL;
|
||||
@@ -1100,7 +1100,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
|
||||
if (strlen(action) > 2 || (strlen(action) > 1 && action[1] != '!')) {
|
||||
log_error("[%s:%u] Unknown modifier '%s'", fname, line, action);
|
||||
return -EINVAL;
|
||||
- } else if (strlen(action) > 1 && !arg_unsafe)
|
||||
+ } else if (strlen(action) > 1 && !arg_boot)
|
||||
return 0;
|
||||
|
||||
type = action[0];
|
||||
@@ -1275,7 +1275,7 @@ static int help(void) {
|
||||
" --create Create marked files/directories\n"
|
||||
" --clean Clean up marked directories\n"
|
||||
" --remove Remove marked files/directories\n"
|
||||
- " --unsafe Execute actions only safe at boot\n"
|
||||
+ " --boot Execute actions only safe at boot\n"
|
||||
" --prefix=PATH Only apply rules that apply to paths with the specified prefix\n"
|
||||
" --exclude-prefix=PATH Ignore rules that apply to paths with the specified prefix\n",
|
||||
program_invocation_short_name);
|
||||
@@ -1289,7 +1289,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
ARG_CREATE,
|
||||
ARG_CLEAN,
|
||||
ARG_REMOVE,
|
||||
- ARG_UNSAFE,
|
||||
+ ARG_BOOT,
|
||||
ARG_PREFIX,
|
||||
ARG_EXCLUDE_PREFIX,
|
||||
};
|
||||
@@ -1299,7 +1299,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "create", no_argument, NULL, ARG_CREATE },
|
||||
{ "clean", no_argument, NULL, ARG_CLEAN },
|
||||
{ "remove", no_argument, NULL, ARG_REMOVE },
|
||||
- { "unsafe", no_argument, NULL, ARG_UNSAFE },
|
||||
+ { "boot", no_argument, NULL, ARG_BOOT },
|
||||
{ "prefix", required_argument, NULL, ARG_PREFIX },
|
||||
{ "exclude-prefix", required_argument, NULL, ARG_EXCLUDE_PREFIX },
|
||||
{ NULL, 0, NULL, 0 }
|
||||
@@ -1330,8 +1330,8 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
arg_remove = true;
|
||||
break;
|
||||
|
||||
- case ARG_UNSAFE:
|
||||
- arg_unsafe = true;
|
||||
+ case ARG_BOOT:
|
||||
+ arg_boot = true;
|
||||
break;
|
||||
|
||||
case ARG_PREFIX:
|
||||
diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in
|
||||
index c2dcae0..01043b7 100644
|
||||
--- a/units/systemd-tmpfiles-setup.service.in
|
||||
+++ b/units/systemd-tmpfiles-setup.service.in
|
||||
@@ -24,4 +24,4 @@ RefuseManualStop=yes
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
-ExecStart=@rootbindir@/systemd-tmpfiles --create --remove --unsafe --exclude-prefix=/dev
|
||||
+ExecStart=@rootbindir@/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev
|
|
@ -0,0 +1,47 @@
|
|||
From ba087745bca7eea8f62cc529c3e6c5eaf6bf2904 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Beller <stefanbeller@googlemail.com>
|
||||
Date: Mon, 30 Dec 2013 17:43:52 +0100
|
||||
Subject: [PATCH] sleep-config: Dereference pointer before check for NULL
|
||||
|
||||
This fixes a bug pointed out by http://css.csail.mit.edu/stack/
|
||||
(Optimization-unstable code)
|
||||
It is a similar fix as f146f5e159 (2013-12-30, core:
|
||||
Forgot to dereference pointer when checking for NULL)
|
||||
|
||||
To explain this bug consider the following similar, but simpler code:
|
||||
if (!p)
|
||||
free(*p)
|
||||
|
||||
Assume the if condition evaluates to true, then we will access *p,
|
||||
which means the compiler can assume p is a valid pointer, so it could
|
||||
dereference p and use the value *p.
|
||||
Assuming p as a valid pointer, !p will be false.
|
||||
But initally we assumed the condition evaluates to true.
|
||||
|
||||
By this reasoning the optimizing compiler can deduce, we have dead code.
|
||||
("The if will never be taken, as *p must be valid, because otherwise
|
||||
accessing *p inside the if would segfault")
|
||||
|
||||
This led to an error message of the static code checker, so I checked the
|
||||
code in question.
|
||||
|
||||
As we access *modes and *states before the check in the changed line of
|
||||
this patch, I assume the line to be wrong and we actually wanted to check
|
||||
for *modes and *states being both non null.
|
||||
---
|
||||
src/shared/sleep-config.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
|
||||
index d76e3ad..b2a0787 100644
|
||||
--- a/src/shared/sleep-config.c
|
||||
+++ b/src/shared/sleep-config.c
|
||||
@@ -94,7 +94,7 @@ int parse_sleep_config(const char *verb, char ***modes, char ***states) {
|
||||
} else
|
||||
assert_not_reached("what verb");
|
||||
|
||||
- if (!modes || !states) {
|
||||
+ if (!*modes || !*states) {
|
||||
strv_free(*modes);
|
||||
strv_free(*states);
|
||||
return log_oom();
|
|
@ -0,0 +1,99 @@
|
|||
From e8d2aa2c8d3533a2dc6f0db5ed22453a16bcf1ee Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 31 Dec 2013 11:23:58 -0500
|
||||
Subject: [PATCH] sleep-config: fix double free
|
||||
|
||||
Before 34a3baa4d 'sleep-config: Dereference pointer before check for NULL'
|
||||
oom conditions would not be detected properly. After that commit, a double
|
||||
free was performed.
|
||||
|
||||
Rework the whole function to be easier to understand, and also replace
|
||||
strv_split_nulstr with strv_new, since we know the strings anyway.
|
||||
---
|
||||
src/shared/sleep-config.c | 38 ++++++++++++++++++++------------------
|
||||
1 file changed, 20 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
|
||||
index b2a0787..70a0896 100644
|
||||
--- a/src/shared/sleep-config.c
|
||||
+++ b/src/shared/sleep-config.c
|
||||
@@ -28,11 +28,14 @@
|
||||
#include "strv.h"
|
||||
#include "util.h"
|
||||
|
||||
-int parse_sleep_config(const char *verb, char ***modes, char ***states) {
|
||||
+#define USE(x, y) do{ (x) = (y); (y) = NULL; } while(0)
|
||||
+
|
||||
+int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
|
||||
_cleanup_strv_free_ char
|
||||
**suspend_mode = NULL, **suspend_state = NULL,
|
||||
**hibernate_mode = NULL, **hibernate_state = NULL,
|
||||
**hybrid_mode = NULL, **hybrid_state = NULL;
|
||||
+ char **modes, **states;
|
||||
|
||||
const ConfigTableItem items[] = {
|
||||
{ "Sleep", "SuspendMode", config_parse_strv, 0, &suspend_mode },
|
||||
@@ -59,47 +62,46 @@ int parse_sleep_config(const char *verb, char ***modes, char ***states) {
|
||||
|
||||
if (streq(verb, "suspend")) {
|
||||
/* empty by default */
|
||||
- *modes = suspend_mode;
|
||||
+ USE(modes, suspend_mode);
|
||||
|
||||
if (suspend_state)
|
||||
- *states = suspend_state;
|
||||
+ USE(states, suspend_state);
|
||||
else
|
||||
- *states = strv_split_nulstr("mem\0standby\0freeze\0");
|
||||
+ states = strv_new("mem", "standby", "freeze", NULL);
|
||||
|
||||
- suspend_mode = suspend_state = NULL;
|
||||
} else if (streq(verb, "hibernate")) {
|
||||
if (hibernate_mode)
|
||||
- *modes = hibernate_mode;
|
||||
+ USE(modes, hibernate_mode);
|
||||
else
|
||||
- *modes = strv_split_nulstr("platform\0shutdown\0");
|
||||
+ modes = strv_new("platform", "shutdown", NULL);
|
||||
|
||||
if (hibernate_state)
|
||||
- *states = hibernate_state;
|
||||
+ USE(states, hibernate_state);
|
||||
else
|
||||
- *states = strv_split_nulstr("disk\0");
|
||||
+ states = strv_new("disk", NULL);
|
||||
|
||||
- hibernate_mode = hibernate_state = NULL;
|
||||
} else if (streq(verb, "hybrid-sleep")) {
|
||||
if (hybrid_mode)
|
||||
- *modes = hybrid_mode;
|
||||
+ USE(modes, hybrid_mode);
|
||||
else
|
||||
- *modes = strv_split_nulstr("suspend\0platform\0shutdown\0");
|
||||
+ modes = strv_new("suspend", "platform", "shutdown", NULL);
|
||||
|
||||
if (hybrid_state)
|
||||
- *states = hybrid_state;
|
||||
+ USE(states, hybrid_state);
|
||||
else
|
||||
- *states = strv_split_nulstr("disk\0");
|
||||
+ states = strv_new("disk", NULL);
|
||||
|
||||
- hybrid_mode = hybrid_state = NULL;
|
||||
} else
|
||||
assert_not_reached("what verb");
|
||||
|
||||
- if (!*modes || !*states) {
|
||||
- strv_free(*modes);
|
||||
- strv_free(*states);
|
||||
+ if ((!modes && !streq(verb, "suspend")) || !states) {
|
||||
+ strv_free(modes);
|
||||
+ strv_free(states);
|
||||
return log_oom();
|
||||
}
|
||||
|
||||
+ *_modes = modes;
|
||||
+ *_states = states;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From eb882aa36d9c700b7b5469df3f2bf43092d5c68b Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Fri, 3 Jan 2014 01:32:03 +0100
|
||||
Subject: [PATCH] rules: drivers - do not reset RUN list
|
||||
|
||||
---
|
||||
rules/80-drivers.rules | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/rules/80-drivers.rules b/rules/80-drivers.rules
|
||||
index 0b22d73..8551f47 100644
|
||||
--- a/rules/80-drivers.rules
|
||||
+++ b/rules/80-drivers.rules
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
ACTION=="remove", GOTO="drivers_end"
|
||||
|
||||
-ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}"
|
||||
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd"
|
||||
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms"
|
||||
-SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block"
|
||||
-SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block"
|
||||
-SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev"
|
||||
-KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl"
|
||||
+ENV{MODALIAS}=="?*", RUN{builtin}+="kmod load $env{MODALIAS}"
|
||||
+SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}+="kmod load tifm_sd"
|
||||
+SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}+="kmod load tifm_ms"
|
||||
+SUBSYSTEM=="memstick", RUN{builtin}+="kmod load ms_block mspro_block"
|
||||
+SUBSYSTEM=="i2o", RUN{builtin}+="kmod load i2o_block"
|
||||
+SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}+="kmod load ppdev"
|
||||
+KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}+="kmod load sm_ftl"
|
||||
|
||||
LABEL="drivers_end"
|
|
@ -0,0 +1,45 @@
|
|||
From 0e09a7e4c14e6b1d31a9a56b80d02b52c9583ab1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 27 Dec 2013 22:12:38 -0500
|
||||
Subject: [PATCH] core/manager: print info about interesting signals
|
||||
|
||||
Information about signals which are not routinely received by systemd
|
||||
are printed at info level. This should make it easier to see what is
|
||||
happening in the system.
|
||||
---
|
||||
src/core/manager.c | 18 ++++++++++++------
|
||||
1 file changed, 12 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/core/manager.c b/src/core/manager.c
|
||||
index a34a3c6..69ad4b5 100644
|
||||
--- a/src/core/manager.c
|
||||
+++ b/src/core/manager.c
|
||||
@@ -1435,16 +1435,22 @@ static int manager_process_signal_fd(Manager *m) {
|
||||
}
|
||||
|
||||
if (sfsi.ssi_pid > 0) {
|
||||
- char *p = NULL;
|
||||
+ _cleanup_free_ char *p = NULL;
|
||||
|
||||
get_process_comm(sfsi.ssi_pid, &p);
|
||||
|
||||
- log_debug("Received SIG%s from PID %lu (%s).",
|
||||
- signal_to_string(sfsi.ssi_signo),
|
||||
- (unsigned long) sfsi.ssi_pid, strna(p));
|
||||
- free(p);
|
||||
+ log_full(sfsi.ssi_signo == SIGCHLD ||
|
||||
+ (sfsi.ssi_signo == SIGTERM && m->running_as == SYSTEMD_USER)
|
||||
+ ? LOG_DEBUG : LOG_INFO,
|
||||
+ "Received SIG%s from PID %lu (%s).",
|
||||
+ signal_to_string(sfsi.ssi_signo),
|
||||
+ (unsigned long) sfsi.ssi_pid, strna(p));
|
||||
} else
|
||||
- log_debug("Received SIG%s.", signal_to_string(sfsi.ssi_signo));
|
||||
+ log_full(sfsi.ssi_signo == SIGCHLD ||
|
||||
+ (sfsi.ssi_signo == SIGTERM && m->running_as == SYSTEMD_USER)
|
||||
+ ? LOG_DEBUG : LOG_INFO,
|
||||
+ "Received SIG%s.",
|
||||
+ signal_to_string(sfsi.ssi_signo));
|
||||
|
||||
switch (sfsi.ssi_signo) {
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From d4466e04783415eee7eec269104e60ab1f6b4b50 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Mon, 30 Dec 2013 11:21:56 -0500
|
||||
Subject: [PATCH] core/service: check if mainpid matches only if it is set
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1047304
|
||||
|
||||
Conflicts:
|
||||
src/core/service.c
|
||||
---
|
||||
src/core/service.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index 62ae8f0..f0acda1 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -3400,7 +3400,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
|
||||
return;
|
||||
}
|
||||
|
||||
- if (s->notify_access == NOTIFY_MAIN && pid != s->main_pid) {
|
||||
+ if (s->notify_access == NOTIFY_MAIN && s->main_pid != 0 && pid != s->main_pid) {
|
||||
log_warning_unit(u->id,
|
||||
"%s: Got notification message from PID %lu, but reception only permitted for PID %lu",
|
||||
u->id, (unsigned long) pid, (unsigned long) s->main_pid);
|
|
@ -0,0 +1,22 @@
|
|||
From dfb3a987b160406fb4cf6cc3935cf54571d7c373 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Sat, 4 Jan 2014 23:21:13 +0100
|
||||
Subject: [PATCH] man: typo fix
|
||||
|
||||
---
|
||||
man/systemd.time.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/systemd.time.xml b/man/systemd.time.xml
|
||||
index f438fa5..a837f23 100644
|
||||
--- a/man/systemd.time.xml
|
||||
+++ b/man/systemd.time.xml
|
||||
@@ -222,7 +222,7 @@
|
||||
<para>In the date and time specifications, any
|
||||
component may be specified as <literal>*</literal> in
|
||||
which case any value will match. Alternatively, each
|
||||
- component can be specified as list of values separated
|
||||
+ component can be specified as a list of values separated
|
||||
by commas. Values may also be suffixed with
|
||||
<literal>/</literal> and a repetition value, which
|
||||
indicates that the value and all values plus multiples
|
|
@ -0,0 +1,29 @@
|
|||
From d61f36a7ef07c252b49cc8015fe37b69bffb1a35 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Beller <stefanbeller@googlemail.com>
|
||||
Date: Fri, 3 Jan 2014 20:33:20 +0100
|
||||
Subject: [PATCH] swap: remove if/else with the same data path
|
||||
|
||||
This was introduced in e1770af812 (2012-02-03, swap: replace failure
|
||||
boolean by result enum).
|
||||
|
||||
This just removes unneeded lines of code, no functional change.
|
||||
---
|
||||
src/core/swap.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index f295b65..727bb95 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -959,10 +959,7 @@ static void swap_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
||||
case SWAP_DEACTIVATING_SIGKILL:
|
||||
case SWAP_DEACTIVATING_SIGTERM:
|
||||
|
||||
- if (f == SWAP_SUCCESS)
|
||||
- swap_enter_dead(s, f);
|
||||
- else
|
||||
- swap_enter_dead(s, f);
|
||||
+ swap_enter_dead(s, f);
|
||||
break;
|
||||
|
||||
default:
|
|
@ -0,0 +1,769 @@
|
|||
From 3c8008b94726f3812ac28f4a33db61635323ee6a Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Sun, 5 Jan 2014 00:44:34 -0800
|
||||
Subject: [PATCH] hwdb: update
|
||||
|
||||
Conflicts:
|
||||
hwdb/20-sdio-vendor-model.hwdb
|
||||
---
|
||||
hwdb/20-OUI.hwdb | 97 +++++++++++++++++++++++++-
|
||||
hwdb/20-pci-vendor-model.hwdb | 154 ++++++++++++++++++++++++++++++++++++++----
|
||||
hwdb/20-usb-vendor-model.hwdb | 6 ++
|
||||
3 files changed, 241 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/hwdb/20-OUI.hwdb b/hwdb/20-OUI.hwdb
|
||||
index 92b96ae..a51a00a 100644
|
||||
--- a/hwdb/20-OUI.hwdb
|
||||
+++ b/hwdb/20-OUI.hwdb
|
||||
@@ -13627,6 +13627,12 @@ OUI:40D8551E2*
|
||||
OUI:40D8551E3*
|
||||
ID_OUI_FROM_DATABASE=Mega Electronics Ltd
|
||||
|
||||
+OUI:40D8551E4*
|
||||
+ ID_OUI_FROM_DATABASE=STEK Ltd
|
||||
+
|
||||
+OUI:40D855EE6*
|
||||
+ ID_OUI_FROM_DATABASE=Narinet, Inc.
|
||||
+
|
||||
OUI:000000*
|
||||
ID_OUI_FROM_DATABASE=XEROX CORPORATION
|
||||
|
||||
@@ -35222,7 +35228,7 @@ OUI:001C4C*
|
||||
ID_OUI_FROM_DATABASE=Petrotest Instruments
|
||||
|
||||
OUI:001C4D*
|
||||
- ID_OUI_FROM_DATABASE=Zeemote Technology Inc. (part of Aplix).
|
||||
+ ID_OUI_FROM_DATABASE=Aplix IP Holdings Corporation
|
||||
|
||||
OUI:001C4E*
|
||||
ID_OUI_FROM_DATABASE=TASA International Limited
|
||||
@@ -52606,6 +52612,9 @@ OUI:08D42B*
|
||||
OUI:08D5C0*
|
||||
ID_OUI_FROM_DATABASE=Seers Technology Co., Ltd
|
||||
|
||||
+OUI:08D833*
|
||||
+ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co,.Ltd
|
||||
+
|
||||
OUI:08E5DA*
|
||||
ID_OUI_FROM_DATABASE=NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD.
|
||||
|
||||
@@ -53308,6 +53317,9 @@ OUI:1423D7*
|
||||
OUI:142BD2*
|
||||
ID_OUI_FROM_DATABASE=Armtel Ltd.
|
||||
|
||||
+OUI:142D27*
|
||||
+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
|
||||
+
|
||||
OUI:142D8B*
|
||||
ID_OUI_FROM_DATABASE=Incipio Technologies, Inc
|
||||
|
||||
@@ -53761,6 +53773,9 @@ OUI:18C451*
|
||||
OUI:18C8E7*
|
||||
ID_OUI_FROM_DATABASE=Shenzhen Hualistone Technology Co.,Ltd
|
||||
|
||||
+OUI:18CC23*
|
||||
+ ID_OUI_FROM_DATABASE=Philio Technology Corporation
|
||||
+
|
||||
OUI:18D071*
|
||||
ID_OUI_FROM_DATABASE=DASAN SMC, Inc.
|
||||
|
||||
@@ -54688,6 +54703,9 @@ OUI:2838CF*
|
||||
OUI:2839E7*
|
||||
ID_OUI_FROM_DATABASE=Preceno Technology Pte.Ltd.
|
||||
|
||||
+OUI:283B96*
|
||||
+ ID_OUI_FROM_DATABASE=Cool Control LTD
|
||||
+
|
||||
OUI:283CE4*
|
||||
ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd
|
||||
|
||||
@@ -54907,6 +54925,9 @@ OUI:28E14C*
|
||||
OUI:28E297*
|
||||
ID_OUI_FROM_DATABASE=Shanghai InfoTM Microelectronics Co.,Ltd.
|
||||
|
||||
+OUI:28E347*
|
||||
+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation
|
||||
+
|
||||
OUI:28E608*
|
||||
ID_OUI_FROM_DATABASE=Tokheim
|
||||
|
||||
@@ -55717,6 +55738,9 @@ OUI:34E0CF*
|
||||
OUI:34E0D7*
|
||||
ID_OUI_FROM_DATABASE=DONGGUAN QISHENG ELECTRONICS INDUSTRIAL CO., LTD
|
||||
|
||||
+OUI:34E2FD*
|
||||
+ ID_OUI_FROM_DATABASE=Apple
|
||||
+
|
||||
OUI:34EF44*
|
||||
ID_OUI_FROM_DATABASE=2Wire
|
||||
|
||||
@@ -56023,6 +56047,9 @@ OUI:3C1040*
|
||||
OUI:3C106F*
|
||||
ID_OUI_FROM_DATABASE=ALBAHITH TECHNOLOGIES
|
||||
|
||||
+OUI:3C15C2*
|
||||
+ ID_OUI_FROM_DATABASE=Apple
|
||||
+
|
||||
OUI:3C15EA*
|
||||
ID_OUI_FROM_DATABASE=TESCOM CO., LTD.
|
||||
|
||||
@@ -56227,6 +56254,9 @@ OUI:3CC99E*
|
||||
OUI:3CCA87*
|
||||
ID_OUI_FROM_DATABASE=Iders Incorporated
|
||||
|
||||
+OUI:3CCD93*
|
||||
+ ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
|
||||
+
|
||||
OUI:3CCE73*
|
||||
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
|
||||
|
||||
@@ -56408,7 +56438,7 @@ OUI:40667A*
|
||||
ID_OUI_FROM_DATABASE=mediola - connected living AG
|
||||
|
||||
OUI:406826*
|
||||
- ID_OUI_FROM_DATABASE=Thales Optronics Limited
|
||||
+ ID_OUI_FROM_DATABASE=Thales UK Limited
|
||||
|
||||
OUI:406AAB*
|
||||
ID_OUI_FROM_DATABASE=RIM
|
||||
@@ -57436,6 +57466,9 @@ OUI:5048EB*
|
||||
OUI:504A5E*
|
||||
ID_OUI_FROM_DATABASE=Masimo Corporation
|
||||
|
||||
+OUI:504A6E*
|
||||
+ ID_OUI_FROM_DATABASE=NETGEAR INC.,
|
||||
+
|
||||
OUI:504F94*
|
||||
ID_OUI_FROM_DATABASE=Loxone Electronics GmbH
|
||||
|
||||
@@ -58480,6 +58513,9 @@ OUI:6045BD*
|
||||
OUI:604616*
|
||||
ID_OUI_FROM_DATABASE=XIAMEN VANN INTELLIGENT CO., LTD
|
||||
|
||||
+OUI:6047D4*
|
||||
+ ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd.
|
||||
+
|
||||
OUI:604A1C*
|
||||
ID_OUI_FROM_DATABASE=SUYIN Corporation
|
||||
|
||||
@@ -58630,6 +58666,9 @@ OUI:60D30A*
|
||||
OUI:60D819*
|
||||
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
|
||||
|
||||
+OUI:60D9C7*
|
||||
+ ID_OUI_FROM_DATABASE=Apple
|
||||
+
|
||||
OUI:60DA23*
|
||||
ID_OUI_FROM_DATABASE=Estech Co.,Ltd
|
||||
|
||||
@@ -58849,6 +58888,9 @@ OUI:6473E2*
|
||||
OUI:647657*
|
||||
ID_OUI_FROM_DATABASE=Innovative Security Designs
|
||||
|
||||
+OUI:6476BA*
|
||||
+ ID_OUI_FROM_DATABASE=Apple
|
||||
+
|
||||
OUI:647791*
|
||||
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
|
||||
|
||||
@@ -58882,6 +58924,9 @@ OUI:6487D7*
|
||||
OUI:6488FF*
|
||||
ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd.
|
||||
|
||||
+OUI:648D9E*
|
||||
+ ID_OUI_FROM_DATABASE=IVT Electronic Co.,Ltd
|
||||
+
|
||||
OUI:64995D*
|
||||
ID_OUI_FROM_DATABASE=LGE
|
||||
|
||||
@@ -59161,6 +59206,9 @@ OUI:687924*
|
||||
OUI:6879ED*
|
||||
ID_OUI_FROM_DATABASE=SHARP Corporation
|
||||
|
||||
+OUI:687CC8*
|
||||
+ ID_OUI_FROM_DATABASE=Measurement Systems S. de R.L.
|
||||
+
|
||||
OUI:687CD5*
|
||||
ID_OUI_FROM_DATABASE=Y Soft Corporation, a.s.
|
||||
|
||||
@@ -59425,6 +59473,9 @@ OUI:6C6F18*
|
||||
OUI:6C7039*
|
||||
ID_OUI_FROM_DATABASE=Novar GmbH
|
||||
|
||||
+OUI:6C709F*
|
||||
+ ID_OUI_FROM_DATABASE=Apple
|
||||
+
|
||||
OUI:6C71D9*
|
||||
ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc
|
||||
|
||||
@@ -59779,6 +59830,9 @@ OUI:708B78*
|
||||
OUI:708D09*
|
||||
ID_OUI_FROM_DATABASE=Nokia Corporation
|
||||
|
||||
+OUI:709383*
|
||||
+ ID_OUI_FROM_DATABASE=Intelligent Optical Network High Tech CO.,LTD.
|
||||
+
|
||||
OUI:7093F8*
|
||||
ID_OUI_FROM_DATABASE=Space Monkey, Inc.
|
||||
|
||||
@@ -60166,6 +60220,9 @@ OUI:74F612*
|
||||
OUI:74F726*
|
||||
ID_OUI_FROM_DATABASE=Neuron Robotics
|
||||
|
||||
+OUI:74F85D*
|
||||
+ ID_OUI_FROM_DATABASE=Berkeley Nucleonics Corp
|
||||
+
|
||||
OUI:74FDA0*
|
||||
ID_OUI_FROM_DATABASE=Compupal (Group) Corporation
|
||||
|
||||
@@ -60862,6 +60919,9 @@ OUI:7CFADF*
|
||||
OUI:7CFE28*
|
||||
ID_OUI_FROM_DATABASE=Salutron Inc.
|
||||
|
||||
+OUI:7CFF62*
|
||||
+ ID_OUI_FROM_DATABASE=Huizhou Super Electron Technology Co.,Ltd.
|
||||
+
|
||||
OUI:80000B*
|
||||
ID_OUI_FROM_DATABASE=Intel Corporate
|
||||
|
||||
@@ -61105,6 +61165,9 @@ OUI:80D019*
|
||||
OUI:80D18B*
|
||||
ID_OUI_FROM_DATABASE=Hangzhou I'converge Technology Co.,Ltd
|
||||
|
||||
+OUI:80D433*
|
||||
+ ID_OUI_FROM_DATABASE=LzLabs GmbH
|
||||
+
|
||||
OUI:80D733*
|
||||
ID_OUI_FROM_DATABASE=QSR Automations, Inc.
|
||||
|
||||
@@ -61336,6 +61399,9 @@ OUI:84ACA4*
|
||||
OUI:84AF1F*
|
||||
ID_OUI_FROM_DATABASE=Beat System Service Co,. Ltd.
|
||||
|
||||
+OUI:84B59C*
|
||||
+ ID_OUI_FROM_DATABASE=Juniper networks
|
||||
+
|
||||
OUI:84C2E4*
|
||||
ID_OUI_FROM_DATABASE=Jiangsu Qinheng Co., Ltd.
|
||||
|
||||
@@ -61402,6 +61468,9 @@ OUI:880355*
|
||||
OUI:880905*
|
||||
ID_OUI_FROM_DATABASE=MTMCommunications
|
||||
|
||||
+OUI:880FB6*
|
||||
+ ID_OUI_FROM_DATABASE=Jabil Circuits India Pvt Ltd,-EHTP unit
|
||||
+
|
||||
OUI:881036*
|
||||
ID_OUI_FROM_DATABASE=Panodic(ShenZhen) Electronics Limted
|
||||
|
||||
@@ -62605,6 +62674,9 @@ OUI:983000*
|
||||
OUI:983071*
|
||||
ID_OUI_FROM_DATABASE=DAIKYUNG VASCOM
|
||||
|
||||
+OUI:98349D*
|
||||
+ ID_OUI_FROM_DATABASE=Krauss Maffei Technologies GmbH
|
||||
+
|
||||
OUI:983571*
|
||||
ID_OUI_FROM_DATABASE=Sub10 Systems Ltd
|
||||
|
||||
@@ -63061,6 +63133,9 @@ OUI:9CCAD9*
|
||||
OUI:9CCD82*
|
||||
ID_OUI_FROM_DATABASE=CHENG UEI PRECISION INDUSTRY CO.,LTD
|
||||
|
||||
+OUI:9CD21E*
|
||||
+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
|
||||
+
|
||||
OUI:9CD24B*
|
||||
ID_OUI_FROM_DATABASE=zte corporation
|
||||
|
||||
@@ -63358,6 +63433,9 @@ OUI:A0CEC8*
|
||||
OUI:A0CF5B*
|
||||
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
|
||||
|
||||
+OUI:A0D12A*
|
||||
+ ID_OUI_FROM_DATABASE=AXPRO Technology Inc.
|
||||
+
|
||||
OUI:A0D3C1*
|
||||
ID_OUI_FROM_DATABASE=Hewlett Packard
|
||||
|
||||
@@ -64366,6 +64444,9 @@ OUI:B05B1F*
|
||||
OUI:B05CE5*
|
||||
ID_OUI_FROM_DATABASE=Nokia Corporation
|
||||
|
||||
+OUI:B061C7*
|
||||
+ ID_OUI_FROM_DATABASE=Ericsson-LG Enterprise
|
||||
+
|
||||
OUI:B06563*
|
||||
ID_OUI_FROM_DATABASE=Shanghai Railway Communication Factory
|
||||
|
||||
@@ -64684,6 +64765,9 @@ OUI:B46293*
|
||||
OUI:B462AD*
|
||||
ID_OUI_FROM_DATABASE=raytest GmbH
|
||||
|
||||
+OUI:B46698*
|
||||
+ ID_OUI_FROM_DATABASE=Zealabs srl
|
||||
+
|
||||
OUI:B467E9*
|
||||
ID_OUI_FROM_DATABASE=Qingdao GoerTek Technology Co., Ltd.
|
||||
|
||||
@@ -65590,6 +65674,9 @@ OUI:C098E5*
|
||||
OUI:C09C92*
|
||||
ID_OUI_FROM_DATABASE=COBY
|
||||
|
||||
+OUI:C09D26*
|
||||
+ ID_OUI_FROM_DATABASE=Topicon HK Lmd.
|
||||
+
|
||||
OUI:C09F42*
|
||||
ID_OUI_FROM_DATABASE=Apple
|
||||
|
||||
@@ -65833,6 +65920,9 @@ OUI:C45DD8*
|
||||
OUI:C46044*
|
||||
ID_OUI_FROM_DATABASE=Everex Electronics Limited
|
||||
|
||||
+OUI:C4626B*
|
||||
+ ID_OUI_FROM_DATABASE=ZPT Vigantice
|
||||
+
|
||||
OUI:C462EA*
|
||||
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
|
||||
|
||||
@@ -68605,6 +68695,9 @@ OUI:EC14F6*
|
||||
OUI:EC172F*
|
||||
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD.
|
||||
|
||||
+OUI:EC1766*
|
||||
+ ID_OUI_FROM_DATABASE=Research Centre Module
|
||||
+
|
||||
OUI:EC1A59*
|
||||
ID_OUI_FROM_DATABASE=Belkin International Inc.
|
||||
|
||||
diff --git a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb
|
||||
index 6142dc8..7f833e3 100644
|
||||
--- a/hwdb/20-pci-vendor-model.hwdb
|
||||
+++ b/hwdb/20-pci-vendor-model.hwdb
|
||||
@@ -4166,6 +4166,9 @@ pci:v00001002d00006600*
|
||||
pci:v00001002d00006601*
|
||||
ID_MODEL_FROM_DATABASE=Mars [Radeon HD 8730M]
|
||||
|
||||
+pci:v00001002d00006601sv0000103Csd00002100*
|
||||
+ ID_MODEL_FROM_DATABASE=FirePro M4100
|
||||
+
|
||||
pci:v00001002d00006602*
|
||||
ID_MODEL_FROM_DATABASE=Mars
|
||||
|
||||
@@ -4185,10 +4188,22 @@ pci:v00001002d00006607*
|
||||
ID_MODEL_FROM_DATABASE=Mars LE [Radeon HD 8530M]
|
||||
|
||||
pci:v00001002d00006610*
|
||||
- ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670/R7 250]
|
||||
+ ID_MODEL_FROM_DATABASE=Oland XT [Radeon HD 8670 / R7 250]
|
||||
|
||||
pci:v00001002d00006611*
|
||||
- ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570]
|
||||
+ ID_MODEL_FROM_DATABASE=Oland [Radeon HD 8570 / R7 240 OEM]
|
||||
+
|
||||
+pci:v00001002d00006611sv00001028sd0000210B*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R5 240 OEM
|
||||
+
|
||||
+pci:v00001002d00006611sv0000174Bsd00004248*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM
|
||||
+
|
||||
+pci:v00001002d00006611sv0000174Bsd0000A240*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM
|
||||
+
|
||||
+pci:v00001002d00006611sv00001B0Asd000090D3*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R7 240 OEM
|
||||
|
||||
pci:v00001002d00006613*
|
||||
ID_MODEL_FROM_DATABASE=Oland PRO [Radeon R7 240]
|
||||
@@ -4224,7 +4239,7 @@ pci:v00001002d00006658*
|
||||
ID_MODEL_FROM_DATABASE=Bonaire XTX [Radeon R7 260X]
|
||||
|
||||
pci:v00001002d0000665C*
|
||||
- ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770]
|
||||
+ ID_MODEL_FROM_DATABASE=Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM]
|
||||
|
||||
pci:v00001002d0000665Csv00001043sd00000452*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 7790 DirectCU II OC
|
||||
@@ -4235,6 +4250,12 @@ pci:v00001002d0000665Csv00001462sd00002930*
|
||||
pci:v00001002d0000665Csv00001462sd00002932*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 8770
|
||||
|
||||
+pci:v00001002d0000665Csv00001462sd00002934*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM
|
||||
+
|
||||
+pci:v00001002d0000665Csv0000148Csd00009260*
|
||||
+ ID_MODEL_FROM_DATABASE=Radeon R9 260 OEM
|
||||
+
|
||||
pci:v00001002d0000665Csv00001682sd00003310*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 7790 Black Edition 2 GB
|
||||
|
||||
@@ -4817,9 +4838,21 @@ pci:v00001002d00006742sv0000148Csd00006570*
|
||||
pci:v00001002d00006742sv00001682sd00006570*
|
||||
ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570]
|
||||
|
||||
+pci:v00001002d00006742sv0000174Bsd00005570*
|
||||
+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 5570]
|
||||
+
|
||||
pci:v00001002d00006742sv0000174Bsd00006570*
|
||||
ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570]
|
||||
|
||||
+pci:v00001002d00006742sv0000174Bsd00007570*
|
||||
+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 7570]
|
||||
+
|
||||
+pci:v00001002d00006742sv0000174Bsd00008510*
|
||||
+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8510]
|
||||
+
|
||||
+pci:v00001002d00006742sv0000174Bsd00008570*
|
||||
+ ID_MODEL_FROM_DATABASE=Turks [Radeon HD 8570]
|
||||
+
|
||||
pci:v00001002d00006742sv00001787sd00006570*
|
||||
ID_MODEL_FROM_DATABASE=Turks [Radeon HD 6570]
|
||||
|
||||
@@ -5541,13 +5574,13 @@ pci:v00001002d00006770sv000017AAsd00003658*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 7470A
|
||||
|
||||
pci:v00001002d00006771*
|
||||
- ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490]
|
||||
+ ID_MODEL_FROM_DATABASE=Caicos XTX [Radeon HD 8490 / R5 235X OEM]
|
||||
|
||||
pci:v00001002d00006772*
|
||||
ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 7450A]
|
||||
|
||||
pci:v00001002d00006778*
|
||||
- ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470]
|
||||
+ ID_MODEL_FROM_DATABASE=Caicos XT [Radeon HD 7470/8470 / R5 235 OEM]
|
||||
|
||||
pci:v00001002d00006778sv00001019sd00000024*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 7470
|
||||
@@ -5580,7 +5613,7 @@ pci:v00001002d00006778sv0000174Bsd0000E145*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 7470
|
||||
|
||||
pci:v00001002d00006779*
|
||||
- ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450]
|
||||
+ ID_MODEL_FROM_DATABASE=Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
|
||||
|
||||
pci:v00001002d00006779sv00001019sd00000016*
|
||||
ID_MODEL_FROM_DATABASE=Radeon HD 6450
|
||||
@@ -5979,7 +6012,7 @@ pci:v00001002d00006831*
|
||||
ID_MODEL_FROM_DATABASE=Cape Verde [AMD Radeon HD 7700M Series]
|
||||
|
||||
pci:v00001002d00006835*
|
||||
- ID_MODEL_FROM_DATABASE=Cape Verde PRX [Radeon R7 260]
|
||||
+ ID_MODEL_FROM_DATABASE=Cape Verde PRX [Radeon R9 255 OEM]
|
||||
|
||||
pci:v00001002d00006837*
|
||||
ID_MODEL_FROM_DATABASE=Cape Verde LE [Radeon HD 7730/8730]
|
||||
@@ -8967,7 +9000,7 @@ pci:v00001002d0000999C*
|
||||
ID_MODEL_FROM_DATABASE=Richland
|
||||
|
||||
pci:v00001002d0000999D*
|
||||
- ID_MODEL_FROM_DATABASE=Richland
|
||||
+ ID_MODEL_FROM_DATABASE=Richland [Radeon HD 8550D]
|
||||
|
||||
pci:v00001002d000099A0*
|
||||
ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7520G]
|
||||
@@ -17663,6 +17696,9 @@ pci:v0000109Ed0000036Esv00001461sd00000761*
|
||||
pci:v0000109Ed0000036Esv00001461sd00000771*
|
||||
ID_MODEL_FROM_DATABASE=AverMedia AVerTV DVB-T 771
|
||||
|
||||
+pci:v0000109Ed0000036Esv00001464sd0000AA00*
|
||||
+ ID_MODEL_FROM_DATABASE=iTuner Spectra8
|
||||
+
|
||||
pci:v0000109Ed0000036Esv000014F1sd00000001*
|
||||
ID_MODEL_FROM_DATABASE=Bt878 Mediastream Controller NTSC
|
||||
|
||||
@@ -27503,6 +27539,9 @@ pci:v000010ECd00005209*
|
||||
pci:v000010ECd00005227*
|
||||
ID_MODEL_FROM_DATABASE=RTS5227 PCI Express Card Reader
|
||||
|
||||
+pci:v000010ECd00005227sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v000010ECd00005229*
|
||||
ID_MODEL_FROM_DATABASE=RTS5229 PCI Express Card Reader
|
||||
|
||||
@@ -48170,9 +48209,18 @@ pci:v0000168Cd00000033*
|
||||
pci:v0000168Cd00000034*
|
||||
ID_MODEL_FROM_DATABASE=AR9462 Wireless Network Adapter
|
||||
|
||||
+pci:v0000168Cd00000034sv00001A56sd00002003*
|
||||
+ ID_MODEL_FROM_DATABASE=Killer Wireless-N 1202 Half-size Mini PCIe Card
|
||||
+
|
||||
pci:v0000168Cd00000036*
|
||||
ID_MODEL_FROM_DATABASE=QCA9565 / AR9565 Wireless Network Adapter
|
||||
|
||||
+pci:v0000168Cd00000037*
|
||||
+ ID_MODEL_FROM_DATABASE=AR9485 Wireless Network Adapter
|
||||
+
|
||||
+pci:v0000168Cd00000037sv00001A3Bsd00002100*
|
||||
+ ID_MODEL_FROM_DATABASE=AW-NB100H 802.11n Wireless Mini PCIe Card
|
||||
+
|
||||
pci:v0000168Cd0000003C*
|
||||
ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter
|
||||
|
||||
@@ -48191,6 +48239,9 @@ pci:v0000168Cd00009013*
|
||||
pci:v0000168Cd0000FF19*
|
||||
ID_MODEL_FROM_DATABASE=AR5006X Wireless Network Adapter
|
||||
|
||||
+pci:v0000168Cd0000FF1B*
|
||||
+ ID_MODEL_FROM_DATABASE=AR2425 Wireless Network Adapter [AR5007EG 802.11bg]
|
||||
+
|
||||
pci:v0000168Cd0000FF1C*
|
||||
ID_MODEL_FROM_DATABASE=AR5008 Wireless Network Adapter
|
||||
|
||||
@@ -49406,6 +49457,9 @@ pci:v00001814d00003298sv0000103Csd000018EC*
|
||||
pci:v00001814d00003592*
|
||||
ID_MODEL_FROM_DATABASE=RT3592 Wireless 802.11abgn 2T/2R PCIe
|
||||
|
||||
+pci:v00001814d0000359F*
|
||||
+ ID_MODEL_FROM_DATABASE=RT3592 PCIe Wireless Network Adapter
|
||||
+
|
||||
pci:v00001814d00005360*
|
||||
ID_MODEL_FROM_DATABASE=RT5360 Wireless 802.11n 1T/1R
|
||||
|
||||
@@ -49421,6 +49475,9 @@ pci:v00001814d00005390*
|
||||
pci:v00001814d00005390sv0000103Csd00001636*
|
||||
ID_MODEL_FROM_DATABASE=U98Z077.00 Half-size Mini PCIe Card
|
||||
|
||||
+pci:v00001814d00005392*
|
||||
+ ID_MODEL_FROM_DATABASE=RT5392 PCIe Wireless Network Adapter
|
||||
+
|
||||
pci:v00001814d0000539F*
|
||||
ID_MODEL_FROM_DATABASE=RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip]
|
||||
|
||||
@@ -50585,6 +50642,12 @@ pci:v00001957d00000087*
|
||||
pci:v00001957d000000B4*
|
||||
ID_MODEL_FROM_DATABASE=MPC8315E
|
||||
|
||||
+pci:v00001957d000000B6*
|
||||
+ ID_MODEL_FROM_DATABASE=MPC8314E
|
||||
+
|
||||
+pci:v00001957d000000B6sv00001A56sd00001101*
|
||||
+ ID_MODEL_FROM_DATABASE=Killer Xeno Pro Gigabit Ethernet Controller
|
||||
+
|
||||
pci:v00001957d000000C2*
|
||||
ID_MODEL_FROM_DATABASE=MPC8379E
|
||||
|
||||
@@ -50669,6 +50732,12 @@ pci:v00001957d00007011*
|
||||
pci:v00001957d00007018*
|
||||
ID_MODEL_FROM_DATABASE=MPC8610
|
||||
|
||||
+pci:v00001957d0000C006*
|
||||
+ ID_MODEL_FROM_DATABASE=MPC8308
|
||||
+
|
||||
+pci:v00001957d0000C006sv00001A56sd00001201*
|
||||
+ ID_MODEL_FROM_DATABASE=Killer E2100 Gigabit Ethernet Controller
|
||||
+
|
||||
pci:v00001958*
|
||||
ID_VENDOR_FROM_DATABASE=Faster Technology, LLC.
|
||||
|
||||
@@ -54164,6 +54233,9 @@ pci:v00008086d00000412*
|
||||
pci:v00008086d00000416*
|
||||
ID_MODEL_FROM_DATABASE=4th Gen Core Processor Integrated Graphics Controller
|
||||
|
||||
+pci:v00008086d00000416sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d0000041A*
|
||||
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller
|
||||
|
||||
@@ -54680,9 +54752,15 @@ pci:v00008086d0000095Asv00008086sd00005000*
|
||||
pci:v00008086d0000095Asv00008086sd00005002*
|
||||
ID_MODEL_FROM_DATABASE=Wireless-N 7265
|
||||
|
||||
+pci:v00008086d0000095Asv00008086sd0000500A*
|
||||
+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
+
|
||||
pci:v00008086d0000095Asv00008086sd00005010*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
+pci:v00008086d0000095Asv00008086sd00005012*
|
||||
+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
+
|
||||
pci:v00008086d0000095Asv00008086sd00005020*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265
|
||||
|
||||
@@ -54695,6 +54773,9 @@ pci:v00008086d0000095Asv00008086sd00005090*
|
||||
pci:v00008086d0000095Asv00008086sd00005110*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
+pci:v00008086d0000095Asv00008086sd00005190*
|
||||
+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
+
|
||||
pci:v00008086d0000095Asv00008086sd00005400*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
@@ -54707,24 +54788,30 @@ pci:v00008086d0000095Asv00008086sd00005420*
|
||||
pci:v00008086d0000095Asv00008086sd00005490*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
+pci:v00008086d0000095Asv00008086sd00005590*
|
||||
+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
+
|
||||
pci:v00008086d0000095Asv00008086sd00009010*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
-pci:v00008086d0000095Asv00008086sd00009210*
|
||||
+pci:v00008086d0000095Asv00008086sd00009110*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
-pci:v00008086d0000095Asv00008086sd00009410*
|
||||
+pci:v00008086d0000095Asv00008086sd00009210*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
-pci:v00008086d0000095B*
|
||||
- ID_MODEL_FROM_DATABASE=Wireless 7265
|
||||
+pci:v00008086d0000095Asv00008086sd00009310*
|
||||
+ ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
-pci:v00008086d0000095Bsv00008086sd0000500A*
|
||||
+pci:v00008086d0000095Asv00008086sd00009410*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
-pci:v00008086d0000095Bsv00008086sd00005012*
|
||||
+pci:v00008086d0000095Asv00008086sd00009510*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-AC 7265
|
||||
|
||||
+pci:v00008086d0000095B*
|
||||
+ ID_MODEL_FROM_DATABASE=Wireless 7265
|
||||
+
|
||||
pci:v00008086d0000095Bsv00008086sd00005200*
|
||||
ID_MODEL_FROM_DATABASE=Dual Band Wireless-N 7265
|
||||
|
||||
@@ -54860,6 +54947,9 @@ pci:v00008086d00000C01*
|
||||
pci:v00008086d00000C04*
|
||||
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
|
||||
|
||||
+pci:v00008086d00000C04sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00000C05*
|
||||
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller
|
||||
|
||||
@@ -54872,6 +54962,9 @@ pci:v00008086d00000C09*
|
||||
pci:v00008086d00000C0C*
|
||||
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
|
||||
|
||||
+pci:v00008086d00000C0Csv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00000C46*
|
||||
ID_MODEL_FROM_DATABASE=Atom Processor S1200 PCI Express Root Port 1
|
||||
|
||||
@@ -57986,6 +58079,9 @@ pci:v00008086d00001539*
|
||||
pci:v00008086d0000153A*
|
||||
ID_MODEL_FROM_DATABASE=Ethernet Connection I217-LM
|
||||
|
||||
+pci:v00008086d0000153Asv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d0000153B*
|
||||
ID_MODEL_FROM_DATABASE=Ethernet Connection I217-V
|
||||
|
||||
@@ -69035,6 +69131,9 @@ pci:v00008086d00008C02*
|
||||
pci:v00008086d00008C03*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
|
||||
|
||||
+pci:v00008086d00008C03sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C04*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
|
||||
|
||||
@@ -69062,12 +69161,18 @@ pci:v00008086d00008C0F*
|
||||
pci:v00008086d00008C10*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1
|
||||
|
||||
+pci:v00008086d00008C10sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C11*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #1
|
||||
|
||||
pci:v00008086d00008C12*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2
|
||||
|
||||
+pci:v00008086d00008C12sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C13*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family PCI Express Root Port #2
|
||||
|
||||
@@ -69110,12 +69215,18 @@ pci:v00008086d00008C1F*
|
||||
pci:v00008086d00008C20*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller
|
||||
|
||||
+pci:v00008086d00008C20sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C21*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset High Definition Audio Controller
|
||||
|
||||
pci:v00008086d00008C22*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family SMBus Controller
|
||||
|
||||
+pci:v00008086d00008C22sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C23*
|
||||
ID_MODEL_FROM_DATABASE=8 Series Chipset Family CHAP Counters
|
||||
|
||||
@@ -69125,12 +69236,21 @@ pci:v00008086d00008C24*
|
||||
pci:v00008086d00008C26*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #1
|
||||
|
||||
+pci:v00008086d00008C26sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C2D*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB EHCI #2
|
||||
|
||||
+pci:v00008086d00008C2Dsv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C31*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI
|
||||
|
||||
+pci:v00008086d00008C31sv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C33*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LAN Controller
|
||||
|
||||
@@ -69140,6 +69260,9 @@ pci:v00008086d00008C34*
|
||||
pci:v00008086d00008C3A*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #1
|
||||
|
||||
+pci:v00008086d00008C3Asv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C3B*
|
||||
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family MEI Controller #2
|
||||
|
||||
@@ -69197,6 +69320,9 @@ pci:v00008086d00008C4E*
|
||||
pci:v00008086d00008C4F*
|
||||
ID_MODEL_FROM_DATABASE=QM87 Express LPC Controller
|
||||
|
||||
+pci:v00008086d00008C4Fsv000017AAsd0000220E*
|
||||
+ ID_MODEL_FROM_DATABASE=ThinkPad T440p
|
||||
+
|
||||
pci:v00008086d00008C50*
|
||||
ID_MODEL_FROM_DATABASE=B85 Express LPC Controller
|
||||
|
||||
diff --git a/hwdb/20-usb-vendor-model.hwdb b/hwdb/20-usb-vendor-model.hwdb
|
||||
index 6663820..60dbcd2 100644
|
||||
--- a/hwdb/20-usb-vendor-model.hwdb
|
||||
+++ b/hwdb/20-usb-vendor-model.hwdb
|
||||
@@ -46055,6 +46055,12 @@ usb:v1B5A*
|
||||
usb:v1B65*
|
||||
ID_VENDOR_FROM_DATABASE=The Hong Kong Standards and Testing Centre Ltd.
|
||||
|
||||
+usb:v1B71*
|
||||
+ ID_VENDOR_FROM_DATABASE=Fushicai
|
||||
+
|
||||
+usb:v1B71p3002*
|
||||
+ ID_MODEL_FROM_DATABASE=USBTV007 Video Grabber [EasyCAP]
|
||||
+
|
||||
usb:v1B72*
|
||||
ID_VENDOR_FROM_DATABASE=ATERGI TECHNOLOGY CO., LTD.
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
From 43539d6b60ef0db3e98d00bef0024614c8c1807a Mon Sep 17 00:00:00 2001
|
||||
From: George McCollister <george.mccollister@gmail.com>
|
||||
Date: Tue, 31 Dec 2013 14:37:32 -0600
|
||||
Subject: [PATCH] journal: Add missing byte order conversions
|
||||
|
||||
Convert entry_array.items[0] to host byte order prior to passing it to
|
||||
chain_cache_put().
|
||||
|
||||
[zj: also use le64toh in journal-verify.c]
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=73194
|
||||
---
|
||||
src/journal/journal-file.c | 4 ++--
|
||||
src/journal/journal-verify.c | 6 +++---
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index 5ef6a2a..ba65464 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -1452,7 +1452,7 @@ static int generic_array_get(
|
||||
|
||||
found:
|
||||
/* Let's cache this item for the next invocation */
|
||||
- chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t, i);
|
||||
+ chain_cache_put(f->chain_cache, ci, first, a, le64toh(o->entry_array.items[0]), t, i);
|
||||
|
||||
r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o);
|
||||
if (r < 0)
|
||||
@@ -1685,7 +1685,7 @@ found:
|
||||
return 0;
|
||||
|
||||
/* Let's cache this item for the next invocation */
|
||||
- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, subtract_one ? (i > 0 ? i-1 : (uint64_t) -1) : i);
|
||||
+ chain_cache_put(f->chain_cache, ci, first, a, le64toh(array->entry_array.items[0]), t, subtract_one ? (i > 0 ? i-1 : (uint64_t) -1) : i);
|
||||
|
||||
if (subtract_one && i == 0)
|
||||
p = last_p;
|
||||
diff --git a/src/journal/journal-verify.c b/src/journal/journal-verify.c
|
||||
index 3405811..82b0f0a 100644
|
||||
--- a/src/journal/journal-verify.c
|
||||
+++ b/src/journal/journal-verify.c
|
||||
@@ -249,12 +249,12 @@ static int journal_file_object_verify(JournalFile *f, uint64_t offset, Object *o
|
||||
}
|
||||
|
||||
for (i = 0; i < journal_file_entry_array_n_items(o); i++)
|
||||
- if (o->entry_array.items[i] != 0 &&
|
||||
- !VALID64(o->entry_array.items[i])) {
|
||||
+ if (le64toh(o->entry_array.items[i]) != 0 &&
|
||||
+ !VALID64(le64toh(o->entry_array.items[i]))) {
|
||||
log_error(OFSfmt": invalid object entry array item (%"PRIu64"/%"PRIu64"): "OFSfmt,
|
||||
offset,
|
||||
i, journal_file_entry_array_n_items(o),
|
||||
- o->entry_array.items[i]);
|
||||
+ le64toh(o->entry_array.items[i]));
|
||||
return -EBADMSG;
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From c47bbfc9af040f1b0fce2edced4136ee921d9e70 Mon Sep 17 00:00:00 2001
|
||||
From: Raudi <mpell@web.de>
|
||||
Date: Mon, 6 Jan 2014 19:44:08 -0500
|
||||
Subject: [PATCH] hwdb: change key mappings for Samsung 90X3A
|
||||
|
||||
The Key codes didn't match with the described key. Also the key
|
||||
identifier strings were missing. I hope I chose appropriate ones.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=70296
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index ab9e569..644cb94 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -886,7 +886,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr*
|
||||
KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer
|
||||
|
||||
# Series 9
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr*
|
||||
KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up
|
||||
KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down
|
||||
@@ -894,6 +893,13 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr
|
||||
KEYBOARD_KEY_97=! # Fn+F12 Wi-Fi toggle
|
||||
KEYBOARD_KEY_d5=! # Fn+F6 battery life extender
|
||||
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr*
|
||||
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
+ KEYBOARD_KEY_8d=!prog3 # Fn+F6 performance mode
|
||||
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F7 keyboard backlight down
|
||||
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up
|
||||
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle
|
||||
+
|
||||
# SQ1US
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr*
|
||||
KEYBOARD_KEY_d4=menu
|
|
@ -0,0 +1,22 @@
|
|||
From 8e48fd6cc5e12bb1662970dc7a7d306550a9a079 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Pisklov <dpisklov@gmail.com>
|
||||
Date: Mon, 6 Jan 2014 20:06:59 -0500
|
||||
Subject: [PATCH] hwdb: add Samsung 700G
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=72311
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index 644cb94..ccfc734 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -875,6 +875,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr*
|
||||
KEYBOARD_KEY_a9=! # Fn Lock - Function lock off
|
||||
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr*
|
||||
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
|
@ -0,0 +1,28 @@
|
|||
From 1bfc778f2c82180873407f2da8a8c3335ae37b07 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Pisklov <dpisklov@gmail.com>
|
||||
Date: Mon, 6 Jan 2014 20:08:21 -0500
|
||||
Subject: [PATCH] hwdb: remove duplicate entry for Samsung 700Z
|
||||
|
||||
keyboardbrightnessup/down are not even real keys.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=72311
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index ccfc734..cf3d1fb 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -918,11 +918,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:pvr*
|
||||
KEYBOARD_KEY_77=f22 # Touchpad on
|
||||
KEYBOARD_KEY_79=f23 # Touchpad off
|
||||
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
|
||||
- KEYBOARD_KEY_ba=ejectcd
|
||||
- KEYBOARD_KEY_96=keyboardbrightnessup
|
||||
- KEYBOARD_KEY_97=keyboardbrightnessdown
|
||||
-
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:pvr*
|
||||
KEYBOARD_KEY_ad=leftmeta
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
From 0ec2b82ee4f1bb1fdbf3293cfe10e59240d5c533 Mon Sep 17 00:00:00 2001
|
||||
From: AppleBloom <rat.o.drat@gmail.com>
|
||||
Date: Mon, 6 Jan 2014 20:51:47 -0500
|
||||
Subject: [PATCH] hwdb: fix match for Thinkpad X201 tablet
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=71929
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index cf3d1fb..d253724 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -524,6 +524,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr*
|
||||
|
||||
# Thinkpad X200_Tablet
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X2*Tablet*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet*
|
||||
KEYBOARD_KEY_5d=menu
|
||||
KEYBOARD_KEY_63=fn
|
||||
KEYBOARD_KEY_66=screenlock
|
|
@ -0,0 +1,26 @@
|
|||
From 5ed0efb00ec5cf103debcb4fc5f38398c59cc619 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Tue, 7 Jan 2014 09:40:01 +0100
|
||||
Subject: [PATCH] keymap: Recognize different Toshiba Satellite capitalizations
|
||||
|
||||
https://launchpad.net/bugs/665918
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index d253724..84a061f 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -1056,9 +1056,9 @@ keyboard:dmi:bvn*:bvr*:bd*:svnFOXCONN:pnQBOOK:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnMTC:pn*:pvrA0:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnMio*Technology:pnN890:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnPEGATRON*CORP.:pnSpring*Peak:*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*[uU]30[05]*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*[uU][35]0[05]*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE*[uU][35]0[05]*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*Pro*[uU]300*:pvr*
|
||||
-keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE*[uU]500*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnViooo*Corporation:pnPT17:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnHANNspree:pnSN10E100:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pni1520M:*
|
|
@ -0,0 +1,22 @@
|
|||
From b1f114caf2e2b0913e4122847c7fa2b182b86771 Mon Sep 17 00:00:00 2001
|
||||
From: Michele Curti <michele.curti@gmail.com>
|
||||
Date: Tue, 7 Jan 2014 17:51:41 +0100
|
||||
Subject: [PATCH] sleep.c: fix typo
|
||||
|
||||
---
|
||||
src/sleep/sleep.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
|
||||
index f96987f..c228cb6 100644
|
||||
--- a/src/sleep/sleep.c
|
||||
+++ b/src/sleep/sleep.c
|
||||
@@ -90,7 +90,7 @@ static int execute(char **modes, char **states) {
|
||||
const char* note = strappenda("SLEEP=", arg_verb);
|
||||
|
||||
/* This file is opened first, so that if we hit an error,
|
||||
- * we can abort before modyfing any state. */
|
||||
+ * we can abort before modifying any state. */
|
||||
f = fopen("/sys/power/state", "we");
|
||||
if (!f) {
|
||||
log_error("Failed to open /sys/power/state: %m");
|
|
@ -0,0 +1,22 @@
|
|||
From 35fbb83e322dfe14771d0c84b623b423a38b1200 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Thu, 9 Jan 2014 16:43:00 +0100
|
||||
Subject: [PATCH] delta: ensure that d_type will be set on every fs
|
||||
|
||||
---
|
||||
src/delta/delta.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/delta/delta.c b/src/delta/delta.c
|
||||
index ae658f9..a8dd57e 100644
|
||||
--- a/src/delta/delta.c
|
||||
+++ b/src/delta/delta.c
|
||||
@@ -316,6 +316,8 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
|
||||
if (!de)
|
||||
return -errno;
|
||||
|
||||
+ dirent_ensure_type(d, de);
|
||||
+
|
||||
if (dropins && de->d_type == DT_DIR && endswith(de->d_name, ".d"))
|
||||
enumerate_dir_d(top, bottom, drops, path, de->d_name);
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 3bef88018c93e77d50d3206e84f6fa2fe8c2fb99 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Thu, 9 Jan 2014 18:00:50 +0100
|
||||
Subject: [PATCH] tmpfiles: don't allow label_fix to print ENOENT when we want
|
||||
to ignore it
|
||||
|
||||
---
|
||||
src/tmpfiles/tmpfiles.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
||||
index 4dd1638..5e49cc8 100644
|
||||
--- a/src/tmpfiles/tmpfiles.c
|
||||
+++ b/src/tmpfiles/tmpfiles.c
|
||||
@@ -435,8 +435,6 @@ finish:
|
||||
}
|
||||
|
||||
static int item_set_perms_full(Item *i, const char *path, bool ignore_enoent) {
|
||||
- int r;
|
||||
-
|
||||
/* not using i->path directly because it may be a glob */
|
||||
if (i->mode_set)
|
||||
if (chmod(path, i->mode) < 0) {
|
||||
@@ -457,8 +455,7 @@ static int item_set_perms_full(Item *i, const char *path, bool ignore_enoent) {
|
||||
}
|
||||
}
|
||||
|
||||
- r = label_fix(path, false, false);
|
||||
- return r == -ENOENT && ignore_enoent ? 0 : r;
|
||||
+ return label_fix(path, ignore_enoent, false);
|
||||
}
|
||||
|
||||
static int item_set_perms(Item *i, const char *path) {
|
|
@ -0,0 +1,86 @@
|
|||
From 4f4e72a317126e9d41db675ddae27a0942cd23bf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 9 Jan 2014 22:23:32 -0500
|
||||
Subject: [PATCH] man: mention which variables will be expanded in ExecStart
|
||||
|
||||
Conflicts:
|
||||
man/systemd.service.xml
|
||||
---
|
||||
man/systemd.exec.xml | 6 ++++--
|
||||
man/systemd.service.xml | 35 +++++++++++++++++++++++------------
|
||||
2 files changed, 27 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
|
||||
index e213ec4..c8414d4 100644
|
||||
--- a/man/systemd.exec.xml
|
||||
+++ b/man/systemd.exec.xml
|
||||
@@ -295,9 +295,11 @@
|
||||
for the assignment.</para>
|
||||
|
||||
<para>Example:
|
||||
- <programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"</programlisting>
|
||||
+ <programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6"</programlisting>
|
||||
gives three variables <literal>VAR1</literal>,
|
||||
- <literal>VAR2</literal>, <literal>VAR3</literal>.
|
||||
+ <literal>VAR2</literal>, <literal>VAR3</literal>
|
||||
+ with the values <literal>word1 word2</literal>,
|
||||
+ <literal>word3</literal>, <literal>$word 5 6</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index af3e0f2..4fb21ba 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -392,16 +392,32 @@
|
||||
replaced by the value of the
|
||||
environment variable including all
|
||||
whitespace it contains, resulting in a
|
||||
- single argument. Use
|
||||
+ single argument. Use
|
||||
<literal>$FOO</literal> as a separate
|
||||
word on the command line, in which
|
||||
case it will be replaced by the value
|
||||
- of the environment variable split up
|
||||
- at whitespace, resulting in zero or
|
||||
- more arguments. To pass literal dollar sign
|
||||
- use <literal>$$</literal>. Note that the first
|
||||
- argument (i.e. the program to execute)
|
||||
- may not be a variable.</para>
|
||||
+ of the environment variable split at
|
||||
+ whitespace, resulting in zero or more
|
||||
+ arguments. To pass a literal dollar
|
||||
+ sign, use <literal>$$</literal>.
|
||||
+ Variables whose value is not known at
|
||||
+ expansion time are treated as empty
|
||||
+ strings. Note that the first argument
|
||||
+ (i.e. the program to execute) may not
|
||||
+ be a variable.</para>
|
||||
+
|
||||
+ <para>Variables to be used in this
|
||||
+ fashion may be defined through
|
||||
+ <varname>Environment=</varname> and
|
||||
+ <varname>EnvironmentFile=</varname>.
|
||||
+ In addition, variables listed in
|
||||
+ section "Environment variables in
|
||||
+ spawned processes" in
|
||||
+ <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
+ which are considered "static
|
||||
+ configuration" may used (this includes
|
||||
+ e.g. <varname>$USER</varname>, but not
|
||||
+ <varname>$TERM</varname>).</para>
|
||||
|
||||
<para>Optionally, if the absolute file
|
||||
name is prefixed with
|
||||
@@ -429,11 +445,6 @@
|
||||
<programlisting>ExecStart=/bin/sh -c 'dmesg | tac'
|
||||
</programlisting>
|
||||
|
||||
- <para>Only select environment variables that
|
||||
- are set for executed commands. See
|
||||
- <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
- </para>
|
||||
-
|
||||
<para>Example:</para>
|
||||
<programlisting>ExecStart=/bin/echo one ; /bin/echo "two two"
|
||||
</programlisting>
|
|
@ -0,0 +1,28 @@
|
|||
From 0fb47635e6db4d27b821388274c0c83d612fc0bb Mon Sep 17 00:00:00 2001
|
||||
From: Unai Uribarri <unaiur@gmail.com>
|
||||
Date: Sat, 11 Jan 2014 09:19:41 -0500
|
||||
Subject: [PATCH] hwdb: Add support for Toshiba Satellite P75-A7200 keyboard
|
||||
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index 84a061f..e3d1f02 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -1012,6 +1012,14 @@ keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940
|
||||
KEYBOARD_KEY_13e=switchvideomode
|
||||
KEYBOARD_KEY_13f=f21 # Touchpad toggle
|
||||
|
||||
+# Satellite P75-A7200
|
||||
+keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:pvr*
|
||||
+ KEYBOARD_KEY_13c=brightnessdown
|
||||
+ KEYBOARD_KEY_13d=brightnessup
|
||||
+ KEYBOARD_KEY_13e=switchvideomode
|
||||
+ KEYBOARD_KEY_13f=touchpad_toggle
|
||||
+ KEYBOARD_KEY_9e=wlan
|
||||
+
|
||||
###########################################################
|
||||
# VIA
|
||||
###########################################################
|
|
@ -0,0 +1,321 @@
|
|||
From 9b9103a07cc32fa76be4c71fcd9a93b5d946edd4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 28 Dec 2013 19:33:23 -0500
|
||||
Subject: [PATCH] journal: fix access to munmapped memory in
|
||||
sd_journal_enumerate_unique
|
||||
|
||||
sd_j_e_u needs to keep a reference to an object while comparing it
|
||||
with possibly duplicate objects in other files. Because the size of
|
||||
mmap cache is limited, with enough files and object to compare to,
|
||||
at some point the object being compared would be munmapped, resulting
|
||||
in a segmentation fault.
|
||||
|
||||
Fix this issue by turning keep_always into a reference count that can
|
||||
be increased and decreased. Other callers which set keep_always=true
|
||||
are unmodified: their references are never released but are ignored
|
||||
when the whole file is closed, which happens at some point. keep_always
|
||||
is increased in sd_j_e_u and later on released.
|
||||
---
|
||||
src/journal/journal-file.c | 5 +---
|
||||
src/journal/journal-file.h | 24 +++++++++++++++++++
|
||||
src/journal/journal-verify.c | 4 ----
|
||||
src/journal/mmap-cache.c | 57 +++++++++++++++++++++++++++++++++++---------
|
||||
src/journal/mmap-cache.h | 18 +++++++++++++-
|
||||
src/journal/sd-journal.c | 18 +++++++++++---
|
||||
6 files changed, 103 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
|
||||
index ba65464..4d9787a 100644
|
||||
--- a/src/journal/journal-file.c
|
||||
+++ b/src/journal/journal-file.c
|
||||
@@ -419,7 +419,6 @@ int journal_file_move_to_object(JournalFile *f, int type, uint64_t offset, Objec
|
||||
void *t;
|
||||
Object *o;
|
||||
uint64_t s;
|
||||
- unsigned context;
|
||||
|
||||
assert(f);
|
||||
assert(ret);
|
||||
@@ -428,10 +427,8 @@ int journal_file_move_to_object(JournalFile *f, int type, uint64_t offset, Objec
|
||||
if (!VALID64(offset))
|
||||
return -EFAULT;
|
||||
|
||||
- /* One context for each type, plus one catch-all for the rest */
|
||||
- context = type > 0 && type < _OBJECT_TYPE_MAX ? type : 0;
|
||||
|
||||
- r = journal_file_move_to(f, context, false, offset, sizeof(ObjectHeader), &t);
|
||||
+ r = journal_file_move_to(f, type_to_context(type), false, offset, sizeof(ObjectHeader), &t);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h
|
||||
index 50bdb67..0bd23f7 100644
|
||||
--- a/src/journal/journal-file.h
|
||||
+++ b/src/journal/journal-file.h
|
||||
@@ -128,6 +128,10 @@ int journal_file_open_reliably(
|
||||
#define ALIGN64(x) (((x) + 7ULL) & ~7ULL)
|
||||
#define VALID64(x) (((x) & 7ULL) == 0ULL)
|
||||
|
||||
+/* Use six characters to cover the offsets common in smallish journal
|
||||
+ * files without adding too many zeros. */
|
||||
+#define OFSfmt "%06"PRIx64
|
||||
+
|
||||
static inline bool VALID_REALTIME(uint64_t u) {
|
||||
/* This considers timestamps until the year 3112 valid. That should be plenty room... */
|
||||
return u > 0 && u < (1ULL << 55);
|
||||
@@ -197,3 +201,23 @@ int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, usec_t *
|
||||
int journal_file_get_cutoff_monotonic_usec(JournalFile *f, sd_id128_t boot, usec_t *from, usec_t *to);
|
||||
|
||||
bool journal_file_rotate_suggested(JournalFile *f, usec_t max_file_usec);
|
||||
+
|
||||
+
|
||||
+static unsigned type_to_context(int type) {
|
||||
+ /* One context for each type, plus one catch-all for the rest */
|
||||
+ return type > 0 && type < _OBJECT_TYPE_MAX ? type : 0;
|
||||
+}
|
||||
+
|
||||
+static inline int journal_file_object_keep(JournalFile *f, Object *o, uint64_t offset) {
|
||||
+ unsigned context = type_to_context(o->object.type);
|
||||
+
|
||||
+ return mmap_cache_get(f->mmap, f->fd, f->prot, context, true,
|
||||
+ offset, o->object.size, &f->last_stat, NULL);
|
||||
+}
|
||||
+
|
||||
+static inline int journal_file_object_release(JournalFile *f, Object *o, uint64_t offset) {
|
||||
+ unsigned context = type_to_context(o->object.type);
|
||||
+
|
||||
+ return mmap_cache_release(f->mmap, f->fd, f->prot, context,
|
||||
+ offset, o->object.size);
|
||||
+}
|
||||
diff --git a/src/journal/journal-verify.c b/src/journal/journal-verify.c
|
||||
index 82b0f0a..f2422ff 100644
|
||||
--- a/src/journal/journal-verify.c
|
||||
+++ b/src/journal/journal-verify.c
|
||||
@@ -34,10 +34,6 @@
|
||||
#include "compress.h"
|
||||
#include "fsprg.h"
|
||||
|
||||
-/* Use six characters to cover the offsets common in smallish journal
|
||||
- * files without adding to many zeros. */
|
||||
-#define OFSfmt "%06"PRIx64
|
||||
-
|
||||
static int journal_file_object_verify(JournalFile *f, uint64_t offset, Object *o) {
|
||||
uint64_t i;
|
||||
|
||||
diff --git a/src/journal/mmap-cache.c b/src/journal/mmap-cache.c
|
||||
index 42a8a7d..24b2bb8 100644
|
||||
--- a/src/journal/mmap-cache.c
|
||||
+++ b/src/journal/mmap-cache.c
|
||||
@@ -38,7 +38,7 @@ typedef struct FileDescriptor FileDescriptor;
|
||||
struct Window {
|
||||
MMapCache *cache;
|
||||
|
||||
- bool keep_always;
|
||||
+ unsigned keep_always;
|
||||
bool in_unused;
|
||||
|
||||
int prot;
|
||||
@@ -185,7 +185,7 @@ static void context_detach_window(Context *c) {
|
||||
c->window = NULL;
|
||||
LIST_REMOVE(Context, by_window, w->contexts, c);
|
||||
|
||||
- if (!w->contexts && !w->keep_always) {
|
||||
+ if (!w->contexts && w->keep_always == 0) {
|
||||
/* Not used anymore? */
|
||||
LIST_PREPEND(Window, unused, c->cache->unused, w);
|
||||
if (!c->cache->last_unused)
|
||||
@@ -360,7 +360,6 @@ static int try_context(
|
||||
assert(m->n_ref > 0);
|
||||
assert(fd >= 0);
|
||||
assert(size > 0);
|
||||
- assert(ret);
|
||||
|
||||
c = hashmap_get(m->contexts, UINT_TO_PTR(context+1));
|
||||
if (!c)
|
||||
@@ -378,9 +377,10 @@ static int try_context(
|
||||
return 0;
|
||||
}
|
||||
|
||||
- c->window->keep_always = c->window->keep_always || keep_always;
|
||||
+ c->window->keep_always += keep_always;
|
||||
|
||||
- *ret = (uint8_t*) c->window->ptr + (offset - c->window->offset);
|
||||
+ if (ret)
|
||||
+ *ret = (uint8_t*) c->window->ptr + (offset - c->window->offset);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -402,7 +402,6 @@ static int find_mmap(
|
||||
assert(m->n_ref > 0);
|
||||
assert(fd >= 0);
|
||||
assert(size > 0);
|
||||
- assert(ret);
|
||||
|
||||
f = hashmap_get(m->fds, INT_TO_PTR(fd + 1));
|
||||
if (!f)
|
||||
@@ -422,9 +421,10 @@ static int find_mmap(
|
||||
return -ENOMEM;
|
||||
|
||||
context_attach_window(c, w);
|
||||
- w->keep_always = w->keep_always || keep_always;
|
||||
+ w->keep_always += keep_always;
|
||||
|
||||
- *ret = (uint8_t*) w->ptr + (offset - w->offset);
|
||||
+ if (ret)
|
||||
+ *ret = (uint8_t*) w->ptr + (offset - w->offset);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -450,7 +450,6 @@ static int add_mmap(
|
||||
assert(m->n_ref > 0);
|
||||
assert(fd >= 0);
|
||||
assert(size > 0);
|
||||
- assert(ret);
|
||||
|
||||
woffset = offset & ~((uint64_t) page_size() - 1ULL);
|
||||
wsize = size + (offset - woffset);
|
||||
@@ -520,7 +519,8 @@ static int add_mmap(
|
||||
c->window = w;
|
||||
LIST_PREPEND(Context, by_window, w->contexts, c);
|
||||
|
||||
- *ret = (uint8_t*) w->ptr + (offset - w->offset);
|
||||
+ if (ret)
|
||||
+ *ret = (uint8_t*) w->ptr + (offset - w->offset);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -541,7 +541,6 @@ int mmap_cache_get(
|
||||
assert(m->n_ref > 0);
|
||||
assert(fd >= 0);
|
||||
assert(size > 0);
|
||||
- assert(ret);
|
||||
|
||||
/* Check whether the current context is the right one already */
|
||||
r = try_context(m, fd, prot, context, keep_always, offset, size, ret);
|
||||
@@ -563,6 +562,42 @@ int mmap_cache_get(
|
||||
return add_mmap(m, fd, prot, context, keep_always, offset, size, st, ret);
|
||||
}
|
||||
|
||||
+int mmap_cache_release(
|
||||
+ MMapCache *m,
|
||||
+ int fd,
|
||||
+ int prot,
|
||||
+ unsigned context,
|
||||
+ uint64_t offset,
|
||||
+ size_t size) {
|
||||
+
|
||||
+ FileDescriptor *f;
|
||||
+ Window *w;
|
||||
+
|
||||
+ assert(m);
|
||||
+ assert(m->n_ref > 0);
|
||||
+ assert(fd >= 0);
|
||||
+ assert(size > 0);
|
||||
+
|
||||
+ f = hashmap_get(m->fds, INT_TO_PTR(fd + 1));
|
||||
+ if (!f)
|
||||
+ return -EBADF;
|
||||
+
|
||||
+ assert(f->fd == fd);
|
||||
+
|
||||
+ LIST_FOREACH(by_fd, w, f->windows)
|
||||
+ if (window_matches(w, fd, prot, offset, size))
|
||||
+ break;
|
||||
+
|
||||
+ if (!w)
|
||||
+ return -ENOENT;
|
||||
+
|
||||
+ if (w->keep_always == 0)
|
||||
+ return -ENOLCK;
|
||||
+
|
||||
+ w->keep_always -= 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void mmap_cache_close_fd(MMapCache *m, int fd) {
|
||||
FileDescriptor *f;
|
||||
|
||||
diff --git a/src/journal/mmap-cache.h b/src/journal/mmap-cache.h
|
||||
index 912336d..647555a 100644
|
||||
--- a/src/journal/mmap-cache.h
|
||||
+++ b/src/journal/mmap-cache.h
|
||||
@@ -31,7 +31,23 @@ MMapCache* mmap_cache_new(void);
|
||||
MMapCache* mmap_cache_ref(MMapCache *m);
|
||||
MMapCache* mmap_cache_unref(MMapCache *m);
|
||||
|
||||
-int mmap_cache_get(MMapCache *m, int fd, int prot, unsigned context, bool keep_always, uint64_t offset, size_t size, struct stat *st, void **ret);
|
||||
+int mmap_cache_get(
|
||||
+ MMapCache *m,
|
||||
+ int fd,
|
||||
+ int prot,
|
||||
+ unsigned context,
|
||||
+ bool keep_always,
|
||||
+ uint64_t offset,
|
||||
+ size_t size,
|
||||
+ struct stat *st,
|
||||
+ void **ret);
|
||||
+int mmap_cache_release(
|
||||
+ MMapCache *m,
|
||||
+ int fd,
|
||||
+ int prot,
|
||||
+ unsigned context,
|
||||
+ uint64_t offset,
|
||||
+ size_t size);
|
||||
void mmap_cache_close_fd(MMapCache *m, int fd);
|
||||
void mmap_cache_close_context(MMapCache *m, unsigned context);
|
||||
|
||||
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
|
||||
index 52abbe9..46c3feb 100644
|
||||
--- a/src/journal/sd-journal.c
|
||||
+++ b/src/journal/sd-journal.c
|
||||
@@ -2508,9 +2508,7 @@ _public_ int sd_journal_query_unique(sd_journal *j, const char *field) {
|
||||
}
|
||||
|
||||
_public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_t *l) {
|
||||
- Object *o;
|
||||
size_t k;
|
||||
- int r;
|
||||
|
||||
if (!j)
|
||||
return -EINVAL;
|
||||
@@ -2535,9 +2533,11 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_
|
||||
for (;;) {
|
||||
JournalFile *of;
|
||||
Iterator i;
|
||||
+ Object *o;
|
||||
const void *odata;
|
||||
size_t ol;
|
||||
bool found;
|
||||
+ int r;
|
||||
|
||||
/* Proceed to next data object in the field's linked list */
|
||||
if (j->unique_offset == 0) {
|
||||
@@ -2574,8 +2574,16 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_
|
||||
return r;
|
||||
|
||||
/* Let's do the type check by hand, since we used 0 context above. */
|
||||
- if (o->object.type != OBJECT_DATA)
|
||||
+ if (o->object.type != OBJECT_DATA) {
|
||||
+ log_error("%s:offset " OFSfmt ": object has type %d, expected %d",
|
||||
+ j->unique_file->path, j->unique_offset,
|
||||
+ o->object.type, OBJECT_DATA);
|
||||
return -EBADMSG;
|
||||
+ }
|
||||
+
|
||||
+ r = journal_file_object_keep(j->unique_file, o, j->unique_offset);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
|
||||
r = return_data(j, j->unique_file, o, &odata, &ol);
|
||||
if (r < 0)
|
||||
@@ -2609,6 +2617,10 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_
|
||||
if (found)
|
||||
continue;
|
||||
|
||||
+ r = journal_file_object_release(j->unique_file, o, j->unique_offset);
|
||||
+ if (r < 0)
|
||||
+ return r;
|
||||
+
|
||||
r = return_data(j, j->unique_file, o, data, l);
|
||||
if (r < 0)
|
||||
return r;
|
|
@ -0,0 +1,32 @@
|
|||
From 182a32427b50aed5812833e3ecb8a6078160a501 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C5=81ukasz=20Stelmach?= <l.stelmach@samsung.com>
|
||||
Date: Tue, 7 Jan 2014 15:00:22 +0100
|
||||
Subject: [PATCH] gpt-auto-generator: skip nonexistent devices
|
||||
|
||||
The devices we work with have eMMC chips for storage. The chips
|
||||
provide four "hardware" partitions. The first is /dev/mmcblk0, it
|
||||
takes almost whole space and holds a GPT with several real partitions
|
||||
(/dev/mmcblk0p?). Then there are three block devices (mmcblk0boot0,
|
||||
mmcblk0boot1, rpmb) that are part of the same hardware as mmcblk0 that
|
||||
are presented by the kernel as children of the latter. That relationship
|
||||
makes gpt-auto-generator try to peek them but since they are not GPT
|
||||
partitions blkid_do_safeprobe() returns -2 making verify_gpt_parition()
|
||||
function return -ENODEV.
|
||||
---
|
||||
src/gpt-auto-generator/gpt-auto-generator.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
index 25440e7..0e8e959 100644
|
||||
--- a/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
@@ -298,6 +298,9 @@ static int enumerate_partitions(struct udev *udev, dev_t dev) {
|
||||
|
||||
r = verify_gpt_partition(node, &type_id, &nr, &fstype);
|
||||
if (r < 0) {
|
||||
+ /* skip child devices which are not detected properly */
|
||||
+ if (r == -ENODEV)
|
||||
+ continue;
|
||||
log_error("Failed to verify GPT partition %s: %s",
|
||||
node, strerror(-r));
|
||||
return r;
|
|
@ -0,0 +1,38 @@
|
|||
From 15ef380be7e38898fe2aef4ae3aa6fb0ce804564 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 11 Jan 2014 16:45:29 -0500
|
||||
Subject: [PATCH] gpt-auto-generator: use EBADSLT code when unable to detect
|
||||
partition type
|
||||
|
||||
ENODEV suggests that something is missing, which is be misleading
|
||||
here.
|
||||
---
|
||||
src/gpt-auto-generator/gpt-auto-generator.c | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
index 0e8e959..d7c09f0 100644
|
||||
--- a/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
|
||||
@@ -74,10 +74,8 @@ static int verify_gpt_partition(const char *node, sd_id128_t *type, unsigned *nr
|
||||
|
||||
errno = 0;
|
||||
r = blkid_do_safeprobe(b);
|
||||
- if (r == -2)
|
||||
- return -ENODEV;
|
||||
- else if (r == 1)
|
||||
- return -ENODEV;
|
||||
+ if (r == -2 || r == 1) /* no result or uncertain */
|
||||
+ return -EBADSLT;
|
||||
else if (r != 0)
|
||||
return errno ? -errno : -EIO;
|
||||
|
||||
@@ -299,7 +297,7 @@ static int enumerate_partitions(struct udev *udev, dev_t dev) {
|
||||
r = verify_gpt_partition(node, &type_id, &nr, &fstype);
|
||||
if (r < 0) {
|
||||
/* skip child devices which are not detected properly */
|
||||
- if (r == -ENODEV)
|
||||
+ if (r == -EBADSLT)
|
||||
continue;
|
||||
log_error("Failed to verify GPT partition %s: %s",
|
||||
node, strerror(-r));
|
|
@ -0,0 +1,265 @@
|
|||
From 96dc1b72f3fb5d344538984121e11e5804905145 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Wed, 13 Nov 2013 00:42:22 -0500
|
||||
Subject: [PATCH] journald: do not free space when disk space runs low
|
||||
|
||||
Before, journald would remove journal files until both MaxUse= and
|
||||
KeepFree= settings would be satisfied. The first one depends (if set
|
||||
automatically) on the size of the file system and is constant. But
|
||||
the second one depends on current use of the file system, and a spike
|
||||
in disk usage would cause journald to delete journal files, trying to
|
||||
reach usage which would leave 15% of the disk free. This behaviour is
|
||||
surprising for the user who doesn't expect his logs to be purged when
|
||||
disk usage goes above 85%, which on a large disk could be some
|
||||
gigabytes from being full. In addition attempting to keep 15% free
|
||||
provides an attack vector where filling the disk sufficiently disposes
|
||||
of almost all logs.
|
||||
|
||||
Instead, obey KeepFree= only as a limit on adding additional files.
|
||||
When replacing old files with new, ignore KeepFree=. This means that
|
||||
if journal disk usage reached some high point that at some later point
|
||||
start to violate the KeepFree= constraint, journald will not add files
|
||||
to go above this point, but it will stay (slightly) below it. When
|
||||
journald is restarted, it forgets the previous maximum usage value,
|
||||
and sets the limit based on the current usage, so if disk remains to
|
||||
be filled, journald might use one journal-file-size less on each
|
||||
restart, if restarts happen just after rotation. This seems like a
|
||||
reasonable compromise between implementation complexity and robustness.
|
||||
---
|
||||
man/journald.conf.xml | 39 +++++++++++++++++++++++----------
|
||||
src/journal/journal-file.h | 1 +
|
||||
src/journal/journal-vacuum.c | 6 ++---
|
||||
src/journal/journal-vacuum.h | 2 +-
|
||||
src/journal/journald-server.c | 22 ++++++++++++++-----
|
||||
src/journal/test-journal-interleaving.c | 4 ++--
|
||||
src/journal/test-journal.c | 4 ++--
|
||||
src/shared/macro.h | 7 ++++++
|
||||
8 files changed, 58 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/man/journald.conf.xml b/man/journald.conf.xml
|
||||
index b362c5d..e0796e1 100644
|
||||
--- a/man/journald.conf.xml
|
||||
+++ b/man/journald.conf.xml
|
||||
@@ -250,20 +250,35 @@
|
||||
<para><varname>SystemMaxUse=</varname>
|
||||
and <varname>RuntimeMaxUse=</varname>
|
||||
control how much disk space the
|
||||
- journal may use up at
|
||||
- maximum. Defaults to 10% of the size
|
||||
- of the respective file
|
||||
- system. <varname>SystemKeepFree=</varname>
|
||||
- and
|
||||
+ journal may use up at maximum.
|
||||
+ <varname>SystemKeepFree=</varname> and
|
||||
<varname>RuntimeKeepFree=</varname>
|
||||
control how much disk space
|
||||
- systemd-journald shall always leave
|
||||
- free for other uses. Defaults to 15%
|
||||
- of the size of the respective file
|
||||
- system. systemd-journald will respect
|
||||
- both limits, i.e. use the smaller of
|
||||
- the two values.
|
||||
- <varname>SystemMaxFileSize=</varname>
|
||||
+ systemd-journald shall leave free for
|
||||
+ other uses.
|
||||
+ <command>systemd-journald</command>
|
||||
+ will respect both limits and use the
|
||||
+ smaller of the two values.</para>
|
||||
+
|
||||
+ <para>The first pair defaults to 10%
|
||||
+ and the second to 15% of the size of
|
||||
+ the respective file system. If the
|
||||
+ file system is nearly full and either
|
||||
+ <varname>SystemKeepFree=</varname> or
|
||||
+ <varname>RuntimeKeepFree=</varname> is
|
||||
+ violated when systemd-journald is
|
||||
+ started, the value will be raised to
|
||||
+ percentage that is actually free. This
|
||||
+ means that if before there was enough
|
||||
+ free space and journal files were
|
||||
+ created, and subsequently something
|
||||
+ else causes the file system to fill
|
||||
+ up, journald will stop using more
|
||||
+ space, but it'll will not removing
|
||||
+ existing files to go reduce footprint
|
||||
+ either.</para>
|
||||
+
|
||||
+ <para><varname>SystemMaxFileSize=</varname>
|
||||
and
|
||||
<varname>RuntimeMaxFileSize=</varname>
|
||||
control how large individual journal
|
||||
diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h
|
||||
index 0bd23f7..2e06b57 100644
|
||||
--- a/src/journal/journal-file.h
|
||||
+++ b/src/journal/journal-file.h
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
typedef struct JournalMetrics {
|
||||
uint64_t max_use;
|
||||
+ uint64_t use;
|
||||
uint64_t max_size;
|
||||
uint64_t min_size;
|
||||
uint64_t keep_free;
|
||||
diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c
|
||||
index d4a1c6c..8b07f65 100644
|
||||
--- a/src/journal/journal-vacuum.c
|
||||
+++ b/src/journal/journal-vacuum.c
|
||||
@@ -150,7 +150,6 @@ static int journal_file_empty(int dir_fd, const char *name) {
|
||||
int journal_directory_vacuum(
|
||||
const char *directory,
|
||||
uint64_t max_use,
|
||||
- uint64_t min_free,
|
||||
usec_t max_retention_usec,
|
||||
usec_t *oldest_usec) {
|
||||
|
||||
@@ -164,7 +163,7 @@ int journal_directory_vacuum(
|
||||
|
||||
assert(directory);
|
||||
|
||||
- if (max_use <= 0 && min_free <= 0 && max_retention_usec <= 0)
|
||||
+ if (max_use <= 0 && max_retention_usec <= 0)
|
||||
return 0;
|
||||
|
||||
if (max_retention_usec > 0) {
|
||||
@@ -310,8 +309,7 @@ int journal_directory_vacuum(
|
||||
}
|
||||
|
||||
if ((max_retention_usec <= 0 || list[i].realtime >= retention_limit) &&
|
||||
- (max_use <= 0 || sum <= max_use) &&
|
||||
- (min_free <= 0 || (uint64_t) ss.f_bavail * (uint64_t) ss.f_bsize >= min_free))
|
||||
+ (max_use <= 0 || sum <= max_use))
|
||||
break;
|
||||
|
||||
if (unlinkat(dirfd(d), list[i].filename, 0) >= 0) {
|
||||
diff --git a/src/journal/journal-vacuum.h b/src/journal/journal-vacuum.h
|
||||
index f5e3e52..bc30c3a 100644
|
||||
--- a/src/journal/journal-vacuum.h
|
||||
+++ b/src/journal/journal-vacuum.h
|
||||
@@ -23,4 +23,4 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
-int journal_directory_vacuum(const char *directory, uint64_t max_use, uint64_t min_free, usec_t max_retention_usec, usec_t *oldest_usec);
|
||||
+int journal_directory_vacuum(const char *directory, uint64_t max_use, usec_t max_retention_usec, usec_t *oldest_usec);
|
||||
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
|
||||
index 1fcb3d5..cd2cfe9 100644
|
||||
--- a/src/journal/journald-server.c
|
||||
+++ b/src/journal/journald-server.c
|
||||
@@ -158,9 +158,18 @@ static uint64_t available_space(Server *s, bool verbose) {
|
||||
}
|
||||
|
||||
ss_avail = ss.f_bsize * ss.f_bavail;
|
||||
- avail = ss_avail > m->keep_free ? ss_avail - m->keep_free : 0;
|
||||
|
||||
- s->cached_available_space = MIN(m->max_use, avail) > sum ? MIN(m->max_use, avail) - sum : 0;
|
||||
+ /* If we reached a high mark, we will always allow this much
|
||||
+ * again, unless usage goes above max_use. This watermark
|
||||
+ * value is cached so that we don't give up space on pressure,
|
||||
+ * but hover below the maximum usage. */
|
||||
+
|
||||
+ if (m->use < sum)
|
||||
+ m->use = sum;
|
||||
+
|
||||
+ avail = LESS_BY(ss_avail, m->keep_free);
|
||||
+
|
||||
+ s->cached_available_space = LESS_BY(MIN(m->max_use, avail), sum);
|
||||
s->cached_available_space_timestamp = ts;
|
||||
|
||||
if (verbose) {
|
||||
@@ -168,13 +177,14 @@ static uint64_t available_space(Server *s, bool verbose) {
|
||||
fb4[FORMAT_BYTES_MAX], fb5[FORMAT_BYTES_MAX];
|
||||
|
||||
server_driver_message(s, SD_MESSAGE_JOURNAL_USAGE,
|
||||
- "%s journal is using %s (max %s, leaving %s of free %s, current limit %s).",
|
||||
+ "%s journal is using %s (max allowed %s, "
|
||||
+ "trying to leave %s free of %s available → current limit %s).",
|
||||
s->system_journal ? "Permanent" : "Runtime",
|
||||
format_bytes(fb1, sizeof(fb1), sum),
|
||||
format_bytes(fb2, sizeof(fb2), m->max_use),
|
||||
format_bytes(fb3, sizeof(fb3), m->keep_free),
|
||||
format_bytes(fb4, sizeof(fb4), ss_avail),
|
||||
- format_bytes(fb5, sizeof(fb5), MIN(m->max_use, avail)));
|
||||
+ format_bytes(fb5, sizeof(fb5), s->cached_available_space + sum));
|
||||
}
|
||||
|
||||
return s->cached_available_space;
|
||||
@@ -378,7 +388,7 @@ void server_vacuum(Server *s) {
|
||||
if (s->system_journal) {
|
||||
char *p = strappenda("/var/log/journal/", ids);
|
||||
|
||||
- r = journal_directory_vacuum(p, s->system_metrics.max_use, s->system_metrics.keep_free, s->max_retention_usec, &s->oldest_file_usec);
|
||||
+ r = journal_directory_vacuum(p, s->system_metrics.max_use, s->max_retention_usec, &s->oldest_file_usec);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_error("Failed to vacuum %s: %s", p, strerror(-r));
|
||||
}
|
||||
@@ -386,7 +396,7 @@ void server_vacuum(Server *s) {
|
||||
if (s->runtime_journal) {
|
||||
char *p = strappenda("/run/log/journal/", ids);
|
||||
|
||||
- r = journal_directory_vacuum(p, s->runtime_metrics.max_use, s->runtime_metrics.keep_free, s->max_retention_usec, &s->oldest_file_usec);
|
||||
+ r = journal_directory_vacuum(p, s->runtime_metrics.max_use, s->max_retention_usec, &s->oldest_file_usec);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_error("Failed to vacuum %s: %s", p, strerror(-r));
|
||||
}
|
||||
diff --git a/src/journal/test-journal-interleaving.c b/src/journal/test-journal-interleaving.c
|
||||
index 1a058ea..974fa3b 100644
|
||||
--- a/src/journal/test-journal-interleaving.c
|
||||
+++ b/src/journal/test-journal-interleaving.c
|
||||
@@ -194,7 +194,7 @@ static void test_skip(void (*setup)(void))
|
||||
if (arg_keep)
|
||||
log_info("Not removing %s", t);
|
||||
else {
|
||||
- journal_directory_vacuum(".", 3000000, 0, 0, NULL);
|
||||
+ journal_directory_vacuum(".", 3000000, 0, NULL);
|
||||
|
||||
assert_se(rm_rf_dangerous(t, false, true, false) >= 0);
|
||||
}
|
||||
@@ -279,7 +279,7 @@ static void test_sequence_numbers(void) {
|
||||
if (arg_keep)
|
||||
log_info("Not removing %s", t);
|
||||
else {
|
||||
- journal_directory_vacuum(".", 3000000, 0, 0, NULL);
|
||||
+ journal_directory_vacuum(".", 3000000, 0, NULL);
|
||||
|
||||
assert_se(rm_rf_dangerous(t, false, true, false) >= 0);
|
||||
}
|
||||
diff --git a/src/journal/test-journal.c b/src/journal/test-journal.c
|
||||
index 190c426..3b8778d 100644
|
||||
--- a/src/journal/test-journal.c
|
||||
+++ b/src/journal/test-journal.c
|
||||
@@ -126,7 +126,7 @@ static void test_non_empty(void) {
|
||||
if (arg_keep)
|
||||
log_info("Not removing %s", t);
|
||||
else {
|
||||
- journal_directory_vacuum(".", 3000000, 0, 0, NULL);
|
||||
+ journal_directory_vacuum(".", 3000000, 0, NULL);
|
||||
|
||||
assert_se(rm_rf_dangerous(t, false, true, false) >= 0);
|
||||
}
|
||||
@@ -165,7 +165,7 @@ static void test_empty(void) {
|
||||
if (arg_keep)
|
||||
log_info("Not removing %s", t);
|
||||
else {
|
||||
- journal_directory_vacuum(".", 3000000, 0, 0, NULL);
|
||||
+ journal_directory_vacuum(".", 3000000, 0, NULL);
|
||||
|
||||
assert_se(rm_rf_dangerous(t, false, true, false) >= 0);
|
||||
}
|
||||
diff --git a/src/shared/macro.h b/src/shared/macro.h
|
||||
index d4f92b6..bc5b3c1 100644
|
||||
--- a/src/shared/macro.h
|
||||
+++ b/src/shared/macro.h
|
||||
@@ -114,6 +114,13 @@ static inline size_t ALIGN_TO(size_t l, size_t ali) {
|
||||
_a < _b ? _a : _b; \
|
||||
})
|
||||
|
||||
+#define LESS_BY(A,B) \
|
||||
+ __extension__ ({ \
|
||||
+ typeof(A) _A = (A); \
|
||||
+ typeof(B) _B = (B); \
|
||||
+ _A > _B ? _A - _B : 0; \
|
||||
+ })
|
||||
+
|
||||
#ifndef CLAMP
|
||||
#define CLAMP(x, low, high) \
|
||||
__extension__ ({ \
|
|
@ -0,0 +1,239 @@
|
|||
From 7cfdb4b03c310e9bb55609a98eb70356e4c50148 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sat, 11 Jan 2014 23:44:34 -0500
|
||||
Subject: [PATCH] man: add busctl(1)
|
||||
|
||||
Conflicts:
|
||||
Makefile-man.am
|
||||
TODO
|
||||
man/systemd-bus-proxyd.xml
|
||||
---
|
||||
Makefile-man.am | 1 +
|
||||
man/busctl.xml | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 207 insertions(+)
|
||||
create mode 100644 man/busctl.xml
|
||||
|
||||
diff --git a/Makefile-man.am b/Makefile-man.am
|
||||
index 3f626e8..9c3cb35 100644
|
||||
--- a/Makefile-man.am
|
||||
+++ b/Makefile-man.am
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
MANPAGES += \
|
||||
man/bootup.7 \
|
||||
+ man/busctl.1 \
|
||||
man/daemon.7 \
|
||||
man/halt.8 \
|
||||
man/hostname.5 \
|
||||
diff --git a/man/busctl.xml b/man/busctl.xml
|
||||
new file mode 100644
|
||||
index 0000000..0c5f05a
|
||||
--- /dev/null
|
||||
+++ b/man/busctl.xml
|
||||
@@ -0,0 +1,206 @@
|
||||
+<?xml version='1.0'?> <!--*-nxml-*-->
|
||||
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
+
|
||||
+<!--
|
||||
+This file is part of systemd.
|
||||
+
|
||||
+Copyright 2014 Zbigniew Jędrzejewski-Szmek
|
||||
+
|
||||
+systemd is free software; you can redistribute it and/or modify it
|
||||
+under the terms of the GNU Lesser General Public License as published by
|
||||
+the Free Software Foundation; either version 2.1 of the License, or
|
||||
+(at your option) any later version.
|
||||
+
|
||||
+systemd is distributed in the hope that it will be useful, but
|
||||
+WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+Lesser General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU Lesser General Public License
|
||||
+along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
+-->
|
||||
+
|
||||
+<refentry id="busctl">
|
||||
+
|
||||
+ <refentryinfo>
|
||||
+ <title>busctl</title>
|
||||
+ <productname>systemd</productname>
|
||||
+
|
||||
+ <authorgroup>
|
||||
+ <author>
|
||||
+ <contrib>A monkey with a typewriter</contrib>
|
||||
+ <firstname>Zbigniew</firstname>
|
||||
+ <surname>Jędrzejewski-Szmek</surname>
|
||||
+ <email>zbyszek@in.waw.pl</email>
|
||||
+ </author>
|
||||
+ </authorgroup>
|
||||
+ </refentryinfo>
|
||||
+
|
||||
+ <refmeta>
|
||||
+ <refentrytitle>busctl</refentrytitle>
|
||||
+ <manvolnum>1</manvolnum>
|
||||
+ </refmeta>
|
||||
+
|
||||
+ <refnamediv>
|
||||
+ <refname>busctl</refname>
|
||||
+ <refpurpose>Introspect the bus</refpurpose>
|
||||
+ </refnamediv>
|
||||
+
|
||||
+ <refsynopsisdiv>
|
||||
+ <cmdsynopsis>
|
||||
+ <command>busctl</command>
|
||||
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
|
||||
+ <arg choice="opt">COMMAND</arg>
|
||||
+ <arg choice="opt" rep="repeat"><replaceable>NAME</replaceable></arg>
|
||||
+ </cmdsynopsis>
|
||||
+ </refsynopsisdiv>
|
||||
+
|
||||
+ <refsect1>
|
||||
+ <title>Description</title>
|
||||
+
|
||||
+ <para><command>busctl</command> may be used to
|
||||
+ introspect and monitor the D-Bus bus.</para>
|
||||
+ </refsect1>
|
||||
+
|
||||
+ <refsect1>
|
||||
+ <title>Options</title>
|
||||
+
|
||||
+ <para>The following options are understood:</para>
|
||||
+
|
||||
+ <variablelist>
|
||||
+ <varlistentry>
|
||||
+ <term><option>-h</option></term>
|
||||
+ <term><option>--help</option></term>
|
||||
+
|
||||
+ <listitem><para>Print a short help text and exit.
|
||||
+ </para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--version</option></term>
|
||||
+
|
||||
+ <listitem>
|
||||
+ <para>Print a short version string and exit.</para>
|
||||
+ </listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--no-pager</option></term>
|
||||
+
|
||||
+ <listitem>
|
||||
+ <para>Do not pipe output into a pager.</para>
|
||||
+ </listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--system</option></term>
|
||||
+
|
||||
+ <listitem>
|
||||
+ <para>Talk to the systemd system manager (the
|
||||
+ default).</para>
|
||||
+ </listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--user</option></term>
|
||||
+
|
||||
+ <listitem>
|
||||
+ <para>Talk to the systemd manager of the calling
|
||||
+ user.</para>
|
||||
+ </listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--address=<replaceable>ADDRESS</replaceable></option></term>
|
||||
+
|
||||
+ <listitem><para>Connect to the bus specified by
|
||||
+ <replaceable>ADDRESS</replaceable> instead of using suitable
|
||||
+ defaults for either the system or user bus (see
|
||||
+ <option>--system</option> and <option>--user</option>
|
||||
+ options).</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--show-machine</option></term>
|
||||
+
|
||||
+ <listitem><para>When showing the list of endpoints, show a
|
||||
+ column containing the names of containers they belong to.
|
||||
+ See
|
||||
+ <citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
+ </para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--unique</option></term>
|
||||
+
|
||||
+ <listitem><para>When showing the list of endpoints, show
|
||||
+ only "unique" names (of the form
|
||||
+ <literal>:<replaceable>number</replaceable>.<replaceable>number</replaceable></literal>).
|
||||
+ </para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--acquired</option></term>
|
||||
+
|
||||
+ <listitem><para>The opposite of <option>--unique</option> —
|
||||
+ only "well-known" names will be shown.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--activatable</option></term>
|
||||
+
|
||||
+ <listitem><para>When showing the list of endpoints, show
|
||||
+ only endpoints which haven't actually been activated yet,
|
||||
+ but may be started automatically if accessed.</para>
|
||||
+ </listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><option>--match=<replaceable>MATCH</replaceable></option></term>
|
||||
+
|
||||
+ <listitem><para>When showing messages being exchanged, show only the
|
||||
+ subset matching <replaceable>MATCH</replaceable>.</para></listitem>
|
||||
+ <!-- TODO: link to sd_bus_add_match when it is written? -->
|
||||
+ </varlistentry>
|
||||
+ </variablelist>
|
||||
+ </refsect1>
|
||||
+
|
||||
+ <refsect1>
|
||||
+ <title>Commands</title>
|
||||
+
|
||||
+ <para>The following commands are understood:</para>
|
||||
+
|
||||
+ <variablelist>
|
||||
+ <varlistentry>
|
||||
+ <term><command>list</command></term>
|
||||
+
|
||||
+ <listitem><para>Show endpoints attached to the bus. This is
|
||||
+ the default if no command is specified.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
+ <term><command>monitor</command> <arg choice="opt" rep="repeat"><replaceable>NAME</replaceable></arg></term>
|
||||
+
|
||||
+ <listitem><para>Dump messages being exchanged. If
|
||||
+ <replaceable>NAME</replaceable> is specified, show messages
|
||||
+ to or from this endpoint. Otherwsise, show all messages on the
|
||||
+ bus.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+ </variablelist>
|
||||
+ </refsect1>
|
||||
+
|
||||
+ <refsect1>
|
||||
+ <title>See Also</title>
|
||||
+
|
||||
+ <para>
|
||||
+ <citerefentry><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
+ <ulink url="http://freedesktop.org/wiki/Software/dbus">D-Bus</ulink>,
|
||||
+ <ulink url="https://code.google.com/p/d-bus/">kdbus</ulink>,
|
||||
+ <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
+ <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
+ </para>
|
||||
+ </refsect1>
|
||||
+</refentry>
|
|
@ -0,0 +1,107 @@
|
|||
From 25bebb7cc2b1b0d4ffc9ed02c348ae96b49c4572 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 6 Oct 2013 21:55:18 -0400
|
||||
Subject: [PATCH] journalctl: flip to --full by default
|
||||
|
||||
We already shew lines in full when using a pager or not on a
|
||||
tty. The commit disables ellipsization in the sole remaining case,
|
||||
namely when --follow is used.
|
||||
|
||||
This has been a popular request for a long time, and indeed, full
|
||||
output seems much more useful. Old behaviour can still be requested by
|
||||
using --no-full. Old options retain their behaviour for compatiblity,
|
||||
but aren't advertised as much. This change applies only to jornalctl,
|
||||
not to systemctl, when ellipsization is useful to keep the layout.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=984758
|
||||
---
|
||||
man/journalctl.xml | 15 ++++++++++++---
|
||||
src/journal/journalctl.c | 12 +++++++++---
|
||||
2 files changed, 21 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/man/journalctl.xml b/man/journalctl.xml
|
||||
index d75c758..d1e841a 100644
|
||||
--- a/man/journalctl.xml
|
||||
+++ b/man/journalctl.xml
|
||||
@@ -152,11 +152,20 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
- <term><option>-l</option></term>
|
||||
+ <term><option>--no-full</option></term>
|
||||
<term><option>--full</option></term>
|
||||
+ <term><option>-l</option></term>
|
||||
+
|
||||
+ <listitem><para>Ellipsize fields when
|
||||
+ they don't fit in available columns.
|
||||
+ The default is to show full fields,
|
||||
+ allowing them to wrap or be truncated
|
||||
+ by the pager if one is used.</para>
|
||||
|
||||
- <listitem><para>Show all (printable) fields in
|
||||
- full.</para></listitem>
|
||||
+ <para>Old options
|
||||
+ <option>-l</option>/<option>--full</option>
|
||||
+ not useful anymore, except to undo
|
||||
+ <option>--no-full</option>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
||||
index ccd96b2..1b5bdd3 100644
|
||||
--- a/src/journal/journalctl.c
|
||||
+++ b/src/journal/journalctl.c
|
||||
@@ -64,7 +64,7 @@
|
||||
static OutputMode arg_output = OUTPUT_SHORT;
|
||||
static bool arg_pager_end = false;
|
||||
static bool arg_follow = false;
|
||||
-static bool arg_full = false;
|
||||
+static bool arg_full = true;
|
||||
static bool arg_all = false;
|
||||
static bool arg_no_pager = false;
|
||||
static int arg_lines = -1;
|
||||
@@ -187,7 +187,7 @@ static int help(void) {
|
||||
" short-precise, short-monotonic, verbose,\n"
|
||||
" export, json, json-pretty, json-sse, cat)\n"
|
||||
" -x --catalog Add message explanations where available\n"
|
||||
- " -l --full Do not ellipsize fields\n"
|
||||
+ " --no-full Ellipsize fields\n"
|
||||
" -a --all Show all fields, including long and unprintable\n"
|
||||
" -q --quiet Do not show privilege warning\n"
|
||||
" --no-pager Do not pipe output into a pager\n"
|
||||
@@ -224,6 +224,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
enum {
|
||||
ARG_VERSION = 0x100,
|
||||
ARG_NO_PAGER,
|
||||
+ ARG_NO_FULL,
|
||||
ARG_NO_TAIL,
|
||||
ARG_NEW_ID128,
|
||||
ARG_LIST_BOOTS,
|
||||
@@ -258,6 +259,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "output", required_argument, NULL, 'o' },
|
||||
{ "all", no_argument, NULL, 'a' },
|
||||
{ "full", no_argument, NULL, 'l' },
|
||||
+ { "no-full", no_argument, NULL, ARG_NO_FULL },
|
||||
{ "lines", optional_argument, NULL, 'n' },
|
||||
{ "no-tail", no_argument, NULL, ARG_NO_TAIL },
|
||||
{ "new-id128", no_argument, NULL, ARG_NEW_ID128 },
|
||||
@@ -349,6 +351,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
arg_full = true;
|
||||
break;
|
||||
|
||||
+ case ARG_NO_FULL:
|
||||
+ arg_full = false;
|
||||
+ break;
|
||||
+
|
||||
case 'a':
|
||||
arg_all = true;
|
||||
break;
|
||||
@@ -1736,7 +1742,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
flags =
|
||||
arg_all * OUTPUT_SHOW_ALL |
|
||||
- (arg_full || !on_tty() || pager_have()) * OUTPUT_FULL_WIDTH |
|
||||
+ arg_full * OUTPUT_FULL_WIDTH |
|
||||
on_tty() * OUTPUT_COLOR |
|
||||
arg_catalog * OUTPUT_CATALOG;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From dd33348393551411885397ff7d88a3a908eeb018 Mon Sep 17 00:00:00 2001
|
||||
From 0fe97bc02e3108efdb844feb1b367a89ba995d83 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Hoyer <harald@redhat.com>
|
||||
Date: Wed, 13 Mar 2013 07:57:53 +0100
|
||||
Date: Tue, 14 Jan 2014 17:48:08 -0500
|
||||
Subject: [PATCH] kernel-install: add fedora specific callouts to
|
||||
new-kernel-pkg
|
||||
|
||||
|
@ -9,7 +9,7 @@ Subject: [PATCH] kernel-install: add fedora specific callouts to
|
|||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
|
||||
index fb2ee57..31e988a 100644
|
||||
index 3ae1d77..3a2ac56 100644
|
||||
--- a/src/kernel-install/kernel-install
|
||||
+++ b/src/kernel-install/kernel-install
|
||||
@@ -19,6 +19,27 @@
|
||||
|
@ -39,7 +39,4 @@ index fb2ee57..31e988a 100644
|
|||
+
|
||||
usage()
|
||||
{
|
||||
echo "Usage:" >&2
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
echo "Usage:"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue