new upstream release
This commit is contained in:
parent
cf472bed00
commit
1298810b87
@ -1,26 +0,0 @@
|
|||||||
From ac0013190eb64a6528b56a09c29ba595f6ac19e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Wed, 11 Jun 2014 18:42:38 +0200
|
|
||||||
Subject: [PATCH] NEWS: add missing comment about the "floppy" group
|
|
||||||
|
|
||||||
(cherry picked from commit 4c0d13bdd5ef971a3003899064af1717c8960bee)
|
|
||||||
---
|
|
||||||
NEWS | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 54d9e9e6..1274c30a 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -179,6 +179,11 @@ CHANGES WITH 214:
|
|
||||||
added which is useful for services that shall run before any
|
|
||||||
network is configured, for example firewall scripts.
|
|
||||||
|
|
||||||
+ * The "floppy" group that previously owned the /dev/fd*
|
|
||||||
+ devices is no longer used. The "disk" group is now used
|
|
||||||
+ instead. Distributions should probably deprecate usage of
|
|
||||||
+ this group.
|
|
||||||
+
|
|
||||||
Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
|
|
||||||
King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
|
|
||||||
Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
|
|
@ -1,23 +0,0 @@
|
|||||||
From 4bf7b81ac71311d2cd44b8a14d133f613a04a030 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
|
|
||||||
Date: Wed, 11 Jun 2014 17:09:11 +0300
|
|
||||||
Subject: [PATCH] NEWS: fix directory name
|
|
||||||
|
|
||||||
(cherry picked from commit c54bed5d515771c21250b8e0c052cb6600e21d37)
|
|
||||||
---
|
|
||||||
NEWS | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 1274c30a..4f3c5222 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -52,7 +52,7 @@ CHANGES WITH 214:
|
|
||||||
transports. Instead it is assumed the kernel loads them
|
|
||||||
automatically when required. This only works correctly on
|
|
||||||
very new kernels. On older kernels, please consider adding
|
|
||||||
- the kernel modules to /etc/load-modules.d/ as a work-around.
|
|
||||||
+ the kernel modules to /etc/modules-load.d/ as a work-around.
|
|
||||||
|
|
||||||
* The resolv.conf file systemd-resolved generates has been
|
|
||||||
moved to /run/systemd/resolve/, if you have a symlink from
|
|
@ -1,53 +0,0 @@
|
|||||||
From 8f8fb5044e90f60e065c5bbceba21aab2986edd5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Thu, 12 Jun 2014 14:59:53 +0200
|
|
||||||
Subject: [PATCH] udev: assign group "input" to all input devices
|
|
||||||
|
|
||||||
(cherry picked from commit 3dff3e00e044e2d53c76fa842b9a4759d4a50e69)
|
|
||||||
---
|
|
||||||
NEWS | 6 ++++++
|
|
||||||
README | 2 +-
|
|
||||||
rules/50-udev-default.rules | 1 +
|
|
||||||
3 files changed, 8 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 4f3c5222..318f3d49 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -1,5 +1,11 @@
|
|
||||||
systemd System and Service Manager
|
|
||||||
|
|
||||||
+CHANGES WITH 215:
|
|
||||||
+ * A new system group "input" is introduced, all input
|
|
||||||
+ device nodes get this group assigned. This is useful for
|
|
||||||
+ system-level software to get access to input devices. It
|
|
||||||
+ complements what is already done for "audio" and "video".
|
|
||||||
+
|
|
||||||
CHANGES WITH 214:
|
|
||||||
|
|
||||||
* As an experimental feature, udev now tries to lock the
|
|
||||||
diff --git a/README b/README
|
|
||||||
index 529c6e19..de159feb 100644
|
|
||||||
--- a/README
|
|
||||||
+++ b/README
|
|
||||||
@@ -168,7 +168,7 @@ USERS AND GROUPS:
|
|
||||||
even in the very early boot stages, where no other databases
|
|
||||||
and network are available:
|
|
||||||
|
|
||||||
- tty, dialout, kmem, video, audio, lp, cdrom, tape, disk
|
|
||||||
+ audio, cdrom, dialout, disk, input, kmem, lp, tape, tty, video
|
|
||||||
|
|
||||||
During runtime, the journal daemon requires the
|
|
||||||
"systemd-journal" system group to exist. New journal files will
|
|
||||||
diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
|
|
||||||
index 122d07c9..1ecd47a2 100644
|
|
||||||
--- a/rules/50-udev-default.rules
|
|
||||||
+++ b/rules/50-udev-default.rules
|
|
||||||
@@ -23,6 +23,7 @@ KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP=
|
|
||||||
|
|
||||||
SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
|
|
||||||
|
|
||||||
+SUBSYSTEM=="input", GROUP="input"
|
|
||||||
SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664"
|
|
||||||
|
|
||||||
SUBSYSTEM=="video4linux", GROUP="video"
|
|
@ -1,27 +0,0 @@
|
|||||||
From 89053aff0cc36dfcee6fda6e83b13f6f68c05a82 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
||||||
Date: Thu, 12 Jun 2014 22:50:04 +0200
|
|
||||||
Subject: [PATCH] cryptsetup: check that password is not null
|
|
||||||
|
|
||||||
Beef up the assert to protect against passing null to strlen.
|
|
||||||
|
|
||||||
Found with scan-build.
|
|
||||||
|
|
||||||
(cherry picked from commit f268f57f6344d3a2ccf447352ff3ed1313c4a199)
|
|
||||||
---
|
|
||||||
src/cryptsetup/cryptsetup.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
|
|
||||||
index 812b32f6..a67d85e6 100644
|
|
||||||
--- a/src/cryptsetup/cryptsetup.c
|
|
||||||
+++ b/src/cryptsetup/cryptsetup.c
|
|
||||||
@@ -344,7 +344,7 @@ static int attach_tcrypt(struct crypt_device *cd,
|
|
||||||
|
|
||||||
assert(cd);
|
|
||||||
assert(name);
|
|
||||||
- assert(key_file || passwords);
|
|
||||||
+ assert(key_file || (passwords && passwords[0]));
|
|
||||||
|
|
||||||
if (arg_tcrypt_hidden)
|
|
||||||
params.flags |= CRYPT_TCRYPT_HIDDEN_HEADER;
|
|
@ -1,31 +0,0 @@
|
|||||||
From 3f4dbb254a7ca90dd025a5de24f0fbaf53a9342e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Henriksson <andreas@fatal.se>
|
|
||||||
Date: Fri, 13 Jun 2014 18:48:19 +0200
|
|
||||||
Subject: [PATCH] core: fix invalid free() in killall()
|
|
||||||
|
|
||||||
static int killall(....) in ./src/core/killall.c tries to get "s"
|
|
||||||
initialized by calling get_process_comm(...) which calls
|
|
||||||
read_one_line_file(...) which if it fails will mean it is left
|
|
||||||
uninitialized.
|
|
||||||
It is then used in argument to strna(s) call where it is
|
|
||||||
dereferenced(!), in addition to nothing else initializing it before
|
|
||||||
the scope it is in finishes.
|
|
||||||
|
|
||||||
(cherry picked from commit 3e09eb5c83e56bc0184bd9d9c44f76047464f77c)
|
|
||||||
---
|
|
||||||
src/core/killall.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/killall.c b/src/core/killall.c
|
|
||||||
index 57ed41c5..eab48f7d 100644
|
|
||||||
--- a/src/core/killall.c
|
|
||||||
+++ b/src/core/killall.c
|
|
||||||
@@ -168,7 +168,7 @@ static int killall(int sig, Set *pids, bool send_sighup) {
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (sig == SIGKILL) {
|
|
||||||
- _cleanup_free_ char *s;
|
|
||||||
+ _cleanup_free_ char *s = NULL;
|
|
||||||
|
|
||||||
get_process_comm(pid, &s);
|
|
||||||
log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));
|
|
@ -1,29 +0,0 @@
|
|||||||
From e6e0462204a04517c6f31b7ca631d715c6ab04f8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Henriksson <andreas@fatal.se>
|
|
||||||
Date: Fri, 13 Jun 2014 18:48:21 +0200
|
|
||||||
Subject: [PATCH] udev: fix invalid free() in enable_name_policy()
|
|
||||||
|
|
||||||
static bool enable_name_policy(...) in ./src/udev/net/link-config.c
|
|
||||||
calls proc_cmdline(...) to get "line" initialized, but
|
|
||||||
proc_cmdline(...) does not guarantee that atleast when both
|
|
||||||
conditions (detect_container(NULL) > 0) and
|
|
||||||
read_full_file(...) returned < 0.
|
|
||||||
|
|
||||||
(cherry picked from commit f8a0bb5285024b6ce372c3157e761e6543ebdcd2)
|
|
||||||
---
|
|
||||||
src/udev/net/link-config.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
|
|
||||||
index a9acc3dd..7a9d01bc 100644
|
|
||||||
--- a/src/udev/net/link-config.c
|
|
||||||
+++ b/src/udev/net/link-config.c
|
|
||||||
@@ -185,7 +185,7 @@ static int load_link(link_config_ctx *ctx, const char *filename) {
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool enable_name_policy(void) {
|
|
||||||
- _cleanup_free_ char *line;
|
|
||||||
+ _cleanup_free_ char *line = NULL;
|
|
||||||
char *w, *state;
|
|
||||||
int r;
|
|
||||||
size_t l;
|
|
@ -1,29 +0,0 @@
|
|||||||
From 09220715e259bf23cbe33d497ed92259a9670320 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Henriksson <andreas@fatal.se>
|
|
||||||
Date: Fri, 13 Jun 2014 18:48:18 +0200
|
|
||||||
Subject: [PATCH] install: fix invalid free() in unit_file_mask()
|
|
||||||
|
|
||||||
int unit_file_mask(...) in ./src/shared/install.c calls
|
|
||||||
get_config_path(...) which can in 4 error cases return without setting
|
|
||||||
"ret", and thus "prefix" can be uninitialized when unit_file_mask(...)
|
|
||||||
finishes (which it does directly after the error is returned from
|
|
||||||
get_config_path(...)).
|
|
||||||
|
|
||||||
(cherry picked from commit 223217749e57996336d5730b0a28716cca56d45d)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 487d0f66..f5620633 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -563,7 +563,7 @@ int unit_file_mask(
|
|
||||||
unsigned *n_changes) {
|
|
||||||
|
|
||||||
char **i;
|
|
||||||
- _cleanup_free_ char *prefix;
|
|
||||||
+ _cleanup_free_ char *prefix = NULL;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(scope >= 0);
|
|
@ -1,72 +0,0 @@
|
|||||||
From 3c96e9e0757281a04bb066c67fc5f509871e27b0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Fri, 13 Jun 2014 19:05:22 +0200
|
|
||||||
Subject: [PATCH] rpm: don't hardcode the binary paths in the macros, rely on
|
|
||||||
$PATH
|
|
||||||
|
|
||||||
this gives us a little bit more freedom to move things around later on,
|
|
||||||
as we don't hardcode the systemd paths in old RPMs that shall work with
|
|
||||||
new systemds.
|
|
||||||
|
|
||||||
(cherry picked from commit 8cf7c96517c3688d29b30651adcda9e71e7fcb07)
|
|
||||||
---
|
|
||||||
src/core/macros.systemd.in | 20 ++++++++++----------
|
|
||||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/macros.systemd.in b/src/core/macros.systemd.in
|
|
||||||
index 89b48259..167016a8 100644
|
|
||||||
--- a/src/core/macros.systemd.in
|
|
||||||
+++ b/src/core/macros.systemd.in
|
|
||||||
@@ -37,42 +37,42 @@ Requires(postun): systemd \
|
|
||||||
%systemd_post() \
|
|
||||||
if [ $1 -eq 1 ] ; then \
|
|
||||||
# Initial installation \
|
|
||||||
- @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \
|
|
||||||
+ systemctl preset %{?*} >/dev/null 2>&1 || : \
|
|
||||||
fi \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%systemd_preun() \
|
|
||||||
if [ $1 -eq 0 ] ; then \
|
|
||||||
# Package removal, not upgrade \
|
|
||||||
- @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \
|
|
||||||
- @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \
|
|
||||||
+ systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \
|
|
||||||
+ systemctl stop %{?*} > /dev/null 2>&1 || : \
|
|
||||||
fi \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%systemd_postun() \
|
|
||||||
-@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \
|
|
||||||
+systemctl daemon-reload >/dev/null 2>&1 || : \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%systemd_postun_with_restart() \
|
|
||||||
-@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \
|
|
||||||
+systemctl daemon-reload >/dev/null 2>&1 || : \
|
|
||||||
if [ $1 -ge 1 ] ; then \
|
|
||||||
# Package upgrade, not uninstall \
|
|
||||||
- @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \
|
|
||||||
+ systemctl try-restart %{?*} >/dev/null 2>&1 || : \
|
|
||||||
fi \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%udev_hwdb_update() \
|
|
||||||
-@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \
|
|
||||||
+udevadm hwdb --update >/dev/null 2>&1 || : \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%udev_rules_update() \
|
|
||||||
-@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \
|
|
||||||
+udevadm control --reload >/dev/null 2>&1 || : \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%journal_catalog_update() \
|
|
||||||
-@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \
|
|
||||||
+journalctl --update-catalog >/dev/null 2>&1 || : \
|
|
||||||
%{nil}
|
|
||||||
|
|
||||||
%tmpfiles_create() \
|
|
||||||
-@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \
|
|
||||||
+systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \
|
|
||||||
%{nil}
|
|
@ -1,23 +0,0 @@
|
|||||||
From 0da84688a4228368b2039a08337818dd431221ff Mon Sep 17 00:00:00 2001
|
|
||||||
From: Colin Ian King <colin.king@canonical.com>
|
|
||||||
Date: Thu, 12 Jun 2014 16:41:41 +0100
|
|
||||||
Subject: [PATCH] Fix spelling mistake, scirpt --> script
|
|
||||||
|
|
||||||
(cherry picked from commit 855d111304114e922b34b6c4bc2a0b08766c2668)
|
|
||||||
---
|
|
||||||
src/sysv-generator/sysv-generator.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
|
|
||||||
index 0b8d8f73..18dae5c2 100644
|
|
||||||
--- a/src/sysv-generator/sysv-generator.c
|
|
||||||
+++ b/src/sysv-generator/sysv-generator.c
|
|
||||||
@@ -791,7 +791,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
|
|
||||||
if (hashmap_contains(all_services, name))
|
|
||||||
service = hashmap_get(all_services, name);
|
|
||||||
else {
|
|
||||||
- log_warning("Could not find init scirpt for %s", name);
|
|
||||||
+ log_warning("Could not find init script for %s", name);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 5aef99701f6e9504750adf906160ce23cb9851e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Mon, 16 Jun 2014 13:20:38 +0200
|
|
||||||
Subject: [PATCH] tmpfiles: set up selinux label proeprly when creating fifos
|
|
||||||
|
|
||||||
(cherry picked from commit 45c196a76b2d883552c90807386d9bed40da822b)
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
src/shared/util.c
|
|
||||||
---
|
|
||||||
src/tmpfiles/tmpfiles.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
|
||||||
index bb12dd0b..3e817cca 100644
|
|
||||||
--- a/src/tmpfiles/tmpfiles.c
|
|
||||||
+++ b/src/tmpfiles/tmpfiles.c
|
|
||||||
@@ -719,9 +719,11 @@ static int create_item(Item *i) {
|
|
||||||
|
|
||||||
case CREATE_FIFO:
|
|
||||||
|
|
||||||
+ label_context_set(i->path, S_IFIFO);
|
|
||||||
RUN_WITH_UMASK(0000) {
|
|
||||||
r = mkfifo(i->path, i->mode);
|
|
||||||
}
|
|
||||||
+ label_context_clear();
|
|
||||||
|
|
||||||
if (r < 0 && errno != EEXIST) {
|
|
||||||
log_error("Failed to create fifo %s: %m", i->path);
|
|
@ -1,50 +0,0 @@
|
|||||||
From ab25a485218194a432a8238b772005f4506059f3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ruediger Oertel <ro@suse.de>
|
|
||||||
Date: Fri, 13 Jun 2014 16:41:06 +0200
|
|
||||||
Subject: [PATCH] Reset signal-mask on re-exec to init=..
|
|
||||||
|
|
||||||
Process 1 (aka init) needs to be started with an empty signal mask.
|
|
||||||
That includes the process 1 that's started after the initrd is finished.
|
|
||||||
When the initrd is using systemd (as it does with dracut based initrds)
|
|
||||||
then it is systemd that calls the real init. Normally this is systemd
|
|
||||||
again, except when the user uses for instance "init=/bin/bash" on the
|
|
||||||
kernel command line.
|
|
||||||
|
|
||||||
(cherry picked from commit 5a85ca1cb622fda4a39c8a6f00dccea7f8a1e82a)
|
|
||||||
---
|
|
||||||
src/core/main.c | 8 ++++++++
|
|
||||||
1 file changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/core/main.c b/src/core/main.c
|
|
||||||
index d5d1ee2b..e87b8cc8 100644
|
|
||||||
--- a/src/core/main.c
|
|
||||||
+++ b/src/core/main.c
|
|
||||||
@@ -1831,6 +1831,7 @@ finish:
|
|
||||||
if (reexecute) {
|
|
||||||
const char **args;
|
|
||||||
unsigned i, args_size;
|
|
||||||
+ sigset_t ss, o_ss;
|
|
||||||
|
|
||||||
/* Close and disarm the watchdog, so that the new
|
|
||||||
* instance can reinitialize it, but doesn't get
|
|
||||||
@@ -1914,6 +1915,11 @@ finish:
|
|
||||||
args[i++] = NULL;
|
|
||||||
assert(i <= args_size);
|
|
||||||
|
|
||||||
+ /* reenable any blocked signals, especially important
|
|
||||||
+ * if we switch from initial ramdisk to init=... */
|
|
||||||
+ sigemptyset(&ss);
|
|
||||||
+ sigprocmask(SIG_SETMASK, &ss, &o_ss);
|
|
||||||
+
|
|
||||||
if (switch_root_init) {
|
|
||||||
args[0] = switch_root_init;
|
|
||||||
execv(args[0], (char* const*) args);
|
|
||||||
@@ -1932,6 +1938,8 @@ finish:
|
|
||||||
log_error("Failed to execute /bin/sh, giving up: %m");
|
|
||||||
} else
|
|
||||||
log_warning("Failed to execute /sbin/init, giving up: %m");
|
|
||||||
+
|
|
||||||
+ sigprocmask(SIG_SETMASK, &o_ss, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arg_serialization) {
|
|
@ -1,49 +0,0 @@
|
|||||||
From 1d4d5cd68c250af3b232fa049bd2cde171272ee9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Fri, 20 Jun 2014 16:58:21 +0200
|
|
||||||
Subject: [PATCH] core: clean-up signal reset logic when reexec
|
|
||||||
|
|
||||||
There's no need to save the old sigmask, if we are going to die. Let's
|
|
||||||
simplify this. Also, reset all the signal handlers, so that we don't
|
|
||||||
leave SIG_IGN set for some of them across reexec.
|
|
||||||
|
|
||||||
(cherry picked from commit 9bfcda9528636914aef3e0ab91191bb81654c83d)
|
|
||||||
---
|
|
||||||
src/core/main.c | 10 +++++-----
|
|
||||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/main.c b/src/core/main.c
|
|
||||||
index e87b8cc8..c9472929 100644
|
|
||||||
--- a/src/core/main.c
|
|
||||||
+++ b/src/core/main.c
|
|
||||||
@@ -1831,7 +1831,7 @@ finish:
|
|
||||||
if (reexecute) {
|
|
||||||
const char **args;
|
|
||||||
unsigned i, args_size;
|
|
||||||
- sigset_t ss, o_ss;
|
|
||||||
+ sigset_t ss;
|
|
||||||
|
|
||||||
/* Close and disarm the watchdog, so that the new
|
|
||||||
* instance can reinitialize it, but doesn't get
|
|
||||||
@@ -1917,8 +1917,10 @@ finish:
|
|
||||||
|
|
||||||
/* reenable any blocked signals, especially important
|
|
||||||
* if we switch from initial ramdisk to init=... */
|
|
||||||
- sigemptyset(&ss);
|
|
||||||
- sigprocmask(SIG_SETMASK, &ss, &o_ss);
|
|
||||||
+ reset_all_signal_handlers();
|
|
||||||
+
|
|
||||||
+ assert_se(sigemptyset(&ss) == 0);
|
|
||||||
+ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0);
|
|
||||||
|
|
||||||
if (switch_root_init) {
|
|
||||||
args[0] = switch_root_init;
|
|
||||||
@@ -1938,8 +1940,6 @@ finish:
|
|
||||||
log_error("Failed to execute /bin/sh, giving up: %m");
|
|
||||||
} else
|
|
||||||
log_warning("Failed to execute /sbin/init, giving up: %m");
|
|
||||||
-
|
|
||||||
- sigprocmask(SIG_SETMASK, &o_ss, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arg_serialization) {
|
|
@ -1,37 +0,0 @@
|
|||||||
From 84d1cd0b9bea96ba9ef600582b1ab030f49c5046 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
||||||
Date: Mon, 16 Jun 2014 23:49:10 +0200
|
|
||||||
Subject: [PATCH] journal-remote: fix memleak
|
|
||||||
|
|
||||||
(cherry picked from commit e94b5a7bc201fe73c4a291169c5c1d21cceee128)
|
|
||||||
---
|
|
||||||
src/journal/journal-remote.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/journal/journal-remote.c b/src/journal/journal-remote.c
|
|
||||||
index 915f234a..31401fb3 100644
|
|
||||||
--- a/src/journal/journal-remote.c
|
|
||||||
+++ b/src/journal/journal-remote.c
|
|
||||||
@@ -291,7 +291,7 @@ static int remove_source(RemoteServer *s, int fd) {
|
|
||||||
|
|
||||||
static int add_source(RemoteServer *s, int fd, const char* name) {
|
|
||||||
RemoteSource *source = NULL;
|
|
||||||
- char *realname;
|
|
||||||
+ _cleanup_free_ char *realname = NULL;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(s);
|
|
||||||
@@ -307,11 +307,11 @@ static int add_source(RemoteServer *s, int fd, const char* name) {
|
|
||||||
return log_oom();
|
|
||||||
}
|
|
||||||
|
|
||||||
- log_debug("Creating source for fd:%d (%s)", fd, name);
|
|
||||||
+ log_debug("Creating source for fd:%d (%s)", fd, realname);
|
|
||||||
|
|
||||||
r = get_source_for_fd(s, fd, &source);
|
|
||||||
if (r < 0) {
|
|
||||||
- log_error("Failed to create source for fd:%d (%s)", fd, name);
|
|
||||||
+ log_error("Failed to create source for fd:%d (%s)", fd, realname);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
assert(source);
|
|
@ -1,57 +0,0 @@
|
|||||||
From 3e59dbfced8ba0e6258ee5ed6c6a3d895b0fd2b5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Mon, 16 Jun 2014 17:01:26 +0200
|
|
||||||
Subject: [PATCH] unit-name: fix detection of unit templates/instances
|
|
||||||
|
|
||||||
We need to check for the last dot, not the first one in a unit name, for
|
|
||||||
the suffix. Correct that.
|
|
||||||
|
|
||||||
(cherry picked from commit 6ef9eeed61a291cc42b7d911f5cf5a4deca742a3)
|
|
||||||
---
|
|
||||||
src/shared/unit-name.c | 16 ++++++++++++----
|
|
||||||
1 file changed, 12 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/unit-name.c b/src/shared/unit-name.c
|
|
||||||
index 6c167b43..d0e71f24 100644
|
|
||||||
--- a/src/shared/unit-name.c
|
|
||||||
+++ b/src/shared/unit-name.c
|
|
||||||
@@ -332,7 +332,7 @@ char *unit_name_path_unescape(const char *f) {
|
|
||||||
}
|
|
||||||
|
|
||||||
bool unit_name_is_template(const char *n) {
|
|
||||||
- const char *p;
|
|
||||||
+ const char *p, *e;
|
|
||||||
|
|
||||||
assert(n);
|
|
||||||
|
|
||||||
@@ -340,11 +340,15 @@ bool unit_name_is_template(const char *n) {
|
|
||||||
if (!p)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
- return p[1] == '.';
|
|
||||||
+ e = strrchr(p+1, '.');
|
|
||||||
+ if (!e)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
+ return e == p + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool unit_name_is_instance(const char *n) {
|
|
||||||
- const char *p;
|
|
||||||
+ const char *p, *e;
|
|
||||||
|
|
||||||
assert(n);
|
|
||||||
|
|
||||||
@@ -352,7 +356,11 @@ bool unit_name_is_instance(const char *n) {
|
|
||||||
if (!p)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
- return p[1] != '.';
|
|
||||||
+ e = strrchr(p+1, '.');
|
|
||||||
+ if (!e)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
+ return e > p + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *unit_name_replace_instance(const char *f, const char *i) {
|
|
@ -1,122 +0,0 @@
|
|||||||
From 06cd279be2d9597ac7e19d19ac2883874d801bc7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Mon, 16 Jun 2014 17:19:30 +0200
|
|
||||||
Subject: [PATCH] install: various modernizations
|
|
||||||
|
|
||||||
(cherry picked from commit da39f6a63e9ca59bec23cc9d1cb841703bb5ef56)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 43 ++++++++++++++-----------------------------
|
|
||||||
1 file changed, 14 insertions(+), 29 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index f5620633..115d831d 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -319,7 +319,8 @@ static int remove_marked_symlinks(
|
|
||||||
unsigned *n_changes,
|
|
||||||
char** files) {
|
|
||||||
|
|
||||||
- int fd, r = 0;
|
|
||||||
+ _cleanup_close_ int fd = -1;
|
|
||||||
+ int r = 0;
|
|
||||||
bool deleted;
|
|
||||||
|
|
||||||
assert(config_path);
|
|
||||||
@@ -347,8 +348,6 @@ static int remove_marked_symlinks(
|
|
||||||
r = q;
|
|
||||||
} while (deleted);
|
|
||||||
|
|
||||||
- safe_close(fd);
|
|
||||||
-
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1830,11 +1829,11 @@ int unit_file_preset(
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes) {
|
|
||||||
|
|
||||||
- _cleanup_lookup_paths_free_ LookupPaths paths = {};
|
|
||||||
_cleanup_install_context_done_ InstallContext plus = {}, minus = {};
|
|
||||||
- char **i;
|
|
||||||
- _cleanup_free_ char *config_path = NULL;
|
|
||||||
_cleanup_set_free_free_ Set *remove_symlinks_to = NULL;
|
|
||||||
+ _cleanup_lookup_paths_free_ LookupPaths paths = {};
|
|
||||||
+ _cleanup_free_ char *config_path = NULL;
|
|
||||||
+ char **i;
|
|
||||||
int r, q;
|
|
||||||
|
|
||||||
assert(scope >= 0);
|
|
||||||
@@ -1861,16 +1860,13 @@ int unit_file_preset(
|
|
||||||
r = install_info_add_auto(&plus, *i);
|
|
||||||
else
|
|
||||||
r = install_info_add_auto(&minus, *i);
|
|
||||||
-
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
- r = install_context_mark_for_removal(&minus, &paths, &remove_symlinks_to,
|
|
||||||
- config_path, root_dir);
|
|
||||||
+ r = install_context_mark_for_removal(&minus, &paths, &remove_symlinks_to, config_path, root_dir);
|
|
||||||
|
|
||||||
- q = remove_marked_symlinks(remove_symlinks_to, config_path,
|
|
||||||
- changes, n_changes, files);
|
|
||||||
+ q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files);
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
|
|
||||||
@@ -1899,8 +1895,6 @@ int unit_file_get_list(
|
|
||||||
|
|
||||||
_cleanup_lookup_paths_free_ LookupPaths paths = {};
|
|
||||||
char **i;
|
|
||||||
- _cleanup_free_ char *buf = NULL;
|
|
||||||
- _cleanup_closedir_ DIR *d = NULL;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(scope >= 0);
|
|
||||||
@@ -1915,22 +1909,19 @@ int unit_file_get_list(
|
|
||||||
return r;
|
|
||||||
|
|
||||||
STRV_FOREACH(i, paths.unit_path) {
|
|
||||||
+ _cleanup_closedir_ DIR *d = NULL;
|
|
||||||
+ _cleanup_free_ char *buf = NULL;
|
|
||||||
const char *units_dir;
|
|
||||||
|
|
||||||
- free(buf);
|
|
||||||
- buf = NULL;
|
|
||||||
-
|
|
||||||
- if (root_dir) {
|
|
||||||
- if (asprintf(&buf, "%s/%s", root_dir, *i) < 0)
|
|
||||||
+ if (!isempty(root_dir)) {
|
|
||||||
+ buf = strjoin(root_dir, "/", *i, NULL);
|
|
||||||
+ if (!buf)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
units_dir = buf;
|
|
||||||
} else
|
|
||||||
units_dir = *i;
|
|
||||||
|
|
||||||
- if (d)
|
|
||||||
- closedir(d);
|
|
||||||
-
|
|
||||||
d = opendir(units_dir);
|
|
||||||
if (!d) {
|
|
||||||
if (errno == ENOENT)
|
|
||||||
@@ -1960,15 +1951,9 @@ int unit_file_get_list(
|
|
||||||
if (hashmap_get(h, de->d_name))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
- r = dirent_ensure_type(d, de);
|
|
||||||
- if (r < 0) {
|
|
||||||
- if (r == -ENOENT)
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- return r;
|
|
||||||
- }
|
|
||||||
+ dirent_ensure_type(d, de);
|
|
||||||
|
|
||||||
- if (de->d_type != DT_LNK && de->d_type != DT_REG)
|
|
||||||
+ if (!IN_SET(de->d_type, DT_LNK, DT_REG))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
f = new0(UnitFileList, 1);
|
|
@ -1,118 +0,0 @@
|
|||||||
From bf160761cd5d35458779e96fa13655dd88350ccd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Mon, 16 Jun 2014 19:48:31 +0200
|
|
||||||
Subject: [PATCH] install: simplify and clarify disabling logic for instanced
|
|
||||||
units
|
|
||||||
|
|
||||||
(cherry picked from commit bcafe923a74e702abbba3655b0270febe143499f)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 50 ++++++++++++++++++++++++++++----------------------
|
|
||||||
1 file changed, 28 insertions(+), 22 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 115d831d..40dc7beb 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -194,10 +194,10 @@ static int remove_marked_symlinks_fd(
|
|
||||||
bool *deleted,
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes,
|
|
||||||
- char** files) {
|
|
||||||
+ char** instance_whitelist) {
|
|
||||||
|
|
||||||
- int r = 0;
|
|
||||||
_cleanup_closedir_ DIR *d = NULL;
|
|
||||||
+ int r = 0;
|
|
||||||
|
|
||||||
assert(remove_symlinks_to);
|
|
||||||
assert(fd >= 0);
|
|
||||||
@@ -252,9 +252,8 @@ static int remove_marked_symlinks_fd(
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This will close nfd, regardless whether it succeeds or not */
|
|
||||||
- q = remove_marked_symlinks_fd(remove_symlinks_to, nfd, p, config_path, deleted, changes, n_changes, files);
|
|
||||||
-
|
|
||||||
- if (r == 0)
|
|
||||||
+ q = remove_marked_symlinks_fd(remove_symlinks_to, nfd, p, config_path, deleted, changes, n_changes, instance_whitelist);
|
|
||||||
+ if (q < 0 && r == 0)
|
|
||||||
r = q;
|
|
||||||
|
|
||||||
} else if (de->d_type == DT_LNK) {
|
|
||||||
@@ -262,6 +261,14 @@ static int remove_marked_symlinks_fd(
|
|
||||||
int q;
|
|
||||||
bool found;
|
|
||||||
|
|
||||||
+ if (!unit_name_is_valid(de->d_name, TEMPLATE_VALID))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ if (unit_name_is_instance(de->d_name) &&
|
|
||||||
+ instance_whitelist &&
|
|
||||||
+ !strv_contains(instance_whitelist, de->d_name))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
p = path_make_absolute(de->d_name, path);
|
|
||||||
if (!p)
|
|
||||||
return -ENOMEM;
|
|
||||||
@@ -280,30 +287,29 @@ static int remove_marked_symlinks_fd(
|
|
||||||
set_get(remove_symlinks_to, dest) ||
|
|
||||||
set_get(remove_symlinks_to, basename(dest));
|
|
||||||
|
|
||||||
- if (unit_name_is_instance(p))
|
|
||||||
- found = found && strv_contains(files, basename(p));
|
|
||||||
-
|
|
||||||
if (found) {
|
|
||||||
|
|
||||||
if (unlink(p) < 0 && errno != ENOENT) {
|
|
||||||
|
|
||||||
if (r == 0)
|
|
||||||
r = -errno;
|
|
||||||
- } else {
|
|
||||||
- rmdir_parents(p, config_path);
|
|
||||||
- path_kill_slashes(p);
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ rmdir_parents(p, config_path);
|
|
||||||
+
|
|
||||||
+ path_kill_slashes(p);
|
|
||||||
|
|
||||||
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
|
|
||||||
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
|
|
||||||
|
|
||||||
- if (!set_get(remove_symlinks_to, p)) {
|
|
||||||
+ if (!set_get(remove_symlinks_to, p)) {
|
|
||||||
|
|
||||||
- q = mark_symlink_for_removal(&remove_symlinks_to, p);
|
|
||||||
- if (q < 0) {
|
|
||||||
- if (r == 0)
|
|
||||||
- r = q;
|
|
||||||
- } else
|
|
||||||
- *deleted = true;
|
|
||||||
- }
|
|
||||||
+ q = mark_symlink_for_removal(&remove_symlinks_to, p);
|
|
||||||
+ if (q < 0) {
|
|
||||||
+ if (r == 0)
|
|
||||||
+ r = q;
|
|
||||||
+ } else
|
|
||||||
+ *deleted = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -317,7 +323,7 @@ static int remove_marked_symlinks(
|
|
||||||
const char *config_path,
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes,
|
|
||||||
- char** files) {
|
|
||||||
+ char** instance_whitelist) {
|
|
||||||
|
|
||||||
_cleanup_close_ int fd = -1;
|
|
||||||
int r = 0;
|
|
||||||
@@ -343,7 +349,7 @@ static int remove_marked_symlinks(
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This takes possession of cfd and closes it */
|
|
||||||
- q = remove_marked_symlinks_fd(remove_symlinks_to, cfd, config_path, config_path, &deleted, changes, n_changes, files);
|
|
||||||
+ q = remove_marked_symlinks_fd(remove_symlinks_to, cfd, config_path, config_path, &deleted, changes, n_changes, instance_whitelist);
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
} while (deleted);
|
|
@ -1,115 +0,0 @@
|
|||||||
From f906059875069ef0b72e54581d78fe4e28b375a3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 00:10:54 +0200
|
|
||||||
Subject: [PATCH] install: various modernizations
|
|
||||||
|
|
||||||
(cherry picked from commit 1dacfd2ad643019f41fb979f5a8c144172911f85)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 47 ++++++++++++++++++++++-------------------------
|
|
||||||
1 file changed, 22 insertions(+), 25 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 40dc7beb..0f49f2a9 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -287,30 +287,31 @@ static int remove_marked_symlinks_fd(
|
|
||||||
set_get(remove_symlinks_to, dest) ||
|
|
||||||
set_get(remove_symlinks_to, basename(dest));
|
|
||||||
|
|
||||||
- if (found) {
|
|
||||||
+ if (!found)
|
|
||||||
+ continue;
|
|
||||||
|
|
||||||
- if (unlink(p) < 0 && errno != ENOENT) {
|
|
||||||
|
|
||||||
- if (r == 0)
|
|
||||||
- r = -errno;
|
|
||||||
- continue;
|
|
||||||
- }
|
|
||||||
+ if (unlink(p) < 0 && errno != ENOENT) {
|
|
||||||
+
|
|
||||||
+ if (r == 0)
|
|
||||||
+ r = -errno;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- rmdir_parents(p, config_path);
|
|
||||||
+ rmdir_parents(p, config_path);
|
|
||||||
|
|
||||||
- path_kill_slashes(p);
|
|
||||||
+ path_kill_slashes(p);
|
|
||||||
|
|
||||||
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
|
|
||||||
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
|
|
||||||
|
|
||||||
- if (!set_get(remove_symlinks_to, p)) {
|
|
||||||
+ if (!set_get(remove_symlinks_to, p)) {
|
|
||||||
|
|
||||||
- q = mark_symlink_for_removal(&remove_symlinks_to, p);
|
|
||||||
- if (q < 0) {
|
|
||||||
- if (r == 0)
|
|
||||||
- r = q;
|
|
||||||
- } else
|
|
||||||
- *deleted = true;
|
|
||||||
- }
|
|
||||||
+ q = mark_symlink_for_removal(&remove_symlinks_to, p);
|
|
||||||
+ if (q < 0) {
|
|
||||||
+ if (r == 0)
|
|
||||||
+ r = q;
|
|
||||||
+ } else
|
|
||||||
+ *deleted = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -417,10 +418,8 @@ static int find_symlinks_fd(
|
|
||||||
|
|
||||||
/* This will close nfd, regardless whether it succeeds or not */
|
|
||||||
q = find_symlinks_fd(name, nfd, p, config_path, same_name_link);
|
|
||||||
-
|
|
||||||
if (q > 0)
|
|
||||||
return 1;
|
|
||||||
-
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
|
|
||||||
@@ -595,7 +594,6 @@ int unit_file_mask(
|
|
||||||
|
|
||||||
if (symlink("/dev/null", path) >= 0) {
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, "/dev/null");
|
|
||||||
-
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -762,7 +760,6 @@ int unit_file_link(
|
|
||||||
_cleanup_free_ char *dest = NULL;
|
|
||||||
|
|
||||||
q = readlink_and_make_absolute(path, &dest);
|
|
||||||
-
|
|
||||||
if (q < 0 && errno != ENOENT) {
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
@@ -1302,8 +1299,8 @@ static int install_info_symlink_link(
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes) {
|
|
||||||
|
|
||||||
- int r;
|
|
||||||
_cleanup_free_ char *path = NULL;
|
|
||||||
+ int r;
|
|
||||||
|
|
||||||
assert(i);
|
|
||||||
assert(paths);
|
|
||||||
@@ -1314,11 +1311,11 @@ static int install_info_symlink_link(
|
|
||||||
if (r != 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
- if (asprintf(&path, "%s/%s", config_path, i->name) < 0)
|
|
||||||
+ path = strjoin(config_path, "/", i->name, NULL);
|
|
||||||
+ if (!path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- r = create_symlink(i->path, path, force, changes, n_changes);
|
|
||||||
- return r;
|
|
||||||
+ return create_symlink(i->path, path, force, changes, n_changes);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int install_info_apply(
|
|
@ -1,69 +0,0 @@
|
|||||||
From b533ed36a5ca33ba718ad37b18d1aa175f232d03 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 00:11:47 +0200
|
|
||||||
Subject: [PATCH] install: use symlink_atomic() instead of unlink()+symlink()
|
|
||||||
when force creating a symlink
|
|
||||||
|
|
||||||
(cherry picked from commit 1f8c46040e824d7367c2f013de13c87d53f249dc)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 27 ++++++++-------------------
|
|
||||||
1 file changed, 8 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 0f49f2a9..f0d3d1b7 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -603,13 +603,9 @@ int unit_file_mask(
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (force) {
|
|
||||||
- unlink(path);
|
|
||||||
-
|
|
||||||
- if (symlink("/dev/null", path) >= 0) {
|
|
||||||
-
|
|
||||||
+ if (symlink_atomic("/dev/null", path) >= 0) {
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, path, NULL);
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, "/dev/null");
|
|
||||||
-
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -770,13 +766,9 @@ int unit_file_link(
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (force) {
|
|
||||||
- unlink(path);
|
|
||||||
-
|
|
||||||
- if (symlink(*i, path) >= 0) {
|
|
||||||
-
|
|
||||||
+ if (symlink_atomic(*i, path) >= 0) {
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, path, NULL);
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, *i);
|
|
||||||
-
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1172,17 +1164,14 @@ static int create_symlink(
|
|
||||||
if (!force)
|
|
||||||
return -EEXIST;
|
|
||||||
|
|
||||||
- r = unlink(new_path);
|
|
||||||
- if (r < 0 && errno != ENOENT)
|
|
||||||
- return -errno;
|
|
||||||
+ r = symlink_atomic(old_path, new_path);
|
|
||||||
+ if (r < 0)
|
|
||||||
+ return r;
|
|
||||||
|
|
||||||
- if (symlink(old_path, new_path) >= 0) {
|
|
||||||
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
|
|
||||||
- add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
|
|
||||||
- return 0;
|
|
||||||
- }
|
|
||||||
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
|
|
||||||
+ add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
|
|
||||||
|
|
||||||
- return -errno;
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int install_info_symlink_alias(
|
|
@ -1,124 +0,0 @@
|
|||||||
From acefb01e351be2f1dbd05078fdf4522a9dadaa4d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 00:13:48 +0200
|
|
||||||
Subject: [PATCH] install: when looking for a unit file for enabling, search
|
|
||||||
for templates only after traversing all search directories
|
|
||||||
|
|
||||||
Let's always make sure to look in all search directories for the full
|
|
||||||
unit names first, before looking for templates for them.
|
|
||||||
|
|
||||||
(cherry picked from commit e50bd775163cd96be1888943a8785a436be710e8)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 74 +++++++++++++++++++++++++++-------------------------
|
|
||||||
1 file changed, 38 insertions(+), 36 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index f0d3d1b7..e16de4d6 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -1035,67 +1035,69 @@ static int unit_file_search(
|
|
||||||
assert(paths);
|
|
||||||
|
|
||||||
if (info->path) {
|
|
||||||
- char *full_path = NULL;
|
|
||||||
+ const char *path;
|
|
||||||
|
|
||||||
- if (!isempty(root_dir))
|
|
||||||
- full_path = strappenda(root_dir, info->path);
|
|
||||||
+ if (isempty(root_dir))
|
|
||||||
+ path = info->path;
|
|
||||||
+ else
|
|
||||||
+ path = strappenda(root_dir, info->path);
|
|
||||||
|
|
||||||
- return unit_file_load(c, info, full_path ?: info->path, allow_symlink);
|
|
||||||
+ return unit_file_load(c, info, path, allow_symlink);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(info->name);
|
|
||||||
|
|
||||||
STRV_FOREACH(p, paths->unit_path) {
|
|
||||||
- _cleanup_free_ char *path = NULL, *full_path = NULL;
|
|
||||||
+ _cleanup_free_ char *path = NULL;
|
|
||||||
|
|
||||||
- path = strjoin(*p, "/", info->name, NULL);
|
|
||||||
+ if (isempty(root_dir))
|
|
||||||
+ path = strjoin(*p, "/", info->name, NULL);
|
|
||||||
+ else
|
|
||||||
+ path = strjoin(root_dir, "/", *p, "/", info->name, NULL);
|
|
||||||
if (!path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- if (!isempty(root_dir)) {
|
|
||||||
- full_path = strappend(root_dir, path);
|
|
||||||
- if (!full_path)
|
|
||||||
- return -ENOMEM;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- r = unit_file_load(c, info, full_path ?: path, allow_symlink);
|
|
||||||
+ r = unit_file_load(c, info, path, allow_symlink);
|
|
||||||
if (r >= 0) {
|
|
||||||
info->path = path;
|
|
||||||
path = NULL;
|
|
||||||
- } else if (r == -ENOENT && unit_name_is_instance(info->name)) {
|
|
||||||
- /* Unit file doesn't exist, however instance enablement was requested.
|
|
||||||
- * We will check if it is possible to load template unit file. */
|
|
||||||
- _cleanup_free_ char *template = NULL, *template_dir = NULL;
|
|
||||||
+ return r;
|
|
||||||
+ }
|
|
||||||
+ if (r != -ENOENT && r != -ELOOP)
|
|
||||||
+ return r;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- template = unit_name_template(info->name);
|
|
||||||
- if (!template)
|
|
||||||
- return -ENOMEM;
|
|
||||||
+ if (unit_name_is_instance(info->name)) {
|
|
||||||
+
|
|
||||||
+ /* Unit file doesn't exist, however instance
|
|
||||||
+ * enablement was requested. We will check if it is
|
|
||||||
+ * possible to load template unit file. */
|
|
||||||
|
|
||||||
- /* We will reuse path variable since we don't need it anymore. */
|
|
||||||
- template_dir = path;
|
|
||||||
- *(strrchr(template_dir, '/') + 1) = '\0';
|
|
||||||
+ _cleanup_free_ char *template = NULL, *template_dir = NULL;
|
|
||||||
+
|
|
||||||
+ template = unit_name_template(info->name);
|
|
||||||
+ if (!template)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
|
|
||||||
- path = strappend(template_dir, template);
|
|
||||||
+ STRV_FOREACH(p, paths->unit_path) {
|
|
||||||
+ _cleanup_free_ char *path = NULL;
|
|
||||||
+
|
|
||||||
+ if (isempty(root_dir))
|
|
||||||
+ path = strjoin(*p, "/", template, NULL);
|
|
||||||
+ else
|
|
||||||
+ path = strjoin(root_dir, "/", *p, "/", template, NULL);
|
|
||||||
if (!path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- if (!isempty(root_dir)) {
|
|
||||||
- free(full_path);
|
|
||||||
- full_path = strappend(root_dir, path);
|
|
||||||
- if (!full_path)
|
|
||||||
- return -ENOMEM;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Let's try to load template unit. */
|
|
||||||
- r = unit_file_load(c, info, full_path ?: path, allow_symlink);
|
|
||||||
+ r = unit_file_load(c, info, path, allow_symlink);
|
|
||||||
if (r >= 0) {
|
|
||||||
info->path = path;
|
|
||||||
path = NULL;
|
|
||||||
+ return r;
|
|
||||||
}
|
|
||||||
+ if (r != -ENOENT && r != -ELOOP)
|
|
||||||
+ return r;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- if (r != -ENOENT && r != -ELOOP)
|
|
||||||
- return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -ENOENT;
|
|
@ -1,60 +0,0 @@
|
|||||||
From 90d16404421d61e4e13bcff35f914477b9d04d81 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 00:33:39 +0200
|
|
||||||
Subject: [PATCH] install: make sure "systemctl disable foobar@.service"
|
|
||||||
actually removes all instances
|
|
||||||
|
|
||||||
(cherry picked from commit 559367add5e22bf32d14fa1496512c68488f48b0)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 24 +++++++++++++++++-------
|
|
||||||
1 file changed, 17 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index e16de4d6..278350be 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -266,8 +266,22 @@ static int remove_marked_symlinks_fd(
|
|
||||||
|
|
||||||
if (unit_name_is_instance(de->d_name) &&
|
|
||||||
instance_whitelist &&
|
|
||||||
- !strv_contains(instance_whitelist, de->d_name))
|
|
||||||
- continue;
|
|
||||||
+ !strv_contains(instance_whitelist, de->d_name)) {
|
|
||||||
+
|
|
||||||
+ _cleanup_free_ char *w;
|
|
||||||
+
|
|
||||||
+ /* OK, the file is not listed directly
|
|
||||||
+ * in the whitelist, so let's check if
|
|
||||||
+ * the template of it might be
|
|
||||||
+ * listed. */
|
|
||||||
+
|
|
||||||
+ w = unit_name_template(de->d_name);
|
|
||||||
+ if (!w)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+
|
|
||||||
+ if (!strv_contains(instance_whitelist, w))
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
p = path_make_absolute(de->d_name, path);
|
|
||||||
if (!p)
|
|
||||||
@@ -290,18 +304,14 @@ static int remove_marked_symlinks_fd(
|
|
||||||
if (!found)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
-
|
|
||||||
if (unlink(p) < 0 && errno != ENOENT) {
|
|
||||||
-
|
|
||||||
if (r == 0)
|
|
||||||
r = -errno;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- rmdir_parents(p, config_path);
|
|
||||||
-
|
|
||||||
path_kill_slashes(p);
|
|
||||||
-
|
|
||||||
+ rmdir_parents(p, config_path);
|
|
||||||
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
|
|
||||||
|
|
||||||
if (!set_get(remove_symlinks_to, p)) {
|
|
@ -1,146 +0,0 @@
|
|||||||
From c88a943a7300a2c206d17aabc733ba3704eb83e5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 00:53:49 +0200
|
|
||||||
Subject: [PATCH] install: make sure that --root= mode doesn't make us consider
|
|
||||||
all units outside of search path
|
|
||||||
|
|
||||||
(cherry picked from commit 8f294b45cbb627d31342f6a79444be59ce7e2274)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 41 +++++++++++++++++++++++++++++++++++++----
|
|
||||||
src/shared/util.c | 16 ----------------
|
|
||||||
src/shared/util.h | 1 -
|
|
||||||
3 files changed, 37 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 278350be..509ae933 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -47,6 +47,37 @@ typedef struct {
|
|
||||||
|
|
||||||
#define _cleanup_install_context_done_ _cleanup_(install_context_done)
|
|
||||||
|
|
||||||
+static int in_search_path(const char *path, char **search, const char *root_dir) {
|
|
||||||
+ _cleanup_free_ char *parent = NULL;
|
|
||||||
+ char **i;
|
|
||||||
+ int r;
|
|
||||||
+
|
|
||||||
+ assert(path);
|
|
||||||
+
|
|
||||||
+ r = path_get_parent(path, &parent);
|
|
||||||
+ if (r < 0)
|
|
||||||
+ return r;
|
|
||||||
+
|
|
||||||
+ STRV_FOREACH(i, search) {
|
|
||||||
+ _cleanup_free_ char *buf = NULL;
|
|
||||||
+ const char *p;
|
|
||||||
+
|
|
||||||
+ if (root_dir) {
|
|
||||||
+ buf = strjoin(root_dir, "/", *i, NULL);
|
|
||||||
+ if (!buf)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+
|
|
||||||
+ p = buf;
|
|
||||||
+ } else
|
|
||||||
+ p = *i;
|
|
||||||
+
|
|
||||||
+ if (path_equal(parent, p))
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int lookup_paths_init_from_scope(LookupPaths *paths,
|
|
||||||
UnitFileScope scope,
|
|
||||||
const char *root_dir) {
|
|
||||||
@@ -746,7 +777,7 @@ int unit_file_link(
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- q = in_search_path(*i, paths.unit_path);
|
|
||||||
+ q = in_search_path(*i, paths.unit_path, root_dir);
|
|
||||||
if (q < 0)
|
|
||||||
return q;
|
|
||||||
|
|
||||||
@@ -1296,6 +1327,7 @@ static int install_info_symlink_link(
|
|
||||||
InstallInfo *i,
|
|
||||||
LookupPaths *paths,
|
|
||||||
const char *config_path,
|
|
||||||
+ const char *root_dir,
|
|
||||||
bool force,
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes) {
|
|
||||||
@@ -1308,7 +1340,7 @@ static int install_info_symlink_link(
|
|
||||||
assert(config_path);
|
|
||||||
assert(i->path);
|
|
||||||
|
|
||||||
- r = in_search_path(i->path, paths->unit_path);
|
|
||||||
+ r = in_search_path(i->path, paths->unit_path, root_dir);
|
|
||||||
if (r != 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
@@ -1323,6 +1355,7 @@ static int install_info_apply(
|
|
||||||
InstallInfo *i,
|
|
||||||
LookupPaths *paths,
|
|
||||||
const char *config_path,
|
|
||||||
+ const char *root_dir,
|
|
||||||
bool force,
|
|
||||||
UnitFileChange **changes,
|
|
||||||
unsigned *n_changes) {
|
|
||||||
@@ -1343,7 +1376,7 @@ static int install_info_apply(
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
|
|
||||||
- q = install_info_symlink_link(i, paths, config_path, force, changes, n_changes);
|
|
||||||
+ q = install_info_symlink_link(i, paths, config_path, root_dir, force, changes, n_changes);
|
|
||||||
if (r == 0)
|
|
||||||
r = q;
|
|
||||||
|
|
||||||
@@ -1383,7 +1416,7 @@ static int install_context_apply(
|
|
||||||
} else if (r >= 0)
|
|
||||||
r += q;
|
|
||||||
|
|
||||||
- q = install_info_apply(i, paths, config_path, force, changes, n_changes);
|
|
||||||
+ q = install_info_apply(i, paths, config_path, root_dir, force, changes, n_changes);
|
|
||||||
if (r >= 0 && q < 0)
|
|
||||||
r = q;
|
|
||||||
}
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 91cbf204..9be80887 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -4452,22 +4452,6 @@ int dirent_ensure_type(DIR *d, struct dirent *de) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-int in_search_path(const char *path, char **search) {
|
|
||||||
- char **i;
|
|
||||||
- _cleanup_free_ char *parent = NULL;
|
|
||||||
- int r;
|
|
||||||
-
|
|
||||||
- r = path_get_parent(path, &parent);
|
|
||||||
- if (r < 0)
|
|
||||||
- return r;
|
|
||||||
-
|
|
||||||
- STRV_FOREACH(i, search)
|
|
||||||
- if (path_equal(parent, *i))
|
|
||||||
- return 1;
|
|
||||||
-
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
int get_files_in_directory(const char *path, char ***list) {
|
|
||||||
_cleanup_closedir_ DIR *d = NULL;
|
|
||||||
size_t bufsize = 0, n = 0;
|
|
||||||
diff --git a/src/shared/util.h b/src/shared/util.h
|
|
||||||
index 0f8c3933..9c38499a 100644
|
|
||||||
--- a/src/shared/util.h
|
|
||||||
+++ b/src/shared/util.h
|
|
||||||
@@ -543,7 +543,6 @@ int glob_extend(char ***strv, const char *path);
|
|
||||||
|
|
||||||
int dirent_ensure_type(DIR *d, struct dirent *de);
|
|
||||||
|
|
||||||
-int in_search_path(const char *path, char **search);
|
|
||||||
int get_files_in_directory(const char *path, char ***list);
|
|
||||||
|
|
||||||
char *strjoin(const char *x, ...) _sentinel_;
|
|
@ -1,49 +0,0 @@
|
|||||||
From 09fcc5cffa54468595fbf6b81308cd22e896cdfe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 01:05:39 +0200
|
|
||||||
Subject: [PATCH] log: don't downgrade log level in non-PID 1 if "quiet" is
|
|
||||||
passed on kernel cmdline
|
|
||||||
|
|
||||||
"debug" should apply to all tools, but "quiet" only to PID1.
|
|
||||||
|
|
||||||
(cherry picked from commit d7b15e0a0161e8fd823bffd61a4799364871582f)
|
|
||||||
---
|
|
||||||
src/core/main.c | 5 +++++
|
|
||||||
src/shared/log.c | 3 ---
|
|
||||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/main.c b/src/core/main.c
|
|
||||||
index c9472929..80a2ea3a 100644
|
|
||||||
--- a/src/core/main.c
|
|
||||||
+++ b/src/core/main.c
|
|
||||||
@@ -412,11 +412,16 @@ static int parse_proc_cmdline_item(const char *key, const char *value) {
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (streq(key, "quiet") && !value) {
|
|
||||||
+
|
|
||||||
+ log_set_max_level(LOG_NOTICE);
|
|
||||||
+
|
|
||||||
if (arg_show_status == _SHOW_STATUS_UNSET)
|
|
||||||
arg_show_status = SHOW_STATUS_AUTO;
|
|
||||||
|
|
||||||
} else if (streq(key, "debug") && !value) {
|
|
||||||
+
|
|
||||||
log_set_max_level(LOG_DEBUG);
|
|
||||||
+
|
|
||||||
if (detect_container(NULL) > 0)
|
|
||||||
log_set_target(LOG_TARGET_CONSOLE);
|
|
||||||
|
|
||||||
diff --git a/src/shared/log.c b/src/shared/log.c
|
|
||||||
index 6f17705a..9039db34 100644
|
|
||||||
--- a/src/shared/log.c
|
|
||||||
+++ b/src/shared/log.c
|
|
||||||
@@ -878,9 +878,6 @@ void log_parse_environment(void) {
|
|
||||||
if (l == 5 && startswith(w, "debug")) {
|
|
||||||
log_set_max_level(LOG_DEBUG);
|
|
||||||
break;
|
|
||||||
- } else if (l == 5 && startswith(w, "quiet")) {
|
|
||||||
- log_set_max_level(LOG_WARNING);
|
|
||||||
- break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,148 +0,0 @@
|
|||||||
From 7e1db29dde294155be972acf6d3e2db4d27266de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 01:37:54 +0200
|
|
||||||
Subject: [PATCH] install: simplify symlink --root= logic
|
|
||||||
|
|
||||||
(cherry picked from commit 278fa5758c8e30f03c8c50f15873d55edfc4cbaf)
|
|
||||||
---
|
|
||||||
src/shared/install.c | 59 +++++++++++++---------------------------------------
|
|
||||||
1 file changed, 15 insertions(+), 44 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 509ae933..8322970a 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -47,9 +47,8 @@ typedef struct {
|
|
||||||
|
|
||||||
#define _cleanup_install_context_done_ _cleanup_(install_context_done)
|
|
||||||
|
|
||||||
-static int in_search_path(const char *path, char **search, const char *root_dir) {
|
|
||||||
+static int in_search_path(const char *path, char **search) {
|
|
||||||
_cleanup_free_ char *parent = NULL;
|
|
||||||
- char **i;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(path);
|
|
||||||
@@ -58,24 +57,7 @@ static int in_search_path(const char *path, char **search, const char *root_dir)
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
- STRV_FOREACH(i, search) {
|
|
||||||
- _cleanup_free_ char *buf = NULL;
|
|
||||||
- const char *p;
|
|
||||||
-
|
|
||||||
- if (root_dir) {
|
|
||||||
- buf = strjoin(root_dir, "/", *i, NULL);
|
|
||||||
- if (!buf)
|
|
||||||
- return -ENOMEM;
|
|
||||||
-
|
|
||||||
- p = buf;
|
|
||||||
- } else
|
|
||||||
- p = *i;
|
|
||||||
-
|
|
||||||
- if (path_equal(parent, p))
|
|
||||||
- return 1;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return 0;
|
|
||||||
+ return strv_contains(search, parent);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int lookup_paths_init_from_scope(LookupPaths *paths,
|
|
||||||
@@ -777,7 +759,7 @@ int unit_file_link(
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- q = in_search_path(*i, paths.unit_path, root_dir);
|
|
||||||
+ q = in_search_path(*i, paths.unit_path);
|
|
||||||
if (q < 0)
|
|
||||||
return q;
|
|
||||||
|
|
||||||
@@ -1021,6 +1003,7 @@ static int unit_file_load(
|
|
||||||
InstallContext *c,
|
|
||||||
InstallInfo *info,
|
|
||||||
const char *path,
|
|
||||||
+ const char *root_dir,
|
|
||||||
bool allow_symlink) {
|
|
||||||
|
|
||||||
const ConfigTableItem items[] = {
|
|
||||||
@@ -1032,14 +1015,16 @@ static int unit_file_load(
|
|
||||||
{ NULL, NULL, NULL, 0, NULL }
|
|
||||||
};
|
|
||||||
|
|
||||||
- int fd;
|
|
||||||
_cleanup_fclose_ FILE *f = NULL;
|
|
||||||
- int r;
|
|
||||||
+ int fd, r;
|
|
||||||
|
|
||||||
assert(c);
|
|
||||||
assert(info);
|
|
||||||
assert(path);
|
|
||||||
|
|
||||||
+ if (!isempty(root_dir))
|
|
||||||
+ path = strappenda3(root_dir, "/", path);
|
|
||||||
+
|
|
||||||
fd = open(path, O_RDONLY|O_CLOEXEC|O_NOCTTY|(allow_symlink ? 0 : O_NOFOLLOW));
|
|
||||||
if (fd < 0)
|
|
||||||
return -errno;
|
|
||||||
@@ -1075,30 +1060,19 @@ static int unit_file_search(
|
|
||||||
assert(info);
|
|
||||||
assert(paths);
|
|
||||||
|
|
||||||
- if (info->path) {
|
|
||||||
- const char *path;
|
|
||||||
-
|
|
||||||
- if (isempty(root_dir))
|
|
||||||
- path = info->path;
|
|
||||||
- else
|
|
||||||
- path = strappenda(root_dir, info->path);
|
|
||||||
-
|
|
||||||
- return unit_file_load(c, info, path, allow_symlink);
|
|
||||||
- }
|
|
||||||
+ if (info->path)
|
|
||||||
+ return unit_file_load(c, info, info->path, root_dir, allow_symlink);
|
|
||||||
|
|
||||||
assert(info->name);
|
|
||||||
|
|
||||||
STRV_FOREACH(p, paths->unit_path) {
|
|
||||||
_cleanup_free_ char *path = NULL;
|
|
||||||
|
|
||||||
- if (isempty(root_dir))
|
|
||||||
- path = strjoin(*p, "/", info->name, NULL);
|
|
||||||
- else
|
|
||||||
- path = strjoin(root_dir, "/", *p, "/", info->name, NULL);
|
|
||||||
+ path = strjoin(*p, "/", info->name, NULL);
|
|
||||||
if (!path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- r = unit_file_load(c, info, path, allow_symlink);
|
|
||||||
+ r = unit_file_load(c, info, path, root_dir, allow_symlink);
|
|
||||||
if (r >= 0) {
|
|
||||||
info->path = path;
|
|
||||||
path = NULL;
|
|
||||||
@@ -1123,14 +1097,11 @@ static int unit_file_search(
|
|
||||||
STRV_FOREACH(p, paths->unit_path) {
|
|
||||||
_cleanup_free_ char *path = NULL;
|
|
||||||
|
|
||||||
- if (isempty(root_dir))
|
|
||||||
- path = strjoin(*p, "/", template, NULL);
|
|
||||||
- else
|
|
||||||
- path = strjoin(root_dir, "/", *p, "/", template, NULL);
|
|
||||||
+ path = strjoin(*p, "/", template, NULL);
|
|
||||||
if (!path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- r = unit_file_load(c, info, path, allow_symlink);
|
|
||||||
+ r = unit_file_load(c, info, path, root_dir, allow_symlink);
|
|
||||||
if (r >= 0) {
|
|
||||||
info->path = path;
|
|
||||||
path = NULL;
|
|
||||||
@@ -1340,7 +1311,7 @@ static int install_info_symlink_link(
|
|
||||||
assert(config_path);
|
|
||||||
assert(i->path);
|
|
||||||
|
|
||||||
- r = in_search_path(i->path, paths->unit_path, root_dir);
|
|
||||||
+ r = in_search_path(i->path, paths->unit_path);
|
|
||||||
if (r != 0)
|
|
||||||
return r;
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
From 90df11b158e4026a73281c4df9b562a74f7045f1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 01:56:44 +0200
|
|
||||||
Subject: [PATCH] conf-files: fix when for --root= logic
|
|
||||||
|
|
||||||
This is based on parts of similar patches from Michael Marineau and
|
|
||||||
Lukas Nykrin, but simply uses strappenda3().
|
|
||||||
|
|
||||||
(cherry picked from commit cebed5005b5ede17fc52ab50c054fca73bc938b8)
|
|
||||||
---
|
|
||||||
src/shared/conf-files.c | 16 +++++++++++++---
|
|
||||||
1 file changed, 13 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c
|
|
||||||
index 52017821..59bc8cee 100644
|
|
||||||
--- a/src/shared/conf-files.c
|
|
||||||
+++ b/src/shared/conf-files.c
|
|
||||||
@@ -37,10 +37,20 @@
|
|
||||||
#include "hashmap.h"
|
|
||||||
#include "conf-files.h"
|
|
||||||
|
|
||||||
-static int files_add(Hashmap *h, const char *dirpath, const char *suffix) {
|
|
||||||
+static int files_add(Hashmap *h, const char *dirpath, const char *suffix, const char *root) {
|
|
||||||
_cleanup_closedir_ DIR *dir = NULL;
|
|
||||||
|
|
||||||
- dir = opendir(dirpath);
|
|
||||||
+ assert(dirpath);
|
|
||||||
+ assert(suffix);
|
|
||||||
+
|
|
||||||
+ if (isempty(root))
|
|
||||||
+ dir = opendir(dirpath);
|
|
||||||
+ else {
|
|
||||||
+ const char *p;
|
|
||||||
+
|
|
||||||
+ p = strappenda3(root, "/", dirpath);
|
|
||||||
+ dir = opendir(p);
|
|
||||||
+ }
|
|
||||||
if (!dir) {
|
|
||||||
if (errno == ENOENT)
|
|
||||||
return 0;
|
|
||||||
@@ -108,7 +118,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
STRV_FOREACH(p, dirs) {
|
|
||||||
- r = files_add(fh, *p, suffix);
|
|
||||||
+ r = files_add(fh, *p, suffix, root);
|
|
||||||
if (r == -ENOMEM) {
|
|
||||||
hashmap_free_free(fh);
|
|
||||||
return r;
|
|
@ -1,26 +0,0 @@
|
|||||||
From 12c375aecad2df91b32a799460585f1a97a106a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 02:13:08 +0200
|
|
||||||
Subject: [PATCH] networkd: don't pull in systemd-networkd-wait-online service
|
|
||||||
from systemd-networkd when enabling
|
|
||||||
|
|
||||||
networkd-wait-online should never exist in the default transaction,
|
|
||||||
unless explicitly enable or pulled in via things like NFS. However, just
|
|
||||||
enabling networkd shouldn't enable networkd-wait-online, since it's
|
|
||||||
common to use the former without the latter.
|
|
||||||
|
|
||||||
(cherry picked from commit 324d7a53b9c53b33520b97f2562219ac4143f581)
|
|
||||||
---
|
|
||||||
units/systemd-networkd.service.in | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/units/systemd-networkd.service.in b/units/systemd-networkd.service.in
|
|
||||||
index 48f4d63a..f3bf95d3 100644
|
|
||||||
--- a/units/systemd-networkd.service.in
|
|
||||||
+++ b/units/systemd-networkd.service.in
|
|
||||||
@@ -25,5 +25,4 @@ ProtectHome=yes
|
|
||||||
WatchdogSec=1min
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
-Also=systemd-networkd-wait-online.service
|
|
||||||
WantedBy=multi-user.target
|
|
@ -1,35 +0,0 @@
|
|||||||
From 985c32b7716eea3f04f0b423ef3d136708b6ad51 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Frederic Crozat <fcrozat@suse.com>
|
|
||||||
Date: Mon, 16 Jun 2014 18:49:12 +0200
|
|
||||||
Subject: [PATCH] bootchart: set white background
|
|
||||||
|
|
||||||
In programs like eog and gimp the transparant background did not
|
|
||||||
look very good.
|
|
||||||
|
|
||||||
Similar fix from the one done in systemd-analyze (418e3750)
|
|
||||||
|
|
||||||
(cherry picked from commit a7997073ac07add6cb30dcd9491c0179b2d6ad52)
|
|
||||||
---
|
|
||||||
src/bootchart/svg.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/bootchart/svg.c b/src/bootchart/svg.c
|
|
||||||
index a53f98a9..81211995 100644
|
|
||||||
--- a/src/bootchart/svg.c
|
|
||||||
+++ b/src/bootchart/svg.c
|
|
||||||
@@ -123,6 +123,7 @@ static void svg_header(void) {
|
|
||||||
svg("<defs>\n <style type=\"text/css\">\n <![CDATA[\n");
|
|
||||||
|
|
||||||
svg(" rect { stroke-width: 1; }\n");
|
|
||||||
+ svg(" rect.bg { fill: rgb(255,255,255); }\n");
|
|
||||||
svg(" rect.cpu { fill: rgb(64,64,240); stroke-width: 0; fill-opacity: 0.7; }\n");
|
|
||||||
svg(" rect.wait { fill: rgb(240,240,0); stroke-width: 0; fill-opacity: 0.7; }\n");
|
|
||||||
svg(" rect.bi { fill: rgb(240,128,128); stroke-width: 0; fill-opacity: 0.7; }\n");
|
|
||||||
@@ -1270,6 +1271,7 @@ void svg_do(const char *build) {
|
|
||||||
|
|
||||||
/* after this, we can draw the header with proper sizing */
|
|
||||||
svg_header();
|
|
||||||
+ svg("<rect class=\"bg\" width=\"100%%\" height=\"100%%\" />\n\n");
|
|
||||||
|
|
||||||
svg("<g transform=\"translate(10,400)\">\n");
|
|
||||||
svg_io_bi_bar();
|
|
@ -1,23 +0,0 @@
|
|||||||
From 4b700b54f53769239daa9d62ba1a75804b1f6265 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ronny Chevalier <chevalier.ronny@gmail.com>
|
|
||||||
Date: Tue, 17 Jun 2014 19:26:14 +0200
|
|
||||||
Subject: [PATCH] build-sys: add missing backslash
|
|
||||||
|
|
||||||
(cherry picked from commit fe582db94bac3743b87d67d880497fe40b06dd2f)
|
|
||||||
---
|
|
||||||
Makefile.am | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index 959c1210..cb9b1fa8 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -3453,7 +3453,7 @@ libsystemd_journal_internal_la_SOURCES = \
|
|
||||||
src/journal/mmap-cache.h
|
|
||||||
|
|
||||||
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
|
|
||||||
-libsystemd_journal_internal_la_CFLAGS =
|
|
||||||
+libsystemd_journal_internal_la_CFLAGS = \
|
|
||||||
$(AM_CFLAGS)
|
|
||||||
|
|
||||||
libsystemd_journal_internal_la_LIBADD =
|
|
@ -1,34 +0,0 @@
|
|||||||
From 415796b7022e7f7756effbaf795bf46bbb6cba5f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Tue, 17 Jun 2014 23:51:21 +0200
|
|
||||||
Subject: [PATCH] namespace: properly label device nodes we create
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1081429
|
|
||||||
(cherry picked from commit dd078a1ef844d2ab66b8fb1e58dd73522262fad6)
|
|
||||||
---
|
|
||||||
src/core/namespace.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/core/namespace.c b/src/core/namespace.c
|
|
||||||
index 3b5402b7..d1513ce2 100644
|
|
||||||
--- a/src/core/namespace.c
|
|
||||||
+++ b/src/core/namespace.c
|
|
||||||
@@ -42,6 +42,7 @@
|
|
||||||
#include "mkdir.h"
|
|
||||||
#include "dev-setup.h"
|
|
||||||
#include "def.h"
|
|
||||||
+#include "label.h"
|
|
||||||
|
|
||||||
typedef enum MountMode {
|
|
||||||
/* This is ordered by priority! */
|
|
||||||
@@ -223,7 +224,10 @@ static int mount_dev(BindMount *m) {
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ label_context_set(d, st.st_mode);
|
|
||||||
r = mknod(dn, st.st_mode, st.st_rdev);
|
|
||||||
+ label_context_clear();
|
|
||||||
+
|
|
||||||
if (r < 0) {
|
|
||||||
r = -errno;
|
|
||||||
goto fail;
|
|
@ -1,32 +0,0 @@
|
|||||||
From 22549162275fdd36e978a209469772997397f9d7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Wed, 18 Jun 2014 00:02:08 +0200
|
|
||||||
Subject: [PATCH] tmpfiles: create directories already with the right label,
|
|
||||||
instead of creating them first, and relabeling them afterwards
|
|
||||||
|
|
||||||
(cherry picked from commit 6f04529399a7a59cfe549913349176409a4dc2e3)
|
|
||||||
---
|
|
||||||
src/tmpfiles/tmpfiles.c | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
|
||||||
index 3e817cca..7950354d 100644
|
|
||||||
--- a/src/tmpfiles/tmpfiles.c
|
|
||||||
+++ b/src/tmpfiles/tmpfiles.c
|
|
||||||
@@ -693,12 +693,12 @@ static int create_item(Item *i) {
|
|
||||||
|
|
||||||
RUN_WITH_UMASK(0000) {
|
|
||||||
mkdir_parents_label(i->path, 0755);
|
|
||||||
- r = mkdir(i->path, i->mode);
|
|
||||||
+ r = mkdir_label(i->path, i->mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (r < 0 && errno != EEXIST) {
|
|
||||||
- log_error("Failed to create directory %s: %m", i->path);
|
|
||||||
- return -errno;
|
|
||||||
+ if (r < 0 && r != -EEXIST) {
|
|
||||||
+ log_error("Failed to create directory %s: %s", i->path, strerror(-r));
|
|
||||||
+ return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stat(i->path, &st) < 0) {
|
|
@ -1,101 +0,0 @@
|
|||||||
From ed5678903964de92ba74baf2e5597914a3d44583 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Wed, 18 Jun 2014 00:07:56 +0200
|
|
||||||
Subject: [PATCH] cryptsetup: introduce new cryptsetup-pre.traget unit so that
|
|
||||||
services can make sure they are started before and stopped after any LUKS
|
|
||||||
setup
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1097938
|
|
||||||
(cherry picked from commit 9542239eaf481decca6c254dffb3f2b4e716545e)
|
|
||||||
---
|
|
||||||
Makefile.am | 3 ++-
|
|
||||||
man/systemd.special.xml | 22 ++++++++++++++++++++++
|
|
||||||
src/cryptsetup/cryptsetup-generator.c | 2 +-
|
|
||||||
units/cryptsetup-pre.target | 11 +++++++++++
|
|
||||||
4 files changed, 36 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100644 units/cryptsetup-pre.target
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index cb9b1fa8..75d62f06 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -3846,7 +3846,8 @@ systemgenerator_PROGRAMS += \
|
|
||||||
systemd-cryptsetup-generator
|
|
||||||
|
|
||||||
dist_systemunit_DATA += \
|
|
||||||
- units/cryptsetup.target
|
|
||||||
+ units/cryptsetup.target \
|
|
||||||
+ units/cryptsetup-pre.target
|
|
||||||
|
|
||||||
systemd_cryptsetup_SOURCES = \
|
|
||||||
src/cryptsetup/cryptsetup.c
|
|
||||||
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
|
|
||||||
index cda6edd4..f29cc23c 100644
|
|
||||||
--- a/man/systemd.special.xml
|
|
||||||
+++ b/man/systemd.special.xml
|
|
||||||
@@ -52,6 +52,7 @@
|
|
||||||
<filename>bluetooth.target</filename>,
|
|
||||||
<filename>ctrl-alt-del.target</filename>,
|
|
||||||
<filename>cryptsetup.target</filename>,
|
|
||||||
+ <filename>cryptsetup-pre.target</filename>,
|
|
||||||
<filename>dbus.service</filename>,
|
|
||||||
<filename>dbus.socket</filename>,
|
|
||||||
<filename>default.target</filename>,
|
|
||||||
@@ -841,6 +842,27 @@
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
+ <term><filename>cryptsetup-pre.target</filename></term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>This passive target unit
|
|
||||||
+ may be pulled in by services
|
|
||||||
+ that want to run before any
|
|
||||||
+ encrypted block device is set
|
|
||||||
+ up. All encrypted block
|
|
||||||
+ devices are set up after this
|
|
||||||
+ target has been reached. Since
|
|
||||||
+ the shutdown order is
|
|
||||||
+ implicitly the reverse
|
|
||||||
+ start-up order between units
|
|
||||||
+ this target is particularly
|
|
||||||
+ useful to ensure that a
|
|
||||||
+ service is shut down only
|
|
||||||
+ after all encrypted block
|
|
||||||
+ devices are fully
|
|
||||||
+ stopped.</para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+ <varlistentry>
|
|
||||||
<term><filename>local-fs-pre.target</filename></term>
|
|
||||||
<listitem>
|
|
||||||
<para>This target unit is
|
|
||||||
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
index f4eeb2ad..dfdca1e4 100644
|
|
||||||
--- a/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
+++ b/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
@@ -127,7 +127,7 @@ static int create_disk(
|
|
||||||
"Conflicts=umount.target\n"
|
|
||||||
"BindsTo=dev-mapper-%i.device\n"
|
|
||||||
"IgnoreOnIsolate=true\n"
|
|
||||||
- "After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
|
|
||||||
+ "After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target\n",
|
|
||||||
f);
|
|
||||||
|
|
||||||
if (!nofail)
|
|
||||||
diff --git a/units/cryptsetup-pre.target b/units/cryptsetup-pre.target
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..65353419
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/units/cryptsetup-pre.target
|
|
||||||
@@ -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.
|
|
||||||
+
|
|
||||||
+[Unit]
|
|
||||||
+Description=Encrypted Volumes (Pre)
|
|
||||||
+Documentation=man:systemd.special(7)
|
|
||||||
+RefuseManualStart=yes
|
|
@ -1,23 +0,0 @@
|
|||||||
From 54687582ebc848ae90112341c5a726a8861c0029 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Wed, 18 Jun 2014 03:37:32 +0200
|
|
||||||
Subject: [PATCH] rules: add loop-control and btrfs-control to "disk" group
|
|
||||||
|
|
||||||
(cherry picked from commit 27e7c26268bd4c16edb92f2b8a8626b00c6f2dad)
|
|
||||||
---
|
|
||||||
rules/50-udev-default.rules | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
|
|
||||||
index 1ecd47a2..2bf9c1ec 100644
|
|
||||||
--- a/rules/50-udev-default.rules
|
|
||||||
+++ b/rules/50-udev-default.rules
|
|
||||||
@@ -59,6 +59,8 @@ KERNEL=="pktcdvd", GROUP="cdrom"
|
|
||||||
SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
|
|
||||||
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
|
|
||||||
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
|
|
||||||
+KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
|
|
||||||
+KERNEL=="btrfs-control", GROUP="disk"
|
|
||||||
KERNEL=="rawctl", GROUP="disk"
|
|
||||||
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk"
|
|
||||||
SUBSYSTEM=="aoe", GROUP="disk", MODE="0220"
|
|
@ -1,80 +0,0 @@
|
|||||||
From 60ab4dd0d578ced48a59745e5728685ca949c4ee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marcel Holtmann <marcel@holtmann.org>
|
|
||||||
Date: Wed, 18 Jun 2014 13:55:32 +0200
|
|
||||||
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
|
|
||||||
|
|
||||||
(cherry picked from commit 7cfa80f07e94c3e48703d145ef03a73dd6e7b983)
|
|
||||||
---
|
|
||||||
hwdb/20-bluetooth-vendor-product.hwdb | 42 ++++++++++++++++++++++++++++++++---
|
|
||||||
1 file changed, 39 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
|
|
||||||
index a65c7db3..377748a5 100644
|
|
||||||
--- a/hwdb/20-bluetooth-vendor-product.hwdb
|
|
||||||
+++ b/hwdb/20-bluetooth-vendor-product.hwdb
|
|
||||||
@@ -115,7 +115,7 @@ bluetooth:v0024*
|
|
||||||
ID_VENDOR_FROM_DATABASE=Alcatel
|
|
||||||
|
|
||||||
bluetooth:v0025*
|
|
||||||
- ID_VENDOR_FROM_DATABASE=Philips Semiconductors
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors)
|
|
||||||
|
|
||||||
bluetooth:v0026*
|
|
||||||
ID_VENDOR_FROM_DATABASE=C Technologies
|
|
||||||
@@ -427,7 +427,7 @@ bluetooth:v008B*
|
|
||||||
ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC
|
|
||||||
|
|
||||||
bluetooth:v008C*
|
|
||||||
- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.)
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.)
|
|
||||||
|
|
||||||
bluetooth:v008D*
|
|
||||||
ID_VENDOR_FROM_DATABASE=Zscan Software
|
|
||||||
@@ -1006,10 +1006,46 @@ bluetooth:v014C*
|
|
||||||
ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd
|
|
||||||
|
|
||||||
bluetooth:v014D*
|
|
||||||
- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD.
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD.
|
|
||||||
|
|
||||||
bluetooth:v014E*
|
|
||||||
ID_VENDOR_FROM_DATABASE=Tangerine, Inc.
|
|
||||||
|
|
||||||
bluetooth:v014F*
|
|
||||||
ID_VENDOR_FROM_DATABASE=B&W Group Ltd.
|
|
||||||
+
|
|
||||||
+bluetooth:v0150*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Pioneer Corporation
|
|
||||||
+
|
|
||||||
+bluetooth:v0151*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=OnBeep
|
|
||||||
+
|
|
||||||
+bluetooth:v0152*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology
|
|
||||||
+
|
|
||||||
+bluetooth:v0153*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=ROL Ergo
|
|
||||||
+
|
|
||||||
+bluetooth:v0154*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Pebble Technology
|
|
||||||
+
|
|
||||||
+bluetooth:v0155*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=NETATMO
|
|
||||||
+
|
|
||||||
+bluetooth:v0156*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Accumulate AB
|
|
||||||
+
|
|
||||||
+bluetooth:v0157*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd.
|
|
||||||
+
|
|
||||||
+bluetooth:v0158*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Inmite s.r.o.
|
|
||||||
+
|
|
||||||
+bluetooth:v0159*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc.
|
|
||||||
+
|
|
||||||
+bluetooth:v015A*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=micus AG
|
|
||||||
+
|
|
||||||
+bluetooth:v015B*
|
|
||||||
+ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd.
|
|
@ -1,23 +0,0 @@
|
|||||||
From 29d5bac956e12719ef61e7e6da71333eac735ae1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
||||||
Date: Wed, 18 Jun 2014 20:34:52 +0200
|
|
||||||
Subject: [PATCH] socket: check return from exec_spawn
|
|
||||||
|
|
||||||
(cherry picked from commit cee288adf88844acd880e4c0da5ed550c85cdd1a)
|
|
||||||
---
|
|
||||||
src/core/socket.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/core/socket.c b/src/core/socket.c
|
|
||||||
index 94eb2e7a..c58a7f03 100644
|
|
||||||
--- a/src/core/socket.c
|
|
||||||
+++ b/src/core/socket.c
|
|
||||||
@@ -1343,6 +1343,8 @@ static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) {
|
|
||||||
NULL,
|
|
||||||
s->exec_runtime,
|
|
||||||
&pid);
|
|
||||||
+ if (r < 0)
|
|
||||||
+ goto fail;
|
|
||||||
|
|
||||||
r = unit_watch_pid(UNIT(s), pid);
|
|
||||||
if (r < 0)
|
|
@ -1,23 +0,0 @@
|
|||||||
From 5f1d6b4795638e25695fd5ae46dd6055990a871d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ronny Chevalier <chevalier.ronny@gmail.com>
|
|
||||||
Date: Thu, 19 Jun 2014 10:43:03 +0200
|
|
||||||
Subject: [PATCH] man: fix typo
|
|
||||||
|
|
||||||
(cherry picked from commit 08d555f347f154d08520a117b9769975cf302e38)
|
|
||||||
---
|
|
||||||
man/systemd.special.xml | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
|
|
||||||
index f29cc23c..2ff64c9c 100644
|
|
||||||
--- a/man/systemd.special.xml
|
|
||||||
+++ b/man/systemd.special.xml
|
|
||||||
@@ -1137,7 +1137,7 @@
|
|
||||||
<varlistentry>
|
|
||||||
<term><filename>machine.slice</filename></term>
|
|
||||||
<listitem>
|
|
||||||
- <para>By defalt, all virtual
|
|
||||||
+ <para>By default, all virtual
|
|
||||||
machines and containers
|
|
||||||
registered with
|
|
||||||
<command>systemd-machined</command>
|
|
@ -1,23 +0,0 @@
|
|||||||
From 70a3698b99b401e5fa26889aac73e72f6c45523b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Thu, 19 Jun 2014 19:53:16 +0200
|
|
||||||
Subject: [PATCH] units: add missing caps so that GetAddresses() can work
|
|
||||||
|
|
||||||
(cherry picked from commit a55954297dade7b432fd3a4f328f23261621ff79)
|
|
||||||
---
|
|
||||||
units/systemd-machined.service.in | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/units/systemd-machined.service.in b/units/systemd-machined.service.in
|
|
||||||
index 3ae0847b..5a890b5b 100644
|
|
||||||
--- a/units/systemd-machined.service.in
|
|
||||||
+++ b/units/systemd-machined.service.in
|
|
||||||
@@ -15,7 +15,7 @@ After=machine.slice
|
|
||||||
[Service]
|
|
||||||
ExecStart=@rootlibexecdir@/systemd-machined
|
|
||||||
BusName=org.freedesktop.machine1
|
|
||||||
-CapabilityBoundingSet=CAP_KILL
|
|
||||||
+CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID
|
|
||||||
WatchdogSec=1min
|
|
||||||
PrivateTmp=yes
|
|
||||||
PrivateDevices=yes
|
|
@ -1,30 +0,0 @@
|
|||||||
From 4564424c0a42f52ca02ef2e50ce4e19da36a7ad4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org>
|
|
||||||
Date: Sat, 23 Mar 2013 03:54:16 +0100
|
|
||||||
Subject: [PATCH] units/systemd-sysctl.service.in: run after load-modules
|
|
||||||
|
|
||||||
Modules might or will register new sysctl options.
|
|
||||||
|
|
||||||
[zj: This mechanism of adding modules just to reliably set sysctl
|
|
||||||
attributes is not ideal. Nevertheless, sysctl for dynamically created
|
|
||||||
attributes is simply broken, and this is the easiest workaround.]
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1022977
|
|
||||||
https://bugzilla.novell.com/show_bug.cgi?id=725412
|
|
||||||
(cherry picked from commit 0b73eab7a2185ae0377650e3fdb8208347a8a575)
|
|
||||||
---
|
|
||||||
units/systemd-sysctl.service.in | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/units/systemd-sysctl.service.in b/units/systemd-sysctl.service.in
|
|
||||||
index 5baf22c1..b8e81758 100644
|
|
||||||
--- a/units/systemd-sysctl.service.in
|
|
||||||
+++ b/units/systemd-sysctl.service.in
|
|
||||||
@@ -11,6 +11,7 @@ Documentation=man:systemd-sysctl.service(8) man:sysctl.d(5)
|
|
||||||
DefaultDependencies=no
|
|
||||||
Conflicts=shutdown.target
|
|
||||||
After=systemd-readahead-collect.service systemd-readahead-replay.service
|
|
||||||
+After=systemd-modules-load.service
|
|
||||||
Before=sysinit.target shutdown.target
|
|
||||||
ConditionPathIsReadWrite=/proc/sys/
|
|
||||||
ConditionDirectoryNotEmpty=|/lib/sysctl.d
|
|
@ -1,128 +0,0 @@
|
|||||||
From 59fccb9cb4eba406dbee93864638cc52f6ee7d4a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Thu, 19 Jun 2014 20:43:56 -0400
|
|
||||||
Subject: [PATCH] man: document statically loading modules for sysctl settings
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1022977
|
|
||||||
https://bugzilla.novell.com/show_bug.cgi?id=725412
|
|
||||||
(cherry picked from commit 7284335adbb8cb2bc9c11f9e102906da1bf71145)
|
|
||||||
---
|
|
||||||
man/sysctl.d.xml | 79 +++++++++++++++++++++++++++++++++++++++-----------------
|
|
||||||
1 file changed, 56 insertions(+), 23 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml
|
|
||||||
index db53b495..78c4e80b 100644
|
|
||||||
--- a/man/sysctl.d.xml
|
|
||||||
+++ b/man/sysctl.d.xml
|
|
||||||
@@ -71,24 +71,6 @@
|
|
||||||
is <literal>#</literal> or <literal>;</literal> are
|
|
||||||
ignored.</para>
|
|
||||||
|
|
||||||
- <para>Note that either <literal>/</literal> or
|
|
||||||
- <literal>.</literal> may be used as separators within
|
|
||||||
- sysctl variable names. If the first separator is a
|
|
||||||
- slash, remaining slashes and dots are left intact. If
|
|
||||||
- the first separator is a dot, dots and slashes are
|
|
||||||
- interchanged. <literal>kernel.domainname=foo</literal>
|
|
||||||
- and <literal>kernel/domainname=foo</literal> are
|
|
||||||
- equivalent and will cause <literal>foo</literal> to
|
|
||||||
- be written to
|
|
||||||
- <filename>/proc/sys/kernel/domainname</filename>.
|
|
||||||
- Either
|
|
||||||
- <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
|
|
||||||
- or
|
|
||||||
- <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
|
|
||||||
- may be used to refer to
|
|
||||||
- <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
|
|
||||||
- </para>
|
|
||||||
-
|
|
||||||
<para>Each configuration file shall be named in the
|
|
||||||
style of <filename><replaceable>program</replaceable>.conf</filename>.
|
|
||||||
Files in <filename>/etc/</filename> override files
|
|
||||||
@@ -110,6 +92,24 @@
|
|
||||||
number and a dash, to simplify the ordering of the
|
|
||||||
files.</para>
|
|
||||||
|
|
||||||
+ <para>Note that either <literal>/</literal> or
|
|
||||||
+ <literal>.</literal> may be used as separators within
|
|
||||||
+ sysctl variable names. If the first separator is a
|
|
||||||
+ slash, remaining slashes and dots are left intact. If
|
|
||||||
+ the first separator is a dot, dots and slashes are
|
|
||||||
+ interchanged. <literal>kernel.domainname=foo</literal>
|
|
||||||
+ and <literal>kernel/domainname=foo</literal> are
|
|
||||||
+ equivalent and will cause <literal>foo</literal> to
|
|
||||||
+ be written to
|
|
||||||
+ <filename>/proc/sys/kernel/domainname</filename>.
|
|
||||||
+ Either
|
|
||||||
+ <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
|
|
||||||
+ or
|
|
||||||
+ <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
|
|
||||||
+ may be used to refer to
|
|
||||||
+ <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
|
|
||||||
+ </para>
|
|
||||||
+
|
|
||||||
<para>If the administrator wants to disable a
|
|
||||||
configuration file supplied by the vendor, the
|
|
||||||
recommended way is to place a symlink to
|
|
||||||
@@ -125,16 +125,48 @@
|
|
||||||
specifically,
|
|
||||||
<filename>net.ipv4.conf.*</filename>,
|
|
||||||
<filename>net.ipv6.conf.*</filename>,
|
|
||||||
- <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>)</para>
|
|
||||||
+ <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>).</para>
|
|
||||||
+
|
|
||||||
+ <para>Many sysctl parameters only become available
|
|
||||||
+ when certain kernel modules are loaded. Modules are
|
|
||||||
+ usually loaded on demand, e.g. when certain hardware
|
|
||||||
+ is plugged in or network brought up. This means that
|
|
||||||
+ <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> which runs
|
|
||||||
+ during early boot will not configure such parameters
|
|
||||||
+ if they become available after it has run. To
|
|
||||||
+ set such parameters, it is recommended to add
|
|
||||||
+ an <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> rule to set those parameters when they become
|
|
||||||
+ available. Alternatively, a slightly simpler and
|
|
||||||
+ less efficient option is to add the module to
|
|
||||||
+ <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, causing it to be loaded statically
|
|
||||||
+ before sysctl settings are applied (see
|
|
||||||
+ example below).</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
- <title>Example</title>
|
|
||||||
+ <title>Examples</title>
|
|
||||||
+ <example>
|
|
||||||
+ <title>Set kernel YP domain name</title>
|
|
||||||
+ <para><filename>/etc/sysctl.d/domain-name.conf</filename>:
|
|
||||||
+ </para>
|
|
||||||
+
|
|
||||||
+ <programlisting>kernel.domainname=example.com</programlisting>
|
|
||||||
+ </example>
|
|
||||||
+
|
|
||||||
<example>
|
|
||||||
- <title>/etc/sysctl.d/domain-name.conf example:</title>
|
|
||||||
+ <title>Disable packet filter on the bridge</title>
|
|
||||||
+ <para><filename>/etc/modules-load.d/bridge.conf</filename>:
|
|
||||||
+ </para>
|
|
||||||
+
|
|
||||||
+ <programlisting>bridge</programlisting>
|
|
||||||
+
|
|
||||||
+ <para><filename>/etc/sysctl.d/bridge.conf</filename>:
|
|
||||||
+ </para>
|
|
||||||
|
|
||||||
- <programlisting># Set kernel YP domain name
|
|
||||||
-kernel.domainname=example.com</programlisting>
|
|
||||||
+ <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
|
|
||||||
+net.bridge.bridge-nf-call-iptables = 0
|
|
||||||
+net.bridge.bridge-nf-call-arptables = 0
|
|
||||||
+</programlisting>
|
|
||||||
</example>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
@@ -146,6 +178,7 @@ kernel.domainname=example.com</programlisting>
|
|
||||||
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
|
||||||
<citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
||||||
+ <citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From c79a00436c90b86833799d83b5de64a1f42d1975 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Thu, 19 Jun 2014 21:13:56 -0400
|
|
||||||
Subject: [PATCH] man: also describe an udev rule for bridge sysctl
|
|
||||||
|
|
||||||
(cherry picked from commit 71418295125c542d3edd1e7251bb0701ef1af89b)
|
|
||||||
---
|
|
||||||
man/sysctl.d.xml | 19 ++++++++++++++++++-
|
|
||||||
1 file changed, 18 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml
|
|
||||||
index 78c4e80b..ed9e997f 100644
|
|
||||||
--- a/man/sysctl.d.xml
|
|
||||||
+++ b/man/sysctl.d.xml
|
|
||||||
@@ -154,7 +154,24 @@
|
|
||||||
</example>
|
|
||||||
|
|
||||||
<example>
|
|
||||||
- <title>Disable packet filter on the bridge</title>
|
|
||||||
+ <title>Disable packet filter on the bridge (method one)</title>
|
|
||||||
+ <para><filename>/etc/udev/rules.d/99-bridge.conf</filename>:
|
|
||||||
+ </para>
|
|
||||||
+
|
|
||||||
+ <programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge"
|
|
||||||
+</programlisting>
|
|
||||||
+
|
|
||||||
+ <para><filename>/etc/sysctl.d/bridge.conf</filename>:
|
|
||||||
+ </para>
|
|
||||||
+
|
|
||||||
+ <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
|
|
||||||
+net.bridge.bridge-nf-call-iptables = 0
|
|
||||||
+net.bridge.bridge-nf-call-arptables = 0
|
|
||||||
+</programlisting>
|
|
||||||
+ </example>
|
|
||||||
+
|
|
||||||
+ <example>
|
|
||||||
+ <title>Disable packet filter on the bridge (method two)</title>
|
|
||||||
<para><filename>/etc/modules-load.d/bridge.conf</filename>:
|
|
||||||
</para>
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From d7671242e5a5c43b4dd2ac7484816179a679c673 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Thu, 19 Jun 2014 22:02:55 -0400
|
|
||||||
Subject: [PATCH] getty-generator: properly escape instance names
|
|
||||||
|
|
||||||
Otherwise the add_symlink() function tries to make directories for
|
|
||||||
each slash even for the slash after the @ symbol in the final link
|
|
||||||
name, failing for /dev/3270/tty1.
|
|
||||||
|
|
||||||
Based on a patch by Werner Fink <werner@suse.de>.
|
|
||||||
|
|
||||||
(cherry picked from commit a2ae516a25dafe41e0cd296ab7b5d022fa62b95f)
|
|
||||||
---
|
|
||||||
src/getty-generator/getty-generator.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c
|
|
||||||
index 6a4aa2c1..700e90a3 100644
|
|
||||||
--- a/src/getty-generator/getty-generator.c
|
|
||||||
+++ b/src/getty-generator/getty-generator.c
|
|
||||||
@@ -72,7 +72,7 @@ static int add_serial_getty(const char *tty) {
|
|
||||||
|
|
||||||
log_debug("Automatically adding serial getty for /dev/%s.", tty);
|
|
||||||
|
|
||||||
- n = unit_name_replace_instance("serial-getty@.service", tty);
|
|
||||||
+ n = unit_name_from_path_instance("serial-getty", tty, ".service");
|
|
||||||
if (!n)
|
|
||||||
return log_oom();
|
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ static int add_container_getty(const char *tty) {
|
|
||||||
|
|
||||||
log_debug("Automatically adding container getty for /dev/pts/%s.", tty);
|
|
||||||
|
|
||||||
- n = unit_name_replace_instance("container-getty@.service", tty);
|
|
||||||
+ n = unit_name_from_path_instance("container-getty", tty, ".service");
|
|
||||||
if (!n)
|
|
||||||
return log_oom();
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
|||||||
From a1a4a0201bbc6a89af7b0ec28b2b563a9418d860 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Marineau <michael.marineau@coreos.com>
|
|
||||||
Date: Thu, 19 Jun 2014 19:07:02 -0700
|
|
||||||
Subject: [PATCH] shared: rename path_strv_canonicalize_absolute functions
|
|
||||||
|
|
||||||
Since 12ed81d9 path_strv_canonicalize_absolute leaves the search list
|
|
||||||
relative to the given root directory instead of resolving paths to their
|
|
||||||
true location as the name implies. To better reflect this behavior
|
|
||||||
rename to the less strongly worded path_strv_resolve.
|
|
||||||
|
|
||||||
(cherry picked from commit 7d8da2c9641c584ff977493eeb8148300dce8759)
|
|
||||||
---
|
|
||||||
src/shared/conf-files.c | 2 +-
|
|
||||||
src/shared/path-lookup.c | 6 +++---
|
|
||||||
src/shared/path-util.c | 6 +++---
|
|
||||||
src/shared/path-util.h | 4 ++--
|
|
||||||
src/shared/util.c | 2 +-
|
|
||||||
5 files changed, 10 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c
|
|
||||||
index 59bc8cee..44e137e8 100644
|
|
||||||
--- a/src/shared/conf-files.c
|
|
||||||
+++ b/src/shared/conf-files.c
|
|
||||||
@@ -110,7 +110,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
|
||||||
assert(suffix);
|
|
||||||
|
|
||||||
/* This alters the dirs string array */
|
|
||||||
- if (!path_strv_canonicalize_absolute_uniq(dirs, root))
|
|
||||||
+ if (!path_strv_resolve_uniq(dirs, root))
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
fh = hashmap_new(string_hash_func, string_compare_func);
|
|
||||||
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
|
|
||||||
index e072fd60..e0aaf443 100644
|
|
||||||
--- a/src/shared/path-lookup.c
|
|
||||||
+++ b/src/shared/path-lookup.c
|
|
||||||
@@ -284,7 +284,7 @@ int lookup_paths_init(
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!path_strv_canonicalize_absolute_uniq(p->unit_path, root_dir))
|
|
||||||
+ if (!path_strv_resolve_uniq(p->unit_path, root_dir))
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
if (!strv_isempty(p->unit_path)) {
|
|
||||||
@@ -338,10 +338,10 @@ int lookup_paths_init(
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!path_strv_canonicalize_absolute_uniq(p->sysvinit_path, root_dir))
|
|
||||||
+ if (!path_strv_resolve_uniq(p->sysvinit_path, root_dir))
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
- if (!path_strv_canonicalize_absolute_uniq(p->sysvrcnd_path, root_dir))
|
|
||||||
+ if (!path_strv_resolve_uniq(p->sysvrcnd_path, root_dir))
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
if (!strv_isempty(p->sysvinit_path)) {
|
|
||||||
diff --git a/src/shared/path-util.c b/src/shared/path-util.c
|
|
||||||
index 5863429c..c32ca94f 100644
|
|
||||||
--- a/src/shared/path-util.c
|
|
||||||
+++ b/src/shared/path-util.c
|
|
||||||
@@ -238,7 +238,7 @@ char **path_strv_make_absolute_cwd(char **l) {
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
-char **path_strv_canonicalize_absolute(char **l, const char *prefix) {
|
|
||||||
+char **path_strv_resolve(char **l, const char *prefix) {
|
|
||||||
char **s;
|
|
||||||
unsigned k = 0;
|
|
||||||
bool enomem = false;
|
|
||||||
@@ -323,12 +323,12 @@ char **path_strv_canonicalize_absolute(char **l, const char *prefix) {
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
-char **path_strv_canonicalize_absolute_uniq(char **l, const char *prefix) {
|
|
||||||
+char **path_strv_resolve_uniq(char **l, const char *prefix) {
|
|
||||||
|
|
||||||
if (strv_isempty(l))
|
|
||||||
return l;
|
|
||||||
|
|
||||||
- if (!path_strv_canonicalize_absolute(l, prefix))
|
|
||||||
+ if (!path_strv_resolve(l, prefix))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return strv_uniq(l);
|
|
||||||
diff --git a/src/shared/path-util.h b/src/shared/path-util.h
|
|
||||||
index 6882d786..976d2b26 100644
|
|
||||||
--- a/src/shared/path-util.h
|
|
||||||
+++ b/src/shared/path-util.h
|
|
||||||
@@ -47,8 +47,8 @@ char* path_startswith(const char *path, const char *prefix) _pure_;
|
|
||||||
bool path_equal(const char *a, const char *b) _pure_;
|
|
||||||
|
|
||||||
char** path_strv_make_absolute_cwd(char **l);
|
|
||||||
-char** path_strv_canonicalize_absolute(char **l, const char *prefix);
|
|
||||||
-char** path_strv_canonicalize_absolute_uniq(char **l, const char *prefix);
|
|
||||||
+char** path_strv_resolve(char **l, const char *prefix);
|
|
||||||
+char** path_strv_resolve_uniq(char **l, const char *prefix);
|
|
||||||
|
|
||||||
int path_is_mount_point(const char *path, bool allow_symlink);
|
|
||||||
int path_is_read_only_fs(const char *path);
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 9be80887..02cfd499 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -5675,7 +5675,7 @@ static int search_and_fopen_internal(const char *path, const char *mode, const c
|
|
||||||
assert(mode);
|
|
||||||
assert(_f);
|
|
||||||
|
|
||||||
- if (!path_strv_canonicalize_absolute_uniq(search, root))
|
|
||||||
+ if (!path_strv_resolve_uniq(search, root))
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
STRV_FOREACH(i, search) {
|
|
@ -1,87 +0,0 @@
|
|||||||
From 3db5dbae9f8315684f2e18b3eddcbf2004f3ad03 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Marineau <michael.marineau@coreos.com>
|
|
||||||
Date: Thu, 19 Jun 2014 19:07:04 -0700
|
|
||||||
Subject: [PATCH] conf-files: include root in returned file paths
|
|
||||||
|
|
||||||
This restores the original root handling logic that was present prior to
|
|
||||||
112cfb18 when path expansion moved to path_strv_canonicalize_absolute.
|
|
||||||
That behavior partially went away in 12ed81d9.
|
|
||||||
|
|
||||||
Alternatively all users of conf_files_list* could be updated to
|
|
||||||
concatenate the paths themselves as unit_file_query_preset did but since
|
|
||||||
no user needs the un-concatenated form that is pointless duplication.
|
|
||||||
|
|
||||||
(cherry picked from commit cba2ef02722114da2b730d57f1e3bb43013d8921)
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
src/shared/install.c
|
|
||||||
---
|
|
||||||
src/shared/conf-files.c | 16 ++++++----------
|
|
||||||
src/shared/install.c | 6 +++---
|
|
||||||
2 files changed, 9 insertions(+), 13 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c
|
|
||||||
index 44e137e8..64ce8a0e 100644
|
|
||||||
--- a/src/shared/conf-files.c
|
|
||||||
+++ b/src/shared/conf-files.c
|
|
||||||
@@ -37,20 +37,16 @@
|
|
||||||
#include "hashmap.h"
|
|
||||||
#include "conf-files.h"
|
|
||||||
|
|
||||||
-static int files_add(Hashmap *h, const char *dirpath, const char *suffix, const char *root) {
|
|
||||||
+static int files_add(Hashmap *h, const char *root, const char *path, const char *suffix) {
|
|
||||||
_cleanup_closedir_ DIR *dir = NULL;
|
|
||||||
+ char *dirpath;
|
|
||||||
|
|
||||||
- assert(dirpath);
|
|
||||||
+ assert(path);
|
|
||||||
assert(suffix);
|
|
||||||
|
|
||||||
- if (isempty(root))
|
|
||||||
- dir = opendir(dirpath);
|
|
||||||
- else {
|
|
||||||
- const char *p;
|
|
||||||
+ dirpath = strappenda(root ? root : "", path);
|
|
||||||
|
|
||||||
- p = strappenda3(root, "/", dirpath);
|
|
||||||
- dir = opendir(p);
|
|
||||||
- }
|
|
||||||
+ dir = opendir(dirpath);
|
|
||||||
if (!dir) {
|
|
||||||
if (errno == ENOENT)
|
|
||||||
return 0;
|
|
||||||
@@ -118,7 +114,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
STRV_FOREACH(p, dirs) {
|
|
||||||
- r = files_add(fh, *p, suffix, root);
|
|
||||||
+ r = files_add(fh, root, *p, suffix);
|
|
||||||
if (r == -ENOMEM) {
|
|
||||||
hashmap_free_free(fh);
|
|
||||||
return r;
|
|
||||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
||||||
index 8322970a..c6d13eca 100644
|
|
||||||
--- a/src/shared/install.c
|
|
||||||
+++ b/src/shared/install.c
|
|
||||||
@@ -1753,7 +1753,7 @@ UnitFileState unit_file_get_state(
|
|
||||||
|
|
||||||
int unit_file_query_preset(UnitFileScope scope, const char *name) {
|
|
||||||
_cleanup_strv_free_ char **files = NULL;
|
|
||||||
- char **i;
|
|
||||||
+ char **p;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(scope >= 0);
|
|
||||||
@@ -1781,10 +1781,10 @@ int unit_file_query_preset(UnitFileScope scope, const char *name) {
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
- STRV_FOREACH(i, files) {
|
|
||||||
+ STRV_FOREACH(p, files) {
|
|
||||||
_cleanup_fclose_ FILE *f;
|
|
||||||
|
|
||||||
- f = fopen(*i, "re");
|
|
||||||
+ f = fopen(*p, "re");
|
|
||||||
if (!f) {
|
|
||||||
if (errno == ENOENT)
|
|
||||||
continue;
|
|
@ -1,29 +0,0 @@
|
|||||||
From 695c8554ca6a64f749de265ba29566d3c95fe77c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Marineau <michael.marineau@coreos.com>
|
|
||||||
Date: Thu, 19 Jun 2014 19:07:06 -0700
|
|
||||||
Subject: [PATCH] shared: fix search_and_fopen with alternate roots
|
|
||||||
|
|
||||||
Update for the current behavior of path_strv_resolve which now returns
|
|
||||||
paths relative to the given root, not the full absolute paths.
|
|
||||||
|
|
||||||
(cherry picked from commit 375eadd911a9f83f89f1e7de5e05f44cc81e3642)
|
|
||||||
---
|
|
||||||
src/shared/util.c | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 02cfd499..6165d72d 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -5682,7 +5682,10 @@ static int search_and_fopen_internal(const char *path, const char *mode, const c
|
|
||||||
_cleanup_free_ char *p = NULL;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
- p = strjoin(*i, "/", path, NULL);
|
|
||||||
+ if (root)
|
|
||||||
+ p = strjoin(root, *i, "/", path, NULL);
|
|
||||||
+ else
|
|
||||||
+ p = strjoin(*i, "/", path, NULL);
|
|
||||||
if (!p)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
From 82d568e88c858b5094b92440515eba3744fe07d3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Fri, 20 Jun 2014 18:44:39 -0400
|
|
||||||
Subject: [PATCH] util: do not strip /dev prefix twice
|
|
||||||
|
|
||||||
(cherry picked from commit 0d460faf732ff3c9483dbfa5db6905d53c2e2522)
|
|
||||||
---
|
|
||||||
src/shared/util.c | 3 ---
|
|
||||||
1 file changed, 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 6165d72d..8b0e29dd 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -3619,9 +3619,6 @@ char *fstab_node_to_udev_node(const char *p) {
|
|
||||||
bool tty_is_vc(const char *tty) {
|
|
||||||
assert(tty);
|
|
||||||
|
|
||||||
- if (startswith(tty, "/dev/"))
|
|
||||||
- tty += 5;
|
|
||||||
-
|
|
||||||
return vtnr_from_tty(tty) >= 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,251 +0,0 @@
|
|||||||
From 2e7e0201564db608dffc1d9ac24c0691ea14fd2e Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Fri, 20 Jun 2014 19:45:45 -0400
|
|
||||||
Subject: [PATCH] missing.h: add various network enums
|
|
||||||
|
|
||||||
We used to check if e.g. IFLA_BOND_MAX is defined and provide fallback
|
|
||||||
values in missing.h is it wasn't. But over time, various kernel
|
|
||||||
versions added IFLA_* defines, so checking for IFLA_BOND_MAX is not
|
|
||||||
enough if the kernel is new enough to have some of them but too old to
|
|
||||||
have all. In case we detect that the latest known enum value is
|
|
||||||
missing, #define most of them.
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=80095
|
|
||||||
(cherry picked from commit 81577dc22887debaf9b19bf1034a2887fb9069c7)
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
src/network/networkd-vxlan.c
|
|
||||||
---
|
|
||||||
configure.ac | 29 +++++++--
|
|
||||||
src/network/networkd-tunnel.c | 1 +
|
|
||||||
src/shared/missing.h | 145 ++++++++++++++++++++++++++++++------------
|
|
||||||
3 files changed, 130 insertions(+), 45 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index faf7f722..b755f489 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -266,12 +266,33 @@ LIBS="$save_LIBS"
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS([fanotify_init fanotify_mark])
|
|
||||||
AC_CHECK_FUNCS([__secure_getenv secure_getenv])
|
|
||||||
-AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, LO_FLAGS_PARTSCAN], [], [], [[#include <sys/types.h>
|
|
||||||
+AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, LO_FLAGS_PARTSCAN],
|
|
||||||
+ [], [], [[
|
|
||||||
+#include <sys/types.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/mount.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sched.h>
|
|
||||||
-#include <linux/loop.h>]])
|
|
||||||
+#include <linux/loop.h>
|
|
||||||
+]])
|
|
||||||
+
|
|
||||||
+AC_CHECK_DECLS([IFLA_PHYS_PORT_ID,
|
|
||||||
+ IFLA_BOND_AD_INFO,
|
|
||||||
+ IFLA_VLAN_PROTOCOL,
|
|
||||||
+ IFLA_VXLAN_LOCAL6,
|
|
||||||
+ IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
|
|
||||||
+ IFLA_BRIDGE_VLAN_INFO],
|
|
||||||
+[], [], [[
|
|
||||||
+#include <inttypes.h>
|
|
||||||
+#include <netinet/in.h>
|
|
||||||
+#include <netinet/ether.h>
|
|
||||||
+#include <linux/rtnetlink.h>
|
|
||||||
+#include <net/if.h>
|
|
||||||
+#include <linux/ip.h>
|
|
||||||
+#include <linux/if_tunnel.h>
|
|
||||||
+#include <linux/if_link.h>
|
|
||||||
+#include <linux/if_bridge.h>
|
|
||||||
+]])
|
|
||||||
|
|
||||||
# This makes sure pkg.m4 is available.
|
|
||||||
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
|
|
||||||
@@ -870,10 +891,10 @@ AC_SUBST(DNS_SERVERS)
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
have_networkd=no
|
|
||||||
AC_ARG_ENABLE(networkd, AS_HELP_STRING([--disable-networkd], [disable networkd]))
|
|
||||||
-if test "x$enable_networkd" != "xno"; then
|
|
||||||
+AS_IF([test "x$enable_networkd" != "xno"], [
|
|
||||||
AC_DEFINE(ENABLE_NETWORKD, 1, [Define if networkd support is to be enabled])
|
|
||||||
have_networkd=yes
|
|
||||||
-fi
|
|
||||||
+])
|
|
||||||
AM_CONDITIONAL(ENABLE_NETWORKD, [test "x$have_networkd" = "xyes"])
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
diff --git a/src/network/networkd-tunnel.c b/src/network/networkd-tunnel.c
|
|
||||||
index 60b16ba8..604d9240 100644
|
|
||||||
--- a/src/network/networkd-tunnel.c
|
|
||||||
+++ b/src/network/networkd-tunnel.c
|
|
||||||
@@ -29,6 +29,7 @@
|
|
||||||
#include "networkd.h"
|
|
||||||
#include "network-internal.h"
|
|
||||||
#include "util.h"
|
|
||||||
+#include "missing.h"
|
|
||||||
|
|
||||||
|
|
||||||
static int netdev_fill_ipip_rtnl_message(Link *link, sd_rtnl_message *m) {
|
|
||||||
diff --git a/src/shared/missing.h b/src/shared/missing.h
|
|
||||||
index 716d3b8f..f129f0b2 100644
|
|
||||||
--- a/src/shared/missing.h
|
|
||||||
+++ b/src/shared/missing.h
|
|
||||||
@@ -92,19 +92,6 @@
|
|
||||||
#define IP_TRANSPARENT 19
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifndef IFLA_CARRIER
|
|
||||||
- #define IFLA_CARRIER 33
|
|
||||||
- #ifndef IFLA_NUM_RX_QUEUES
|
|
||||||
- #define IFLA_NUM_RX_QUEUES 32
|
|
||||||
- #ifndef IFLA_NUM_TX_QUEUES
|
|
||||||
- #define IFLA_NUM_TX_QUEUES 31
|
|
||||||
- #ifndef IFLA_PROMISCUITY
|
|
||||||
- #define IFLA_PROMISCUITY 30
|
|
||||||
- #endif
|
|
||||||
- #endif
|
|
||||||
- #endif
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
#ifndef SOL_NETLINK
|
|
||||||
#define SOL_NETLINK 270
|
|
||||||
#endif
|
|
||||||
@@ -384,34 +371,110 @@ static inline int setns(int fd, int nstype) {
|
|
||||||
#define LOOP_CTL_GET_FREE 0x4C82
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#ifndef IFLA_BOND_MAX
|
|
||||||
-enum {
|
|
||||||
- IFLA_BOND_UNSPEC,
|
|
||||||
- IFLA_BOND_MODE,
|
|
||||||
- IFLA_BOND_ACTIVE_SLAVE,
|
|
||||||
- IFLA_BOND_MIIMON,
|
|
||||||
- IFLA_BOND_UPDELAY,
|
|
||||||
- IFLA_BOND_DOWNDELAY,
|
|
||||||
- IFLA_BOND_USE_CARRIER,
|
|
||||||
- IFLA_BOND_ARP_INTERVAL,
|
|
||||||
- IFLA_BOND_ARP_IP_TARGET,
|
|
||||||
- IFLA_BOND_ARP_VALIDATE,
|
|
||||||
- IFLA_BOND_ARP_ALL_TARGETS,
|
|
||||||
- IFLA_BOND_PRIMARY,
|
|
||||||
- IFLA_BOND_PRIMARY_RESELECT,
|
|
||||||
- IFLA_BOND_FAIL_OVER_MAC,
|
|
||||||
- IFLA_BOND_XMIT_HASH_POLICY,
|
|
||||||
- IFLA_BOND_RESEND_IGMP,
|
|
||||||
- IFLA_BOND_NUM_PEER_NOTIF,
|
|
||||||
- IFLA_BOND_ALL_SLAVES_ACTIVE,
|
|
||||||
- IFLA_BOND_MIN_LINKS,
|
|
||||||
- IFLA_BOND_LP_INTERVAL,
|
|
||||||
- IFLA_BOND_PACKETS_PER_SLAVE,
|
|
||||||
- IFLA_BOND_AD_LACP_RATE,
|
|
||||||
- IFLA_BOND_AD_SELECT,
|
|
||||||
- IFLA_BOND_AD_INFO,
|
|
||||||
- __IFLA_BOND_MAX,
|
|
||||||
-};
|
|
||||||
+#if !HAVE_DECL_IFLA_PHYS_PORT_ID
|
|
||||||
+#undef IFLA_PROMISCUITY
|
|
||||||
+#define IFLA_PROMISCUITY 30
|
|
||||||
+#define IFLA_NUM_TX_QUEUES 31
|
|
||||||
+#define IFLA_NUM_RX_QUEUES 32
|
|
||||||
+#define IFLA_CARRIER 33
|
|
||||||
+#define IFLA_PHYS_PORT_ID 34
|
|
||||||
+#define __IFLA_MAX 35
|
|
||||||
+
|
|
||||||
+#define IFLA_MAX (__IFLA_MAX - 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !HAVE_DECL_IFLA_BOND_AD_INFO
|
|
||||||
+#define IFLA_BOND_UNSPEC 0
|
|
||||||
+#define IFLA_BOND_MODE 1
|
|
||||||
+#define IFLA_BOND_ACTIVE_SLAVE 2
|
|
||||||
+#define IFLA_BOND_MIIMON 3
|
|
||||||
+#define IFLA_BOND_UPDELAY 4
|
|
||||||
+#define IFLA_BOND_DOWNDELAY 5
|
|
||||||
+#define IFLA_BOND_USE_CARRIER 6
|
|
||||||
+#define IFLA_BOND_ARP_INTERVAL 7
|
|
||||||
+#define IFLA_BOND_ARP_IP_TARGET 8
|
|
||||||
+#define IFLA_BOND_ARP_VALIDATE 9
|
|
||||||
+#define IFLA_BOND_ARP_ALL_TARGETS 10
|
|
||||||
+#define IFLA_BOND_PRIMARY 11
|
|
||||||
+#define IFLA_BOND_PRIMARY_RESELECT 12
|
|
||||||
+#define IFLA_BOND_FAIL_OVER_MAC 13
|
|
||||||
+#define IFLA_BOND_XMIT_HASH_POLICY 14
|
|
||||||
+#define IFLA_BOND_RESEND_IGMP 15
|
|
||||||
+#define IFLA_BOND_NUM_PEER_NOTIF 16
|
|
||||||
+#define IFLA_BOND_ALL_SLAVES_ACTIVE 17
|
|
||||||
+#define IFLA_BOND_MIN_LINKS 18
|
|
||||||
+#define IFLA_BOND_LP_INTERVAL 19
|
|
||||||
+#define IFLA_BOND_PACKETS_PER_SLAVE 20
|
|
||||||
+#define IFLA_BOND_AD_LACP_RATE 21
|
|
||||||
+#define IFLA_BOND_AD_SELECT 22
|
|
||||||
+#define IFLA_BOND_AD_INFO 23
|
|
||||||
+#define __IFLA_BOND_MAX 24
|
|
||||||
|
|
||||||
#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+#if !HAVE_DECL_IFLA_VLAN_PROTOCOL
|
|
||||||
+#define IFLA_VLAN_UNSPEC 0
|
|
||||||
+#define IFLA_VLAN_ID 1
|
|
||||||
+#define IFLA_VLAN_FLAGS 2
|
|
||||||
+#define IFLA_VLAN_EGRESS_QOS 3
|
|
||||||
+#define IFLA_VLAN_INGRESS_QOS 4
|
|
||||||
+#define IFLA_VLAN_PROTOCOL 5
|
|
||||||
+#define __IFLA_VLAN_MAX 6
|
|
||||||
+
|
|
||||||
+#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !HAVE_DECL_IFLA_VXLAN_LOCAL6
|
|
||||||
+#define IFLA_VXLAN_UNSPEC 0
|
|
||||||
+#define IFLA_VXLAN_ID 1
|
|
||||||
+#define IFLA_VXLAN_GROUP 2
|
|
||||||
+#define IFLA_VXLAN_LINK 3
|
|
||||||
+#define IFLA_VXLAN_LOCAL 4
|
|
||||||
+#define IFLA_VXLAN_TTL 5
|
|
||||||
+#define IFLA_VXLAN_TOS 6
|
|
||||||
+#define IFLA_VXLAN_LEARNING 7
|
|
||||||
+#define IFLA_VXLAN_AGEING 8
|
|
||||||
+#define IFLA_VXLAN_LIMIT 9
|
|
||||||
+#define IFLA_VXLAN_PORT_RANGE 10
|
|
||||||
+#define IFLA_VXLAN_PROXY 11
|
|
||||||
+#define IFLA_VXLAN_RSC 12
|
|
||||||
+#define IFLA_VXLAN_L2MISS 13
|
|
||||||
+#define IFLA_VXLAN_L3MISS 14
|
|
||||||
+#define IFLA_VXLAN_PORT 15
|
|
||||||
+#define IFLA_VXLAN_GROUP6 16
|
|
||||||
+#define IFLA_VXLAN_LOCAL6 17
|
|
||||||
+#define __IFLA_VXLAN_MAX 18
|
|
||||||
+
|
|
||||||
+#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !HAVE_DECL_IFLA_IPTUN_6RD_RELAY_PREFIXLEN
|
|
||||||
+#define IFLA_IPTUN_UNSPEC 0
|
|
||||||
+#define IFLA_IPTUN_LINK 1
|
|
||||||
+#define IFLA_IPTUN_LOCAL 2
|
|
||||||
+#define IFLA_IPTUN_REMOTE 3
|
|
||||||
+#define IFLA_IPTUN_TTL 4
|
|
||||||
+#define IFLA_IPTUN_TOS 5
|
|
||||||
+#define IFLA_IPTUN_ENCAP_LIMIT 6
|
|
||||||
+#define IFLA_IPTUN_FLOWINFO 7
|
|
||||||
+#define IFLA_IPTUN_FLAGS 8
|
|
||||||
+#define IFLA_IPTUN_PROTO 9
|
|
||||||
+#define IFLA_IPTUN_PMTUDISC 10
|
|
||||||
+#define IFLA_IPTUN_6RD_PREFIX 11
|
|
||||||
+#define IFLA_IPTUN_6RD_RELAY_PREFIX 12
|
|
||||||
+#define IFLA_IPTUN_6RD_PREFIXLEN 13
|
|
||||||
+#define IFLA_IPTUN_6RD_RELAY_PREFIXLEN 14
|
|
||||||
+#define __IFLA_IPTUN_MAX 15
|
|
||||||
+
|
|
||||||
+#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !HAVE_DECL_IFLA_BRIDGE_VLAN_INFO
|
|
||||||
+#define IFLA_BRIDGE_FLAGS 0
|
|
||||||
+#define IFLA_BRIDGE_MODE 1
|
|
||||||
+#define IFLA_BRIDGE_VLAN_INFO 2
|
|
||||||
+#define __IFLA_BRIDGE_MAX 3
|
|
||||||
+
|
|
||||||
+#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
|
|
||||||
+#endif
|
|
@ -1,23 +0,0 @@
|
|||||||
From 7da3a022eb72c80d2ec85b01fec188f80581ba27 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Fri, 20 Jun 2014 22:43:49 -0400
|
|
||||||
Subject: [PATCH] util: treat fuse.sshfs as a network filesystem
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=73727
|
|
||||||
(cherry picked from commit da92ca5eb506d513033e0c7a85daf25a7e1c9d0e)
|
|
||||||
---
|
|
||||||
src/shared/util.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 8b0e29dd..5b9d1d11 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -1514,6 +1514,7 @@ bool fstype_is_network(const char *fstype) {
|
|
||||||
static const char table[] =
|
|
||||||
"cifs\0"
|
|
||||||
"smbfs\0"
|
|
||||||
+ "sshfs\0"
|
|
||||||
"ncpfs\0"
|
|
||||||
"ncp\0"
|
|
||||||
"nfs\0"
|
|
@ -1,27 +0,0 @@
|
|||||||
From d8d15d1a6ea80362de970c6a73ee9dbc7e26176c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ronny Chevalier <chevalier.ronny@gmail.com>
|
|
||||||
Date: Sat, 21 Jun 2014 22:07:09 +0200
|
|
||||||
Subject: [PATCH] build-sys: add -pthread flag for libsystemd-shared
|
|
||||||
|
|
||||||
src/shared/async.c uses pthread so it will fail at link time if we link
|
|
||||||
only to libsystemd-shared and use async
|
|
||||||
|
|
||||||
(cherry picked from commit 8e75477abdd838d3beddc5fd1c6a7707b22748b6)
|
|
||||||
---
|
|
||||||
Makefile.am | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index 75d62f06..71fc9113 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -823,7 +823,8 @@ nodist_libsystemd_shared_la_SOURCES = \
|
|
||||||
|
|
||||||
libsystemd_shared_la_CFLAGS = \
|
|
||||||
$(AM_CFLAGS) \
|
|
||||||
- $(SECCOMP_CFLAGS)
|
|
||||||
+ $(SECCOMP_CFLAGS) \
|
|
||||||
+ -pthread
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
noinst_LTLIBRARIES += \
|
|
@ -1,25 +0,0 @@
|
|||||||
From b1804488239462b84214c0343864b1aea4759691 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonathan Boulle <jonathanboulle@gmail.com>
|
|
||||||
Date: Fri, 20 Jun 2014 14:46:18 -0700
|
|
||||||
Subject: [PATCH] fix systemd-resolved reference in man page
|
|
||||||
|
|
||||||
Guess this was missed in the copy-paste :-)
|
|
||||||
|
|
||||||
(cherry picked from commit 40ef48600f2c82c2eb41f6c71f35a8d172a530ad)
|
|
||||||
---
|
|
||||||
man/systemd-resolved.service.xml | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/man/systemd-resolved.service.xml b/man/systemd-resolved.service.xml
|
|
||||||
index ed1f5a23..517e08ef 100644
|
|
||||||
--- a/man/systemd-resolved.service.xml
|
|
||||||
+++ b/man/systemd-resolved.service.xml
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
|
|
||||||
- <para><command>systemd-networkd</command> is a system
|
|
||||||
+ <para><command>systemd-resolved</command> is a system
|
|
||||||
service that manages network name resolution. It does so by
|
|
||||||
generating <filename>/run/systemd/resolve/resolv.conf</filename>,
|
|
||||||
which may be symlinked from <filename>/etc/resolv.conf</filename>.
|
|
@ -1,90 +0,0 @@
|
|||||||
From 51b5c543f4aaf7e1a75d6f97187e52313e7983b0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Sun, 22 Jun 2014 14:00:36 -0400
|
|
||||||
Subject: [PATCH] core/transaction: reindent and split very long lines
|
|
||||||
|
|
||||||
(cherry picked from commit 9ba6c18532b4da96ae6916865c3db44054c2af6b)
|
|
||||||
---
|
|
||||||
src/core/transaction.c | 37 ++++++++++++++++++++++---------------
|
|
||||||
1 file changed, 22 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
|
||||||
index d00f4277..9fb6101e 100644
|
|
||||||
--- a/src/core/transaction.c
|
|
||||||
+++ b/src/core/transaction.c
|
|
||||||
@@ -264,9 +264,12 @@ static int transaction_merge_jobs(Transaction *tr, sd_bus_error *e) {
|
|
||||||
return -EAGAIN;
|
|
||||||
|
|
||||||
/* We couldn't merge anything. Failure */
|
|
||||||
- sd_bus_error_setf(
|
|
||||||
- e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.",
|
|
||||||
- job_type_to_string(t), job_type_to_string(k->type), k->unit->id);
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING,
|
|
||||||
+ "Transaction contains conflicting jobs '%s' and '%s' for %s. "
|
|
||||||
+ "Probably contradicting requirement dependencies configured.",
|
|
||||||
+ job_type_to_string(t),
|
|
||||||
+ job_type_to_string(k->type),
|
|
||||||
+ k->unit->id);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -512,7 +515,8 @@ static int transaction_is_destructive(Transaction *tr, JobMode mode, sd_bus_erro
|
|
||||||
if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) &&
|
|
||||||
!job_type_is_superset(j->type, j->unit->job->type)) {
|
|
||||||
|
|
||||||
- sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive.");
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE,
|
|
||||||
+ "Transaction is destructive.");
|
|
||||||
return -EEXIST;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -860,35 +864,38 @@ int transaction_add_job_and_dependencies(
|
|
||||||
unit->load_state != UNIT_ERROR &&
|
|
||||||
unit->load_state != UNIT_NOT_FOUND &&
|
|
||||||
unit->load_state != UNIT_MASKED) {
|
|
||||||
- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id);
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
+ "Unit %s is not loaded properly.", unit->id);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != JOB_STOP && unit->load_state == UNIT_ERROR) {
|
|
||||||
sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
- "Unit %s failed to load: %s. "
|
|
||||||
- "See system logs and 'systemctl status %s' for details.",
|
|
||||||
- unit->id,
|
|
||||||
- strerror(-unit->load_error),
|
|
||||||
- unit->id);
|
|
||||||
+ "Unit %s failed to load: %s. "
|
|
||||||
+ "See system logs and 'systemctl status %s' for details.",
|
|
||||||
+ unit->id,
|
|
||||||
+ strerror(-unit->load_error),
|
|
||||||
+ unit->id);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != JOB_STOP && unit->load_state == UNIT_NOT_FOUND) {
|
|
||||||
sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
- "Unit %s failed to load: %s.",
|
|
||||||
- unit->id,
|
|
||||||
- strerror(-unit->load_error));
|
|
||||||
+ "Unit %s failed to load: %s.",
|
|
||||||
+ unit->id, strerror(-unit->load_error));
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != JOB_STOP && unit->load_state == UNIT_MASKED) {
|
|
||||||
- sd_bus_error_setf(e, BUS_ERROR_UNIT_MASKED, "Unit %s is masked.", unit->id);
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_UNIT_MASKED,
|
|
||||||
+ "Unit %s is masked.", unit->id);
|
|
||||||
return -EADDRNOTAVAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!unit_job_is_applicable(unit, type)) {
|
|
||||||
- sd_bus_error_setf(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id);
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE,
|
|
||||||
+ "Job type %s is not applicable for unit %s.",
|
|
||||||
+ job_type_to_string(type), unit->id);
|
|
||||||
return -EBADR;
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
From 54791e4aa363e1cc5ada075035beeaf9f9ea689b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Sun, 22 Jun 2014 14:04:23 -0400
|
|
||||||
Subject: [PATCH] core/transaction: avoid misleading error message when unit
|
|
||||||
not found
|
|
||||||
|
|
||||||
There's no point in telling the user to look at the logs when
|
|
||||||
an attempt to load the unit file failed with ENOENT.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=996133
|
|
||||||
(cherry picked from commit 04ef5b03f64d3824a51a2a903548af029a006744)
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
TODO
|
|
||||||
---
|
|
||||||
src/core/transaction.c | 18 ++++++++++++------
|
|
||||||
1 file changed, 12 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
|
||||||
index 9fb6101e..d23a45c3 100644
|
|
||||||
--- a/src/core/transaction.c
|
|
||||||
+++ b/src/core/transaction.c
|
|
||||||
@@ -870,12 +870,18 @@ int transaction_add_job_and_dependencies(
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != JOB_STOP && unit->load_state == UNIT_ERROR) {
|
|
||||||
- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
- "Unit %s failed to load: %s. "
|
|
||||||
- "See system logs and 'systemctl status %s' for details.",
|
|
||||||
- unit->id,
|
|
||||||
- strerror(-unit->load_error),
|
|
||||||
- unit->id);
|
|
||||||
+ if (unit->load_error == -ENOENT)
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
+ "Unit %s failed to load: %s.",
|
|
||||||
+ unit->id,
|
|
||||||
+ strerror(-unit->load_error));
|
|
||||||
+ else
|
|
||||||
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
|
||||||
+ "Unit %s failed to load: %s. "
|
|
||||||
+ "See system logs and 'systemctl status %s' for details.",
|
|
||||||
+ unit->id,
|
|
||||||
+ strerror(-unit->load_error),
|
|
||||||
+ unit->id);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
|||||||
From e7c2e475beb1b7d30320e7b2ec42630c6431db4f Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Sun, 22 Jun 2014 14:20:08 -0400
|
|
||||||
Subject: [PATCH] core/snapshot: log info when snapshots are created and
|
|
||||||
removed
|
|
||||||
|
|
||||||
Snapshot mechanism is not used very much, but snapshot creation/destruction
|
|
||||||
should be at least as verbose as normal unit starting/stopping.
|
|
||||||
|
|
||||||
(cherry picked from commit 6f8bd5c94ebc19c9afdb17684945526dddc2ec23)
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
TODO
|
|
||||||
---
|
|
||||||
src/core/snapshot.c | 19 ++++++++++++-------
|
|
||||||
1 file changed, 12 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/snapshot.c b/src/core/snapshot.c
|
|
||||||
index d914af20..5eed615a 100644
|
|
||||||
--- a/src/core/snapshot.c
|
|
||||||
+++ b/src/core/snapshot.c
|
|
||||||
@@ -51,10 +51,11 @@ static void snapshot_set_state(Snapshot *s, SnapshotState state) {
|
|
||||||
s->state = state;
|
|
||||||
|
|
||||||
if (state != old_state)
|
|
||||||
- log_debug("%s changed %s -> %s",
|
|
||||||
- UNIT(s)->id,
|
|
||||||
- snapshot_state_to_string(old_state),
|
|
||||||
- snapshot_state_to_string(state));
|
|
||||||
+ log_debug_unit(UNIT(s)->id,
|
|
||||||
+ "%s changed %s -> %s",
|
|
||||||
+ UNIT(s)->id,
|
|
||||||
+ snapshot_state_to_string(old_state),
|
|
||||||
+ snapshot_state_to_string(state));
|
|
||||||
|
|
||||||
unit_notify(UNIT(s), state_translation_table[old_state], state_translation_table[state], true);
|
|
||||||
}
|
|
||||||
@@ -154,7 +155,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value
|
|
||||||
|
|
||||||
state = snapshot_state_from_string(value);
|
|
||||||
if (state < 0)
|
|
||||||
- log_debug("Failed to parse state value %s", value);
|
|
||||||
+ log_debug_unit(u->id, "Failed to parse state value %s", value);
|
|
||||||
else
|
|
||||||
s->deserialized_state = state;
|
|
||||||
|
|
||||||
@@ -162,7 +163,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value
|
|
||||||
|
|
||||||
r = parse_boolean(value);
|
|
||||||
if (r < 0)
|
|
||||||
- log_debug("Failed to parse cleanup value %s", value);
|
|
||||||
+ log_debug_unit(u->id, "Failed to parse cleanup value %s", value);
|
|
||||||
else
|
|
||||||
s->cleanup = r;
|
|
||||||
|
|
||||||
@@ -172,7 +173,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
} else
|
|
||||||
- log_debug("Unknown serialization key '%s'", key);
|
|
||||||
+ log_debug_unit(u->id, "Unknown serialization key '%s'", key);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -257,6 +258,8 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e,
|
|
||||||
SNAPSHOT(u)->cleanup = cleanup;
|
|
||||||
*_s = SNAPSHOT(u);
|
|
||||||
|
|
||||||
+ log_info_unit(u->id, "Created snapshot %s.", u->id);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
fail:
|
|
||||||
@@ -269,6 +272,8 @@ fail:
|
|
||||||
void snapshot_remove(Snapshot *s) {
|
|
||||||
assert(s);
|
|
||||||
|
|
||||||
+ log_info_unit(UNIT(s)->id, "Removing snapshot %s.", UNIT(s)->id);
|
|
||||||
+
|
|
||||||
unit_add_to_cleanup_queue(UNIT(s));
|
|
||||||
}
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
From 41d83615beba984cc40b141373fa61f9fd1273e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Carl Schaefer <schaefer@trilug.org>
|
|
||||||
Date: Mon, 23 Jun 2014 18:23:48 +0200
|
|
||||||
Subject: [PATCH] vconsole: also copy character maps (not just fonts) from vt1
|
|
||||||
to vt2, vt3, ...
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=78796
|
|
||||||
(cherry picked from commit ff452e76e2c0f89a32542b7179bb2fd538335933)
|
|
||||||
---
|
|
||||||
src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++
|
|
||||||
1 file changed, 24 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
|
|
||||||
index 0f2b7066..e0c40506 100644
|
|
||||||
--- a/src/vconsole/vconsole-setup.c
|
|
||||||
+++ b/src/vconsole/vconsole-setup.c
|
|
||||||
@@ -180,6 +180,10 @@ static int font_load(const char *vc, const char *font, const char *map, const ch
|
|
||||||
*/
|
|
||||||
static void font_copy_to_all_vcs(int fd) {
|
|
||||||
struct vt_stat vcs = {};
|
|
||||||
+ unsigned char map8[E_TABSZ];
|
|
||||||
+ unsigned short map16[E_TABSZ];
|
|
||||||
+ struct unimapdesc unimapd;
|
|
||||||
+ struct unipair unipairs[USHRT_MAX];
|
|
||||||
int i, r;
|
|
||||||
|
|
||||||
/* get active, and 16 bit mask of used VT numbers */
|
|
||||||
@@ -209,6 +213,26 @@ static void font_copy_to_all_vcs(int fd) {
|
|
||||||
cfo.op = KD_FONT_OP_COPY;
|
|
||||||
cfo.height = vcs.v_active-1; /* tty1 == index 0 */
|
|
||||||
ioctl(vcfd, KDFONTOP, &cfo);
|
|
||||||
+
|
|
||||||
+ /* copy map of 8bit chars */
|
|
||||||
+ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0)
|
|
||||||
+ ioctl(vcfd, PIO_SCRNMAP, map8);
|
|
||||||
+
|
|
||||||
+ /* copy map of 8bit chars -> 16bit Unicode values */
|
|
||||||
+ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0)
|
|
||||||
+ ioctl(vcfd, PIO_UNISCRNMAP, map16);
|
|
||||||
+
|
|
||||||
+ /* copy unicode translation table */
|
|
||||||
+ /* unimapd is a ushort count and a pointer to an
|
|
||||||
+ array of struct unipair { ushort, ushort } */
|
|
||||||
+ unimapd.entries = unipairs;
|
|
||||||
+ unimapd.entry_ct = USHRT_MAX;
|
|
||||||
+ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) {
|
|
||||||
+ struct unimapinit adv = { 0, 0, 0 };
|
|
||||||
+
|
|
||||||
+ ioctl(vcfd, PIO_UNIMAPCLR, &adv);
|
|
||||||
+ ioctl(vcfd, PIO_UNIMAP, &unimapd);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 4af1100591133339a3fcaf21f3aacf2aed3593c3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hristo Venev <mustrumr97@gmail.com>
|
|
||||||
Date: Mon, 23 Jun 2014 18:53:04 +0200
|
|
||||||
Subject: [PATCH] core: make sure Environment fields passed in for transient
|
|
||||||
units are properly written to unit files
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=76744
|
|
||||||
(cherry picked from commit cdd7b7dfd44649b204c43e907f03d4294de4f28a)
|
|
||||||
---
|
|
||||||
src/core/dbus-execute.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
|
|
||||||
index cb9a077d..ecbadd76 100644
|
|
||||||
--- a/src/core/dbus-execute.c
|
|
||||||
+++ b/src/core/dbus-execute.c
|
|
||||||
@@ -848,7 +848,7 @@ int bus_exec_context_set_transient_property(
|
|
||||||
strv_free(c->environment);
|
|
||||||
c->environment = e;
|
|
||||||
|
|
||||||
- joined = strv_join(c->environment, " ");
|
|
||||||
+ joined = strv_join_quoted(c->environment);
|
|
||||||
if (!joined)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From d94362708df9a520d2bd8f494003baf186833bdd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ronan Le Martret <ronan@fridu.net>
|
|
||||||
Date: Tue, 22 Apr 2014 10:33:25 +0200
|
|
||||||
Subject: [PATCH] core: You can not put the cached result of use_smack fct, as
|
|
||||||
we are not sure the "/sys" is mounted. So we should mount "sys" before
|
|
||||||
"/proc"
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=77646
|
|
||||||
(cherry picked from commit d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f)
|
|
||||||
---
|
|
||||||
src/core/mount-setup.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
|
|
||||||
index ae8447ca..991bfdfe 100644
|
|
||||||
--- a/src/core/mount-setup.c
|
|
||||||
+++ b/src/core/mount-setup.c
|
|
||||||
@@ -67,10 +67,10 @@ typedef struct MountPoint {
|
|
||||||
#define N_EARLY_MOUNT 5
|
|
||||||
|
|
||||||
static const MountPoint mount_table[] = {
|
|
||||||
- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
|
||||||
- NULL, MNT_FATAL|MNT_IN_CONTAINER },
|
|
||||||
{ "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
|
||||||
NULL, MNT_FATAL|MNT_IN_CONTAINER },
|
|
||||||
+ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
|
||||||
+ NULL, MNT_FATAL|MNT_IN_CONTAINER },
|
|
||||||
{ "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME,
|
|
||||||
NULL, MNT_FATAL|MNT_IN_CONTAINER },
|
|
||||||
{ "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
|
@ -1,57 +0,0 @@
|
|||||||
From 2acc158f96a5ac62acd8d57eb5acf55f7d6a988c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lennart Poettering <lennart@poettering.net>
|
|
||||||
Date: Mon, 23 Jun 2014 19:18:44 +0200
|
|
||||||
Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices
|
|
||||||
when it is listed as password file
|
|
||||||
|
|
||||||
As special magic, don't create device dependencies for /dev/null. Of
|
|
||||||
course, there might be similar devices we might want to include, but
|
|
||||||
given that none of them really make sense to specify as password source
|
|
||||||
there's really no point in checking for anything else here.
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=75816
|
|
||||||
(cherry picked from commit bde29068aa3815c88190a91e9867605a0aeaf9c4)
|
|
||||||
---
|
|
||||||
src/cryptsetup/cryptsetup-generator.c | 20 ++++++++++++--------
|
|
||||||
1 file changed, 12 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
index dfdca1e4..62fc620b 100644
|
|
||||||
--- a/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
+++ b/src/cryptsetup/cryptsetup-generator.c
|
|
||||||
@@ -29,6 +29,7 @@
|
|
||||||
#include "mkdir.h"
|
|
||||||
#include "strv.h"
|
|
||||||
#include "fileio.h"
|
|
||||||
+#include "path-util.h"
|
|
||||||
|
|
||||||
static const char *arg_dest = "/tmp";
|
|
||||||
static bool arg_enabled = true;
|
|
||||||
@@ -144,16 +145,19 @@ static int create_disk(
|
|
||||||
if (!uu)
|
|
||||||
return log_oom();
|
|
||||||
|
|
||||||
- if (is_device_path(uu)) {
|
|
||||||
- _cleanup_free_ char *dd;
|
|
||||||
+ if (!path_equal(uu, "/dev/null")) {
|
|
||||||
|
|
||||||
- dd = unit_name_from_path(uu, ".device");
|
|
||||||
- if (!dd)
|
|
||||||
- return log_oom();
|
|
||||||
+ if (is_device_path(uu)) {
|
|
||||||
+ _cleanup_free_ char *dd;
|
|
||||||
|
|
||||||
- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
|
|
||||||
- } else
|
|
||||||
- fprintf(f, "RequiresMountsFor=%s\n", password);
|
|
||||||
+ dd = unit_name_from_path(uu, ".device");
|
|
||||||
+ if (!dd)
|
|
||||||
+ return log_oom();
|
|
||||||
+
|
|
||||||
+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
|
|
||||||
+ } else
|
|
||||||
+ fprintf(f, "RequiresMountsFor=%s\n", password);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
From e63577bbbb07163abbd1a8967cfd4e539ebf7c14 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
||||||
Date: Mon, 23 Jun 2014 23:07:53 -0400
|
|
||||||
Subject: [PATCH] man: fix path in crypttab(5)
|
|
||||||
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=75816
|
|
||||||
(cherry picked from commit 9fcdf32294e66f91d2a177f73a77049832768311)
|
|
||||||
---
|
|
||||||
man/crypttab.xml | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/man/crypttab.xml b/man/crypttab.xml
|
|
||||||
index 668e51dc..9030015b 100644
|
|
||||||
--- a/man/crypttab.xml
|
|
||||||
+++ b/man/crypttab.xml
|
|
||||||
@@ -369,7 +369,7 @@
|
|
||||||
<programlisting>luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
|
|
||||||
swap /dev/sda7 /dev/urandom swap
|
|
||||||
truecrypt /dev/sda2 /etc/container_password tcrypt
|
|
||||||
-hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
|
|
||||||
+hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
|
|
||||||
</example>
|
|
||||||
</refsect1>
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 6b6202305bc934d36cf782c039a6c1a89c7480a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
||||||
Date: Tue, 24 Jun 2014 23:07:48 +0200
|
|
||||||
Subject: [PATCH] sysv-generator: rename PidFile to PIDFile
|
|
||||||
|
|
||||||
Spotted by Alexey Shabalin
|
|
||||||
|
|
||||||
(cherry picked from commit d171ed1c50ba64928b7fb30ee2ae729fdfe0826b)
|
|
||||||
---
|
|
||||||
src/sysv-generator/sysv-generator.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
|
|
||||||
index 18dae5c2..9778fbc5 100644
|
|
||||||
--- a/src/sysv-generator/sysv-generator.c
|
|
||||||
+++ b/src/sysv-generator/sysv-generator.c
|
|
||||||
@@ -172,7 +172,7 @@ static int generate_unit_file(SysvStub *s) {
|
|
||||||
fprintf(f, "SysVStartPriority=%d\n", s->sysv_start_priority);
|
|
||||||
|
|
||||||
if (s->pid_file)
|
|
||||||
- fprintf(f, "PidFile=%s\n", s->pid_file);
|
|
||||||
+ fprintf(f, "PIDFile=%s\n", s->pid_file);
|
|
||||||
|
|
||||||
fprintf(f,
|
|
||||||
"ExecStart=%s start\n"
|
|
@ -1,68 +0,0 @@
|
|||||||
From af67487dbe254648f9a9c2b836017d348b72435f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
||||||
Date: Thu, 26 Jun 2014 00:36:43 +0200
|
|
||||||
Subject: [PATCH] sysv-generator: fix incorect ordering of Wants
|
|
||||||
|
|
||||||
(cherry picked from commit 260ad50f5b4a9795032e3119c64f838a2d03370d)
|
|
||||||
---
|
|
||||||
src/sysv-generator/sysv-generator.c | 12 ++++++++++--
|
|
||||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
|
|
||||||
index 9778fbc5..52062793 100644
|
|
||||||
--- a/src/sysv-generator/sysv-generator.c
|
|
||||||
+++ b/src/sysv-generator/sysv-generator.c
|
|
||||||
@@ -78,6 +78,7 @@ typedef struct SysvStub {
|
|
||||||
char **before;
|
|
||||||
char **after;
|
|
||||||
char **wants;
|
|
||||||
+ char **wanted_by;
|
|
||||||
char **conflicts;
|
|
||||||
bool has_lsb;
|
|
||||||
bool reload;
|
|
||||||
@@ -118,6 +119,7 @@ static int generate_unit_file(SysvStub *s) {
|
|
||||||
_cleanup_fclose_ FILE *f = NULL;
|
|
||||||
_cleanup_free_ char *before = NULL;
|
|
||||||
_cleanup_free_ char *after = NULL;
|
|
||||||
+ _cleanup_free_ char *wants = NULL;
|
|
||||||
_cleanup_free_ char *conflicts = NULL;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
@@ -129,6 +131,10 @@ static int generate_unit_file(SysvStub *s) {
|
|
||||||
if (!after)
|
|
||||||
return log_oom();
|
|
||||||
|
|
||||||
+ wants = strv_join(s->wants, " ");
|
|
||||||
+ if (!wants)
|
|
||||||
+ return log_oom();
|
|
||||||
+
|
|
||||||
conflicts = strv_join(s->conflicts, " ");
|
|
||||||
if (!conflicts)
|
|
||||||
return log_oom();
|
|
||||||
@@ -154,6 +160,8 @@ static int generate_unit_file(SysvStub *s) {
|
|
||||||
fprintf(f, "Before=%s\n", before);
|
|
||||||
if (!isempty(after))
|
|
||||||
fprintf(f, "After=%s\n", after);
|
|
||||||
+ if (!isempty(wants))
|
|
||||||
+ fprintf(f, "Wants=%s\n", wants);
|
|
||||||
if (!isempty(conflicts))
|
|
||||||
fprintf(f, "Conflicts=%s\n", conflicts);
|
|
||||||
|
|
||||||
@@ -182,7 +190,7 @@ static int generate_unit_file(SysvStub *s) {
|
|
||||||
if (s->reload)
|
|
||||||
fprintf(f, "ExecReload=%s reload\n", s->path);
|
|
||||||
|
|
||||||
- STRV_FOREACH(p, s->wants) {
|
|
||||||
+ STRV_FOREACH(p, s->wanted_by) {
|
|
||||||
r = add_symlink(s->name, *p);
|
|
||||||
if (r < 0)
|
|
||||||
log_error_unit(s->name, "Failed to create 'Wants' symlink to %s: %s", *p, strerror(-r));
|
|
||||||
@@ -832,7 +840,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
|
|
||||||
r = strv_extend(&service->before, rcnd_table[i].target);
|
|
||||||
if (r < 0)
|
|
||||||
return log_oom();
|
|
||||||
- r = strv_extend(&service->wants, rcnd_table[i].target);
|
|
||||||
+ r = strv_extend(&service->wanted_by, rcnd_table[i].target);
|
|
||||||
if (r < 0)
|
|
||||||
return log_oom();
|
|
||||||
}
|
|
@ -1,11 +1,10 @@
|
|||||||
# Also see:
|
# Also see:
|
||||||
# https://fedoraproject.org/wiki/Starting_services_by_default
|
# https://fedoraproject.org/wiki/Starting_services_by_default
|
||||||
|
|
||||||
# systemd
|
# On Fedora we deviate from some upstream defaults
|
||||||
enable remote-fs.target
|
disable systemd-timesyncd.service
|
||||||
enable getty@tty1.service
|
disable systemd-networkd.service
|
||||||
enable systemd-readahead-replay.service
|
disable systemd-resolved.service
|
||||||
enable systemd-readahead-collect.service
|
|
||||||
|
|
||||||
# System stuff
|
# System stuff
|
||||||
enable sshd.service
|
enable sshd.service
|
||||||
|
119
systemd.spec
119
systemd.spec
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 214
|
Version: 215
|
||||||
Release: 5%{?gitcommit:.git%{gitcommit}}%{?dist}
|
Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist}
|
||||||
# For a breakdown of the licensing, see README
|
# For a breakdown of the licensing, see README
|
||||||
License: LGPLv2+ and MIT and GPLv2+
|
License: LGPLv2+ and MIT and GPLv2+
|
||||||
Summary: A System and Service Manager
|
Summary: A System and Service Manager
|
||||||
@ -36,67 +36,9 @@ Source4: listen.conf
|
|||||||
# Prevent accidental removal of the systemd package
|
# Prevent accidental removal of the systemd package
|
||||||
Source6: yum-protect-systemd.conf
|
Source6: yum-protect-systemd.conf
|
||||||
|
|
||||||
# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v214-stable
|
# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v215-stable
|
||||||
# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v214..v214-stable
|
# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v215..v215-stable
|
||||||
# i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done
|
# i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done
|
||||||
Patch001: 0001-NEWS-add-missing-comment-about-the-floppy-group.patch
|
|
||||||
Patch002: 0002-NEWS-fix-directory-name.patch
|
|
||||||
Patch003: 0003-udev-assign-group-input-to-all-input-devices.patch
|
|
||||||
Patch004: 0004-cryptsetup-check-that-password-is-not-null.patch
|
|
||||||
Patch005: 0005-core-fix-invalid-free-in-killall.patch
|
|
||||||
Patch006: 0006-udev-fix-invalid-free-in-enable_name_policy.patch
|
|
||||||
Patch007: 0007-install-fix-invalid-free-in-unit_file_mask.patch
|
|
||||||
Patch008: 0008-rpm-don-t-hardcode-the-binary-paths-in-the-macros-re.patch
|
|
||||||
Patch009: 0009-Fix-spelling-mistake-scirpt-script.patch
|
|
||||||
Patch010: 0010-tmpfiles-set-up-selinux-label-proeprly-when-creating.patch
|
|
||||||
Patch011: 0011-Reset-signal-mask-on-re-exec-to-init.patch
|
|
||||||
Patch012: 0012-core-clean-up-signal-reset-logic-when-reexec.patch
|
|
||||||
Patch013: 0013-journal-remote-fix-memleak.patch
|
|
||||||
Patch014: 0014-unit-name-fix-detection-of-unit-templates-instances.patch
|
|
||||||
Patch015: 0015-install-various-modernizations.patch
|
|
||||||
Patch016: 0016-install-simplify-and-clarify-disabling-logic-for-ins.patch
|
|
||||||
Patch017: 0017-install-various-modernizations.patch
|
|
||||||
Patch018: 0018-install-use-symlink_atomic-instead-of-unlink-symlink.patch
|
|
||||||
Patch019: 0019-install-when-looking-for-a-unit-file-for-enabling-se.patch
|
|
||||||
Patch020: 0020-install-make-sure-systemctl-disable-foobar-.service-.patch
|
|
||||||
Patch021: 0021-install-make-sure-that-root-mode-doesn-t-make-us-con.patch
|
|
||||||
Patch022: 0022-log-don-t-downgrade-log-level-in-non-PID-1-if-quiet-.patch
|
|
||||||
Patch023: 0023-install-simplify-symlink-root-logic.patch
|
|
||||||
Patch024: 0024-conf-files-fix-when-for-root-logic.patch
|
|
||||||
Patch025: 0025-networkd-don-t-pull-in-systemd-networkd-wait-online-.patch
|
|
||||||
Patch026: 0026-bootchart-set-white-background.patch
|
|
||||||
Patch027: 0027-build-sys-add-missing-backslash.patch
|
|
||||||
Patch028: 0028-namespace-properly-label-device-nodes-we-create.patch
|
|
||||||
Patch029: 0029-tmpfiles-create-directories-already-with-the-right-l.patch
|
|
||||||
Patch030: 0030-cryptsetup-introduce-new-cryptsetup-pre.traget-unit-.patch
|
|
||||||
Patch031: 0031-rules-add-loop-control-and-btrfs-control-to-disk-gro.patch
|
|
||||||
Patch032: 0032-hwdb-Update-database-of-Bluetooth-company-identifier.patch
|
|
||||||
Patch033: 0033-socket-check-return-from-exec_spawn.patch
|
|
||||||
Patch034: 0034-man-fix-typo.patch
|
|
||||||
Patch035: 0035-units-add-missing-caps-so-that-GetAddresses-can-work.patch
|
|
||||||
Patch036: 0036-units-systemd-sysctl.service.in-run-after-load-modul.patch
|
|
||||||
Patch037: 0037-man-document-statically-loading-modules-for-sysctl-s.patch
|
|
||||||
Patch038: 0038-man-also-describe-an-udev-rule-for-bridge-sysctl.patch
|
|
||||||
Patch039: 0039-getty-generator-properly-escape-instance-names.patch
|
|
||||||
Patch040: 0040-shared-rename-path_strv_canonicalize_absolute-functi.patch
|
|
||||||
Patch041: 0041-conf-files-include-root-in-returned-file-paths.patch
|
|
||||||
Patch042: 0042-shared-fix-search_and_fopen-with-alternate-roots.patch
|
|
||||||
Patch043: 0043-util-do-not-strip-dev-prefix-twice.patch
|
|
||||||
Patch044: 0044-missing.h-add-various-network-enums.patch
|
|
||||||
Patch045: 0045-util-treat-fuse.sshfs-as-a-network-filesystem.patch
|
|
||||||
Patch046: 0046-build-sys-add-pthread-flag-for-libsystemd-shared.patch
|
|
||||||
Patch047: 0047-fix-systemd-resolved-reference-in-man-page.patch
|
|
||||||
Patch048: 0048-core-transaction-reindent-and-split-very-long-lines.patch
|
|
||||||
Patch049: 0049-core-transaction-avoid-misleading-error-message-when.patch
|
|
||||||
Patch050: 0050-core-snapshot-log-info-when-snapshots-are-created-an.patch
|
|
||||||
Patch051: 0051-vconsole-also-copy-character-maps-not-just-fonts-fro.patch
|
|
||||||
Patch052: 0052-core-make-sure-Environment-fields-passed-in-for-tran.patch
|
|
||||||
Patch053: 0053-core-You-can-not-put-the-cached-result-of-use_smack-.patch
|
|
||||||
Patch054: 0054-cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch
|
|
||||||
Patch055: 0055-man-fix-path-in-crypttab-5.patch
|
|
||||||
Patch056: 0056-sysv-generator-rename-PidFile-to-PIDFile.patch
|
|
||||||
Patch057: 0057-sysv-generator-fix-incorect-ordering-of-Wants.patch
|
|
||||||
|
|
||||||
|
|
||||||
# kernel-install patch for grubby, drop if grubby is obsolete
|
# kernel-install patch for grubby, drop if grubby is obsolete
|
||||||
Patch1000: kernel-install-grubby.patch
|
Patch1000: kernel-install-grubby.patch
|
||||||
@ -104,7 +46,6 @@ Patch1000: kernel-install-grubby.patch
|
|||||||
%global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
|
%global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
|
||||||
|
|
||||||
BuildRequires: libcap-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: tcp_wrappers-devel
|
|
||||||
BuildRequires: pam-devel
|
BuildRequires: pam-devel
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: audit-libs-devel
|
BuildRequires: audit-libs-devel
|
||||||
@ -434,10 +375,13 @@ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/
|
|||||||
# Make sure directories in /var exist
|
# Make sure directories in /var exist
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight
|
||||||
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/rfkill
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/log/journal
|
mkdir -p %{buildroot}%{_localstatedir}/log/journal
|
||||||
touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database
|
touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database
|
||||||
touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin
|
touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin
|
||||||
touch %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
touch %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
||||||
|
touch %{buildroot}%{_localstatedir}/lib/systemd/clock
|
||||||
|
|
||||||
# Install rsyslog fragment
|
# Install rsyslog fragment
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/
|
mkdir -p %{buildroot}%{_sysconfdir}/rsyslog.d/
|
||||||
@ -447,10 +391,6 @@ install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rsyslog.d/
|
|||||||
mkdir -p %{buildroot}%{_sysconfdir}/yum/protected.d/
|
mkdir -p %{buildroot}%{_sysconfdir}/yum/protected.d/
|
||||||
install -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum/protected.d/systemd.conf
|
install -m 0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/yum/protected.d/systemd.conf
|
||||||
|
|
||||||
# Don't package the kernel.core_pattern, we need minidumps working before
|
|
||||||
# this can replace Fedora's current core dump handling.
|
|
||||||
rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf
|
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -497,14 +437,18 @@ ln -s /usr/lib/systemd/system/rsyslog.service /etc/systemd/system/syslog.service
|
|||||||
# Services we install by default, and which are controlled by presets.
|
# Services we install by default, and which are controlled by presets.
|
||||||
if [ $1 -eq 1 ] ; then
|
if [ $1 -eq 1 ] ; then
|
||||||
systemctl preset \
|
systemctl preset \
|
||||||
getty@tty1.service \
|
|
||||||
remote-fs.target \
|
remote-fs.target \
|
||||||
systemd-readahead-replay.service \
|
getty@.service \
|
||||||
systemd-readahead-collect.service \
|
serial-getty@.service \
|
||||||
systemd-networkd.service \
|
|
||||||
console-getty.service \
|
console-getty.service \
|
||||||
console-shell.service \
|
console-shell.service \
|
||||||
debug-shell.service \
|
debug-shell.service \
|
||||||
|
systemd-readahead-replay.service \
|
||||||
|
systemd-readahead-collect.service \
|
||||||
|
systemd-timesyncd.service \
|
||||||
|
systemd-networkd.service \
|
||||||
|
systemd-networkd-wait-online.service \
|
||||||
|
systemd-resolved.service \
|
||||||
>/dev/null 2>&1 || :
|
>/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -525,14 +469,18 @@ fi
|
|||||||
%preun
|
%preun
|
||||||
if [ $1 -eq 0 ] ; then
|
if [ $1 -eq 0 ] ; then
|
||||||
systemctl disable \
|
systemctl disable \
|
||||||
getty@.service \
|
|
||||||
remote-fs.target \
|
remote-fs.target \
|
||||||
systemd-readahead-replay.service \
|
getty@.service \
|
||||||
systemd-readahead-collect.service \
|
serial-getty@.service \
|
||||||
systemd-networkd.service \
|
|
||||||
console-getty.service \
|
console-getty.service \
|
||||||
console-shell.service \
|
console-shell.service \
|
||||||
debug-shell.service \
|
debug-shell.service \
|
||||||
|
systemd-readahead-replay.service \
|
||||||
|
systemd-readahead-collect.service \
|
||||||
|
systemd-timesyncd.service \
|
||||||
|
systemd-networkd.service \
|
||||||
|
systemd-networkd-wait-online.service \
|
||||||
|
systemd-resolved.service \
|
||||||
>/dev/null 2>&1 || :
|
>/dev/null 2>&1 || :
|
||||||
|
|
||||||
rm -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
|
rm -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
|
||||||
@ -586,6 +534,7 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%dir %{_prefix}/lib/systemd/network
|
%dir %{_prefix}/lib/systemd/network
|
||||||
%dir %{_prefix}/lib/systemd/ntp-units.d
|
%dir %{_prefix}/lib/systemd/ntp-units.d
|
||||||
%dir %{_prefix}/lib/tmpfiles.d
|
%dir %{_prefix}/lib/tmpfiles.d
|
||||||
|
%dir %{_prefix}/lib/sysusers.d
|
||||||
%dir %{_prefix}/lib/sysctl.d
|
%dir %{_prefix}/lib/sysctl.d
|
||||||
%dir %{_prefix}/lib/modules-load.d
|
%dir %{_prefix}/lib/modules-load.d
|
||||||
%dir %{_prefix}/lib/binfmt.d
|
%dir %{_prefix}/lib/binfmt.d
|
||||||
@ -598,9 +547,11 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%dir %{_localstatedir}/log/journal
|
%dir %{_localstatedir}/log/journal
|
||||||
%dir %{_localstatedir}/lib/systemd
|
%dir %{_localstatedir}/lib/systemd
|
||||||
%dir %{_localstatedir}/lib/systemd/catalog
|
%dir %{_localstatedir}/lib/systemd/catalog
|
||||||
%dir %{_localstatedir}/lib/systemd/coredump
|
%ghost %dir %{_localstatedir}/lib/systemd/coredump
|
||||||
%ghost %dir %{_localstatedir}/lib/systemd/backlight
|
%ghost %dir %{_localstatedir}/lib/systemd/backlight
|
||||||
|
%ghost %dir %{_localstatedir}/lib/systemd/rfkill
|
||||||
%ghost %{_localstatedir}/lib/systemd/random-seed
|
%ghost %{_localstatedir}/lib/systemd/random-seed
|
||||||
|
%ghost %{_localstatedir}/lib/systemd/clock
|
||||||
%ghost %{_localstatedir}/lib/systemd/catalog/database
|
%ghost %{_localstatedir}/lib/systemd/catalog/database
|
||||||
%{_localstatedir}/log/README
|
%{_localstatedir}/log/README
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
||||||
@ -616,6 +567,7 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf
|
%config(noreplace) %{_sysconfdir}/systemd/bootchart.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/resolved.conf
|
%config(noreplace) %{_sysconfdir}/systemd/resolved.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/systemd/coredump.conf
|
||||||
%config(noreplace) %{_sysconfdir}/udev/udev.conf
|
%config(noreplace) %{_sysconfdir}/udev/udev.conf
|
||||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/listen.conf
|
%config(noreplace) %{_sysconfdir}/rsyslog.d/listen.conf
|
||||||
%config(noreplace) %{_sysconfdir}/yum/protected.d/systemd.conf
|
%config(noreplace) %{_sysconfdir}/yum/protected.d/systemd.conf
|
||||||
@ -642,6 +594,7 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%{_bindir}/journalctl
|
%{_bindir}/journalctl
|
||||||
%{_bindir}/machinectl
|
%{_bindir}/machinectl
|
||||||
%{_bindir}/busctl
|
%{_bindir}/busctl
|
||||||
|
%{_bindir}/coredumpctl
|
||||||
%{_bindir}/systemd-tmpfiles
|
%{_bindir}/systemd-tmpfiles
|
||||||
%{_bindir}/systemd-nspawn
|
%{_bindir}/systemd-nspawn
|
||||||
%{_bindir}/systemd-stdio-bridge
|
%{_bindir}/systemd-stdio-bridge
|
||||||
@ -650,8 +603,10 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%{_bindir}/systemd-cgtop
|
%{_bindir}/systemd-cgtop
|
||||||
%{_bindir}/systemd-delta
|
%{_bindir}/systemd-delta
|
||||||
%{_bindir}/systemd-run
|
%{_bindir}/systemd-run
|
||||||
%caps(cap_dac_override,cap_sys_ptrace=pe) %{_bindir}/systemd-detect-virt
|
%{_bindir}/systemd-detect-virt
|
||||||
%{_bindir}/systemd-inhibit
|
%{_bindir}/systemd-inhibit
|
||||||
|
%{_bindir}/systemd-path
|
||||||
|
%{_bindir}/systemd-sysusers
|
||||||
%{_bindir}/hostnamectl
|
%{_bindir}/hostnamectl
|
||||||
%{_bindir}/localectl
|
%{_bindir}/localectl
|
||||||
%{_bindir}/timedatectl
|
%{_bindir}/timedatectl
|
||||||
@ -674,15 +629,21 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator
|
%{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator
|
||||||
%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
|
%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
|
||||||
%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator
|
%{_prefix}/lib/systemd/system-generators/systemd-sysv-generator
|
||||||
|
%{_prefix}/lib/systemd/system-generators/systemd-debug-generator
|
||||||
%{_prefix}/lib/tmpfiles.d/systemd.conf
|
%{_prefix}/lib/tmpfiles.d/systemd.conf
|
||||||
%{_prefix}/lib/tmpfiles.d/systemd-nologin.conf
|
%{_prefix}/lib/tmpfiles.d/systemd-nologin.conf
|
||||||
%{_prefix}/lib/tmpfiles.d/x11.conf
|
%{_prefix}/lib/tmpfiles.d/x11.conf
|
||||||
%{_prefix}/lib/tmpfiles.d/legacy.conf
|
%{_prefix}/lib/tmpfiles.d/legacy.conf
|
||||||
%{_prefix}/lib/tmpfiles.d/tmp.conf
|
%{_prefix}/lib/tmpfiles.d/tmp.conf
|
||||||
%{_prefix}/lib/tmpfiles.d/var.conf
|
%{_prefix}/lib/tmpfiles.d/var.conf
|
||||||
|
%{_prefix}/lib/tmpfiles.d/etc.conf
|
||||||
%{_prefix}/lib/sysctl.d/50-default.conf
|
%{_prefix}/lib/sysctl.d/50-default.conf
|
||||||
|
%{_prefix}/lib/sysctl.d/50-coredump.conf
|
||||||
|
%{_prefix}/lib/sysusers.d/basic.conf
|
||||||
|
%{_prefix}/lib/sysusers.d/systemd.conf
|
||||||
%{_prefix}/lib/systemd/system-preset/85-display-manager.preset
|
%{_prefix}/lib/systemd/system-preset/85-display-manager.preset
|
||||||
%{_prefix}/lib/systemd/system-preset/90-default.preset
|
%{_prefix}/lib/systemd/system-preset/90-default.preset
|
||||||
|
%{_prefix}/lib/systemd/system-preset/90-systemd.preset
|
||||||
%{_prefix}/lib/systemd/system-preset/99-default-disable.preset
|
%{_prefix}/lib/systemd/system-preset/99-default-disable.preset
|
||||||
%{_prefix}/lib/systemd/catalog/systemd.catalog
|
%{_prefix}/lib/systemd/catalog/systemd.catalog
|
||||||
%{_prefix}/lib/kernel/install.d/50-depmod.install
|
%{_prefix}/lib/kernel/install.d/50-depmod.install
|
||||||
@ -794,6 +755,10 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
|||||||
%{_datadir}/systemd/gatewayd
|
%{_datadir}/systemd/gatewayd
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 3 2014 Lennart Poettering <lpoetter@redhat.com> - 215-1
|
||||||
|
- New upstream release
|
||||||
|
- Enable coredump logic (which abrt would normally override)
|
||||||
|
|
||||||
* Sun Jun 29 2014 Peter Robinson <pbrobinson@fedoraproject.org> 214-5
|
* Sun Jun 29 2014 Peter Robinson <pbrobinson@fedoraproject.org> 214-5
|
||||||
- On aarch64 disable LTO as it still has issues on that arch
|
- On aarch64 disable LTO as it still has issues on that arch
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user