From 220c1a21cd725480192bc46604949dbebf1bac079164686671ee8c1dfa92faba Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 20 Feb 2014 12:23:32 +0000 Subject: [PATCH 01/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=519 --- ...sh-for-reboot-or-hddown-for-poweroff.patch | 32 ++++++++++++------- systemd.changes | 6 ++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index 2d48b38..6016d3b 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -10,11 +10,11 @@ systemctl command as well as for the systemd-shutdown utility. src/core/shutdown.c | 8 - src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ src/shared/hdflush.h | 25 +++ - src/systemctl/systemctl.c | 17 +- - 6 files changed, 416 insertions(+), 8 deletions(-) + src/systemctl/systemctl.c | 25 ++- + 6 files changed, 424 insertions(+), 8 deletions(-) --- systemd-208/Makefile.am -+++ systemd-208/Makefile.am 2014-01-28 11:06:55.638238060 +0000 ++++ systemd-208/Makefile.am 2014-01-28 11:06:56.000000000 +0000 @@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \ src/shared/strbuf.h \ src/shared/strxcpyx.c \ @@ -25,7 +25,7 @@ systemctl command as well as for the systemd-shutdown utility. src/shared/conf-parser.h \ src/shared/log.c \ --- systemd-208/Makefile.in -+++ systemd-208/Makefile.in 2014-01-28 11:06:33.942246196 +0000 ++++ systemd-208/Makefile.in 2014-01-28 11:06:34.000000000 +0000 @@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \ src/shared/prioq.lo src/shared/sleep-config.lo \ @@ -62,7 +62,7 @@ systemctl command as well as for the systemd-shutdown utility. @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@ --- systemd-208/src/shared/hdflush.c -+++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.490735704 +0000 ++++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.000000000 +0000 @@ -0,0 +1,365 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -430,7 +430,7 @@ systemctl command as well as for the systemd-shutdown utility. +} +#endif --- systemd-208/src/shared/hdflush.h -+++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.286235696 +0000 ++++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -458,7 +458,7 @@ systemctl command as well as for the systemd-shutdown utility. +void hdflush(void); +void hddown(void); --- systemd-208/src/core/shutdown.c -+++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:15.722235591 +0000 ++++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:16.000000000 +0000 @@ -40,6 +40,7 @@ #include "missing.h" #include "log.h" @@ -483,7 +483,7 @@ systemctl command as well as for the systemd-shutdown utility. if (cmd == LINUX_REBOOT_CMD_KEXEC) { --- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-28 11:31:27.150735613 +0000 ++++ systemd-208/src/systemctl/systemctl.c 2014-02-20 11:53:11.350234762 +0000 @@ -87,6 +87,7 @@ static bool arg_no_pager = false; static bool arg_no_wtmp = false; static bool arg_no_wall = false; @@ -515,15 +515,25 @@ systemctl command as well as for the systemd-shutdown utility. case '?': return -EINVAL; -@@ -5981,14 +5986,14 @@ static int halt_now(enum action a) { +@@ -5979,16 +5984,24 @@ static int halt_now(enum action a) { + * point on... */ + reboot(RB_ENABLE_CAD); - switch (a) { +- switch (a) { ++ if (!arg_no_sync) ++ sync(); - case ACTION_HALT: - log_info("Halting."); - reboot(RB_HALT_SYSTEM); - return -errno; -- ++ if (a == ACTION_POWEROFF || a == ACTION_HALT) ++ hddown(); ++ else ++ hdflush(); ++ ++ switch (a) { + case ACTION_POWEROFF: log_info("Powering off."); reboot(RB_POWER_OFF); diff --git a/systemd.changes b/systemd.changes index d9e7abd..1d21a44 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to do a final sync() and flush the disks + ------------------------------------------------------------------- Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de From e737136a6ff16e7990c9a0740cc532d3b9a11a3d42fd71b66c83aa53558e5755 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 21 Feb 2014 16:08:28 +0000 Subject: [PATCH 02/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=520 --- ...ripts-know-about-Required-and-Should.patch | 25 ++++++++++++++++--- systemd.changes | 7 ++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch index 81a2692..a98660e 100644 --- a/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch +++ b/1018-Make-LSB-Skripts-know-about-Required-and-Should.patch @@ -1,5 +1,19 @@ +Should solve the problems of + + bug #858864 - LSB "+" dependencies aren't handled properly + bug #857204 - inssrv fails to enable rpcbind + The side effect is that RequiresOverridable= is used for the services + add behind Required-Start + bug #863217 - systemd overrides explicit admin request to disable a service + That is that in this version the Wants= for all services behind + Should-Start, X-Start-Before, and X-Stop-After is not used anymore + +--- + service.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + --- systemd-208/src/core/service.c -+++ systemd-208/src/core/service.c 2014-01-17 12:15:52.527311588 +0000 ++++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000 @@ -380,6 +380,8 @@ static int sysv_translate_facility(const "remote_fs", SPECIAL_REMOTE_FS_TARGET, "syslog", NULL, @@ -28,11 +42,11 @@ state = LSB; + d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER; -+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : UNIT_WANTS; ++ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID; FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) { char *n, *m; -@@ -838,12 +843,15 @@ static int service_load_sysv_path(Servic +@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic continue; } @@ -45,7 +59,10 @@ continue; - r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true); -+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); ++ if (e != _UNIT_DEPENDENCY_INVALID) ++ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true); ++ else ++ r = unit_add_dependency_by_name(u, d, m, NULL, true); if (r < 0) log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s", diff --git a/systemd.changes b/systemd.changes index 1d21a44..c9d3106 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de + +- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit + scripts (bnc#863217) + ------------------------------------------------------------------- Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de From 50403dae24e6ce366e7901107c518ae3936d4f3cff9d74dc554b17bfd5cb2bf3 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 26 Feb 2014 12:52:11 +0000 Subject: [PATCH 03/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=521 --- ...network-device-after-NFS-mount-units.patch | 311 ++++++++++++++++++ systemd-mini.changes | 13 + systemd-mini.spec | 3 + systemd.spec | 3 + 4 files changed, 330 insertions(+) create mode 100644 0001-add-network-device-after-NFS-mount-units.patch diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch new file mode 100644 index 0000000..dd58ff1 --- /dev/null +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -0,0 +1,311 @@ +Avoid possible race on NFS shares in which may that the network devices disappears +before the associated NFS share becomes unmounted (bug #861489). +To do this make sure that sys-subsystem-net-devices-.device used for the +NFS share is added as "After=" dependency to the .mount. + +--- + Makefile.am | 2 + src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ + src/core/mount-iface.h | 25 +++++++ + src/core/mount.c | 34 ++++++++- + src/shared/util.c | 1 + 5 files changed, 232 insertions(+), 3 deletions(-) + +--- systemd-208/Makefile.am ++++ systemd-208/Makefile.am 2014-02-26 13:44:19.816148628 +0100 +@@ -959,6 +959,8 @@ libsystemd_core_la_SOURCES = \ + src/core/machine-id-setup.h \ + src/core/mount-setup.c \ + src/core/mount-setup.h \ ++ src/core/mount-iface.c \ ++ src/core/mount-iface.h \ + src/core/loopback-setup.h \ + src/core/loopback-setup.c \ + src/core/condition.c \ +--- systemd-208/src/core/mount-iface.c ++++ systemd-208/src/core/mount-iface.c 2014-02-26 11:18:36.350742718 +0100 +@@ -0,0 +1,173 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++/* ++ * Find the name of the network interface to which a IP address belongs to. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "log.h" ++#include "def.h" ++#include "mount-iface.h" ++ ++static struct ifaddrs *ifa_list; ++ ++_pure_ static unsigned int mask2prefix(const void* ipv6) ++{ ++ unsigned int nippels = 0; ++ unsigned int i; ++ ++ assert(ipv6); ++ ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ uint8_t byte = ((const uint8_t*)ipv6)[i]; ++ if (byte == 0xFF) { ++ nippels += sizeof(uint8_t); ++ continue; ++ } ++ while (byte & 0x80) { ++ nippels++; ++ byte <<= 1; ++ } ++ break; ++ } ++ ++ return nippels; ++} ++ ++static void netmask(unsigned int prefix, const void* in6, void* out6) ++{ ++ unsigned int nippels; ++ unsigned int i; ++ ++ assert(in6); ++ assert(out6); ++ ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t); ++ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels); ++ prefix -= nippels; ++ } ++} ++ ++char *host2iface(const char *ip) ++{ ++ const struct ifaddrs *ifa; ++ uint32_t ip4 = 0; ++ char *ret = NULL; ++ struct search { ++ union { ++ struct in_addr addr; ++ struct in6_addr addr6; ++ }; ++ int family; ++ } host; ++ int r; ++ ++ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) { ++ log_oom(); ++ goto err; ++ } ++ ++ if (strchr(ip, ':')) { ++ r = inet_pton(AF_INET6, ip, &host.addr6); ++ host.family = AF_INET6; ++ } else { ++ r = inet_pton(AF_INET, ip, &host.addr); ++ host.family = AF_INET; ++ } ++ ++ if (r < 0) { ++ log_error("Failed to convert IP address %s from text to binary: %m", ip); ++ goto err; ++ } ++ ++ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) { ++ ++ if (!ifa->ifa_addr) ++ continue; ++ if (ifa->ifa_flags & IFF_POINTOPOINT) ++ continue; ++ if (!ifa->ifa_addr) ++ continue; ++ if (!ifa->ifa_netmask) ++ continue; ++ ++ if (ifa->ifa_addr->sa_family == AF_INET) { ++ uint32_t addr, dest, mask; ++ ++ if (host.family != AF_INET) ++ continue; ++ if (!ifa->ifa_broadaddr) ++ continue; ++ ++ if (!ip4) ++ ip4 = (uint32_t)ntohl(host.addr.s_addr); ++ ++ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr); ++ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */ ++ continue; ++ ++ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr); ++ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr); ++ if ((ip4 & mask) != (dest & mask)) ++ continue; ++ ++ ret = ifa->ifa_name; ++ break; ++ } else if (ifa->ifa_addr->sa_family == AF_INET6) { ++ struct in6_addr *addr, *mask, dest, ip6; ++ unsigned int prefix; ++ ++ if (host.family != AF_INET6) ++ continue; ++ ++ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr; ++ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr; ++ prefix = mask2prefix(mask); ++ ++ netmask(prefix, addr, &dest); ++ netmask(prefix, &host.addr6, &ip6); ++ ++ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0) ++ continue; ++ ++ ret = ifa->ifa_name; ++ break; ++ } ++ } ++err: ++ return ret; ++} ++ ++void freeroutes(void) ++{ ++ if (ifa_list) ++ freeifaddrs(ifa_list); ++ ifa_list = NULL; ++} +--- systemd-208/src/core/mount-iface.h ++++ systemd-208/src/core/mount-iface.h 2014-02-26 11:08:19.797906189 +0100 +@@ -0,0 +1,25 @@ ++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ ++ ++#pragma once ++ ++/*** ++ This file is part of systemd. ++ ++ Copyright 2014 Werner Fink ++ ++ systemd is free software; you can redistribute it and/or modify it ++ under the terms of the GNU Lesser General Public License as published by ++ the Free Software Foundation; either version 2.1 of the License, or ++ (at your option) any later version. ++ ++ systemd is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public License ++ along with systemd; If not, see . ++***/ ++ ++char *host2iface(const char *ip); ++void freeroutes(void); +--- systemd-208/src/core/mount.c ++++ systemd-208/src/core/mount.c 2014-02-26 12:20:00.883799034 +0100 +@@ -36,6 +36,7 @@ + #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" +@@ -1420,7 +1421,7 @@ static int mount_add_one( + bool set_flags) { + int r; + Unit *u; +- bool delete; ++ bool delete, isnetwork; + char *e, *w = NULL, *o = NULL, *f = NULL; + MountParameters *p; + bool load_extras = false; +@@ -1447,10 +1448,11 @@ static int mount_add_one( + if (!e) + return -ENOMEM; + ++ isnetwork = fstype_is_network(fstype); ++ + u = manager_get_unit(m, e); + if (!u) { +- const char* const target = +- fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; ++ const char* const target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + + delete = true; + +@@ -1544,6 +1546,31 @@ static int mount_add_one( + goto fail; + } + ++ if (isnetwork && (e = strrchr(p->what, ':')) && *(e+1) == '/' && (e = strdup(p->options))) { ++ char *addr = strstr(e, ",addr="); ++ if (addr) { ++ char *colon, *iface; ++ ++ addr += 6; ++ if ((colon = strchr(addr, ','))) ++ *colon = '\0'; ++ ++ iface = host2iface(addr); ++ if (iface) { ++ char* target; ++ if (asprintf(&target, "sys-subsystem-net-devices-%s.device", iface) < 0) ++ log_oom(); ++ else { ++ r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true); ++ if (r < 0) ++ log_error_unit(u->id, "Failed to add dependency on %s, ignoring: %s", ++ target, strerror(-r)); ++ } ++ } ++ } ++ free(e); ++ } ++ + unit_add_to_dbus_queue(u); + + return 0; +@@ -1611,6 +1638,7 @@ static int mount_load_proc_self_mountinf + if (k < 0) + r = k; + } ++ freeroutes(); /* Just in case of using the routing table with host2iface() */ + + return r; + } +--- systemd-208/src/shared/util.c ++++ systemd-208/src/shared/util.c 2014-02-24 16:17:41.682298917 +0100 +@@ -1593,6 +1593,7 @@ bool fstype_is_network(const char *fstyp + "ncp\0" + "nfs\0" + "nfs4\0" ++ "afs\0" + "gfs\0" + "gfs2\0"; + diff --git a/systemd-mini.changes b/systemd-mini.changes index d9e7abd..c9d3106 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de + +- Modify patch 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch + to avoid WantedBy for Should-Start/Start-Before/Start-After SysVinit + scripts (bnc#863217) + +------------------------------------------------------------------- +Thu Feb 20 12:22:15 UTC 2014 - werner@suse.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + to do a final sync() and flush the disks + ------------------------------------------------------------------- Fri Feb 14 16:03:16 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 808ed2a..2feaaae 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -335,6 +335,8 @@ Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch # PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com Patch114: 0049-systemd-treat-reload-failure-as-failure.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch115: 0001-add-network-device-after-NFS-mount-units.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -675,6 +677,7 @@ cp %{SOURCE7} m4/ %patch112 -p0 %patch113 -p0 %patch114 -p0 +%patch115 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.spec b/systemd.spec index c305b86..4a5b039 100644 --- a/systemd.spec +++ b/systemd.spec @@ -330,6 +330,8 @@ Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch # PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com Patch114: 0049-systemd-treat-reload-failure-as-failure.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch115: 0001-add-network-device-after-NFS-mount-units.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -670,6 +672,7 @@ cp %{SOURCE7} m4/ %patch112 -p0 %patch113 -p0 %patch114 -p0 +%patch115 -p1 # udev patches %patch1001 -p1 From a7c319dbae6e6dd1d89c2da4df1b8e1bcdd9dde88f372ce4e049f289fce8e3a7 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 26 Feb 2014 15:16:45 +0000 Subject: [PATCH 04/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=522 --- ...network-device-after-NFS-mount-units.patch | 196 +++++++++--------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index dd58ff1..c24e5f4 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -66,140 +66,140 @@ NFS share is added as "After=" dependency to the .mount. + +_pure_ static unsigned int mask2prefix(const void* ipv6) +{ -+ unsigned int nippels = 0; -+ unsigned int i; ++ unsigned int nippels = 0; ++ unsigned int i; + -+ assert(ipv6); ++ assert(ipv6); + -+ for (i = 0; i < sizeof(struct in6_addr); i++) { -+ uint8_t byte = ((const uint8_t*)ipv6)[i]; -+ if (byte == 0xFF) { -+ nippels += sizeof(uint8_t); -+ continue; -+ } -+ while (byte & 0x80) { -+ nippels++; -+ byte <<= 1; -+ } -+ break; -+ } ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ uint8_t byte = ((const uint8_t*)ipv6)[i]; ++ if (byte == 0xFF) { ++ nippels += sizeof(uint8_t); ++ continue; ++ } ++ while (byte & 0x80) { ++ nippels++; ++ byte <<= 1; ++ } ++ break; ++ } + -+ return nippels; ++ return nippels; +} + +static void netmask(unsigned int prefix, const void* in6, void* out6) +{ -+ unsigned int nippels; -+ unsigned int i; ++ unsigned int nippels; ++ unsigned int i; + -+ assert(in6); -+ assert(out6); ++ assert(in6); ++ assert(out6); + -+ for (i = 0; i < sizeof(struct in6_addr); i++) { -+ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t); -+ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels); -+ prefix -= nippels; -+ } ++ for (i = 0; i < sizeof(struct in6_addr); i++) { ++ nippels = (prefix < sizeof(uint8_t)) ? prefix : sizeof(uint8_t); ++ ((uint8_t*)out6)[i] = ((const uint8_t*)in6)[i] & (0xFF00>>nippels); ++ prefix -= nippels; ++ } +} + +char *host2iface(const char *ip) +{ -+ const struct ifaddrs *ifa; -+ uint32_t ip4 = 0; -+ char *ret = NULL; -+ struct search { -+ union { -+ struct in_addr addr; -+ struct in6_addr addr6; -+ }; -+ int family; -+ } host; -+ int r; ++ const struct ifaddrs *ifa; ++ uint32_t ip4 = 0; ++ char *ret = NULL; ++ struct search { ++ union { ++ struct in_addr addr; ++ struct in6_addr addr6; ++ }; ++ int family; ++ } host; ++ int r; + -+ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) { -+ log_oom(); -+ goto err; -+ } ++ if (!ifa_list && (getifaddrs(&ifa_list) < 0)) { ++ log_oom(); ++ goto err; ++ } + -+ if (strchr(ip, ':')) { -+ r = inet_pton(AF_INET6, ip, &host.addr6); -+ host.family = AF_INET6; -+ } else { -+ r = inet_pton(AF_INET, ip, &host.addr); -+ host.family = AF_INET; -+ } ++ if (strchr(ip, ':')) { ++ r = inet_pton(AF_INET6, ip, &host.addr6); ++ host.family = AF_INET6; ++ } else { ++ r = inet_pton(AF_INET, ip, &host.addr); ++ host.family = AF_INET; ++ } + -+ if (r < 0) { -+ log_error("Failed to convert IP address %s from text to binary: %m", ip); -+ goto err; -+ } ++ if (r < 0) { ++ log_error("Failed to convert IP address %s from text to binary: %m", ip); ++ goto err; ++ } + -+ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) { ++ for (ifa = ifa_list; ifa != NULL; ifa = ifa->ifa_next) { + -+ if (!ifa->ifa_addr) -+ continue; -+ if (ifa->ifa_flags & IFF_POINTOPOINT) -+ continue; -+ if (!ifa->ifa_addr) -+ continue; -+ if (!ifa->ifa_netmask) -+ continue; ++ if (!ifa->ifa_addr) ++ continue; ++ if (ifa->ifa_flags & IFF_POINTOPOINT) ++ continue; ++ if (!ifa->ifa_addr) ++ continue; ++ if (!ifa->ifa_netmask) ++ continue; + -+ if (ifa->ifa_addr->sa_family == AF_INET) { -+ uint32_t addr, dest, mask; ++ if (ifa->ifa_addr->sa_family == AF_INET) { ++ uint32_t addr, dest, mask; + -+ if (host.family != AF_INET) -+ continue; -+ if (!ifa->ifa_broadaddr) -+ continue; ++ if (host.family != AF_INET) ++ continue; ++ if (!ifa->ifa_broadaddr) ++ continue; + -+ if (!ip4) -+ ip4 = (uint32_t)ntohl(host.addr.s_addr); ++ if (!ip4) ++ ip4 = (uint32_t)ntohl(host.addr.s_addr); + -+ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr); -+ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */ -+ continue; ++ addr = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr); ++ if ((addr & 0xFF000000) == 0x7F000000) /* IPV4 loopback */ ++ continue; + -+ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr); -+ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr); -+ if ((ip4 & mask) != (dest & mask)) -+ continue; ++ mask = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_netmask)->sin_addr.s_addr); ++ dest = (uint32_t)ntohl(((struct sockaddr_in*)ifa->ifa_broadaddr)->sin_addr.s_addr); ++ if ((ip4 & mask) != (dest & mask)) ++ continue; + -+ ret = ifa->ifa_name; -+ break; -+ } else if (ifa->ifa_addr->sa_family == AF_INET6) { -+ struct in6_addr *addr, *mask, dest, ip6; -+ unsigned int prefix; ++ ret = ifa->ifa_name; ++ break; ++ } else if (ifa->ifa_addr->sa_family == AF_INET6) { ++ struct in6_addr *addr, *mask, dest, ip6; ++ unsigned int prefix; + -+ if (host.family != AF_INET6) -+ continue; ++ if (host.family != AF_INET6) ++ continue; + -+ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr; -+ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr; -+ prefix = mask2prefix(mask); ++ addr = &((struct sockaddr_in6*)ifa->ifa_addr)->sin6_addr; ++ mask = &((struct sockaddr_in6*)ifa->ifa_netmask)->sin6_addr; ++ prefix = mask2prefix(mask); + -+ netmask(prefix, addr, &dest); -+ netmask(prefix, &host.addr6, &ip6); ++ netmask(prefix, addr, &dest); ++ netmask(prefix, &host.addr6, &ip6); + -+ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0) -+ continue; ++ if (memcmp(&dest, &ip6, sizeof(struct in6_addr)) != 0) ++ continue; + -+ ret = ifa->ifa_name; -+ break; -+ } -+ } ++ ret = ifa->ifa_name; ++ break; ++ } ++ } +err: -+ return ret; ++ return ret; +} + +void freeroutes(void) +{ -+ if (ifa_list) -+ freeifaddrs(ifa_list); -+ ifa_list = NULL; ++ if (ifa_list) ++ freeifaddrs(ifa_list); ++ ifa_list = NULL; +} --- systemd-208/src/core/mount-iface.h -+++ systemd-208/src/core/mount-iface.h 2014-02-26 11:08:19.797906189 +0100 ++++ systemd-208/src/core/mount-iface.h 2014-02-26 11:08:19.797906189 +0100 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + From 00c99ce8e85398e38278f475ec2868e6712d92b07db4f1317a38839769ba0ac6 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 27 Feb 2014 12:10:01 +0000 Subject: [PATCH 05/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=523 --- systemd.changes | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/systemd.changes b/systemd.changes index c9d3106..cd2fc1a 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de + +- Add patch 0001-add-network-device-after-NFS-mount-units.patch to + add "After" dependency to all NFS shares to the network interface + device as this ensures at shutdown that the NFS share becomes + unmounted before the interface is down (bnc#861489) + ------------------------------------------------------------------- Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de From 1168adcbed17e21a116fe0a4116151c6974e4fd5939b913250d9409fd0277b6c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 28 Feb 2014 17:10:52 +0000 Subject: [PATCH 06/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=524 --- 0001-Fix-bad-assert-in-show_pid_array.patch | 35 -- ...all-qsort-on-potentially-NULL-arrays.patch | 385 ------------------ ...s390_con3270_disable_ANSI_colour_esc.patch | 15 +- ...ix-memory-leak-in-acpi_get_boot_usec.patch | 25 -- ...sh-for-reboot-or-hddown-for-poweroff.patch | 165 ++++---- ...network-device-after-NFS-mount-units.patch | 73 ++-- ...yze-set-text-on-side-with-most-space.patch | 90 ---- 0001-analyze-set-white-background.patch | 32 -- ...id-abort-due-timeout-at-user-service.patch | 15 + ...ew-KillMode-mixed-which-sends-SIGTER.patch | 225 ---------- ...ailureIsolate-setting-by-a-more-gene.patch | 329 --------------- ...ay-we-denote-serialization-attribute.patch | 40 -- ...dbus-common-avoid-leak-in-error-path.patch | 71 ---- ...rbage-from-acpi-firmware-performance.patch | 33 -- 0001-drop-ins-check-return-value.patch | 29 -- ...tor-exit-immediately-if-in-container.patch | 40 -- 0001-journald-fix-minor-memory-leak.patch | 25 -- ...rotated-file-from-hashmap-when-rotat.patch | 39 -- ...ix-invalid-free-in-sd_session_get_vt.patch | 27 -- ...make-sd_session_get_vt-actually-work.patch | 27 -- ...s-introspection-data-for-TakeControl.patch | 25 -- 0001-logind-garbage-collect-stale-users.patch | 28 -- 0001-make-209-working-on-older-dist.patch | 8 + 0001-make-fortify-happy-with-ppoll.patch | 55 +++ 0001-make-tests-with-libseccomp-work.patch | 180 ++++++++ ...ifying-whether-clients-may-change-en.patch | 45 -- ...heck-for-NULL-before-reading-pm-what.patch | 29 -- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 41 ++ ...shared-util-Fix-glob_extend-argument.patch | 28 -- ...off-by-one-error-in-tag_to_udev_node.patch | 50 --- 0001-systemd-empty-sigmask-on-reexec.patch | 42 ++ ...mote-mounts-from-mountinfo-before-re.patch | 41 -- ...ize-deserialize-forbid_restart-value.patch | 51 --- ...l-getty-.service-add-Install-section.patch | 27 ++ ...systemctl-halt-reboot-error-handling.patch | 85 ---- ...ferences-to-var-lib-backlight-random.patch | 55 --- ...llMode-mixed-in-conjunction-with-PAM.patch | 62 --- ...e-never-free-an-uninitialized-pointe.patch | 25 -- ...o-always-go-through-both-SIGTERM-and.patch | 128 ------ ...ctl-fix-name-mangling-for-sysv-units.patch | 134 ------ ...OM-handling-when-parsing-mount-optio.patch | 48 --- 0006-journald-add-missing-error-check.patch | 25 -- ...entially-uninitialized-memory-access.patch | 34 -- ...-fix-return-value-of-dispatch_rqueue.patch | 30 -- 0009-modules-load-fix-error-handling.patch | 27 -- ...all-qsort-on-potentially-NULL-arrays.patch | 26 -- ...ccess-potentially-NULL-string-arrays.patch | 27 -- ...per-function-pointer-to-mkdir_safe_i.patch | 26 -- ...ude-setgid-perms-for-run-log-journal.patch | 26 -- ...what-to-RequiresMountsFor-for-networ.patch | 181 -------- ...cument-resolve-names-option-for-test.patch | 34 -- ...in-systemd-bootchart-on-short-living.patch | 34 -- ...n-document-the-b-special-boot-option.patch | 37 -- ...t-some-of-the-rules-to-the-add-actio.patch | 81 ---- ...ccessible-FUSE-mount-points-only-as-.patch | 37 -- ...ix-booted-and-add-two-functions-to-d.patch | 26 -- ...-activate-mention-E-in-the-help-text.patch | 25 -- ...-activate-fix-crash-when-s-is-passed.patch | 26 -- ...excludes-for-the-new-per-service-pri.patch | 43 -- 0038-core-socket-fix-SO_REUSEPORT.patch | 38 -- ...ending-to-journal-file-allocate-larg.patch | 80 ---- ...-bisection-logic-a-bit-by-caching-th.patch | 247 ----------- ...ation-when-we-go-backwards-from-the-.patch | 26 -- ...urnal_file_copy_entry-to-work-on-non.patch | 28 -- ...ournal-simplify-pre-allocation-logic.patch | 61 --- ...-how-long-we-needed-to-flush-to-var-.patch | 58 --- ...return-value-from-ttyname_r-is-0-ins.patch | 31 -- ...-remove-unneeded-the-s-in-gudev-docs.patch | 41 -- ...ay-when-multiple-units-can-be-specif.patch | 238 ----------- ...temd-treat-reload-failure-as-failure.patch | 93 ----- ...orrect-who-enum-values-with-KillUnit.patch | 31 -- 1006-udev-always-rename-network.patch | 75 ---- 1011-check-4-valid-kmsg-device.patch | 62 --- ...XDG_RUNTIME_DIR_of_the_original_user.patch | 168 -------- ...nit-handling-if-sysv-already-handled.patch | 20 - ...pletion-smart-to-be-able-to-redirect.patch | 4 +- ...-suspend-hibernate-calls-to-pm-utils.patch | 6 +- ...y_session_activation_on_non_vt_seats.patch | 26 -- ...ze-fix-crash-in-command-line-parsing.patch | 35 -- build-sys-make-multi-seat-x-optional.patch | 60 --- ...etup-after-md-dmraid-lvm-are-started.patch | 21 +- fix-owner-of-var-log-btmp.patch | 2 +- ...STEMCTL_OPTIONS-environment-variable.patch | 2 +- handle-etc-HOSTNAME.patch | 32 +- insserv-generator.patch | 10 +- systemd-208.tar.xz | 3 - systemd-209.tar.xz | 3 + systemd-dbus-system-bus-address.patch | 20 +- systemd-mini.changes | 295 ++++++++++++++ systemd-mini.spec | 320 ++++----------- systemd-tmp-safe-defaults.patch | 2 +- systemd.changes | 287 +++++++++++++ systemd.spec | 320 ++++----------- ...or-openSUSE-version-of-etc-sysconfig.patch | 4 +- 94 files changed, 1326 insertions(+), 5075 deletions(-) delete mode 100644 0001-Fix-bad-assert-in-show_pid_array.patch delete mode 100644 0001-Never-call-qsort-on-potentially-NULL-arrays.patch delete mode 100644 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch delete mode 100644 0001-analyze-set-text-on-side-with-most-space.patch delete mode 100644 0001-analyze-set-white-background.patch create mode 100644 0001-avoid-abort-due-timeout-at-user-service.patch delete mode 100644 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch delete mode 100644 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch delete mode 100644 0001-core-unify-the-way-we-denote-serialization-attribute.patch delete mode 100644 0001-dbus-common-avoid-leak-in-error-path.patch delete mode 100644 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch delete mode 100644 0001-drop-ins-check-return-value.patch delete mode 100644 0001-gpt-auto-generator-exit-immediately-if-in-container.patch delete mode 100644 0001-journald-fix-minor-memory-leak.patch delete mode 100644 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch delete mode 100644 0001-login-fix-invalid-free-in-sd_session_get_vt.patch delete mode 100644 0001-login-make-sd_session_get_vt-actually-work.patch delete mode 100644 0001-logind-fix-bus-introspection-data-for-TakeControl.patch delete mode 100644 0001-logind-garbage-collect-stale-users.patch create mode 100644 0001-make-209-working-on-older-dist.patch create mode 100644 0001-make-fortify-happy-with-ppoll.patch create mode 100644 0001-make-tests-with-libseccomp-work.patch delete mode 100644 0001-manager-when-verifying-whether-clients-may-change-en.patch delete mode 100644 0001-mount-check-for-NULL-before-reading-pm-what.patch create mode 100644 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch delete mode 100644 0001-shared-util-Fix-glob_extend-argument.patch delete mode 100644 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch create mode 100644 0001-systemd-empty-sigmask-on-reexec.patch delete mode 100644 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch delete mode 100644 0001-systemd-serialize-deserialize-forbid_restart-value.patch create mode 100644 0001-units-serial-getty-.service-add-Install-section.patch delete mode 100644 0001-upstream-systemctl-halt-reboot-error-handling.patch delete mode 100644 0002-fix-lingering-references-to-var-lib-backlight-random.patch delete mode 100644 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch delete mode 100644 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch delete mode 100644 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch delete mode 100644 0004-systemctl-fix-name-mangling-for-sysv-units.patch delete mode 100644 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch delete mode 100644 0006-journald-add-missing-error-check.patch delete mode 100644 0007-bus-fix-potentially-uninitialized-memory-access.patch delete mode 100644 0008-dbus-fix-return-value-of-dispatch_rqueue.patch delete mode 100644 0009-modules-load-fix-error-handling.patch delete mode 100644 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch delete mode 100644 0011-strv-don-t-access-potentially-NULL-string-arrays.patch delete mode 100644 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch delete mode 100644 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch delete mode 100644 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch delete mode 100644 0026-udevadm.xml-document-resolve-names-option-for-test.patch delete mode 100644 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch delete mode 100644 0031-man-document-the-b-special-boot-option.patch delete mode 100644 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch delete mode 100644 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch delete mode 100644 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch delete mode 100644 0035-activate-mention-E-in-the-help-text.patch delete mode 100644 0036-activate-fix-crash-when-s-is-passed.patch delete mode 100644 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch delete mode 100644 0038-core-socket-fix-SO_REUSEPORT.patch delete mode 100644 0039-journal-when-appending-to-journal-file-allocate-larg.patch delete mode 100644 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch delete mode 100644 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch delete mode 100644 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch delete mode 100644 0043-journal-simplify-pre-allocation-logic.patch delete mode 100644 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch delete mode 100644 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch delete mode 100644 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch delete mode 100644 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch delete mode 100644 0049-systemd-treat-reload-failure-as-failure.patch delete mode 100644 0145-logind-use-correct-who-enum-values-with-KillUnit.patch delete mode 100644 1006-udev-always-rename-network.patch delete mode 100644 1011-check-4-valid-kmsg-device.patch delete mode 100644 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch delete mode 100644 1017-skip-native-unit-handling-if-sysv-already-handled.patch delete mode 100644 U_logind_revert_lazy_session_activation_on_non_vt_seats.patch delete mode 100644 analyze-fix-crash-in-command-line-parsing.patch delete mode 100644 build-sys-make-multi-seat-x-optional.patch delete mode 100644 systemd-208.tar.xz create mode 100644 systemd-209.tar.xz diff --git a/0001-Fix-bad-assert-in-show_pid_array.patch b/0001-Fix-bad-assert-in-show_pid_array.patch deleted file mode 100644 index e62ab8b..0000000 --- a/0001-Fix-bad-assert-in-show_pid_array.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a0551d26ab5c6e0d5089b42a6319baef0e28ad92 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 14 Oct 2013 19:15:24 -0400 -Subject: [PATCH] Fix bad assert in show_pid_array - -This function should get the same treatment as other qsort uses -did in 7ff7394 "Never call qsort on potentially NULL arrays". - -Reported-by: Oleksii Shevchuk ---- - src/shared/cgroup-show.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -Index: systemd-208/src/shared/cgroup-show.c -=================================================================== ---- systemd-208.orig/src/shared/cgroup-show.c -+++ systemd-208/src/shared/cgroup-show.c -@@ -44,8 +44,6 @@ static void show_pid_array(int pids[], u - unsigned i, m, pid_width; - pid_t biggest = 0; - -- assert(n_pids > 0); -- - /* Filter duplicates */ - m = 0; - for (i = 0; i < n_pids; i++) { -@@ -65,7 +63,7 @@ static void show_pid_array(int pids[], u - pid_width = DECIMAL_STR_WIDTH(biggest); - - /* And sort */ -- qsort(pids, n_pids, sizeof(pid_t), compare); -+ qsort_safe(pids, n_pids, sizeof(pid_t), compare); - - if(flags & OUTPUT_FULL_WIDTH) - n_columns = 0; diff --git a/0001-Never-call-qsort-on-potentially-NULL-arrays.patch b/0001-Never-call-qsort-on-potentially-NULL-arrays.patch deleted file mode 100644 index 515348f..0000000 --- a/0001-Never-call-qsort-on-potentially-NULL-arrays.patch +++ /dev/null @@ -1,385 +0,0 @@ -From 7ff7394d9e4e9189c30fd018235e6b1728c6f2d0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:13 -0400 -Subject: [PATCH] Never call qsort on potentially NULL arrays - -This extends 62678ded 'efi: never call qsort on potentially -NULL arrays' to all other places where qsort is used and it -is not obvious that the count is non-zero. ---- - src/analyze/systemd-analyze.c | 2 +- - src/cgtop/cgtop.c | 2 +- - src/core/namespace.c | 38 ++++++++++++++++++++------------------ - src/journal/catalog.c | 2 +- - src/journal/journal-file.c | 2 +- - src/journal/journal-vacuum.c | 3 +-- - src/journal/journalctl.c | 2 +- - src/libsystemd-bus/bus-match.c | 2 +- - src/libudev/libudev-enumerate.c | 2 +- - src/nss-myhostname/netlink.c | 3 ++- - src/readahead/readahead-collect.c | 39 ++++++++++++++++++++++----------------- - src/shared/cgroup-show.c | 2 ++ - src/shared/conf-files.c | 2 +- - src/shared/efivars.c | 3 +-- - src/shared/fileio.c | 1 + - src/shared/util.h | 12 ++++++++++++ - src/systemctl/systemctl.c | 10 +++++----- - 17 files changed, 74 insertions(+), 53 deletions(-) - -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 27d063c..a4f15eb 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -768,7 +768,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, unsigned - if (r < 0) - return r; - -- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); -+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); - - r = acquire_boot_times(bus, &boot); - if (r < 0) -diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c -index cacf705..293a211 100644 ---- a/src/cgtop/cgtop.c -+++ b/src/cgtop/cgtop.c -@@ -461,7 +461,7 @@ static int display(Hashmap *a) { - if (g->n_tasks_valid || g->cpu_valid || g->memory_valid || g->io_valid) - array[n++] = g; - -- qsort(array, n, sizeof(Group*), group_compare); -+ qsort_safe(array, n, sizeof(Group*), group_compare); - - /* Find the longest names in one run */ - for (j = 0; j < n; j++) { -diff --git a/src/core/namespace.c b/src/core/namespace.c -index 16b132b..936f368 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -222,7 +222,7 @@ int setup_namespace(char** read_write_dirs, - strv_length(read_only_dirs) + - strv_length(inaccessible_dirs) + - (private_tmp ? 2 : 0); -- BindMount *m, *mounts; -+ BindMount *m, *mounts = NULL; - int r = 0; - - if (!mount_flags) -@@ -231,27 +231,29 @@ int setup_namespace(char** read_write_dirs, - if (unshare(CLONE_NEWNS) < 0) - return -errno; - -- m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -- if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || -- (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || -- (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) -- return r; -+ if (n) { -+ m = mounts = (BindMount *) alloca(n * sizeof(BindMount)); -+ if ((r = append_mounts(&m, read_write_dirs, READWRITE)) < 0 || -+ (r = append_mounts(&m, read_only_dirs, READONLY)) < 0 || -+ (r = append_mounts(&m, inaccessible_dirs, INACCESSIBLE)) < 0) -+ return r; -+ -+ if (private_tmp) { -+ m->path = "/tmp"; -+ m->mode = PRIVATE_TMP; -+ m++; -+ -+ m->path = "/var/tmp"; -+ m->mode = PRIVATE_VAR_TMP; -+ m++; -+ } - -- if (private_tmp) { -- m->path = "/tmp"; -- m->mode = PRIVATE_TMP; -- m++; -+ assert(mounts + n == m); - -- m->path = "/var/tmp"; -- m->mode = PRIVATE_VAR_TMP; -- m++; -+ qsort(mounts, n, sizeof(BindMount), mount_path_compare); -+ drop_duplicates(mounts, &n); - } - -- assert(mounts + n == m); -- -- qsort(mounts, n, sizeof(BindMount), mount_path_compare); -- drop_duplicates(mounts, &n); -- - /* Remount / as SLAVE so that nothing now mounted in the namespace - shows up in the parent */ - if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL) < 0) -diff --git a/src/journal/catalog.c b/src/journal/catalog.c -index 7738d24..90ca008 100644 ---- a/src/journal/catalog.c -+++ b/src/journal/catalog.c -@@ -399,7 +399,7 @@ int catalog_update(const char* database, const char* root, const char* const* di - } - - assert(n == hashmap_size(h)); -- qsort(items, n, sizeof(CatalogItem), catalog_compare_func); -+ qsort_safe(items, n, sizeof(CatalogItem), catalog_compare_func); - - r = write_catalog(database, h, sb, items, n); - if (r < 0) -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 78b937b..901e71b 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1344,7 +1344,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - - /* Order by the position on disk, in order to improve seek - * times for rotating media. */ -- qsort(items, n_iovec, sizeof(EntryItem), entry_item_cmp); -+ qsort_safe(items, n_iovec, sizeof(EntryItem), entry_item_cmp); - - r = journal_file_append_entry_internal(f, ts, xor_hash, items, n_iovec, seqnum, ret, offset); - -diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c -index 8d5effb..d4a1c6c 100644 ---- a/src/journal/journal-vacuum.c -+++ b/src/journal/journal-vacuum.c -@@ -299,8 +299,7 @@ int journal_directory_vacuum( - n_list ++; - } - -- if (n_list > 0) -- qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare); -+ qsort_safe(list, n_list, sizeof(struct vacuum_info), vacuum_compare); - - for (i = 0; i < n_list; i++) { - struct statvfs ss; -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 2f8be1b..275458c 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -761,7 +761,7 @@ static int get_relative_boot_id(sd_journal *j, sd_id128_t *boot_id, int relative - sd_journal_flush_matches(j); - } - -- qsort(all_ids, count, sizeof(boot_id_t), boot_id_cmp); -+ qsort_safe(all_ids, count, sizeof(boot_id_t), boot_id_cmp); - - if (sd_id128_equal(*boot_id, SD_ID128_NULL)) { - if (relative > (int) count || relative <= -(int)count) -diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c -index 1411167..916682a 100644 ---- a/src/libsystemd-bus/bus-match.c -+++ b/src/libsystemd-bus/bus-match.c -@@ -768,7 +768,7 @@ int bus_match_parse( - } - - /* Order the whole thing, so that we always generate the same tree */ -- qsort(components, n_components, sizeof(struct bus_match_component), match_component_compare); -+ qsort_safe(components, n_components, sizeof(struct bus_match_component), match_component_compare); - - /* Check for duplicates */ - for (i = 0; i+1 < n_components; i++) -diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c -index 8146f27..e71d766 100644 ---- a/src/libudev/libudev-enumerate.c -+++ b/src/libudev/libudev-enumerate.c -@@ -276,7 +276,7 @@ _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enume - size_t move_later_prefix = 0; - - udev_list_cleanup(&udev_enumerate->devices_list); -- qsort(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); -+ qsort_safe(udev_enumerate->devices, udev_enumerate->devices_cur, sizeof(struct syspath), syspath_cmp); - - max = udev_enumerate->devices_cur; - for (i = 0; i < max; i++) { -diff --git a/src/nss-myhostname/netlink.c b/src/nss-myhostname/netlink.c -index b1ef912..47a41f5 100644 ---- a/src/nss-myhostname/netlink.c -+++ b/src/nss-myhostname/netlink.c -@@ -197,7 +197,8 @@ finish: - return r; - } - -- qsort(list, n_list, sizeof(struct address), address_compare); -+ if (n_list) -+ qsort(list, n_list, sizeof(struct address), address_compare); - - *_list = list; - *_n_list = n_list; -diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c -index 32888ad..6b74866 100644 ---- a/src/readahead/readahead-collect.c -+++ b/src/readahead/readahead-collect.c -@@ -536,8 +536,7 @@ done: - HASHMAP_FOREACH_KEY(q, p, files, i) - pack_file(pack, p, on_btrfs); - } else { -- struct item *ordered, *j; -- unsigned k, n; -+ unsigned n; - - /* On rotating media, order things by the block - * numbers */ -@@ -545,25 +544,31 @@ done: - log_debug("Ordering..."); - - n = hashmap_size(files); -- if (!(ordered = new(struct item, n))) { -- r = log_oom(); -- goto finish; -- } -- -- j = ordered; -- HASHMAP_FOREACH_KEY(q, p, files, i) { -- memcpy(j, q, sizeof(struct item)); -- j++; -- } -+ if (n) { -+ _cleanup_free_ struct item *ordered; -+ struct item *j; -+ unsigned k; -+ -+ ordered = new(struct item, n); -+ if (!ordered) { -+ r = log_oom(); -+ goto finish; -+ } - -- assert(ordered + n == j); -+ j = ordered; -+ HASHMAP_FOREACH_KEY(q, p, files, i) { -+ memcpy(j, q, sizeof(struct item)); -+ j++; -+ } - -- qsort(ordered, n, sizeof(struct item), qsort_compare); -+ assert(ordered + n == j); - -- for (k = 0; k < n; k++) -- pack_file(pack, ordered[k].path, on_btrfs); -+ qsort(ordered, n, sizeof(struct item), qsort_compare); - -- free(ordered); -+ for (k = 0; k < n; k++) -+ pack_file(pack, ordered[k].path, on_btrfs); -+ } else -+ log_warning("No pack files"); - } - - log_debug("Finalizing..."); -diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c -index e971f36..cc44ab4 100644 ---- a/src/shared/cgroup-show.c -+++ b/src/shared/cgroup-show.c -@@ -44,6 +44,8 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi - unsigned i, m, pid_width; - pid_t biggest = 0; - -+ assert(n_pids > 0); -+ - /* Filter duplicates */ - m = 0; - for (i = 0; i < n_pids; i++) { -diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c -index 6d99739..ed4070c 100644 ---- a/src/shared/conf-files.c -+++ b/src/shared/conf-files.c -@@ -127,7 +127,7 @@ static int conf_files_list_strv_internal(char ***strv, const char *suffix, const - return -ENOMEM; - } - -- qsort(files, hashmap_size(fh), sizeof(char *), base_cmp); -+ qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp); - *strv = files; - - hashmap_free(fh); -diff --git a/src/shared/efivars.c b/src/shared/efivars.c -index c015b16..f3eb6a6 100644 ---- a/src/shared/efivars.c -+++ b/src/shared/efivars.c -@@ -384,8 +384,7 @@ int efi_get_boot_options(uint16_t **options) { - list[count ++] = id; - } - -- if (list) -- qsort(list, count, sizeof(uint16_t), cmp_uint16); -+ qsort_safe(list, count, sizeof(uint16_t), cmp_uint16); - - *options = list; - return count; -diff --git a/src/shared/fileio.c b/src/shared/fileio.c -index 603a1c7..733b320 100644 ---- a/src/shared/fileio.c -+++ b/src/shared/fileio.c -@@ -662,6 +662,7 @@ int get_status_field(const char *filename, const char *pattern, char **field) { - int r; - - assert(filename); -+ assert(pattern); - assert(field); - - r = read_full_file(filename, &status, NULL); -diff --git a/src/shared/util.h b/src/shared/util.h -index 26af5b3..09e556d 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -772,3 +772,15 @@ bool id128_is_valid(const char *s) _pure_; - void parse_user_at_host(char *arg, char **user, char **host); - - int split_pair(const char *s, const char *sep, char **l, char **r); -+ -+/** -+ * Normal qsort requires base to be nonnull. Here were require -+ * that only if nmemb > 0. -+ */ -+static inline void qsort_safe(void *base, size_t nmemb, size_t size, -+ int (*compar)(const void *, const void *)) { -+ if (nmemb) { -+ assert(base); -+ qsort(base, nmemb, size, compar); -+ } -+} -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index d75281f..036828b 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -471,7 +471,7 @@ static int list_units(DBusConnection *bus, char **args) { - if (r < 0) - return r; - -- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); -+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); - - output_units_list(unit_infos, c); - -@@ -733,8 +733,8 @@ static int list_sockets(DBusConnection *bus, char **args) { - listen = triggered = NULL; /* avoid cleanup */ - } - -- qsort(socket_infos, cs, sizeof(struct socket_info), -- (__compar_fn_t) socket_info_compare); -+ qsort_safe(socket_infos, cs, sizeof(struct socket_info), -+ (__compar_fn_t) socket_info_compare); - - output_sockets_list(socket_infos, cs); - -@@ -1108,7 +1108,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, int leve - if (r < 0) - return r; - -- qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); -+ qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); - - STRV_FOREACH(c, deps) { - if (strv_contains(u, *c)) { -@@ -3532,7 +3532,7 @@ static int show_all(const char* verb, - if (r < 0) - return r; - -- qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); -+ qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); - - for (u = unit_infos; u < unit_infos + c; u++) { - _cleanup_free_ char *p = NULL; --- -1.8.4 - diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 843894e..e772cba 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -10,7 +10,7 @@ ACTION=="remove", GOTO="systemd_end" --SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" +-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd" +SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd" KERNEL=="vport*", TAG+="systemd" @@ -108,16 +108,3 @@ return cached_on_tty; } ---- systemd-208/src/getty-generator/getty-generator.c -+++ systemd-208/src/getty-generator/getty-generator.c 2014-02-05 10:41:29.502245927 +0000 -@@ -149,9 +149,9 @@ int main(int argc, char *argv[]) { - * only for non-VC terminals. */ - - k = add_serial_getty(tty); -+ free(tty); - - if (k < 0) { -- free(tty); - free(active); - r = EXIT_FAILURE; - goto finish; diff --git a/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch b/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch deleted file mode 100644 index 312a561..0000000 --- a/0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7e326fb5b2c1a839bbe7f879c7efa2af2ed33420 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Wed, 2 Oct 2013 13:39:49 +0200 -Subject: [PATCH 01/15] acpi-fptd: fix memory leak in acpi_get_boot_usec - ---- - src/shared/acpi-fpdt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index b094f34..a7c83ed 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { - }; - - int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { -- char *buf; -+ _cleanup_free_ char *buf; - struct acpi_table_header *tbl; - size_t l; - struct acpi_fpdt_header *rec; --- -1.8.4 - diff --git a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch index 6016d3b..57ca912 100644 --- a/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch +++ b/0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch @@ -5,65 +5,57 @@ use the system halt as gfallback if poweroff fails for both the direct poweroff systemctl command as well as for the systemd-shutdown utility. --- - Makefile.am | 2 - Makefile.in | 7 - src/core/shutdown.c | 8 - - src/shared/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ - src/shared/hdflush.h | 25 +++ + Makefile.am | 11 + + src/core/hdflush.c | 365 ++++++++++++++++++++++++++++++++++++++++++++++ + src/core/hdflush.h | 25 +++ + src/core/shutdown.c | 12 + src/systemctl/systemctl.c | 25 ++- - 6 files changed, 424 insertions(+), 8 deletions(-) + 5 files changed, 429 insertions(+), 9 deletions(-) ---- systemd-208/Makefile.am -+++ systemd-208/Makefile.am 2014-01-28 11:06:56.000000000 +0000 -@@ -680,6 +680,8 @@ libsystemd_shared_la_SOURCES = \ - src/shared/strbuf.h \ - src/shared/strxcpyx.c \ - src/shared/strxcpyx.h \ -+ src/shared/hdflush.c \ -+ src/shared/hdflush.h \ - src/shared/conf-parser.c \ - src/shared/conf-parser.h \ - src/shared/log.c \ ---- systemd-208/Makefile.in -+++ systemd-208/Makefile.in 2014-01-28 11:06:34.000000000 +0000 -@@ -1509,7 +1509,7 @@ am_libsystemd_shared_la_OBJECTS = src/sh - src/shared/hashmap.lo src/shared/set.lo src/shared/fdset.lo \ - src/shared/prioq.lo src/shared/sleep-config.lo \ - src/shared/strv.lo src/shared/env-util.lo src/shared/strbuf.lo \ -- src/shared/strxcpyx.lo src/shared/conf-parser.lo \ -+ src/shared/strxcpyx.lo src/shared/hdflush.lo src/shared/conf-parser.lo \ - src/shared/log.lo src/shared/ratelimit.lo \ - src/shared/exit-status.lo src/shared/utf8.lo \ - src/shared/pager.lo src/shared/socket-util.lo \ -@@ -4137,6 +4137,8 @@ libsystemd_shared_la_SOURCES = \ - src/shared/strbuf.h \ - src/shared/strxcpyx.c \ - src/shared/strxcpyx.h \ -+ src/shared/hdflush.c \ -+ src/shared/hdflush.h \ - src/shared/conf-parser.c \ - src/shared/conf-parser.h \ - src/shared/log.c \ -@@ -7073,6 +7075,8 @@ src/shared/strbuf.lo: src/shared/$(am__d - src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/strxcpyx.lo: src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) -+src/shared/hdflush.lo: src/shared/$(am__dirstamp) \ -+ src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/conf-parser.lo: src/shared/$(am__dirstamp) \ - src/shared/$(DEPDIR)/$(am__dirstamp) - src/shared/log.lo: src/shared/$(am__dirstamp) \ -@@ -9236,6 +9240,7 @@ distclean-compile: - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strbuf.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strv.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/strxcpyx.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/hdflush.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-dst.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/time-util.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/unit-name.Plo@am__quote@ ---- systemd-208/src/shared/hdflush.c -+++ systemd-208/src/shared/hdflush.c 2014-01-28 10:58:56.000000000 +0000 -@@ -0,0 +1,365 @@ +--- systemd-209/Makefile.am ++++ systemd-209/Makefile.am 2014-01-28 11:06:56.000000000 +0000 +@@ -1004,7 +1004,9 @@ libsystemd_core_la_SOURCES = \ + src/core/audit-fd.c \ + src/core/audit-fd.h \ + src/core/async.c \ +- src/core/async.h ++ src/core/async.h \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h + + if HAVE_KMOD + libsystemd_core_la_SOURCES += \ +@@ -1522,6 +1524,8 @@ systemd_shutdown_SOURCES = \ + src/core/shutdown.c \ + src/core/mount-setup.c \ + src/core/mount-setup.h \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h \ + src/core/killall.h \ + src/core/killall.c + +@@ -1818,7 +1822,9 @@ systemd_cgroups_agent_LDADD = \ + + # ------------------------------------------------------------------------------ + systemctl_SOURCES = \ +- src/systemctl/systemctl.c ++ src/systemctl/systemctl.c \ ++ src/core/hdflush.c \ ++ src/core/hdflush.h + + systemctl_LDADD = \ + libsystemd-units.la \ +@@ -1826,6 +1832,7 @@ systemctl_LDADD = \ + libsystemd-internal.la \ + libsystemd-logs.la \ + libsystemd-journal-internal.la \ ++ libudev-internal.la \ + libsystemd-shared.la + + # ------------------------------------------------------------------------------ +--- systemd-209/src/core/hdflush.c ++++ systemd-209/src/core/hdflush.c 2014-01-28 10:58:56.000000000 +0000 +@@ -0,0 +1,367 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + +/*** @@ -111,6 +103,8 @@ systemctl command as well as for the systemd-shutdown utility. +# include +#endif + ++#include "hdflush.h" ++ +/* Used in flush_cache_ext(), compare with */ +#define IDBYTES 512 +#define MASK_EXT 0xE000 /* Bit 15 shall be zero, bit 14 shall be one, bit 13 flush cache ext */ @@ -429,8 +423,8 @@ systemctl command as well as for the systemd-shutdown utility. + close_sysfs(sysfs); +} +#endif ---- systemd-208/src/shared/hdflush.h -+++ systemd-208/src/shared/hdflush.h 2014-01-28 11:00:08.000000000 +0000 +--- systemd-209/src/core/hdflush.h ++++ systemd-209/src/core/hdflush.h 2014-01-28 11:00:08.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -457,8 +451,8 @@ systemctl command as well as for the systemd-shutdown utility. + +void hdflush(void); +void hddown(void); ---- systemd-208/src/core/shutdown.c -+++ systemd-208/src/core/shutdown.c 2014-01-28 11:14:16.000000000 +0000 +--- systemd-209/src/core/shutdown.c ++++ systemd-209/src/core/shutdown.c 2014-02-28 11:17:22.000000000 +0000 @@ -40,6 +40,7 @@ #include "missing.h" #include "log.h" @@ -467,7 +461,17 @@ systemctl command as well as for the systemd-shutdown utility. #include "umount.h" #include "util.h" #include "mkdir.h" -@@ -302,8 +303,13 @@ int main(int argc, char *argv[]) { +@@ -225,7 +226,8 @@ int main(int argc, char *argv[]) { + _cleanup_free_ char *cgroup = NULL; + char *arguments[3]; + unsigned retries; +- int cmd, r; ++ unsigned cmd; ++ int r; + + log_parse_environment(); + r = parse_argv(argc, argv); +@@ -388,8 +390,13 @@ int main(int argc, char *argv[]) { * on reboot(), but the file systems need to be synce'd * explicitly in advance. So let's do this here, but not * needlessly slow down containers. */ @@ -480,11 +484,30 @@ systemctl command as well as for the systemd-shutdown utility. + hdflush(); + } - if (cmd == LINUX_REBOOT_CMD_KEXEC) { + switch (cmd) { ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-02-20 11:53:11.350234762 +0000 -@@ -87,6 +87,7 @@ static bool arg_no_pager = false; +@@ -449,6 +456,10 @@ int main(int argc, char *argv[]) { + } + + reboot(cmd); ++ ++ if (cmd == RB_POWER_OFF) ++ reboot(RB_HALT_SYSTEM); ++ + if (errno == EPERM && in_container) { + /* If we are in a container, and we lacked + * CAP_SYS_BOOT just exit, this will kill our +--- systemd-209/src/systemctl/systemctl.c ++++ systemd-209/src/systemctl/systemctl.c 2014-02-28 11:19:35.000000000 +0000 +@@ -67,6 +67,7 @@ + #include "logs-show.h" + #include "socket-util.h" + #include "fileio.h" ++#include "hdflush.h" + #include "env-util.h" + #include "bus-util.h" + #include "bus-message.h" +@@ -93,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; @@ -492,15 +515,15 @@ systemctl command as well as for the systemd-shutdown utility. static bool arg_show_types = false; static bool arg_ignore_inhibitors = false; static bool arg_dry = false; -@@ -5272,6 +5273,7 @@ static int halt_parse_argv(int argc, cha +@@ -5566,6 +5568,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' }, + { "no-sync", no_argument, NULL, 'n' }, { "no-wtmp", no_argument, NULL, 'd' }, { "no-wall", no_argument, NULL, ARG_NO_WALL }, - { NULL, 0, NULL, 0 } -@@ -5324,10 +5326,13 @@ static int halt_parse_argv(int argc, cha + {} +@@ -5617,10 +5620,13 @@ static int halt_parse_argv(int argc, cha case 'i': case 'h': @@ -515,7 +538,7 @@ systemctl command as well as for the systemd-shutdown utility. case '?': return -EINVAL; -@@ -5979,16 +5984,24 @@ static int halt_now(enum action a) { +@@ -6266,16 +6272,24 @@ static int halt_now(enum action a) { * point on... */ reboot(RB_ENABLE_CAD); @@ -544,4 +567,4 @@ systemctl command as well as for the systemd-shutdown utility. + reboot(RB_HALT_SYSTEM); return -errno; - case ACTION_REBOOT: + case ACTION_REBOOT: { diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index c24e5f4..8b67bd8 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -7,13 +7,13 @@ NFS share is added as "After=" dependency to the .mount. Makefile.am | 2 src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/mount-iface.h | 25 +++++++ - src/core/mount.c | 34 ++++++++- + src/core/mount.c | 34 +++++++++ src/shared/util.c | 1 - 5 files changed, 232 insertions(+), 3 deletions(-) + 5 files changed, 233 insertions(+), 2 deletions(-) ---- systemd-208/Makefile.am -+++ systemd-208/Makefile.am 2014-02-26 13:44:19.816148628 +0100 -@@ -959,6 +959,8 @@ libsystemd_core_la_SOURCES = \ +--- systemd-209/Makefile.am ++++ systemd-209/Makefile.am 2014-02-26 12:44:20.000000000 +0000 +@@ -987,6 +987,8 @@ libsystemd_core_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ @@ -22,8 +22,8 @@ NFS share is added as "After=" dependency to the .mount. src/core/loopback-setup.h \ src/core/loopback-setup.c \ src/core/condition.c \ ---- systemd-208/src/core/mount-iface.c -+++ systemd-208/src/core/mount-iface.c 2014-02-26 11:18:36.350742718 +0100 +--- systemd-209/src/core/mount-iface.c ++++ systemd-209/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -198,8 +198,8 @@ NFS share is added as "After=" dependency to the .mount. + freeifaddrs(ifa_list); + ifa_list = NULL; +} ---- systemd-208/src/core/mount-iface.h -+++ systemd-208/src/core/mount-iface.h 2014-02-26 11:08:19.797906189 +0100 +--- systemd-209/src/core/mount-iface.h ++++ systemd-209/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -226,8 +226,8 @@ NFS share is added as "After=" dependency to the .mount. + +char *host2iface(const char *ip); +void freeroutes(void); ---- systemd-208/src/core/mount.c -+++ systemd-208/src/core/mount.c 2014-02-26 12:20:00.883799034 +0100 +--- systemd-209/src/core/mount.c ++++ systemd-209/src/core/mount.c 2014-02-28 13:01:00.000000000 +0000 @@ -36,6 +36,7 @@ #include "mkdir.h" #include "path-util.h" @@ -236,16 +236,18 @@ NFS share is added as "After=" dependency to the .mount. #include "unit-name.h" #include "dbus-mount.h" #include "special.h" -@@ -1420,7 +1421,7 @@ static int mount_add_one( - bool set_flags) { - int r; - Unit *u; +@@ -1388,8 +1389,9 @@ static int mount_add_one( + _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; + bool load_extras = false; + MountParameters *p; - bool delete; + bool delete, isnetwork; - char *e, *w = NULL, *o = NULL, *f = NULL; - MountParameters *p; - bool load_extras = false; -@@ -1447,10 +1448,11 @@ static int mount_add_one( + Unit *u; ++ char *c; + int r; + + assert(m); +@@ -1414,6 +1416,8 @@ static int mount_add_one( if (!e) return -ENOMEM; @@ -253,19 +255,25 @@ NFS share is added as "After=" dependency to the .mount. + u = manager_get_unit(m, e); if (!u) { -- const char* const target = -- fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; -+ const char* const target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; - delete = true; +@@ -1442,7 +1446,7 @@ static int mount_add_one( + if (m->running_as == SYSTEMD_SYSTEM) { + const char* target; -@@ -1544,6 +1546,31 @@ static int mount_add_one( +- target = fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; ++ target = isnetwork ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; + + r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); + if (r < 0) +@@ -1511,6 +1515,32 @@ static int mount_add_one( goto fail; } -+ if (isnetwork && (e = strrchr(p->what, ':')) && *(e+1) == '/' && (e = strdup(p->options))) { -+ char *addr = strstr(e, ",addr="); -+ if (addr) { ++ if (isnetwork && (c = strrchr(p->what, ':')) && *(c+1) == '/') { ++ _cleanup_free_ char *opt = strdup(p->options); ++ char *addr; ++ ++ if (opt && (addr = strstr(opt, ",addr="))) { + char *colon, *iface; + + addr += 6; @@ -274,7 +282,7 @@ NFS share is added as "After=" dependency to the .mount. + + iface = host2iface(addr); + if (iface) { -+ char* target; ++ _cleanup_free_ char* target = NULL; + if (asprintf(&target, "sys-subsystem-net-devices-%s.device", iface) < 0) + log_oom(); + else { @@ -285,13 +293,12 @@ NFS share is added as "After=" dependency to the .mount. + } + } + } -+ free(e); + } + unit_add_to_dbus_queue(u); return 0; -@@ -1611,6 +1638,7 @@ static int mount_load_proc_self_mountinf +@@ -1574,6 +1604,7 @@ static int mount_load_proc_self_mountinf if (k < 0) r = k; } @@ -299,9 +306,9 @@ NFS share is added as "After=" dependency to the .mount. return r; } ---- systemd-208/src/shared/util.c -+++ systemd-208/src/shared/util.c 2014-02-24 16:17:41.682298917 +0100 -@@ -1593,6 +1593,7 @@ bool fstype_is_network(const char *fstyp +--- systemd-209/src/shared/util.c ++++ systemd-209/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 +@@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp "ncp\0" "nfs\0" "nfs4\0" diff --git a/0001-analyze-set-text-on-side-with-most-space.patch b/0001-analyze-set-text-on-side-with-most-space.patch deleted file mode 100644 index 6268160..0000000 --- a/0001-analyze-set-text-on-side-with-most-space.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 95168f7d55181475946ad93db30255c4d709df03 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 01 Nov 2013 21:57:47 +0000 -Subject: analyze: plot: place the text on the side with most space - -Set the width of the svg to always fit the longest string -while taking its starting position into consideration. - -Place the text on the right while the starting point is -in the first half of the screen. After that we put it on -the left to save the svg from being wider that it has to. ---- -diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c -index 6bfe13d..8730723 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -509,7 +509,7 @@ static int analyze_plot(sd_bus *bus) { - m++; - - for (u = times; u < times + n; u++) { -- double len; -+ double text_start, text_width; - - if (u->ixt < boot->userspace_time || - u->ixt > boot->finish_time) { -@@ -517,10 +517,14 @@ static int analyze_plot(sd_bus *bus) { - u->name = NULL; - continue; - } -- len = ((boot->firmware_time + u->ixt) * SCALE_X) -- + (10.0 * strlen(u->name)); -- if (len > width) -- width = len; -+ -+ /* If the text cannot fit on the left side then -+ * increase the svg width so it fits on the right. -+ * TODO: calculate the text width more accurately */ -+ text_width = 8.0 * strlen(u->name); -+ text_start = (boot->firmware_time + u->ixt) * SCALE_X; -+ if (text_width > text_start && text_width + text_start > width) -+ width = text_width + text_start; - - if (u->iet > u->ixt && u->iet <= boot->finish_time - && u->aet == 0 && u->axt == 0) -@@ -608,7 +612,7 @@ static int analyze_plot(sd_bus *bus) { - svg_bar("active", boot->userspace_time, boot->finish_time, y); - svg_bar("generators", boot->generators_start_time, boot->generators_finish_time, y); - svg_bar("unitsload", boot->unitsload_start_time, boot->unitsload_finish_time, y); -- svg_text("left", boot->userspace_time, y, "systemd"); -+ svg_text(true, boot->userspace_time, y, "systemd"); - y++; - - for (u = times; u < times + n; u++) { -@@ -622,7 +626,8 @@ static int analyze_plot(sd_bus *bus) { - svg_bar("active", u->aet, u->axt, y); - svg_bar("deactivating", u->axt, u->iet, y); - -- b = u->ixt * SCALE_X > width * 2 / 3; -+ /* place the text on the left if we have passed the half of the svg width */ -+ b = u->ixt * SCALE_X < width / 2; - if (u->time) - svg_text(b, u->ixt, y, "%s (%s)", - u->name, format_timespan(ts, sizeof(ts), u->time, USEC_PER_MSEC)); -@@ -634,19 +639,19 @@ static int analyze_plot(sd_bus *bus) { - /* Legend */ - y++; - svg_bar("activating", 0, 300000, y); -- svg_text("right", 400000, y, "Activating"); -+ svg_text(true, 400000, y, "Activating"); - y++; - svg_bar("active", 0, 300000, y); -- svg_text("right", 400000, y, "Active"); -+ svg_text(true, 400000, y, "Active"); - y++; - svg_bar("deactivating", 0, 300000, y); -- svg_text("right", 400000, y, "Deactivating"); -+ svg_text(true, 400000, y, "Deactivating"); - y++; - svg_bar("generators", 0, 300000, y); -- svg_text("right", 400000, y, "Generators"); -+ svg_text(true, 400000, y, "Generators"); - y++; - svg_bar("unitsload", 0, 300000, y); -- svg_text("right", 400000, y, "Loading unit files"); -+ svg_text(true, 400000, y, "Loading unit files"); - y++; - - svg("\n\n"); --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-analyze-set-white-background.patch b/0001-analyze-set-white-background.patch deleted file mode 100644 index 8906284..0000000 --- a/0001-analyze-set-white-background.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 418e37506e6a419a808a82081ca1616caa03a206 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Mon, 21 Oct 2013 19:29:23 +0000 -Subject: analyze: set white backgound - -In programs like eog and gimp the transparant background did not -look very good. - -https://bugs.freedesktop.org/show_bug.cgi?id=70720 ---- -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 26769d6..0cc4de7 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -507,6 +507,7 @@ static int analyze_plot(DBusConnection *bus) { - /* style sheet */ - svg("\n \n\n\n"); - -+ svg("\n"); - svg("%s", pretty_times); - svg("%s %s (%s %s) %s", - isempty(osname) ? "Linux" : osname, --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-avoid-abort-due-timeout-at-user-service.patch b/0001-avoid-abort-due-timeout-at-user-service.patch new file mode 100644 index 0000000..e441beb --- /dev/null +++ b/0001-avoid-abort-due-timeout-at-user-service.patch @@ -0,0 +1,15 @@ +--- systemd-209/src/login/logind-session.c ++++ systemd-209/src/login/logind-session.c 2014-02-28 12:12:14.762736079 +0000 +@@ -525,6 +525,12 @@ int session_start(Session *s) { + if (r < 0) + return r; + ++ if (!s->user->slice) { ++ if (errno) ++ return -errno; ++ return -ESTALE; ++ } ++ + /* Create cgroup */ + r = session_start_scope(s); + if (r < 0) diff --git a/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch b/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch deleted file mode 100644 index 3729198..0000000 --- a/0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 6fa7e1a944a2dbb89e794ad0f9da5d0fda5dc4a9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 13:38:55 +0100 -Subject: [PATCH 1/3] core: introduce new KillMode=mixed which sends SIGTERM - only to the main process, but SIGKILL to all daemon processes - -This should fix some race with terminating systemd --user, where the -system systemd instance might race against the user systemd instance -when sending SIGTERM. ---- - man/systemd.kill.xml | 77 +++++++++++++++++++++++++++++++++----------------- - src/core/kill.c | 1 + - src/core/kill.h | 1 + - src/core/unit.c | 3 +- - units/user@.service.in | 1 + - 5 files changed, 56 insertions(+), 27 deletions(-) - -diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml -index 1b10fba..a4009aa 100644 ---- a/man/systemd.kill.xml -+++ b/man/systemd.kill.xml -@@ -44,39 +44,44 @@ - - - systemd.kill -- Kill environment configuration -+ Process killing procedure -+ configuration - - - - service.service, - socket.socket, - mount.mount, -- swap.swap -+ swap.swap, -+ scope.scope - - - - Description - - Unit configuration files for services, sockets, -- mount points and swap devices share a subset of -- configuration options which define the process killing -- parameters of spawned processes. -+ mount points, swap devices and scopes share a subset -+ of configuration options which define the -+ killing procedure of processes belonging to the unit. - - This man page lists the configuration options -- shared by these four unit types. See -+ shared by these five unit types. See - systemd.unit5 -- for the common options of all unit configuration -- files, and -+ for the common options shared by all unit -+ configuration files, and - systemd.service5, - systemd.socket5, -- systemd.swap5 -- and -+ systemd.swap5, - systemd.mount5 -- for more information on the specific unit -- configuration files. The execution specific -+ and -+ systemd.scope5 -+ for more information on the configuration file options -+ specific to each unit type. -+ -+ The kill procedure - configuration options are configured in the [Service], -- [Socket], [Mount], or [Swap] section, depending on the unit -- type. -+ [Socket], [Mount] or [Swap] section, depending on the -+ unit type. - - - -@@ -87,32 +92,40 @@ - - KillMode= - Specifies how -- processes of this service shall be -+ processes of this unit shall be - killed. One of - , - , -+ , - . - - If set to - , all - remaining processes in the control -- group of this unit will be terminated -- on unit stop (for services: after the -+ group of this unit will be killed on -+ unit stop (for services: after the - stop command is executed, as - configured with - ExecStop=). If set - to , only the - main process itself is killed. If set -- to , no process is -+ to the -+ SIGTERM signal -+ (see below) is sent to the main -+ process while the subsequent -+ SIGKILL signal -+ (see below) is sent to all remaining -+ processes of the unit's control -+ group. If set to -+ , no process is - killed. In this case only the stop -- command will be executed on unit -- stop, but no process be killed -+ command will be executed on unit stop, -+ but no process be killed - otherwise. Processes remaining alive - after stop are left in their control - group and the control group continues - to exist after stop unless it is -- empty. Defaults to -- . -+ empty. - - Processes will first be - terminated via -@@ -133,14 +146,24 @@ - option). See - kill2 - for more -- information. -+ information. -+ -+ Defaults to -+ . - - - - KillSignal= - Specifies which signal -- to use when killing a -- service. Defaults to SIGTERM. -+ to use when killing a service. This -+ controls the signal that is sent as -+ first step of shutting down a unit -+ (see above), and is usually followed -+ by SIGKILL (see -+ above and below). For a list of valid -+ signals, see -+ signal7. Defaults -+ to SIGTERM. - - - -@@ -184,7 +207,9 @@ - systemd.swap5, - systemd.mount5, - systemd.exec5, -- systemd.directives7 -+ systemd.directives7, -+ kill2, -+ signal7 - - - -diff --git a/src/core/kill.c b/src/core/kill.c -index ea947c2..4271346 100644 ---- a/src/core/kill.c -+++ b/src/core/kill.c -@@ -52,6 +52,7 @@ void kill_context_dump(KillContext *c, FILE *f, const char *prefix) { - static const char* const kill_mode_table[_KILL_MODE_MAX] = { - [KILL_CONTROL_GROUP] = "control-group", - [KILL_PROCESS] = "process", -+ [KILL_MIXED] = "mixed", - [KILL_NONE] = "none" - }; - -diff --git a/src/core/kill.h b/src/core/kill.h -index 41773f0..d5f125f 100644 ---- a/src/core/kill.h -+++ b/src/core/kill.h -@@ -32,6 +32,7 @@ typedef enum KillMode { - /* The kill mode is a property of a unit. */ - KILL_CONTROL_GROUP = 0, - KILL_PROCESS, -+ KILL_MIXED, - KILL_NONE, - _KILL_MODE_MAX, - _KILL_MODE_INVALID = -1 -diff --git a/src/core/unit.c b/src/core/unit.c -index 4b97710..0b10e57 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -3007,7 +3007,7 @@ int unit_kill_context( - } - } - -- if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) { -+ if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) { - _cleanup_set_free_ Set *pid_set = NULL; - - /* Exclude the main/control pids from being killed via the cgroup */ -@@ -3021,6 +3021,7 @@ int unit_kill_context( - log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r)); - } else if (r > 0) { - wait_for_exit = true; -+ - if (c->send_sighup) { - set_free(pid_set); - -diff --git a/units/user@.service.in b/units/user@.service.in -index 3718a57..3bb8696 100644 ---- a/units/user@.service.in -+++ b/units/user@.service.in -@@ -17,3 +17,4 @@ Environment=SHELL=%s - ExecStart=-@rootlibexecdir@/systemd --user - Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket - Slice=user-%i.slice -+KillMode=mixed --- -1.8.4 - diff --git a/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch b/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch deleted file mode 100644 index 40479ea..0000000 --- a/0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch +++ /dev/null @@ -1,329 +0,0 @@ -From d420282b28f50720e233ccb1c02547c562195653 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 01:39:53 +0100 -Subject: [PATCH] core: replace OnFailureIsolate= setting by a more generic - OnFailureJobMode= setting and make use of it where applicable - ---- - man/systemd.unit.xml | 40 +++++++++++++++++++++++++---------- - src/core/dbus-unit.c | 3 ++- - src/core/job.h | 3 +-- - src/core/load-fragment-gperf.gperf.m4 | 3 ++- - src/core/load-fragment.c | 31 +++++++++++++++++++++++++++ - src/core/load-fragment.h | 2 ++ - src/core/unit.c | 11 +++++----- - src/core/unit.h | 4 ++-- - units/initrd-cleanup.service.in | 1 + - units/initrd-fs.target | 2 +- - units/initrd-parse-etc.service.in | 1 + - units/initrd-root-fs.target | 2 +- - units/initrd-switch-root.service.in | 1 + - units/initrd.target | 2 +- - units/local-fs.target | 2 +- - 15 files changed, 82 insertions(+), 26 deletions(-) - -Index: systemd-208/man/systemd.unit.xml -=================================================================== ---- systemd-208.orig/man/systemd.unit.xml -+++ systemd-208/man/systemd.unit.xml -@@ -669,19 +669,37 @@ - - - -- OnFailureIsolate= -+ OnFailureJobMode= - -- Takes a boolean -- argument. If , the -- unit listed in -+ Takes a value of -+ fail, -+ replace, -+ replace-irreversibly -+ or -+ isolate. Defaults -+ to -+ replace. Specifies -+ how the units listed in - OnFailure= will be -- enqueued in isolation mode, i.e. all -- units that are not its dependency will -- be stopped. If this is set, only a -+ enqueued. If set to -+ fail and -+ contradicting jobs are already queued, -+ cause the activation to fail. If set -+ to replace and -+ contradicting jobs area already -+ queued, replace -+ those. replace-irreversibly -+ is similar to -+ replace, however, -+ creates jobs that cannot be reversed -+ unless they finished or are explicitly -+ canceled. isolate -+ may be used to terminate all other -+ units but the specified one. If -+ this is set to -+ isolate, only a - single unit may be listed in -- OnFailure=. Defaults -- to -- . -+ OnFailure=.. - - - -Index: systemd-208/src/core/dbus-unit.c -=================================================================== ---- systemd-208.orig/src/core/dbus-unit.c -+++ systemd-208/src/core/dbus-unit.c -@@ -133,6 +133,7 @@ static int bus_unit_append_description(D - } - - static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_load_state, unit_load_state, UnitLoadState); -+static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_unit_append_job_mode, job_mode, JobMode); - - static int bus_unit_append_active_state(DBusMessageIter *i, const char *property, void *data) { - Unit *u = data; -@@ -1079,7 +1080,7 @@ const BusProperty bus_unit_properties[] - { "RefuseManualStop", bus_property_append_bool, "b", offsetof(Unit, refuse_manual_stop) }, - { "AllowIsolate", bus_property_append_bool, "b", offsetof(Unit, allow_isolate) }, - { "DefaultDependencies", bus_property_append_bool, "b", offsetof(Unit, default_dependencies) }, -- { "OnFailureIsolate", bus_property_append_bool, "b", offsetof(Unit, on_failure_isolate) }, -+ { "OnFailureJobMode", bus_unit_append_job_mode, "s", offsetof(Unit, on_failure_job_mode) }, - { "IgnoreOnIsolate", bus_property_append_bool, "b", offsetof(Unit, ignore_on_isolate) }, - { "IgnoreOnSnapshot", bus_property_append_bool, "b", offsetof(Unit, ignore_on_snapshot) }, - { "NeedDaemonReload", bus_unit_append_need_daemon_reload, "b", 0 }, -Index: systemd-208/src/core/job.h -=================================================================== ---- systemd-208.orig/src/core/job.h -+++ systemd-208/src/core/job.h -@@ -83,7 +83,7 @@ enum JobState { - enum JobMode { - JOB_FAIL, /* Fail if a conflicting job is already queued */ - JOB_REPLACE, /* Replace an existing conflicting job */ -- JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversible jobs */ -+ JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */ - JOB_ISOLATE, /* Start a unit, and stop all others */ - JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */ - JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ -Index: systemd-208/src/core/load-fragment-gperf.gperf.m4 -=================================================================== ---- systemd-208.orig/src/core/load-fragment-gperf.gperf.m4 -+++ systemd-208/src/core/load-fragment-gperf.gperf.m4 -@@ -122,7 +122,8 @@ Unit.RefuseManualStart, config_ - Unit.RefuseManualStop, config_parse_bool, 0, offsetof(Unit, refuse_manual_stop) - Unit.AllowIsolate, config_parse_bool, 0, offsetof(Unit, allow_isolate) - Unit.DefaultDependencies, config_parse_bool, 0, offsetof(Unit, default_dependencies) --Unit.OnFailureIsolate, config_parse_bool, 0, offsetof(Unit, on_failure_isolate) -+Unit.OnFailureJobMode, config_parse_job_mode, 0, offsetof(Unit, on_failure_job_mode) -+Unit.OnFailureIsolate, config_parse_job_mode_isolate, 0, offsetof(Unit, on_failure_job_mode) - Unit.IgnoreOnIsolate, config_parse_bool, 0, offsetof(Unit, ignore_on_isolate) - Unit.IgnoreOnSnapshot, config_parse_bool, 0, offsetof(Unit, ignore_on_snapshot) - Unit.JobTimeoutSec, config_parse_sec, 0, offsetof(Unit, job_timeout) -Index: systemd-208/src/core/load-fragment.c -=================================================================== ---- systemd-208.orig/src/core/load-fragment.c -+++ systemd-208/src/core/load-fragment.c -@@ -2314,6 +2314,36 @@ int config_parse_blockio_bandwidth( - return 0; - } - -+DEFINE_CONFIG_PARSE_ENUM(config_parse_job_mode, job_mode, JobMode, "Failed to parse job mode"); -+ -+int config_parse_job_mode_isolate( -+ const char *unit, -+ const char *filename, -+ unsigned line, -+ const char *section, -+ const char *lvalue, -+ int ltype, -+ const char *rvalue, -+ void *data, -+ void *userdata) { -+ -+ JobMode *m = data; -+ int r; -+ -+ assert(filename); -+ assert(lvalue); -+ assert(rvalue); -+ -+ r = parse_boolean(rvalue); -+ if (r < 0) { -+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse boolean, ignoring: %s", rvalue); -+ return 0; -+ } -+ -+ *m = r ? JOB_ISOLATE : JOB_REPLACE; -+ return 0; -+} -+ - #define FOLLOW_MAX 8 - - static int open_follow(char **filename, FILE **_f, Set *names, char **_final) { -Index: systemd-208/src/core/load-fragment.h -=================================================================== ---- systemd-208.orig/src/core/load-fragment.h -+++ systemd-208/src/core/load-fragment.h -@@ -83,6 +83,8 @@ int config_parse_device_allow(const char - int config_parse_blockio_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - int config_parse_blockio_device_weight(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - int config_parse_blockio_bandwidth(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -+int config_parse_job_mode(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -+int config_parse_job_mode_isolate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); - - /* gperf prototypes */ - const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, unsigned length); -Index: systemd-208/src/core/unit.c -=================================================================== ---- systemd-208.orig/src/core/unit.c -+++ systemd-208/src/core/unit.c -@@ -85,6 +85,7 @@ Unit *unit_new(Manager *m, size_t size) - u->deserialized_job = _JOB_TYPE_INVALID; - u->default_dependencies = true; - u->unit_file_state = _UNIT_FILE_STATE_INVALID; -+ u->on_failure_job_mode = JOB_REPLACE; - - return u; - } -@@ -807,14 +808,14 @@ void unit_dump(Unit *u, FILE *f, const c - "%s\tRefuseManualStart: %s\n" - "%s\tRefuseManualStop: %s\n" - "%s\tDefaultDependencies: %s\n" -- "%s\tOnFailureIsolate: %s\n" -+ "%s\tOnFailureJobMode: %s\n" - "%s\tIgnoreOnIsolate: %s\n" - "%s\tIgnoreOnSnapshot: %s\n", - prefix, yes_no(u->stop_when_unneeded), - prefix, yes_no(u->refuse_manual_start), - prefix, yes_no(u->refuse_manual_stop), - prefix, yes_no(u->default_dependencies), -- prefix, yes_no(u->on_failure_isolate), -+ prefix, job_mode_to_string(u->on_failure_job_mode), - prefix, yes_no(u->ignore_on_isolate), - prefix, yes_no(u->ignore_on_snapshot)); - -@@ -985,11 +986,11 @@ int unit_load(Unit *u) { - if (r < 0) - goto fail; - -- if (u->on_failure_isolate && -+ if (u->on_failure_job_mode == JOB_ISOLATE && - set_size(u->dependencies[UNIT_ON_FAILURE]) > 1) { - - log_error_unit(u->id, -- "More than one OnFailure= dependencies specified for %s but OnFailureIsolate= enabled. Refusing.", u->id); -+ "More than one OnFailure= dependencies specified for %s but OnFailureJobMode=isolate set. Refusing.", u->id); - - r = -EINVAL; - goto fail; -@@ -1394,7 +1395,7 @@ void unit_start_on_failure(Unit *u) { - SET_FOREACH(other, u->dependencies[UNIT_ON_FAILURE], i) { - int r; - -- r = manager_add_job(u->manager, JOB_START, other, u->on_failure_isolate ? JOB_ISOLATE : JOB_REPLACE, true, NULL, NULL); -+ r = manager_add_job(u->manager, JOB_START, other, u->on_failure_job_mode, true, NULL, NULL); - if (r < 0) - log_error_unit(u->id, "Failed to enqueue OnFailure= job: %s", strerror(-r)); - } -Index: systemd-208/src/core/unit.h -=================================================================== ---- systemd-208.orig/src/core/unit.h -+++ systemd-208/src/core/unit.h -@@ -228,8 +228,8 @@ struct Unit { - /* Allow isolation requests */ - bool allow_isolate; - -- /* Isolate OnFailure unit */ -- bool on_failure_isolate; -+ /* How to start OnFailure units */ -+ JobMode on_failure_job_mode; - - /* Ignore this unit when isolating */ - bool ignore_on_isolate; -Index: systemd-208/units/initrd-cleanup.service.in -=================================================================== ---- systemd-208.orig/units/initrd-cleanup.service.in -+++ systemd-208/units/initrd-cleanup.service.in -@@ -10,6 +10,7 @@ Description=Cleaning Up and Shutting Dow - DefaultDependencies=no - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - After=initrd-root-fs.target initrd-fs.target initrd.target - - [Service] -Index: systemd-208/units/initrd-fs.target -=================================================================== ---- systemd-208.orig/units/initrd-fs.target -+++ systemd-208/units/initrd-fs.target -@@ -9,7 +9,7 @@ - Description=Initrd File Systems - Documentation=man:systemd.special(7) - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - After=initrd-parse-etc.service - DefaultDependencies=no -Index: systemd-208/units/initrd-parse-etc.service.in -=================================================================== ---- systemd-208.orig/units/initrd-parse-etc.service.in -+++ systemd-208/units/initrd-parse-etc.service.in -@@ -11,6 +11,7 @@ DefaultDependencies=no - Requires=initrd-root-fs.target - After=initrd-root-fs.target - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - - [Service] -Index: systemd-208/units/initrd-root-fs.target -=================================================================== ---- systemd-208.orig/units/initrd-root-fs.target -+++ systemd-208/units/initrd-root-fs.target -@@ -10,6 +10,6 @@ Description=Initrd Root File System - Documentation=man:systemd.special(7) - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - DefaultDependencies=no - Conflicts=shutdown.target -Index: systemd-208/units/initrd-switch-root.service.in -=================================================================== ---- systemd-208.orig/units/initrd-switch-root.service.in -+++ systemd-208/units/initrd-switch-root.service.in -@@ -10,6 +10,7 @@ Description=Switch Root - DefaultDependencies=no - ConditionPathExists=/etc/initrd-release - OnFailure=emergency.target -+OnFailureJobMode=replace-irreversibly - AllowIsolate=yes - - [Service] -Index: systemd-208/units/initrd.target -=================================================================== ---- systemd-208.orig/units/initrd.target -+++ systemd-208/units/initrd.target -@@ -9,7 +9,7 @@ - Description=Initrd Default Target - Documentation=man:systemd.special(7) - OnFailure=emergency.target --OnFailureIsolate=yes -+OnFailureJobMode=replace-irreversibly - ConditionPathExists=/etc/initrd-release - Requires=basic.target - Wants=initrd-root-fs.target initrd-fs.target initrd-parse-etc.service -Index: systemd-208/units/local-fs.target -=================================================================== ---- systemd-208.orig/units/local-fs.target -+++ systemd-208/units/local-fs.target -@@ -12,4 +12,4 @@ After=local-fs-pre.target - DefaultDependencies=no - Conflicts=shutdown.target - OnFailure=emergency.target --OnFailureIsolate=no -+OnFailureJobMode=replace-irreversibly diff --git a/0001-core-unify-the-way-we-denote-serialization-attribute.patch b/0001-core-unify-the-way-we-denote-serialization-attribute.patch deleted file mode 100644 index e33e45d..0000000 --- a/0001-core-unify-the-way-we-denote-serialization-attribute.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8d1a28020409ee4afea6ef8c1c4d3522a209284e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Oct 2013 00:13:55 +0200 -Subject: [PATCH] core: unify the way we denote serialization attributes - ---- - src/core/service.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 98b1599..96ed2d3 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2652,7 +2652,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { - unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); - - if (s->forbid_restart) -- unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); -+ unit_serialize_item(u, f, "forbid-restart", yes_no(s->forbid_restart)); - - return 0; - } -@@ -2790,12 +2790,12 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, - return log_oom(); - - s->exec_context.var_tmp_dir = t; -- } else if (streq(key, "forbid_restart")) { -+ } else if (streq(key, "forbid-restart")) { - int b; - - b = parse_boolean(value); - if (b < 0) -- log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); -+ log_debug_unit(u->id, "Failed to parse forbid-restart value %s", value); - else - s->forbid_restart = b; - } else --- -1.8.4 - diff --git a/0001-dbus-common-avoid-leak-in-error-path.patch b/0001-dbus-common-avoid-leak-in-error-path.patch deleted file mode 100644 index e2ac93f..0000000 --- a/0001-dbus-common-avoid-leak-in-error-path.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 74dcc2df7b2a340c3e1fe9e61e5c8deb324c83d7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:20 -0400 -Subject: [PATCH] dbus-common: avoid leak in error path - -src/shared/dbus-common.c:968:33: warning: Potential leak of memory pointed to by 'l' - return -EINVAL; - ^~~~~~ ---- - src/shared/dbus-common.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c -index c727cae..3ba2d87 100644 ---- a/src/shared/dbus-common.c -+++ b/src/shared/dbus-common.c -@@ -934,7 +934,7 @@ int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l) { - int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - DBusMessageIter sub, sub2; - unsigned n = 0, i = 0; -- char **l; -+ _cleanup_strv_free_ char **l = NULL; - - assert(iter); - assert(_l); -@@ -953,6 +953,7 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - l = new(char*, n*2+1); - if (!l) - return -ENOMEM; -+ l[0] = NULL; /* make sure that l is properly terminated at all times */ - - dbus_message_iter_recurse(iter, &sub); - -@@ -968,26 +969,25 @@ int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l) { - return -EINVAL; - - l[i] = strdup(a); -- if (!l[i]) { -- strv_free(l); -+ if (!l[i]) - return -ENOMEM; -- } -+ i++; - -- l[++i] = strdup(b); -- if (!l[i]) { -- strv_free(l); -+ l[i] = strdup(b); -+ if (!l[i]) - return -ENOMEM; -- } -- - i++; -+ - dbus_message_iter_next(&sub); - } - - assert(i == n*2); - l[i] = NULL; - -- if (_l) -+ if (_l) { - *_l = l; -+ l = NULL; /* avoid freeing */ -+ } - - return 0; - } --- -1.8.4 - diff --git a/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch b/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch deleted file mode 100644 index 53e8253..0000000 --- a/0001-do-not-accept-garbage-from-acpi-firmware-performance.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6c7980093c4e39d07bf06484f96f489e236c7c29 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 10 Oct 2013 01:38:11 +0200 -Subject: [PATCH] do not accept "garbage" from acpi firmware performance data - (FPDT) - -00000000 46 42 50 54 38 00 00 00 02 00 30 02 00 00 00 00 |FBPT8.....0.....| -00000010 23 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |#E..............| -00000020 f5 6a 51 00 00 00 00 00 00 00 00 00 00 00 00 00 |.jQ.............| -00000030 00 00 00 00 00 00 00 00 70 74 61 6c 58 00 00 00 |........ptalX...| ---- - src/shared/acpi-fpdt.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index af58c7c..75648b4 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -146,6 +146,11 @@ int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { - if (brec.type != ACPI_FPDT_BOOT_REC) - return -EINVAL; - -+ if (brec.startup_start == 0 || brec.exit_services_exit < brec.startup_start) -+ return -EINVAL; -+ if (brec.exit_services_exit > NSEC_PER_HOUR) -+ return -EINVAL; -+ - if (loader_start) - *loader_start = brec.startup_start / 1000; - if (loader_exit) --- -1.8.4 - diff --git a/0001-drop-ins-check-return-value.patch b/0001-drop-ins-check-return-value.patch deleted file mode 100644 index 35a0f70..0000000 --- a/0001-drop-ins-check-return-value.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6891529fe1176c046ece579807ff48e3191692f3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 11 Oct 2013 19:33:36 -0400 -Subject: [PATCH] drop-ins: check return value - -If the function failed, nothing serious would happen -because unlink would probably return EFAULT, but this -would obscure the real error and is a bit sloppy. ---- - src/core/unit.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 4b97710..1db7d06 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2908,6 +2908,9 @@ int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name) { - return 0; - - r = drop_in_file(u, mode, name, &p, &q); -+ if (r < 0) -+ return r; -+ - if (unlink(q) < 0) - r = errno == ENOENT ? 0 : -errno; - else --- -1.8.4 - diff --git a/0001-gpt-auto-generator-exit-immediately-if-in-container.patch b/0001-gpt-auto-generator-exit-immediately-if-in-container.patch deleted file mode 100644 index 4d1fee2..0000000 --- a/0001-gpt-auto-generator-exit-immediately-if-in-container.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9a5cb1371b6d8b0a04bd08665bcf9b06cb40c64c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 3 Oct 2013 22:13:01 -0400 -Subject: [PATCH] gpt-auto-generator: exit immediately if in container - -Otherwise we get an ugly warning when running systemd in -a container. ---- - src/gpt-auto-generator/gpt-auto-generator.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c -index ca54925..d2b4213 100644 ---- a/src/gpt-auto-generator/gpt-auto-generator.c -+++ b/src/gpt-auto-generator/gpt-auto-generator.c -@@ -38,6 +38,7 @@ - #include "libudev.h" - #include "special.h" - #include "unit-name.h" -+#include "virt.h" - - /* TODO: - * -@@ -481,6 +482,13 @@ int main(int argc, char *argv[]) { - umask(0022); - - if (in_initrd()) { -+ log_debug("In initrd, exiting."); -+ r = 0; -+ goto finish; -+ } -+ -+ if (detect_container(NULL) > 0) { -+ log_debug("In a container, exiting."); - r = 0; - goto finish; - } --- -1.8.4 - diff --git a/0001-journald-fix-minor-memory-leak.patch b/0001-journald-fix-minor-memory-leak.patch deleted file mode 100644 index 10df2c0..0000000 --- a/0001-journald-fix-minor-memory-leak.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2ee0591d12b9e725c4585502285fd91cde682d9b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 9 Oct 2013 04:03:45 +0200 -Subject: [PATCH] journald: fix minor memory leak - ---- - src/journal/journal-vacuum.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c -index c73ad8f..8d5effb 100644 ---- a/src/journal/journal-vacuum.c -+++ b/src/journal/journal-vacuum.c -@@ -278,6 +278,8 @@ int journal_directory_vacuum( - } else if (errno != ENOENT) - log_warning("Failed to delete %s/%s: %m", directory, p); - -+ free(p); -+ - continue; - } - --- -1.8.4 - diff --git a/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch b/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch deleted file mode 100644 index 0ed6caa..0000000 --- a/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2b98f75a63e6022bf74a7d678c47faa5208c794f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 9 Oct 2013 22:13:13 -0400 -Subject: [PATCH] journald: remove rotated file from hashmap when rotation - fails - -Before, when the user journal file was rotated, journal_file_rotate -could close the old file and fail to open the new file. In that -case, we would leave the old (deallocated) file in the hashmap. -On subsequent accesses, we could retrieve this stale entry, leading -to a segfault. - -When journal_file_rotate fails with the file pointer set to 0, -old file is certainly gone, and cannot be used anymore. - -https://bugzilla.redhat.com/show_bug.cgi?id=890463 ---- - src/journal/journald-server.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index 4f47eb1..e03e413 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -321,8 +321,10 @@ void server_rotate(Server *s) { - if (r < 0) - if (f) - log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -- else -+ else { - log_error("Failed to create user journal: %s", strerror(-r)); -+ hashmap_remove(s->user_journals, k); -+ } - else { - hashmap_replace(s->user_journals, k, f); - server_fix_perms(s, f, PTR_TO_UINT32(k)); --- -1.8.4 - diff --git a/0001-login-fix-invalid-free-in-sd_session_get_vt.patch b/0001-login-fix-invalid-free-in-sd_session_get_vt.patch deleted file mode 100644 index 7a7551e..0000000 --- a/0001-login-fix-invalid-free-in-sd_session_get_vt.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f4fee033bf0f623de74f3e8a14c42b8ff81c36e Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Oct 2013 13:09:37 +0200 -Subject: [PATCH] login: fix invalid free() in sd_session_get_vt() - -We need to clear variables markes as _cleanup_free_. Otherwise, our -error-paths might corrupt random memory. ---- - src/login/sd-login.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/sd-login.c b/src/login/sd-login.c -index 71d8c29..6c27dfe 100644 ---- a/src/login/sd-login.c -+++ b/src/login/sd-login.c -@@ -350,7 +350,7 @@ _public_ int sd_session_get_tty(const char *session, char **tty) { - } - - _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { -- _cleanup_free_ char *vtnr_string; -+ _cleanup_free_ char *vtnr_string = NULL; - unsigned u; - int r; - --- -1.8.4 - diff --git a/0001-login-make-sd_session_get_vt-actually-work.patch b/0001-login-make-sd_session_get_vt-actually-work.patch deleted file mode 100644 index 49a0a13..0000000 --- a/0001-login-make-sd_session_get_vt-actually-work.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0581dac2c146cef0f55841a4c136dc48409c8eaa Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 10 Oct 2013 13:11:27 +0200 -Subject: [PATCH] login: make sd_session_get_vt() actually work - -We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns -an error. ---- - src/login/sd-login.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/sd-login.c b/src/login/sd-login.c -index 6c27dfe..7e25041 100644 ---- a/src/login/sd-login.c -+++ b/src/login/sd-login.c -@@ -354,7 +354,7 @@ _public_ int sd_session_get_vt(const char *session, unsigned *vtnr) { - unsigned u; - int r; - -- r = session_get_string(session, "VTNr", &vtnr_string); -+ r = session_get_string(session, "VTNR", &vtnr_string); - if (r < 0) - return r; - --- -1.8.4 - diff --git a/0001-logind-fix-bus-introspection-data-for-TakeControl.patch b/0001-logind-fix-bus-introspection-data-for-TakeControl.patch deleted file mode 100644 index 829333e..0000000 --- a/0001-logind-fix-bus-introspection-data-for-TakeControl.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 660ea9620f7b8f99d08a2770d4e81acfd8aea02e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 4 Oct 2013 21:16:40 +0200 -Subject: [PATCH] logind: fix bus introspection data for TakeControl() - ---- - src/login/logind-session-dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c -index 5f6bafb..be4e01c 100644 ---- a/src/login/logind-session-dbus.c -+++ b/src/login/logind-session-dbus.c -@@ -41,7 +41,7 @@ - " \n" \ - " \n" \ - " \n" \ -- " \n" \ -+ " \n" \ - " \n" \ - " \n" \ - " \n" \ --- -1.8.4 - diff --git a/0001-logind-garbage-collect-stale-users.patch b/0001-logind-garbage-collect-stale-users.patch deleted file mode 100644 index fd91e8b..0000000 --- a/0001-logind-garbage-collect-stale-users.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 63966da86d8e71b1f3f2b57d5448770d526421f9 Mon Sep 17 00:00:00 2001 -From: Thomas Bächler -Date: Sun, 15 Dec 2013 11:06:37 +0000 -Subject: login: Don't stop a running user manager from garbage-collecting the user. - -With the current logic, a user will never be garbage-collected, since its -manager will always be around. Change the logic such that a user is -garbage-collected when it has no sessions and linger is disabled. ---- -diff --git a/src/login/logind-user.c b/src/login/logind-user.c -index 6ba8d98..441e086 100644 ---- a/src/login/logind-user.c -+++ b/src/login/logind-user.c -@@ -629,12 +629,6 @@ int user_check_gc(User *u, bool drop_not - if (u->slice_job || u->service_job) - return 1; - -- if (u->slice && manager_unit_is_active(u->manager, u->slice) != 0) -- return 1; -- -- if (u->service && manager_unit_is_active(u->manager, u->service) != 0) -- return 1; -- - return 0; - } - --- -cgit v0.9.0.2-2-gbebe diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch new file mode 100644 index 0000000..4c66289 --- /dev/null +++ b/0001-make-209-working-on-older-dist.patch @@ -0,0 +1,8 @@ +--- systemd-209/units/kmod-static-nodes.service.in ++++ systemd-209/units/kmod-static-nodes.service.in 2014-02-27 15:04:30.378236539 +0000 +@@ -15,4 +15,5 @@ ConditionPathExists=/lib/modules/%v/modu + [Service] + Type=oneshot + RemainAfterExit=yes ++ExecStartPre=@MKDIR_P@ /run/tmpfiles.d + ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf diff --git a/0001-make-fortify-happy-with-ppoll.patch b/0001-make-fortify-happy-with-ppoll.patch new file mode 100644 index 0000000..ed27a72 --- /dev/null +++ b/0001-make-fortify-happy-with-ppoll.patch @@ -0,0 +1,55 @@ +--- systemd-209/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-209/src/libsystemd/sd-bus/sd-bus.c 2014-02-28 11:08:21.354235373 +0000 +@@ -2548,7 +2548,7 @@ static int bus_poll(sd_bus *bus, bool ne + n = 2; + } + +- r = ppoll(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); ++ r = __ppoll_alias(p, n, m == (uint64_t) -1 ? NULL : timespec_store(&ts, m), NULL); + if (r < 0) + return -errno; + +--- systemd-209/src/core/hostname-setup.c ++++ systemd-209/src/core/hostname-setup.c 2014-02-28 11:14:51.594832792 +0000 +@@ -50,8 +50,8 @@ static int read_and_strip_hostname(const + } + + /* strip any leftover of a domain name */ +- if (domain = strchr(s, '.')) { +- *domain = NULL; ++ if ((domain = strchr(s, '.'))) { ++ *domain = '\0'; + } + + *hn = s; +--- systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c ++++ systemd-209/src/tty-ask-password-agent/tty-ask-password-agent.c 2014-02-28 11:41:42.254735820 +0000 +@@ -142,7 +142,7 @@ static int ask_password_plymouth( + goto finish; + } + +- if ((j = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((j = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; +@@ -595,7 +595,7 @@ static int watch_passwords(void) { + if ((r = show_passwords()) < 0) + log_error("Failed to show password: %s", strerror(-r)); + +- if (poll(pollfd, _FD_MAX, -1) < 0) { ++ if (__poll_alias(pollfd, _FD_MAX, -1) < 0) { + + if (errno == EINTR) + continue; +--- systemd-209/src/shared/ask-password-api.c ++++ systemd-209/src/shared/ask-password-api.c 2014-02-28 11:47:21.754234675 +0000 +@@ -138,7 +138,7 @@ int ask_password_tty( + goto finish; + } + +- if ((k = poll(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { ++ if ((k = __poll_alias(pollfd, notify > 0 ? 2 : 1, sleep_for)) < 0) { + + if (errno == EINTR) + continue; diff --git a/0001-make-tests-with-libseccomp-work.patch b/0001-make-tests-with-libseccomp-work.patch new file mode 100644 index 0000000..b93fbb9 --- /dev/null +++ b/0001-make-tests-with-libseccomp-work.patch @@ -0,0 +1,180 @@ +--- systemd-209/Makefile.am ++++ systemd-209/Makefile.am 2014-02-28 10:24:53.634235909 +0000 +@@ -1091,6 +1091,12 @@ systemd_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++systemd_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + dist_pkgsysconf_DATA += \ + src/core/system.conf \ + src/core/user.conf +@@ -1187,6 +1193,12 @@ test_engine_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_engine_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_job_type_SOURCES = \ + src/test/test-job-type.c + +@@ -1194,18 +1206,36 @@ test_job_type_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_job_type_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_ns_SOURCES = \ + src/test/test-ns.c + + test_ns_LDADD = \ + libsystemd-core.la + ++if HAVE_SECCOMP ++test_ns_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_loopback_SOURCES = \ + src/test/test-loopback.c + + test_loopback_LDADD = \ + libsystemd-core.la + ++if HAVE_SECCOMP ++test_loopback_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_hostname_SOURCES = \ + src/test/test-hostname.c + +@@ -1230,6 +1260,12 @@ test_unit_name_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_unit_name_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_unit_file_SOURCES = \ + src/test/test-unit-file.c + +@@ -1237,12 +1273,24 @@ test_unit_file_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_unit_file_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_utf8_SOURCES = \ + src/test/test-utf8.c + + test_utf8_LDADD = \ + libsystemd-shared.la + ++if HAVE_SECCOMP ++test_utf8_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_util_SOURCES = \ + src/test/test-util.c + +@@ -1255,6 +1303,12 @@ test_tmpfiles_SOURCES = \ + test_tmpfiles_LDADD = \ + libsystemd-shared.la + ++if HAVE_SECCOMP ++test_tmpfiles_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_namespace_SOURCES = \ + src/test/test-namespace.c + +@@ -1289,6 +1343,12 @@ test_tables_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_tables_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_prioq_SOURCES = \ + src/test/test-prioq.c + +@@ -1374,6 +1434,12 @@ test_cgroup_mask_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_cgroup_mask_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_cgroup_util_SOURCES = \ + src/test/test-cgroup-util.c + +@@ -1388,12 +1454,24 @@ test_env_replace_SOURCES = \ + test_env_replace_LDADD = \ + libsystemd-shared.la + ++if HAVE_SECCOMP ++test_env_replace_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_strbuf_SOURCES = \ + src/test/test-strbuf.c + + test_strbuf_LDADD = \ + libsystemd-shared.la + ++if HAVE_SECCOMP ++test_strbuf_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + test_strv_SOURCES = \ + src/test/test-strv.c + +@@ -1440,6 +1518,12 @@ test_sched_prio_LDADD = \ + libsystemd-core.la \ + $(RT_LIBS) + ++if HAVE_SECCOMP ++test_sched_prio_CFLAGS = \ ++ $(AM_CFLAGS) \ ++ $(SECCOMP_CFLAGS) ++endif ++ + # ------------------------------------------------------------------------------ + ## .PHONY so it always rebuilds it + .PHONY: coverage lcov-run lcov-report coverage-sync diff --git a/0001-manager-when-verifying-whether-clients-may-change-en.patch b/0001-manager-when-verifying-whether-clients-may-change-en.patch deleted file mode 100644 index 57bb364..0000000 --- a/0001-manager-when-verifying-whether-clients-may-change-en.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a316932f5a627c1ef78f568fd5dfa579f12e76b2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 4 Oct 2013 17:01:37 +0200 -Subject: [PATCH] manager: when verifying whether clients may change - environment using selinux check for "reload" rather "reboot" - -This appears to be a copy/paste error. ---- - src/core/dbus-manager.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c -index 676a07f..8f4d017 100644 ---- a/src/core/dbus-manager.c -+++ b/src/core/dbus-manager.c -@@ -1397,7 +1397,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - _cleanup_strv_free_ char **l = NULL; - char **e = NULL; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - r = bus_parse_strv(message, &l); - if (r == -ENOMEM) -@@ -1424,7 +1424,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - _cleanup_strv_free_ char **l = NULL; - char **e = NULL; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - r = bus_parse_strv(message, &l); - if (r == -ENOMEM) -@@ -1452,7 +1452,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, - char **f = NULL; - DBusMessageIter iter; - -- SELINUX_ACCESS_CHECK(connection, message, "reboot"); -+ SELINUX_ACCESS_CHECK(connection, message, "reload"); - - if (!dbus_message_iter_init(message, &iter)) - goto oom; --- -1.8.4 - diff --git a/0001-mount-check-for-NULL-before-reading-pm-what.patch b/0001-mount-check-for-NULL-before-reading-pm-what.patch deleted file mode 100644 index e8c830f..0000000 --- a/0001-mount-check-for-NULL-before-reading-pm-what.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9c03872bc8fb2a381eafe7301ef9811b641686dd Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Fri, 4 Oct 2013 18:22:40 -0400 -Subject: [PATCH] mount: check for NULL before reading pm->what - -Since a57f7e2c828b85, a mount unit with garbage in it would cause -systemd to crash on loading it. - -ref: https://bugs.freedesktop.org/show_bug.cgi?id=70148 ---- - src/core/mount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 93bfa99..db055f0 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -182,7 +182,7 @@ static int mount_add_mount_links(Mount *m) { - * for the source path (if this is a bind mount) to be - * available. */ - pm = get_mount_parameters_fragment(m); -- if (pm && path_is_absolute(pm->what)) { -+ if (pm && pm->what && path_is_absolute(pm->what)) { - r = unit_require_mounts_for(UNIT(m), pm->what); - if (r < 0) - return r; --- -1.8.4 - diff --git a/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch new file mode 100644 index 0000000..4dcfb70 --- /dev/null +++ b/0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch @@ -0,0 +1,41 @@ +From: Werner Fink +Date: Wed Feb 26 14:36:27 UTC 2014 +Subject: Do not clobber XDG_RUNTIME_DIR if su command preserve environment + +Make sure that even if a su command without option -l or with option -m +is used, the XDG_RUNTIME_DIR will not be clobbered by the new uid. + +This belongs to BNC#852015 and also to BNC#855160 + +--- + pam-module.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- systemd-209/src/login/pam-module.c ++++ systemd-209/src/login/pam-module.c 2014-02-26 14:31:30.158235525 +0000 +@@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess + r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path); + if (r != PAM_SUCCESS) + return r; ++ } else if (getenv("XDG_RUNTIME_DIR")) { ++ _cleanup_free_ char *p = NULL; ++ ++ /* Make sure that after running YaST2 or the xdg-su scripts ++ * the runtime directory is not clobbered. Even a normal su ++ * command without -l or with -m may clobber. */ ++ ++ if ((r = asprintf(&p, "/run/user/%lu", (unsigned long)pw->pw_uid)) < 0) ++ return PAM_BUF_ERR; ++ ++ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", p, 0); ++ if (r != PAM_SUCCESS) { ++ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); ++ return r; ++ } ++ ++ r = export_legacy_dbus_address(handle, pw->pw_uid, p); ++ if (r != PAM_SUCCESS) ++ return r; + } + + if (!isempty(seat)) { diff --git a/0001-shared-util-Fix-glob_extend-argument.patch b/0001-shared-util-Fix-glob_extend-argument.patch deleted file mode 100644 index 4695547..0000000 --- a/0001-shared-util-Fix-glob_extend-argument.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a8ccacf5344c4434b1d5ff3837307acb8fcf93d2 Mon Sep 17 00:00:00 2001 -From: Bastien Nocera -Date: Mon, 14 Oct 2013 08:15:51 +0200 -Subject: [PATCH] shared/util: Fix glob_extend() argument - -glob_extend() would completely fail to work, or return incorrect -data if it wasn't being passed the current getopt "optarg" variable -as it used the global variable, instead of the passed parameters. ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 54dbace..1822770 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -4461,7 +4461,7 @@ int glob_extend(char ***strv, const char *path) { - char **p; - - errno = 0; -- k = glob(optarg, GLOB_NOSORT|GLOB_BRACE, NULL, &g); -+ k = glob(path, GLOB_NOSORT|GLOB_BRACE, NULL, &g); - - if (k == GLOB_NOMATCH) - return -ENOENT; --- -1.8.4 - diff --git a/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch b/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch deleted file mode 100644 index eb6dedd..0000000 --- a/0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 1d5989fd803d2019de0f6aaaf3cfb1cb2bbc3cdb Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sun, 6 Oct 2013 18:26:23 -0400 -Subject: [PATCH] shared/util: fix off-by-one error in tag_to_udev_node - -Triggered false negatives when encoding a string which needed every -character to be escaped, e.g. "LABEL=/". ---- - src/shared/util.c | 2 +- - src/test/test-device-nodes.c | 4 +++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 82f4221..31cea79 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -3527,7 +3527,7 @@ static char *tag_to_udev_node(const char *tagvalue, const char *by) { - if (u == NULL) - return NULL; - -- enc_len = strlen(u) * 4; -+ enc_len = strlen(u) * 4 + 1; - t = new(char, enc_len); - if (t == NULL) - return NULL; -diff --git a/src/test/test-device-nodes.c b/src/test/test-device-nodes.c -index 2f3dedb..59ba4be 100644 ---- a/src/test/test-device-nodes.c -+++ b/src/test/test-device-nodes.c -@@ -26,7 +26,7 @@ - - /* helpers for test_encode_devnode_name */ - static char *do_encode_string(const char *in) { -- size_t out_len = strlen(in) * 4; -+ size_t out_len = strlen(in) * 4 + 1; - char *out = malloc(out_len); - - assert_se(out); -@@ -46,6 +46,8 @@ static void test_encode_devnode_name(void) { - assert_se(expect_encoded_as("pinkiepie", "pinkiepie")); - assert_se(expect_encoded_as("valíd\\ųtf8", "valíd\\x5cųtf8")); - assert_se(expect_encoded_as("s/ash/ng", "s\\x2fash\\x2fng")); -+ assert_se(expect_encoded_as("/", "\\x2f")); -+ assert_se(expect_encoded_as("!", "\\x21")); - } - - int main(int argc, char *argv[]) { --- -1.8.4 - diff --git a/0001-systemd-empty-sigmask-on-reexec.patch b/0001-systemd-empty-sigmask-on-reexec.patch new file mode 100644 index 0000000..f4f3ac9 --- /dev/null +++ b/0001-systemd-empty-sigmask-on-reexec.patch @@ -0,0 +1,42 @@ +Process 1 (aka init) needs to be started with an empty signal mask. That +includes the process 1 that's started after the initrd is finished. When the +initrd is using systemd (as it does with dracut based initrds) then it is +systemd that calls the real init. Normally this is systemd again, except +when the user uses for instance "init=/bin/bash" on the kernel command line. + +--- + main.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- src/core/main.c ++++ src/core/main.c 2014-02-27 13:54:21.922236495 +0000 +@@ -1780,6 +1780,7 @@ finish: + if (reexecute) { + const char **args; + unsigned i, args_size; ++ sigset_t ss, o_ss; + + /* Close and disarm the watchdog, so that the new + * instance can reinitialize it, but doesn't get +@@ -1863,6 +1864,11 @@ finish: + args[i++] = NULL; + assert(i <= args_size); + ++ /* reenable any blocked signals, especially important ++ * if we switch from initial ramdisk to init=... */ ++ sigemptyset(&ss); ++ sigprocmask(SIG_SETMASK,&ss,&o_ss); ++ + if (switch_root_init) { + args[0] = switch_root_init; + execv(args[0], (char* const*) args); +@@ -1881,6 +1887,9 @@ finish: + log_error("Failed to execute /bin/sh, giving up: %m"); + } else + log_warning("Failed to execute /sbin/init, giving up: %m"); ++ ++ /* back to saved state if reexec failed */ ++ sigprocmask(SIG_SETMASK,&o_ss,NULL); + } + + if (arg_serialization) { diff --git a/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch b/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch deleted file mode 100644 index 254212c..0000000 --- a/0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 77009452cfd25208509b14ea985e81fdf9f7d40e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 3 Oct 2013 22:15:08 -0400 -Subject: [PATCH] systemd: order remote mounts from mountinfo before - remote-fs.target - -Usually the network is stopped before filesystems are umounted. -Ordering network filesystems before remote-fs.target means that their -unmounting will be performed earlier, and can terminate sucessfully. - -https://bugs.freedesktop.org/show_bug.cgi?id=70002 ---- - src/core/mount.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3d46557..93bfa99 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1440,6 +1440,9 @@ static int mount_add_one( - - u = manager_get_unit(m, e); - if (!u) { -+ const char* const target = -+ fstype_is_network(fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET; -+ - delete = true; - - u = unit_new(m, sizeof(Mount)); -@@ -1466,7 +1469,7 @@ static int mount_add_one( - goto fail; - } - -- r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, NULL, true); -+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); - if (r < 0) - goto fail; - --- -1.8.4 - diff --git a/0001-systemd-serialize-deserialize-forbid_restart-value.patch b/0001-systemd-serialize-deserialize-forbid_restart-value.patch deleted file mode 100644 index 6184c9a..0000000 --- a/0001-systemd-serialize-deserialize-forbid_restart-value.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 6aca9a587d4ad40b1c044f99e3714022201b9fd4 Mon Sep 17 00:00:00 2001 -From: Sylvia Else -Date: Sun, 6 Oct 2013 23:06:35 -0400 -Subject: [PATCH] systemd: serialize/deserialize forbid_restart value - -The Service type's forbid_restart field was not preserved by -serialization/deserialization, so the fact that the service should not -be restarted after stopping was lost. - -If a systemctl stop foo command has been given, but the foo service -has not yet stopped, and then the systemctl --system daemon-reload was -given, then when the foo service eventually stopped, systemd would -restart it. - -https://bugs.freedesktop.org/show_bug.cgi?id=69800 ---- - src/core/service.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/core/service.c b/src/core/service.c -index 6792024..98b1599 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -2651,6 +2651,9 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) { - if (s->exec_context.var_tmp_dir) - unit_serialize_item(u, f, "var-tmp-dir", s->exec_context.var_tmp_dir); - -+ if (s->forbid_restart) -+ unit_serialize_item(u, f, "forbid_restart", yes_no(s->forbid_restart)); -+ - return 0; - } - -@@ -2787,6 +2790,14 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, - return log_oom(); - - s->exec_context.var_tmp_dir = t; -+ } else if (streq(key, "forbid_restart")) { -+ int b; -+ -+ b = parse_boolean(value); -+ if (b < 0) -+ log_debug_unit(u->id, "Failed to parse forbid_restart value %s", value); -+ else -+ s->forbid_restart = b; - } else - log_debug_unit(u->id, "Unknown serialization key '%s'", key); - --- -1.8.4 - diff --git a/0001-units-serial-getty-.service-add-Install-section.patch b/0001-units-serial-getty-.service-add-Install-section.patch new file mode 100644 index 0000000..83ffcbe --- /dev/null +++ b/0001-units-serial-getty-.service-add-Install-section.patch @@ -0,0 +1,27 @@ +From 7143555ce8f94b002d06b9b058d7d90c3a4901a9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 24 Feb 2014 08:02:28 -0500 +Subject: [PATCH] units/serial-getty@.service: add [Install] section + +This makes it easier to manually enable and disable +specific gettys, and also mirrors getty@.service. + +http://lists.freedesktop.org/archives/systemd-devel/2014-February/017329.html +--- + units/serial-getty@.service.m4 | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git units/serial-getty@.service.m4 units/serial-getty@.service.m4 +index 0e612bb..e94cdb4 100644 +--- systemd-209/units/serial-getty@.service.m4 ++++ systemd-209/units/serial-getty@.service.m4 +@@ -33,3 +33,6 @@ TTYVHangup=yes + KillMode=process + IgnoreSIGPIPE=no + SendSIGHUP=yes ++ ++[Install] ++WantedBy=getty.target +-- +1.7.9.2 + diff --git a/0001-upstream-systemctl-halt-reboot-error-handling.patch b/0001-upstream-systemctl-halt-reboot-error-handling.patch deleted file mode 100644 index 110b866..0000000 --- a/0001-upstream-systemctl-halt-reboot-error-handling.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- systemd-208/src/core/shutdown.c -+++ systemd-208/src/core/shutdown.c 2014-01-27 11:31:38.486235816 +0000 -@@ -329,6 +329,9 @@ int main(int argc, char *argv[]) { - - reboot(cmd); - -+ if (cmd == RB_POWER_OFF) -+ reboot(RB_HALT_SYSTEM); -+ - if (errno == EPERM && in_container) { - /* If we are in a container, and we lacked - * CAP_SYS_BOOT just exit, this will kill our - ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-27 11:05:18.298236035 +0000 -@@ -138,7 +138,7 @@ static bool arg_plain = false; - static bool private_bus = false; - - static int daemon_reload(DBusConnection *bus, char **args); --static void halt_now(enum action a); -+static int halt_now(enum action a); - - static void pager_open_if_enabled(void) { - -@@ -2227,7 +2227,7 @@ static int start_special(DBusConnection - (a == ACTION_HALT || - a == ACTION_POWEROFF || - a == ACTION_REBOOT)) -- halt_now(a); -+ return halt_now(a); - - if (arg_force >= 1 && - (a == ACTION_HALT || -@@ -5973,7 +5973,7 @@ done: - return 0; - } - --static _noreturn_ void halt_now(enum action a) { -+static int halt_now(enum action a) { - - /* Make sure C-A-D is handled by the kernel from this - * point on... */ -@@ -5984,23 +5984,22 @@ static _noreturn_ void halt_now(enum act - case ACTION_HALT: - log_info("Halting."); - reboot(RB_HALT_SYSTEM); -- break; -+ return -errno; - - case ACTION_POWEROFF: - log_info("Powering off."); - reboot(RB_POWER_OFF); -- break; -+ return -errno; - - case ACTION_REBOOT: - log_info("Rebooting."); - reboot(RB_AUTOBOOT); -- break; -+ return -errno; - - default: -- assert_not_reached("Unknown halt action."); -+ assert_not_reached("Unknown action."); -+ return -ENOSYS; - } -- -- assert_not_reached("Uh? This shouldn't happen."); - } - - static int halt_main(DBusConnection *bus) { -@@ -6069,9 +6068,10 @@ static int halt_main(DBusConnection *bus - if (arg_dry) - return 0; - -- halt_now(arg_action); -- /* We should never reach this. */ -- return -ENOSYS; -+ r = halt_now(arg_action); -+ log_error("Failed to reboot: %s", strerror(-r)); -+ -+ return r; - } - - static int runlevel_main(void) { diff --git a/0002-fix-lingering-references-to-var-lib-backlight-random.patch b/0002-fix-lingering-references-to-var-lib-backlight-random.patch deleted file mode 100644 index 6ce0c23..0000000 --- a/0002-fix-lingering-references-to-var-lib-backlight-random.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 6c8c92fef72cf6a7ef7109a424ef82dbdc4f6952 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Wed, 2 Oct 2013 07:46:24 -0400 -Subject: [PATCH 02/15] fix lingering references to - /var/lib/{backlight,random-seed} - -This should have been part of ef5bfcf668e6029faa78534dfe. ---- - man/systemd-backlight@.service.xml | 2 +- - man/systemd-random-seed.service.xml | 2 +- - units/systemd-backlight@.service.in | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/systemd-backlight@.service.xml b/man/systemd-backlight@.service.xml -index 2b73625..4318964 100644 ---- a/man/systemd-backlight@.service.xml -+++ b/man/systemd-backlight@.service.xml -@@ -58,7 +58,7 @@ - is a service that restores the display backlight - brightness at early-boot and saves it at shutdown. On - disk, the backlight brightness is stored in -- /var/lib/backlight/. Note that by -+ /var/lib/systemd/backlight/. Note that by - default, only firmware backlight devices are - saved/restored. - -diff --git a/man/systemd-random-seed.service.xml b/man/systemd-random-seed.service.xml -index 8cd14b7..e5cd037 100644 ---- a/man/systemd-random-seed.service.xml -+++ b/man/systemd-random-seed.service.xml -@@ -61,7 +61,7 @@ - for details. Saving/restoring the random seed across - boots increases the amount of available entropy early - at boot. On disk the random seed is stored in -- /var/lib/random-seed. -+ /var/lib/systemd/random-seed. - - - -diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in -index b0e75db..5caa5d5 100644 ---- a/units/systemd-backlight@.service.in -+++ b/units/systemd-backlight@.service.in -@@ -9,7 +9,7 @@ - Description=Load/Save Screen Backlight Brightness of %I - Documentation=man:systemd-backlight@.service(8) - DefaultDependencies=no --RequiresMountsFor=/var/lib/backlight -+RequiresMountsFor=/var/lib/systemd/backlight - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service - Before=sysinit.target shutdown.target --- -1.8.4 - diff --git a/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch b/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch deleted file mode 100644 index 76624f9..0000000 --- a/0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 95d57e7b631a2d78b9b5d841125194052895470f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 13:49:54 +0100 -Subject: [PATCH 2/3] service: allow KillMode=mixed in conjunction with - PAMName= - ---- - src/core/service.c | 20 +++++++------------- - 1 file changed, 7 insertions(+), 13 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 6792024..e7f03e1 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -1105,37 +1105,31 @@ static int service_verify(Service *s) { - return 0; - - if (!s->exec_command[SERVICE_EXEC_START]) { -- log_error_unit(UNIT(s)->id, -- "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s lacks ExecStart setting. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type != SERVICE_ONESHOT && - s->exec_command[SERVICE_EXEC_START]->command_next) { -- log_error_unit(UNIT(s)->id, -- "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s has more than one ExecStart setting, which is only allowed for Type=oneshot services. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) { -- log_error_unit(UNIT(s)->id, -- "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->type == SERVICE_DBUS && !s->bus_name) { -- log_error_unit(UNIT(s)->id, -- "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); -+ log_error_unit(UNIT(s)->id, "%s is of type D-Bus but no D-Bus service name has been specified. Refusing.", UNIT(s)->id); - return -EINVAL; - } - - if (s->bus_name && s->type != SERVICE_DBUS) -- log_warning_unit(UNIT(s)->id, -- "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); -+ log_warning_unit(UNIT(s)->id, "%s has a D-Bus service name specified, but is not of type dbus. Ignoring.", UNIT(s)->id); - -- if (s->exec_context.pam_name && s->kill_context.kill_mode != KILL_CONTROL_GROUP) { -- log_error_unit(UNIT(s)->id, -- "%s has PAM enabled. Kill mode must be set to 'control-group'. Refusing.", UNIT(s)->id); -+ if (s->exec_context.pam_name && !(s->kill_context.kill_mode == KILL_CONTROL_GROUP || s->kill_context.kill_mode == KILL_MIXED)) { -+ log_error_unit(UNIT(s)->id, "%s has PAM enabled. Kill mode must be set to 'control-group' or 'mixed'. Refusing.", UNIT(s)->id); - return -EINVAL; - } - --- -1.8.4 - diff --git a/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch b/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch deleted file mode 100644 index 86e1344..0000000 --- a/0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 2c64a8d0caf84254e38f2e76528f2034d37da520 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 14:03:56 +0200 -Subject: [PATCH 03/15] acpi: make sure we never free an uninitialized pointer - ---- - src/shared/acpi-fpdt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/acpi-fpdt.c b/src/shared/acpi-fpdt.c -index a7c83ed..af58c7c 100644 ---- a/src/shared/acpi-fpdt.c -+++ b/src/shared/acpi-fpdt.c -@@ -81,7 +81,7 @@ struct acpi_fpdt_boot { - }; - - int acpi_get_boot_usec(usec_t *loader_start, usec_t *loader_exit) { -- _cleanup_free_ char *buf; -+ _cleanup_free_ char *buf = NULL; - struct acpi_table_header *tbl; - size_t l; - struct acpi_fpdt_header *rec; --- -1.8.4 - diff --git a/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch b/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch deleted file mode 100644 index e6423f5..0000000 --- a/0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch +++ /dev/null @@ -1,128 +0,0 @@ -From b2ffdc8da536cd88a305f97517f356e2c5383a52 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Jan 2014 14:58:04 +0100 -Subject: [PATCH 3/3] core: make sure to always go through both SIGTERM and - SIGKILL states of units - -Given that we now have KillMode=mixed where SIGTERM might kill a smaller -set than SIGKILL we need to make sure to always go explicitly throught -the SIGKILL state to get the right end result. ---- - src/core/mount.c | 8 +++++++- - src/core/scope.c | 4 +++- - src/core/service.c | 10 +++++++--- - src/core/socket.c | 6 +++++- - src/core/swap.c | 6 +++++- - 5 files changed, 27 insertions(+), 7 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3d46557..e418d09 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -854,8 +854,14 @@ static void mount_enter_signal(Mount *m, MountState state, MountResult f) { - goto fail; - - mount_set_state(m, state); -- } else if (state == MOUNT_REMOUNTING_SIGTERM || state == MOUNT_REMOUNTING_SIGKILL) -+ } else if (state == MOUNT_REMOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_REMOUNTING_SIGKILL, MOUNT_SUCCESS); -+ else if (state == MOUNT_REMOUNTING_SIGKILL) - mount_enter_mounted(m, MOUNT_SUCCESS); -+ else if (state == MOUNT_MOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_MOUNTING_SIGKILL, MOUNT_SUCCESS); -+ else if (state == MOUNT_UNMOUNTING_SIGTERM) -+ mount_enter_signal(m, MOUNT_UNMOUNTING_SIGKILL, MOUNT_SUCCESS); - else - mount_enter_dead(m, MOUNT_SUCCESS); - -diff --git a/src/core/scope.c b/src/core/scope.c -index 50e5dba..3a5c95e 100644 ---- a/src/core/scope.c -+++ b/src/core/scope.c -@@ -221,7 +221,9 @@ static void scope_enter_signal(Scope *s, ScopeState state, ScopeResult f) { - } - - scope_set_state(s, state); -- } else -+ } else if (state == SCOPE_STOP_SIGTERM) -+ scope_enter_signal(s, SCOPE_STOP_SIGKILL, SCOPE_SUCCESS); -+ else - scope_enter_dead(s, SCOPE_SUCCESS); - - return; -diff --git a/src/core/service.c b/src/core/service.c -index e7f03e1..4b481c2 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -1964,10 +1964,9 @@ static void service_enter_stop_post(Service *s, ServiceResult f) { - if (r < 0) - goto fail; - -- - service_set_state(s, SERVICE_STOP_POST); - } else -- service_enter_dead(s, SERVICE_SUCCESS, true); -+ service_enter_signal(s, SERVICE_FINAL_SIGTERM, SERVICE_SUCCESS); - - return; - -@@ -1993,6 +1992,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f - s->main_pid, - s->control_pid, - s->main_pid_alien); -+ - if (r < 0) - goto fail; - -@@ -2005,8 +2005,12 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f - } - - service_set_state(s, state); -- } else if (state == SERVICE_STOP_SIGTERM || state == SERVICE_STOP_SIGKILL) -+ } else if (state == SERVICE_STOP_SIGTERM) -+ service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_SUCCESS); -+ else if (state == SERVICE_STOP_SIGKILL) - service_enter_stop_post(s, SERVICE_SUCCESS); -+ else if (state == SERVICE_FINAL_SIGTERM) -+ service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_SUCCESS); - else - service_enter_dead(s, SERVICE_SUCCESS, true); - -diff --git a/src/core/socket.c b/src/core/socket.c -index 6c0ac1a..831876f 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -1298,8 +1298,12 @@ static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) { - goto fail; - - socket_set_state(s, state); -- } else if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL) -+ } else if (state == SOCKET_STOP_PRE_SIGTERM) -+ socket_enter_signal(s, SOCKET_STOP_PRE_SIGKILL, SOCKET_SUCCESS); -+ else if (state == SOCKET_STOP_PRE_SIGKILL) - socket_enter_stop_post(s, SOCKET_SUCCESS); -+ else if (state == SOCKET_FINAL_SIGTERM) -+ socket_enter_signal(s, SOCKET_FINAL_SIGKILL, SOCKET_SUCCESS); - else - socket_enter_dead(s, SOCKET_SUCCESS); - -diff --git a/src/core/swap.c b/src/core/swap.c -index a68ab7c..8886fe8 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -655,7 +655,11 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) { - goto fail; - - swap_set_state(s, state); -- } else -+ } else if (state == SWAP_ACTIVATING_SIGTERM) -+ swap_enter_signal(s, SWAP_ACTIVATING_SIGKILL, SWAP_SUCCESS); -+ else if (state == SWAP_DEACTIVATING_SIGTERM) -+ swap_enter_signal(s, SWAP_DEACTIVATING_SIGKILL, SWAP_SUCCESS); -+ else - swap_enter_dead(s, SWAP_SUCCESS); - - return; --- -1.8.4 - diff --git a/0004-systemctl-fix-name-mangling-for-sysv-units.patch b/0004-systemctl-fix-name-mangling-for-sysv-units.patch deleted file mode 100644 index a2531e7..0000000 --- a/0004-systemctl-fix-name-mangling-for-sysv-units.patch +++ /dev/null @@ -1,134 +0,0 @@ -From cbb13b2a538ece1c7ec3b210e2b36b47df2a13ea Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= -Date: Wed, 2 Oct 2013 16:42:42 +0200 -Subject: [PATCH 04/15] systemctl: fix name mangling for sysv units - ---- - src/systemctl/systemctl.c | 45 ++++++++++++++++++--------------------------- - 1 file changed, 18 insertions(+), 27 deletions(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index bb7ada9..d75281f 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -4218,11 +4218,10 @@ static int set_environment(DBusConnection *bus, char **args) { - return 0; - } - --static int enable_sysv_units(char **args) { -+static int enable_sysv_units(const char *verb, char **args) { - int r = 0; - - #if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG) -- const char *verb = args[0]; - unsigned f = 1, t = 1; - LookupPaths paths = {}; - -@@ -4242,7 +4241,7 @@ static int enable_sysv_units(char **args) { - return r; - - r = 0; -- for (f = 1; args[f]; f++) { -+ for (f = 0; args[f]; f++) { - const char *name; - _cleanup_free_ char *p = NULL, *q = NULL; - bool found_native = false, found_sysv; -@@ -4365,7 +4364,7 @@ finish: - lookup_paths_free(&paths); - - /* Drop all SysV units */ -- for (f = 1, t = 1; args[f]; f++) { -+ for (f = 0, t = 0; args[f]; f++) { - - if (isempty(args[f])) - continue; -@@ -4423,16 +4422,16 @@ static int enable_unit(DBusConnection *bus, char **args) { - - dbus_error_init(&error); - -- r = enable_sysv_units(args); -- if (r < 0) -- return r; -- - if (!args[1]) - return 0; - - r = mangle_names(args+1, &mangled_names); - if (r < 0) -- goto finish; -+ return r; -+ -+ r = enable_sysv_units(verb, mangled_names); -+ if (r < 0) -+ return r; - - if (!bus || avoid_bus()) { - if (streq(verb, "enable")) { -@@ -4624,11 +4623,15 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; - bool enabled; - char **name; -- char *n; -+ _cleanup_strv_free_ char **mangled_names = NULL; - - dbus_error_init(&error); - -- r = enable_sysv_units(args); -+ r = mangle_names(args+1, &mangled_names); -+ if (r < 0) -+ return r; -+ -+ r = enable_sysv_units(args[0], mangled_names); - if (r < 0) - return r; - -@@ -4636,16 +4639,10 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - - if (!bus || avoid_bus()) { - -- STRV_FOREACH(name, args+1) { -+ STRV_FOREACH(name, mangled_names) { - UnitFileState state; - -- n = unit_name_mangle(*name); -- if (!n) -- return log_oom(); -- -- state = unit_file_get_state(arg_scope, arg_root, n); -- -- free(n); -+ state = unit_file_get_state(arg_scope, arg_root, *name); - - if (state < 0) - return state; -@@ -4660,13 +4657,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - } - - } else { -- STRV_FOREACH(name, args+1) { -+ STRV_FOREACH(name, mangled_names) { - const char *s; - -- n = unit_name_mangle(*name); -- if (!n) -- return log_oom(); -- - r = bus_method_call_with_reply ( - bus, - "org.freedesktop.systemd1", -@@ -4675,11 +4668,9 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { - "GetUnitFileState", - &reply, - NULL, -- DBUS_TYPE_STRING, &n, -+ DBUS_TYPE_STRING, name, - DBUS_TYPE_INVALID); - -- free(n); -- - if (r) - return r; - --- -1.8.4 - diff --git a/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch b/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch deleted file mode 100644 index d46e94d..0000000 --- a/0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 4b93637fd7dddb0a1518f35171998b2c7cd5c5bd Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:36:28 +0200 -Subject: [PATCH 05/15] cryptsetup: fix OOM handling when parsing mount options - ---- - src/cryptsetup/cryptsetup.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c -index 22b5eea..769c3e4 100644 ---- a/src/cryptsetup/cryptsetup.c -+++ b/src/cryptsetup/cryptsetup.c -@@ -74,7 +74,7 @@ static int parse_one_option(const char *option) { - - t = strdup(option+7); - if (!t) -- return -ENOMEM; -+ return log_oom(); - - free(opt_cipher); - opt_cipher = t; -@@ -89,9 +89,10 @@ static int parse_one_option(const char *option) { - } else if (startswith(option, "tcrypt-keyfile=")) { - - opt_type = CRYPT_TCRYPT; -- if (path_is_absolute(option+15)) -- opt_tcrypt_keyfiles = strv_append(opt_tcrypt_keyfiles, strdup(option+15)); -- else -+ if (path_is_absolute(option+15)) { -+ if (strv_extend(&opt_tcrypt_keyfiles, option + 15) < 0) -+ return log_oom(); -+ } else - log_error("Key file path '%s' is not absolute. Ignoring.", option+15); - - } else if (startswith(option, "keyfile-size=")) { -@@ -113,7 +114,7 @@ static int parse_one_option(const char *option) { - - t = strdup(option+5); - if (!t) -- return -ENOMEM; -+ return log_oom(); - - free(opt_hash); - opt_hash = t; --- -1.8.4 - diff --git a/0006-journald-add-missing-error-check.patch b/0006-journald-add-missing-error-check.patch deleted file mode 100644 index 479c37c..0000000 --- a/0006-journald-add-missing-error-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 8c92d4bbc7a538ada11d7e85016cce141beb0e6c Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:36:43 +0200 -Subject: [PATCH 06/15] journald: add missing error check - ---- - src/journal/journal-file.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 1236403..81c344f 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -907,6 +907,8 @@ static int journal_file_append_field( - - osize = offsetof(Object, field.payload) + size; - r = journal_file_append_object(f, OBJECT_FIELD, osize, &o, &p); -+ if (r < 0) -+ return r; - - o->field.hash = htole64(hash); - memcpy(o->field.payload, field, size); --- -1.8.4 - diff --git a/0007-bus-fix-potentially-uninitialized-memory-access.patch b/0007-bus-fix-potentially-uninitialized-memory-access.patch deleted file mode 100644 index 2f2d2de..0000000 --- a/0007-bus-fix-potentially-uninitialized-memory-access.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f5f6e41a9ee008e1632f79ab3fa20beef7c2b613 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:11 +0200 -Subject: [PATCH 07/15] bus: fix potentially uninitialized memory access - ---- - src/libsystemd-bus/bus-internal.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c -index 0e66f3d..cac948e 100644 ---- a/src/libsystemd-bus/bus-internal.c -+++ b/src/libsystemd-bus/bus-internal.c -@@ -63,7 +63,7 @@ bool object_path_is_valid(const char *p) { - - bool interface_name_is_valid(const char *p) { - const char *q; -- bool dot, found_dot; -+ bool dot, found_dot = false; - - if (isempty(p)) - return false; -@@ -103,7 +103,7 @@ bool interface_name_is_valid(const char *p) { - - bool service_name_is_valid(const char *p) { - const char *q; -- bool dot, found_dot, unique; -+ bool dot, found_dot = false, unique; - - if (isempty(p)) - return false; --- -1.8.4 - diff --git a/0008-dbus-fix-return-value-of-dispatch_rqueue.patch b/0008-dbus-fix-return-value-of-dispatch_rqueue.patch deleted file mode 100644 index 3985ab2..0000000 --- a/0008-dbus-fix-return-value-of-dispatch_rqueue.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2e8d788c2f90d062f208f8c57a97e7b33cb29f7d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:30 +0200 -Subject: [PATCH 08/15] dbus: fix return value of dispatch_rqueue() - ---- - src/libsystemd-bus/sd-bus.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c -index 3f766fb..db0880f 100644 ---- a/src/libsystemd-bus/sd-bus.c -+++ b/src/libsystemd-bus/sd-bus.c -@@ -1215,11 +1215,11 @@ static int dispatch_rqueue(sd_bus *bus, sd_bus_message **m) { - if (r == 0) - return ret; - -- r = 1; -+ ret = 1; - } while (!z); - - *m = z; -- return 1; -+ return ret; - } - - int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) { --- -1.8.4 - diff --git a/0009-modules-load-fix-error-handling.patch b/0009-modules-load-fix-error-handling.patch deleted file mode 100644 index df35021..0000000 --- a/0009-modules-load-fix-error-handling.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b857193b1def5172e3641ca1d5bc9e08ae81aac4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:37:44 +0200 -Subject: [PATCH 09/15] modules-load: fix error handling - ---- - src/modules-load/modules-load.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c -index 7b19ee0..49ee420 100644 ---- a/src/modules-load/modules-load.c -+++ b/src/modules-load/modules-load.c -@@ -302,8 +302,8 @@ int main(int argc, char *argv[]) { - - STRV_FOREACH(i, arg_proc_cmdline_modules) { - k = load_module(ctx, *i); -- if (k < 0) -- r = EXIT_FAILURE; -+ if (k < 0 && r == 0) -+ r = k; - } - - r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs); --- -1.8.4 - diff --git a/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch b/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch deleted file mode 100644 index 3994d1e..0000000 --- a/0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 62678deda2dcd43954bf02f783da01e48c7f8fce Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:09 +0200 -Subject: [PATCH 10/15] efi: never call qsort on potentially NULL arrays - ---- - src/shared/efivars.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/shared/efivars.c b/src/shared/efivars.c -index 1d5b6f9..c015b16 100644 ---- a/src/shared/efivars.c -+++ b/src/shared/efivars.c -@@ -384,7 +384,8 @@ int efi_get_boot_options(uint16_t **options) { - list[count ++] = id; - } - -- qsort(list, count, sizeof(uint16_t), cmp_uint16); -+ if (list) -+ qsort(list, count, sizeof(uint16_t), cmp_uint16); - - *options = list; - return count; --- -1.8.4 - diff --git a/0011-strv-don-t-access-potentially-NULL-string-arrays.patch b/0011-strv-don-t-access-potentially-NULL-string-arrays.patch deleted file mode 100644 index 0ab9050..0000000 --- a/0011-strv-don-t-access-potentially-NULL-string-arrays.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5b4fb02d890d5c9777e9a6e798e0b8922a8a9fd8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:28 +0200 -Subject: [PATCH 11/15] strv: don't access potentially NULL string arrays - ---- - src/shared/env-util.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/shared/env-util.c b/src/shared/env-util.c -index 5e29629..7976881 100644 ---- a/src/shared/env-util.c -+++ b/src/shared/env-util.c -@@ -405,7 +405,9 @@ char **strv_env_clean_log(char **e, const char *message) { - e[k++] = *p; - } - -- e[k] = NULL; -+ if (e) -+ e[k] = NULL; -+ - return e; - } - --- -1.8.4 - diff --git a/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch b/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch deleted file mode 100644 index 1d91d80..0000000 --- a/0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 69c2b6be8fc607412a13cd0ea03a629b4965c816 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 2 Oct 2013 19:38:52 +0200 -Subject: [PATCH 12/15] mkdir: pass a proper function pointer to - mkdir_safe_internal - ---- - src/shared/mkdir.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/mkdir.c b/src/shared/mkdir.c -index b7e5c6e..43c6ea6 100644 ---- a/src/shared/mkdir.c -+++ b/src/shared/mkdir.c -@@ -53,7 +53,7 @@ int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkd - } - - int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid) { -- return mkdir_safe_internal(path, mode, uid, gid, false); -+ return mkdir_safe_internal(path, mode, uid, gid, mkdir); - } - - static int is_dir(const char* path) { --- -1.8.4 - diff --git a/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch b/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch deleted file mode 100644 index 1ed8f92..0000000 --- a/0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7074fecf6747c9a6ad872cc87701481e8bece8b0 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Wed, 2 Oct 2013 15:35:16 -0400 -Subject: [PATCH 14/15] tmpfiles.d: include setgid perms for /run/log/journal - -4608af4333d0f7f5 set permissions for journal storage on persistent disk -but not the volatile storage. - -ref: https://bugs.archlinux.org/task/37170 ---- - tmpfiles.d/systemd.conf | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tmpfiles.d/systemd.conf b/tmpfiles.d/systemd.conf -index b630440..a05c657 100644 ---- a/tmpfiles.d/systemd.conf -+++ b/tmpfiles.d/systemd.conf -@@ -26,3 +26,5 @@ F /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)" - - m /var/log/journal 2755 root systemd-journal - - - m /var/log/journal/%m 2755 root systemd-journal - - -+m /run/log/journal 2755 root systemd-journal - - -+m /run/log/journal/%m 2755 root systemd-journal - - --- -1.8.4 - diff --git a/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch b/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch deleted file mode 100644 index e6981e6..0000000 --- a/0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch +++ /dev/null @@ -1,181 +0,0 @@ -From fc676b00a7545743429e0c9b12a0f0707b1059aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 5 Oct 2013 13:09:43 -0400 -Subject: [PATCH] core: do not add "what" to RequiresMountsFor for network - mounts - -For cifs mount like //server/share, we would get -RequiresMountsFor=/server/share, which probably isn't -harmful, but quite confusing. - -Unfortunately a bunch of static functions had to be moved -up, but patch is really one line. ---- - src/core/mount.c | 137 ++++++++++++++++++++++++++++-------------------------- - 1 file changed, 70 insertions(+), 67 deletions(-) - -diff --git src/core/mount.c src/core/mount.c -index db055f0..70cd372 100644 ---- src/core/mount.c -+++ src/core/mount.c -@@ -59,6 +59,72 @@ static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = { - [MOUNT_FAILED] = UNIT_FAILED - }; - -+static char* mount_test_option(const char *haystack, const char *needle) { -+ struct mntent me = { .mnt_opts = (char*) haystack }; -+ -+ assert(needle); -+ -+ /* Like glibc's hasmntopt(), but works on a string, not a -+ * struct mntent */ -+ -+ if (!haystack) -+ return NULL; -+ -+ return hasmntopt(&me, needle); -+} -+ -+static bool mount_is_network(MountParameters *p) { -+ assert(p); -+ -+ if (mount_test_option(p->options, "_netdev")) -+ return true; -+ -+ if (p->fstype && fstype_is_network(p->fstype)) -+ return true; -+ -+ return false; -+} -+ -+static bool mount_is_bind(MountParameters *p) { -+ assert(p); -+ -+ if (mount_test_option(p->options, "bind")) -+ return true; -+ -+ if (p->fstype && streq(p->fstype, "bind")) -+ return true; -+ -+ if (mount_test_option(p->options, "rbind")) -+ return true; -+ -+ if (p->fstype && streq(p->fstype, "rbind")) -+ return true; -+ -+ return false; -+} -+ -+static bool mount_is_auto(MountParameters *p) { -+ assert(p); -+ -+ return !mount_test_option(p->options, "noauto"); -+} -+ -+static bool needs_quota(MountParameters *p) { -+ assert(p); -+ -+ if (mount_is_network(p)) -+ return false; -+ -+ if (mount_is_bind(p)) -+ return false; -+ -+ return mount_test_option(p->options, "usrquota") || -+ mount_test_option(p->options, "grpquota") || -+ mount_test_option(p->options, "quota") || -+ mount_test_option(p->options, "usrjquota") || -+ mount_test_option(p->options, "grpjquota"); -+} -+ - static void mount_init(Unit *u) { - Mount *m = MOUNT(u); - -@@ -182,7 +248,10 @@ static int mount_add_mount_links(Mount *m) { - * for the source path (if this is a bind mount) to be - * available. */ - pm = get_mount_parameters_fragment(m); -- if (pm && pm->what && path_is_absolute(pm->what)) { -+ if (pm && pm->what && -+ path_is_absolute(pm->what) && -+ !mount_is_network(pm)) { -+ - r = unit_require_mounts_for(UNIT(m), pm->what); - if (r < 0) - return r; -@@ -214,72 +283,6 @@ static int mount_add_mount_links(Mount *m) { - return 0; - } - --static char* mount_test_option(const char *haystack, const char *needle) { -- struct mntent me = { .mnt_opts = (char*) haystack }; -- -- assert(needle); -- -- /* Like glibc's hasmntopt(), but works on a string, not a -- * struct mntent */ -- -- if (!haystack) -- return NULL; -- -- return hasmntopt(&me, needle); --} -- --static bool mount_is_network(MountParameters *p) { -- assert(p); -- -- if (mount_test_option(p->options, "_netdev")) -- return true; -- -- if (p->fstype && fstype_is_network(p->fstype)) -- return true; -- -- return false; --} -- --static bool mount_is_bind(MountParameters *p) { -- assert(p); -- -- if (mount_test_option(p->options, "bind")) -- return true; -- -- if (p->fstype && streq(p->fstype, "bind")) -- return true; -- -- if (mount_test_option(p->options, "rbind")) -- return true; -- -- if (p->fstype && streq(p->fstype, "rbind")) -- return true; -- -- return false; --} -- --static bool mount_is_auto(MountParameters *p) { -- assert(p); -- -- return !mount_test_option(p->options, "noauto"); --} -- --static bool needs_quota(MountParameters *p) { -- assert(p); -- -- if (mount_is_network(p)) -- return false; -- -- if (mount_is_bind(p)) -- return false; -- -- return mount_test_option(p->options, "usrquota") || -- mount_test_option(p->options, "grpquota") || -- mount_test_option(p->options, "quota") || -- mount_test_option(p->options, "usrjquota") || -- mount_test_option(p->options, "grpjquota"); --} -- - static int mount_add_device_links(Mount *m) { - MountParameters *p; - bool device_wants_mount = false; --- -1.7.9.2 - diff --git a/0026-udevadm.xml-document-resolve-names-option-for-test.patch b/0026-udevadm.xml-document-resolve-names-option-for-test.patch deleted file mode 100644 index 04d3032..0000000 --- a/0026-udevadm.xml-document-resolve-names-option-for-test.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 14a9283eb38a93ec384c322ccbe06352c86a25f8 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sun, 13 Oct 2013 17:42:51 -0400 -Subject: [PATCH] udevadm.xml: document --resolve-names option for test - -And remove documentation of the --subsystem flag which doesn't actually -exist. ---- - man/udevadm.xml | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git man/udevadm.xml man/udevadm.xml -index d0b257d..b959216 100644 ---- man/udevadm.xml -+++ man/udevadm.xml -@@ -462,9 +462,13 @@ - - - -- -+ - -- The subsystem string. -+ Specify when udevadm should resolve names of users and groups. -+ When set to early (the default) names will be resolved when the -+ rules are parsed. When set to late names will be resolved for -+ every event. When set to never names will never be resolved and -+ all devices will be owned by root. - - - --- -1.7.9.2 - diff --git a/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch b/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch deleted file mode 100644 index bd8c2b3..0000000 --- a/0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 306e6650221d88b29831bcdcef94447afb65df5c Mon Sep 17 00:00:00 2001 -From: Igor Zhbanov -Date: Tue, 15 Oct 2013 14:35:13 +0400 -Subject: [PATCH] Fix for SIGSEGV in systemd-bootchart on short-living - processes - -The function svg_ps_bars() dereferencess NULL pointer in the line - endtime = ps->last->sampledata->sampletime; -because of partially initialized ps_struct (ps->last == NULL). - -If some process terminates between scaning /proc directory in the log_sample() -function and reading additional information from /proc/PID/... files, -the files couldn't be read, the loop will be continued and partially -initialized structure returned. ---- - src/bootchart/store.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/bootchart/store.c src/bootchart/store.c -index f8c97c2..7f86cfe 100644 ---- src/bootchart/store.c -+++ src/bootchart/store.c -@@ -275,7 +275,7 @@ schedstat_next: - pscount++; - - /* mark our first sample */ -- ps->first = ps->sample; -+ ps->first = ps->last = ps->sample; - ps->sample->runtime = atoll(rt); - ps->sample->waittime = atoll(wt); - --- -1.7.9.2 - diff --git a/0031-man-document-the-b-special-boot-option.patch b/0031-man-document-the-b-special-boot-option.patch deleted file mode 100644 index 9d45f61..0000000 --- a/0031-man-document-the-b-special-boot-option.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 775657712d0f6d14b70a0fe947a95a9ecc212440 Mon Sep 17 00:00:00 2001 -From: Jan Engelhardt -Date: Tue, 15 Oct 2013 08:58:50 +0200 -Subject: [PATCH] man: document the -b special boot option - ---- - man/kernel-command-line.xml | 1 + - man/systemd.xml | 1 + - 2 files changed, 2 insertions(+) - -diff --git man/kernel-command-line.xml man/kernel-command-line.xml -index cc267a3..abe68e5 100644 ---- man/kernel-command-line.xml -+++ man/kernel-command-line.xml -@@ -123,6 +123,7 @@ - - - -+ -b - emergency - single - s -diff --git man/systemd.xml man/systemd.xml -index fe6e331..85c06d3 100644 ---- man/systemd.xml -+++ man/systemd.xml -@@ -1149,6 +1149,7 @@ - - - -+ -b - emergency - - Boot into emergency --- -1.7.9.2 - diff --git a/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch b/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch deleted file mode 100644 index ff651c1..0000000 --- a/0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +++ /dev/null @@ -1,81 +0,0 @@ -Patch based on - - From e0d856dd48d640f3d95efe7b769edec02373cc74 Mon Sep 17 00:00:00 2001 - From: Lennart Poettering - Date: Wed, 16 Oct 2013 02:51:24 +0200 - Subject: [PATCH] rules: don't limit some of the rules to the "add" action - - Devices should show up in systemd regardless whether the user invoked - "udevadm trigger" or not. Before this change some devices might have - suddenly disappeared due issuing that command. - -and also on - - From 1a0464230c08506c3fd715ff7cc56660df3a85ca Mon Sep 17 00:00:00 2001 - From: Bastien Nocera - Date: Fri, 11 Oct 2013 07:45:32 +0000 - Subject: Add support for saving/restoring keyboard backlights - - Piggy-backing on the display backlight code, this saves and restores - keyboard backlights on supported devices. - - The detection code matches that of UPower: - http://cgit.freedesktop.org/upower/tree/src/up-kbd-backlight.c#n173 - - https://bugs.freedesktop.org/show_bug.cgi?id=70367 - - [tomegun: also work for devices named "{smc,samsung,asus}::kbd_backlight"] - ---- - rules/99-systemd.rules.in | 10 ++++++---- - src/backlight/backlight.c | 7 +++++-- - 2 files changed, 11 insertions(+), 6 deletions(-) - ---- rules/99-systemd.rules.in -+++ rules/99-systemd.rules.in 2014-02-14 14:46:48.358235397 +0000 -@@ -51,14 +51,16 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_dev - - ACTION=="add", SUBSYSTEM=="net", KERNEL!="lo", RUN+="@rootlibexecdir@/systemd-sysctl --prefix=/proc/sys/net/ipv4/conf/$name --prefix=/proc/sys/net/ipv4/neigh/$name --prefix=/proc/sys/net/ipv6/conf/$name --prefix=/proc/sys/net/ipv6/neigh/$name" - --# Pull in backlight save/restore for all firmware backlight devices -+# Pull in backlight save/restore for all backlight devices and -+# keyboard backlights - --ACTION=="add", SUBSYSTEM=="backlight", ATTR{type}=="firmware", TAG+="systemd", ENV{SYSTEMD_WANTS}+="systemd-backlight@$name.service" -+SUBSYSTEM=="backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@backlight:$name.service" -+SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@leds:$name.service" - - # Asynchronously mount file systems implemented by these modules as - # soon as they are loaded. - --SUBSYSTEM=="module", KERNEL=="fuse", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" --SUBSYSTEM=="module", KERNEL=="configfs", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" -+SUBSYSTEM=="module", KERNEL=="fuse", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" -+SUBSYSTEM=="module", KERNEL=="configfs", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" - - LABEL="systemd_end" ---- src/backlight/backlight.c -+++ src/backlight/backlight.c 2014-02-14 15:20:47.534298128 +0000 -@@ -56,9 +56,11 @@ int main(int argc, char *argv[]) { - - errno = 0; - device = udev_device_new_from_subsystem_sysname(udev, "backlight", argv[2]); -+ if (!device) -+ device = udev_device_new_from_subsystem_sysname(udev, "leds", argv[2]); - if (!device) { - if (errno != 0) { -- log_error("Failed to get backlight device: %m"); -+ log_error("Failed to get backlight device '%s': %m", argv[2]); - r = -errno; - } else - r = log_oom(); -@@ -66,7 +68,8 @@ int main(int argc, char *argv[]) { - goto finish; - } - -- if (!streq_ptr(udev_device_get_subsystem(device), "backlight")) { -+ if (!streq_ptr(udev_device_get_subsystem(device), "backlight") && -+ !streq_ptr(udev_device_get_subsystem(device), "leds")) { - log_error("Not a backlight device: %s", argv[2]); - r = -ENODEV; - goto finish; diff --git a/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch b/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch deleted file mode 100644 index c14d8d7..0000000 --- a/0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ca2f4176fee7dd5f5664429988e7059163fddb2d Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 17 Oct 2013 03:20:46 +0200 -Subject: [PATCH] tmpfiles: log unaccessible FUSE mount points only as debug - message - ---- - src/tmpfiles/tmpfiles.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c -index 3cc831a..e23847b 100644 ---- src/tmpfiles/tmpfiles.c -+++ src/tmpfiles/tmpfiles.c -@@ -275,12 +275,15 @@ static int dir_cleanup( - continue; - - if (fstatat(dirfd(d), dent->d_name, &s, AT_SYMLINK_NOFOLLOW) < 0) { -+ if (errno == ENOENT) -+ continue; - -- if (errno != ENOENT) { -+ /* FUSE, NFS mounts, SELinux might return EACCES */ -+ if (errno == EACCES) -+ log_debug("stat(%s/%s) failed: %m", p, dent->d_name); -+ else - log_error("stat(%s/%s) failed: %m", p, dent->d_name); -- r = -errno; -- } -- -+ r = -errno; - continue; - } - --- -1.7.9.2 - diff --git a/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch b/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch deleted file mode 100644 index 07bfe49..0000000 --- a/0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a23873387a6e722b711092c89a08ab3f3d19361c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 11 Nov 2013 19:53:59 -0500 -Subject: [PATCH] systemd-python: fix booted() and add two functions to docs - -For some reason sphinx doesn't want to show inherited C functions. ---- - src/python-systemd/_daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/python-systemd/_daemon.c src/python-systemd/_daemon.c -index 6b84fb8..f0ab16f 100644 ---- src/python-systemd/_daemon.c -+++ src/python-systemd/_daemon.c -@@ -51,7 +51,7 @@ static PyObject* booted(PyObject *self, PyObject *args) { - assert(args == NULL); - - r = sd_booted(); -- if (set_error(r, NULL, NULL)) -+ if (set_error(r, NULL, NULL) < 0) - return NULL; - - return PyBool_FromLong(r); --- -1.7.9.2 - diff --git a/0035-activate-mention-E-in-the-help-text.patch b/0035-activate-mention-E-in-the-help-text.patch deleted file mode 100644 index 92ae2de..0000000 --- a/0035-activate-mention-E-in-the-help-text.patch +++ /dev/null @@ -1,25 +0,0 @@ -From df49ccafc0d57c731a3da3014ad55d5bb9ed3e1b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 13 Nov 2013 13:36:17 +0200 -Subject: [PATCH] activate: mention -E in the help text - ---- - src/activate/activate.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git src/activate/activate.c src/activate/activate.c -index 07e46b9..537626d 100644 ---- src/activate/activate.c -+++ src/activate/activate.c -@@ -289,6 +289,8 @@ static int help(void) { - " -l --listen=ADDR Listen for raw connections at ADDR\n" - " -a --accept Spawn separate child for each connection\n" - " -h --help Show this help and exit\n" -+ " -E --environment=NAME[=VALUE]\n" -+ " Pass an environment variable to children\n" - " --version Print version string and exit\n" - "\n" - "Note: file descriptors from sd_listen_fds() will be passed through.\n" --- -1.7.9.2 - diff --git a/0036-activate-fix-crash-when-s-is-passed.patch b/0036-activate-fix-crash-when-s-is-passed.patch deleted file mode 100644 index e1a0b2b..0000000 --- a/0036-activate-fix-crash-when-s-is-passed.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ed6556920c1a6cdfe0bb04e806bc1f54ea191545 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= -Date: Wed, 13 Nov 2013 13:36:16 +0200 -Subject: [PATCH] activate: fix crash when -s is passed - -getopt_long() was told to accept -s which was never implemented. ---- - src/activate/activate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/activate/activate.c src/activate/activate.c -index 537626d..2639d1c 100644 ---- src/activate/activate.c -+++ src/activate/activate.c -@@ -344,7 +344,7 @@ static int parse_argv(int argc, char *argv[]) { - assert(argc >= 0); - assert(argv); - -- while ((c = getopt_long(argc, argv, "+hl:saE:", options, NULL)) >= 0) -+ while ((c = getopt_long(argc, argv, "+hl:aE:", options, NULL)) >= 0) - switch(c) { - case 'h': - help(); --- -1.7.9.2 - diff --git a/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch b/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch deleted file mode 100644 index 2ced4b3..0000000 --- a/0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 87267de89ddce9b1b812b720e1fc9a6cb554236e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 16 Nov 2013 17:29:28 -0500 -Subject: [PATCH] tmpfiles: adjust excludes for the new per-service private - dirs - -In d8c9d3a (systemd: use unit name in PrivateTmp directories) -I forgot to update the tmpfiles config. ---- - tmpfiles.d/tmp.conf | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git tmpfiles.d/tmp.conf tmpfiles.d/tmp.conf -index 3b534a1..f0312ef 100644 ---- tmpfiles.d/tmp.conf -+++ tmpfiles.d/tmp.conf -@@ -12,6 +12,23 @@ d /tmp 1777 root root 10d - d /var/tmp 1777 root root - - - # Exclude namespace mountpoints created with PrivateTmp=yes -+x /tmp/systemd-*.service-* -+x /var/tmp/systemd-*.service-* -+X /tmp/systemd-*.service-*/tmp -+X /var/tmp/systemd-*.service-*/tmp -+x /tmp/systemd-*.socket-* -+x /var/tmp/systemd-*.socket-* -+X /tmp/systemd-*.socket-*/tmp -+X /var/tmp/systemd-*.socket-*/tmp -+x /tmp/systemd-*.mount-* -+x /var/tmp/systemd-*.mount-* -+X /tmp/systemd-*.mount-*/tmp -+X /var/tmp/systemd-*.mount-*/tmp -+x /tmp/systemd-*.swap-* -+x /var/tmp/systemd-*.swap-* -+X /tmp/systemd-*.swap-*/tmp -+X /var/tmp/systemd-*.swap-*/tmp -+# keep those for compatibility during upgrades - x /tmp/systemd-private-* - x /var/tmp/systemd-private-* - X /tmp/systemd-private-*/tmp --- -1.7.9.2 - diff --git a/0038-core-socket-fix-SO_REUSEPORT.patch b/0038-core-socket-fix-SO_REUSEPORT.patch deleted file mode 100644 index c613c97..0000000 --- a/0038-core-socket-fix-SO_REUSEPORT.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f0511bd7e3d591383485a36ddcb764abe74b1939 Mon Sep 17 00:00:00 2001 -From: Shawn Landden -Date: Sat, 16 Nov 2013 13:18:13 -0800 -Subject: [PATCH] core/socket: fix SO_REUSEPORT - ---- - src/core/load-fragment-gperf.gperf.m4 | 1 + - src/core/socket.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git src/core/load-fragment-gperf.gperf.m4 src/core/load-fragment-gperf.gperf.m4 -index e3025d2..b64fdc9 100644 ---- src/core/load-fragment-gperf.gperf.m4 -+++ src/core/load-fragment-gperf.gperf.m4 -@@ -210,6 +210,7 @@ Socket.Broadcast, config_parse_bool, 0, - Socket.PassCredentials, config_parse_bool, 0, offsetof(Socket, pass_cred) - Socket.PassSecurity, config_parse_bool, 0, offsetof(Socket, pass_sec) - Socket.TCPCongestion, config_parse_string, 0, offsetof(Socket, tcp_congestion) -+Socket.ReusePort, config_parse_bool, 0, offsetof(Socket, reuseport) - Socket.MessageQueueMaxMessages, config_parse_long, 0, offsetof(Socket, mq_maxmsg) - Socket.MessageQueueMessageSize, config_parse_long, 0, offsetof(Socket, mq_msgsize) - Socket.Service, config_parse_socket_service, 0, 0 -diff --git src/core/socket.c src/core/socket.c -index f505e4f..751f20b 100644 ---- src/core/socket.c -+++ src/core/socket.c -@@ -771,7 +771,7 @@ static void socket_apply_socket_options(Socket *s, int fd) { - - if (s->reuseport) { - int b = s->reuseport; -- if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b))) -+ if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &b, sizeof(b)) < 0) - log_warning_unit(UNIT(s)->id, "SO_REUSEPORT failed: %m"); - } - --- -1.7.9.2 - diff --git a/0039-journal-when-appending-to-journal-file-allocate-larg.patch b/0039-journal-when-appending-to-journal-file-allocate-larg.patch deleted file mode 100644 index 9e93024..0000000 --- a/0039-journal-when-appending-to-journal-file-allocate-larg.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a676e66535e12458ea6d366a653f8dd60f982504 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 18:39:42 +0100 -Subject: [PATCH] journal: when appending to journal file, allocate larger - blocks at once - ---- - src/journal/journal-file.c | 26 +++++++++++++++++--------- - 1 file changed, 17 insertions(+), 9 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index bc72fca..d606ada 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -68,6 +68,9 @@ - /* How many entries to keep in the entry array chain cache at max */ - #define CHAIN_CACHE_MAX 20 - -+/* How much to increase the journal file size at once each time we allocate something new. */ -+#define FILE_SIZE_INCREASE (8ULL*1024ULL*1024ULL) /* 8MB */ -+ - int journal_file_set_online(JournalFile *f) { - assert(f); - -@@ -218,8 +221,7 @@ static int journal_file_refresh_header(JournalFile *f) { - journal_file_set_online(f); - - /* Sync the online state to disk */ -- msync(f->header, PAGE_ALIGN(sizeof(Header)), MS_SYNC); -- fdatasync(f->fd); -+ fsync(f->fd); - - return 0; - } -@@ -313,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { - } - - static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { -- uint64_t old_size, new_size; -+ uint64_t old_size, new_size, file_size; - int r; - - assert(f); -@@ -333,12 +335,10 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (new_size <= old_size) - return 0; - -- if (f->metrics.max_size > 0 && -- new_size > f->metrics.max_size) -+ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) - return -E2BIG; - -- if (new_size > f->metrics.min_size && -- f->metrics.keep_free > 0) { -+ if (new_size > f->metrics.min_size && f->metrics.keep_free > 0) { - struct statvfs svfs; - - if (fstatvfs(f->fd, &svfs) >= 0) { -@@ -363,8 +363,16 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (r != 0) - return -r; - -- if (fstat(f->fd, &f->last_stat) < 0) -- return -errno; -+ /* Increase the file size a bit further than this, so that we -+ * we can create larger memory maps to cache */ -+ file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -+ if (file_size > (uint64_t) f->last_stat.st_size) { -+ if (file_size > new_size) -+ ftruncate(f->fd, file_size); -+ -+ if (fstat(f->fd, &f->last_stat) < 0) -+ return -errno; -+ } - - f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); - --- -1.7.9.2 - diff --git a/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch b/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch deleted file mode 100644 index 7436895..0000000 --- a/0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch +++ /dev/null @@ -1,247 +0,0 @@ -From f268980d2cee694fa4118a71402a47c316af0425 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 26 Nov 2013 20:37:53 +0100 -Subject: [PATCH] journal: optimize bisection logic a bit by caching the last - position - -This way we can do a quick restart limiting a bit how wildly we need to -jump around during the bisection process. ---- - src/journal/journal-file.c | 134 ++++++++++++++++++++++++++++++++------------ - 1 file changed, 99 insertions(+), 35 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 481c242..27cd16f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1366,6 +1366,7 @@ typedef struct ChainCacheItem { - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -+ uint64_t last_index; /* the last index we looked at, to optimize locality when bisecting */ - } ChainCacheItem; - - static void chain_cache_put( -@@ -1374,7 +1375,8 @@ static void chain_cache_put( - uint64_t first, - uint64_t array, - uint64_t begin, -- uint64_t total) { -+ uint64_t total, -+ uint64_t last_index) { - - if (!ci) { - /* If the chain item to cache for this chain is the -@@ -1402,12 +1404,14 @@ static void chain_cache_put( - ci->array = array; - ci->begin = begin; - ci->total = total; -+ ci->last_index = last_index; - } - --static int generic_array_get(JournalFile *f, -- uint64_t first, -- uint64_t i, -- Object **ret, uint64_t *offset) { -+static int generic_array_get( -+ JournalFile *f, -+ uint64_t first, -+ uint64_t i, -+ Object **ret, uint64_t *offset) { - - Object *o; - uint64_t p = 0, a, t = 0; -@@ -1448,7 +1452,7 @@ static int generic_array_get(JournalFile *f, - - found: - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t); -+ chain_cache_put(f->chain_cache, ci, first, a, o->entry_array.items[0], t, i); - - r = journal_file_move_to_object(f, OBJECT_ENTRY, p, &o); - if (r < 0) -@@ -1463,11 +1467,12 @@ found: - return 1; - } - --static int generic_array_get_plus_one(JournalFile *f, -- uint64_t extra, -- uint64_t first, -- uint64_t i, -- Object **ret, uint64_t *offset) { -+static int generic_array_get_plus_one( -+ JournalFile *f, -+ uint64_t extra, -+ uint64_t first, -+ uint64_t i, -+ Object **ret, uint64_t *offset) { - - Object *o; - -@@ -1498,17 +1503,18 @@ enum { - TEST_RIGHT - }; - --static int generic_array_bisect(JournalFile *f, -- uint64_t first, -- uint64_t n, -- uint64_t needle, -- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -- direction_t direction, -- Object **ret, -- uint64_t *offset, -- uint64_t *idx) { -- -- uint64_t a, p, t = 0, i = 0, last_p = 0; -+static int generic_array_bisect( -+ JournalFile *f, -+ uint64_t first, -+ uint64_t n, -+ uint64_t needle, -+ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -+ direction_t direction, -+ Object **ret, -+ uint64_t *offset, -+ uint64_t *idx) { -+ -+ uint64_t a, p, t = 0, i = 0, last_p = 0, last_index = (uint64_t) -1; - bool subtract_one = false; - Object *o, *array = NULL; - int r; -@@ -1533,7 +1539,7 @@ static int generic_array_bisect(JournalFile *f, - return r; - - if (r == TEST_LEFT) { -- /* OK, what we are looking for is right of th -+ /* OK, what we are looking for is right of the - * begin of this EntryArray, so let's jump - * straight to previously cached array in the - * chain */ -@@ -1541,6 +1547,7 @@ static int generic_array_bisect(JournalFile *f, - a = ci->array; - n -= ci->total; - t = ci->total; -+ last_index = ci->last_index; - } - } - -@@ -1571,6 +1578,60 @@ static int generic_array_bisect(JournalFile *f, - if (r == TEST_RIGHT) { - left = 0; - right -= 1; -+ -+ if (last_index != (uint64_t) -1) { -+ assert(last_index <= right); -+ -+ /* If we cached the last index we -+ * looked at, let's try to not to jump -+ * too wildly around and see if we can -+ * limit the range to look at early to -+ * the immediate neighbors of the last -+ * index we looked at. */ -+ -+ if (last_index > 0) { -+ uint64_t x = last_index - 1; -+ -+ p = le64toh(array->entry_array.items[x]); -+ if (p <= 0) -+ return -EBADMSG; -+ -+ r = test_object(f, p, needle); -+ if (r < 0) -+ return r; -+ -+ if (r == TEST_FOUND) -+ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; -+ -+ if (r == TEST_RIGHT) -+ right = x; -+ else -+ left = x + 1; -+ } -+ -+ if (last_index < right) { -+ uint64_t y = last_index + 1; -+ -+ p = le64toh(array->entry_array.items[y]); -+ if (p <= 0) -+ return -EBADMSG; -+ -+ r = test_object(f, p, needle); -+ if (r < 0) -+ return r; -+ -+ if (r == TEST_FOUND) -+ r = direction == DIRECTION_DOWN ? TEST_RIGHT : TEST_LEFT; -+ -+ if (r == TEST_RIGHT) -+ right = y; -+ else -+ left = y + 1; -+ } -+ -+ last_index = (uint64_t) -1; -+ } -+ - for (;;) { - if (left == right) { - if (direction == DIRECTION_UP) -@@ -1581,8 +1642,8 @@ static int generic_array_bisect(JournalFile *f, - } - - assert(left < right); -- - i = (left + right) / 2; -+ - p = le64toh(array->entry_array.items[i]); - if (p <= 0) - return -EBADMSG; -@@ -1615,6 +1676,7 @@ static int generic_array_bisect(JournalFile *f, - - n -= k; - t += k; -+ last_index = (uint64_t) -1; - a = le64toh(array->entry_array.next_entry_array_offset); - } - -@@ -1625,7 +1687,7 @@ found: - return 0; - - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t); -+ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); - - if (subtract_one && i == 0) - p = last_p; -@@ -1650,16 +1712,18 @@ found: - return 1; - } - --static int generic_array_bisect_plus_one(JournalFile *f, -- uint64_t extra, -- uint64_t first, -- uint64_t n, -- uint64_t needle, -- int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -- direction_t direction, -- Object **ret, -- uint64_t *offset, -- uint64_t *idx) { -+ -+static int generic_array_bisect_plus_one( -+ JournalFile *f, -+ uint64_t extra, -+ uint64_t first, -+ uint64_t n, -+ uint64_t needle, -+ int (*test_object)(JournalFile *f, uint64_t p, uint64_t needle), -+ direction_t direction, -+ Object **ret, -+ uint64_t *offset, -+ uint64_t *idx) { - - int r; - bool step_back = false; --- -1.7.9.2 - diff --git a/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch b/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch deleted file mode 100644 index 24c0226..0000000 --- a/0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e5462cd80e5328a769137c261c93931ea0c27bab Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 00:58:39 +0100 -Subject: [PATCH] journal: fix iteration when we go backwards from the - beginning of an array chain element - ---- - src/journal/journal-file.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 27cd16f..409be76 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -1687,7 +1687,7 @@ found: - return 0; - - /* Let's cache this item for the next invocation */ -- chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, i + (subtract_one ? -1 : 0)); -+ chain_cache_put(f->chain_cache, ci, first, a, array->entry_array.items[0], t, subtract_one ? (i > 0 ? i-1 : (uint64_t) -1) : i); - - if (subtract_one && i == 0) - p = last_p; --- -1.7.9.2 - diff --git a/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch b/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch deleted file mode 100644 index 78946e7..0000000 --- a/0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 248c78c79c5cca9b981800d816a77591e504066a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 00:59:07 +0100 -Subject: [PATCH] journal: allow journal_file_copy_entry() to work on - non-local files - ---- - src/journal/journal-file.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 409be76..14eae8f 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -2732,10 +2732,6 @@ int journal_file_copy_entry(JournalFile *from, JournalFile *to, Object *o, uint6 - ts.monotonic = le64toh(o->entry.monotonic); - ts.realtime = le64toh(o->entry.realtime); - -- if (to->tail_entry_monotonic_valid && -- ts.monotonic < le64toh(to->header->tail_entry_monotonic)) -- return -EINVAL; -- - n = journal_file_entry_n_items(o); - items = alloca(sizeof(EntryItem) * n); - --- -1.7.9.2 - diff --git a/0043-journal-simplify-pre-allocation-logic.patch b/0043-journal-simplify-pre-allocation-logic.patch deleted file mode 100644 index 16511ec..0000000 --- a/0043-journal-simplify-pre-allocation-logic.patch +++ /dev/null @@ -1,61 +0,0 @@ -From eda4b58b50509dc8ad0428a46e20f6c5cf516d58 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 01:44:52 +0100 -Subject: [PATCH] journal: simplify pre-allocation logic - -let's just do a single fallocate() as far as possible, and don't -distuingish between allocated space and file size. - -This way we can save a syscall for each append, which makes quite some -benefits. ---- - src/journal/journal-file.c | 19 ++++++++----------- - 1 file changed, 8 insertions(+), 11 deletions(-) - -diff --git src/journal/journal-file.c src/journal/journal-file.c -index 14eae8f..4009b29 100644 ---- src/journal/journal-file.c -+++ src/journal/journal-file.c -@@ -315,7 +315,7 @@ static int journal_file_verify_header(JournalFile *f) { - } - - static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) { -- uint64_t old_size, new_size, file_size; -+ uint64_t old_size, new_size; - int r; - - assert(f); -@@ -356,6 +356,11 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - } - } - -+ /* Increase by larger blocks at once */ -+ new_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -+ if (f->metrics.max_size > 0 && new_size > f->metrics.max_size) -+ new_size = f->metrics.max_size; -+ - /* Note that the glibc fallocate() fallback is very - inefficient, hence we try to minimize the allocation area - as we can. */ -@@ -363,16 +368,8 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) - if (r != 0) - return -r; - -- /* Increase the file size a bit further than this, so that we -- * we can create larger memory maps to cache */ -- file_size = ((new_size+FILE_SIZE_INCREASE-1) / FILE_SIZE_INCREASE) * FILE_SIZE_INCREASE; -- if (file_size > (uint64_t) f->last_stat.st_size) { -- if (file_size > new_size) -- ftruncate(f->fd, file_size); -- -- if (fstat(f->fd, &f->last_stat) < 0) -- return -errno; -- } -+ if (fstat(f->fd, &f->last_stat) < 0) -+ return -errno; - - f->header->arena_size = htole64(new_size - le64toh(f->header->header_size)); - --- -1.7.9.2 - diff --git a/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch b/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch deleted file mode 100644 index 90e71fb..0000000 --- a/0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch +++ /dev/null @@ -1,58 +0,0 @@ -From fbb634117d0b0ebd5b105e65b141e75ae9af7f8f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 27 Nov 2013 01:54:25 +0100 -Subject: [PATCH] journald: mention how long we needed to flush to /var in the - logs - ---- - src/journal/journald-server.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git src/journal/journald-server.c src/journal/journald-server.c -index ce419d4..01e75b6 100644 ---- src/journal/journald-server.c -+++ src/journal/journald-server.c -@@ -970,9 +970,12 @@ static int system_journal_open(Server *s) { - } - - int server_flush_to_var(Server *s) { -- int r; - sd_id128_t machine; - sd_journal *j = NULL; -+ char ts[FORMAT_TIMESPAN_MAX]; -+ usec_t start; -+ unsigned n = 0; -+ int r; - - assert(s); - -@@ -990,6 +993,8 @@ int server_flush_to_var(Server *s) { - - log_debug("Flushing to /var..."); - -+ start = now(CLOCK_MONOTONIC); -+ - r = sd_id128_get_machine(&machine); - if (r < 0) - return r; -@@ -1009,6 +1014,8 @@ int server_flush_to_var(Server *s) { - f = j->current_file; - assert(f && f->current_offset > 0); - -+ n++; -+ - r = journal_file_move_to_object(f, OBJECT_ENTRY, f->current_offset, &o); - if (r < 0) { - log_error("Can't read entry: %s", strerror(-r)); -@@ -1052,6 +1059,8 @@ finish: - - sd_journal_close(j); - -+ server_driver_message(s, SD_ID128_NULL, "Time spent on flushing to /var is %s for %u entries.", format_timespan(ts, sizeof(ts), now(CLOCK_MONOTONIC) - start, 0), n); -+ - return r; - } - --- -1.7.9.2 - diff --git a/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch b/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch deleted file mode 100644 index 1a42320..0000000 --- a/0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 27373e442747010dfc195296c0705f67e905a611 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 30 Nov 2013 23:45:31 +0100 -Subject: [PATCH] util.c: check if return value from ttyname_r is > 0 instead - of != 0 - -We must return a negative error code from getttyname_malloc but -that would not be the case if ttyname_r returned a negative value. - -ttyname_r should only return EBADF, ENOTTY, or ERANGE so it should -be safe to change. ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/shared/util.c src/shared/util.c -index 38134ae..206fc80 100644 ---- src/shared/util.c -+++ src/shared/util.c -@@ -2501,7 +2501,7 @@ int getttyname_malloc(int fd, char **r) { - assert(r); - - k = ttyname_r(fd, path, sizeof(path)); -- if (k != 0) -+ if (k > 0) - return -k; - - char_array_0(path); --- -1.7.9.2 - diff --git a/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch b/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch deleted file mode 100644 index e94380d..0000000 --- a/0047-docs-remove-unneeded-the-s-in-gudev-docs.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 572ce4f7832ffa7a91a582c4098f18cec5662666 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Nov 2013 20:27:54 -0500 -Subject: [PATCH] docs: remove unneeded the's in gudev docs - -https://bugs.freedesktop.org/show_bug.cgi?id=72164 ---- - src/libudev/libudev-device.c | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git src/libudev/libudev-device.c src/libudev/libudev-device.c -index 059a590..9558ac3 100644 ---- src/libudev/libudev-device.c -+++ src/libudev/libudev-device.c -@@ -982,9 +982,8 @@ static struct udev_device *device_new_from_parent(struct udev_device *udev_devic - * Find the next parent device, and fill in information from the sys - * device and the udev database entry. - * -- * The returned the device is not referenced. It is attached to the -- * child device, and will be cleaned up when the child device -- * is cleaned up. -+ * Returned device is not referenced. It is attached to the child -+ * device, and will be cleaned up when the child device is cleaned up. - * - * It is not necessarily just the upper level directory, empty or not - * recognized sys directories are ignored. -@@ -1018,9 +1017,8 @@ _public_ struct udev_device *udev_device_get_parent(struct udev_device *udev_dev - * If devtype is #NULL, only subsystem is checked, and any devtype will - * match. - * -- * The returned the device is not referenced. It is attached to the -- * child device, and will be cleaned up when the child device -- * is cleaned up. -+ * Returned device is not referenced. It is attached to the child -+ * device, and will be cleaned up when the child device is cleaned up. - * - * It can be called as many times as needed, without caring about - * references. --- -1.7.9.2 - diff --git a/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch b/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch deleted file mode 100644 index ec388b8..0000000 --- a/0048-man-explicitly-say-when-multiple-units-can-be-specif.patch +++ /dev/null @@ -1,238 +0,0 @@ -From 6a44e50f4c0938b0ba355fff21add6c067cd9837 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 30 Nov 2013 21:23:01 -0500 -Subject: [PATCH] man: explicitly say when multiple units can be specified - -itistoday> how do you specify multiple dependencies in a unit file? i've been - googling and can't find this basic thing :-\ -itistoday> do you use a comma, or use multiple After= statements? ---- - man/systemd.unit.xml | 128 +++++++++++++++++++++++++++----------------------- - 1 file changed, 70 insertions(+), 58 deletions(-) - -diff --git man/systemd.unit.xml man/systemd.unit.xml -index 4dc427c..35dd4c7 100644 ---- man/systemd.unit.xml -+++ man/systemd.unit.xml -@@ -410,10 +410,12 @@ - of the other units gets deactivated or - its activation fails, this unit will - be deactivated. This option may be -- specified more than once, in which -- case requirement dependencies for all -- listed names are created. Note that -- requirement dependencies do not -+ specified more than once or multiple -+ space-separated units may be specified -+ in one option in which case -+ requirement dependencies for all -+ listed names will be created. Note -+ that requirement dependencies do not - influence the order in which services - are started or stopped. This has to be - configured independently with the -@@ -476,22 +478,23 @@ - RequisiteOverridable= - - Similar to -- Requires= -- and RequiresOverridable=, respectively. However, -- if a unit listed here is not started -- already it will not be started and the -- transaction fails -- immediately. -+ Requires= and -+ RequiresOverridable=, -+ respectively. However, if the units -+ listed here are not started already -+ they will not be started and the -+ transaction will fail immediately. -+ - - - - Wants= - - A weaker version of -- Requires=. A unit -+ Requires=. Units - listed in this option will be started - if the configuring unit is. However, -- if the listed unit fails to start up -+ if the listed units fail to start - or cannot be added to the transaction - this has no impact on the validity of - the transaction as a whole. This is -@@ -501,8 +504,8 @@ - - Note that dependencies of this - type may also be configured outside of -- the unit configuration file by -- adding a symlink to a -+ the unit configuration file by adding -+ symlinks to a - .wants/ directory - accompanying the unit file. For - details see above. -@@ -534,7 +537,7 @@ - of units. When systemd stops or restarts - the units listed here, the action is - propagated to this unit. -- Note that this is a one way dependency - -+ Note that this is a one way dependency — - changes to this unit do not affect the - listed units. - -@@ -543,12 +546,12 @@ - - Conflicts= - -- Configures negative -+ A space-separated list -+ of unit names. Configures negative - requirement dependencies. If a unit -- has a -- Conflicts= setting -- on another unit, starting the former -- will stop the latter and vice -+ has a Conflicts= -+ setting on another unit, starting the -+ former will stop the latter and vice - versa. Note that this setting is - independent of and orthogonal to the - After= and -@@ -575,7 +578,8 @@ - Before= - After= - -- Configures ordering -+ A space-separated list -+ of unit names. Configures ordering - dependencies between units. If a unit - foo.service - contains a setting -@@ -624,18 +628,18 @@ - type After= or - Before=. If two - units have no ordering dependencies -- between them, they are shut down -- or started up simultaneously, and -- no ordering takes -+ between them, they are shut down or -+ started up simultaneously, and no -+ ordering takes - place. - - - - OnFailure= - -- Lists one or more -- units that are activated when this -- unit enters the -+ A space-separated list -+ of one or more units that are -+ activated when this unit enters the - failed - state. - -@@ -644,16 +648,17 @@ - PropagatesReloadTo= - ReloadPropagatedFrom= - -- Lists one or more -- units where reload requests on the -- unit will be propagated to/on the -- other unit will be propagated -- from. Issuing a reload request on a -- unit will automatically also enqueue a -- reload request on all units that the -- reload request shall be propagated to -- via these two -- settings. -+ A space-separated list -+ of one or more units where reload -+ requests on this unit will be -+ propagated to, or reload requests on -+ the other unit will be propagated to -+ this unit, respectively. Issuing a -+ reload request on a unit will -+ automatically also enqueue a reload -+ request on all units that the reload -+ request shall be propagated to via -+ these two settings. - - - -@@ -1130,32 +1135,34 @@ - - Alias= - -- Additional names this -- unit shall be installed under. The -- names listed here must have the same -- suffix (i.e. type) as the unit file -- name. This option may be specified -- more than once, in which case all -- listed names are used. At installation -- time, -- systemctl enable -- will create symlinks from these names -- to the unit filename. -+ A space-seperated list -+ of additional names this unit shall be -+ installed under. The names listed here -+ must have the same suffix (i.e. type) -+ as the unit file name. This option may -+ be specified more than once, in which -+ case all listed names are used. At -+ installation time, systemctl -+ enable will create symlinks -+ from these names to the unit -+ filename. - - - - WantedBy= - RequiredBy= - -- A symbolic link is -- created in the -- .wants/ or -- .requires/ directory -- of the listed unit when this unit is -- activated by systemctl -- enable. This has the effect -- that a dependency of type -- Wants= or -+ This option may be -+ used more than once, or a -+ space-separated list of unit names may -+ be given. A symbolic link is created -+ in the .wants/ or -+ .requires/ -+ directory of each of the listed units -+ when this unit is installed by -+ systemctl enable. -+ This has the effect that a dependency -+ of type Wants= or - Requires= is added - from the listed unit to the current - unit. The primary result is that the -@@ -1201,7 +1208,12 @@ - and systemctl - disable will automatically - install/uninstall units listed in this option as -- well. -+ well. -+ -+ This option may be used more -+ than once, or a space-separated list -+ of unit names may be -+ given. - - - --- -1.7.9.2 - diff --git a/0049-systemd-treat-reload-failure-as-failure.patch b/0049-systemd-treat-reload-failure-as-failure.patch deleted file mode 100644 index 9dde25b..0000000 --- a/0049-systemd-treat-reload-failure-as-failure.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 6a371e23ee0e47827fb4e3aa469ed84da2599304 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 2 Dec 2013 21:52:51 -0500 -Subject: [PATCH] systemd: treat reload failure as failure - -systemctl reload "suceeded" on stopped units, but it is documented -to fail in this case. - -https://bugzilla.redhat.com/show_bug.cgi?id=1036845 ---- - src/core/job.c | 11 +++++++---- - src/core/job.h | 3 ++- - src/core/unit.c | 5 ++++- - 3 files changed, 13 insertions(+), 6 deletions(-) - -diff --git src/core/job.c src/core/job.c -index 557917a..ce97263 100644 ---- src/core/job.c -+++ src/core/job.c -@@ -508,7 +508,7 @@ int job_run_and_invalidate(Job *j) { - else if (t == UNIT_ACTIVATING) - r = -EAGAIN; - else -- r = -ENOEXEC; -+ r = -EBADR; - break; - } - -@@ -537,8 +537,10 @@ int job_run_and_invalidate(Job *j) { - if (j) { - if (r == -EALREADY) - r = job_finish_and_invalidate(j, JOB_DONE, true); -- else if (r == -ENOEXEC) -+ else if (r == -EBADR) - r = job_finish_and_invalidate(j, JOB_SKIPPED, true); -+ else if (r == -ENOEXEC) -+ r = job_finish_and_invalidate(j, JOB_INVALID, true); - else if (r == -EAGAIN) { - j->state = JOB_WAITING; - m->n_running_jobs--; -@@ -764,7 +766,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive) { - goto finish; - } - -- if (result == JOB_FAILED) -+ if (result == JOB_FAILED || result == JOB_INVALID) - j->manager->n_failed_jobs ++; - - job_uninstall(j); -@@ -1119,7 +1121,8 @@ static const char* const job_result_table[_JOB_RESULT_MAX] = { - [JOB_TIMEOUT] = "timeout", - [JOB_FAILED] = "failed", - [JOB_DEPENDENCY] = "dependency", -- [JOB_SKIPPED] = "skipped" -+ [JOB_SKIPPED] = "skipped", -+ [JOB_INVALID] = "invalid", - }; - - DEFINE_STRING_TABLE_LOOKUP(job_result, JobResult); -diff --git src/core/job.h src/core/job.h -index c23a380..0500e12 100644 ---- src/core/job.h -+++ src/core/job.h -@@ -97,7 +97,8 @@ enum JobResult { - JOB_TIMEOUT, /* JobTimeout elapsed */ - JOB_FAILED, /* Job failed */ - JOB_DEPENDENCY, /* A required dependency job did not result in JOB_DONE */ -- JOB_SKIPPED, /* JOB_RELOAD of inactive unit; negative result of JOB_VERIFY_ACTIVE */ -+ JOB_SKIPPED, /* Negative result of JOB_VERIFY_ACTIVE */ -+ JOB_INVALID, /* JOB_RELOAD of inactive unit */ - _JOB_RESULT_MAX, - _JOB_RESULT_INVALID = -1 - }; -diff --git src/core/unit.c src/core/unit.c -index 50db86c..81d2162 100644 ---- src/core/unit.c -+++ src/core/unit.c -@@ -1239,8 +1239,11 @@ int unit_reload(Unit *u) { - if (state == UNIT_RELOADING) - return -EALREADY; - -- if (state != UNIT_ACTIVE) -+ if (state != UNIT_ACTIVE) { -+ log_warning_unit(u->id, "Unit %s cannot be reloaded because it is inactive.", -+ u->id); - return -ENOEXEC; -+ } - - if ((following = unit_following(u))) { - log_debug_unit(u->id, "Redirecting reload request from %s to %s.", --- -1.7.9.2 - diff --git a/0145-logind-use-correct-who-enum-values-with-KillUnit.patch b/0145-logind-use-correct-who-enum-values-with-KillUnit.patch deleted file mode 100644 index f8fff2d..0000000 --- a/0145-logind-use-correct-who-enum-values-with-KillUnit.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 524147c1ef991edf4432aac51c880b363b4402df Mon Sep 17 00:00:00 2001 -From: Marius Vollmer -Date: Thu, 31 Oct 2013 15:55:07 +0200 -Subject: [PATCH] logind: use correct "who" enum values with KillUnit. - ---- - src/login/logind-dbus.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index bb85c7d..583d62e 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -2799,7 +2799,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - assert(manager); - assert(unit); - -- w = who == KILL_LEADER ? "process" : "cgroup"; -+ w = who == KILL_LEADER ? "control" : "all"; - assert_cc(sizeof(signo) == sizeof(int32_t)); - - r = bus_method_call_with_reply( -@@ -2815,7 +2815,7 @@ int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo - DBUS_TYPE_INT32, &signo, - DBUS_TYPE_INVALID); - if (r < 0) { -- log_error("Failed to stop unit %s: %s", unit, bus_error(error, r)); -+ log_error("Failed to kill unit %s: %s", unit, bus_error(error, r)); - return r; - } - diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch deleted file mode 100644 index 4f91c92..0000000 --- a/1006-udev-always-rename-network.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Robert Milasan -Date: Thu, 28 Mar 2013 09:24:43 +0000 -Subject: udev always rename network - -udev: ensure that the network interfaces are renamed even if they exist -(bnc#809843). ---- - src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 43 insertions(+), 3 deletions(-) - ---- systemd-206.orig/src/udev/udev-event.c -+++ systemd-206/src/udev/udev-event.c -@@ -750,6 +750,7 @@ static int rename_netif(struct udev_even - struct udev_device *dev = event->dev; - int sk; - struct ifreq ifr; -+ int loop; - int err; - - log_debug("changing net interface name from '%s' to '%s'\n", -@@ -766,12 +767,51 @@ static int rename_netif(struct udev_even - strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); - strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); - err = ioctl(sk, SIOCSIFNAME, &ifr); -- if (err >= 0) { -+ if (err == 0) { - print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -- } else { -+ goto out; -+ } -+ -+ /* keep trying if the destination interface name already exists */ -+ err = -errno; -+ if (err != -EEXIST) { -+ goto out; -+ } -+ -+ /* free our own name, another process may wait for us */ -+ snprintf(ifr.ifr_newname, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err < 0) { - err = -errno; -- log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); -+ goto out; - } -+ -+ /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -+ -+ /* wait a maximum of 90 seconds for our target to become available */ -+ strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname); -+ strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); -+ loop = 90 * 20; -+ while (loop--) { -+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; -+ -+ log_debug("wait for netif '%s' to become free, loop=%i\n", event->name, (90 * 20) - loop); -+ nanosleep(&duration, NULL); -+ -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err == 0) { -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -+ break; -+ } -+ err = -errno; -+ if (err != -EEXIST) -+ break; -+ } -+ -+out: -+ if (err < 0) -+ log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); - close(sk); - return err; - } diff --git a/1011-check-4-valid-kmsg-device.patch b/1011-check-4-valid-kmsg-device.patch deleted file mode 100644 index 6d57c35..0000000 --- a/1011-check-4-valid-kmsg-device.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: Werner Fink -Date: Thu, 21 Nov 2013 11:50:32 +0000 -Subject: [PATCH] Avoid busy systemd-journald - -Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc -environments. - ---- - journald-kmsg.c | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -Index: systemd-208/src/journal/journald-kmsg.c -=================================================================== ---- systemd-208/src/journal/journald-kmsg.c -+++ systemd-208/src/journal/journald-kmsg.c 2013-12-20 11:34:39.762236175 +0000 -@@ -377,15 +377,18 @@ int server_flush_dev_kmsg(Server *s) { - - int server_open_dev_kmsg(Server *s) { - struct epoll_event ev; -+ int r; - - assert(s); - - s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); - if (s->dev_kmsg_fd < 0) { -- log_warning("Failed to open /dev/kmsg, ignoring: %m"); -+ log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING, -+ "Failed to open /dev/kmsg, ignoring: %m"); - return 0; - } - -+ r = 0; - zero(ev); - ev.events = EPOLLIN; - ev.data.fd = s->dev_kmsg_fd; -@@ -394,15 +397,24 @@ int server_open_dev_kmsg(Server *s) { - /* This will fail with EPERM on older kernels where - * /dev/kmsg is not readable. */ - if (errno == EPERM) -- return 0; -+ goto fail; - - log_error("Failed to add /dev/kmsg fd to epoll object: %m"); -- return -errno; -+ r = -errno; -+ goto fail; - } - - s->dev_kmsg_readable = true; - - return 0; -+ -+fail: -+ if (s->dev_kmsg_fd >= 0) { -+ close_nointr_nofail(s->dev_kmsg_fd); -+ s->dev_kmsg_fd = -1; -+ } -+ -+ return r; - } - - int server_open_kernel_seqnum(Server *s) { diff --git a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch b/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch deleted file mode 100644 index bdf9383..0000000 --- a/1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +++ /dev/null @@ -1,168 +0,0 @@ -Based on upstream baae0358f349870544884e405e82e4be7d8add9f -| From: Lennart Poettering -| Date: Tue, 26 Nov 2013 04:05:00 +0000 -| Subject: pam_systemd: do not set XDG_RUNTIME_DIR if the session's original user is not the same as the newly logged in one -| It's better not to set any XDG_RUNTIME_DIR at all rather than one of a -| different user. So let's do this. ---- systemd-208/src/login/logind-dbus.c -+++ systemd-208/src/login/logind-dbus.c 2013-11-26 13:37:05.730735774 +0000 -@@ -523,6 +523,7 @@ static int bus_manager_create_session(Ma - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_STRING, &session->user->runtime_path, - DBUS_TYPE_UNIX_FD, &fifo_fd, -+ DBUS_TYPE_UINT32, &session->user->uid, - DBUS_TYPE_STRING, &cseat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &exists, ---- systemd-208/src/login/logind-session-dbus.c -+++ systemd-208/src/login/logind-session-dbus.c 2013-11-26 13:36:07.478236401 +0000 -@@ -755,6 +755,7 @@ int session_send_create_reply(Session *s - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_STRING, &s->user->runtime_path, - DBUS_TYPE_UNIX_FD, &fifo_fd, -+ DBUS_TYPE_UINT32, &s->user->uid, - DBUS_TYPE_STRING, &cseat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &exists, ---- systemd-208/src/login/pam-module.c -+++ systemd-208/src/login/pam-module.c 2013-11-26 14:32:20.194235777 +0000 -@@ -93,24 +93,18 @@ static int get_user_data( - assert(ret_username); - assert(ret_pw); - -- r = audit_loginuid_from_pid(0, &uid); -- if (r >= 0) -- pw = pam_modutil_getpwuid(handle, uid); -- else { -- r = pam_get_user(handle, &username, NULL); -- if (r != PAM_SUCCESS) { -- pam_syslog(handle, LOG_ERR, "Failed to get user name."); -- return r; -- } -- -- if (isempty(username)) { -- pam_syslog(handle, LOG_ERR, "User name not valid."); -- return PAM_AUTH_ERR; -- } -+ r = pam_get_user(handle, &username, NULL); -+ if (r != PAM_SUCCESS) { -+ pam_syslog(handle, LOG_ERR, "Failed to get user name."); -+ return r; -+ } - -- pw = pam_modutil_getpwnam(handle, username); -+ if (isempty(username)) { -+ pam_syslog(handle, LOG_ERR, "User name not valid."); -+ return PAM_AUTH_ERR; - } - -+ pw = pam_modutil_getpwnam(handle, username); - if (!pw) { - pam_syslog(handle, LOG_ERR, "Failed to get user data."); - return PAM_USER_UNKNOWN; -@@ -123,16 +117,14 @@ static int get_user_data( - } - - static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) { -- _cleanup_free_ char *p = NULL; -- int r; -- _cleanup_close_ int fd = -1; - union sockaddr_union sa = { - .un.sun_family = AF_UNIX, - }; -+ _cleanup_free_ char *p = NULL, *tty = NULL; -+ _cleanup_close_ int fd = -1; - struct ucred ucred; - socklen_t l; -- _cleanup_free_ char *tty = NULL; -- int v; -+ int v, r; - - assert(display); - assert(vtnr); -@@ -194,13 +186,12 @@ _public_ PAM_EXTERN int pam_sm_open_sess - dbus_bool_t remote, existing; - int r; - uint32_t vtnr = 0; -+ uid_t original_uid; - - assert(handle); - - dbus_error_init(&error); - -- /* pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); */ -- - /* Make this a NOP on non-logind systems */ - if (!logind_running()) - return PAM_SUCCESS; -@@ -213,6 +204,9 @@ _public_ PAM_EXTERN int pam_sm_open_sess - goto finish; - } - -+ if (debug) -+ pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); -+ - r = get_user_data(handle, &username, &pw); - if (r != PAM_SUCCESS) - goto finish; -@@ -374,7 +368,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess - if (debug) - pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: " - "uid=%u pid=%u service=%s type=%s class=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s", -- uid, pid, service, type, class, seat, vtnr, tty, display, yes_no(remote), remote_user, remote_host); -+ pw->pw_uid, pid, -+ strempty(service), -+ type, class, -+ seat, vtnr, tty, display, -+ yes_no(remote), remote_user, remote_host); - - reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); - if (!reply) { -@@ -388,6 +386,7 @@ _public_ PAM_EXTERN int pam_sm_open_sess - DBUS_TYPE_OBJECT_PATH, &object_path, - DBUS_TYPE_STRING, &runtime_path, - DBUS_TYPE_UNIX_FD, &session_fd, -+ DBUS_TYPE_UINT32, &original_uid, - DBUS_TYPE_STRING, &seat, - DBUS_TYPE_UINT32, &vtnr, - DBUS_TYPE_BOOLEAN, &existing, -@@ -399,8 +398,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess - - if (debug) - pam_syslog(handle, LOG_DEBUG, "Reply from logind: " -- "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u", -- id, object_path, runtime_path, session_fd, seat, vtnr); -+ "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u", -+ id, object_path, runtime_path, session_fd, seat, vtnr, original_uid); - - r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0); - if (r != PAM_SUCCESS) { -@@ -408,10 +407,24 @@ _public_ PAM_EXTERN int pam_sm_open_sess - goto finish; - } - -- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); -- if (r != PAM_SUCCESS) { -- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); -- goto finish; -+ if (original_uid == pw->pw_uid) { -+ /* Don't set $XDG_RUNTIME_DIR if the user we now -+ * authenticated for does not match the original user -+ * of the session. We do this in order not to result -+ * in privileged apps clobbering the runtime directory -+ * unnecessarily. */ -+ -+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); -+ if (r != PAM_SUCCESS) { -+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); -+ goto finish; -+ } -+ } else if (getenv("XDG_RUNTIME_DIR")) { -+ r = pam_putenv(handle, "XDG_RUNTIME_DIR"); -+ if (r != PAM_SUCCESS && r != PAM_BAD_ITEM) { -+ pam_syslog(handle, LOG_ERR, "Failed to unset runtime dir."); -+ } -+ (void) unsetenv("XDG_RUNTIME_DIR"); - } - - if (!isempty(seat)) { diff --git a/1017-skip-native-unit-handling-if-sysv-already-handled.patch b/1017-skip-native-unit-handling-if-sysv-already-handled.patch deleted file mode 100644 index 9390c42..0000000 --- a/1017-skip-native-unit-handling-if-sysv-already-handled.patch +++ /dev/null @@ -1,20 +0,0 @@ -For bnc#818044 -Based on http://cgit.freedesktop.org/systemd/systemd/patch/?id=67d6621059085963a2a908a3ea99ced3b0ca789e ---- - systemctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- systemd-208/src/systemctl/systemctl.c -+++ systemd-208/src/systemctl/systemctl.c 2014-01-21 13:00:52.910736187 +0000 -@@ -4453,6 +4453,11 @@ static int enable_unit(DBusConnection *b - if (r < 0) - return r; - -+ /* If the operation was fully executed by the SysV compat, -+ * let's finish early */ -+ if (strv_isempty(mangled_names)) -+ return 0; -+ - if (!bus || avoid_bus()) { - if (streq(verb, "enable")) { - r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes); diff --git a/1019-make-completion-smart-to-be-able-to-redirect.patch b/1019-make-completion-smart-to-be-able-to-redirect.patch index d1425d8..90ca8ed 100644 --- a/1019-make-completion-smart-to-be-able-to-redirect.patch +++ b/1019-make-completion-smart-to-be-able-to-redirect.patch @@ -136,7 +136,7 @@ + _init_completion || return - for ((i=0; $i <= $COMP_CWORD; i++)); do + for ((i=0; i < COMP_CWORD; i++)); do @@ -83,4 +87,4 @@ _systemd_analyze() { return 0 } @@ -225,7 +225,7 @@ + return 0 + fi + - for ((i=0; i <= COMP_CWORD; i++)); do + for ((i=0; i < COMP_CWORD; i++)); do if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" && ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then @@ -94,4 +98,4 @@ _udevadm() { diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index 3b50d50..0c06b4d 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -37,13 +37,13 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) return r; } @@ -90,6 +90,8 @@ static int execute(char **modes, char ** - FILE *f; + _cleanup_fclose_ FILE *f = NULL; const char* note = strappenda("SLEEP=", arg_verb); + if (!delegate_to_pmutils) { + /* This file is opened first, so that if we hit an error, - * we can abort before modyfing any state. */ + * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); @@ -102,6 +104,7 @@ static int execute(char **modes, char ** r = write_mode(modes); @@ -59,7 +59,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) NULL); - + if (!delegate_to_pmutils) - r = write_state(f, states); + r = write_state(&f, states); + else + r = -system(pmtools); if (r < 0) diff --git a/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch b/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch deleted file mode 100644 index fca524f..0000000 --- a/U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3fdb2494c1e24c0a020f5b54022d2c751fd26f50 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 28 Nov 2013 09:52:18 +0000 -Subject: login: revert lazy session-activation on non-VT seats - -Existing applications like gdm already depend on new sessions to get -immediately activated on seats without VTs. Fixes a bug reported as: - [systemd-devel] systemd 208:trouble with inactive user sessions at non-seat0 seats - -This patch restores the original behavior. We either need to add a new -flag for session-creation or some other heuristic to avoid activating new -sessions in the future. ---- ---- a/src/login/logind-seat.c 2013-11-28 11:30:49.624623090 -0200 -+++ b/src/login/logind-seat.c 2013-11-28 11:31:46.668792391 -0200 -@@ -420,8 +420,8 @@ - seat_send_changed(s, "Sessions\0"); - - /* On seats with VTs, the VT logic defines which session is active. On -- * seats without VTs, we automatically activate the first session. */ -- if (!seat_has_vts(s) && !s->active) -+ * seats without VTs, we automatically activate new sessions. */ -+ if (!seat_has_vts(s)) - seat_set_active(s, session); - - return 0; diff --git a/analyze-fix-crash-in-command-line-parsing.patch b/analyze-fix-crash-in-command-line-parsing.patch deleted file mode 100644 index f76266e..0000000 --- a/analyze-fix-crash-in-command-line-parsing.patch +++ /dev/null @@ -1,35 +0,0 @@ -From da6de8a55784115451582051c8da620056994a05 Mon Sep 17 00:00:00 2001 -From: Frederic Crozat -Date: Mon, 20 Jan 2014 11:05:22 +0100 -Subject: [PATCH] analyze: fix crash in command line parsing - -Ensure DBusError is set before it can possibly be freed on return. -Fix crash when calling set-log-level without any parameter. - -Fix https://bugzilla.novell.com/show_bug.cgi?id=859365 ---- - src/analyze/systemd-analyze.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c -index 27d063c..cdfae93 100644 ---- a/src/analyze/systemd-analyze.c -+++ b/src/analyze/systemd-analyze.c -@@ -1226,13 +1226,13 @@ static int set_log_level(DBusConnection *bus, char **args) { - assert(bus); - assert(args); - -+ dbus_error_init(&error); - if (strv_length(args) != 1) { - log_error("This command expects one argument only."); - return -E2BIG; - } - - value = args[0]; -- dbus_error_init(&error); - - m = dbus_message_new_method_call("org.freedesktop.systemd1", - "/org/freedesktop/systemd1", --- -1.8.4 - diff --git a/build-sys-make-multi-seat-x-optional.patch b/build-sys-make-multi-seat-x-optional.patch deleted file mode 100644 index c86042c..0000000 --- a/build-sys-make-multi-seat-x-optional.patch +++ /dev/null @@ -1,60 +0,0 @@ -From bd441fa27a22b7c6e11d9330560e0622fb69f297 Mon Sep 17 00:00:00 2001 -From: Zbigniew Jędrzejewski-Szmek -Date: Thu, 28 Nov 2013 17:07:29 +0000 -Subject: build-sys: make multi-seat-x optional - -At some point it should become disabled by default. - -http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html ---- -diff --git a/Makefile.am b/Makefile.am -index 90874df..3598edd 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -4141,6 +4141,8 @@ MULTI_USER_TARGET_WANTS += \ - SYSTEM_UNIT_ALIASES += \ - systemd-logind.service dbus-org.freedesktop.login1.service - -+if ENABLE_MULTI_SEAT_X -+ - systemd_multi_seat_x_SOURCES = \ - src/login/multi-seat-x.c - -@@ -4151,6 +4153,8 @@ systemd_multi_seat_x_LDADD = \ - rootlibexec_PROGRAMS += \ - systemd-multi-seat-x - -+endif -+ - dist_udevrules_DATA += \ - src/login/70-uaccess.rules \ - src/login/70-power-switch.rules -diff --git a/configure.ac b/configure.ac -index f1b00c5..ab24266 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -794,6 +794,14 @@ fi - AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"]) - - # ------------------------------------------------------------------------------ -+have_multi_seat_x=no -+AC_ARG_ENABLE(multi_seat_x, AS_HELP_STRING([--disable-multi-seat-x], [do not build multi-seat-x])) -+if test "x$enable_multi_seat_x" != "xno"; then -+ have_multi_seat_x=yes -+fi -+AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"]) -+ -+# ------------------------------------------------------------------------------ - AC_ARG_WITH(rc-local-script-path-start, - AS_HELP_STRING([--with-rc-local-script-path-start=PATH], - [Path to /etc/rc.local]), -@@ -1077,6 +1085,7 @@ AC_MSG_RESULT([ - nss-myhostname: ${have_myhostname} - gudev: ${enable_gudev} - gintrospection: ${enable_introspection} -+ multi-seat-x: ${have_multi_seat_x} - Python: ${have_python} - Python Headers: ${have_python_devel} - man pages: ${have_manpages} --- -cgit v0.9.0.2-2-gbebe diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index b9ec512..1bde222 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -21,14 +21,25 @@ Index: systemd-208/src/cryptsetup/cryptsetup-generator.c Index: systemd-208/units/systemd-fsck@.service.in =================================================================== ---- systemd-208.orig/units/systemd-fsck@.service.in -+++ systemd-208/units/systemd-fsck@.service.in -@@ -10,7 +10,7 @@ Description=File System Check on %f +--- systemd-280.orig/units/systemd-fsck@.service.in ++++ systemd-280/units/systemd-fsck@.service.in +@@ -10,7 +10,7 @@ Documentation=man:systemd-fsck@.service(8) DefaultDependencies=no BindsTo=%i.device --After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device -+After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device md.service dmraid.service +-After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service %i.device systemd-fsck-root.service md.service dmraid.service Before=shutdown.target [Service] +--- systemd-280.orig/units/systemd-fsck-root.service.in ++++ systemd-280/units/systemd-fsck-root.service.in +@@ -9,7 +9,7 @@ + Description=File System Check on Root Device + Documentation=man:systemd-fsck-root.service(8) + DefaultDependencies=no +-After=systemd-readahead-collect.service systemd-readahead-replay.service ++After=systemd-readahead-collect.service systemd-readahead-replay.service md.service dmraid.service + Before=local-fs.target shutdown.target + + ConditionPathIsReadWrite=!/ diff --git a/fix-owner-of-var-log-btmp.patch b/fix-owner-of-var-log-btmp.patch index fb6145c..954c60c 100644 --- a/fix-owner-of-var-log-btmp.patch +++ b/fix-owner-of-var-log-btmp.patch @@ -10,7 +10,7 @@ ensure btmp is owned only by root (bnc#777405). --- systemd-206_git201308300826.orig/tmpfiles.d/systemd.conf +++ systemd-206_git201308300826/tmpfiles.d/systemd.conf @@ -11,7 +11,7 @@ d /run/user 0755 root root ~10d - F /run/utmp 0664 root utmp - + F! /run/utmp 0664 root utmp - f /var/log/wtmp 0664 root utmp - -f /var/log/btmp 0600 root utmp - diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 577f268..c7fa072 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -38,5 +38,5 @@ Index: systemd-208/src/systemctl/systemctl.c + } + r = parse_argv(argc, argv); - if (r < 0) + if (r <= 0) goto finish; diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index cdcb932..57a74f0 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -4,11 +4,11 @@ Subject: handle /etc/HOSTNAME (bnc#803653) --- - src/core/hostname-setup.c | 22 +++++++++++++++++----- - src/hostname/hostnamed.c | 12 +++++++++++- + src/core/hostname-setup.c | 22 +++++++++++++++++----- + src/hostname/hostnamed.c | 12 +++++++++++- 2 files changed, 28 insertions(+), 6 deletions(-) ---- systemd-206.orig/src/core/hostname-setup.c +--- systemd-206/src/core/hostname-setup.c +++ systemd-206/src/core/hostname-setup.c @@ -61,12 +61,24 @@ int hostname_setup(void) { @@ -40,38 +40,38 @@ Subject: handle /etc/HOSTNAME } else hn = b; ---- systemd-206.orig/src/hostname/hostnamed.c -+++ systemd-206/src/hostname/hostnamed.c -@@ -129,6 +129,10 @@ static int read_data(void) { +--- systemd-209/src/hostname/hostnamed.c ++++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000 +@@ -89,6 +89,10 @@ static int context_read_data(Context *c) if (r < 0 && r != -ENOENT) return r; -+ r = read_one_line_file("/etc/HOSTNAME", &data[PROP_STATIC_HOSTNAME]); ++ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]); + if (r < 0 && r != -ENOENT) + return r; + return 0; } -@@ -283,6 +287,7 @@ static int write_data_hostname(void) { - - static int write_data_static_hostname(void) { +@@ -246,6 +250,7 @@ static int context_write_data_hostname(C + } + static int context_write_data_static_hostname(Context *c) { + int r; - if (isempty(data[PROP_STATIC_HOSTNAME])) { - if (unlink("/etc/hostname") < 0) -@@ -290,7 +295,12 @@ static int write_data_static_hostname(vo + assert(c); + +@@ -256,7 +261,12 @@ static int context_write_data_static_hos return 0; } -- return write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); +- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); + -+ r = write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]); + if (!r) { + r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); + } + return r; } - static int write_data_other(void) { + static int context_write_data_other(Context *c) { diff --git a/insserv-generator.patch b/insserv-generator.patch index 3e0deb7..f1a2452 100644 --- a/insserv-generator.patch +++ b/insserv-generator.patch @@ -18,14 +18,14 @@ Index: systemd-208/Makefile.am --- systemd-208.orig/Makefile.am +++ systemd-208/Makefile.am @@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \ - systemd-sleep + systemd-socket-proxyd systemgenerator_PROGRAMS = \ + systemd-insserv-generator \ systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1682,6 +1683,14 @@ systemd_delta_LDADD = \ +@@ -1658,6 +1659,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ @@ -241,7 +241,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) { + _cleanup_free_ char *unit = NULL; + /* insert also a Wants dependency from remote-fs-pre on remote-fs */ -+ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",path_get_file_name(filename),".conf", NULL); ++ unit = strjoin(arg_dest, "/remote-fs.target.d/50-",basename(filename),".conf", NULL); + if (!unit) + return log_oom(); + @@ -274,7 +274,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + if ((sysv_translate_facility(name, NULL, &dep) < 0) || !dep) + continue; + -+ unit = strjoin(arg_dest, "/", dep, ".d/50-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ unit = strjoin(arg_dest, "/", dep, ".d/50-",basename(filename),"-",parsed[0],".conf", NULL); + if (!unit) + return log_oom(); + @@ -305,7 +305,7 @@ Index: systemd-208/src/insserv-generator/insserv-generator.c + + if (*j[0] != '+') { + free (unit); -+ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",path_get_file_name(filename),"-",parsed[0],".conf", NULL); ++ unit = strjoin(arg_dest, "/", facility, ".d/50-hard-dependency-",basename(filename),"-",parsed[0],".conf", NULL); + if (!unit) + return log_oom(); + diff --git a/systemd-208.tar.xz b/systemd-208.tar.xz deleted file mode 100644 index 12a73a8..0000000 --- a/systemd-208.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa64fa864466fd5727005c55d61c092828b94b4f857272c0b503695022146390 -size 2382904 diff --git a/systemd-209.tar.xz b/systemd-209.tar.xz new file mode 100644 index 0000000..7caa0b4 --- /dev/null +++ b/systemd-209.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cadef26adcd846e3f2b90502e64f590430baf59aea87491d25aac2e50b23d18 +size 2607304 diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index 3d252dc..1ae913f 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,11 +1,13 @@ ---- systemd-207.orig/src/core/dbus.c -+++ systemd-207/src/core/dbus.c -@@ -50,7 +50,7 @@ - #define CONNECTIONS_MAX 512 +--- systemd-208.orig/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-208/src/libsystemd/sd-bus/sd-bus.c +@@ -793,8 +793,8 @@ + machine = NULL; - /* Well-known address (http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-types) */ --#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/var/run/dbus/system_bus_socket" -+#define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=/run/dbus/system_bus_socket" - /* Only used as a fallback */ - #define DBUS_SESSION_BUS_DEFAULT_ADDRESS "autolaunch:" + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; ++ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/run/dbus/system_bus_socket") - 1; + return 0; + } diff --git a/systemd-mini.changes b/systemd-mini.changes index c9d3106..5d33818 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,298 @@ +------------------------------------------------------------------- +Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de + +- Update to Release v209 on the base of the work of Stefan Brüns + from declined submit request 223602: + + A new tool "systemd-socket-proxyd" has been added + + Add a new tool to save/restore rfkill state on + shutdown/boot. + + Save/restore state of keyboard backlights in addition to + display backlights on shutdown/boot. + + udev learned a new SECLABEL{} construct to label device + nodes with a specific security label when they appear. For + now, only SECLABEL{selinux} is supported, but the syntax is + prepared for additional security frameworks. + + When the User= switch is used in a unit file, also + initialize $SHELL= based on the user database entry. + + systemd no longer depends on libdbus. All communication is + now done with sd-bus, systemd's low-level bus library + implementation. + + sd-bus: add a light-weight vtable implementation that allows + defining objects on the bus with a simple static const + vtable array of its methods, signals and properties. + + systemd will not generate or install static dbus + introspection data anymore to /usr/share/dbus-1/interfaces, + as the precise format of these files is unclear, and + nothing makes use of it. + + A proxy daemon is now provided to proxy clients connecting + via classic D-Bus AF_UNIX sockets to kdbus, to provide full + compatibility with classic D-Bus. + + A bus driver implementation has been added that supports the + classic D-Bus bus driver calls on kdbus, also for + compatibility purposes. + + A new API "sd-event.h" has been added that implements a + minimal event loop API built around epoll. + + A new API "sd-rntl.h" has been added that provides an API + around the route netlink interface of the kernel, similar in + style to "sd-bus.h". + + A new API "sd-dhcp-client.h" has been added that provides a + small DHCPv4 client-side implementation. This is used by + "systemd-networkd". + + There is a new kernel command line option + "systemd.restore_state=0|1". When set to "0", none of the + systemd tools will restore saved runtime state to hardware + devices. More specifically, the rfkill and backlight states + are not restored. + + The FsckPassNo= compatibility option in mount/service units + has been removed. The fstab generator will now add the + necessary dependencies automatically, and does not require + PID1's support for that anymore. + + journalctl gained a new switch, --list-boots, that lists + recent boots with their times and boot IDs. + + The various tools like systemctl, loginctl, timedatectl, + busctl, systemd-run, ... have gained a new switch "-M" to + connect to a specific, local OS container (as direct + connection, without requiring SSH). + + systemd-run and systemd-analyze also gained support for "-H" + to connect to remote hosts via SSH. This is particularly + useful for systemd-run because it enables queuing of jobs + onto remote systems. + + machinectl gained a new command "login" to open a getty + login in any local container. This works with any container + that is registered with machined (such as those created by + libvirt-lxc or nspawn), and which runs systemd inside. + + machinectl gained a new "reboot" command that may be used to + trigger a reboot on a specific container that is registered + with machined. This works on any container that runs an init + system of some kind. + + systemctl gained a new "list-timers" command to print a nice + listing of installed timer units with the times they elapse + next. + + Alternative reboot() parameters may now be specified on the + "systemctl reboot" command line and are passed to the + reboot() system call. + + systemctl gained a new --job-mode= switch to configure the + mode to queue a job with. This is a more generic version of + --fail, --irreversible, and --ignore-dependencies, which are + still available but not advertised anymore. + + /etc/systemd/system.conf gained new settings to configure + various default timeouts of units, as well as the default + start limit interval and burst. These may still be overridden + within each Unit. + + PID1 will now export on the bus profile data of the security + policy upload process (such as the SELinux policy upload to + the kernel). + + journald: when forwarding logs to the console, include + timestamps (following the setting in + /sys/module/printk/parameters/time). + + OnCalendar= in timer units now understands the special + strings "yearly" and "annually". (Both are equivalent) + + The accuracy of timer units is now configurable with the new + AccuracySec= setting. It defaults to 1min. + + A new dependency type JoinsNamespaceOf= has been added that + allows running two services within the same /tmp and network + namespace, if PrivateNetwork= or PrivateTmp= are used. + + A new command "cat" has been added to systemctl. It outputs + the original unit file of a unit, and concatenates the + contents of additional "drop-in" unit file snippets, so that + the full configuration is shown. + + systemctl now supports globbing on the various "list-xyz" + commands, like "list-units" or "list-sockets", as well as on + those commands which take multiple unit names. + + journalctl's --unit= switch gained support for globbing. + + All systemd daemons now make use of the watchdog logic so + that systemd automatically notices when they hang. + + If the $container_ttys environment variable is set, + getty-generator will automatically spawn a getty for each + listed tty. This is useful for container managers to request + login gettys to be spawned on as many ttys as needed. + + %h, %s, %U specifier support is not available anymore when + used in unit files for PID 1. This is because NSS calls are + not safe from PID 1. They stay available for --user + instances of systemd, and as special case for the root user. + + loginctl gained a new "--no-legend" switch to turn off output + of the legend text. + + The "sd-login.h" API gained three new calls: + sd_session_is_remote(), sd_session_get_remote_user(), + sd_session_get_remote_host() to query information about + remote sessions. + + The udev hardware database now also carries vendor/product + information of SDIO devices. + + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to + determine whether watchdog notifications are requested by + the system manager. + + Socket-activated per-connection services now include a + short description of the connection parameters in the + description. + + tmpfiles gained a new "--boot" option. When this is not used, + only lines where the command character is not suffixed with + "!" are executed. When this option is specified, those + options are executed too. + + systemctl gained a new "import-environment" command which + uploads the caller's environment (or parts thereof) into the + service manager so that it is inherited by services started + by the manager. This is useful to upload variables like + $DISPLAY into the user service manager. + + A new PrivateDevices= switch has been added to service units + which allows running a service with a namespaced /dev + directory that does not contain any device nodes for + physical devices. More specifically, it only includes devices + such as /dev/null, /dev/urandom, and /dev/zero which are API + entry points. + + logind has been extended to support behaviour like VT + switching on seats that do not support a VT. This makes + multi-session available on seats that are not the first seat + (seat0), and on systems where kernel support for VTs has + been disabled at compile-time. + + If a process holds a delay lock for system sleep or shutdown + and fails to release it in time, we will now log its + identity. This makes it easier to identify processes that + cause slow suspends or power-offs. + + When parsing /etc/crypttab, support for a new key-slot= + option as supported by Debian is added. It allows indicating + which LUKS slot to use on disk, speeding up key loading. + + The sd_journald_sendv() API call has been checked and + officially declared to be async-signal-safe so that it may + be invoked from signal handlers for logging purposes. + + Boot-time status output is now enabled automatically after a + short timeout if boot does not progress, in order to give + the user an indication what she or he is waiting for. + + The boot-time output has been improved to show how much time + remains until jobs expire. + + The KillMode= switch in service units gained a new possible + value "mixed". If set, and the unit is shut down, then the + initial SIGTERM signal is sent only to the main daemon + process, while the following SIGKILL signal is sent to + all remaining processes of the service. + + logind will now also track a "Desktop" identifier for each + session which encodes the desktop environment of it. This is + useful for desktop environments that want to identify + multiple running sessions of itself easily. + + A new SELinuxContext= setting for service units has been + added that allows setting a specific SELinux execution + context for a service. + + Most systemd client tools will now honour $SYSTEMD_LESS for + settings of the "less" pager. + + systemd's "seccomp" hook-up has been changed to make use of + the libseccomp library instead of using its own + implementation. This has benefits for portability among + other things. +- Dropped systemd patches as those are fixed upstream: + * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch + * 0002-fix-lingering-references-to-var-lib-backlight-random.patch + * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch + * 0004-systemctl-fix-name-mangling-for-sysv-units.patch + * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch + * 0006-journald-add-missing-error-check.patch + * 0007-bus-fix-potentially-uninitialized-memory-access.patch + * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch + * 0009-modules-load-fix-error-handling.patch + * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch + * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch + * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch + * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch + * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch + * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch + * 0001-manager-when-verifying-whether-clients-may-change-en.patch + * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch + * 0001-mount-check-for-NULL-before-reading-pm-what.patch + * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch + * 0001-systemd-serialize-deserialize-forbid_restart-value.patch + * 0001-core-unify-the-way-we-denote-serialization-attribute.patch + * 0001-journald-fix-minor-memory-leak.patch + * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch + * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch + * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch + * 0001-login-make-sd_session_get_vt-actually-work.patch + * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch + * 0001-dbus-common-avoid-leak-in-error-path.patch + * 0001-drop-ins-check-return-value.patch + * 0001-shared-util-Fix-glob_extend-argument.patch + * 0001-Fix-bad-assert-in-show_pid_array.patch + * 0001-analyze-set-white-background.patch + * 0001-analyze-set-text-on-side-with-most-space.patch + * analyze-fix-crash-in-command-line-parsing.patch + * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * build-sys-make-multi-seat-x-optional.patch + * 1017-skip-native-unit-handling-if-sysv-already-handled.patch + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Dropped backported systemd patches as those are fixed upstream + * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + * 1011-check-4-valid-kmsg-device.patch + * 0001-logind-garbage-collect-stale-users.patch +- Dropped udev patches as those are fixed fixed upstream: + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +- Modified patches + * 1006-udev-always-rename-network.patch +- Replaced patches + * the patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + is upstream now but has to be replaced by patch + 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to fix an further issue similar to the upstream patch (bnc#852015) + * the patch + 0001-upstream-systemctl-halt-reboot-error-handling.patch + is upstream now, only the part with the halt after a failed poweroff + has been added to the patch + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + +------------------------------------------------------------------- +Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de + +- Add patch 0001-make-209-working-on-older-dist.patch to make + it usable on older distributions like 13.1 + +------------------------------------------------------------------- +Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de + +- Add patch 0001-add-network-device-after-NFS-mount-units.patch to + add "After" dependency to all NFS shares to the network interface + device as this ensures at shutdown that the NFS share becomes + unmounted before the interface is down (bnc#861489) + ++------------------------------------------------------------------- +Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de + +- enable compat-libs, BuildRequires binutils-gold + ("old" ld fails on ifunc magic) + +------------------------------------------------------------------- +Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de + +- add network link configuration for udev + +------------------------------------------------------------------- +Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + move to core and link in directly to avoid libudev dep all over +- Disable networkd +- Disable compat-libs, adapt files section +- add and remove some entries in the files section + ------------------------------------------------------------------- Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 2feaaae..5a034c8 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -23,10 +23,13 @@ %define udevpkgname udev-mini %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs +%bcond_with networkd +%bcond_with python Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 208 +Version: 209 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -36,6 +39,9 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: %{real} = %{version}-%{release} BuildRequires: audit-devel +%if %{with compat_libs} +BuildRequires: binutils-gold +%endif %if ! 0%{?bootstrap} BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets @@ -52,6 +58,7 @@ BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libattr-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool %if ! 0%{?bootstrap} @@ -68,10 +75,17 @@ BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif +%if 0%{?suse_version} <= 1310 BuildRequires: pkgconfig(libkmod) >= 14 +%else +BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -82,6 +96,9 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} > 1310 +BuildRequires: pkgconfig(libseccomp) +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -183,160 +200,42 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch46: use-usr-sbin-sulogin-for-emergency-service.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch47: systemd-dbus-system-bus-address.patch -# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak -Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch -# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation -Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch -# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free -Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch -# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units -Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch -# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling -Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch -# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check -Patch53: 0006-journald-add-missing-error-check.patch -# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access -Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value -Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch -# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling -Patch56: 0009-modules-load-fix-error-handling.patch -# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch -# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer -Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch -# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal -Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch -# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target -Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch -# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container -Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch -# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case -Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch -# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl -Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch -# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit -Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing -Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch -# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart -Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch -# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes -Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch -# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald -Patch69: 0001-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing -Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch -# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation -Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch -# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt -Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch -# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value -Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch -# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays -Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code -Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch -# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks -Patch76: 0001-drop-ins-check-return-value.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument -Patch77: 0001-shared-util-Fix-glob_extend-argument.patch -# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array -Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white -Patch79: 0001-analyze-set-white-background.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space -Patch80: 0001-analyze-set-text-on-side-with-most-space.patch -# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. -Patch81: 0001-logind-garbage-collect-stale-users.patch -# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze -Patch82: analyze-fix-crash-in-command-line-parsing.patch -# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) -Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.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-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch -Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.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 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) -Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) -Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) -Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.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 Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) -Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch115: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com +Patch116: 0001-units-serial-getty-.service-add-Install-section.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-tests-with-libseccomp-work.patch werner@suse.com +Patch118: 0001-make-tests-with-libseccomp-work.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch +# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com +Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) -Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch -Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch -Patch1015: build-sys-make-multi-seat-x-optional.patch # PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch Patch1016: 1016-support-powerfail-with-powerstatus.patch -# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch -Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com -Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch -# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com -Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch -# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com -Patch97: 0031-man-document-the-b-special-boot-option.patch -# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com -Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch -# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com -Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch -# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com -Patch101: 0035-activate-mention-E-in-the-help-text.patch -# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com -Patch102: 0036-activate-fix-crash-when-s-is-passed.patch -# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com -Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch -# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com -Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch -# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com -Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch -# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com -Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch -# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com -Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch -# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com -Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch -# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com -Patch109: 0043-journal-simplify-pre-allocation-logic.patch -# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com -Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch -# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com -Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch -# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com -Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch -# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com -Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch -# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com -Patch114: 0049-systemd-treat-reload-failure-as-failure.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch115: 0001-add-network-device-after-NFS-mount-units.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -347,16 +246,10 @@ Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1003: 1003-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com -Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch -# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com -Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -590,7 +483,9 @@ cp %{SOURCE7} m4/ %patch23 -p1 %patch24 -p1 %patch25 -p1 -%patch27 -p1 +# check if this is still needed, or can be derived from fbdev uaccess rule +# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html +# %patch27 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 @@ -601,97 +496,38 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch46 -p1 %patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 %patch84 -p1 -%patch85 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 %patch90 -p1 %patch91 -p1 -%patch92 -p1 %patch93 -p1 +%patch115 -p1 +%patch116 -p1 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch118 -p1 +%patch119 -p1 +%patch120 -p1 %patch1009 -p1 %patch1010 -p1 -%patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1014 -p1 -%patch1015 -p1 %patch1016 -p1 -%patch1017 -p1 %patch1018 -p1 %patch1019 -p1 -%patch94 -p0 -%patch96 -p0 -%patch97 -p0 -%patch99 -p0 -%patch100 -p0 -%patch101 -p0 -%patch102 -p0 -%patch103 -p0 -%patch104 -p0 -%patch105 -p0 -%patch106 -p0 -%patch107 -p0 -%patch108 -p0 -%patch109 -p0 -%patch110 -p0 -%patch111 -p0 -%patch112 -p0 -%patch113 -p0 -%patch114 -p0 -%patch115 -p1 # udev patches %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 -%patch1006 -p1 +#%patch1006 -p1 -b .xy # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 %patch1008 -p1 %endif -%patch95 -p0 -%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -710,8 +546,14 @@ export V=1 --disable-myhostname \ %else --enable-manpages \ +%if %{with python} + --with-python \ +%endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%if %{with compat_libs} + --enable-compat-libs \ +%endif %endif --enable-selinux \ --enable-split-usr \ @@ -724,43 +566,52 @@ export V=1 --disable-ima \ %if 0%{?suse_version} > 1310 --disable-multi-seat-x \ +%endif +%if %{without networkd} + --disable-networkd \ %endif CFLAGS="%{optflags}" make %{?_smp_mflags} %install make install DESTDIR="%buildroot" +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif # move to %{_lib} %if ! 0%{?bootstrap} -mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} %endif -mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p %{buildroot}/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware %if ! 0%{?bootstrap} -install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev -ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev +ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -1070,6 +921,7 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/bootctl +%{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1094,10 +946,13 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert +%{_libdir}/libsystemd.so.* +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_libdir}/libsystemd-id128.so.* %{_libdir}/libsystemd-journal.so.* +%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1115,6 +970,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1131,7 +987,7 @@ exit 0 %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog -%dir %{_prefix}/lib/systemd/system-shutdown +%{_prefix}/lib/systemd/catalog/systemd.*.catalog %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -1188,10 +1044,6 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf -%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1208,6 +1060,7 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy %exclude %{_datadir}/systemd/gatewayd %{_datadir}/systemd +%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -1237,7 +1090,6 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%ghost /var/lib/systemd/catalog/database %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1266,22 +1118,28 @@ exit 0 %files devel %defattr(-,root,root,-) +%{_libdir}/libsystemd.so +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so +%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/sd-shutdown.h +%{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd.pc +%if %{with compat_libs} %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc +%endif %files sysvinit %defattr(-,root,root,-) @@ -1346,6 +1204,8 @@ exit 0 %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service %dir %{_prefix}/lib/systemd/system/sockets.target.wants %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket +%dir %{_prefix}/lib/systemd/network +%{_prefix}/lib/systemd/network/*.link %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 492ab22..61d0534 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -21,4 +21,4 @@ SUSE policy is to not clean /tmp by default. +d /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes - x /tmp/systemd-private-* + x /tmp/systemd-private-%b-* diff --git a/systemd.changes b/systemd.changes index cd2fc1a..5d33818 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,270 @@ +------------------------------------------------------------------- +Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de + +- Update to Release v209 on the base of the work of Stefan Brüns + from declined submit request 223602: + + A new tool "systemd-socket-proxyd" has been added + + Add a new tool to save/restore rfkill state on + shutdown/boot. + + Save/restore state of keyboard backlights in addition to + display backlights on shutdown/boot. + + udev learned a new SECLABEL{} construct to label device + nodes with a specific security label when they appear. For + now, only SECLABEL{selinux} is supported, but the syntax is + prepared for additional security frameworks. + + When the User= switch is used in a unit file, also + initialize $SHELL= based on the user database entry. + + systemd no longer depends on libdbus. All communication is + now done with sd-bus, systemd's low-level bus library + implementation. + + sd-bus: add a light-weight vtable implementation that allows + defining objects on the bus with a simple static const + vtable array of its methods, signals and properties. + + systemd will not generate or install static dbus + introspection data anymore to /usr/share/dbus-1/interfaces, + as the precise format of these files is unclear, and + nothing makes use of it. + + A proxy daemon is now provided to proxy clients connecting + via classic D-Bus AF_UNIX sockets to kdbus, to provide full + compatibility with classic D-Bus. + + A bus driver implementation has been added that supports the + classic D-Bus bus driver calls on kdbus, also for + compatibility purposes. + + A new API "sd-event.h" has been added that implements a + minimal event loop API built around epoll. + + A new API "sd-rntl.h" has been added that provides an API + around the route netlink interface of the kernel, similar in + style to "sd-bus.h". + + A new API "sd-dhcp-client.h" has been added that provides a + small DHCPv4 client-side implementation. This is used by + "systemd-networkd". + + There is a new kernel command line option + "systemd.restore_state=0|1". When set to "0", none of the + systemd tools will restore saved runtime state to hardware + devices. More specifically, the rfkill and backlight states + are not restored. + + The FsckPassNo= compatibility option in mount/service units + has been removed. The fstab generator will now add the + necessary dependencies automatically, and does not require + PID1's support for that anymore. + + journalctl gained a new switch, --list-boots, that lists + recent boots with their times and boot IDs. + + The various tools like systemctl, loginctl, timedatectl, + busctl, systemd-run, ... have gained a new switch "-M" to + connect to a specific, local OS container (as direct + connection, without requiring SSH). + + systemd-run and systemd-analyze also gained support for "-H" + to connect to remote hosts via SSH. This is particularly + useful for systemd-run because it enables queuing of jobs + onto remote systems. + + machinectl gained a new command "login" to open a getty + login in any local container. This works with any container + that is registered with machined (such as those created by + libvirt-lxc or nspawn), and which runs systemd inside. + + machinectl gained a new "reboot" command that may be used to + trigger a reboot on a specific container that is registered + with machined. This works on any container that runs an init + system of some kind. + + systemctl gained a new "list-timers" command to print a nice + listing of installed timer units with the times they elapse + next. + + Alternative reboot() parameters may now be specified on the + "systemctl reboot" command line and are passed to the + reboot() system call. + + systemctl gained a new --job-mode= switch to configure the + mode to queue a job with. This is a more generic version of + --fail, --irreversible, and --ignore-dependencies, which are + still available but not advertised anymore. + + /etc/systemd/system.conf gained new settings to configure + various default timeouts of units, as well as the default + start limit interval and burst. These may still be overridden + within each Unit. + + PID1 will now export on the bus profile data of the security + policy upload process (such as the SELinux policy upload to + the kernel). + + journald: when forwarding logs to the console, include + timestamps (following the setting in + /sys/module/printk/parameters/time). + + OnCalendar= in timer units now understands the special + strings "yearly" and "annually". (Both are equivalent) + + The accuracy of timer units is now configurable with the new + AccuracySec= setting. It defaults to 1min. + + A new dependency type JoinsNamespaceOf= has been added that + allows running two services within the same /tmp and network + namespace, if PrivateNetwork= or PrivateTmp= are used. + + A new command "cat" has been added to systemctl. It outputs + the original unit file of a unit, and concatenates the + contents of additional "drop-in" unit file snippets, so that + the full configuration is shown. + + systemctl now supports globbing on the various "list-xyz" + commands, like "list-units" or "list-sockets", as well as on + those commands which take multiple unit names. + + journalctl's --unit= switch gained support for globbing. + + All systemd daemons now make use of the watchdog logic so + that systemd automatically notices when they hang. + + If the $container_ttys environment variable is set, + getty-generator will automatically spawn a getty for each + listed tty. This is useful for container managers to request + login gettys to be spawned on as many ttys as needed. + + %h, %s, %U specifier support is not available anymore when + used in unit files for PID 1. This is because NSS calls are + not safe from PID 1. They stay available for --user + instances of systemd, and as special case for the root user. + + loginctl gained a new "--no-legend" switch to turn off output + of the legend text. + + The "sd-login.h" API gained three new calls: + sd_session_is_remote(), sd_session_get_remote_user(), + sd_session_get_remote_host() to query information about + remote sessions. + + The udev hardware database now also carries vendor/product + information of SDIO devices. + + The "sd-daemon.h" API gained a new sd_watchdog_enabled() to + determine whether watchdog notifications are requested by + the system manager. + + Socket-activated per-connection services now include a + short description of the connection parameters in the + description. + + tmpfiles gained a new "--boot" option. When this is not used, + only lines where the command character is not suffixed with + "!" are executed. When this option is specified, those + options are executed too. + + systemctl gained a new "import-environment" command which + uploads the caller's environment (or parts thereof) into the + service manager so that it is inherited by services started + by the manager. This is useful to upload variables like + $DISPLAY into the user service manager. + + A new PrivateDevices= switch has been added to service units + which allows running a service with a namespaced /dev + directory that does not contain any device nodes for + physical devices. More specifically, it only includes devices + such as /dev/null, /dev/urandom, and /dev/zero which are API + entry points. + + logind has been extended to support behaviour like VT + switching on seats that do not support a VT. This makes + multi-session available on seats that are not the first seat + (seat0), and on systems where kernel support for VTs has + been disabled at compile-time. + + If a process holds a delay lock for system sleep or shutdown + and fails to release it in time, we will now log its + identity. This makes it easier to identify processes that + cause slow suspends or power-offs. + + When parsing /etc/crypttab, support for a new key-slot= + option as supported by Debian is added. It allows indicating + which LUKS slot to use on disk, speeding up key loading. + + The sd_journald_sendv() API call has been checked and + officially declared to be async-signal-safe so that it may + be invoked from signal handlers for logging purposes. + + Boot-time status output is now enabled automatically after a + short timeout if boot does not progress, in order to give + the user an indication what she or he is waiting for. + + The boot-time output has been improved to show how much time + remains until jobs expire. + + The KillMode= switch in service units gained a new possible + value "mixed". If set, and the unit is shut down, then the + initial SIGTERM signal is sent only to the main daemon + process, while the following SIGKILL signal is sent to + all remaining processes of the service. + + logind will now also track a "Desktop" identifier for each + session which encodes the desktop environment of it. This is + useful for desktop environments that want to identify + multiple running sessions of itself easily. + + A new SELinuxContext= setting for service units has been + added that allows setting a specific SELinux execution + context for a service. + + Most systemd client tools will now honour $SYSTEMD_LESS for + settings of the "less" pager. + + systemd's "seccomp" hook-up has been changed to make use of + the libseccomp library instead of using its own + implementation. This has benefits for portability among + other things. +- Dropped systemd patches as those are fixed upstream: + * 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch + * 0002-fix-lingering-references-to-var-lib-backlight-random.patch + * 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch + * 0004-systemctl-fix-name-mangling-for-sysv-units.patch + * 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch + * 0006-journald-add-missing-error-check.patch + * 0007-bus-fix-potentially-uninitialized-memory-access.patch + * 0008-dbus-fix-return-value-of-dispatch_rqueue.patch + * 0009-modules-load-fix-error-handling.patch + * 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch + * 0011-strv-don-t-access-potentially-NULL-string-arrays.patch + * 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch + * 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch + * 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch + * 0001-gpt-auto-generator-exit-immediately-if-in-container.patch + * 0001-manager-when-verifying-whether-clients-may-change-en.patch + * 0001-logind-fix-bus-introspection-data-for-TakeControl.patch + * 0001-mount-check-for-NULL-before-reading-pm-what.patch + * 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch + * 0001-systemd-serialize-deserialize-forbid_restart-value.patch + * 0001-core-unify-the-way-we-denote-serialization-attribute.patch + * 0001-journald-fix-minor-memory-leak.patch + * 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch + * 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch + * 0001-login-fix-invalid-free-in-sd_session_get_vt.patch + * 0001-login-make-sd_session_get_vt-actually-work.patch + * 0001-Never-call-qsort-on-potentially-NULL-arrays.patch + * 0001-dbus-common-avoid-leak-in-error-path.patch + * 0001-drop-ins-check-return-value.patch + * 0001-shared-util-Fix-glob_extend-argument.patch + * 0001-Fix-bad-assert-in-show_pid_array.patch + * 0001-analyze-set-white-background.patch + * 0001-analyze-set-text-on-side-with-most-space.patch + * analyze-fix-crash-in-command-line-parsing.patch + * 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch + * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch + * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch + * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch + * U_logind_revert_lazy_session_activation_on_non_vt_seats.patch + * build-sys-make-multi-seat-x-optional.patch + * 1017-skip-native-unit-handling-if-sysv-already-handled.patch + * 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch + * 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch + * 0031-man-document-the-b-special-boot-option.patch + * 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch + * 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch + * 0035-activate-mention-E-in-the-help-text.patch + * 0036-activate-fix-crash-when-s-is-passed.patch + * 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch + * 0038-core-socket-fix-SO_REUSEPORT.patch + * 0039-journal-when-appending-to-journal-file-allocate-larg.patch + * 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch + * 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch + * 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch + * 0043-journal-simplify-pre-allocation-logic.patch + * 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch + * 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch + * 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch + * 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch + * 0049-systemd-treat-reload-failure-as-failure.patch +- Dropped backported systemd patches as those are fixed upstream + * 0145-logind-use-correct-who-enum-values-with-KillUnit.patch + * 1011-check-4-valid-kmsg-device.patch + * 0001-logind-garbage-collect-stale-users.patch +- Dropped udev patches as those are fixed fixed upstream: + * 0026-udevadm.xml-document-resolve-names-option-for-test.patch + * 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch +- Modified patches + * 1006-udev-always-rename-network.patch +- Replaced patches + * the patch + 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + is upstream now but has to be replaced by patch + 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch + to fix an further issue similar to the upstream patch (bnc#852015) + * the patch + 0001-upstream-systemctl-halt-reboot-error-handling.patch + is upstream now, only the part with the halt after a failed poweroff + has been added to the patch + 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch + +------------------------------------------------------------------- +Thu Feb 27 15:13:09 UTC 2014 - werner@suse.de + +- Add patch 0001-make-209-working-on-older-dist.patch to make + it usable on older distributions like 13.1 + ------------------------------------------------------------------- Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de @@ -6,6 +273,26 @@ Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de device as this ensures at shutdown that the NFS share becomes unmounted before the interface is down (bnc#861489) ++------------------------------------------------------------------- +Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de + +- enable compat-libs, BuildRequires binutils-gold + ("old" ld fails on ifunc magic) + +------------------------------------------------------------------- +Sun Feb 23 16:11:22 UTC 2014 - stefan.bruens@rwth-aachen.de + +- add network link configuration for udev + +------------------------------------------------------------------- +Sun Feb 23 15:44:01 UTC 2014 - stefan.bruens@rwth-aachen.de + +- Modify patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch, + move to core and link in directly to avoid libudev dep all over +- Disable networkd +- Disable compat-libs, adapt files section +- add and remove some entries in the files section + ------------------------------------------------------------------- Fri Feb 21 16:04:54 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 4a5b039..edd5d4c 100644 --- a/systemd.spec +++ b/systemd.spec @@ -21,16 +21,22 @@ %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion +%bcond_without compat_libs +%bcond_with networkd +%bcond_with python Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 208 +Version: 209 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel +%if %{with compat_libs} +BuildRequires: binutils-gold +%endif %if ! 0%{?bootstrap} BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets @@ -47,6 +53,7 @@ BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libattr-devel BuildRequires: libcap-devel +BuildRequires: libkmod-devel BuildRequires: libsepol-devel BuildRequires: libtool %if ! 0%{?bootstrap} @@ -63,10 +70,17 @@ BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel +%if %{with python} +BuildRequires: python +%endif BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif +%if 0%{?suse_version} <= 1310 BuildRequires: pkgconfig(libkmod) >= 14 +%else +BuildRequires: pkgconfig(libkmod) >= 15 +%endif BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) @@ -77,6 +91,9 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif +%if 0%{?suse_version} > 1310 +BuildRequires: pkgconfig(libseccomp) +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -178,160 +195,42 @@ Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch46: use-usr-sbin-sulogin-for-emergency-service.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch47: systemd-dbus-system-bus-address.patch -# PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak -Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch -# PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation -Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch -# PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free -Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch -# PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units -Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch -# PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling -Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch -# PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check -Patch53: 0006-journald-add-missing-error-check.patch -# PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access -Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch -# PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value -Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch -# PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling -Patch56: 0009-modules-load-fix-error-handling.patch -# PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access -Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch -# PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer -Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch -# PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal -Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch -# PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target -Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch -# PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container -Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch -# PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case -Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch -# PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl -Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch -# PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit -Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing -Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch -# PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart -Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch -# PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes -Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch -# PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald -Patch69: 0001-journald-fix-minor-memory-leak.patch -# PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing -Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch -# PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation -Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch -# PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt -Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch -# PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value -Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch -# PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays -Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch -# PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code -Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch -# PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks -Patch76: 0001-drop-ins-check-return-value.patch -# PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument -Patch77: 0001-shared-util-Fix-glob_extend-argument.patch -# PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array -Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white -Patch79: 0001-analyze-set-white-background.patch -# PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space -Patch80: 0001-analyze-set-text-on-side-with-most-space.patch -# PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. -Patch81: 0001-logind-garbage-collect-stale-users.patch -# PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze -Patch82: analyze-fix-crash-in-command-line-parsing.patch -# PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) -Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.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-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch -Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.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 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) -Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -# PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) -Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -# PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) -Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.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 Patch91: plymouth-quit-and-wait-for-emergency-service.patch -# PATCH-FIX-SUSE 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) -Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch115: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com +Patch116: 0001-units-serial-getty-.service-add-Install-section.patch +# PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com +Patch117: 0001-make-209-working-on-older-dist.patch +# PATCH-FIX-SUSE 0001-make-tests-with-libseccomp-work.patch werner@suse.com +Patch118: 0001-make-tests-with-libseccomp-work.patch +# PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com +Patch119: 0001-make-fortify-happy-with-ppoll.patch +# PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com +Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch -# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) -Patch1011: 1011-check-4-valid-kmsg-device.patch -# PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch -# PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch -Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch +# PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch +Patch1012: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch -# PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch -Patch1015: build-sys-make-multi-seat-x-optional.patch # PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch Patch1016: 1016-support-powerfail-with-powerstatus.patch -# PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch -Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch -# PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com -Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch -# PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com -Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch -# PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com -Patch97: 0031-man-document-the-b-special-boot-option.patch -# PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com -Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch -# PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com -Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch -# PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com -Patch101: 0035-activate-mention-E-in-the-help-text.patch -# PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com -Patch102: 0036-activate-fix-crash-when-s-is-passed.patch -# PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com -Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch -# PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com -Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch -# PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com -Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch -# PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com -Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch -# PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com -Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch -# PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com -Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch -# PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com -Patch109: 0043-journal-simplify-pre-allocation-logic.patch -# PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com -Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch -# PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com -Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch -# PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com -Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch -# PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com -Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch -# PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com -Patch114: 0049-systemd-treat-reload-failure-as-failure.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch115: 0001-add-network-device-after-NFS-mount-units.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch @@ -342,16 +241,10 @@ Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1003: 1003-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch -# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch -Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch -# PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com -Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch -# PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com -Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -585,7 +478,9 @@ cp %{SOURCE7} m4/ %patch23 -p1 %patch24 -p1 %patch25 -p1 -%patch27 -p1 +# check if this is still needed, or can be derived from fbdev uaccess rule +# http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html +# %patch27 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 @@ -596,97 +491,38 @@ cp %{SOURCE7} m4/ %patch42 -p1 %patch46 -p1 %patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 %patch84 -p1 -%patch85 -p1 %patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 %patch90 -p1 %patch91 -p1 -%patch92 -p1 %patch93 -p1 +%patch115 -p1 +%patch116 -p1 +%if 0%{?suse_version} <= 1310 +%patch117 -p1 +%endif +%patch118 -p1 +%patch119 -p1 +%patch120 -p1 %patch1009 -p1 %patch1010 -p1 -%patch1011 -p1 %patch1012 -p1 -%patch1013 -p1 %patch1014 -p1 -%patch1015 -p1 %patch1016 -p1 -%patch1017 -p1 %patch1018 -p1 %patch1019 -p1 -%patch94 -p0 -%patch96 -p0 -%patch97 -p0 -%patch99 -p0 -%patch100 -p0 -%patch101 -p0 -%patch102 -p0 -%patch103 -p0 -%patch104 -p0 -%patch105 -p0 -%patch106 -p0 -%patch107 -p0 -%patch108 -p0 -%patch109 -p0 -%patch110 -p0 -%patch111 -p0 -%patch112 -p0 -%patch113 -p0 -%patch114 -p0 -%patch115 -p1 # udev patches %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 -%patch1006 -p1 +#%patch1006 -p1 -b .xy # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 %patch1008 -p1 %endif -%patch95 -p0 -%patch98 -p0 # ensure generate files are removed rm -f units/emergency.service @@ -705,8 +541,14 @@ export V=1 --disable-myhostname \ %else --enable-manpages \ +%if %{with python} + --with-python \ +%endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%if %{with compat_libs} + --enable-compat-libs \ +%endif %endif --enable-selinux \ --enable-split-usr \ @@ -719,43 +561,52 @@ export V=1 --disable-ima \ %if 0%{?suse_version} > 1310 --disable-multi-seat-x \ +%endif +%if %{without networkd} + --disable-networkd \ %endif CFLAGS="%{optflags}" make %{?_smp_mflags} %install make install DESTDIR="%buildroot" +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done +%endif # move to %{_lib} %if ! 0%{?bootstrap} -mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} +mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} %endif -mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} -ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm -ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password -ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl -ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd +mkdir -p %{buildroot}/{sbin,lib,bin} +ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm +ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password +ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl +ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} -ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 +ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif -ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware +ln -sf /lib/firmware %{buildroot}/usr/lib/firmware %if ! 0%{?bootstrap} -install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald +install -m755 -D %{S:8} %{buildroot}/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} -install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev -ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service +install -m755 -D %{S:1060} %{buildroot}/etc/init.d/boot.udev +ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} -install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule +install -m755 -D %{S:1061} %{buildroot}/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} -install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service -mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants -ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants +install -m644 -D %{S:1062} %{buildroot}/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service +mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants +ln -sf ../systemd-udev-root-symlink.service %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} @@ -1065,6 +916,7 @@ exit 0 /bin/systemd-ask-password /bin/systemctl %{_bindir}/bootctl +%{_bindir}/busctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl @@ -1089,10 +941,13 @@ exit 0 %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert +%{_libdir}/libsystemd.so.* +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_libdir}/libsystemd-id128.so.* %{_libdir}/libsystemd-journal.so.* +%endif %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat @@ -1110,6 +965,7 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_prefix}/lib/systemd/system/*.automount +%{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target @@ -1126,7 +982,7 @@ exit 0 %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog -%dir %{_prefix}/lib/systemd/system-shutdown +%{_prefix}/lib/systemd/catalog/systemd.*.catalog %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset @@ -1183,10 +1039,6 @@ exit 0 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf -%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml -%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service @@ -1203,6 +1055,7 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy %exclude %{_datadir}/systemd/gatewayd %{_datadir}/systemd +%{_datadir}/locale/*/LC_MESSAGES %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage @@ -1232,7 +1085,6 @@ exit 0 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif -%ghost /var/lib/systemd/catalog/database %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif @@ -1261,22 +1113,28 @@ exit 0 %files devel %defattr(-,root,root,-) +%{_libdir}/libsystemd.so +%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so +%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h -%{_includedir}/systemd/sd-shutdown.h +%{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc +%{_libdir}/pkgconfig/libsystemd.pc +%if %{with compat_libs} %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc +%endif %files sysvinit %defattr(-,root,root,-) @@ -1341,6 +1199,8 @@ exit 0 %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service %dir %{_prefix}/lib/systemd/system/sockets.target.wants %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket +%dir %{_prefix}/lib/systemd/network +%{_prefix}/lib/systemd/network/*.link %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch index f688f40..fb97a2f 100644 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -14,11 +14,11 @@ Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock } +#ifdef HAVE_SYSV_COMPAT + r = parse_env_file("/etc/sysconfig/clock", NEWLINE, -+ "TIMEZONE", &tz.zone, ++ "TIMEZONE", &c->zone, + NULL); + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); +#endif have_timezone: - if (isempty(tz.zone)) { + if (isempty(c->zone)) { From 7b2124775cd3bbdb97f44af16eaf572bbd7be08e382179a67b235df0d3490a58 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 28 Feb 2014 17:16:33 +0000 Subject: [PATCH 07/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=525 --- 0001-make-209-working-on-older-dist.patch | 71 +++++++++++++++++++++++ systemd.changes | 7 +++ systemd.spec | 4 ++ 3 files changed, 82 insertions(+) diff --git a/0001-make-209-working-on-older-dist.patch b/0001-make-209-working-on-older-dist.patch index 4c66289..63fbd03 100644 --- a/0001-make-209-working-on-older-dist.patch +++ b/0001-make-209-working-on-older-dist.patch @@ -6,3 +6,74 @@ RemainAfterExit=yes +ExecStartPre=@MKDIR_P@ /run/tmpfiles.d ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf +--- systemd-209/configure.ac ++++ systemd-209/configure.ac 2014-02-28 17:14:14.866235643 +0000 +@@ -300,9 +300,9 @@ AC_ARG_ENABLE(kmod, AS_HELP_STRING([--di + if test "x$enable_kmod" != "xno"; then + PKG_CHECK_EXISTS([ libkmod ], have_kmod=yes, have_kmod=no) + if test "x$have_kmod" = "xyes"; then +- PKG_CHECK_MODULES(KMOD, [ libkmod >= 15 ], ++ PKG_CHECK_MODULES(KMOD, [ libkmod >= 14 ], + [AC_DEFINE(HAVE_KMOD, 1, [Define if kmod is available])], +- AC_MSG_ERROR([*** kmod version >= 15 not found])) ++ AC_MSG_ERROR([*** kmod version >= 14 not found])) + fi + if test "x$have_kmod" = xno -a "x$enable_kmod" = xyes; then + AC_MSG_ERROR([*** kmod support requested, but libraries not found]) +--- systemd-209/configure ++++ systemd-209/configure 2014-02-28 17:13:50.770735397 +0000 +@@ -15999,12 +15999,12 @@ if test -n "$KMOD_CFLAGS"; then + pkg_cv_KMOD_CFLAGS="$KMOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_CFLAGS=`$PKG_CONFIG --cflags " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16016,12 +16016,12 @@ if test -n "$KMOD_LIBS"; then + pkg_cv_KMOD_LIBS="$KMOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 15 \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " libkmod >= 15 ") 2>&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" libkmod >= 14 \""; } >&5 ++ ($PKG_CONFIG --exists --print-errors " libkmod >= 14 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then +- pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 15 " 2>/dev/null` ++ pkg_cv_KMOD_LIBS=`$PKG_CONFIG --libs " libkmod >= 14 " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes + else + pkg_failed=yes +@@ -16042,18 +16042,18 @@ else + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + else +- KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 15 " 2>&1` ++ KMOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " libkmod >= 14 " 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$KMOD_PKG_ERRORS" >&5 + +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } +- as_fn_error $? "*** kmod version >= 15 not found" "$LINENO" 5 ++ as_fn_error $? "*** kmod version >= 14 not found" "$LINENO" 5 + else + KMOD_CFLAGS=$pkg_cv_KMOD_CFLAGS + KMOD_LIBS=$pkg_cv_KMOD_LIBS diff --git a/systemd.changes b/systemd.changes index 5d33818..764818b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de + +- Make patch + 0001-make-209-working-on-older-dist.patch + more smart that is make configure script les restrictive + ------------------------------------------------------------------- Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index edd5d4c..dc657f8 100644 --- a/systemd.spec +++ b/systemd.spec @@ -108,7 +108,11 @@ Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 Requires: kmod >= 14 +%else +Requires: kmod >= 15 +%endif Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding From bc1c70b2516a5d59378e60f4f9f9095544a05826eaf71e531c28ec1f3302244c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 28 Feb 2014 17:31:08 +0000 Subject: [PATCH 08/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=526 --- apply-ACL-for-nvidia-device-nodes.patch | 30 +++++++++---------------- systemd.changes | 3 +++ systemd.spec | 2 +- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/apply-ACL-for-nvidia-device-nodes.patch b/apply-ACL-for-nvidia-device-nodes.patch index 7b5e362..f17d6ed 100644 --- a/apply-ACL-for-nvidia-device-nodes.patch +++ b/apply-ACL-for-nvidia-device-nodes.patch @@ -4,34 +4,26 @@ Subject: apply ACL for nvidia device nodes set ACL on nvidia devices (bnc#808319). --- - src/login/logind-acl.c | 3 +++ - 1 file changed, 3 insertions(+) + logind-acl.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) - -Index: systemd-208/src/login/logind-acl.c -=================================================================== ---- systemd-208.orig/src/login/logind-acl.c -+++ systemd-208/src/login/logind-acl.c -@@ -287,6 +287,22 @@ int devnode_acl_all(struct udev *udev, - r = devnode_acl(n, flush, del, old_uid, add, new_uid); +--- systemd-209/src/login/logind-acl.c ++++ systemd-209/src/login/logind-acl.c 2014-02-28 17:27:51.806239118 +0000 +@@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev, + r = k; } + /* only apply ACL on nvidia* if /dev/nvidiactl exists */ -+ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { ++ if (devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid) >= 0) { + int i; -+ char *devname; -+ + for (i = 0; i <= 256 ; i++) { ++ _cleanup_free_ char *devname = NULL; + if (asprintf(&devname, "/dev/nvidia%d", i) < 0) + break; -+ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) { -+ free(devname); ++ if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0) + break; -+ } -+ free(devname); + } + } + - finish: - udev_enumerate_unref(e); - set_free_free(nodes); + return r; + } diff --git a/systemd.changes b/systemd.changes index 764818b..2868b12 100644 --- a/systemd.changes +++ b/systemd.changes @@ -4,6 +4,9 @@ Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de - Make patch 0001-make-209-working-on-older-dist.patch more smart that is make configure script les restrictive +- Make patch + apply-ACL-for-nvidia-device-nodes.patch + apply to v209 ------------------------------------------------------------------- Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index dc657f8..0da2407 100644 --- a/systemd.spec +++ b/systemd.spec @@ -484,7 +484,7 @@ cp %{SOURCE7} m4/ %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html -# %patch27 -p1 +%patch27 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 From e8125ebaded3976e87e1da1f57c926920ca1b17ffdf1184ca482d0af6c4ca0df Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 28 Feb 2014 17:31:17 +0000 Subject: [PATCH 09/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=527 --- systemd-mini.changes | 10 ++++++++++ systemd-mini.spec | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index 5d33818..2868b12 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de + +- Make patch + 0001-make-209-working-on-older-dist.patch + more smart that is make configure script les restrictive +- Make patch + apply-ACL-for-nvidia-device-nodes.patch + apply to v209 + ------------------------------------------------------------------- Fri Feb 28 16:59:25 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 5a034c8..371075c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -113,7 +113,11 @@ Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd +%if 0%{?suse_version} <= 1310 Requires: kmod >= 14 +%else +Requires: kmod >= 15 +%endif Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding @@ -485,7 +489,7 @@ cp %{SOURCE7} m4/ %patch25 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html -# %patch27 -p1 +%patch27 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 From 844ba4f52575c08ba70e7861f9947bf31e49822264f0d8ae1e22561fde32ff1f Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 28 Feb 2014 17:55:27 +0000 Subject: [PATCH 10/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=528 --- 0001-cdrom_id-use-the-old-MMC-fallback.patch | 54 +++++++++++++++++++ ...e-extra-arguments-with-verify-and-si.patch | 30 +++++++++++ ...x-corrupt-output-with-empty-messages.patch | 41 ++++++++++++++ ...ection-of-missing-proc-self-loginuid.patch | 31 +++++++++++ systemd-mini.changes | 14 +++++ systemd-mini.spec | 15 ++++++ systemd.changes | 22 ++++++++ systemd.spec | 15 ++++++ 8 files changed, 222 insertions(+) create mode 100644 0001-cdrom_id-use-the-old-MMC-fallback.patch create mode 100644 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch create mode 100644 0001-logs-show-fix-corrupt-output-with-empty-messages.patch create mode 100644 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch diff --git a/0001-cdrom_id-use-the-old-MMC-fallback.patch b/0001-cdrom_id-use-the-old-MMC-fallback.patch new file mode 100644 index 0000000..4703b76 --- /dev/null +++ b/0001-cdrom_id-use-the-old-MMC-fallback.patch @@ -0,0 +1,54 @@ +From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 27 Feb 2014 11:06:37 +0100 +Subject: [PATCH] cdrom_id: use the old MMC fallback + +https://bugzilla.redhat.com/show_bug.cgi?id=1038015 +The problem seems to be that the your virtual DVD is emulating a really +old DVD device, and doing it kind of strangely. + +> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 +> probing: '/dev/sr0' +> INQUIRY: [IMM ][Virtual CD/DVD ][0316] +> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h + +So your virtual drive rejects the GET CONFIGURATION command as illegal. + +Other pre-MMC2 drives that don't accept this command usually return the +error +SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id +tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set +and all the /dev/disk/by-label (etc) links get set up. + +The virtual drive returns the error SK=5h,ASC=24h (invalid field in +Command Descriptor Block), which cdrom_id doesn't handle, so it gives up +and the links never get made. + +The ideal solution would be to make the IMM to emulate a device that's +less than 15 years old, but I'm not going to hold my breath waiting for +that. + +So probably cdrom_id should also use the old MMC fallback when the error +is SK=5h,ASC=24h, and then all of this would work as expected. + +Suggested-by:Luca Miccini +--- + src/udev/cdrom_id/cdrom_id.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/cdrom_id/cdrom_id.c src/udev/cdrom_id/cdrom_id.c +index 93467c2..33b2bc3 100644 +--- src/udev/cdrom_id/cdrom_id.c ++++ src/udev/cdrom_id/cdrom_id.c +@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) + if ((err != 0)) { + info_scsi_cmd_err(udev, "GET CONFIGURATION", err); + /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ +- if (SK(err) == 0x5 && ASC(err) == 0x20) { ++ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { + log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); + log_debug("trying to work around the problem"); + ret = cd_profiles_old_mmc(udev, fd); +-- +1.7.9.2 + diff --git a/0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch new file mode 100644 index 0000000..00b0669 --- /dev/null +++ b/0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch @@ -0,0 +1,30 @@ +From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Wed, 26 Feb 2014 23:01:43 -0500 +Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar + +Positional arguments only make sense with the default action. +For other actions, complain instead of ignoring them silently. +--- + src/journal/journalctl.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/journal/journalctl.c src/journal/journalctl.c +index a328ba1..0619b25 100644 +--- src/journal/journalctl.c ++++ src/journal/journalctl.c +@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { + return -EINVAL; + } + ++ if (arg_action != ACTION_SHOW && optind < argc) { ++ log_error("Extraneous arguments starting with '%s'", argv[optind]); ++ return -EINVAL; ++ } ++ + return 1; + } + +-- +1.7.9.2 + diff --git a/0001-logs-show-fix-corrupt-output-with-empty-messages.patch b/0001-logs-show-fix-corrupt-output-with-empty-messages.patch new file mode 100644 index 0000000..6ff83d1 --- /dev/null +++ b/0001-logs-show-fix-corrupt-output-with-empty-messages.patch @@ -0,0 +1,41 @@ +From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 +From: Uoti Urpala +Date: Thu, 20 Feb 2014 03:00:09 +0200 +Subject: [PATCH] logs-show: fix corrupt output with empty messages + +If a message had zero length, journalctl would print no newline, and +two output lines would be concatenated. Fix. The problem was +introduced in commit 31f7bf199452 ("logs-show: print multiline +messages"). Affected short and verbose output modes. + +Before fix: + +Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit + +after: + +Feb 09 21:16:17 glyph dhclient[1323]: +Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit +--- + src/shared/logs-show.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git src/shared/logs-show.c src/shared/logs-show.c +index 61c3652..12d4a1c 100644 +--- src/shared/logs-show.c ++++ src/shared/logs-show.c +@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output + } + } + ++ /* A special case: make sure that we print a newline when ++ the message is empty. */ ++ if (message_len == 0) ++ fputs("\n", f); ++ + for (pos = message; + pos < message + message_len; + pos = end + 1, line++) { +-- +1.7.9.2 + diff --git a/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch new file mode 100644 index 0000000..c4c2f4c --- /dev/null +++ b/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch @@ -0,0 +1,31 @@ +From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 +From: Tero Roponen +Date: Tue, 25 Feb 2014 17:19:35 +0200 +Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid + +Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: + Failed to read /proc/self/loginuid: No such file or directory + + Container Fedora failed with error code 1. + +This patch fixes the problem. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 1fe641b..92b6728 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { + return 0; + + r = read_one_line_file("/proc/self/loginuid", &p); +- if (r == -EEXIST) ++ if (r == -ENOENT) + return 0; + if (r < 0) { + log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 2868b12..203c550 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de + +- Add patch + 0001-systemd-empty-sigmask-on-reexec.patch + which corrects sigmaks for reexec in initrd (bnc#864904) + +------------------------------------------------------------------- +Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de + +- Add patch + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + to avoid error on not existing file /proc/self/loginuid + ------------------------------------------------------------------- Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 371075c..f5788c8 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -214,6 +214,8 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com +Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch115: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com @@ -226,6 +228,14 @@ Patch118: 0001-make-tests-with-libseccomp-work.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch werner@suse.com +Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM 0001-cdrom_id-use-the-old-MMC-fallback.patch +Patch122: 0001-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM 0001-logs-show-fix-corrupt-output-with-empty-messages.patch +Patch123: 0001-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch +Patch124: 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -505,6 +515,7 @@ cp %{SOURCE7} m4/ %patch90 -p1 %patch91 -p1 %patch93 -p1 +%patch114 -p0 %patch115 -p1 %patch116 -p1 %if 0%{?suse_version} <= 1310 @@ -513,6 +524,10 @@ cp %{SOURCE7} m4/ %patch118 -p1 %patch119 -p1 %patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 diff --git a/systemd.changes b/systemd.changes index 2868b12..889791c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de + +- Add upstream patches + + 0001-cdrom_id-use-the-old-MMC-fallback.patch + + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + +------------------------------------------------------------------- +Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de + +- Add patch + 0001-systemd-empty-sigmask-on-reexec.patch + which corrects sigmaks for reexec in initrd (bnc#864904) + +------------------------------------------------------------------- +Fri Feb 28 17:38:06 UTC 2014 - werner@suse.de + +- Add patch + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + to avoid error on not existing file /proc/self/loginuid + ------------------------------------------------------------------- Fri Feb 28 17:15:38 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 0da2407..4f9a16e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -209,6 +209,8 @@ Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch +# PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com +Patch114: 0001-systemd-empty-sigmask-on-reexec.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch115: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com @@ -221,6 +223,14 @@ Patch118: 0001-make-tests-with-libseccomp-work.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch +# PATCH-FIX-USTREAM 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch werner@suse.com +Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +# PATCH-FIX-USTREAM 0001-cdrom_id-use-the-old-MMC-fallback.patch +Patch122: 0001-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM 0001-logs-show-fix-corrupt-output-with-empty-messages.patch +Patch123: 0001-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch +Patch124: 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -500,6 +510,7 @@ cp %{SOURCE7} m4/ %patch90 -p1 %patch91 -p1 %patch93 -p1 +%patch114 -p0 %patch115 -p1 %patch116 -p1 %if 0%{?suse_version} <= 1310 @@ -508,6 +519,10 @@ cp %{SOURCE7} m4/ %patch118 -p1 %patch119 -p1 %patch120 -p1 +%patch121 -p0 +%patch122 -p0 +%patch123 -p0 +%patch124 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 From 268d7a7dbe72c0dcb32044026d0750d2c857d142f283391b72290ec524422127 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 3 Mar 2014 14:25:26 +0000 Subject: [PATCH 11/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=529 --- ...network-device-after-NFS-mount-units.patch | 38 ++--- ...tns-functions-if-not-in-the-C-librar.patch | 66 ++++++++ ...mpilation-of-nspawn-when-seccomp-is-.patch | 32 ++++ ...ection-of-missing-proc-self-loginuid.patch | 31 ---- ...systemd-crash-when-using-timer-units.patch | 30 ++++ ...tempt-to-load-policy-in-initramfs-if.patch | 43 +++++ ...ecture.h-fix-preprocessor-directives.patch | 40 +++++ ...02-cdrom_id-use-the-old-MMC-fallback.patch | 0 ...e-extra-arguments-with-verify-and-si.patch | 0 ...x-corrupt-output-with-empty-messages.patch | 0 ...-PropertiesChanged-signals-for-mount.patch | 51 ++++++ ...-out-PropertiesChanged-message-if-ac.patch | 70 ++++++++ ...-system_bus_socket-for-the-D-Bus-soc.patch | 51 ++++++ ...t-that-var-run-must-be-a-symlink-run.patch | 30 ++++ ...k-to-var-run-at-a-couple-of-problems.patch | 60 +++++++ ...var-run-with-run-in-remaining-places.patch | 89 +++++++++++ ...C-network-interface-name-irdac-idrac.patch | 22 +++ ...ing-org.freedesktop.login1.Seat.Swit.patch | 35 ++++ ...pos-slot-to-fallback-on-pos-eviction.patch | 52 ++++++ 0014-login-fix-pos-array-allocation.patch | 52 ++++++ systemd-209.tar.xz | 3 - systemd-210.tar.xz | 3 + systemd-dbus-system-bus-address.patch | 10 +- systemd-install-compat_pkgconfig-always.patch | 28 ++++ systemd-mini.changes | 92 +++++++++++ systemd-mini.spec | 149 +++++++++++------- systemd.changes | 84 ++++++++++ systemd.spec | 149 +++++++++++------- 28 files changed, 1140 insertions(+), 170 deletions(-) create mode 100644 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch create mode 100644 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch delete mode 100644 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch create mode 100644 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch create mode 100644 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch create mode 100644 0001-shared-architecture.h-fix-preprocessor-directives.patch rename 0001-cdrom_id-use-the-old-MMC-fallback.patch => 0002-cdrom_id-use-the-old-MMC-fallback.patch (100%) rename 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch => 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch (100%) rename 0001-logs-show-fix-corrupt-output-with-empty-messages.patch => 0004-logs-show-fix-corrupt-output-with-empty-messages.patch (100%) create mode 100644 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch create mode 100644 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch create mode 100644 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch create mode 100644 0008-README-document-that-var-run-must-be-a-symlink-run.patch create mode 100644 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch create mode 100644 0010-Replace-var-run-with-run-in-remaining-places.patch create mode 100644 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch create mode 100644 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch create mode 100644 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch create mode 100644 0014-login-fix-pos-array-allocation.patch delete mode 100644 systemd-209.tar.xz create mode 100644 systemd-210.tar.xz create mode 100644 systemd-install-compat_pkgconfig-always.patch diff --git a/0001-add-network-device-after-NFS-mount-units.patch b/0001-add-network-device-after-NFS-mount-units.patch index 8b67bd8..57a87c7 100644 --- a/0001-add-network-device-after-NFS-mount-units.patch +++ b/0001-add-network-device-after-NFS-mount-units.patch @@ -7,13 +7,13 @@ NFS share is added as "After=" dependency to the .mount. Makefile.am | 2 src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/mount-iface.h | 25 +++++++ - src/core/mount.c | 34 +++++++++ + src/core/mount.c | 35 +++++++++ src/shared/util.c | 1 - 5 files changed, 233 insertions(+), 2 deletions(-) + 5 files changed, 234 insertions(+), 2 deletions(-) ---- systemd-209/Makefile.am -+++ systemd-209/Makefile.am 2014-02-26 12:44:20.000000000 +0000 -@@ -987,6 +987,8 @@ libsystemd_core_la_SOURCES = \ +--- systemd-210/Makefile.am ++++ systemd-210/Makefile.am 2014-02-26 12:44:20.000000000 +0000 +@@ -994,6 +994,8 @@ libsystemd_core_la_SOURCES = \ src/core/machine-id-setup.h \ src/core/mount-setup.c \ src/core/mount-setup.h \ @@ -22,8 +22,8 @@ NFS share is added as "After=" dependency to the .mount. src/core/loopback-setup.h \ src/core/loopback-setup.c \ src/core/condition.c \ ---- systemd-209/src/core/mount-iface.c -+++ systemd-209/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 +--- systemd-210/src/core/mount-iface.c ++++ systemd-210/src/core/mount-iface.c 2014-02-26 10:18:36.000000000 +0000 @@ -0,0 +1,173 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -198,8 +198,8 @@ NFS share is added as "After=" dependency to the .mount. + freeifaddrs(ifa_list); + ifa_list = NULL; +} ---- systemd-209/src/core/mount-iface.h -+++ systemd-209/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 +--- systemd-210/src/core/mount-iface.h ++++ systemd-210/src/core/mount-iface.h 2014-02-26 10:08:20.000000000 +0000 @@ -0,0 +1,25 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -226,8 +226,8 @@ NFS share is added as "After=" dependency to the .mount. + +char *host2iface(const char *ip); +void freeroutes(void); ---- systemd-209/src/core/mount.c -+++ systemd-209/src/core/mount.c 2014-02-28 13:01:00.000000000 +0000 +--- systemd-210/src/core/mount.c ++++ systemd-210/src/core/mount.c 2014-03-03 12:13:23.406246117 +0000 @@ -36,6 +36,7 @@ #include "mkdir.h" #include "path-util.h" @@ -240,8 +240,8 @@ NFS share is added as "After=" dependency to the .mount. _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; bool load_extras = false; MountParameters *p; -- bool delete; -+ bool delete, isnetwork; +- bool delete, changed = false; ++ bool delete, changed = false, isnetwork; Unit *u; + char *c; int r; @@ -265,7 +265,7 @@ NFS share is added as "After=" dependency to the .mount. r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); if (r < 0) -@@ -1511,6 +1515,32 @@ static int mount_add_one( +@@ -1519,6 +1523,32 @@ static int mount_add_one( goto fail; } @@ -295,10 +295,10 @@ NFS share is added as "After=" dependency to the .mount. + } + } + - unit_add_to_dbus_queue(u); + if (changed) + unit_add_to_dbus_queue(u); - return 0; -@@ -1574,6 +1604,7 @@ static int mount_load_proc_self_mountinf +@@ -1583,6 +1613,7 @@ static int mount_load_proc_self_mountinf if (k < 0) r = k; } @@ -306,8 +306,8 @@ NFS share is added as "After=" dependency to the .mount. return r; } ---- systemd-209/src/shared/util.c -+++ systemd-209/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 +--- systemd-210/src/shared/util.c ++++ systemd-210/src/shared/util.c 2014-02-24 15:17:42.000000000 +0000 @@ -1502,6 +1502,7 @@ bool fstype_is_network(const char *fstyp "ncp\0" "nfs\0" diff --git a/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch b/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch new file mode 100644 index 0000000..0933967 --- /dev/null +++ b/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch @@ -0,0 +1,66 @@ +From 3b794314149e40afaf3c456285e1e529747b6560 Mon Sep 17 00:00:00 2001 +From: Holger Schurig +Date: Thu, 20 Feb 2014 14:39:13 +0100 +Subject: [PATCH] build-sys: Add setns() functions if not in the C library. + +Debian Stable is still using glibc 2.13, which doesn't provide the setns(). +So we detect this and provide a tiny wrapper that issues the setns syscall +towards the kernel. +--- + configure.ac | 5 +++-- + src/shared/missing.h | 17 +++++++++++++++++ + 2 files changed, 20 insertions(+), 2 deletions(-) + +diff --git configure.ac configure.ac +index 05ee098..18df6d8 100644 +--- configure.ac ++++ configure.ac +@@ -241,10 +241,11 @@ LIBS="$save_LIBS" + + AC_CHECK_FUNCS([fanotify_init fanotify_mark]) + AC_CHECK_FUNCS([__secure_getenv secure_getenv]) +-AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include ++AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns], [], [], [[#include + #include + #include +-#include ]]) ++#include ++#include ]]) + + # This makes sure pkg.m4 is available. + m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) +diff --git src/shared/missing.h src/shared/missing.h +index 2661285..3142306 100644 +--- src/shared/missing.h ++++ src/shared/missing.h +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -353,3 +354,19 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle + #endif + + #endif ++ ++#ifndef __NR_setns ++# if defined(__x86_64__) ++# define __NR_setns 308 ++# elif defined(__i386__) ++# define __NR_setns 346 ++# else ++# error "__NR_setns is not defined" ++# endif ++#endif ++ ++#if !HAVE_DECL_SETNS ++static inline int setns(int fd, int nstype) { ++ return syscall(__NR_setns, fd, nstype); ++} ++#endif +-- +1.7.7 + diff --git a/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch b/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch new file mode 100644 index 0000000..096a1d8 --- /dev/null +++ b/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch @@ -0,0 +1,32 @@ +From 8eea53dd45265d8cb92bfdb161a425a1668c10c0 Mon Sep 17 00:00:00 2001 +From: Michael Scherer +Date: Thu, 20 Feb 2014 16:07:08 +0100 +Subject: [PATCH] build-sys: Fix compilation of nspawn when seccomp is not + enabled + +--- + Makefile.am | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git Makefile.am Makefile.am +index 85d51b4..56cdb85 100644 +--- Makefile.am ++++ Makefile.am +@@ -1882,9 +1882,13 @@ systemd_nspawn_LDADD = \ + libsystemd-capability.la \ + libsystemd-internal.la \ + libudev-internal.la \ +- libsystemd-shared.la \ ++ libsystemd-shared.la ++ ++if HAVE_SECCOMP ++systemd_nspawn_LDADD += \ + libsystemd-seccomp.la \ + $(SECCOMP_LIBS) ++endif + + # ------------------------------------------------------------------------------ + systemd_run_SOURCES = \ +-- +1.7.7 + diff --git a/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch deleted file mode 100644 index c4c2f4c..0000000 --- a/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 -From: Tero Roponen -Date: Tue, 25 Feb 2014 17:19:35 +0200 -Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid - -Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: - Failed to read /proc/self/loginuid: No such file or directory - - Container Fedora failed with error code 1. - -This patch fixes the problem. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c -index 1fe641b..92b6728 100644 ---- src/nspawn/nspawn.c -+++ src/nspawn/nspawn.c -@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { - return 0; - - r = read_one_line_file("/proc/self/loginuid", &p); -- if (r == -EEXIST) -+ if (r == -ENOENT) - return 0; - if (r < 0) { - log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); --- -1.7.9.2 - diff --git a/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch b/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch new file mode 100644 index 0000000..50428a1 --- /dev/null +++ b/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch @@ -0,0 +1,30 @@ +From 9ac441c0f40a10a6c498398e5876a5256b833e31 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 21 Feb 2014 11:20:24 +0100 +Subject: [PATCH] sd-event: Fix systemd crash when using timer units. + +There was a copy-paste error introduced in commit c2ba3ad6604ef2e189d7e0a36d6911116e84d3ab +which causes the following error when using timer units: + +Assertion '(x->type == SOURCE_MONOTONIC && y->type == SOURCE_MONOTONIC) || (x->type == SOURCE_REALTIME && y->type == SOURCE_REALTIME)' +failed at src/libsystemd/sd-event/sd-event.c:264, function latest_time_prioq_compare(). Aborting. +--- + src/libsystemd/sd-event/sd-event.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c +index 25dfd17..1f039bc 100644 +--- src/libsystemd/sd-event/sd-event.c ++++ src/libsystemd/sd-event/sd-event.c +@@ -771,7 +771,7 @@ _public_ int sd_event_add_realtime(sd_event *e, + sd_event_time_handler_t callback, + void *userdata) { + +- return event_add_time_internal(e, ret, SOURCE_REALTIME, &e->realtime_fd, CLOCK_REALTIME, &e->realtime_earliest, &e->monotonic_latest, usec, accuracy, callback, userdata); ++ return event_add_time_internal(e, ret, SOURCE_REALTIME, &e->realtime_fd, CLOCK_REALTIME, &e->realtime_earliest, &e->realtime_latest, usec, accuracy, callback, userdata); + } + + static int event_update_signal_fd(sd_event *e) { +-- +1.7.7 + diff --git a/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch b/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch new file mode 100644 index 0000000..d961994 --- /dev/null +++ b/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch @@ -0,0 +1,43 @@ +From 37f78db2f4a33474fc349f406b0a0a48e9c573a2 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Fri, 21 Feb 2014 03:29:00 +0100 +Subject: [PATCH] selinux: Don't attempt to load policy in initramfs if it + doesn't exist + +Currently on at least Fedora, SELinux policy does not come in the +initramfs. systemd will attempt to load *both* in the initramfs and +in the real root. + +Now, the selinux_init_load_policy() API has a regular error return +value, as well as an "enforcing" boolean. To determine enforcing +state, it looks for /etc/selinux/config as well as the presence of +"enforcing=" on the kernel command line. + +Ordinarily, neither of those exist in the initramfs, so it will return +"unknown" for enforcing, and systemd will simply ignore the failure to +load policy. +--- + src/core/selinux-setup.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git src/core/selinux-setup.c src/core/selinux-setup.c +index 7a32ed5..9a5d6b2 100644 +--- src/core/selinux-setup.c ++++ src/core/selinux-setup.c +@@ -58,6 +58,13 @@ int selinux_setup(bool *loaded_policy) { + cb.func_log = null_log; + selinux_set_callback(SELINUX_CB_LOG, cb); + ++ /* Don't load policy in the initrd if we don't appear to have ++ * it. For the real root, we check below if we've already ++ * loaded policy, and return gracefully. ++ */ ++ if (in_initrd() && access(selinux_path(), F_OK) < 0) ++ return 0; ++ + /* Already initialized by somebody else? */ + r = getcon_raw(&con); + if (r == 0) { +-- +1.7.7 + diff --git a/0001-shared-architecture.h-fix-preprocessor-directives.patch b/0001-shared-architecture.h-fix-preprocessor-directives.patch new file mode 100644 index 0000000..7378780 --- /dev/null +++ b/0001-shared-architecture.h-fix-preprocessor-directives.patch @@ -0,0 +1,40 @@ +From 9bd9f43fceff79796f6d2a3fb19f7a711a3f3ec5 Mon Sep 17 00:00:00 2001 +From: Daniel Mack +Date: Fri, 21 Feb 2014 11:39:38 +0100 +Subject: [PATCH] shared/architecture.h: fix preprocessor directives + +Use 'if defined()', not 'ifdef defined()'. Fixes the following warning. + + CC src/shared/architecture.lo +In file included from src/shared/architecture.c:24:0: +src/shared/architecture.h:89:17: warning: extra tokens at end of #ifdef +directive [enabled by default] + # ifdef defined(WORDS_BIGENDIAN) + ^ +--- + src/shared/architecture.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git src/shared/architecture.h src/shared/architecture.h +index fcfc45a..58a8164 100644 +--- src/shared/architecture.h ++++ src/shared/architecture.h +@@ -80,13 +80,13 @@ Architecture uname_architecture(void); + #elif defined(__alpha__) + # define native_architecture() ARCHITECTURE_ALPHA + #elif defined(__aarch64__) +-# ifdef defined(WORDS_BIGENDIAN) ++# if defined(WORDS_BIGENDIAN) + # define native_architecture() ARCHITECTURE_ARM64_BE + # else + # define native_architecture() ARCHITECTURE_ARM64 + # endif + #elif defined(__arm__) +-# ifdef defined(WORDS_BIGENDIAN) ++# if defined(WORDS_BIGENDIAN) + # define native_architecture() ARCHITECTURE_ARM_BE + # else + # define native_architecture() ARCHITECTURE_ARM +-- +1.7.7 + diff --git a/0001-cdrom_id-use-the-old-MMC-fallback.patch b/0002-cdrom_id-use-the-old-MMC-fallback.patch similarity index 100% rename from 0001-cdrom_id-use-the-old-MMC-fallback.patch rename to 0002-cdrom_id-use-the-old-MMC-fallback.patch diff --git a/0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch similarity index 100% rename from 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch rename to 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch diff --git a/0001-logs-show-fix-corrupt-output-with-empty-messages.patch b/0004-logs-show-fix-corrupt-output-with-empty-messages.patch similarity index 100% rename from 0001-logs-show-fix-corrupt-output-with-empty-messages.patch rename to 0004-logs-show-fix-corrupt-output-with-empty-messages.patch diff --git a/0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch new file mode 100644 index 0000000..79bf62d --- /dev/null +++ b/0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch @@ -0,0 +1,51 @@ +From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:28:37 +0100 +Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that + are stopped + +--- + src/core/mount.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index 98812c9..7a92e1c 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + Mount *mount = MOUNT(u); + + if (!mount->is_mounted) { +- /* This has just been unmounted. */ + + mount->from_proc_self_mountinfo = false; + + switch (mount->state) { + + case MOUNT_MOUNTED: ++ /* This has just been unmounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_dead(mount, MOUNT_SUCCESS); + break; + + default: +- mount_set_state(mount, mount->state); + break; +- + } + + } else if (mount->just_mounted || mount->just_changed) { +@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, + + case MOUNT_DEAD: + case MOUNT_FAILED: ++ /* This has just been mounted by ++ * somebody else, follow the state ++ * change. */ + mount_enter_mounted(mount, MOUNT_SUCCESS); + break; + +-- +1.7.9.2 + diff --git a/0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch new file mode 100644 index 0000000..f064927 --- /dev/null +++ b/0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch @@ -0,0 +1,70 @@ +From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 04:27:50 +0100 +Subject: [PATCH] mount: don't send out PropertiesChanged message if actually + nothing got changed + +--- + src/core/mount.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git src/core/mount.c src/core/mount.c +index b35e507..98812c9 100644 +--- src/core/mount.c ++++ src/core/mount.c +@@ -1390,7 +1390,7 @@ static int mount_add_one( + _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; + bool load_extras = false; + MountParameters *p; +- bool delete; ++ bool delete, changed = false; + Unit *u; + int r; + +@@ -1458,6 +1458,7 @@ static int mount_add_one( + } + + unit_add_to_load_queue(u); ++ changed = true; + } else { + delete = false; + +@@ -1476,6 +1477,7 @@ static int mount_add_one( + /* Load in the extras later on, after we + * finished initialization of the unit */ + load_extras = true; ++ changed = true; + } + } + +@@ -1488,10 +1490,16 @@ static int mount_add_one( + } + + p = &MOUNT(u)->parameters_proc_self_mountinfo; ++ ++ changed = changed || ++ !streq_ptr(p->options, options) || ++ !streq_ptr(p->what, what) || ++ !streq_ptr(p->fstype, fstype); ++ + if (set_flags) { + MOUNT(u)->is_mounted = true; + MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; +- MOUNT(u)->just_changed = !streq_ptr(p->options, o); ++ MOUNT(u)->just_changed = changed; + } + + MOUNT(u)->from_proc_self_mountinfo = true; +@@ -1514,7 +1522,8 @@ static int mount_add_one( + goto fail; + } + +- unit_add_to_dbus_queue(u); ++ if (changed) ++ unit_add_to_dbus_queue(u); + + return 0; + +-- +1.7.9.2 + diff --git a/0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch new file mode 100644 index 0000000..25994e9 --- /dev/null +++ b/0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch @@ -0,0 +1,51 @@ +From 1ae383a8a3ae4824453e297352fda603d2d3fd5e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 21:26:31 -0500 +Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket + +--- + man/systemd-bus-proxyd@.service.xml | 2 +- + src/shared/def.h | 2 +- + units/systemd-bus-proxyd.socket | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git man/systemd-bus-proxyd@.service.xml man/systemd-bus-proxyd@.service.xml +index 75a3c8b..3a5930d 100644 +--- man/systemd-bus-proxyd@.service.xml ++++ man/systemd-bus-proxyd@.service.xml +@@ -59,7 +59,7 @@ along with systemd; If not, see . + systemd-bus-proxyd.socket will launch + systemd-bus-proxyd@.service for connections + to the classic D-Bus socket in +- /run/dbus/system_bus_socket. ++ /var/run/dbus/system_bus_socket. + + systemd-bus-proxyd@.service is launched + for an existing D-Bus connection and will use +diff --git src/shared/def.h src/shared/def.h +index 7777756..aa489d8 100644 +--- src/shared/def.h ++++ src/shared/def.h +@@ -61,7 +61,7 @@ + "/usr/lib/kbd/keymaps/\0" + #endif + +-#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" ++#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" + #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" + + #ifdef ENABLE_KDBUS +diff --git units/systemd-bus-proxyd.socket units/systemd-bus-proxyd.socket +index 406e15b..6c42d38 100644 +--- units/systemd-bus-proxyd.socket ++++ units/systemd-bus-proxyd.socket +@@ -9,5 +9,5 @@ + Description=Legacy D-Bus Protocol Compatibility Socket + + [Socket] +-ListenStream=/run/dbus/system_bus_socket ++ListenStream=/var/run/dbus/system_bus_socket + Accept=yes +-- +1.7.9.2 + diff --git a/0008-README-document-that-var-run-must-be-a-symlink-run.patch b/0008-README-document-that-var-run-must-be-a-symlink-run.patch new file mode 100644 index 0000000..4b8b438 --- /dev/null +++ b/0008-README-document-that-var-run-must-be-a-symlink-run.patch @@ -0,0 +1,30 @@ +From 47bc23c18cbc87471dc832534c8565625e4a9d16 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:54:37 +0100 +Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20be=20?= + =?UTF-8?q?a=20symlink=20=E2=86=92=20/run?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + README | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git README README +index b918132..7a227e7 100644 +--- README ++++ README +@@ -190,6 +190,9 @@ WARNINGS: + about this, since this kind of file system setup is not really + supported anymore by the basic set of Linux OS components. + ++ systemd requires that the /run mount point exists. systemd also ++ requires that /var/run is a a symlink → /run. ++ + For more information on this issue consult + http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken + +-- +1.7.9.2 + diff --git a/0009-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0009-Revert-back-to-var-run-at-a-couple-of-problems.patch new file mode 100644 index 0000000..ed9a7a7 --- /dev/null +++ b/0009-Revert-back-to-var-run-at-a-couple-of-problems.patch @@ -0,0 +1,60 @@ +From df1e02046144f41176c32ed011369fd8dba36b76 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 26 Feb 2014 02:47:43 +0100 +Subject: [PATCH] Revert back to /var/run at a couple of problems +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce + +Some specifications we want to stay compatibility actually document +/var/run, not /run, and we should stay compatible with that. In order to +make sure our D-Bus implementation works on any system, regardless if +running systemd or not, we should always use /var/run which is the +only path mandated by the D-Bus spec. + +Similar, glibc hardcodes the utmp location to /var/run, and this is +exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this +public API, too. + +We simply do not support systems where /var/run is not a symlink → /run. +Hence both are equivalent. Staying compatible with upstream +specifications hence weighs more than cleaning up superficial +appearance. +--- + man/runlevel.xml | 2 +- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git man/runlevel.xml man/runlevel.xml +index 4db06dc..976753a 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /run/utmp ++ /var/run/utmp + + The utmp database + runlevel reads the +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 1318272..636715f 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); ++ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); + + return 0; + } +-- +1.7.9.2 + diff --git a/0010-Replace-var-run-with-run-in-remaining-places.patch b/0010-Replace-var-run-with-run-in-remaining-places.patch new file mode 100644 index 0000000..67c35e1 --- /dev/null +++ b/0010-Replace-var-run-with-run-in-remaining-places.patch @@ -0,0 +1,89 @@ +From 41a55c46ab8fb4ef6727434227071321fc762cce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 25 Feb 2014 20:11:04 -0500 +Subject: [PATCH] Replace /var/run with /run in remaining places + +/run was already used almost everywhere, fix the remaining places +for consistency. +--- + man/daemon.xml | 2 +- + man/runlevel.xml | 2 +- + man/tmpfiles.d.xml | 4 ++-- + src/libsystemd/sd-bus/sd-bus.c | 4 ++-- + src/systemctl/systemctl.c | 4 ++-- + 5 files changed, 8 insertions(+), 8 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index 88dd082..fd29ba7 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -149,7 +149,7 @@ + write the daemon PID (as returned by + getpid()) to a + PID file, for example +- /var/run/foobar.pid ++ /run/foobar.pid + (for a hypothetical daemon "foobar") + to ensure that the daemon cannot be + started more than once. This must be +diff --git man/runlevel.xml man/runlevel.xml +index 976753a..4db06dc 100644 +--- man/runlevel.xml ++++ man/runlevel.xml +@@ -124,7 +124,7 @@ + + + +- /var/run/utmp ++ /run/utmp + + The utmp database + runlevel reads the +diff --git man/tmpfiles.d.xml man/tmpfiles.d.xml +index 812129f..0a006d1 100644 +--- man/tmpfiles.d.xml ++++ man/tmpfiles.d.xml +@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock + /etc/tmpfiles.d/screen.conf example + screen needs two directories created at boot with specific modes and ownership. + +- d /var/run/screens 1777 root root 10d +-d /var/run/uscreens 0755 root root 10d12h ++ d /run/screens 1777 root root 10d ++d /run/uscreens 0755 root root 10d12h + + + /etc/tmpfiles.d/abrt.conf example +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 20f540d..1318272 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) + machine = NULL; + + b->sockaddr.un.sun_family = AF_UNIX; +- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; ++ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); + + return 0; + } +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index 34d7079..8692716 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -3758,8 +3758,8 @@ static int show_one( + streq(verb, "status")) { + /* According to LSB: "program not running" */ + /* 0: program is running or service is OK +- * 1: program is dead and /var/run pid file exists +- * 2: program is dead and /var/lock lock file exists ++ * 1: program is dead and /run PID file exists ++ * 2: program is dead and /run/lock lock file exists + * 3: program is not running + * 4: program or service status is unknown + */ +-- +1.7.9.2 + diff --git a/0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch new file mode 100644 index 0000000..065c0ea --- /dev/null +++ b/0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch @@ -0,0 +1,22 @@ +From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 +From: Tomasz Torcz +Date: Tue, 25 Feb 2014 12:43:55 +0100 +Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac + +--- + hwdb/20-net-ifname.hwdb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git hwdb/20-net-ifname.hwdb hwdb/20-net-ifname.hwdb +index 29d2633..2408dc1 100644 +--- hwdb/20-net-ifname.hwdb ++++ hwdb/20-net-ifname.hwdb +@@ -2,4 +2,4 @@ + + # Dell iDRAC Virtual USB NIC + usb:v413CpA102* +- ID_NET_NAME_FROM_DATABASE=irdac ++ ID_NET_NAME_FROM_DATABASE=idrac +-- +1.7.9.2 + diff --git a/0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch new file mode 100644 index 0000000..e4752ed --- /dev/null +++ b/0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch @@ -0,0 +1,35 @@ +From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 +From: "Jasper St. Pierre" +Date: Fri, 21 Feb 2014 18:23:17 -0500 +Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo + +--- + src/login/org.freedesktop.login1.conf | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git src/login/org.freedesktop.login1.conf src/login/org.freedesktop.login1.conf +index d677f61..1318328 100644 +--- src/login/org.freedesktop.login1.conf ++++ src/login/org.freedesktop.login1.conf +@@ -141,6 +141,18 @@ + send_member="ActivateSession"/> + + ++ ++ ++ ++ ++ ++ + +-- +1.7.9.2 + diff --git a/0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch new file mode 100644 index 0000000..a193448 --- /dev/null +++ b/0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch @@ -0,0 +1,52 @@ +From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 13:08:24 +0100 +Subject: [PATCH] login: set pos-slot to fallback on pos-eviction + +If we evict a session position, we open the position slot for future +sessions. However, there might already be another session on the same +position if both were started on the same VT. This is currently done if +gdm spawns the session on its own Xserver. + +Hence, look for such a session on pos-eviction and claim the new slot +immediately. +--- + src/login/logind-seat.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 36ec7ed..96cf08e 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { + } + + void seat_evict_position(Seat *s, Session *session) { ++ Session *iter; + unsigned int pos = session->pos; + + session->pos = 0; +@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { + if (!pos) + return; + +- if (pos < s->position_count && s->positions[pos] == session) ++ if (pos < s->position_count && s->positions[pos] == session) { + s->positions[pos] = NULL; ++ ++ /* There might be another session claiming the same ++ * position (eg., during gdm->session transition), so lets look ++ * for it and set it on the free slot. */ ++ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { ++ if (iter->pos == pos) { ++ s->positions[pos] = iter; ++ break; ++ } ++ } ++ } + } + + void seat_claim_position(Seat *s, Session *session, unsigned int pos) { +-- +1.7.9.2 + diff --git a/0014-login-fix-pos-array-allocation.patch b/0014-login-fix-pos-array-allocation.patch new file mode 100644 index 0000000..2549d22 --- /dev/null +++ b/0014-login-fix-pos-array-allocation.patch @@ -0,0 +1,52 @@ +From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 25 Feb 2014 12:20:25 +0100 +Subject: [PATCH] login: fix pos-array allocation + +GREEDY_REALLOC takes a pointer to the real size, not the array-width as +argument. Therefore, our array is currently way to small to keep the seat +positions. + +Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store +the array-width instead of array-size. +--- + src/login/logind-seat.c | 2 +- + src/shared/util.h | 9 +++++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git src/login/logind-seat.c src/login/logind-seat.c +index 631be5f..36ec7ed 100644 +--- src/login/logind-seat.c ++++ src/login/logind-seat.c +@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { + if (seat_has_vts(s)) + pos = session->vtnr; + +- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) ++ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) + return; + + seat_evict_position(s, session); +diff --git src/shared/util.h src/shared/util.h +index 9913fce..78b1444 100644 +--- src/shared/util.h ++++ src/shared/util.h +@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); + #define GREEDY_REALLOC0(array, allocated, need) \ + greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) + ++#define GREEDY_REALLOC0_T(array, count, need) \ ++ ({ \ ++ size_t _size = (count) * sizeof((array)[0]); \ ++ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ ++ if (_ptr) \ ++ (count) = _size / sizeof((array)[0]); \ ++ _ptr; \ ++ }) ++ + static inline void _reset_errno_(int *saved_errno) { + errno = *saved_errno; + } +-- +1.7.9.2 + diff --git a/systemd-209.tar.xz b/systemd-209.tar.xz deleted file mode 100644 index 7caa0b4..0000000 --- a/systemd-209.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cadef26adcd846e3f2b90502e64f590430baf59aea87491d25aac2e50b23d18 -size 2607304 diff --git a/systemd-210.tar.xz b/systemd-210.tar.xz new file mode 100644 index 0000000..dd2041d --- /dev/null +++ b/systemd-210.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b3ddf9bf82f05cc3079650e86ae05b558381fd034cf1b03a592bcadd1610c4 +size 2620924 diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch index 1ae913f..87c7b41 100644 --- a/systemd-dbus-system-bus-address.patch +++ b/systemd-dbus-system-bus-address.patch @@ -1,13 +1,13 @@ ---- systemd-208.orig/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-208/src/libsystemd/sd-bus/sd-bus.c -@@ -793,8 +793,8 @@ +--- systemd-209/src/libsystemd/sd-bus/sd-bus.c ++++ systemd-209/src/libsystemd/sd-bus/sd-bus.c +@@ -794,8 +794,8 @@ machine = NULL; b->sockaddr.un.sun_family = AF_UNIX; - strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; +- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); + strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/run/dbus/system_bus_socket") - 1; ++ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); return 0; } diff --git a/systemd-install-compat_pkgconfig-always.patch b/systemd-install-compat_pkgconfig-always.patch new file mode 100644 index 0000000..c378af5 --- /dev/null +++ b/systemd-install-compat_pkgconfig-always.patch @@ -0,0 +1,28 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -4560,12 +4560,6 @@ lib_LTLIBRARIES += \ + libsystemd-id128.la \ + libsystemd-daemon.la + +-pkgconfiglib_DATA += \ +- src/compat-libs/libsystemd-journal.pc \ +- src/compat-libs/libsystemd-login.pc \ +- src/compat-libs/libsystemd-id128.pc \ +- src/compat-libs/libsystemd-daemon.pc +- + # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed + compat-lib-install-hook: + libname=libsystemd-login.so && $(move-to-rootlibdir) +@@ -4583,6 +4577,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install + UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook + endif + ++pkgconfiglib_DATA += \ ++ src/compat-libs/libsystemd-journal.pc \ ++ src/compat-libs/libsystemd-login.pc \ ++ src/compat-libs/libsystemd-id128.pc \ ++ src/compat-libs/libsystemd-daemon.pc ++ + EXTRA_DIST += \ + src/compat-libs/libsystemd-journal.pc.in \ + src/compat-libs/libsystemd-login.pc.in \ diff --git a/systemd-mini.changes b/systemd-mini.changes index 203c550..e34d394 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,95 @@ +------------------------------------------------------------------- +Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de + +- Update to Release v210 + + systemd will now relabel /dev after loading the SMACK policy + according to SMACK rules. + + A new unit file option AppArmoreProfile= has been added to + set the AppArmor profile for the processes of a unit. + + A new condition check ConditionArchitecture= has been added + to conditionalize units based on the system architecture, as + reported by uname()'s "machine" field. + + systemd-networkd now supports matching on the system + virtualization, architecture, kernel command line, host name + and machine ID. + + logind is now a lot more aggressive when suspending the + machine due to a closed laptop lid. + + logind will now watch SW_DOCK switches and inhibit reaction + to the lid switch if it is pressed. + + nspawn will now make use of the devices cgroup controller by + default, and only permit creation of and access to the usual + API device nodes like /dev/null or /dev/random, as well as + access to (but not creation of) the pty devices. + + systemd will now understand the usual M, K, G, T suffixes + according to SI conventions (i.e. to the base 1000) when + referring to throughput and hardware metrics. + + The DeviceAllow= setting in unit files now supports a syntax + to whitelist an entire group of devices node majors at once, + based on the /proc/devices listing. For example, with the + string "char-pts" it is now possible to whitelist all + current and future pseudo-TTYs at once. + + sd-event learned a new "post" event source. Event sources of + this type are triggered by the dispatching of any event + source of a type that is not "post". This is useful for + implementing clean-up and check event sources that are + triggered by other work being done in the program. + + The compatibility libraries for libsystemd-journal.so, + libsystem-id128.so, libsystemd-login.so and + libsystemd-daemon.so do not make use of IFUNC + anymore. +- Dropped systemd patches as those are fixed upstream: + * 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +- Dropped patches as those do not work anymore + * 1006-udev-always-rename-network.patch +- Renamed systemd patches as seen from git log: + * 0001-cdrom_id-use-the-old-MMC-fallback.patch + become 0002-cdrom_id-use-the-old-MMC-fallback.patch + * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +- Add several upstream bugfix patches which are missed: + * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + * 0008-README-document-that-var-run-must-be-a-symlink-run.patch + * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + * 0010-Replace-var-run-with-run-in-remaining-places.patch + * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + * 0014-login-fix-pos-array-allocation.patch +- Modified patches to make is build + * 0001-add-network-device-after-NFS-mount-units.patch +- Reenable libseccomp for the architecture for which libseccomp exists + +------------------------------------------------------------------- +Sun Mar 2 15:51:24 CET 2014 - ro@suse.de + +- always install compat pkgconfig files, regardless if + compat libs is enabled or not + +------------------------------------------------------------------- +Sun Mar 2 14:47:23 CET 2014 - ro@suse.de + +- disable use of libseccomp for sle12, library has not been ported + to most architectures +- do not use binutils-gold on s390/s390x, does not exist there +- fix exclude statements for bootstrap case + +------------------------------------------------------------------- +Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de + +- Add upstream patches + + 0001-cdrom_id-use-the-old-MMC-fallback.patch + + 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + + 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + ------------------------------------------------------------------- Fri Feb 28 17:41:37 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index f5788c8..01b874b 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -29,7 +29,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 209 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -97,8 +97,10 @@ BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif %if 0%{?suse_version} > 1310 +%ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -202,8 +204,6 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch47: systemd-dbus-system-bus-address.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 @@ -216,26 +216,38 @@ Patch91: plymouth-quit-and-wait-for-emergency-service.patch Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch # PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com Patch114: 0001-systemd-empty-sigmask-on-reexec.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch115: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com -Patch116: 0001-units-serial-getty-.service-add-Install-section.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-tests-with-libseccomp-work.patch werner@suse.com -Patch118: 0001-make-tests-with-libseccomp-work.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch werner@suse.com +# PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM 0001-cdrom_id-use-the-old-MMC-fallback.patch -Patch122: 0001-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-USTREAM 0001-logs-show-fix-corrupt-output-with-empty-messages.patch -Patch123: 0001-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch -Patch124: 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch133: 0014-login-fix-pos-array-allocation.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -250,8 +262,16 @@ Patch1016: 1016-support-powerfail-with-powerstatus.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch1020: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch +Patch1021: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch +Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches +# PATCH-FIX-USTREAM added at 2014/0303 +Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -509,25 +529,30 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 -%patch115 -p1 -%patch116 -p1 %if 0%{?suse_version} <= 1310 %patch117 -p1 %endif -%patch118 -p1 %patch119 -p1 %patch120 -p1 %patch121 -p0 %patch122 -p0 %patch123 -p0 %patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -535,13 +560,16 @@ cp %{SOURCE7} m4/ %patch1016 -p1 %patch1018 -p1 %patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 +%patch1999 -p1 # udev patches +%patch134 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 -#%patch1006 -p1 -b .xy # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 @@ -563,6 +591,7 @@ export V=1 %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ + --disable-manpages \ %else --enable-manpages \ %if %{with python} @@ -570,9 +599,9 @@ export V=1 %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif %if %{with compat_libs} --enable-compat-libs \ -%endif %endif --enable-selinux \ --enable-split-usr \ @@ -594,12 +623,6 @@ make %{?_smp_mflags} %install make install DESTDIR="%buildroot" -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif # move to %{_lib} %if ! 0%{?bootstrap} @@ -694,7 +717,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} -rm -f %{buildroot}/var/log/README +rm -f %{buildroot}%{_localstatedir}/log/README rm -rf %{buildroot}%{_datadir}/bash-completion %endif @@ -708,13 +731,13 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}/var/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal # Make sure directories in /var exist -mkdir -p %{buildroot}/var/lib/systemd/coredump -mkdir -p %{buildroot}/var/lib/systemd/catalog +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog #create ghost databases -touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin # Make sure the NTP units dir exists @@ -745,7 +768,16 @@ install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done %endif +%endif + +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed %fdupes -s %{buildroot}%{_mandir} @@ -763,14 +795,14 @@ exit 0 /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig -[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : +[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -869,9 +901,9 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -883,9 +915,9 @@ fi systemctl daemon-reload >/dev/null 2>&1 || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -918,7 +950,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -987,7 +1019,9 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%endif %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service @@ -1001,7 +1035,9 @@ exit 0 %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd +%endif %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog @@ -1077,7 +1113,9 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%if ! 0%{?bootstrap} %exclude %{_datadir}/systemd/gatewayd +%endif %{_datadir}/systemd %{_datadir}/locale/*/LC_MESSAGES @@ -1112,17 +1150,17 @@ exit 0 %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif -%dir /var/lib/systemd -%dir /var/lib/systemd/sysv-convert -%dir /var/lib/systemd/migrated -%dir /var/lib/systemd/catalog -%ghost /var/lib/systemd/catalog/database -%dir /var/lib/systemd/coredump -%dir /usr/share/zsh -%dir /usr/share/zsh/site-functions -/usr/share/zsh/site-functions/* -%ghost /var/lib/systemd/backlight -%ghost /var/lib/systemd/random-seed +%dir %{_localstatedir}/lib/systemd +%dir %{_localstatedir}/lib/systemd/sysv-convert +%dir %{_localstatedir}/lib/systemd/migrated +%dir %{_localstatedir}/lib/systemd/catalog +%ghost %{_localstatedir}/lib/systemd/catalog/database +%dir %{_localstatedir}/lib/systemd/coredump +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/* +%ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} %files bash-completion @@ -1153,12 +1191,10 @@ exit 0 %{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc -%if %{with compat_libs} %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc -%endif %files sysvinit %defattr(-,root,root,-) @@ -1225,6 +1261,7 @@ exit 0 %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket %dir %{_prefix}/lib/systemd/network %{_prefix}/lib/systemd/network/*.link +%{_prefix}/lib/systemd/network/*.network %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1267,8 +1304,8 @@ exit 0 %files logger %defattr(-,root,root) -%dir /var/log/journal -/var/log/README +%dir %{_localstatedir}/log/journal +%{_localstatedir}/log/README /etc/init.d/systemd-journald %files -n nss-myhostname diff --git a/systemd.changes b/systemd.changes index 889791c..e34d394 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,87 @@ +------------------------------------------------------------------- +Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de + +- Update to Release v210 + + systemd will now relabel /dev after loading the SMACK policy + according to SMACK rules. + + A new unit file option AppArmoreProfile= has been added to + set the AppArmor profile for the processes of a unit. + + A new condition check ConditionArchitecture= has been added + to conditionalize units based on the system architecture, as + reported by uname()'s "machine" field. + + systemd-networkd now supports matching on the system + virtualization, architecture, kernel command line, host name + and machine ID. + + logind is now a lot more aggressive when suspending the + machine due to a closed laptop lid. + + logind will now watch SW_DOCK switches and inhibit reaction + to the lid switch if it is pressed. + + nspawn will now make use of the devices cgroup controller by + default, and only permit creation of and access to the usual + API device nodes like /dev/null or /dev/random, as well as + access to (but not creation of) the pty devices. + + systemd will now understand the usual M, K, G, T suffixes + according to SI conventions (i.e. to the base 1000) when + referring to throughput and hardware metrics. + + The DeviceAllow= setting in unit files now supports a syntax + to whitelist an entire group of devices node majors at once, + based on the /proc/devices listing. For example, with the + string "char-pts" it is now possible to whitelist all + current and future pseudo-TTYs at once. + + sd-event learned a new "post" event source. Event sources of + this type are triggered by the dispatching of any event + source of a type that is not "post". This is useful for + implementing clean-up and check event sources that are + triggered by other work being done in the program. + + The compatibility libraries for libsystemd-journal.so, + libsystem-id128.so, libsystemd-login.so and + libsystemd-daemon.so do not make use of IFUNC + anymore. +- Dropped systemd patches as those are fixed upstream: + * 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +- Dropped patches as those do not work anymore + * 1006-udev-always-rename-network.patch +- Renamed systemd patches as seen from git log: + * 0001-cdrom_id-use-the-old-MMC-fallback.patch + become 0002-cdrom_id-use-the-old-MMC-fallback.patch + * 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch + become 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + * 0001-logs-show-fix-corrupt-output-with-empty-messages.patch + become 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +- Add several upstream bugfix patches which are missed: + * 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + * 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + * 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + * 0008-README-document-that-var-run-must-be-a-symlink-run.patch + * 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + * 0010-Replace-var-run-with-run-in-remaining-places.patch + * 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + * 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + * 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + * 0014-login-fix-pos-array-allocation.patch +- Modified patches to make is build + * 0001-add-network-device-after-NFS-mount-units.patch +- Reenable libseccomp for the architecture for which libseccomp exists + +------------------------------------------------------------------- +Sun Mar 2 15:51:24 CET 2014 - ro@suse.de + +- always install compat pkgconfig files, regardless if + compat libs is enabled or not + +------------------------------------------------------------------- +Sun Mar 2 14:47:23 CET 2014 - ro@suse.de + +- disable use of libseccomp for sle12, library has not been ported + to most architectures +- do not use binutils-gold on s390/s390x, does not exist there +- fix exclude statements for bootstrap case + ------------------------------------------------------------------- Fri Feb 28 17:54:40 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 4f9a16e..28255de 100644 --- a/systemd.spec +++ b/systemd.spec @@ -27,7 +27,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 209 +Version: 210 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -92,8 +92,10 @@ BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif %if 0%{?suse_version} > 1310 +%ifarch %ix86 x86_64 x32 %arm BuildRequires: pkgconfig(libseccomp) %endif +%endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} @@ -197,8 +199,6 @@ Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch -# PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run -Patch47: systemd-dbus-system-bus-address.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 @@ -211,26 +211,38 @@ Patch91: plymouth-quit-and-wait-for-emergency-service.patch Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch # PATCH-FIX-SUSE 0001-systemd-empty-sigmask-on-reexec.patch werner@suse.com Patch114: 0001-systemd-empty-sigmask-on-reexec.patch -# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com -Patch115: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-USTREAM 0001-units-serial-getty-.service-add-Install-section.patch werner@suse.com -Patch116: 0001-units-serial-getty-.service-add-Install-section.patch # PATCH-FIX-SUSE 0001-make-209-working-on-older-dist.patch werner@suse.com Patch117: 0001-make-209-working-on-older-dist.patch -# PATCH-FIX-SUSE 0001-make-tests-with-libseccomp-work.patch werner@suse.com -Patch118: 0001-make-tests-with-libseccomp-work.patch # PATCH-FIX-SUSE 0001-make-fortify-happy-with-ppoll.patch werner@suse.com Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch werner@suse.com +# PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM 0001-cdrom_id-use-the-old-MMC-fallback.patch -Patch122: 0001-cdrom_id-use-the-old-MMC-fallback.patch -# PATCH-FIX-USTREAM 0001-logs-show-fix-corrupt-output-with-empty-messages.patch -Patch123: 0001-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch -Patch124: 0001-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch +# PATCH-FIX-USTREAM added at 2014/0303 +Patch133: 0014-login-fix-pos-array-allocation.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -245,8 +257,16 @@ Patch1016: 1016-support-powerfail-with-powerstatus.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch +# PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com +Patch1020: 0001-add-network-device-after-NFS-mount-units.patch +# PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch +Patch1021: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch +Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches +# PATCH-FIX-USTREAM added at 2014/0303 +Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -504,25 +524,30 @@ cp %{SOURCE7} m4/ %patch41 -p1 %patch42 -p1 %patch46 -p1 -%patch47 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 %patch93 -p1 %patch114 -p0 -%patch115 -p1 -%patch116 -p1 %if 0%{?suse_version} <= 1310 %patch117 -p1 %endif -%patch118 -p1 %patch119 -p1 %patch120 -p1 %patch121 -p0 %patch122 -p0 %patch123 -p0 %patch124 -p0 +%patch125 -p0 +%patch126 -p0 +%patch127 -p0 +%patch128 -p0 +%patch129 -p0 +%patch130 -p0 +%patch131 -p0 +%patch132 -p0 +%patch133 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -530,13 +555,16 @@ cp %{SOURCE7} m4/ %patch1016 -p1 %patch1018 -p1 %patch1019 -p1 +%patch1020 -p1 +%patch1021 -p1 +%patch1999 -p1 # udev patches +%patch134 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 -#%patch1006 -p1 -b .xy # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 @@ -558,6 +586,7 @@ export V=1 %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ + --disable-manpages \ %else --enable-manpages \ %if %{with python} @@ -565,9 +594,9 @@ export V=1 %endif --enable-gtk-doc \ --with-nss-my-hostname-warning \ +%endif %if %{with compat_libs} --enable-compat-libs \ -%endif %endif --enable-selinux \ --enable-split-usr \ @@ -589,12 +618,6 @@ make %{?_smp_mflags} %install make install DESTDIR="%buildroot" -%if %{without python} -for man in systemd.directives.7 systemd.index.7 -do - install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ -done -%endif # move to %{_lib} %if ! 0%{?bootstrap} @@ -689,7 +712,7 @@ rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} -rm -f %{buildroot}/var/log/README +rm -f %{buildroot}%{_localstatedir}/log/README rm -rf %{buildroot}%{_datadir}/bash-completion %endif @@ -703,13 +726,13 @@ done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one -mkdir -p %{buildroot}/var/log/journal +mkdir -p %{buildroot}%{_localstatedir}/log/journal # Make sure directories in /var exist -mkdir -p %{buildroot}/var/lib/systemd/coredump -mkdir -p %{buildroot}/var/lib/systemd/catalog +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog #create ghost databases -touch %{buildroot}/var/lib/systemd/catalog/database +touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin # Make sure the NTP units dir exists @@ -740,7 +763,16 @@ install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ +%if %{without python} +for man in systemd.directives.7 systemd.index.7 +do + install -m 0644 man/$man %{buildroot}%{_mandir}/man7/ +done %endif +%endif + +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight +mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed %fdupes -s %{buildroot}%{_mandir} @@ -758,14 +790,14 @@ exit 0 /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig -[ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : +[ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files -chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : -chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chgrp systemd-journal %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : +chmod g+s %{_localstatedir}/log/journal/ %{_localstatedir}/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then @@ -864,9 +896,9 @@ if test -f /proc/1/exe -a -d /proc/1/root; then fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -878,9 +910,9 @@ fi systemctl daemon-reload >/dev/null 2>&1 || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then - if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then + if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" - echo "to presence of /var/lib/no_initrd_recreation_by_suspend" + echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : @@ -913,7 +945,7 @@ fi %postun -n nss-myhostname -p /sbin/ldconfig %pre journal-gateway -getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : +getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 @@ -982,7 +1014,9 @@ exit 0 %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* +%endif %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.busname %{_prefix}/lib/systemd/system/*.service @@ -996,7 +1030,9 @@ exit 0 %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %exclude %{_prefix}/lib/systemd/systemd-udevd +%if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd +%endif %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog @@ -1072,7 +1108,9 @@ exit 0 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy +%if ! 0%{?bootstrap} %exclude %{_datadir}/systemd/gatewayd +%endif %{_datadir}/systemd %{_datadir}/locale/*/LC_MESSAGES @@ -1107,17 +1145,17 @@ exit 0 %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif -%dir /var/lib/systemd -%dir /var/lib/systemd/sysv-convert -%dir /var/lib/systemd/migrated -%dir /var/lib/systemd/catalog -%ghost /var/lib/systemd/catalog/database -%dir /var/lib/systemd/coredump -%dir /usr/share/zsh -%dir /usr/share/zsh/site-functions -/usr/share/zsh/site-functions/* -%ghost /var/lib/systemd/backlight -%ghost /var/lib/systemd/random-seed +%dir %{_localstatedir}/lib/systemd +%dir %{_localstatedir}/lib/systemd/sysv-convert +%dir %{_localstatedir}/lib/systemd/migrated +%dir %{_localstatedir}/lib/systemd/catalog +%ghost %{_localstatedir}/lib/systemd/catalog/database +%dir %{_localstatedir}/lib/systemd/coredump +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/* +%ghost %{_localstatedir}/lib/systemd/backlight +%ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} %files bash-completion @@ -1148,12 +1186,10 @@ exit 0 %{_includedir}/systemd/_sd-common.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc -%if %{with compat_libs} %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc -%endif %files sysvinit %defattr(-,root,root,-) @@ -1220,6 +1256,7 @@ exit 0 %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket %dir %{_prefix}/lib/systemd/network %{_prefix}/lib/systemd/network/*.link +%{_prefix}/lib/systemd/network/*.network %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) @@ -1262,8 +1299,8 @@ exit 0 %files logger %defattr(-,root,root) -%dir /var/log/journal -/var/log/README +%dir %{_localstatedir}/log/journal +%{_localstatedir}/log/README /etc/init.d/systemd-journald %files -n nss-myhostname From 6e9df38339c6d82fd29c22b09e1d847694bbd42f9e5a9bd1218ed9a165993fbd Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 3 Mar 2014 14:28:50 +0000 Subject: [PATCH 12/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=530 --- ...ection-of-missing-proc-self-loginuid.patch | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch diff --git a/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch new file mode 100644 index 0000000..c4c2f4c --- /dev/null +++ b/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch @@ -0,0 +1,31 @@ +From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 +From: Tero Roponen +Date: Tue, 25 Feb 2014 17:19:35 +0200 +Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid + +Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: + Failed to read /proc/self/loginuid: No such file or directory + + Container Fedora failed with error code 1. + +This patch fixes the problem. +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c +index 1fe641b..92b6728 100644 +--- src/nspawn/nspawn.c ++++ src/nspawn/nspawn.c +@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { + return 0; + + r = read_one_line_file("/proc/self/loginuid", &p); +- if (r == -EEXIST) ++ if (r == -ENOENT) + return 0; + if (r < 0) { + log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); +-- +1.7.9.2 + From 93cb26f723810c2a5c803387fbf57ae3d17b7611a31203588937e4fd06b3757c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 3 Mar 2014 14:58:29 +0000 Subject: [PATCH 13/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=531 --- systemd-mini.changes | 6 ++++++ systemd-mini.spec | 16 ++++++++++++---- systemd.changes | 6 ++++++ systemd.spec | 16 ++++++++++++---- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index e34d394..c95a74e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de + +- Generate the bash completion files on the fly for th ecase of + not having the package bash-completion around + ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 01b874b..4e36bd5 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -781,6 +781,17 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed %fdupes -s %{buildroot}%{_mandir} +%if ! 0%{?bootstrap} +for f in %{buildroot}%{_datadir}/bash-completion/completions/* +do + test -e "$f" || break + grep -q _init_completion "$f" || continue + echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" +done > files.completion +%else +> files.completion +%endif + %if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd @@ -1163,13 +1174,10 @@ exit 0 %ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} -%files bash-completion +%files bash-completion -f files.completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions -%if %{without bash_completion} -%exclude %{_datadir}/bash-completion/completions/systemd-analyze -%endif %{_datadir}/bash-completion/completions/* %endif diff --git a/systemd.changes b/systemd.changes index e34d394..c95a74e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de + +- Generate the bash completion files on the fly for th ecase of + not having the package bash-completion around + ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 28255de..5d0416d 100644 --- a/systemd.spec +++ b/systemd.spec @@ -776,6 +776,17 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed %fdupes -s %{buildroot}%{_mandir} +%if ! 0%{?bootstrap} +for f in %{buildroot}%{_datadir}/bash-completion/completions/* +do + test -e "$f" || break + grep -q _init_completion "$f" || continue + echo "%exclude %{_datadir}/bash-completion/completions/${f##*}" +done > files.completion +%else +> files.completion +%endif + %if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd @@ -1158,13 +1169,10 @@ exit 0 %ghost %{_localstatedir}/lib/systemd/random-seed %if ! 0%{?bootstrap} -%files bash-completion +%files bash-completion -f files.completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions -%if %{without bash_completion} -%exclude %{_datadir}/bash-completion/completions/systemd-analyze -%endif %{_datadir}/bash-completion/completions/* %endif From 8f5bd2c76d89d80d12ebfa60cf542d33d51336f60ce9983ec017193dccf1a1d5 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 4 Mar 2014 10:38:55 +0000 Subject: [PATCH 14/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=532 --- 1006-udev-always-rename-network.patch | 63 +++++++++++++++++++++++++++ 1022-systemd-tmpfiles-ownerkeep.patch | 10 +++++ systemd.changes | 12 +++++ systemd.spec | 3 ++ 4 files changed, 88 insertions(+) create mode 100644 1006-udev-always-rename-network.patch create mode 100644 1022-systemd-tmpfiles-ownerkeep.patch diff --git a/1006-udev-always-rename-network.patch b/1006-udev-always-rename-network.patch new file mode 100644 index 0000000..1cbbda7 --- /dev/null +++ b/1006-udev-always-rename-network.patch @@ -0,0 +1,63 @@ +From: Robert Milasan +Cc: Werner Fink +Subject: udev always rename network + +Date: Thu, 28 Mar 2013 09:24:43 +0000 +udev: ensure that the network interfaces are renamed even if they exist (bnc#809843). + +Date: Tue, 4 Mar 2014 10:29:21 +0000 +Port the patch of Robert to systemd v210 and test it out. + +--- + udev-event.c | 40 ++++++++++++++++++++++++++++++++++++---- + 1 file changed, 36 insertions(+), 4 deletions(-) + +--- systemd-210/src/udev/udev-event.c ++++ systemd-210/src/udev/udev-event.c 2014-03-04 11:19:50.583710411 +0100 +@@ -765,10 +765,42 @@ static int rename_netif(struct udev_even + return r; + + r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); +- if (r < 0) +- log_error("error changing net interface name %s to %s: %s", +- oldname, name, strerror(-r)); +- else ++ if (r < 0) { ++ char interim[IFNAMSIZ], *ptr = &interim[0]; ++ int loop = 90; ++ ++ /* keep trying if the destination interface name already exists */ ++ if (r != -EEXIST) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } ++ ++ /* free our own name, another process may wait for us */ ++ strpcpyf(&ptr, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); ++ ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), interim); ++ if (r < 0) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } ++ ++ /* log temporary name */ ++ print_kmsg("renamed network interface %s to %s", oldname, interim); ++ do { ++ r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); ++ if (r == 0) { ++ print_kmsg("renamed network interface %s to %s", oldname, name); ++ return r; ++ } ++ if (r != -EEXIST) { ++ log_error("error changing net interface name %s to %s: %s", ++ oldname, name, strerror(-r)); ++ return r; ++ } ++ } while (loop-- > 0); ++ } else + print_kmsg("renamed network interface %s to %s", oldname, name); + + return r; diff --git a/1022-systemd-tmpfiles-ownerkeep.patch b/1022-systemd-tmpfiles-ownerkeep.patch new file mode 100644 index 0000000..c7f3589 --- /dev/null +++ b/1022-systemd-tmpfiles-ownerkeep.patch @@ -0,0 +1,10 @@ +diff -Naur systemd-208/units/systemd-tmpfiles-clean.service.in systemd-208-mod/units/systemd-tmpfiles-clean.service.in +--- systemd-208/units/systemd-tmpfiles-clean.service.in 2013-08-13 20:02:52.826756410 +0000 ++++ systemd-208-mod/units/systemd-tmpfiles-clean.service.in 2014-02-21 13:34:56.456511025 +0000 +@@ -19,5 +19,6 @@ + + [Service] + Type=oneshot ++ExecStart=-@rootbindir@/systemd-tmpfiles-keep + ExecStart=@rootbindir@/systemd-tmpfiles --clean + IOSchedulingClass=idle diff --git a/systemd.changes b/systemd.changes index c95a74e..43e274e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de + +- Make patch 1006-udev-always-rename-network.patch work again + and add it again. + +------------------------------------------------------------------- +Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com + +- address missing owner functionality in systemd-tmpfiles (fate#314974) + 1022-systemd-tmpfiles-ownerkeep.patch + ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 5d0416d..9bb1714 100644 --- a/systemd.spec +++ b/systemd.spec @@ -261,6 +261,8 @@ Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1020: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch Patch1021: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch +Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch @@ -557,6 +559,7 @@ cp %{SOURCE7} m4/ %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 %patch1999 -p1 # udev patches From 24c0d37e005e489380408779c125a3cc33a7e4dfbcdfcad7ab99f9c7b90577cb Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 4 Mar 2014 10:39:13 +0000 Subject: [PATCH 15/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=533 --- systemd-mini.changes | 12 ++++++++++++ systemd-mini.spec | 3 +++ 2 files changed, 15 insertions(+) diff --git a/systemd-mini.changes b/systemd-mini.changes index c95a74e..43e274e 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de + +- Make patch 1006-udev-always-rename-network.patch work again + and add it again. + +------------------------------------------------------------------- +Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com + +- address missing owner functionality in systemd-tmpfiles (fate#314974) + 1022-systemd-tmpfiles-ownerkeep.patch + ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 4e36bd5..f286a76 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -266,6 +266,8 @@ Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1020: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch Patch1021: systemd-dbus-system-bus-address.patch +# PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch +Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch @@ -562,6 +564,7 @@ cp %{SOURCE7} m4/ %patch1019 -p1 %patch1020 -p1 %patch1021 -p1 +%patch1022 -p1 %patch1999 -p1 # udev patches From b491f882052cf5ce63985edc8e1666f071dcfdcb21f7ed7e2581459cbfdbac58 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 4 Mar 2014 10:55:46 +0000 Subject: [PATCH 16/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=534 --- ...tns-functions-if-not-in-the-C-librar.patch | 66 ------- ...mpilation-of-nspawn-when-seccomp-is-.patch | 32 ---- 0001-make-tests-with-libseccomp-work.patch | 180 ------------------ ...systemd-crash-when-using-timer-units.patch | 30 --- ...tempt-to-load-policy-in-initramfs-if.patch | 43 ----- ...ecture.h-fix-preprocessor-directives.patch | 40 ---- ...l-getty-.service-add-Install-section.patch | 27 --- systemd.changes | 8 +- systemd.spec | 2 + 9 files changed, 9 insertions(+), 419 deletions(-) delete mode 100644 0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch delete mode 100644 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch delete mode 100644 0001-make-tests-with-libseccomp-work.patch delete mode 100644 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch delete mode 100644 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch delete mode 100644 0001-shared-architecture.h-fix-preprocessor-directives.patch delete mode 100644 0001-units-serial-getty-.service-add-Install-section.patch diff --git a/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch b/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch deleted file mode 100644 index 0933967..0000000 --- a/0001-build-sys-Add-setns-functions-if-not-in-the-C-librar.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 3b794314149e40afaf3c456285e1e529747b6560 Mon Sep 17 00:00:00 2001 -From: Holger Schurig -Date: Thu, 20 Feb 2014 14:39:13 +0100 -Subject: [PATCH] build-sys: Add setns() functions if not in the C library. - -Debian Stable is still using glibc 2.13, which doesn't provide the setns(). -So we detect this and provide a tiny wrapper that issues the setns syscall -towards the kernel. ---- - configure.ac | 5 +++-- - src/shared/missing.h | 17 +++++++++++++++++ - 2 files changed, 20 insertions(+), 2 deletions(-) - -diff --git configure.ac configure.ac -index 05ee098..18df6d8 100644 ---- configure.ac -+++ configure.ac -@@ -241,10 +241,11 @@ LIBS="$save_LIBS" - - AC_CHECK_FUNCS([fanotify_init fanotify_mark]) - AC_CHECK_FUNCS([__secure_getenv secure_getenv]) --AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include -+AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns], [], [], [[#include - #include - #include --#include ]]) -+#include -+#include ]]) - - # This makes sure pkg.m4 is available. - m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) -diff --git src/shared/missing.h src/shared/missing.h -index 2661285..3142306 100644 ---- src/shared/missing.h -+++ src/shared/missing.h -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -353,3 +354,19 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle - #endif - - #endif -+ -+#ifndef __NR_setns -+# if defined(__x86_64__) -+# define __NR_setns 308 -+# elif defined(__i386__) -+# define __NR_setns 346 -+# else -+# error "__NR_setns is not defined" -+# endif -+#endif -+ -+#if !HAVE_DECL_SETNS -+static inline int setns(int fd, int nstype) { -+ return syscall(__NR_setns, fd, nstype); -+} -+#endif --- -1.7.7 - diff --git a/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch b/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch deleted file mode 100644 index 096a1d8..0000000 --- a/0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 8eea53dd45265d8cb92bfdb161a425a1668c10c0 Mon Sep 17 00:00:00 2001 -From: Michael Scherer -Date: Thu, 20 Feb 2014 16:07:08 +0100 -Subject: [PATCH] build-sys: Fix compilation of nspawn when seccomp is not - enabled - ---- - Makefile.am | 6 +++++- - 1 files changed, 5 insertions(+), 1 deletions(-) - -diff --git Makefile.am Makefile.am -index 85d51b4..56cdb85 100644 ---- Makefile.am -+++ Makefile.am -@@ -1882,9 +1882,13 @@ systemd_nspawn_LDADD = \ - libsystemd-capability.la \ - libsystemd-internal.la \ - libudev-internal.la \ -- libsystemd-shared.la \ -+ libsystemd-shared.la -+ -+if HAVE_SECCOMP -+systemd_nspawn_LDADD += \ - libsystemd-seccomp.la \ - $(SECCOMP_LIBS) -+endif - - # ------------------------------------------------------------------------------ - systemd_run_SOURCES = \ --- -1.7.7 - diff --git a/0001-make-tests-with-libseccomp-work.patch b/0001-make-tests-with-libseccomp-work.patch deleted file mode 100644 index b93fbb9..0000000 --- a/0001-make-tests-with-libseccomp-work.patch +++ /dev/null @@ -1,180 +0,0 @@ ---- systemd-209/Makefile.am -+++ systemd-209/Makefile.am 2014-02-28 10:24:53.634235909 +0000 -@@ -1091,6 +1091,12 @@ systemd_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+systemd_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - dist_pkgsysconf_DATA += \ - src/core/system.conf \ - src/core/user.conf -@@ -1187,6 +1193,12 @@ test_engine_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_engine_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_job_type_SOURCES = \ - src/test/test-job-type.c - -@@ -1194,18 +1206,36 @@ test_job_type_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_job_type_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_ns_SOURCES = \ - src/test/test-ns.c - - test_ns_LDADD = \ - libsystemd-core.la - -+if HAVE_SECCOMP -+test_ns_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_loopback_SOURCES = \ - src/test/test-loopback.c - - test_loopback_LDADD = \ - libsystemd-core.la - -+if HAVE_SECCOMP -+test_loopback_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_hostname_SOURCES = \ - src/test/test-hostname.c - -@@ -1230,6 +1260,12 @@ test_unit_name_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_unit_name_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_unit_file_SOURCES = \ - src/test/test-unit-file.c - -@@ -1237,12 +1273,24 @@ test_unit_file_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_unit_file_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_utf8_SOURCES = \ - src/test/test-utf8.c - - test_utf8_LDADD = \ - libsystemd-shared.la - -+if HAVE_SECCOMP -+test_utf8_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_util_SOURCES = \ - src/test/test-util.c - -@@ -1255,6 +1303,12 @@ test_tmpfiles_SOURCES = \ - test_tmpfiles_LDADD = \ - libsystemd-shared.la - -+if HAVE_SECCOMP -+test_tmpfiles_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_namespace_SOURCES = \ - src/test/test-namespace.c - -@@ -1289,6 +1343,12 @@ test_tables_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_tables_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_prioq_SOURCES = \ - src/test/test-prioq.c - -@@ -1374,6 +1434,12 @@ test_cgroup_mask_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_cgroup_mask_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_cgroup_util_SOURCES = \ - src/test/test-cgroup-util.c - -@@ -1388,12 +1454,24 @@ test_env_replace_SOURCES = \ - test_env_replace_LDADD = \ - libsystemd-shared.la - -+if HAVE_SECCOMP -+test_env_replace_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_strbuf_SOURCES = \ - src/test/test-strbuf.c - - test_strbuf_LDADD = \ - libsystemd-shared.la - -+if HAVE_SECCOMP -+test_strbuf_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - test_strv_SOURCES = \ - src/test/test-strv.c - -@@ -1440,6 +1518,12 @@ test_sched_prio_LDADD = \ - libsystemd-core.la \ - $(RT_LIBS) - -+if HAVE_SECCOMP -+test_sched_prio_CFLAGS = \ -+ $(AM_CFLAGS) \ -+ $(SECCOMP_CFLAGS) -+endif -+ - # ------------------------------------------------------------------------------ - ## .PHONY so it always rebuilds it - .PHONY: coverage lcov-run lcov-report coverage-sync diff --git a/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch b/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch deleted file mode 100644 index 50428a1..0000000 --- a/0001-sd-event-Fix-systemd-crash-when-using-timer-units.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9ac441c0f40a10a6c498398e5876a5256b833e31 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 21 Feb 2014 11:20:24 +0100 -Subject: [PATCH] sd-event: Fix systemd crash when using timer units. - -There was a copy-paste error introduced in commit c2ba3ad6604ef2e189d7e0a36d6911116e84d3ab -which causes the following error when using timer units: - -Assertion '(x->type == SOURCE_MONOTONIC && y->type == SOURCE_MONOTONIC) || (x->type == SOURCE_REALTIME && y->type == SOURCE_REALTIME)' -failed at src/libsystemd/sd-event/sd-event.c:264, function latest_time_prioq_compare(). Aborting. ---- - src/libsystemd/sd-event/sd-event.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git src/libsystemd/sd-event/sd-event.c src/libsystemd/sd-event/sd-event.c -index 25dfd17..1f039bc 100644 ---- src/libsystemd/sd-event/sd-event.c -+++ src/libsystemd/sd-event/sd-event.c -@@ -771,7 +771,7 @@ _public_ int sd_event_add_realtime(sd_event *e, - sd_event_time_handler_t callback, - void *userdata) { - -- return event_add_time_internal(e, ret, SOURCE_REALTIME, &e->realtime_fd, CLOCK_REALTIME, &e->realtime_earliest, &e->monotonic_latest, usec, accuracy, callback, userdata); -+ return event_add_time_internal(e, ret, SOURCE_REALTIME, &e->realtime_fd, CLOCK_REALTIME, &e->realtime_earliest, &e->realtime_latest, usec, accuracy, callback, userdata); - } - - static int event_update_signal_fd(sd_event *e) { --- -1.7.7 - diff --git a/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch b/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch deleted file mode 100644 index d961994..0000000 --- a/0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 37f78db2f4a33474fc349f406b0a0a48e9c573a2 Mon Sep 17 00:00:00 2001 -From: Colin Walters -Date: Fri, 21 Feb 2014 03:29:00 +0100 -Subject: [PATCH] selinux: Don't attempt to load policy in initramfs if it - doesn't exist - -Currently on at least Fedora, SELinux policy does not come in the -initramfs. systemd will attempt to load *both* in the initramfs and -in the real root. - -Now, the selinux_init_load_policy() API has a regular error return -value, as well as an "enforcing" boolean. To determine enforcing -state, it looks for /etc/selinux/config as well as the presence of -"enforcing=" on the kernel command line. - -Ordinarily, neither of those exist in the initramfs, so it will return -"unknown" for enforcing, and systemd will simply ignore the failure to -load policy. ---- - src/core/selinux-setup.c | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git src/core/selinux-setup.c src/core/selinux-setup.c -index 7a32ed5..9a5d6b2 100644 ---- src/core/selinux-setup.c -+++ src/core/selinux-setup.c -@@ -58,6 +58,13 @@ int selinux_setup(bool *loaded_policy) { - cb.func_log = null_log; - selinux_set_callback(SELINUX_CB_LOG, cb); - -+ /* Don't load policy in the initrd if we don't appear to have -+ * it. For the real root, we check below if we've already -+ * loaded policy, and return gracefully. -+ */ -+ if (in_initrd() && access(selinux_path(), F_OK) < 0) -+ return 0; -+ - /* Already initialized by somebody else? */ - r = getcon_raw(&con); - if (r == 0) { --- -1.7.7 - diff --git a/0001-shared-architecture.h-fix-preprocessor-directives.patch b/0001-shared-architecture.h-fix-preprocessor-directives.patch deleted file mode 100644 index 7378780..0000000 --- a/0001-shared-architecture.h-fix-preprocessor-directives.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9bd9f43fceff79796f6d2a3fb19f7a711a3f3ec5 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 21 Feb 2014 11:39:38 +0100 -Subject: [PATCH] shared/architecture.h: fix preprocessor directives - -Use 'if defined()', not 'ifdef defined()'. Fixes the following warning. - - CC src/shared/architecture.lo -In file included from src/shared/architecture.c:24:0: -src/shared/architecture.h:89:17: warning: extra tokens at end of #ifdef -directive [enabled by default] - # ifdef defined(WORDS_BIGENDIAN) - ^ ---- - src/shared/architecture.h | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git src/shared/architecture.h src/shared/architecture.h -index fcfc45a..58a8164 100644 ---- src/shared/architecture.h -+++ src/shared/architecture.h -@@ -80,13 +80,13 @@ Architecture uname_architecture(void); - #elif defined(__alpha__) - # define native_architecture() ARCHITECTURE_ALPHA - #elif defined(__aarch64__) --# ifdef defined(WORDS_BIGENDIAN) -+# if defined(WORDS_BIGENDIAN) - # define native_architecture() ARCHITECTURE_ARM64_BE - # else - # define native_architecture() ARCHITECTURE_ARM64 - # endif - #elif defined(__arm__) --# ifdef defined(WORDS_BIGENDIAN) -+# if defined(WORDS_BIGENDIAN) - # define native_architecture() ARCHITECTURE_ARM_BE - # else - # define native_architecture() ARCHITECTURE_ARM --- -1.7.7 - diff --git a/0001-units-serial-getty-.service-add-Install-section.patch b/0001-units-serial-getty-.service-add-Install-section.patch deleted file mode 100644 index 83ffcbe..0000000 --- a/0001-units-serial-getty-.service-add-Install-section.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 7143555ce8f94b002d06b9b058d7d90c3a4901a9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 24 Feb 2014 08:02:28 -0500 -Subject: [PATCH] units/serial-getty@.service: add [Install] section - -This makes it easier to manually enable and disable -specific gettys, and also mirrors getty@.service. - -http://lists.freedesktop.org/archives/systemd-devel/2014-February/017329.html ---- - units/serial-getty@.service.m4 | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git units/serial-getty@.service.m4 units/serial-getty@.service.m4 -index 0e612bb..e94cdb4 100644 ---- systemd-209/units/serial-getty@.service.m4 -+++ systemd-209/units/serial-getty@.service.m4 -@@ -33,3 +33,6 @@ TTYVHangup=yes - KillMode=process - IgnoreSIGPIPE=no - SendSIGHUP=yes -+ -+[Install] -+WantedBy=getty.target --- -1.7.9.2 - diff --git a/systemd.changes b/systemd.changes index 43e274e..59fc865 100644 --- a/systemd.changes +++ b/systemd.changes @@ -56,7 +56,13 @@ Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de libsystemd-daemon.so do not make use of IFUNC anymore. - Dropped systemd patches as those are fixed upstream: - * 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + * 0001-units-serial-getty-.service-add-Install-section.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc + * 0001-make-tests-with-libseccomp-work.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-units-serial-getty-.service-add-Install-section.patch - Dropped patches as those do not work anymore * 1006-udev-always-rename-network.patch - Renamed systemd patches as seen from git log: diff --git a/systemd.spec b/systemd.spec index 9bb1714..b72183e 100644 --- a/systemd.spec +++ b/systemd.spec @@ -217,6 +217,7 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch + # PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/0303 @@ -243,6 +244,7 @@ Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch133: 0014-login-fix-pos-array-allocation.patch + # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) From fcf4d4dbbf0d46edfcfcf787b1bdd7e337b624481c35fb48886f075895a0b82d Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 4 Mar 2014 10:55:59 +0000 Subject: [PATCH 17/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=535 --- systemd-mini.changes | 8 +++++++- systemd-mini.spec | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/systemd-mini.changes b/systemd-mini.changes index 43e274e..59fc865 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -56,7 +56,13 @@ Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de libsystemd-daemon.so do not make use of IFUNC anymore. - Dropped systemd patches as those are fixed upstream: - * 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + * 0001-units-serial-getty-.service-add-Install-section.patch + * 0001-shared-architecture.h-fix-preprocessor-directives.patch + * 0001-selinux-Don-t-attempt-to-load-policy-in-initramfs-if.patch + * 0001-sd-event-Fix-systemd-crash-when-using-timer-units.patchc + * 0001-make-tests-with-libseccomp-work.patch + * 0001-build-sys-Fix-compilation-of-nspawn-when-seccomp-is-.patch + * 0001-units-serial-getty-.service-add-Install-section.patch - Dropped patches as those do not work anymore * 1006-udev-always-rename-network.patch - Renamed systemd patches as seen from git log: diff --git a/systemd-mini.spec b/systemd-mini.spec index f286a76..d3def94 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -222,6 +222,7 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch + # PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/0303 @@ -248,6 +249,7 @@ Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch133: 0014-login-fix-pos-array-allocation.patch + # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) From 672387719e102a09e8e6f365bab36a50718b5e759d57989d374f45dd8daf8be5 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 4 Mar 2014 10:58:29 +0000 Subject: [PATCH 18/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=536 --- systemd-mini.spec | 5 +++-- systemd.spec | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/systemd-mini.spec b/systemd-mini.spec index d3def94..5a3f9fd 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -222,7 +222,6 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch - # PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/0303 @@ -249,7 +248,6 @@ Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch133: 0014-login-fix-pos-array-allocation.patch - # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -284,6 +282,8 @@ Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1003: 1003-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch @@ -575,6 +575,7 @@ cp %{SOURCE7} m4/ %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 +%patch1006 -p1 # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 diff --git a/systemd.spec b/systemd.spec index b72183e..bd96e03 100644 --- a/systemd.spec +++ b/systemd.spec @@ -217,7 +217,6 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch - # PATCH-FIX-USTREAM added at 2014/0303 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/0303 @@ -244,7 +243,6 @@ Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch133: 0014-login-fix-pos-array-allocation.patch - # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -279,6 +277,8 @@ Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1003: 1003-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch +# PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch +Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-OPENSUSE 1008-add-msft-compability-rules.patch @@ -570,6 +570,7 @@ cp %{SOURCE7} m4/ %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 +%patch1006 -p1 # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 From 293bde0225e93bbf8cfbf2476544a86a8ce31274a77f5967b6672faeda7a7b92 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 7 Mar 2014 09:33:04 +0000 Subject: [PATCH 19/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=537 --- 0001-Fix-systemd-stdio-bridge-symlink.patch | 28 ++++ ...ectory-path-if-we-fail-to-remove-it-.patch | 54 ++++++++ ...rint-invalid-UTF-8-in-error-messages.patch | 128 ++++++++++++++++++ ...ument-missing-options-of-systemd-run.patch | 113 ++++++++++++++++ ...emd-run-add-some-extra-safety-checks.patch | 34 +++++ ...hat-next-entry-is-after-previous-ent.patch | 70 ++++++++++ ...get-file-after-encountering-an-error.patch | 74 ++++++++++ ...-unregister-PIDs-from-PID-hashtables.patch | 102 ++++++++++++++ ...ence-to-systemd-user-sessions.servic.patch | 25 ++++ 0010-man-update-link-to-LSB.patch | 35 +++++ ...emd-bootchart-fix-spacing-in-command.patch | 28 ++++ 0012-man-add-missing-comma.patch | 26 ++++ ...scape-instance-name-in-systemd-backl.patch | 38 ++++++ systemd-mini.changes | 41 +++++- systemd-mini.spec | 82 ++++++++--- systemd.changes | 41 +++++- systemd.spec | 82 ++++++++--- 17 files changed, 963 insertions(+), 38 deletions(-) create mode 100644 0001-Fix-systemd-stdio-bridge-symlink.patch create mode 100644 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch create mode 100644 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch create mode 100644 0004-man-document-missing-options-of-systemd-run.patch create mode 100644 0005-systemd-run-add-some-extra-safety-checks.patch create mode 100644 0006-journal-assume-that-next-entry-is-after-previous-ent.patch create mode 100644 0007-journal-forget-file-after-encountering-an-error.patch create mode 100644 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch create mode 100644 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch create mode 100644 0010-man-update-link-to-LSB.patch create mode 100644 0011-man-systemd-bootchart-fix-spacing-in-command.patch create mode 100644 0012-man-add-missing-comma.patch create mode 100644 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch diff --git a/0001-Fix-systemd-stdio-bridge-symlink.patch b/0001-Fix-systemd-stdio-bridge-symlink.patch new file mode 100644 index 0000000..02e7e1c --- /dev/null +++ b/0001-Fix-systemd-stdio-bridge-symlink.patch @@ -0,0 +1,28 @@ +From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Sun, 2 Mar 2014 23:37:39 -0500 +Subject: [PATCH] Fix systemd-stdio-bridge symlink + +The symlink is created in bindir (/usr/bin), and points to a binary +which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A +relative symlink does not work here. +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git Makefile.am Makefile.am +index 38445fb..e7134a2 100644 +--- Makefile.am ++++ Makefile.am +@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ + + bus-proxyd-install-hook: + $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) +- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge ++ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge + + bus-proxyd-uninstall-hook: + rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge +-- +1.7.9.2 + diff --git a/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch new file mode 100644 index 0000000..67454ea --- /dev/null +++ b/0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch @@ -0,0 +1,54 @@ +From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 3 Mar 2014 17:11:39 +0100 +Subject: [PATCH] execute: free directory path if we fail to remove it because + we cannot allocate a thread + +--- + src/core/execute.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git src/core/execute.c src/core/execute.c +index 9de6e87..3312885 100644 +--- src/core/execute.c ++++ src/core/execute.c +@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { + } + + void exec_runtime_destroy(ExecRuntime *rt) { ++ int r; ++ + if (!rt) + return; + +@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { + + if (rt->tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); ++ free(rt->tmp_dir); ++ } ++ + rt->tmp_dir = NULL; + } + + if (rt->var_tmp_dir) { + log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); +- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ ++ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); ++ if (r < 0) { ++ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); ++ free(rt->var_tmp_dir); ++ } ++ + rt->var_tmp_dir = NULL; + } + +-- +1.7.9.2 + diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch new file mode 100644 index 0000000..e3d1355 --- /dev/null +++ b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch @@ -0,0 +1,128 @@ +From b5d742138f71e87312541a89aac5657015f50f48 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Tue, 4 Mar 2014 09:50:26 -0500 +Subject: [PATCH] Do not print invalid UTF-8 in error messages + +Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error +messages') only fixed two paths. Convert all of them now. +--- + src/core/load-fragment.c | 13 ++++--------- + src/shared/conf-parser.c | 7 +++---- + src/shared/conf-parser.h | 6 ++++++ + src/shared/fileio.c | 9 ++++++--- + 4 files changed, 19 insertions(+), 16 deletions(-) + +diff --git src/core/load-fragment.c src/core/load-fragment.c +index d77bf5c..5628d8c 100644 +--- src/core/load-fragment.c ++++ src/core/load-fragment.c +@@ -536,9 +536,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(path)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -553,9 +551,7 @@ int config_parse_exec(const char *unit, + } + + if (!utf8_is_valid(c)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", +- rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + r = 0; + goto fail; + } +@@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for( + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.c src/shared/conf-parser.c +index 0a87a71..d27b1b7 100644 +@@ -618,8 +618,7 @@ int config_parse_string(const char *unit + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + free(n); + return 0; + } +@@ -656,8 +655,7 @@ int config_parse_path(const char *unit, + assert(data); + + if (!utf8_is_valid(rvalue)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + return 0; + } + +@@ -725,8 +723,7 @@ int config_parse_strv(const char *unit, + return log_oom(); + + if (!utf8_is_valid(n)) { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "String is not UTF-8 clean, ignoring: %s", rvalue); ++ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); + continue; + } + +diff --git src/shared/conf-parser.h src/shared/conf-parser.h +index e1c7ab4..ba0e58d 100644 +--- src/shared/conf-parser.h ++++ src/shared/conf-parser.h +@@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level, + config_file, config_line, \ + error, __VA_ARGS__) + ++#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ ++ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ ++ log_syntax(unit, level, config_file, config_line, error, \ ++ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ ++ } ++ + #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ + int function(const char *unit, \ + const char *filename, \ +diff --git src/shared/fileio.c src/shared/fileio.c +index d591567..f101269 100644 +--- src/shared/fileio.c ++++ src/shared/fileio.c +@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, + int r; + + if (!utf8_is_valid(key)) { ++ _cleanup_free_ char *t = utf8_escape_invalid(key); ++ + log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", +- filename, line, key); ++ filename, line, t); + return -EINVAL; + } + + if (value && !utf8_is_valid(value)) { +- /* FIXME: filter UTF-8 */ ++ _cleanup_free_ char *t = utf8_escape_invalid(value); ++ + log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", +- filename, line, key, value); ++ filename, line, key, t); + return -EINVAL; + } + +-- +1.7.9.2 + diff --git a/0004-man-document-missing-options-of-systemd-run.patch b/0004-man-document-missing-options-of-systemd-run.patch new file mode 100644 index 0000000..a6e6551 --- /dev/null +++ b/0004-man-document-missing-options-of-systemd-run.patch @@ -0,0 +1,113 @@ +From 981ee551945f4e00de52fcbb7780fd7476bcd47e Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:37:48 +0100 +Subject: [PATCH] man: document missing options of systemd-run + +--- + man/systemd-run.xml | 71 +++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 60 insertions(+), 11 deletions(-) + +diff --git man/systemd-run.xml man/systemd-run.xml +index 95c1cb7..81d41dc 100644 +--- man/systemd-run.xml ++++ man/systemd-run.xml +@@ -121,9 +121,9 @@ along with systemd; If not, see . + + + +- Provide description for the unit. If not +- specified, the command itself will be used as a description. +- See Description= in ++ Provide description for the service or scope ++ unit. If not specified, the command itself will be used as a ++ description. See Description= in + systemd.unit5. + + +@@ -140,10 +140,10 @@ along with systemd; If not, see . + + + +- After the service's process has terminated, keep +- the service around until it is explicitly stopped. This is +- useful to collect runtime information about the service after +- it finished running. Also see ++ After the service or scope process has ++ terminated, keep the service around until it is explicitly ++ stopped. This is useful to collect runtime information about ++ the service after it finished running. Also see + RemainAfterExit= in + systemd.service5. + +@@ -153,15 +153,64 @@ along with systemd; If not, see . + + + +- When terminating the scope unit, send a SIGHUP +- immediately after SIGTERM. This is useful to indicate to +- shells and shell-like processes that the connection has been +- severed. Also see SendSIGHUP= in ++ When terminating the scope or service unit, ++ send a SIGHUP immediately after SIGTERM. This is useful to ++ indicate to shells and shell-like processes that the ++ connection has been severed. Also see ++ SendSIGHUP= in + systemd.kill5. + + + + ++ ++ ++ ++ Sets the service type. Also see ++ Type= in ++ systemd.service5. This ++ option has no effect in conjunction with ++ . Defaults to ++ simple. ++ ++ ++ ++ ++ ++ ++ ++ Runs the service process under the UNIX user ++ and group. Also see User= and ++ Group= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ nice level. Also see Nice= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ ++ ++ ++ ++ Runs the service process with the specified ++ environment variables set. Also see ++ Environment= in ++ systemd.exec5. This ++ option has no effect in conjunction with ++ . ++ ++ ++ + + + +-- +1.7.9.2 + diff --git a/0005-systemd-run-add-some-extra-safety-checks.patch b/0005-systemd-run-add-some-extra-safety-checks.patch new file mode 100644 index 0000000..22d4188 --- /dev/null +++ b/0005-systemd-run-add-some-extra-safety-checks.patch @@ -0,0 +1,34 @@ +From 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 5 Mar 2014 03:38:36 +0100 +Subject: [PATCH] systemd-run: add some extra safety checks + +--- + src/run/run.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/run/run.c src/run/run.c +index 81763c9..e71ca7d 100644 +--- src/run/run.c ++++ src/run/run.c +@@ -37,7 +37,7 @@ static const char *arg_description = NULL; + static const char *arg_slice = NULL; + static bool arg_send_sighup = false; + static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; +-static char *arg_host = NULL; ++static const char *arg_host = NULL; + static bool arg_user = false; + static const char *arg_service_type = NULL; + static const char *arg_exec_user = NULL; +@@ -186,7 +186,7 @@ static int parse_argv(int argc, char *argv[]) { + + case ARG_NICE: + r = safe_atoi(optarg, &arg_nice); +- if (r < 0) { ++ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { + log_error("Failed to parse nice value"); + return -EINVAL; + } +-- +1.7.9.2 + diff --git a/0006-journal-assume-that-next-entry-is-after-previous-ent.patch b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch new file mode 100644 index 0000000..aa974fa --- /dev/null +++ b/0006-journal-assume-that-next-entry-is-after-previous-ent.patch @@ -0,0 +1,70 @@ +From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:07:29 -0500 +Subject: [PATCH] journal: assume that next entry is after previous entry + +With a corrupted file, we can get in a situation where two entries +in the entry array point to the same object. Then journal_file_next_entry +will find the first one using generic_arrray_bisect, and try to move to +the second one, but since the address is the same, generic_array_get will +return the first one. journal_file_next_entry ends up in an infinite loop. + +https://bugzilla.redhat.com/show_bug.cgi?id=1047039 +--- + src/journal/journal-file.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git src/journal/journal-file.c src/journal/journal-file.c +index 5876733..0e1fc7f 100644 +--- src/journal/journal-file.c ++++ src/journal/journal-file.c +@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st + } + + typedef struct ChainCacheItem { +- uint64_t first; /* the array at the begin of the chain */ ++ uint64_t first; /* the array at the beginning of the chain */ + uint64_t array; /* the cached array */ + uint64_t begin; /* the first item in the cached array */ + uint64_t total; /* the total number of items in all arrays before this one in the chain */ +@@ -1945,7 +1945,7 @@ int journal_file_next_entry( + direction_t direction, + Object **ret, uint64_t *offset) { + +- uint64_t i, n; ++ uint64_t i, n, ofs; + int r; + + assert(f); +@@ -1986,10 +1986,24 @@ int journal_file_next_entry( + } + + /* And jump to it */ +- return generic_array_get(f, +- le64toh(f->header->entry_array_offset), +- i, +- ret, offset); ++ r = generic_array_get(f, ++ le64toh(f->header->entry_array_offset), ++ i, ++ ret, &ofs); ++ if (r <= 0) ++ return r; ++ ++ if (p > 0 && ++ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { ++ log_debug("%s: entry array corrupted at entry %"PRIu64, ++ f->path, i); ++ return -EBADMSG; ++ } ++ ++ if (offset) ++ *offset = ofs; ++ ++ return 1; + } + + int journal_file_skip_entry( +-- +1.7.9.2 + diff --git a/0007-journal-forget-file-after-encountering-an-error.patch b/0007-journal-forget-file-after-encountering-an-error.patch new file mode 100644 index 0000000..e195e6b --- /dev/null +++ b/0007-journal-forget-file-after-encountering-an-error.patch @@ -0,0 +1,74 @@ +From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 27 Feb 2014 00:11:54 -0500 +Subject: [PATCH] journal: forget file after encountering an error + +If we encounter an inconsistency in a file, let's just +ignore it. Otherwise, after previous patch, we would try, +and fail, to use this file in every invocation of sd_journal_next +or sd_journal_previous that happens afterwards. +--- + src/journal/sd-journal.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git src/journal/sd-journal.c src/journal/sd-journal.c +index ef455e9..b54bc21 100644 +--- src/journal/sd-journal.c ++++ src/journal/sd-journal.c +@@ -51,6 +51,8 @@ + + #define DEFAULT_DATA_THRESHOLD (64*1024) + ++static void remove_file_real(sd_journal *j, JournalFile *f); ++ + static bool journal_pid_changed(sd_journal *j) { + assert(j); + +@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { + r = next_beyond_location(j, f, direction, &o, &p); + if (r < 0) { + log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); ++ remove_file_real(j, f); + continue; + } else if (r == 0) + continue; +@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { + } + + static int remove_file(sd_journal *j, const char *prefix, const char *filename) { +- char *path; ++ _cleanup_free_ char *path; + JournalFile *f; + + assert(j); +@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + return -ENOMEM; + + f = hashmap_get(j->files, path); +- free(path); + if (!f) + return 0; + ++ remove_file_real(j, f); ++ return 0; ++} ++ ++static void remove_file_real(sd_journal *j, JournalFile *f) { ++ assert(j); ++ assert(f); ++ + hashmap_remove(j->files, f->path); + + log_debug("File %s removed.", f->path); +@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) + journal_file_close(f); + + j->current_invalidate_counter ++; +- +- return 0; + } + + static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { +-- +1.7.9.2 + diff --git a/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch new file mode 100644 index 0000000..8dfd01b --- /dev/null +++ b/0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch @@ -0,0 +1,102 @@ +From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 02:19:42 +0100 +Subject: [PATCH] core: correctly unregister PIDs from PID hashtables + +--- + src/core/unit.c | 42 ++++++++++++++++++------------------------ + 1 file changed, 18 insertions(+), 24 deletions(-) + +diff --git src/core/unit.c src/core/unit.c +index 2437ee3..85250ca 100644 +--- src/core/unit.c ++++ src/core/unit.c +@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { + /* Watch a specific PID. We only support one or two units + * watching each PID for now, not more. */ + +- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); ++ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); ++ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); + if (r < 0) + return r; + +@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { + set_remove(u->pids, LONG_TO_PTR(pid)); + } + +-static int watch_pids_in_path(Unit *u, const char *path) { ++void unit_unwatch_all_pids(Unit *u) { ++ assert(u); ++ ++ while (!set_isempty(u->pids)) ++ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); ++ ++ set_free(u->pids); ++ u->pids = NULL; ++} ++ ++static int unit_watch_pids_in_path(Unit *u, const char *path) { + _cleanup_closedir_ DIR *d = NULL; + _cleanup_fclose_ FILE *f = NULL; + int ret = 0, r; +@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { + if (!p) + return -ENOMEM; + +- r = watch_pids_in_path(u, p); ++ r = unit_watch_pids_in_path(u, p); + if (r < 0 && ret >= 0) + ret = r; + } +@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { + return ret; + } + +- + int unit_watch_all_pids(Unit *u) { + assert(u); + +- if (!u->cgroup_path) +- return -ENOENT; +- + /* Adds all PIDs from our cgroup to the set of PIDs we watch */ + +- return watch_pids_in_path(u, u->cgroup_path); +-} +- +-void unit_unwatch_all_pids(Unit *u) { +- Iterator i; +- void *e; +- +- assert(u); +- +- SET_FOREACH(e, u->pids, i) { +- hashmap_remove_value(u->manager->watch_pids1, e, u); +- hashmap_remove_value(u->manager->watch_pids2, e, u); +- } ++ if (!u->cgroup_path) ++ return -ENOENT; + +- set_free(u->pids); +- u->pids = NULL; ++ return unit_watch_pids_in_path(u, u->cgroup_path); + } + + void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { +@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { + continue; + + if (!pid_is_unwaited(pid)) +- set_remove(u->pids, e); ++ unit_unwatch_pid(u, pid); + } + } + +-- +1.7.9.2 + diff --git a/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch new file mode 100644 index 0000000..5bf1987 --- /dev/null +++ b/0009-logind-fix-reference-to-systemd-user-sessions.servic.patch @@ -0,0 +1,25 @@ +From 646e392e10924454576f10b072f78d7676422816 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 6 Mar 2014 04:52:31 +0100 +Subject: [PATCH] logind: fix reference to systemd-user-sessions.service + +--- + src/login/logind-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/login/logind-session.c src/login/logind-session.c +index 548f049..3700522 100644 +--- src/login/logind-session.c ++++ src/login/logind-session.c +@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { + if (!scope) + return log_oom(); + +- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); ++ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); + if (r < 0) { + log_error("Failed to start session scope %s: %s %s", + scope, bus_error_message(&error, r), error.name); +-- +1.7.9.2 + diff --git a/0010-man-update-link-to-LSB.patch b/0010-man-update-link-to-LSB.patch new file mode 100644 index 0000000..07a96f0 --- /dev/null +++ b/0010-man-update-link-to-LSB.patch @@ -0,0 +1,35 @@ +From 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 08:10:19 -0500 +Subject: [PATCH] man: update link to LSB + +https://bugzilla.redhat.com/show_bug.cgi?id=1073402 +--- + man/daemon.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/daemon.xml man/daemon.xml +index fd29ba7..ab58d08 100644 +--- man/daemon.xml ++++ man/daemon.xml +@@ -252,7 +252,7 @@ + detect service errors and problems. It + is recommended to follow the exit code + scheme as defined in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + recommendations for SysV init + scripts. + +@@ -395,7 +395,7 @@ + exclusively on boot (and manually by the + administrator) via SysV init scripts, as + detailed in the LSB ++ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB + Linux Standard Base Core + Specification. This method of + activation is supported ubiquitously on Linux +-- +1.7.9.2 + diff --git a/0011-man-systemd-bootchart-fix-spacing-in-command.patch b/0011-man-systemd-bootchart-fix-spacing-in-command.patch new file mode 100644 index 0000000..60c206b --- /dev/null +++ b/0011-man-systemd-bootchart-fix-spacing-in-command.patch @@ -0,0 +1,28 @@ +From 82ed60080d327d7301fcd55f5a1f8511f894b9d5 Mon Sep 17 00:00:00 2001 +From: Zachary Cook +Date: Thu, 6 Mar 2014 03:49:49 -0500 +Subject: [PATCH] man: systemd-bootchart - fix spacing in command + +Use the same formatting as the systemd-analyze man page, so that man shows a space. +--- + man/systemd-bootchart.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git man/systemd-bootchart.xml man/systemd-bootchart.xml +index d0adaad..1715d5d 100644 +--- man/systemd-bootchart.xml ++++ man/systemd-bootchart.xml +@@ -78,8 +78,8 @@ + in which order, and where possible problems + exist in the startup sequence of the system. + It is essentially a more detailed version of +- the systemd-analyze +- plot function. ++ the systemd-analyze plot ++ function. + + + Of course, bootchart can also be used at any +-- +1.7.9.2 + diff --git a/0012-man-add-missing-comma.patch b/0012-man-add-missing-comma.patch new file mode 100644 index 0000000..9d779f4 --- /dev/null +++ b/0012-man-add-missing-comma.patch @@ -0,0 +1,26 @@ +From 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Thu, 6 Mar 2014 23:54:13 -0500 +Subject: [PATCH] man: add missing comma + +marcosf0> missing comma in udevadm "see also" section +--- + man/udevadm.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git man/udevadm.xml man/udevadm.xml +index a3f8d54..21d1443 100644 +--- man/udevadm.xml ++++ man/udevadm.xml +@@ -594,7 +594,7 @@ + See Also + + udev7 +- ++ , + + systemd-udevd.service8 + +-- +1.7.9.2 + diff --git a/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch new file mode 100644 index 0000000..f65e5d3 --- /dev/null +++ b/0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch @@ -0,0 +1,38 @@ +From 6c49212741253dae05b89d22374186f092ef1e5a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= +Date: Fri, 7 Mar 2014 01:50:34 +0100 +Subject: [PATCH] units: Do not unescape instance name in + systemd-backlight@.service + +The instance name is never escaped in the udev rule, but unescaped in the unit. +This results in the following error message on Asus boards: + + Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory +--- + units/systemd-backlight@.service.in | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git units/systemd-backlight@.service.in units/systemd-backlight@.service.in +index 5caa5d5..e945d87 100644 +--- units/systemd-backlight@.service.in ++++ units/systemd-backlight@.service.in +@@ -6,7 +6,7 @@ + # (at your option) any later version. + + [Unit] +-Description=Load/Save Screen Backlight Brightness of %I ++Description=Load/Save Screen Backlight Brightness of %i + Documentation=man:systemd-backlight@.service(8) + DefaultDependencies=no + RequiresMountsFor=/var/lib/systemd/backlight +@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target + [Service] + Type=oneshot + RemainAfterExit=yes +-ExecStart=@rootlibexecdir@/systemd-backlight load %I +-ExecStop=@rootlibexecdir@/systemd-backlight save %I ++ExecStart=@rootlibexecdir@/systemd-backlight load %i ++ExecStop=@rootlibexecdir@/systemd-backlight save %i +-- +1.7.9.2 + diff --git a/systemd-mini.changes b/systemd-mini.changes index 59fc865..4ef46a1 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + ------------------------------------------------------------------- Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de @@ -13,8 +37,23 @@ Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de -- Generate the bash completion files on the fly for th ecase of +- Generate the bash completion files on the fly for the case of not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 5a3f9fd..6aca11a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -222,32 +222,58 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch133: 0014-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -272,8 +298,8 @@ Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches -# PATCH-FIX-USTREAM added at 2014/0303 -Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -557,6 +583,19 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -568,9 +607,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1999 -p1 - # udev patches -%patch134 -p0 +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -803,6 +841,16 @@ done > files.completion rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{buildroot}%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1190,12 +1238,10 @@ exit 0 %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd.so -%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h diff --git a/systemd.changes b/systemd.changes index 59fc865..4ef46a1 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Fri Mar 7 09:25:53 UTC 2014 - werner@suse.de + +- Add or port upstream bugfix patches: + 0001-Fix-systemd-stdio-bridge-symlink.patch + 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch + 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch + 0004-man-document-missing-options-of-systemd-run.patch + 0005-systemd-run-add-some-extra-safety-checks.patch + 0006-journal-assume-that-next-entry-is-after-previous-ent.patch + 0007-journal-forget-file-after-encountering-an-error.patch + 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch + 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch + 0010-man-update-link-to-LSB.patch + 0011-man-systemd-bootchart-fix-spacing-in-command.patch + 0012-man-add-missing-comma.patch + 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch + +------------------------------------------------------------------- +Fri Mar 7 08:00:31 UTC 2014 - werner@suse.de + +- Add linker scripts as place holder of the old systemd shared + libraries now all included in libsystemd.so (bnc#867128) + ------------------------------------------------------------------- Tue Mar 4 10:37:02 UTC 2014 - werner@suse.de @@ -13,8 +37,23 @@ Mon Mar 3 15:23:57 UTC 2014 - thomas.blume@suse.com ------------------------------------------------------------------- Mon Mar 3 14:49:48 UTC 2014 - werner@suse.de -- Generate the bash completion files on the fly for th ecase of +- Generate the bash completion files on the fly for the case of not having the package bash-completion around +- Add or port upstream bugfix patches: + 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch + 0002-cdrom_id-use-the-old-MMC-fallback.patch + 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch + 0004-logs-show-fix-corrupt-output-with-empty-messages.patch + 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch + 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch + 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch + 0008-README-document-that-var-run-must-be-a-symlink-run.patch + 0010-Replace-var-run-with-run-in-remaining-places.patch + 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch + 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch + 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch + 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch + 0014-login-fix-pos-array-allocation.patch ------------------------------------------------------------------- Mon Mar 3 13:58:11 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index bd96e03..cab0796 100644 --- a/systemd.spec +++ b/systemd.spec @@ -217,32 +217,58 @@ Patch117: 0001-make-209-working-on-older-dist.patch Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/0303 Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch -# PATCH-FIX-USTREAM added at 2014/0303 +# PATCH-FIX-USTREAM added at 2014/03/03 Patch133: 0014-login-fix-pos-array-allocation.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch135: 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch136: 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch137: 0004-man-document-missing-options-of-systemd-run.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch138: 0005-systemd-run-add-some-extra-safety-checks.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch139: 0006-journal-assume-that-next-entry-is-after-previous-ent.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch140: 0007-journal-forget-file-after-encountering-an-error.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch141: 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch142: 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch143: 0010-man-update-link-to-LSB.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch144: 0011-man-systemd-bootchart-fix-spacing-in-command.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch145: 0012-man-add-missing-comma.patch +# PATCH-FIX-USTREAM added at 2014/03/07 +Patch146: 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) @@ -267,8 +293,8 @@ Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch Patch1999: systemd-install-compat_pkgconfig-always.patch # udev patches -# PATCH-FIX-USTREAM added at 2014/0303 -Patch134: 0002-cdrom_id-use-the-old-MMC-fallback.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -552,6 +578,19 @@ cp %{SOURCE7} m4/ %patch131 -p0 %patch132 -p0 %patch133 -p0 +%patch134 -p0 +%patch135 -p0 +%patch136 -p0 +%patch137 -p0 +%patch138 -p0 +%patch139 -p0 +%patch140 -p0 +%patch141 -p0 +%patch142 -p0 +%patch143 -p0 +%patch144 -p0 +%patch145 -p0 +%patch146 -p0 %patch1009 -p1 %patch1010 -p1 %patch1012 -p1 @@ -563,9 +602,8 @@ cp %{SOURCE7} m4/ %patch1021 -p1 %patch1022 -p1 %patch1999 -p1 - # udev patches -%patch134 -p0 +%patch1034 -p0 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -798,6 +836,16 @@ done > files.completion rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif +%if %{without compat_libs} +lib=%{buildroot}%{_libdir}/libsystemd.so +for lnk in daemon login id128 journal +do + lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so + echo '/* GNU ld script */' > ${lnk} + echo 'INPUT('${lib}')' >> ${lnk} +done +%endif + %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 @@ -1185,12 +1233,10 @@ exit 0 %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd.so -%if %{with compat_libs} %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so -%endif %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h From 094108f98abd57d7b2978d6b7284ba95f410105d2d68f74350b3d754e9fb3de5 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 7 Mar 2014 12:54:16 +0000 Subject: [PATCH 20/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=538 --- ... 0001-login-fix-pos-array-allocation.patch | 0 ...pos-slot-to-fallback-on-pos-eviction.patch | 0 ...rint-invalid-UTF-8-in-error-messages.patch | 2 ++ ...ing-org.freedesktop.login1.Seat.Swit.patch | 0 ...C-network-interface-name-irdac-idrac.patch | 0 ...var-run-with-run-in-remaining-places.patch | 0 ...k-to-var-run-at-a-couple-of-problems.patch | 0 ...t-that-var-run-must-be-a-symlink-run.patch | 0 ...-system_bus_socket-for-the-D-Bus-soc.patch | 0 ...-out-PropertiesChanged-message-if-ac.patch | 0 ...-PropertiesChanged-signals-for-mount.patch | 0 ...x-corrupt-output-with-empty-messages.patch | 0 ...e-extra-arguments-with-verify-and-si.patch | 0 ...13-cdrom_id-use-the-old-MMC-fallback.patch | 0 ...ection-of-missing-proc-self-loginuid.patch | 0 systemd-dbus-system-bus-address.patch | 13 ------- systemd-mini.spec | 34 ++++++++----------- systemd.spec | 34 ++++++++----------- 18 files changed, 32 insertions(+), 51 deletions(-) rename 0014-login-fix-pos-array-allocation.patch => 0001-login-fix-pos-array-allocation.patch (100%) rename 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch => 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch (100%) rename 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch => 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch (100%) rename 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch => 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch (100%) rename 0010-Replace-var-run-with-run-in-remaining-places.patch => 0005-Replace-var-run-with-run-in-remaining-places.patch (100%) rename 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch => 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch (100%) rename 0008-README-document-that-var-run-must-be-a-symlink-run.patch => 0007-README-document-that-var-run-must-be-a-symlink-run.patch (100%) rename 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch => 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch (100%) rename 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch => 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch (100%) rename 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch => 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch (100%) rename 0004-logs-show-fix-corrupt-output-with-empty-messages.patch => 0011-logs-show-fix-corrupt-output-with-empty-messages.patch (100%) rename 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch => 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch (100%) rename 0002-cdrom_id-use-the-old-MMC-fallback.patch => 0013-cdrom_id-use-the-old-MMC-fallback.patch (100%) rename 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch => 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch (100%) delete mode 100644 systemd-dbus-system-bus-address.patch diff --git a/0014-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch similarity index 100% rename from 0014-login-fix-pos-array-allocation.patch rename to 0001-login-fix-pos-array-allocation.patch diff --git a/0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch similarity index 100% rename from 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch rename to 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch diff --git a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch index e3d1355..7f48544 100644 --- a/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch +++ b/0003-Do-not-print-invalid-UTF-8-in-error-messages.patch @@ -50,6 +50,8 @@ index d77bf5c..5628d8c 100644 diff --git src/shared/conf-parser.c src/shared/conf-parser.c index 0a87a71..d27b1b7 100644 +--- src/shared/conf-parser.c ++++ src/shared/conf-parser.c @@ -618,8 +618,7 @@ int config_parse_string(const char *unit return log_oom(); diff --git a/0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch similarity index 100% rename from 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch rename to 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch diff --git a/0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch similarity index 100% rename from 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch rename to 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch diff --git a/0010-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch similarity index 100% rename from 0010-Replace-var-run-with-run-in-remaining-places.patch rename to 0005-Replace-var-run-with-run-in-remaining-places.patch diff --git a/0009-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch similarity index 100% rename from 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch rename to 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch diff --git a/0008-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch similarity index 100% rename from 0008-README-document-that-var-run-must-be-a-symlink-run.patch rename to 0007-README-document-that-var-run-must-be-a-symlink-run.patch diff --git a/0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch similarity index 100% rename from 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch rename to 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch diff --git a/0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch similarity index 100% rename from 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch rename to 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch diff --git a/0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch similarity index 100% rename from 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch rename to 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch diff --git a/0004-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch similarity index 100% rename from 0004-logs-show-fix-corrupt-output-with-empty-messages.patch rename to 0011-logs-show-fix-corrupt-output-with-empty-messages.patch diff --git a/0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch similarity index 100% rename from 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch rename to 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch diff --git a/0002-cdrom_id-use-the-old-MMC-fallback.patch b/0013-cdrom_id-use-the-old-MMC-fallback.patch similarity index 100% rename from 0002-cdrom_id-use-the-old-MMC-fallback.patch rename to 0013-cdrom_id-use-the-old-MMC-fallback.patch diff --git a/0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch similarity index 100% rename from 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch rename to 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch diff --git a/systemd-dbus-system-bus-address.patch b/systemd-dbus-system-bus-address.patch deleted file mode 100644 index 87c7b41..0000000 --- a/systemd-dbus-system-bus-address.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- systemd-209/src/libsystemd/sd-bus/sd-bus.c -+++ systemd-209/src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); -+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); - - return 0; - } diff --git a/systemd-mini.spec b/systemd-mini.spec index 6aca11a..3c675c1 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -223,31 +223,31 @@ Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +Patch121: 0001-login-fix-pos-array-allocation.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/0303 -Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-login-fix-pos-array-allocation.patch +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/03/07 Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch # PATCH-FIX-USTREAM added at 2014/03/07 @@ -290,16 +290,13 @@ Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch1020: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch -Patch1021: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch - # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 -Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch +Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -604,7 +601,6 @@ cp %{SOURCE7} m4/ %patch1018 -p1 %patch1019 -p1 %patch1020 -p1 -%patch1021 -p1 %patch1022 -p1 %patch1999 -p1 # udev patches diff --git a/systemd.spec b/systemd.spec index cab0796..7d6d33f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -218,31 +218,31 @@ Patch119: 0001-make-fortify-happy-with-ppoll.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch121: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +Patch121: 0001-login-fix-pos-array-allocation.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch122: 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch +Patch122: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch123: 0004-logs-show-fix-corrupt-output-with-empty-messages.patch +Patch123: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch124: 0005-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +Patch124: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch125: 0006-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +Patch125: 0005-Replace-var-run-with-run-in-remaining-places.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch126: 0007-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +Patch126: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch127: 0008-README-document-that-var-run-must-be-a-symlink-run.patch -# PATCH-FIX-USTREAM added at 2014/0303 -Patch128: 0010-Replace-var-run-with-run-in-remaining-places.patch +Patch127: 0007-README-document-that-var-run-must-be-a-symlink-run.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch129: 0009-Revert-back-to-var-run-at-a-couple-of-problems.patch +Patch128: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch130: 0011-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +Patch129: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch131: 0012-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +Patch130: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch132: 0013-login-set-pos-slot-to-fallback-on-pos-eviction.patch +Patch131: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch # PATCH-FIX-USTREAM added at 2014/03/03 -Patch133: 0014-login-fix-pos-array-allocation.patch +Patch132: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +# PATCH-FIX-USTREAM added at 2014/03/03 +Patch133: 0014-nspawn-fix-detection-of-missing-proc-self-loginuid.patch # PATCH-FIX-USTREAM added at 2014/03/07 Patch134: 0001-Fix-systemd-stdio-bridge-symlink.patch # PATCH-FIX-USTREAM added at 2014/03/07 @@ -285,16 +285,13 @@ Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch1020: 0001-add-network-device-after-NFS-mount-units.patch -# PATCH-FIX-SUSE systemd-dbus-system-bus-address.patch -Patch1021: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE 1022-systemd-tmpfiles-ownerkeep.patch Patch1022: 1022-systemd-tmpfiles-ownerkeep.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch1999: systemd-install-compat_pkgconfig-always.patch - # udev patches # PATCH-FIX-USTREAM added at 2014/03/03 -Patch1034: 0002-cdrom_id-use-the-old-MMC-fallback.patch +Patch1034: 0013-cdrom_id-use-the-old-MMC-fallback.patch # 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 @@ -599,7 +596,6 @@ cp %{SOURCE7} m4/ %patch1018 -p1 %patch1019 -p1 %patch1020 -p1 -%patch1021 -p1 %patch1022 -p1 %patch1999 -p1 # udev patches From e15f164ad5e74f07529584126268e17aca6f05b4ceae9fdbd72654cc85be50ba Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 7 Mar 2014 13:07:54 +0000 Subject: [PATCH 21/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=539 --- systemd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd.spec b/systemd.spec index 7d6d33f..4340cc0 100644 --- a/systemd.spec +++ b/systemd.spec @@ -833,7 +833,7 @@ rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif %if %{without compat_libs} -lib=%{buildroot}%{_libdir}/libsystemd.so +lib=%{_libdir}/libsystemd.so for lnk in daemon login id128 journal do lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so From 4442160ee04cb9e925d4658195151a2714949973a0065611b8fd11d7f1bdcd85 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Fri, 7 Mar 2014 15:36:40 +0000 Subject: [PATCH 22/22] . OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=540 --- systemd-mini.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd-mini.spec b/systemd-mini.spec index 3c675c1..2d9fb3c 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -838,7 +838,7 @@ rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif %if %{without compat_libs} -lib=%{buildroot}%{_libdir}/libsystemd.so +lib=%{_libdir}/libsystemd.so for lnk in daemon login id128 journal do lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so