forked from pool/systemd
Accepting request 345072 from home:jengelh:d5
- Update to new upstream release 227+228 tested boot-on-cryptoroot OBS-URL: https://build.opensuse.org/request/show/345072 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=920
This commit is contained in:
parent
4a2039e87b
commit
3a9ea8f8a3
@ -1,49 +0,0 @@
|
||||
From 6a102f90a2ee50e43998d64819e8bd4ee241c22b Mon Sep 17 00:00:00 2001
|
||||
From: Franck Bui <fbui@suse.com>
|
||||
Date: Thu, 8 Oct 2015 19:06:06 +0200
|
||||
Subject: [PATCH 1/2] Make sure the mount units pulled by 'RequiresMountsFor='
|
||||
are loaded (if they exist)
|
||||
|
||||
We should make sure that mount units involved by 'RequiresMountsFor='
|
||||
directives are really loaded if not required by any others units so
|
||||
that Requires= dependencies on the mount units are applied and thus
|
||||
the mount unit dependencies are started.
|
||||
|
||||
(cherry picked from commit 9b3757e9c8c8d6e161481193c4ef60e425a9ae41)
|
||||
---
|
||||
src/core/unit.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index dd5e801..dc7bc5a 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -1141,13 +1141,23 @@ static int unit_add_mount_dependencies(Unit *u) {
|
||||
char prefix[strlen(*i) + 1];
|
||||
|
||||
PATH_FOREACH_PREFIX_MORE(prefix, *i) {
|
||||
+ _cleanup_free_ char *p = NULL;
|
||||
Unit *m;
|
||||
|
||||
- r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m);
|
||||
+ r = unit_name_from_path(prefix, ".mount", &p);
|
||||
if (r < 0)
|
||||
return r;
|
||||
- if (r == 0)
|
||||
+
|
||||
+ m = manager_get_unit(u->manager, p);
|
||||
+ if (!m) {
|
||||
+ /* Make sure to load the mount unit if
|
||||
+ * it exists. If so the dependencies
|
||||
+ * on this unit will be added later
|
||||
+ * during the loading of the mount
|
||||
+ * unit. */
|
||||
+ (void) manager_load_unit_prepare(u->manager, p, NULL, NULL, &m);
|
||||
continue;
|
||||
+ }
|
||||
if (m == u)
|
||||
continue;
|
||||
|
||||
--
|
||||
2.6.0
|
||||
|
@ -1,15 +1,15 @@
|
||||
---
|
||||
rules/99-systemd.rules.in | 2
|
||||
src/basic/terminal-util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
rules/99-systemd.rules.in | 2 -
|
||||
src/basic/terminal-util.c | 55 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
src/basic/terminal-util.h | 1
|
||||
src/core/manager.c | 24 ++++++++---
|
||||
4 files changed, 116 insertions(+), 10 deletions(-)
|
||||
src/core/manager.c | 24 +++++++++++++++-----
|
||||
4 files changed, 74 insertions(+), 8 deletions(-)
|
||||
|
||||
|
||||
Index: systemd-221/rules/99-systemd.rules.in
|
||||
Index: systemd-228/rules/99-systemd.rules.in
|
||||
===================================================================
|
||||
--- systemd-221.orig/rules/99-systemd.rules.in
|
||||
+++ systemd-221/rules/99-systemd.rules.in
|
||||
--- systemd-228.orig/rules/99-systemd.rules.in
|
||||
+++ systemd-228/rules/99-systemd.rules.in
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
ACTION=="remove", GOTO="systemd_end"
|
||||
@ -19,76 +19,11 @@ Index: systemd-221/rules/99-systemd.rules.in
|
||||
KERNEL=="vport*", TAG+="systemd"
|
||||
|
||||
SUBSYSTEM=="block", TAG+="systemd"
|
||||
Index: systemd-221/src/basic/terminal-util.c
|
||||
Index: systemd-228/src/basic/terminal-util.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/basic/terminal-util.c
|
||||
+++ systemd-221/src/basic/terminal-util.c
|
||||
@@ -647,6 +647,7 @@ int status_vprintf(const char *status, b
|
||||
struct iovec iovec[6] = {};
|
||||
int n = 0;
|
||||
static bool prev_ephemeral;
|
||||
+ static int is_ansi_console = -1;
|
||||
|
||||
assert(format);
|
||||
|
||||
@@ -660,6 +661,41 @@ int status_vprintf(const char *status, b
|
||||
if (fd < 0)
|
||||
return fd;
|
||||
|
||||
+ if (_unlikely_(is_ansi_console < 0))
|
||||
+ is_ansi_console = ansi_console(fd);
|
||||
+
|
||||
+ if (status && !is_ansi_console) {
|
||||
+ const char *esc, *ptr;
|
||||
+ esc = strchr(status, 0x1B);
|
||||
+ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) {
|
||||
+ switch(*ptr) {
|
||||
+ case 'S':
|
||||
+ status = " SKIP ";
|
||||
+ break;
|
||||
+ case 'O':
|
||||
+ status = " OK ";
|
||||
+ break;
|
||||
+ case 'F':
|
||||
+ status = "FAILED";
|
||||
+ break;
|
||||
+ case 'D':
|
||||
+ status = "DEPEND";
|
||||
+ break;
|
||||
+ case 'T':
|
||||
+ status = " TIME ";
|
||||
+ break;
|
||||
+ case 'I':
|
||||
+ status = " INFO ";
|
||||
+ break;
|
||||
+ case '*':
|
||||
+ status = " BUSY ";
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (ellipse) {
|
||||
char *e;
|
||||
size_t emax, sl;
|
||||
@@ -682,8 +718,12 @@ int status_vprintf(const char *status, b
|
||||
}
|
||||
}
|
||||
|
||||
- if (prev_ephemeral)
|
||||
- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
|
||||
+ if (prev_ephemeral) {
|
||||
+ if (is_ansi_console)
|
||||
+ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
|
||||
+ else
|
||||
+ IOVEC_SET_STRING(iovec[n++], "\r");
|
||||
+ }
|
||||
prev_ephemeral = ephemeral;
|
||||
|
||||
if (status) {
|
||||
@@ -807,10 +847,47 @@ bool tty_is_vc_resolve(const char *tty)
|
||||
--- systemd-228.orig/src/basic/terminal-util.c
|
||||
+++ systemd-228/src/basic/terminal-util.c
|
||||
@@ -717,10 +717,47 @@ bool tty_is_vc_resolve(const char *tty)
|
||||
return tty_is_vc(tty);
|
||||
}
|
||||
|
||||
@ -137,7 +72,7 @@ Index: systemd-221/src/basic/terminal-util.c
|
||||
}
|
||||
|
||||
int fd_columns(int fd) {
|
||||
@@ -890,8 +967,22 @@ void columns_lines_cache_reset(int signu
|
||||
@@ -800,8 +837,22 @@ void columns_lines_cache_reset(int signu
|
||||
bool on_tty(void) {
|
||||
static int cached_on_tty = -1;
|
||||
|
||||
@ -161,59 +96,59 @@ Index: systemd-221/src/basic/terminal-util.c
|
||||
|
||||
return cached_on_tty;
|
||||
}
|
||||
Index: systemd-221/src/basic/terminal-util.h
|
||||
Index: systemd-228/src/basic/terminal-util.h
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/basic/terminal-util.h
|
||||
+++ systemd-221/src/basic/terminal-util.h
|
||||
@@ -77,6 +77,7 @@ unsigned lines(void);
|
||||
--- systemd-228.orig/src/basic/terminal-util.h
|
||||
+++ systemd-228/src/basic/terminal-util.h
|
||||
@@ -78,6 +78,7 @@ unsigned lines(void);
|
||||
void columns_lines_cache_reset(int _unused_ signum);
|
||||
|
||||
bool on_tty(void);
|
||||
+bool ansi_console(int fd);
|
||||
|
||||
static inline const char *ansi_highlight(void) {
|
||||
return on_tty() ? ANSI_HIGHLIGHT_ON : "";
|
||||
Index: systemd-221/src/core/manager.c
|
||||
static inline const char *ansi_underline(void) {
|
||||
return on_tty() ? ANSI_UNDERLINE : "";
|
||||
Index: systemd-228/src/core/manager.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/manager.c
|
||||
+++ systemd-221/src/core/manager.c
|
||||
@@ -113,7 +113,7 @@ static void manager_watch_jobs_in_progre
|
||||
--- systemd-228.orig/src/core/manager.c
|
||||
+++ systemd-228/src/core/manager.c
|
||||
@@ -126,7 +126,7 @@ static void manager_watch_jobs_in_progre
|
||||
|
||||
#define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1))
|
||||
#define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED)-1) + sizeof(ANSI_HIGHLIGHT_RED)-1 + 2*(sizeof(ANSI_NORMAL)-1))
|
||||
|
||||
-static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
|
||||
+static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) {
|
||||
char *p = buffer;
|
||||
|
||||
assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
|
||||
@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si
|
||||
@@ -135,12 +135,14 @@ static void draw_cylon(char buffer[], si
|
||||
if (pos > 1) {
|
||||
if (pos > 2)
|
||||
p = mempset(p, ' ', pos-2);
|
||||
- p = stpcpy(p, ANSI_RED_ON);
|
||||
- p = stpcpy(p, ANSI_RED);
|
||||
+ if (ansi_console)
|
||||
+ p = stpcpy(p, ANSI_RED_ON);
|
||||
+ p = stpcpy(p, ANSI_RED);
|
||||
*p++ = '*';
|
||||
}
|
||||
|
||||
if (pos > 0 && pos <= width) {
|
||||
- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
|
||||
- p = stpcpy(p, ANSI_HIGHLIGHT_RED);
|
||||
+ if (ansi_console)
|
||||
+ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
|
||||
+ p = stpcpy(p, ANSI_HIGHLIGHT_RED);
|
||||
*p++ = '*';
|
||||
}
|
||||
|
||||
@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si
|
||||
@@ -151,7 +153,8 @@ static void draw_cylon(char buffer[], si
|
||||
*p++ = '*';
|
||||
if (pos < width-1)
|
||||
p = mempset(p, ' ', width-1-pos);
|
||||
- strcpy(p, ANSI_HIGHLIGHT_OFF);
|
||||
- strcpy(p, ANSI_NORMAL);
|
||||
+ if (ansi_console)
|
||||
+ strcpy(p, ANSI_HIGHLIGHT_OFF);
|
||||
+ strcpy(p, ANSI_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m
|
||||
@@ -168,6 +171,7 @@ void manager_flip_auto_status(Manager *m
|
||||
}
|
||||
|
||||
static void manager_print_jobs_in_progress(Manager *m) {
|
||||
@ -221,7 +156,7 @@ Index: systemd-221/src/core/manager.c
|
||||
_cleanup_free_ char *job_of_n = NULL;
|
||||
Iterator i;
|
||||
Job *j;
|
||||
@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre
|
||||
@@ -193,10 +197,20 @@ static void manager_print_jobs_in_progre
|
||||
assert(counter == print_nr + 1);
|
||||
assert(j);
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
src/systemctl/systemctl.c | 18 ++++++++++++------
|
||||
2 files changed, 16 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: systemd-221/src/core/shutdown.c
|
||||
Index: systemd-227/src/core/shutdown.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/shutdown.c
|
||||
+++ systemd-221/src/core/shutdown.c
|
||||
@@ -396,6 +396,10 @@ int main(int argc, char *argv[]) {
|
||||
--- systemd-227.orig/src/core/shutdown.c
|
||||
+++ systemd-227/src/core/shutdown.c
|
||||
@@ -418,6 +418,10 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
reboot(cmd);
|
||||
@ -18,11 +18,11 @@ Index: systemd-221/src/core/shutdown.c
|
||||
if (errno == EPERM && in_container) {
|
||||
/* If we are in a container, and we lacked
|
||||
* CAP_SYS_BOOT just exit, this will kill our
|
||||
Index: systemd-221/src/systemctl/systemctl.c
|
||||
Index: systemd-227/src/systemctl/systemctl.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/systemctl/systemctl.c
|
||||
+++ systemd-221/src/systemctl/systemctl.c
|
||||
@@ -93,6 +93,7 @@ static bool arg_no_pager = false;
|
||||
--- systemd-227.orig/src/systemctl/systemctl.c
|
||||
+++ systemd-227/src/systemctl/systemctl.c
|
||||
@@ -94,6 +94,7 @@ static bool arg_no_pager = false;
|
||||
static bool arg_no_wtmp = false;
|
||||
static bool arg_no_wall = false;
|
||||
static bool arg_no_reload = false;
|
||||
@ -30,7 +30,7 @@ Index: systemd-221/src/systemctl/systemctl.c
|
||||
static bool arg_show_types = false;
|
||||
static bool arg_ignore_inhibitors = false;
|
||||
static bool arg_dry = false;
|
||||
@@ -6636,6 +6637,7 @@ static int halt_parse_argv(int argc, cha
|
||||
@@ -6938,6 +6939,7 @@ static int halt_parse_argv(int argc, cha
|
||||
{ "reboot", no_argument, NULL, ARG_REBOOT },
|
||||
{ "force", no_argument, NULL, 'f' },
|
||||
{ "wtmp-only", no_argument, NULL, 'w' },
|
||||
@ -38,7 +38,7 @@ Index: systemd-221/src/systemctl/systemctl.c
|
||||
{ "no-wtmp", no_argument, NULL, 'd' },
|
||||
{ "no-wall", no_argument, NULL, ARG_NO_WALL },
|
||||
{}
|
||||
@@ -6688,10 +6690,13 @@ static int halt_parse_argv(int argc, cha
|
||||
@@ -6990,10 +6992,13 @@ static int halt_parse_argv(int argc, cha
|
||||
|
||||
case 'i':
|
||||
case 'h':
|
||||
@ -53,32 +53,32 @@ Index: systemd-221/src/systemctl/systemctl.c
|
||||
case '?':
|
||||
return -EINVAL;
|
||||
|
||||
@@ -7291,7 +7296,8 @@ static int halt_now(enum action a) {
|
||||
@@ -7506,7 +7511,8 @@ static int halt_now(enum action a) {
|
||||
/* The kernel will automaticall flush ATA disks and suchlike
|
||||
* on reboot(), but the file systems need to be synce'd
|
||||
* explicitly in advance. */
|
||||
- sync();
|
||||
- (void) sync();
|
||||
+ if (!arg_no_sync)
|
||||
+ sync();
|
||||
+ (void) sync();
|
||||
|
||||
/* Make sure C-A-D is handled by the kernel from this point
|
||||
* on... */
|
||||
@@ -7299,14 +7305,14 @@ static int halt_now(enum action a) {
|
||||
@@ -7514,14 +7520,13 @@ static int halt_now(enum action a) {
|
||||
|
||||
switch (a) {
|
||||
|
||||
- case ACTION_HALT:
|
||||
- log_info("Halting.");
|
||||
- reboot(RB_HALT_SYSTEM);
|
||||
- (void) reboot(RB_HALT_SYSTEM);
|
||||
- return -errno;
|
||||
|
||||
-
|
||||
case ACTION_POWEROFF:
|
||||
log_info("Powering off.");
|
||||
reboot(RB_POWER_OFF);
|
||||
(void) reboot(RB_POWER_OFF);
|
||||
+ /* fall-through */
|
||||
+ case ACTION_HALT:
|
||||
+ log_info("Halting.");
|
||||
+ reboot(RB_HALT_SYSTEM);
|
||||
+ (void) reboot(RB_HALT_SYSTEM);
|
||||
return -errno;
|
||||
|
||||
case ACTION_REBOOT: {
|
||||
case ACTION_KEXEC:
|
||||
|
@ -5,17 +5,16 @@ NFS share is added as "After=" dependency to the <nfs-share-mount-point>.mount.
|
||||
|
||||
---
|
||||
Makefile.am | 2
|
||||
src/basic/util.c | 1
|
||||
src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
src/core/mount-iface.h | 25 +++++++
|
||||
src/core/mount.c | 35 +++++++++
|
||||
5 files changed, 234 insertions(+), 2 deletions(-)
|
||||
4 files changed, 233 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: systemd-221/Makefile.am
|
||||
Index: systemd-228/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-221.orig/Makefile.am
|
||||
+++ systemd-221/Makefile.am
|
||||
@@ -1164,6 +1164,8 @@ libcore_la_SOURCES = \
|
||||
--- systemd-228.orig/Makefile.am
|
||||
+++ systemd-228/Makefile.am
|
||||
@@ -1223,6 +1223,8 @@ libcore_la_SOURCES = \
|
||||
src/core/machine-id-setup.h \
|
||||
src/core/mount-setup.c \
|
||||
src/core/mount-setup.h \
|
||||
@ -24,22 +23,10 @@ Index: systemd-221/Makefile.am
|
||||
src/core/kmod-setup.c \
|
||||
src/core/kmod-setup.h \
|
||||
src/core/loopback-setup.h \
|
||||
Index: systemd-221/src/basic/util.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/basic/util.c
|
||||
+++ systemd-221/src/basic/util.c
|
||||
@@ -1478,6 +1478,7 @@ bool fstype_is_network(const char *fstyp
|
||||
"ncp\0"
|
||||
"nfs\0"
|
||||
"nfs4\0"
|
||||
+ "afs\0"
|
||||
"gfs\0"
|
||||
"gfs2\0"
|
||||
"glusterfs\0";
|
||||
Index: systemd-221/src/core/mount-iface.c
|
||||
Index: systemd-228/src/core/mount-iface.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-221/src/core/mount-iface.c
|
||||
+++ systemd-228/src/core/mount-iface.c
|
||||
@@ -0,0 +1,173 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
@ -214,10 +201,10 @@ Index: systemd-221/src/core/mount-iface.c
|
||||
+ freeifaddrs(ifa_list);
|
||||
+ ifa_list = NULL;
|
||||
+}
|
||||
Index: systemd-221/src/core/mount-iface.h
|
||||
Index: systemd-228/src/core/mount-iface.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-221/src/core/mount-iface.h
|
||||
+++ systemd-228/src/core/mount-iface.h
|
||||
@@ -0,0 +1,25 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
@ -244,19 +231,19 @@ Index: systemd-221/src/core/mount-iface.h
|
||||
+
|
||||
+char *host2iface(const char *ip);
|
||||
+void freeroutes(void);
|
||||
Index: systemd-221/src/core/mount.c
|
||||
Index: systemd-228/src/core/mount.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/mount.c
|
||||
+++ systemd-221/src/core/mount.c
|
||||
@@ -35,6 +35,7 @@
|
||||
--- systemd-228.orig/src/core/mount.c
|
||||
+++ systemd-228/src/core/mount.c
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "manager.h"
|
||||
#include "mkdir.h"
|
||||
#include "path-util.h"
|
||||
#include "mount-setup.h"
|
||||
+#include "mount-iface.h"
|
||||
#include "unit-name.h"
|
||||
#include "dbus-mount.h"
|
||||
#include "special.h"
|
||||
@@ -1332,8 +1333,9 @@ static int mount_setup_unit(
|
||||
#include "mount-util.h"
|
||||
#include "mount.h"
|
||||
#include "parse-util.h"
|
||||
@@ -1344,8 +1345,9 @@ static int mount_setup_unit(
|
||||
_cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL;
|
||||
bool load_extras = false;
|
||||
MountParameters *p;
|
||||
@ -267,7 +254,7 @@ Index: systemd-221/src/core/mount.c
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
@@ -1358,6 +1360,8 @@ static int mount_setup_unit(
|
||||
@@ -1370,6 +1372,8 @@ static int mount_setup_unit(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -276,7 +263,7 @@ Index: systemd-221/src/core/mount.c
|
||||
u = manager_get_unit(m, e);
|
||||
if (!u) {
|
||||
delete = true;
|
||||
@@ -1385,7 +1389,7 @@ static int mount_setup_unit(
|
||||
@@ -1397,7 +1401,7 @@ static int mount_setup_unit(
|
||||
if (m->running_as == MANAGER_SYSTEM) {
|
||||
const char* target;
|
||||
|
||||
@ -285,7 +272,7 @@ Index: systemd-221/src/core/mount.c
|
||||
r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
@@ -1471,6 +1475,32 @@ static int mount_setup_unit(
|
||||
@@ -1483,6 +1487,32 @@ static int mount_setup_unit(
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@ -318,7 +305,7 @@ Index: systemd-221/src/core/mount.c
|
||||
if (changed)
|
||||
unit_add_to_dbus_queue(u);
|
||||
|
||||
@@ -1537,6 +1567,7 @@ static int mount_load_proc_self_mountinf
|
||||
@@ -1549,6 +1579,7 @@ static int mount_load_proc_self_mountinf
|
||||
if (r == 0 && k < 0)
|
||||
r = k;
|
||||
}
|
||||
|
@ -3,10 +3,10 @@
|
||||
src/login/logind-dbus.c | 31 +++++++++++++++++++++++--------
|
||||
2 files changed, 28 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: systemd-221/src/login/logind-action.c
|
||||
Index: systemd-227/src/login/logind-action.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/login/logind-action.c
|
||||
+++ systemd-221/src/login/logind-action.c
|
||||
--- systemd-227.orig/src/login/logind-action.c
|
||||
+++ systemd-227/src/login/logind-action.c
|
||||
@@ -85,6 +85,11 @@ int manager_handle_action(
|
||||
|
||||
/* If the key handling is inhibited, don't do anything */
|
||||
@ -19,11 +19,11 @@ Index: systemd-221/src/login/logind-action.c
|
||||
if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) {
|
||||
log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key));
|
||||
return 0;
|
||||
Index: systemd-221/src/login/logind-dbus.c
|
||||
Index: systemd-227/src/login/logind-dbus.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/login/logind-dbus.c
|
||||
+++ systemd-221/src/login/logind-dbus.c
|
||||
@@ -1625,12 +1625,13 @@ static int verify_shutdown_creds(
|
||||
--- systemd-227.orig/src/login/logind-dbus.c
|
||||
+++ systemd-227/src/login/logind-dbus.c
|
||||
@@ -1646,12 +1646,13 @@ static int verify_shutdown_creds(
|
||||
const char *action,
|
||||
const char *action_multiple_sessions,
|
||||
const char *action_ignore_inhibit,
|
||||
@ -40,7 +40,7 @@ Index: systemd-221/src/login/logind-dbus.c
|
||||
|
||||
assert(m);
|
||||
assert(message);
|
||||
@@ -1652,7 +1653,19 @@ static int verify_shutdown_creds(
|
||||
@@ -1673,7 +1674,19 @@ static int verify_shutdown_creds(
|
||||
multiple_sessions = r > 0;
|
||||
blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL);
|
||||
|
||||
@ -58,29 +58,29 @@ Index: systemd-221/src/login/logind-dbus.c
|
||||
+
|
||||
+ if (multiple_sessions && action_multiple_sessions &&
|
||||
+ !shutdown_through_acpi) {
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -1660,7 +1673,7 @@ static int verify_shutdown_creds(
|
||||
@@ -1681,7 +1694,7 @@ static int verify_shutdown_creds(
|
||||
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
|
||||
}
|
||||
|
||||
- if (blocked && action_ignore_inhibit) {
|
||||
+ if (blocked && action_ignore_inhibit && !shutdown_through_acpi) {
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -1668,7 +1681,8 @@ static int verify_shutdown_creds(
|
||||
@@ -1689,7 +1702,8 @@ static int verify_shutdown_creds(
|
||||
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
|
||||
}
|
||||
|
||||
- if (!multiple_sessions && !blocked && action) {
|
||||
+ if (!multiple_sessions && !blocked && action &&
|
||||
+ !shutdown_through_acpi) {
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, NULL, interactive, UID_INVALID, &m->polkit_registry, error);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -1716,7 +1730,7 @@ static int method_do_shutdown_or_sleep(
|
||||
@@ -1737,7 +1751,7 @@ static int method_do_shutdown_or_sleep(
|
||||
}
|
||||
|
||||
r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions,
|
||||
@ -89,7 +89,7 @@ Index: systemd-221/src/login/logind-dbus.c
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
@@ -1896,7 +1910,8 @@ static int method_schedule_shutdown(sd_b
|
||||
@@ -1931,7 +1945,8 @@ static int method_schedule_shutdown(sd_b
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type");
|
||||
|
||||
r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false,
|
||||
|
@ -1,140 +0,0 @@
|
||||
From d7f920bfcb0296fed214d4d3a21d64de09a68521 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 1 Sep 2015 17:25:59 +0200
|
||||
Subject: [PATCH 2/2] units: enable waiting for unit termination in certain
|
||||
cases
|
||||
|
||||
The legacy cgroup hierarchy does not support reliable empty
|
||||
notifications in containers and if there are left-over subgroups in a
|
||||
cgroup. This makes it hard to correctly wait for them running empty, and
|
||||
thus we previously disabled this logic entirely.
|
||||
|
||||
With this change we explicitly check for the container case, and whether
|
||||
the unit is a "delegation" unit (i.e. one where programs may create
|
||||
their own subgroups). If we are neither in a container, nor operating on
|
||||
a delegation unit cgroup empty notifications become reliable and thus we
|
||||
start waiting for the empty notifications again.
|
||||
|
||||
This doesn't really fix the general problem around cgroup notifications
|
||||
but reduces the effect around it.
|
||||
|
||||
(This also reorders #include lines by their focus, as suggsted in
|
||||
CODING_STYLE. We have to add "virt.h", so let's do that at the right
|
||||
place.)
|
||||
|
||||
Also see #317.
|
||||
|
||||
(cherry picked from commit e9db43d5910717a1084924c512bf85e2b8265375)
|
||||
---
|
||||
src/core/cgroup.c | 12 ++++++++++++
|
||||
src/core/cgroup.h | 2 ++
|
||||
src/core/unit.c | 40 +++++++++++++++++++++++-----------------
|
||||
3 files changed, 37 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index 6474e08..65af351 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -1127,6 +1127,18 @@ int unit_reset_cpu_usage(Unit *u) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+bool unit_cgroup_delegate(Unit *u) {
|
||||
+ CGroupContext *c;
|
||||
+
|
||||
+ assert(u);
|
||||
+
|
||||
+ c = unit_get_cgroup_context(u);
|
||||
+ if (!c)
|
||||
+ return false;
|
||||
+
|
||||
+ return c->delegate;
|
||||
+}
|
||||
+
|
||||
static const char* const cgroup_device_policy_table[_CGROUP_DEVICE_POLICY_MAX] = {
|
||||
[CGROUP_AUTO] = "auto",
|
||||
[CGROUP_CLOSED] = "closed",
|
||||
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
|
||||
index 869ddae..7b38d21 100644
|
||||
--- a/src/core/cgroup.h
|
||||
+++ b/src/core/cgroup.h
|
||||
@@ -130,5 +130,7 @@ int unit_get_memory_current(Unit *u, uint64_t *ret);
|
||||
int unit_get_cpu_usage(Unit *u, nsec_t *ret);
|
||||
int unit_reset_cpu_usage(Unit *u);
|
||||
|
||||
+bool unit_cgroup_delegate(Unit *u);
|
||||
+
|
||||
const char* cgroup_device_policy_to_string(CGroupDevicePolicy i) _const_;
|
||||
CGroupDevicePolicy cgroup_device_policy_from_string(const char *s) _pure_;
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index dc7bc5a..275f567 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -28,26 +28,28 @@
|
||||
#include "sd-id128.h"
|
||||
#include "sd-messages.h"
|
||||
#include "set.h"
|
||||
-#include "unit.h"
|
||||
#include "macro.h"
|
||||
#include "strv.h"
|
||||
#include "path-util.h"
|
||||
-#include "load-fragment.h"
|
||||
-#include "load-dropin.h"
|
||||
#include "log.h"
|
||||
-#include "unit-name.h"
|
||||
-#include "dbus-unit.h"
|
||||
-#include "special.h"
|
||||
#include "cgroup-util.h"
|
||||
#include "missing.h"
|
||||
#include "mkdir.h"
|
||||
#include "fileio-label.h"
|
||||
+#include "formats-util.h"
|
||||
+#include "process-util.h"
|
||||
+#include "virt.h"
|
||||
#include "bus-common-errors.h"
|
||||
+#include "bus-util.h"
|
||||
+#include "dropin.h"
|
||||
+#include "unit-name.h"
|
||||
+#include "special.h"
|
||||
+#include "unit.h"
|
||||
+#include "load-fragment.h"
|
||||
+#include "load-dropin.h"
|
||||
#include "dbus.h"
|
||||
+#include "dbus-unit.h"
|
||||
#include "execute.h"
|
||||
-#include "dropin.h"
|
||||
-#include "formats-util.h"
|
||||
-#include "process-util.h"
|
||||
|
||||
const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = {
|
||||
[UNIT_SERVICE] = &service_vtable,
|
||||
@@ -3535,14 +3537,18 @@ int unit_kill_context(
|
||||
} else if (r > 0) {
|
||||
|
||||
/* FIXME: For now, we will not wait for the
|
||||
- * cgroup members to die, simply because
|
||||
- * cgroup notification is unreliable. It
|
||||
- * doesn't work at all in containers, and
|
||||
- * outside of containers it can be confused
|
||||
- * easily by leaving directories in the
|
||||
- * cgroup. */
|
||||
-
|
||||
- /* wait_for_exit = true; */
|
||||
+ * cgroup members to die if we are running in
|
||||
+ * a container or if this is a delegation
|
||||
+ * unit, simply because cgroup notification is
|
||||
+ * unreliable in these cases. It doesn't work
|
||||
+ * at all in containers, and outside of
|
||||
+ * containers it can be confused easily by
|
||||
+ * left-over directories in the cgroup --
|
||||
+ * which however should not exist in
|
||||
+ * non-delegated units. */
|
||||
+
|
||||
+ if (detect_container(NULL) == 0 && !unit_cgroup_delegate(u))
|
||||
+ wait_for_exit = true;
|
||||
|
||||
if (c->send_sighup && k != KILL_KILL) {
|
||||
set_free(pid_set);
|
||||
--
|
||||
2.6.0
|
||||
|
@ -13,27 +13,27 @@ No word on compression…
|
||||
src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 34 insertions(+)
|
||||
|
||||
Index: systemd-221/src/journal/journald-server.c
|
||||
Index: systemd-227/src/journal/journald-server.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/journal/journald-server.c
|
||||
+++ systemd-221/src/journal/journald-server.c
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#include <sys/signalfd.h>
|
||||
--- systemd-227.orig/src/journal/journald-server.c
|
||||
+++ systemd-227/src/journal/journald-server.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <selinux/selinux.h>
|
||||
#endif
|
||||
#include <sys/ioctl.h>
|
||||
+#include <linux/fs.h>
|
||||
#include <linux/sockios.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/mman.h>
|
||||
@@ -918,6 +919,38 @@ finish:
|
||||
dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid);
|
||||
#include <sys/signalfd.h>
|
||||
#include <sys/statvfs.h>
|
||||
@@ -861,6 +862,39 @@ void server_driver_message(Server *s, sd
|
||||
dispatch_message_real(s, iovec, n, ELEMENTSOF(iovec), &ucred, NULL, NULL, 0, NULL, LOG_INFO, 0);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * On journaling and/or compressing file systems, avoid doubling the efforts
|
||||
+ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every
|
||||
+ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on
|
||||
+ * a single unkown flag (like BtrFS does).
|
||||
+ * a single unkown flag (like Btrfs does).
|
||||
+ *
|
||||
+ * …but src/journal/journal-file.c already sets NOCOW too…⸘
|
||||
+ */
|
||||
@ -61,12 +61,13 @@ Index: systemd-221/src/journal/journald-server.c
|
||||
+ }
|
||||
+ close(fd);
|
||||
+}
|
||||
+
|
||||
void server_dispatch_message(
|
||||
Server *s,
|
||||
struct iovec *iovec, unsigned n, unsigned m,
|
||||
@@ -948,6 +982,7 @@ static int system_journal_open(Server *s
|
||||
|
||||
static int system_journal_open(Server *s, bool flush_requested) {
|
||||
int r;
|
||||
@@ -947,6 +980,7 @@ static int system_journal_open(Server *s
|
||||
|
||||
fn = strjoina("/var/log/journal/", ids);
|
||||
fn = strjoina("/var/log/journal/", SERVER_MACHINE_ID(s));
|
||||
(void) mkdir(fn, 0755);
|
||||
+ disable_cow(fn, s);
|
||||
|
||||
|
@ -12,10 +12,10 @@
|
||||
shell-completion/bash/udevadm | 6 +++++-
|
||||
11 files changed, 70 insertions(+), 11 deletions(-)
|
||||
|
||||
Index: systemd-221/shell-completion/bash/coredumpctl
|
||||
Index: systemd-228/shell-completion/bash/coredumpctl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/coredumpctl
|
||||
+++ systemd-221/shell-completion/bash/coredumpctl
|
||||
--- systemd-228.orig/shell-completion/bash/coredumpctl
|
||||
+++ systemd-228/shell-completion/bash/coredumpctl
|
||||
@@ -44,6 +44,10 @@ _coredumpctl() {
|
||||
[DUMP]='dump gdb'
|
||||
)
|
||||
@ -33,10 +33,10 @@ Index: systemd-221/shell-completion/bash/coredumpctl
|
||||
|
||||
-complete -F _coredumpctl coredumpctl
|
||||
+complete -o default -o bashdefault -F _coredumpctl coredumpctl
|
||||
Index: systemd-221/shell-completion/bash/hostnamectl
|
||||
Index: systemd-228/shell-completion/bash/hostnamectl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/hostnamectl
|
||||
+++ systemd-221/shell-completion/bash/hostnamectl
|
||||
--- systemd-228.orig/shell-completion/bash/hostnamectl
|
||||
+++ systemd-228/shell-completion/bash/hostnamectl
|
||||
@@ -30,6 +30,10 @@ _hostnamectl() {
|
||||
local OPTS='-h --help --version --transient --static --pretty
|
||||
--no-ask-password -H --host --machine'
|
||||
@ -54,12 +54,12 @@ Index: systemd-221/shell-completion/bash/hostnamectl
|
||||
|
||||
-complete -F _hostnamectl hostnamectl
|
||||
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
|
||||
Index: systemd-221/shell-completion/bash/journalctl
|
||||
Index: systemd-228/shell-completion/bash/journalctl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/journalctl
|
||||
+++ systemd-221/shell-completion/bash/journalctl
|
||||
@@ -55,6 +55,10 @@ _journalctl() {
|
||||
--root --machine'
|
||||
--- systemd-228.orig/shell-completion/bash/journalctl
|
||||
+++ systemd-228/shell-completion/bash/journalctl
|
||||
@@ -56,6 +56,10 @@ _journalctl() {
|
||||
--root -M --machine'
|
||||
)
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
@ -69,16 +69,16 @@ Index: systemd-221/shell-completion/bash/journalctl
|
||||
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
|
||||
case $prev in
|
||||
--boot|--this-boot|-b)
|
||||
@@ -120,4 +124,4 @@ _journalctl() {
|
||||
@@ -121,4 +125,4 @@ _journalctl() {
|
||||
fi
|
||||
}
|
||||
|
||||
-complete -F _journalctl journalctl
|
||||
+complete -o default -o bashdefault -F _journalctl journalctl
|
||||
Index: systemd-221/shell-completion/bash/kernel-install
|
||||
Index: systemd-228/shell-completion/bash/kernel-install
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/kernel-install
|
||||
+++ systemd-221/shell-completion/bash/kernel-install
|
||||
--- systemd-228.orig/shell-completion/bash/kernel-install
|
||||
+++ systemd-228/shell-completion/bash/kernel-install
|
||||
@@ -18,11 +18,22 @@
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
@ -108,10 +108,10 @@ Index: systemd-221/shell-completion/bash/kernel-install
|
||||
|
||||
-complete -F _kernel_install kernel-install
|
||||
+complete -o default -o bashdefault -F _kernel_install kernel-install
|
||||
Index: systemd-221/shell-completion/bash/localectl
|
||||
Index: systemd-228/shell-completion/bash/localectl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/localectl
|
||||
+++ systemd-221/shell-completion/bash/localectl
|
||||
--- systemd-228.orig/shell-completion/bash/localectl
|
||||
+++ systemd-228/shell-completion/bash/localectl
|
||||
@@ -36,6 +36,10 @@ _localectl() {
|
||||
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
|
||||
-H --host --machine'
|
||||
@ -129,10 +129,10 @@ Index: systemd-221/shell-completion/bash/localectl
|
||||
|
||||
-complete -F _localectl localectl
|
||||
+complete -o default -o bashdefault -F _localectl localectl
|
||||
Index: systemd-221/shell-completion/bash/loginctl
|
||||
Index: systemd-228/shell-completion/bash/loginctl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/loginctl
|
||||
+++ systemd-221/shell-completion/bash/loginctl
|
||||
--- systemd-228.orig/shell-completion/bash/loginctl
|
||||
+++ systemd-228/shell-completion/bash/loginctl
|
||||
@@ -38,6 +38,10 @@ _loginctl () {
|
||||
[ARG]='--host -H --kill-who --property -p --signal -s --machine'
|
||||
)
|
||||
@ -150,12 +150,12 @@ Index: systemd-221/shell-completion/bash/loginctl
|
||||
|
||||
-complete -F _loginctl loginctl
|
||||
+complete -o default -o bashdefault -F _loginctl loginctl
|
||||
Index: systemd-221/shell-completion/bash/systemctl.in
|
||||
Index: systemd-228/shell-completion/bash/systemctl.in
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/systemctl.in
|
||||
+++ systemd-221/shell-completion/bash/systemctl.in
|
||||
@@ -96,6 +96,10 @@ _systemctl () {
|
||||
[ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --job-mode --root'
|
||||
--- systemd-228.orig/shell-completion/bash/systemctl.in
|
||||
+++ systemd-228/shell-completion/bash/systemctl.in
|
||||
@@ -104,6 +104,10 @@ _systemctl () {
|
||||
--preset-mode -n --lines -o --output -M --machine'
|
||||
)
|
||||
|
||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||
@ -164,17 +164,17 @@ Index: systemd-221/shell-completion/bash/systemctl.in
|
||||
+
|
||||
if __contains_word "--user" ${COMP_WORDS[*]}; then
|
||||
mode=--user
|
||||
else
|
||||
@@ -268,4 +272,4 @@ _systemctl () {
|
||||
elif __contains_word "--global" ${COMP_WORDS[*]}; then
|
||||
@@ -280,4 +284,4 @@ _systemctl () {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _systemctl systemctl
|
||||
+complete -o default -o bashdefault -F _systemctl systemctl
|
||||
Index: systemd-221/shell-completion/bash/systemd-analyze
|
||||
Index: systemd-228/shell-completion/bash/systemd-analyze
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/systemd-analyze
|
||||
+++ systemd-221/shell-completion/bash/systemd-analyze
|
||||
--- systemd-228.orig/shell-completion/bash/systemd-analyze
|
||||
+++ systemd-228/shell-completion/bash/systemd-analyze
|
||||
@@ -47,6 +47,10 @@ _systemd_analyze() {
|
||||
[VERIFY]='verify'
|
||||
)
|
||||
@ -192,10 +192,10 @@ Index: systemd-221/shell-completion/bash/systemd-analyze
|
||||
|
||||
-complete -F _systemd_analyze systemd-analyze
|
||||
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
|
||||
Index: systemd-221/shell-completion/bash/systemd-run
|
||||
Index: systemd-228/shell-completion/bash/systemd-run
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/systemd-run
|
||||
+++ systemd-221/shell-completion/bash/systemd-run
|
||||
--- systemd-228.orig/shell-completion/bash/systemd-run
|
||||
+++ systemd-228/shell-completion/bash/systemd-run
|
||||
@@ -17,6 +17,13 @@
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
@ -210,7 +210,7 @@ Index: systemd-221/shell-completion/bash/systemd-run
|
||||
__systemctl() {
|
||||
local mode=$1; shift 1
|
||||
systemctl $mode --full --no-legend "$@"
|
||||
@@ -38,6 +45,11 @@ _systemd_run() {
|
||||
@@ -40,6 +47,11 @@ _systemd_run() {
|
||||
|
||||
local mode=--system
|
||||
local i
|
||||
@ -219,19 +219,19 @@ Index: systemd-221/shell-completion/bash/systemd-run
|
||||
+ return 0
|
||||
+ fi
|
||||
+
|
||||
for (( i=1; i <= COMP_CWORD; i++ )); do
|
||||
if [[ ${COMP_WORDS[i]} != -* ]]; then
|
||||
local root_command=${COMP_WORDS[i]}
|
||||
@@ -98,4 +110,4 @@ _systemd_run() {
|
||||
local opts_with_values=(
|
||||
--unit --description --slice --service-type -H --host -M --machine -p --property --on-active
|
||||
--on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property
|
||||
@@ -114,4 +126,4 @@ _systemd_run() {
|
||||
return 0
|
||||
}
|
||||
|
||||
-complete -F _systemd_run systemd-run
|
||||
+complete -o default -o bashdefault -F _systemd_run systemd-run
|
||||
Index: systemd-221/shell-completion/bash/timedatectl
|
||||
Index: systemd-228/shell-completion/bash/timedatectl
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/timedatectl
|
||||
+++ systemd-221/shell-completion/bash/timedatectl
|
||||
--- systemd-228.orig/shell-completion/bash/timedatectl
|
||||
+++ systemd-228/shell-completion/bash/timedatectl
|
||||
@@ -30,6 +30,10 @@ _timedatectl() {
|
||||
local OPTS='-h --help --version --adjust-system-clock --no-pager
|
||||
--no-ask-password -H --host --machine'
|
||||
@ -249,10 +249,10 @@ Index: systemd-221/shell-completion/bash/timedatectl
|
||||
|
||||
-complete -F _timedatectl timedatectl
|
||||
+complete -o default -o bashdefault -F _timedatectl timedatectl
|
||||
Index: systemd-221/shell-completion/bash/udevadm
|
||||
Index: systemd-228/shell-completion/bash/udevadm
|
||||
===================================================================
|
||||
--- systemd-221.orig/shell-completion/bash/udevadm
|
||||
+++ systemd-221/shell-completion/bash/udevadm
|
||||
--- systemd-228.orig/shell-completion/bash/udevadm
|
||||
+++ systemd-228/shell-completion/bash/udevadm
|
||||
@@ -36,6 +36,10 @@ _udevadm() {
|
||||
|
||||
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
||||
|
@ -1,99 +0,0 @@
|
||||
From 5cf46aa4339670afac386b1b0e630b739f3621c7 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Milasan <rmilasan@suse.com>
|
||||
Date: Thu, 12 Jul 2012 15:56:34 +0000
|
||||
Subject: [PATCH] Persistent by_path links for ata devices
|
||||
|
||||
With newer kernel we have the 'port_no' attribute,
|
||||
which allows us to construct a valid ata by-path link.
|
||||
|
||||
With this patch ATA links of the form
|
||||
|
||||
ata-<port>.[01]
|
||||
|
||||
(for master/slave devices) or
|
||||
|
||||
ata-<port>.<pmp>.0
|
||||
|
||||
(for devices behind port multipliers)
|
||||
are generated.
|
||||
|
||||
References: bnc#770910,FATE#317063
|
||||
|
||||
Signed-off-by: Robert Milasan <rmilasan@suse.com>
|
||||
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||
---
|
||||
src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 41 insertions(+), 12 deletions(-)
|
||||
|
||||
Index: systemd-221/src/udev/udev-builtin-path_id.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/udev/udev-builtin-path_id.c
|
||||
+++ systemd-221/src/udev/udev-builtin-path_id.c
|
||||
@@ -447,6 +447,46 @@ static struct udev_device *handle_scsi_h
|
||||
return parent;
|
||||
}
|
||||
|
||||
+static struct udev_device *handle_ata(struct udev_device *parent, char **path)
|
||||
+{
|
||||
+ struct udev *udev = udev_device_get_udev(parent);
|
||||
+ struct udev_device *hostdev, *portdev;
|
||||
+ int host, bus, target, lun, port_no;
|
||||
+ const char *name, *atahost, *port;
|
||||
+
|
||||
+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host");
|
||||
+ if (hostdev == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ name = udev_device_get_sysname(parent);
|
||||
+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4)
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* The ata port is the parent of the SCSI host */
|
||||
+ hostdev = udev_device_get_parent(hostdev);
|
||||
+ atahost = udev_device_get_sysname(hostdev);
|
||||
+ if (strncmp(atahost, "ata", 3))
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* ATA port number is found in 'port_no' attribute */
|
||||
+ portdev = udev_device_new_from_subsystem_sysname(udev, "ata_port",
|
||||
+ atahost);
|
||||
+ port = udev_device_get_sysattr_value(portdev, "port_no");
|
||||
+ if (!port || sscanf(port, "%d", &port_no) != 1) {
|
||||
+ hostdev = NULL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ if (bus != 0)
|
||||
+ /* Devices behind port multiplier have a bus != 0*/
|
||||
+ path_prepend(path, "ata-%u.%u.0", port_no, bus);
|
||||
+ else
|
||||
+ /* Master/slave are distinguished by target id */
|
||||
+ path_prepend(path, "ata-%u.%u", port_no, target);
|
||||
+out:
|
||||
+ udev_device_unref(portdev);
|
||||
+ return hostdev;
|
||||
+}
|
||||
+
|
||||
static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) {
|
||||
const char *devtype;
|
||||
const char *name;
|
||||
@@ -486,19 +526,8 @@ static struct udev_device *handle_scsi(s
|
||||
goto out;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * We do not support the ATA transport class, it uses global counters
|
||||
- * to name the ata devices which numbers spread across multiple
|
||||
- * controllers.
|
||||
- *
|
||||
- * The real link numbers are not exported. Also, possible chains of ports
|
||||
- * behind port multipliers cannot be composed that way.
|
||||
- *
|
||||
- * Until all that is solved at the kernel level, there are no by-path/
|
||||
- * links for ATA devices.
|
||||
- */
|
||||
if (strstr(name, "/ata") != NULL) {
|
||||
- parent = NULL;
|
||||
+ parent = handle_ata(parent, path);
|
||||
goto out;
|
||||
}
|
||||
|
@ -2,11 +2,11 @@
|
||||
src/udev/udevd.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: systemd-221/src/udev/udevd.c
|
||||
Index: systemd-227/src/udev/udevd.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/udev/udevd.c
|
||||
+++ systemd-221/src/udev/udevd.c
|
||||
@@ -569,7 +569,7 @@ static void event_run(Manager *manager,
|
||||
--- systemd-227.orig/src/udev/udevd.c
|
||||
+++ systemd-227/src/udev/udevd.c
|
||||
@@ -568,7 +568,7 @@ static void event_run(Manager *manager,
|
||||
|
||||
if (hashmap_size(manager->workers) >= arg_children_max) {
|
||||
if (arg_children_max > 1)
|
||||
@ -15,12 +15,12 @@ Index: systemd-221/src/udev/udevd.c
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1641,7 +1641,7 @@ int main(int argc, char *argv[]) {
|
||||
@@ -1672,7 +1672,7 @@ int main(int argc, char *argv[]) {
|
||||
arg_children_max = 8;
|
||||
|
||||
if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) {
|
||||
if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0)
|
||||
- arg_children_max += CPU_COUNT(&cpu_set) * 2;
|
||||
+ arg_children_max += CPU_COUNT(&cpu_set) * 64;
|
||||
}
|
||||
|
||||
log_debug("set children_max to %u", arg_children_max);
|
||||
}
|
||||
|
@ -2,10 +2,12 @@
|
||||
src/login/pam_systemd.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- src/login/pam_systemd.c
|
||||
+++ src/login/pam_systemd.c 2015-07-29 08:52:20.762018565 +0000
|
||||
@@ -507,7 +507,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
|
||||
Index: systemd-228/src/login/pam_systemd.c
|
||||
===================================================================
|
||||
--- systemd-228.orig/src/login/pam_systemd.c
|
||||
+++ systemd-228/src/login/pam_systemd.c
|
||||
@@ -515,7 +515,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess
|
||||
r = pam_set_data(handle, "systemd.session-fd", FD_TO_PTR(session_fd), NULL);
|
||||
if (r != PAM_SUCCESS) {
|
||||
pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
|
||||
- safe_close(session_fd);
|
||||
|
@ -1,28 +1,28 @@
|
||||
Nasty bug reported on bnc#867663
|
||||
Nasty bug reported on boo#867663
|
||||
|
||||
---
|
||||
src/basic/def.h | 2 +-
|
||||
src/core/manager.c | 3 ++-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: systemd-221/src/basic/def.h
|
||||
Index: systemd-228/src/basic/def.h
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/basic/def.h
|
||||
+++ systemd-221/src/basic/def.h
|
||||
@@ -37,7 +37,7 @@
|
||||
--- systemd-228.orig/src/basic/def.h
|
||||
+++ systemd-228/src/basic/def.h
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
#define SYSTEMD_CGROUP_CONTROLLER "systemd"
|
||||
#define SYSTEMD_CGROUP_CONTROLLER "name=systemd"
|
||||
|
||||
-#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
|
||||
+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS
|
||||
#define SIGNALS_IGNORE SIGPIPE
|
||||
|
||||
#define DIGITS "0123456789"
|
||||
Index: systemd-221/src/core/manager.c
|
||||
#define REBOOT_PARAM_FILE "/run/systemd/reboot-param"
|
||||
Index: systemd-228/src/core/manager.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/manager.c
|
||||
+++ systemd-221/src/core/manager.c
|
||||
@@ -1991,7 +1991,8 @@ static int manager_dispatch_jobs_in_prog
|
||||
--- systemd-228.orig/src/core/manager.c
|
||||
+++ systemd-228/src/core/manager.c
|
||||
@@ -2003,7 +2003,8 @@ static int manager_dispatch_jobs_in_prog
|
||||
assert(m);
|
||||
assert(source);
|
||||
|
||||
|
@ -9,20 +9,20 @@ Date: Fri Jun 19 21:36:27 CEST 2015
|
||||
src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 147 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: systemd-221/src/vconsole/vconsole-setup.c
|
||||
Index: systemd-228/src/vconsole/vconsole-setup.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/vconsole/vconsole-setup.c
|
||||
+++ systemd-221/src/vconsole/vconsole-setup.c
|
||||
@@ -35,6 +35,8 @@
|
||||
#include "log.h"
|
||||
#include "virt.h"
|
||||
--- systemd-228.orig/src/vconsole/vconsole-setup.c
|
||||
+++ systemd-228/src/vconsole/vconsole-setup.c
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "alloc-util.h"
|
||||
#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
+#include "macro.h"
|
||||
+#include "strv.h"
|
||||
#include "process-util.h"
|
||||
#include "terminal-util.h"
|
||||
#include "signal-util.h"
|
||||
@@ -99,8 +101,10 @@ static int enable_utf8(int fd) {
|
||||
#include "io-util.h"
|
||||
#include "locale-util.h"
|
||||
#include "log.h"
|
||||
@@ -104,8 +106,10 @@ static int enable_utf8(int fd) {
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c
|
||||
int i = 0, r;
|
||||
pid_t pid;
|
||||
|
||||
@@ -117,6 +121,8 @@ static int keyboard_load_and_wait(const
|
||||
@@ -122,6 +126,8 @@ static int keyboard_load_and_wait(const
|
||||
args[i++] = map;
|
||||
if (map_toggle)
|
||||
args[i++] = map_toggle;
|
||||
@ -44,7 +44,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c
|
||||
args[i++] = NULL;
|
||||
|
||||
pid = fork();
|
||||
@@ -246,11 +252,117 @@ static void font_copy_to_all_vcs(int fd)
|
||||
@@ -251,11 +257,117 @@ static void font_copy_to_all_vcs(int fd)
|
||||
}
|
||||
}
|
||||
|
||||
@ -162,7 +162,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c
|
||||
_cleanup_close_ int fd = -1;
|
||||
bool utf8, font_copy = false, font_ok, keyboard_ok;
|
||||
int r = EXIT_FAILURE;
|
||||
@@ -281,6 +393,31 @@ int main(int argc, char **argv) {
|
||||
@@ -286,6 +398,31 @@ int main(int argc, char **argv) {
|
||||
|
||||
utf8 = is_locale_utf8();
|
||||
|
||||
@ -194,7 +194,7 @@ Index: systemd-221/src/vconsole/vconsole-setup.c
|
||||
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
|
||||
"KEYMAP", &vc_keymap,
|
||||
"KEYMAP_TOGGLE", &vc_keymap_toggle,
|
||||
@@ -312,11 +449,17 @@ int main(int argc, char **argv) {
|
||||
@@ -317,11 +454,17 @@ int main(int argc, char **argv) {
|
||||
(void) disable_utf8(fd);
|
||||
|
||||
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
|
||||
|
@ -9,14 +9,16 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
---
|
||||
Makefile.am | 13 ++++++++++
|
||||
rules/73-seat-numlock.rules | 8 ++++++
|
||||
src/login/numlock-on.c | 34 +++++++++++++++++++++++++++
|
||||
src/vconsole/vconsole-setup.c | 40 ++++++++++++++++++++++++++++++--
|
||||
src/login/numlock-on.c | 34 ++++++++++++++++++++++++++
|
||||
src/vconsole/vconsole-setup.c | 41 ++++++++++++++++++++++++++++++--
|
||||
units/systemd-vconsole-setup.service.in | 2 -
|
||||
5 files changed, 94 insertions(+), 3 deletions(-)
|
||||
5 files changed, 95 insertions(+), 3 deletions(-)
|
||||
|
||||
--- systemd-222.orig/Makefile.am
|
||||
+++ systemd-222/Makefile.am
|
||||
@@ -3805,6 +3805,19 @@ dist_udevrules_DATA += \
|
||||
Index: systemd-228/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-228.orig/Makefile.am
|
||||
+++ systemd-228/Makefile.am
|
||||
@@ -3825,6 +3825,19 @@ dist_udevrules_DATA += \
|
||||
rules/60-persistent-v4l.rules
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@ -36,8 +38,10 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
mtd_probe_SOURCES = \
|
||||
src/udev/mtd_probe/mtd_probe.c \
|
||||
src/udev/mtd_probe/mtd_probe.h \
|
||||
Index: systemd-228/rules/73-seat-numlock.rules
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-222/rules/73-seat-numlock.rules
|
||||
+++ systemd-228/rules/73-seat-numlock.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
+# This file is part of SUSE customization of systemd.
|
||||
+#
|
||||
@ -47,8 +51,10 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
+# (at your option) any later version.
|
||||
+
|
||||
+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}"
|
||||
Index: systemd-228/src/login/numlock-on.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-222/src/login/numlock-on.c
|
||||
+++ systemd-228/src/login/numlock-on.c
|
||||
@@ -0,0 +1,34 @@
|
||||
+/*
|
||||
+ * numlock-on.c: Turn numlock-on
|
||||
@ -84,11 +90,21 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
+
|
||||
+ exit(0);
|
||||
+}
|
||||
--- systemd-222.orig/src/vconsole/vconsole-setup.c
|
||||
+++ systemd-222/src/vconsole/vconsole-setup.c
|
||||
@@ -41,6 +41,10 @@
|
||||
#include "terminal-util.h"
|
||||
#include "signal-util.h"
|
||||
Index: systemd-228/src/vconsole/vconsole-setup.c
|
||||
===================================================================
|
||||
--- systemd-228.orig/src/vconsole/vconsole-setup.c
|
||||
+++ systemd-228/src/vconsole/vconsole-setup.c
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "fileio.h"
|
||||
#include "macro.h"
|
||||
#include "strv.h"
|
||||
+#include "fs-util.h"
|
||||
#include "io-util.h"
|
||||
#include "locale-util.h"
|
||||
#include "log.h"
|
||||
@@ -46,6 +47,10 @@
|
||||
#include "util.h"
|
||||
#include "virt.h"
|
||||
|
||||
+#define BIOS_DATA_AREA 0x400
|
||||
+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97
|
||||
@ -97,7 +113,7 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
static bool is_vconsole(int fd) {
|
||||
unsigned char data[1];
|
||||
|
||||
@@ -359,9 +363,10 @@ int main(int argc, char **argv) {
|
||||
@@ -364,9 +369,10 @@ int main(int argc, char **argv) {
|
||||
#ifdef HAVE_SYSV_COMPAT
|
||||
_cleanup_free_ char
|
||||
*vc_kbd_delay = NULL, *vc_kbd_rate = NULL,
|
||||
@ -110,7 +126,7 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
bool comp_ok, rate_ok;
|
||||
_cleanup_close_ int fd = -1;
|
||||
bool utf8, font_copy = false, font_ok, keyboard_ok;
|
||||
@@ -399,6 +404,7 @@ int main(int argc, char **argv) {
|
||||
@@ -404,6 +410,7 @@ int main(int argc, char **argv) {
|
||||
"KBD_DELAY", &vc_kbd_delay,
|
||||
"KBD_RATE", &vc_kbd_rate,
|
||||
"KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock,
|
||||
@ -118,7 +134,7 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
"COMPOSETABLE", &vc_compose_table,
|
||||
NULL);
|
||||
if (r < 0 && r != -ENOENT)
|
||||
@@ -416,6 +422,32 @@ int main(int argc, char **argv) {
|
||||
@@ -421,6 +428,32 @@ int main(int argc, char **argv) {
|
||||
|
||||
disable_capslock = vc_kbd_disable_caps_lock &&
|
||||
strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
|
||||
@ -151,7 +167,7 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
#endif /* HAVE_SYSV_COMPAT */
|
||||
|
||||
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
|
||||
@@ -451,6 +483,10 @@ int main(int argc, char **argv) {
|
||||
@@ -456,6 +489,10 @@ int main(int argc, char **argv) {
|
||||
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
|
||||
keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
|
||||
utf8, disable_capslock) > 0;
|
||||
@ -162,8 +178,10 @@ Cristian Rodríguez <crrodriguez@opensuse.org>
|
||||
#ifdef HAVE_SYSV_COMPAT
|
||||
comp_ok = compose_load_and_wait(vc, vc_compose_table);
|
||||
rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay);
|
||||
--- systemd-222.orig/units/systemd-vconsole-setup.service.in
|
||||
+++ systemd-222/units/systemd-vconsole-setup.service.in
|
||||
Index: systemd-228/units/systemd-vconsole-setup.service.in
|
||||
===================================================================
|
||||
--- systemd-228.orig/units/systemd-vconsole-setup.service.in
|
||||
+++ systemd-228/units/systemd-vconsole-setup.service.in
|
||||
@@ -10,7 +10,7 @@ Description=Setup Virtual Console
|
||||
Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5)
|
||||
DefaultDependencies=no
|
||||
|
@ -2,16 +2,22 @@ From: Frederic Crozat <fcrozat@suse.com>
|
||||
Date: Tue, 4 Dec 2012 16:51:32 +0000
|
||||
Subject: handle root_uses_lang value in /etc/sysconfig/language
|
||||
|
||||
handle ROOT_USES_LANG=ctype (bnc#792182).
|
||||
handle ROOT_USES_LANG=ctype (boo#792182).
|
||||
---
|
||||
src/core/locale-setup.c | 26 ++++++++++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
src/core/locale-setup.c | 40 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 40 insertions(+)
|
||||
|
||||
Index: systemd-221/src/core/locale-setup.c
|
||||
Index: systemd-228/src/core/locale-setup.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/locale-setup.c
|
||||
+++ systemd-221/src/core/locale-setup.c
|
||||
@@ -34,6 +34,10 @@ int locale_setup(char ***environment) {
|
||||
--- systemd-228.orig/src/core/locale-setup.c
|
||||
+++ systemd-228/src/core/locale-setup.c
|
||||
@@ -30,11 +30,16 @@
|
||||
#include "strv.h"
|
||||
#include "util.h"
|
||||
#include "virt.h"
|
||||
+#include "alloc-util.h"
|
||||
|
||||
int locale_setup(char ***environment) {
|
||||
char **add;
|
||||
char *variables[_VARIABLE_LC_MAX] = {};
|
||||
int r = 0, i;
|
||||
@ -20,9 +26,9 @@ Index: systemd-221/src/core/locale-setup.c
|
||||
+ char _cleanup_free_ *root_uses_lang = NULL;
|
||||
+#endif
|
||||
|
||||
if (detect_container(NULL) <= 0) {
|
||||
if (detect_container() <= 0) {
|
||||
r = parse_env_file("/proc/cmdline", WHITESPACE,
|
||||
@@ -80,6 +85,41 @@ int locale_setup(char ***environment) {
|
||||
@@ -81,6 +86,41 @@ int locale_setup(char ***environment) {
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning_errno(r, "Failed to read /etc/locale.conf: %m");
|
||||
}
|
||||
|
@ -8,16 +8,16 @@ systemd unit drop-in files to add dependencies
|
||||
---
|
||||
Makefile.am | 9
|
||||
src/insserv-generator/Makefile | 28 ++
|
||||
src/insserv-generator/insserv-generator.c | 316 ++++++++++++++++++++++++++++++
|
||||
3 files changed, 352 insertions(+), 1 deletion(-)
|
||||
src/insserv-generator/insserv-generator.c | 319 ++++++++++++++++++++++++++++++
|
||||
3 files changed, 355 insertions(+), 1 deletion(-)
|
||||
create mode 100644 src/insserv-generator/Makefile
|
||||
create mode 100644 src/insserv-generator/insserv-generator.c
|
||||
|
||||
Index: systemd-224/Makefile.am
|
||||
Index: systemd-228/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-224.orig/Makefile.am
|
||||
+++ systemd-224/Makefile.am
|
||||
@@ -617,7 +617,8 @@ nodist_systemunit_DATA += \
|
||||
--- systemd-228.orig/Makefile.am
|
||||
+++ systemd-228/Makefile.am
|
||||
@@ -626,7 +626,8 @@ nodist_systemunit_DATA += \
|
||||
|
||||
systemgenerator_PROGRAMS += \
|
||||
systemd-sysv-generator \
|
||||
@ -27,7 +27,7 @@ Index: systemd-224/Makefile.am
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
@@ -2556,6 +2557,12 @@ $(systemd_boot): $(systemd_boot_solib)
|
||||
@@ -2682,6 +2683,12 @@ $(systemd_boot): $(systemd_boot_solib)
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -40,10 +40,10 @@ Index: systemd-224/Makefile.am
|
||||
# ------------------------------------------------------------------------------
|
||||
stub_headers = \
|
||||
src/boot/efi/util.h \
|
||||
Index: systemd-224/src/insserv-generator/Makefile
|
||||
Index: systemd-228/src/insserv-generator/Makefile
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-224/src/insserv-generator/Makefile
|
||||
+++ systemd-228/src/insserv-generator/Makefile
|
||||
@@ -0,0 +1,28 @@
|
||||
+# This file is part of systemd.
|
||||
+#
|
||||
@ -73,11 +73,11 @@ Index: systemd-224/src/insserv-generator/Makefile
|
||||
+ $(MAKE) -C .. clean
|
||||
+
|
||||
+.PHONY: all clean
|
||||
Index: systemd-224/src/insserv-generator/insserv-generator.c
|
||||
Index: systemd-228/src/insserv-generator/insserv-generator.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ systemd-224/src/insserv-generator/insserv-generator.c
|
||||
@@ -0,0 +1,316 @@
|
||||
+++ systemd-228/src/insserv-generator/insserv-generator.c
|
||||
@@ -0,0 +1,319 @@
|
||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||
+
|
||||
+/***
|
||||
@ -112,6 +112,9 @@ Index: systemd-224/src/insserv-generator/insserv-generator.c
|
||||
+#include "path-util.h"
|
||||
+#include "util.h"
|
||||
+#include "strv.h"
|
||||
+#include "alloc-util.h"
|
||||
+#include "string-util.h"
|
||||
+#include "fd-util.h"
|
||||
+
|
||||
+static const char *arg_dest = "/tmp";
|
||||
+
|
||||
|
@ -1,4 +1,4 @@
|
||||
# -*- Mode: makefile; indent-tabs-mode: t -*- */
|
||||
# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */
|
||||
#
|
||||
# This file is part of systemd.
|
||||
#
|
||||
@ -39,7 +39,7 @@ Requires(postun): systemd \
|
||||
%systemd_post() \
|
||||
if [ $1 -eq 1 ] ; then \
|
||||
# Initial installation \
|
||||
systemctl preset %{?*} >/dev/null 2>&1 || : \
|
||||
systemctl --no-reload preset %{?*} >/dev/null 2>&1 || : \
|
||||
fi \
|
||||
%{nil}
|
||||
|
||||
@ -48,8 +48,7 @@ fi \
|
||||
%systemd_preun() \
|
||||
if [ $1 -eq 0 ] ; then \
|
||||
# Package removal, not upgrade \
|
||||
systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \
|
||||
systemctl stop %{?*} > /dev/null 2>&1 || : \
|
||||
systemctl --no-reload disable --now %{?*} > /dev/null 2>&1 || : \
|
||||
fi \
|
||||
%{nil}
|
||||
|
||||
@ -60,14 +59,11 @@ if [ $1 -eq 0 ] ; then \
|
||||
fi \
|
||||
%{nil}
|
||||
|
||||
%systemd_postun() \
|
||||
systemctl daemon-reload >/dev/null 2>&1 || : \
|
||||
%{nil}
|
||||
%systemd_postun() %{nil}
|
||||
|
||||
%systemd_user_postun() %{nil}
|
||||
|
||||
%systemd_postun_with_restart() \
|
||||
systemctl daemon-reload >/dev/null 2>&1 || : \
|
||||
if [ $1 -ge 1 ] ; then \
|
||||
# Package upgrade, not uninstall \
|
||||
systemctl try-restart %{?*} >/dev/null 2>&1 || : \
|
||||
|
@ -1,18 +0,0 @@
|
||||
From: Robert Schweikert <rjschwei@suse.com>
|
||||
Date: Fri, 12 Apr 2013 12:08:16 -0400
|
||||
Subject: rules: add lid switch of ARM based Chromebook as a power switch to
|
||||
logind
|
||||
|
||||
---
|
||||
src/login/70-power-switch.rules | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/login/70-power-switch.rules
|
||||
+++ b/src/login/70-power-switch.rules
|
||||
@@ -11,5 +11,6 @@ SUBSYSTEM=="input", KERNEL=="event*", SU
|
||||
SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch"
|
||||
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="twl4030_pwrbutton", TAG+="power-switch"
|
||||
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="tps65217_pwr_but", TAG+="power-switch"
|
||||
+SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch"
|
||||
|
||||
LABEL="power_switch_end"
|
@ -3,29 +3,29 @@ Use and set default logging console for both journald and kernel messages
|
||||
---
|
||||
src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++
|
||||
src/journal/journald-console.h | 3 +
|
||||
src/journal/journald-server.c | 6 ++
|
||||
3 files changed, 109 insertions(+)
|
||||
src/journal/journald-server.c | 5 ++
|
||||
3 files changed, 108 insertions(+)
|
||||
|
||||
Index: systemd-221/src/journal/journald-console.c
|
||||
Index: systemd-228/src/journal/journald-console.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/journal/journald-console.c
|
||||
+++ systemd-221/src/journal/journald-console.c
|
||||
--- systemd-228.orig/src/journal/journald-console.c
|
||||
+++ systemd-228/src/journal/journald-console.c
|
||||
@@ -22,6 +22,14 @@
|
||||
#include <time.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <time.h>
|
||||
+#ifdef HAVE_SYSV_COMPAT
|
||||
+# include <linux/tiocl.h>
|
||||
+# include <linux/vt.h>
|
||||
+# include <sys/ioctl.h>
|
||||
+# include <sys/klog.h>
|
||||
+# include <errno.h>
|
||||
+# include "util.h"
|
||||
+# include <linux/tiocl.h>
|
||||
+# include <linux/vt.h>
|
||||
+# include <sys/ioctl.h>
|
||||
+# include <sys/klog.h>
|
||||
+# include <errno.h>
|
||||
+# include "string-util.h"
|
||||
+#endif
|
||||
|
||||
#include "fileio.h"
|
||||
#include "journald-server.h"
|
||||
@@ -45,6 +53,76 @@ static bool prefix_timestamp(void) {
|
||||
#include "alloc-util.h"
|
||||
#include "fd-util.h"
|
||||
@@ -50,6 +58,76 @@ static bool prefix_timestamp(void) {
|
||||
return cached_printk_time;
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ Index: systemd-221/src/journal/journald-console.c
|
||||
void server_forward_console(
|
||||
Server *s,
|
||||
int priority,
|
||||
@@ -66,6 +144,12 @@ void server_forward_console(
|
||||
@@ -71,6 +149,12 @@ void server_forward_console(
|
||||
if (LOG_PRI(priority) > s->max_level_console)
|
||||
return;
|
||||
|
||||
@ -115,10 +115,10 @@ Index: systemd-221/src/journal/journald-console.c
|
||||
/* First: timestamp */
|
||||
if (prefix_timestamp()) {
|
||||
assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0);
|
||||
@@ -102,7 +186,23 @@ void server_forward_console(
|
||||
@@ -107,7 +191,23 @@ void server_forward_console(
|
||||
fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
|
||||
if (fd < 0) {
|
||||
log_debug_errno(errno, "Failed to open %s for logging: %m", tty);
|
||||
log_debug_errno(fd, "Failed to open %s for logging: %m", tty);
|
||||
+#ifdef HAVE_SYSV_COMPAT
|
||||
+ if (fd != -ENOENT && fd != -ENODEV)
|
||||
+ return;
|
||||
@ -139,10 +139,10 @@ Index: systemd-221/src/journal/journald-console.c
|
||||
}
|
||||
|
||||
if (writev(fd, iovec, n) < 0)
|
||||
Index: systemd-221/src/journal/journald-console.h
|
||||
Index: systemd-228/src/journal/journald-console.h
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/journal/journald-console.h
|
||||
+++ systemd-221/src/journal/journald-console.h
|
||||
--- systemd-228.orig/src/journal/journald-console.h
|
||||
+++ systemd-228/src/journal/journald-console.h
|
||||
@@ -24,3 +24,6 @@
|
||||
#include "journald-server.h"
|
||||
|
||||
@ -150,19 +150,19 @@ Index: systemd-221/src/journal/journald-console.h
|
||||
+
|
||||
+void klogconsole(Server *s);
|
||||
+void default_tty_path(Server *s);
|
||||
Index: systemd-221/src/journal/journald-server.c
|
||||
Index: systemd-228/src/journal/journald-server.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/journal/journald-server.c
|
||||
+++ systemd-221/src/journal/journald-server.c
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "journal-internal.h"
|
||||
#include "journal-vacuum.h"
|
||||
#include "journal-authenticate.h"
|
||||
--- systemd-228.orig/src/journal/journald-server.c
|
||||
+++ systemd-228/src/journal/journald-server.c
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "journald-audit.h"
|
||||
#include "journald-kmsg.h"
|
||||
#include "journald-native.h"
|
||||
+#include "journald-console.h"
|
||||
#include "journald-rate-limit.h"
|
||||
#include "journald-kmsg.h"
|
||||
#include "journald-syslog.h"
|
||||
@@ -1514,6 +1515,11 @@ int server_init(Server *s) {
|
||||
#include "journald-server.h"
|
||||
#include "journald-stream.h"
|
||||
@@ -1751,6 +1752,10 @@ int server_init(Server *s) {
|
||||
|
||||
server_parse_config_file(s);
|
||||
server_parse_proc_cmdline(s);
|
||||
@ -170,7 +170,6 @@ Index: systemd-221/src/journal/journald-server.c
|
||||
+
|
||||
+ if (s->tty_path)
|
||||
+ klogconsole(s);
|
||||
+
|
||||
|
||||
if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) {
|
||||
log_debug("Setting both rate limit interval and burst from "USEC_FMT",%u to 0,0",
|
||||
s->rate_limit_interval, s->rate_limit_burst);
|
||||
|
@ -7,12 +7,14 @@ This reverts commit 3cdebc217c42c8529086f2965319b6a48eaaeabe.
|
||||
[Implementation note: currently, the unit is generated, but not
|
||||
activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
---
|
||||
src/sysv-generator/sysv-generator.c | 21 +++++++++++++++------
|
||||
1 file changed, 15 insertions(+), 6 deletions(-)
|
||||
src/sysv-generator/sysv-generator.c | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
--- systemd-222.orig/src/sysv-generator/sysv-generator.c
|
||||
+++ systemd-222/src/sysv-generator/sysv-generator.c
|
||||
@@ -39,7 +39,8 @@
|
||||
Index: systemd-228/src/sysv-generator/sysv-generator.c
|
||||
===================================================================
|
||||
--- systemd-228.orig/src/sysv-generator/sysv-generator.c
|
||||
+++ systemd-228/src/sysv-generator/sysv-generator.c
|
||||
@@ -46,7 +46,8 @@
|
||||
|
||||
typedef enum RunlevelType {
|
||||
RUNLEVEL_UP,
|
||||
@ -22,7 +24,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
} RunlevelType;
|
||||
|
||||
static const struct {
|
||||
@@ -47,6 +48,9 @@ static const struct {
|
||||
@@ -54,6 +55,9 @@ static const struct {
|
||||
const char *target;
|
||||
const RunlevelType type;
|
||||
} rcnd_table[] = {
|
||||
@ -32,7 +34,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
/* Standard SysV runlevels for start-up */
|
||||
{ "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP },
|
||||
{ "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP },
|
||||
@@ -62,10 +66,10 @@ static const struct {
|
||||
@@ -69,10 +73,10 @@ static const struct {
|
||||
directories in this order, and we want to make sure that
|
||||
sysv_start_priority is known when we first load the
|
||||
unit. And that value we only know from S links. Hence
|
||||
@ -45,7 +47,7 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
|
||||
typedef struct SysvStub {
|
||||
char *name;
|
||||
@@ -243,6 +247,10 @@ static char *sysv_translate_name(const c
|
||||
@@ -261,6 +265,10 @@ static char *sysv_translate_name(const c
|
||||
_cleanup_free_ char *c = NULL;
|
||||
char *res;
|
||||
|
||||
@ -56,21 +58,18 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
c = strdup(name);
|
||||
if (!c)
|
||||
return NULL;
|
||||
@@ -859,10 +867,10 @@ static int set_dependencies_from_rcnd(co
|
||||
@@ -882,7 +890,8 @@ static int set_dependencies_from_rcnd(co
|
||||
|
||||
if (de->d_name[0] == 'S') {
|
||||
|
||||
- if (rcnd_table[i].type == RUNLEVEL_UP) {
|
||||
- if (rcnd_table[i].type == RUNLEVEL_UP)
|
||||
+ if (rcnd_table[i].type == RUNLEVEL_UP ||
|
||||
+ rcnd_table[i].type == RUNLEVEL_SYSINIT)
|
||||
service->sysv_start_priority =
|
||||
MAX(a*10 + b, service->sysv_start_priority);
|
||||
- }
|
||||
service->sysv_start_priority = MAX(a*10 + b, service->sysv_start_priority);
|
||||
|
||||
r = set_ensure_allocated(&runlevel_services[i], NULL);
|
||||
if (r < 0)
|
||||
@@ -873,7 +881,8 @@ static int set_dependencies_from_rcnd(co
|
||||
goto finish;
|
||||
@@ -898,7 +907,8 @@ static int set_dependencies_from_rcnd(co
|
||||
}
|
||||
|
||||
} else if (de->d_name[0] == 'K' &&
|
||||
- (rcnd_table[i].type == RUNLEVEL_DOWN)) {
|
||||
@ -78,4 +77,4 @@ activated even if symlinks exist in boot.d. Hmmm... -jengelh@inai.de]
|
||||
+ rcnd_table[i].type == RUNLEVEL_SYSINIT)) {
|
||||
|
||||
r = set_ensure_allocated(&shutdown_services, NULL);
|
||||
if (r < 0)
|
||||
if (r < 0) {
|
||||
|
@ -1,35 +1,35 @@
|
||||
---
|
||||
man/tmpfiles.d.xml | 3 +++
|
||||
src/tmpfiles/tmpfiles.c | 47 ++++++++++++++++++++++++++++++++++++++++-------
|
||||
2 files changed, 43 insertions(+), 7 deletions(-)
|
||||
src/tmpfiles/tmpfiles.c | 46 ++++++++++++++++++++++++++++++++++++++++------
|
||||
2 files changed, 43 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: systemd-221/man/tmpfiles.d.xml
|
||||
Index: systemd-228/man/tmpfiles.d.xml
|
||||
===================================================================
|
||||
--- systemd-221.orig/man/tmpfiles.d.xml
|
||||
+++ systemd-221/man/tmpfiles.d.xml
|
||||
@@ -528,6 +528,9 @@
|
||||
--- systemd-228.orig/man/tmpfiles.d.xml
|
||||
+++ systemd-228/man/tmpfiles.d.xml
|
||||
@@ -599,6 +599,9 @@
|
||||
<varname>f</varname>, <varname>F</varname>, and
|
||||
<varname>w</varname> may be used to specify a short string that
|
||||
<varname>w</varname>, the argument may be used to specify a short string that
|
||||
is written to the file, suffixed by a newline. For
|
||||
+ <varname>x</varname>, <varname>X</varname>, a comma separated list of
|
||||
+ usernames. If given, only paths belonging to these users will be excluded
|
||||
+ during directory cleanup. Ignored for all other lines. For
|
||||
<varname>C</varname>, specifies the source file or
|
||||
directory. For <varname>t</varname>, <varname>T</varname>
|
||||
directory. For <varname>t</varname> and <varname>T</varname>,
|
||||
determines extended attributes to be set. For
|
||||
Index: systemd-221/src/tmpfiles/tmpfiles.c
|
||||
Index: systemd-228/src/tmpfiles/tmpfiles.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/tmpfiles/tmpfiles.c
|
||||
+++ systemd-221/src/tmpfiles/tmpfiles.c
|
||||
--- systemd-228.orig/src/tmpfiles/tmpfiles.c
|
||||
+++ systemd-228/src/tmpfiles/tmpfiles.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/xattr.h>
|
||||
#include <linux/fs.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
+#include <pwd.h>
|
||||
|
||||
#include "log.h"
|
||||
#include "util.h"
|
||||
@@ -358,6 +359,7 @@ static int dir_cleanup(
|
||||
#include "acl-util.h"
|
||||
#include "alloc-util.h"
|
||||
@@ -378,6 +379,7 @@ static int dir_cleanup(
|
||||
struct timespec times[2];
|
||||
bool deleted = false;
|
||||
int r = 0;
|
||||
@ -37,7 +37,7 @@ Index: systemd-221/src/tmpfiles/tmpfiles.c
|
||||
|
||||
while ((dent = readdir(d))) {
|
||||
struct stat s;
|
||||
@@ -408,14 +410,45 @@ static int dir_cleanup(
|
||||
@@ -428,14 +430,46 @@ static int dir_cleanup(
|
||||
}
|
||||
|
||||
/* Is there an item configured for this path? */
|
||||
@ -50,7 +50,7 @@ Index: systemd-221/src/tmpfiles/tmpfiles.c
|
||||
+ found_glob = true;
|
||||
+ found = find_glob(globs, sub_path);
|
||||
}
|
||||
-
|
||||
|
||||
- if (find_glob(globs, sub_path)) {
|
||||
- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
|
||||
- continue;
|
||||
|
@ -1,3 +1,41 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de
|
||||
|
||||
- Update to new upstream release 228
|
||||
* The various memory-related resource limit settings (such as
|
||||
LimitAS=) now understand the usual K, M, G, ... suffixes to
|
||||
the base of 1024 (IEC). Similar, the time-related settings
|
||||
understand the usual min, h, day, ... suffixes now.
|
||||
* CPUAffinity= now takes CPU index ranges in addition to just
|
||||
individual indexes.
|
||||
* A number of properties previously only settable in unit
|
||||
files are now also available as properties to set when
|
||||
creating transient units programmatically via the bus.
|
||||
- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch
|
||||
(merged upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru
|
||||
|
||||
- Update to 227.
|
||||
- Rebase systemd-pam_config.patch,
|
||||
handle-root_uses_lang-value-in-etc-sysconfig-language.patch,
|
||||
0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch,
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch,
|
||||
0014-journald-with-journaling-FS.patch,
|
||||
0019-make-completion-smart-to-be-able-to-redirect.patch,
|
||||
avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch,
|
||||
set-and-use-default-logconsole.patch,
|
||||
tty-ask-password-agent-on-console.patch,
|
||||
0001-bnc888612-logind-polkit-acpi.patch,
|
||||
watch_resolv.conf_for_become_changed.patch,
|
||||
1097-udevd-increase-maximum-number-of-children.patch.
|
||||
- Remove
|
||||
0002-units-enable-waiting-for-unit-termination-in-certain.patch,
|
||||
1001-re-enable-by_path-links-for-ata-devices.patch,
|
||||
rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch:
|
||||
fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
Name: systemd-mini
|
||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||
Version: 224
|
||||
Version: 228
|
||||
Release: 0
|
||||
Summary: A System and Session Manager
|
||||
License: LGPL-2.1+
|
||||
@ -112,7 +112,7 @@ BuildRequires: pam-config >= 0.79-5
|
||||
Requires: pwdutils
|
||||
Requires: systemd-presets-branding
|
||||
Requires: sysvinit-tools
|
||||
Requires: util-linux >= 2.26
|
||||
Requires: util-linux >= 2.27
|
||||
Requires(post): coreutils
|
||||
Requires(post): findutils
|
||||
Requires(post): pam-config >= 0.79-5
|
||||
@ -176,16 +176,10 @@ Patch42: systemd-pam_config.patch
|
||||
# Never add any patches to this package without the upstream commit id
|
||||
# in the patch. Any patches added here without a very good reason to make
|
||||
# an exception will be silently removed with the next version update.
|
||||
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
# PATCH-FIX-UPSTREAM (boo#949574)
|
||||
Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch
|
||||
# PATCH-FIX-UPSTREAM (bsc#932284)
|
||||
Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch
|
||||
# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty
|
||||
@ -260,8 +254,6 @@ Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch
|
||||
# as it's not changing the code of udev and libudev, then is not a udev
|
||||
# patch. Further patches which add and/or changes udev rules.
|
||||
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch
|
||||
Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch
|
||||
# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch
|
||||
@ -557,8 +549,6 @@ cp %{SOURCE7} m4/
|
||||
%patch42 -p1
|
||||
%patch84 -p1
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
%patch120 -p1
|
||||
@ -587,17 +577,13 @@ cp %{SOURCE7} m4/
|
||||
%patch386 -p1
|
||||
%patch430 -p1
|
||||
%patch475 -p1
|
||||
%ifarch %arm
|
||||
%patch38 -p1
|
||||
%endif
|
||||
%patch490 -p1
|
||||
%patch520 -p1
|
||||
%patch521 -p1
|
||||
%patch522 -p0
|
||||
%patch522 -p1
|
||||
%patch523 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
%patch1005 -p1
|
||||
@ -726,7 +712,7 @@ make %{?_smp_mflags} update-man-list man
|
||||
%endif
|
||||
|
||||
%install
|
||||
make install DESTDIR="%buildroot"
|
||||
%make_install
|
||||
install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/"
|
||||
|
||||
# move to %{_lib}
|
||||
|
@ -1,16 +1,32 @@
|
||||
---
|
||||
src/login/systemd-user | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: systemd-221/src/login/systemd-user
|
||||
Index: systemd-227/factory/etc/pam.d/other
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/login/systemd-user
|
||||
+++ systemd-221/src/login/systemd-user
|
||||
@@ -2,5 +2,5 @@
|
||||
--- systemd-227.orig/factory/etc/pam.d/other
|
||||
+++ systemd-227/factory/etc/pam.d/other
|
||||
@@ -1,6 +1,6 @@
|
||||
# This file is part of systemd.
|
||||
|
||||
-auth include system-auth
|
||||
-account include system-auth
|
||||
-password include system-auth
|
||||
-session include system-auth
|
||||
+auth include common-auth
|
||||
+account include common-account
|
||||
+password include common-password
|
||||
+session include common-session
|
||||
Index: systemd-227/src/login/systemd-user.m4
|
||||
===================================================================
|
||||
--- systemd-227.orig/src/login/systemd-user.m4
|
||||
+++ systemd-227/src/login/systemd-user.m4
|
||||
@@ -2,10 +2,10 @@
|
||||
#
|
||||
# Used by systemd --user instances.
|
||||
|
||||
-account include system-auth
|
||||
-session include system-auth
|
||||
+account include common-account
|
||||
|
||||
m4_ifdef(`HAVE_SELINUX',
|
||||
session required pam_selinux.so close
|
||||
session required pam_selinux.so nottys open
|
||||
)m4_dnl
|
||||
-session include system-auth
|
||||
+session include common-session
|
||||
|
@ -8,19 +8,19 @@ SUSE policy is to not clean /tmp by default.
|
||||
tmpfiles.d/tmp.conf | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: systemd-221/tmpfiles.d/tmp.conf
|
||||
Index: systemd-228/tmpfiles.d/tmp.conf
|
||||
===================================================================
|
||||
--- systemd-221.orig/tmpfiles.d/tmp.conf
|
||||
+++ systemd-221/tmpfiles.d/tmp.conf
|
||||
--- systemd-228.orig/tmpfiles.d/tmp.conf
|
||||
+++ systemd-228/tmpfiles.d/tmp.conf
|
||||
@@ -8,8 +8,9 @@
|
||||
# See tmpfiles.d(5) for details
|
||||
|
||||
# Clear tmp directories separately, to make them easier to override
|
||||
-v /tmp 1777 root root 10d
|
||||
-v /var/tmp 1777 root root 30d
|
||||
+# SUSE policy: we don't clean those directories
|
||||
+v /tmp 1777 root root -
|
||||
+v /var/tmp 1777 root root -
|
||||
-q /tmp 1777 root root 10d
|
||||
-q /var/tmp 1777 root root 30d
|
||||
+# SUSE policy: we do not clean these directories
|
||||
+q /tmp 1777 root root -
|
||||
+q /var/tmp 1777 root root -
|
||||
|
||||
# Exclude namespace mountpoints created with PrivateTmp=yes
|
||||
x /tmp/systemd-private-%b-*
|
||||
|
@ -1,3 +1,41 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 18 14:17:05 UTC 2015 - jengelh@inai.de
|
||||
|
||||
- Update to new upstream release 228
|
||||
* The various memory-related resource limit settings (such as
|
||||
LimitAS=) now understand the usual K, M, G, ... suffixes to
|
||||
the base of 1024 (IEC). Similar, the time-related settings
|
||||
understand the usual min, h, day, ... suffixes now.
|
||||
* CPUAffinity= now takes CPU index ranges in addition to just
|
||||
individual indexes.
|
||||
* A number of properties previously only settable in unit
|
||||
files are now also available as properties to set when
|
||||
creating transient units programmatically via the bus.
|
||||
- Remove 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch
|
||||
(merged upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 13 00:00:12 UTC 2015 - sor.alexei@meowr.ru
|
||||
|
||||
- Update to 227.
|
||||
- Rebase systemd-pam_config.patch,
|
||||
handle-root_uses_lang-value-in-etc-sysconfig-language.patch,
|
||||
0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch,
|
||||
0001-On_s390_con3270_disable_ANSI_colour_esc.patch,
|
||||
0014-journald-with-journaling-FS.patch,
|
||||
0019-make-completion-smart-to-be-able-to-redirect.patch,
|
||||
avoid-divide-by-zero-sigtrap.patch, systemd-add-user-keep.patch,
|
||||
set-and-use-default-logconsole.patch,
|
||||
tty-ask-password-agent-on-console.patch,
|
||||
0001-bnc888612-logind-polkit-acpi.patch,
|
||||
watch_resolv.conf_for_become_changed.patch,
|
||||
1097-udevd-increase-maximum-number-of-children.patch.
|
||||
- Remove
|
||||
0002-units-enable-waiting-for-unit-termination-in-certain.patch,
|
||||
1001-re-enable-by_path-links-for-ata-devices.patch,
|
||||
rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch:
|
||||
fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 12 09:56:36 UTC 2015 - werner@suse.de
|
||||
|
||||
|
22
systemd.spec
22
systemd.spec
@ -40,7 +40,7 @@
|
||||
|
||||
Name: systemd
|
||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||
Version: 224
|
||||
Version: 228
|
||||
Release: 0
|
||||
Summary: A System and Session Manager
|
||||
License: LGPL-2.1+
|
||||
@ -107,7 +107,7 @@ BuildRequires: pam-config >= 0.79-5
|
||||
Requires: pwdutils
|
||||
Requires: systemd-presets-branding
|
||||
Requires: sysvinit-tools
|
||||
Requires: util-linux >= 2.26
|
||||
Requires: util-linux >= 2.27
|
||||
Requires(post): coreutils
|
||||
Requires(post): findutils
|
||||
Requires(post): pam-config >= 0.79-5
|
||||
@ -171,16 +171,10 @@ Patch42: systemd-pam_config.patch
|
||||
# Never add any patches to this package without the upstream commit id
|
||||
# in the patch. Any patches added here without a very good reason to make
|
||||
# an exception will be silently removed with the next version update.
|
||||
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||
# PATCH-FIX-UPSTREAM (boo#949574)
|
||||
Patch87: 0001-Make-sure-the-mount-units-pulled-by-RequiresMountsFo.patch
|
||||
# PATCH-FIX-UPSTREAM (bsc#932284)
|
||||
Patch88: 0002-units-enable-waiting-for-unit-termination-in-certain.patch
|
||||
# PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
|
||||
# PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty
|
||||
@ -255,8 +249,6 @@ Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch
|
||||
# as it's not changing the code of udev and libudev, then is not a udev
|
||||
# patch. Further patches which add and/or changes udev rules.
|
||||
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
# PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch
|
||||
Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch
|
||||
# PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch
|
||||
@ -552,8 +544,6 @@ cp %{SOURCE7} m4/
|
||||
%patch42 -p1
|
||||
%patch84 -p1
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
%patch120 -p1
|
||||
@ -582,17 +572,13 @@ cp %{SOURCE7} m4/
|
||||
%patch386 -p1
|
||||
%patch430 -p1
|
||||
%patch475 -p1
|
||||
%ifarch %arm
|
||||
%patch38 -p1
|
||||
%endif
|
||||
%patch490 -p1
|
||||
%patch520 -p1
|
||||
%patch521 -p1
|
||||
%patch522 -p0
|
||||
%patch522 -p1
|
||||
%patch523 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
%patch1005 -p1
|
||||
@ -721,7 +707,7 @@ make %{?_smp_mflags} update-man-list man
|
||||
%endif
|
||||
|
||||
%install
|
||||
make install DESTDIR="%buildroot"
|
||||
%make_install
|
||||
install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/"
|
||||
|
||||
# move to %{_lib}
|
||||
|
@ -26,13 +26,13 @@ Spwan for each device of the system console /dev/console a own process.
|
||||
|
||||
Replace the system call wait() with with system call waitid().
|
||||
---
|
||||
src/tty-ask-password-agent.c | 264 ++++++++++++++++++++-
|
||||
1 file changed, 255 insertions(+), 9 deletions(-)
|
||||
src/tty-ask-password-agent/tty-ask-password-agent.c | 264 +++++++++++++++++++-
|
||||
1 file changed, 254 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
index 4630eb9..df4bada 100644
|
||||
--- a/src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
+++ b/src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
Index: systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
===================================================================
|
||||
--- systemd-228.orig/src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
+++ systemd-228/src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||
@@ -4,6 +4,7 @@
|
||||
This file is part of systemd.
|
||||
|
||||
@ -41,26 +41,26 @@ index 4630eb9..df4bada 100644
|
||||
|
||||
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
|
||||
@@ -31,6 +32,9 @@
|
||||
#include <getopt.h>
|
||||
#include <sys/signalfd.h>
|
||||
@@ -21,6 +22,9 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
+#include <sys/prctl.h>
|
||||
+#include <signal.h>
|
||||
+#include <sys/wait.h>
|
||||
|
||||
#include "util.h"
|
||||
#include "mkdir.h"
|
||||
@@ -45,6 +49,8 @@
|
||||
#include "process-util.h"
|
||||
#include <getopt.h>
|
||||
#include <poll.h>
|
||||
#include <stdbool.h>
|
||||
@@ -49,6 +53,8 @@
|
||||
#include "terminal-util.h"
|
||||
#include "signal-util.h"
|
||||
#include "util.h"
|
||||
#include "utmp-wtmp.h"
|
||||
+#include "fileio.h"
|
||||
+#include "macro.h"
|
||||
|
||||
static enum {
|
||||
ACTION_LIST,
|
||||
@@ -53,8 +59,21 @@ static enum {
|
||||
@@ -57,8 +63,21 @@ static enum {
|
||||
ACTION_WALL
|
||||
} arg_action = ACTION_QUERY;
|
||||
|
||||
@ -82,8 +82,8 @@ index 4630eb9..df4bada 100644
|
||||
|
||||
static int ask_password_plymouth(
|
||||
const char *message,
|
||||
@@ -211,6 +230,80 @@ static int ask_password_plymouth(
|
||||
return 0;
|
||||
@@ -240,6 +259,80 @@ finish:
|
||||
return r;
|
||||
}
|
||||
|
||||
+static void free_consoles(struct console *con, unsigned int num) {
|
||||
@ -162,17 +162,17 @@ index 4630eb9..df4bada 100644
|
||||
+
|
||||
static int parse_password(const char *filename, char **wall) {
|
||||
_cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL;
|
||||
uint64_t not_after = 0;
|
||||
@@ -311,7 +404,7 @@ static int parse_password(const char *fi
|
||||
_cleanup_free_ char *password = NULL;
|
||||
bool accept_cached = false, echo = false;
|
||||
@@ -340,7 +433,7 @@ static int parse_password(const char *fi
|
||||
int tty_fd = -1;
|
||||
|
||||
if (arg_console) {
|
||||
- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY);
|
||||
+ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY);
|
||||
if (tty_fd < 0)
|
||||
return tty_fd;
|
||||
}
|
||||
@@ -554,7 +647,7 @@ static int parse_argv(int argc, char *ar
|
||||
return log_error_errno(tty_fd, "Failed to acquire /dev/console: %m");
|
||||
|
||||
@@ -601,7 +694,7 @@ static int parse_argv(int argc, char *ar
|
||||
{ "watch", no_argument, NULL, ARG_WATCH },
|
||||
{ "wall", no_argument, NULL, ARG_WALL },
|
||||
{ "plymouth", no_argument, NULL, ARG_PLYMOUTH },
|
||||
@ -181,7 +181,7 @@ index 4630eb9..df4bada 100644
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -598,6 +691,10 @@ static int parse_argv(int argc, char *ar
|
||||
@@ -643,6 +736,10 @@ static int parse_argv(int argc, char *ar
|
||||
|
||||
case ARG_CONSOLE:
|
||||
arg_console = true;
|
||||
@ -192,7 +192,7 @@ index 4630eb9..df4bada 100644
|
||||
break;
|
||||
|
||||
case '?':
|
||||
@@ -612,9 +709,143 @@ static int parse_argv(int argc, char *ar
|
||||
@@ -657,9 +754,143 @@ static int parse_argv(int argc, char *ar
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -336,16 +336,16 @@ index 4630eb9..df4bada 100644
|
||||
int main(int argc, char *argv[]) {
|
||||
int r;
|
||||
|
||||
@@ -628,15 +859,28 @@ int main(int argc, char *argv[]) {
|
||||
@@ -673,16 +904,29 @@ int main(int argc, char *argv[]) {
|
||||
if (r <= 0)
|
||||
goto finish;
|
||||
|
||||
- if (arg_console) {
|
||||
- setsid();
|
||||
- release_terminal();
|
||||
- (void) setsid();
|
||||
- (void) release_terminal();
|
||||
+ if (arg_console && !arg_device)
|
||||
+ /*
|
||||
+ * Spwan for each console device a own process
|
||||
+ * Spawn for each console device a own process
|
||||
+ */
|
||||
+ r = ask_on_consoles(argc, argv);
|
||||
+ else {
|
||||
@ -365,15 +365,12 @@ index 4630eb9..df4bada 100644
|
||||
+ else
|
||||
+ r = show_passwords();
|
||||
}
|
||||
-
|
||||
|
||||
- if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL))
|
||||
- r = watch_passwords();
|
||||
- else
|
||||
- r = show_passwords();
|
||||
|
||||
if (r < 0)
|
||||
log_error_errno(r, "Error: %m");
|
||||
|
||||
--
|
||||
2.2.0
|
||||
|
||||
-
|
||||
finish:
|
||||
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
||||
|
@ -8,21 +8,20 @@ Related to bnc#892096
|
||||
src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 61 insertions(+), 10 deletions(-)
|
||||
|
||||
Index: systemd-221/src/random-seed/random-seed.c
|
||||
Index: systemd-228/src/random-seed/random-seed.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/random-seed/random-seed.c
|
||||
+++ systemd-221/src/random-seed/random-seed.c
|
||||
@@ -22,7 +22,9 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
+#include <linux/random.h>
|
||||
--- systemd-228.orig/src/random-seed/random-seed.c
|
||||
+++ systemd-228/src/random-seed/random-seed.c
|
||||
@@ -24,6 +24,8 @@
|
||||
#include <string.h>
|
||||
+#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
+#include <linux/random.h>
|
||||
+#include <sys/ioctl.h>
|
||||
|
||||
#include "log.h"
|
||||
@@ -32,8 +34,8 @@
|
||||
#include "alloc-util.h"
|
||||
#include "fd-util.h"
|
||||
@@ -36,8 +38,8 @@
|
||||
#define POOL_SIZE_MIN 512
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@ -33,7 +32,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
size_t buf_size = 0;
|
||||
ssize_t k;
|
||||
int r;
|
||||
@@ -65,11 +67,12 @@ int main(int argc, char *argv[]) {
|
||||
@@ -68,11 +70,12 @@ int main(int argc, char *argv[]) {
|
||||
if (buf_size <= POOL_SIZE_MIN)
|
||||
buf_size = POOL_SIZE_MIN;
|
||||
|
||||
@ -48,7 +47,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
|
||||
r = mkdir_parents_label(RANDOM_SEED, 0755);
|
||||
if (r < 0) {
|
||||
@@ -83,6 +86,23 @@ int main(int argc, char *argv[]) {
|
||||
@@ -86,6 +89,23 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
if (streq(argv[1], "load")) {
|
||||
|
||||
@ -72,7 +71,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
|
||||
if (seed_fd < 0) {
|
||||
seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY);
|
||||
@@ -103,7 +123,7 @@ int main(int argc, char *argv[]) {
|
||||
@@ -106,7 +126,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +80,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
if (k < 0)
|
||||
r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m");
|
||||
else if (k == 0)
|
||||
@@ -111,13 +131,29 @@ int main(int argc, char *argv[]) {
|
||||
@@ -114,13 +134,29 @@ int main(int argc, char *argv[]) {
|
||||
else {
|
||||
(void) lseek(seed_fd, 0, SEEK_SET);
|
||||
|
||||
@ -114,7 +113,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
|
||||
if (seed_fd < 0) {
|
||||
r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m");
|
||||
@@ -130,6 +166,21 @@ int main(int argc, char *argv[]) {
|
||||
@@ -133,6 +169,21 @@ int main(int argc, char *argv[]) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
@ -136,7 +135,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
} else {
|
||||
log_error("Unknown verb '%s'.", argv[1]);
|
||||
r = -EINVAL;
|
||||
@@ -144,7 +195,7 @@ int main(int argc, char *argv[]) {
|
||||
@@ -147,7 +198,7 @@ int main(int argc, char *argv[]) {
|
||||
(void) fchmod(seed_fd, 0600);
|
||||
(void) fchown(seed_fd, 0, 0);
|
||||
|
||||
@ -145,7 +144,7 @@ Index: systemd-221/src/random-seed/random-seed.c
|
||||
if (k < 0) {
|
||||
r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m");
|
||||
goto finish;
|
||||
@@ -155,7 +206,7 @@ int main(int argc, char *argv[]) {
|
||||
@@ -158,7 +209,7 @@ int main(int argc, char *argv[]) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0d7ac1532a57639fbc828f8a5051a090883c6ad2908618a7a13ab386db831bfc
|
||||
size 3868075
|
3
v228.tar.gz
Normal file
3
v228.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dd124ff561a07e6439ed2b3713f38ca914df7747f110ce86deea17b56d245ae6
|
||||
size 4034401
|
@ -3,19 +3,19 @@
|
||||
src/core/manager.h | 5 ++
|
||||
2 files changed, 98 insertions(+)
|
||||
|
||||
Index: systemd-221/src/core/manager.c
|
||||
Index: systemd-227/src/core/manager.c
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/manager.c
|
||||
+++ systemd-221/src/core/manager.c
|
||||
--- systemd-227.orig/src/core/manager.c
|
||||
+++ systemd-227/src/core/manager.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
#include <sys/timerfd.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
+#include <resolv.h>
|
||||
|
||||
#ifdef HAVE_AUDIT
|
||||
#include <libaudit.h>
|
||||
@@ -308,6 +309,91 @@ static int manager_check_ask_password(Ma
|
||||
@@ -294,6 +295,91 @@ static int manager_check_ask_password(Ma
|
||||
return m->have_ask_password;
|
||||
}
|
||||
|
||||
@ -107,15 +107,15 @@ Index: systemd-221/src/core/manager.c
|
||||
static int manager_watch_idle_pipe(Manager *m) {
|
||||
int r;
|
||||
|
||||
@@ -585,6 +671,7 @@ int manager_new(ManagerRunningAs running
|
||||
m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1;
|
||||
@@ -576,6 +662,7 @@ int manager_new(ManagerRunningAs running
|
||||
|
||||
m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */
|
||||
|
||||
+ m->resolv_conf_inotify_fd = -1;
|
||||
m->ask_password_inotify_fd = -1;
|
||||
m->have_ask_password = -EINVAL; /* we don't know */
|
||||
|
||||
@@ -651,6 +738,10 @@ int manager_new(ManagerRunningAs running
|
||||
m->first_boot = -1;
|
||||
@@ -637,6 +724,10 @@ int manager_new(ManagerRunningAs running
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@ -126,7 +126,7 @@ Index: systemd-221/src/core/manager.c
|
||||
m->udev = udev_new();
|
||||
if (!m->udev) {
|
||||
r = -ENOMEM;
|
||||
@@ -929,6 +1020,8 @@ Manager* manager_free(Manager *m) {
|
||||
@@ -914,6 +1005,8 @@ Manager* manager_free(Manager *m) {
|
||||
if (!m)
|
||||
return NULL;
|
||||
|
||||
@ -135,13 +135,13 @@ Index: systemd-221/src/core/manager.c
|
||||
manager_clear_jobs_and_units(m);
|
||||
|
||||
for (c = 0; c < _UNIT_TYPE_MAX; c++)
|
||||
Index: systemd-221/src/core/manager.h
|
||||
Index: systemd-227/src/core/manager.h
|
||||
===================================================================
|
||||
--- systemd-221.orig/src/core/manager.h
|
||||
+++ systemd-221/src/core/manager.h
|
||||
@@ -181,6 +181,11 @@ struct Manager {
|
||||
int utab_inotify_fd;
|
||||
sd_event_source *mount_utab_event_source;
|
||||
--- systemd-227.orig/src/core/manager.h
|
||||
+++ systemd-227/src/core/manager.h
|
||||
@@ -180,6 +180,11 @@ struct Manager {
|
||||
struct libmnt_monitor *mount_monitor;
|
||||
sd_event_source *mount_event_source;
|
||||
|
||||
+ /* Watch out any change of /etc/resolv.conf */
|
||||
+ int resolv_conf_inotify_fd;
|
||||
|
Loading…
Reference in New Issue
Block a user