- Update to release 204:

+ systemd-nspawn creates etc/resolv.conf in container if needed.
  + systemd-nspawn will store metadata about container in container
    cgroup including its root directory.
  + cgroup hierarchy has been reworked, all objects are now suffxed
    (with .session for user sessions, .user for users, .nspawn for
     containers). All cgroup names are now escaped to preven
     collision of object names.
  + systemctl list-dependencies gained --plain, --reverse, --after
    and --before switches.
  + systemd-inhibit shows processes name taking inhibitor lock.
  + nss-myhostname will now resolve "localhost" implicitly.
  + .include is not allowed recursively anymore and only in unit
    files. Drop-in files should be favored in most cases.
  + systemd-analyze gained "critical-chain" command, to get slowest
    chain of units run during boot-up.
  + systemd-nspawn@.service has been added to easily run nspawn
    container for system services. Just start
    "systemd-nspawn@foobar.service" and container from
    /var/lib/container/foobar" will be booted.
  + systemd-cgls has new --machine parameter to list processes from
    one container.
  + ConditionSecurity= can now check for apparmor and SMACK.
  + /etc/systemd/sleep.conf has been introduced to configure which
    kernel operation will be execute when "suspend", "hibernate" or
    "hybrid-sleep" is requrested. It allow new kernel "freeze"
    state to be used too. (This setting won't have any effect if
    pm-utils is installed).
  + ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
    passed argument if applicable.

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=388
This commit is contained in:
Marcus Meissner 2013-05-29 15:26:40 +00:00 committed by Git OBS Bridge
parent 9bd46fa1ae
commit e118bb4a4a
20 changed files with 357 additions and 212 deletions

View File

@ -1,22 +0,0 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 4 Dec 2012 16:51:32 +0000
Subject: Ensure debugshell has a correct value
use /bin/bash if sushell isn't installed (bnc#789052).
---
units/debug-shell.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/debug-shell.service.in b/units/debug-shell.service.in
index a6acad3..64b5e0d 100644
--- a/units/debug-shell.service.in
+++ b/units/debug-shell.service.in
@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes
[Service]
Environment=TERM=linux
-ExecStart=@SUSHELL@
+ExecStart=/bin/bash -c '[ -x @SUSHELL@ ] && exec @SUSHELL@ || exec /bin/bash'
Restart=always
RestartSec=0
StandardInput=tty

View File

@ -4,99 +4,93 @@ Subject: Forward suspend / hibernate calls to pm-utils
forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) forward suspend/hibernation calls to pm-utils, if installed (bnc#790157)
--- ---
src/sleep/sleep.c | 27 ++++++++++++++++++++++++--- src/sleep/sleep.c | 26 ++++++++++++++++++++++----
1 file changed, 24 insertions(+), 3 deletions(-) 1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
index f5e78c1..8d91117 100644 index a56ab89..232ab67 100644
--- a/src/sleep/sleep.c --- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c +++ b/src/sleep/sleep.c
@@ -22,6 +22,7 @@ @@ -24,6 +24,7 @@
#include <stdio.h>
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <getopt.h>
+#include <stdlib.h> +#include <stdlib.h>
#include "log.h" #include "systemd/sd-id128.h"
#include "util.h" #include "systemd/sd-messages.h"
@@ -32,6 +33,9 @@ @@ -35,6 +36,8 @@
int main(int argc, char *argv[]) { #include "sleep-config.h"
const char *verb;
char* arguments[4];
+ const char *pmtools;
+ bool delegate_to_pmutils = false;
+ struct stat buf;
int r;
FILE *f;
@@ -45,17 +49,27 @@ int main(int argc, char *argv[]) { static char* arg_verb = NULL;
goto finish; +static bool delegate_to_pmutils = false;
+static const char *pmtools;
static int write_mode(char **modes) {
int r = 0;
@@ -50,9 +53,6 @@ static int write_mode(char **modes) {
r = k;
} }
- if (streq(argv[1], "suspend")) - if (r < 0)
+ if (streq(argv[1], "suspend")) { - log_error("Failed to write mode to /sys/power/disk: %s",
verb = "mem"; - strerror(-r));
- else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep"))
return r;
}
@@ -90,6 +90,8 @@ static int execute(char **modes, char **states) {
FILE *f;
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. */
f = fopen("/sys/power/state", "we");
@@ -102,6 +104,7 @@ static int execute(char **modes, char **states) {
r = write_mode(modes);
if (r < 0)
return r;
+ }
arguments[0] = NULL;
arguments[1] = (char*) "pre";
@@ -114,8 +117,10 @@ static int execute(char **modes, char **states) {
"MESSAGE=Suspending system...",
note,
NULL);
-
+ if (!delegate_to_pmutils)
r = write_state(f, states);
+ else
+ r = -system(pmtools);
if (r < 0)
return r;
@@ -158,6 +163,7 @@ static int parse_argv(int argc, char *argv[]) {
};
int c;
+ struct stat buf;
assert(argc >= 0);
assert(argv);
@@ -196,6 +202,18 @@ static int parse_argv(int argc, char *argv[]) {
return -EINVAL;
}
+ if (streq(arg_verb, "suspend")) {
+ pmtools = "/usr/sbin/pm-suspend"; + pmtools = "/usr/sbin/pm-suspend";
+ } + }
+ else if (streq(argv[1], "hibernate") || streq(argv[1], "hybrid-sleep")) { + else if (streq(arg_verb, "hibernate") || streq(arg_verb, "hybrid-sleep")) {
verb = "disk"; + if (streq(arg_verb, "hibernate"))
+ if (streq(argv[1], "hibernate"))
+ pmtools = "/usr/sbin/pm-hibernate"; + pmtools = "/usr/sbin/pm-hibernate";
+ else + else
+ pmtools = "/usr/sbin/pm-suspend-hybrid"; + pmtools = "/usr/sbin/pm-suspend-hybrid";
+ } + }
else { +
log_error("Unknown action '%s'.", argv[1]);
r = -EINVAL;
goto finish;
}
+ delegate_to_pmutils = (stat(pmtools, &buf) >= 0 && S_ISREG(buf.st_mode) && (buf.st_mode & 0111)); + delegate_to_pmutils = (stat(pmtools, &buf) >= 0 && S_ISREG(buf.st_mode) && (buf.st_mode & 0111));
+ +
/* Configure the hibernation mode */ return 1 /* work to do */;
+ if (!delegate_to_pmutils) {
if (streq(argv[1], "hibernate")) {
if (write_string_file("/sys/power/disk", "platform") < 0)
write_string_file("/sys/power/disk", "shutdown");
@@ -65,13 +79,14 @@ int main(int argc, char *argv[]) {
write_string_file("/sys/power/disk", "shutdown");
} }
+
f = fopen("/sys/power/state", "we");
if (!f) {
log_error("Failed to open /sys/power/state: %m");
r = -errno;
goto finish;
}
-
+ }
arguments[0] = NULL;
arguments[1] = (char*) "pre";
arguments[2] = argv[1];
@@ -97,11 +112,16 @@ int main(int argc, char *argv[]) {
"SLEEP=hybrid-sleep",
NULL);
+ if (delegate_to_pmutils) {
+ r = -system(pmtools);
+ }
+ else {
fputs(verb, f);
fputc('\n', f);
fflush(f);
r = ferror(f) ? -errno : 0;
+ }
if (streq(argv[1], "suspend"))
log_struct(LOG_INFO,
@@ -119,6 +139,7 @@ int main(int argc, char *argv[]) {
arguments[1] = (char*) "post";
execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments);
+ if (!delegate_to_pmutils)
fclose(f);
finish:

View File

@ -0,0 +1,27 @@
From f49fd1d57a429d4a05ac86352c017a845f8185b3 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue, 7 May 2013 14:16:53 +0200
Subject: [PATCH] Start ctrl-alt-del.target irreversibly
This makes ctrl-alt-del reboots more robust, just like "systemctl
reboot".
---
src/core/manager.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/manager.c b/src/core/manager.c
index c7f8f20..0508628 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1372,7 +1372,7 @@ static int manager_process_signal_fd(Manager *m) {
case SIGINT:
if (m->running_as == SYSTEMD_SYSTEM) {
- manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE);
+ manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE_IRREVERSIBLY);
break;
}
--
1.8.1.4

View File

@ -11,12 +11,33 @@ diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c
index cb045a9..51093f2 100644 index cb045a9..51093f2 100644
--- a/src/login/logind-acl.c --- a/src/login/logind-acl.c
+++ b/src/login/logind-acl.c +++ b/src/login/logind-acl.c
@@ -240,6 +240,9 @@ int devnode_acl_all(struct udev *udev, @@ -24,6 +24,7 @@
#include <acl/libacl.h>
#include <errno.h>
#include <string.h>
+#include <strv.h>
#include "logind-acl.h"
#include "util.h"
@@ -240,6 +241,22 @@ int devnode_acl_all(struct udev *udev,
goto finish; goto finish;
} }
+ devnode_acl("/dev/nvidia0", flush, del, old_uid, add, new_uid); + /* only search for nvidia* if /dev/nvidiactl exists */
+ devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid); + if (!devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid)) {
+ char** directory;
+ char **f, *resolved;
+
+ if (get_files_in_directory ("/dev", &directory)) {
+ STRV_FOREACH(f,directory)
+ if (startswith(*f,"nvidia")) {
+ resolved = strjoin("/dev/", *f, NULL);
+ devnode_acl(resolved, flush, del, old_uid, add, new_uid);
+ free(resolved);
+ }
+ }
+ strv_free(directory);
+ }
+ +
finish: finish:
if (e) if (e)

View File

@ -4,16 +4,16 @@ Subject: avoid assertion if invalid address familily is passed to
gethostbyaddr_r (bnc#791101) gethostbyaddr_r (bnc#791101)
--- ---
src/nss-myhostname/nss-myhostname.c | 11 ++++++----- src/nss-myhostname/nss-myhostname.c | 6 ++++++
1 file changed, 6 insertions(+), 5 deletions(-) 1 file changed, 6 insertions(+)
diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c
index 16ccb3e..884eb99 100644 index 60e256d..e97d4e5 100644
--- a/src/nss-myhostname/nss-myhostname.c --- a/src/nss-myhostname/nss-myhostname.c
+++ b/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c
@@ -383,6 +383,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( @@ -442,6 +442,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r(
struct address *a; uint32_t local_address_ipv4 = LOCALADDRESS_IPV4;
unsigned n_addresses = 0, n; const char *canonical = NULL, *additional = NULL;
+ if (af != AF_INET && af != AF_INET6) { + if (af != AF_INET && af != AF_INET6) {
+ *errnop = EAFNOSUPPORT; + *errnop = EAFNOSUPPORT;
@ -24,15 +24,3 @@ index 16ccb3e..884eb99 100644
if (len != PROTO_ADDRESS_SIZE(af)) { if (len != PROTO_ADDRESS_SIZE(af)) {
*errnop = EINVAL; *errnop = EINVAL;
*h_errnop = NO_RECOVERY; *h_errnop = NO_RECOVERY;
@@ -398,11 +404,6 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r(
if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0)
goto found;
-
- } else {
- *errnop = EAFNOSUPPORT;
- *h_errnop = NO_DATA;
- return NSS_STATUS_UNAVAIL;
}
ifconf_acquire_addresses(&addresses, &n_addresses);

View File

@ -0,0 +1,34 @@
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 28 May 2013 15:17:35 +0200
Subject: ensure shortname is set as hostname (bnc#820213)
strip hostname so the domain part isn't set as part of the hostname
---
src/core/hostname-setup.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c
index 0ce683b..1c8e555 100644
--- a/src/core/hostname-setup.c
+++ b/src/core/hostname-setup.c
@@ -32,7 +32,7 @@
#include "fileio.h"
static int read_and_strip_hostname(const char *path, char **hn) {
- char *s;
+ char *s, *domain;
int r;
assert(path);
@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const char *path, char **hn) {
return -ENOENT;
}
+ /* strip any leftover of a domain name */
+ if (domain = strchr(s, '.')) {
+ *domain = NULL;
+ }
+
*hn = s;
return 0;
}

View File

@ -7,7 +7,7 @@ Subject: force lvm restart after cryptsetup target is reached
1 file changed, 56 insertions(+), 1 deletion(-) 1 file changed, 56 insertions(+), 1 deletion(-)
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index ac0ed58..9b8e229 100644 index 81b7708..1940985 100644
--- a/src/cryptsetup/cryptsetup-generator.c --- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
@ -73,17 +73,17 @@ index ac0ed58..9b8e229 100644
static int create_disk( static int create_disk(
const char *name, const char *name,
const char *device, const char *device,
@@ -331,6 +380,7 @@ int main(int argc, char *argv[]) { @@ -334,6 +383,7 @@ int main(int argc, char *argv[]) {
_cleanup_fclose_ FILE *f = NULL; _cleanup_fclose_ FILE *f = NULL;
unsigned n = 0; unsigned n = 0;
int r = EXIT_SUCCESS; int r = EXIT_SUCCESS;
+ bool no_crypttab = false; + bool no_crypttab = false;
char **i; char **i;
_cleanup_strv_free_ char **arg_proc_cmdline_disks_done = NULL;
_cleanup_strv_free_ char **arg_proc_cmdline_disks = NULL;
@@ -360,8 +410,10 @@ int main(int argc, char *argv[]) {
f = fopen("/etc/crypttab", "re");
if (argc > 1 && argc != 4) {
@@ -361,8 +411,10 @@ int main(int argc, char *argv[]) {
f = fopen("/etc/crypttab", "re");
if (!f) { if (!f) {
- if (errno == ENOENT) - if (errno == ENOENT)
+ if (errno == ENOENT) { + if (errno == ENOENT) {
@ -93,7 +93,7 @@ index ac0ed58..9b8e229 100644
else { else {
r = EXIT_FAILURE; r = EXIT_FAILURE;
log_error("Failed to open /etc/crypttab: %m"); log_error("Failed to open /etc/crypttab: %m");
@@ -445,5 +497,8 @@ int main(int argc, char *argv[]) { @@ -464,5 +516,8 @@ next:
r = EXIT_FAILURE; r = EXIT_FAILURE;
} }

View File

@ -9,7 +9,7 @@ Subject: handle /etc/HOSTNAME
2 files changed, 28 insertions(+), 6 deletions(-) 2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c diff --git a/src/core/hostname-setup.c b/src/core/hostname-setup.c
index ac508af..15d206c 100644 index 8aa1cff..0ce683b 100644
--- a/src/core/hostname-setup.c --- a/src/core/hostname-setup.c
+++ b/src/core/hostname-setup.c +++ b/src/core/hostname-setup.c
@@ -61,12 +61,24 @@ int hostname_setup(void) { @@ -61,12 +61,24 @@ int hostname_setup(void) {

View File

@ -1,25 +0,0 @@
Index: systemd-202/src/core/hostname-setup.c
===================================================================
--- systemd-202.orig/src/core/hostname-setup.c
+++ systemd-202/src/core/hostname-setup.c
@@ -32,7 +32,7 @@
#include "fileio.h"
static int read_and_strip_hostname(const char *path, char **hn) {
- char *s;
+ char *s, *domain;
int r;
assert(path);
@@ -49,6 +49,11 @@ static int read_and_strip_hostname(const
return -ENOENT;
}
+ /* strip any leftover of a domain name */
+ if (domain = strchr(s, '.')) {
+ *domain = NULL;
+ }
+
*hn = s;
return 0;
}

View File

@ -4,14 +4,14 @@ Subject: optionally warn if nss-myhostname is called
--- ---
configure.ac | 11 +++++++++++ configure.ac | 11 +++++++++++
src/nss-myhostname/nss-myhostname.c | 35 +++++++++++++++++++++++++++++++++++ src/nss-myhostname/nss-myhostname.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+) 2 files changed, 43 insertions(+)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 5173783..e58d694 100644 index e1278e8..06eb98d 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -714,6 +714,17 @@ if test "x$enable_myhostname" != "xno"; then @@ -725,6 +725,17 @@ if test "x$enable_myhostname" != "xno"; then
fi fi
AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"])
@ -30,10 +30,10 @@ index 5173783..e58d694 100644
AC_ARG_WITH(firmware-path, AC_ARG_WITH(firmware-path,
AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c
index 884eb99..dbd9a2d 100644 index e97d4e5..a2a6de8 100644
--- a/src/nss-myhostname/nss-myhostname.c --- a/src/nss-myhostname/nss-myhostname.c
+++ b/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c
@@ -30,6 +30,9 @@ @@ -29,6 +29,9 @@
#include <net/if.h> #include <net/if.h>
#include <stdlib.h> #include <stdlib.h>
#include <arpa/inet.h> #include <arpa/inet.h>
@ -43,7 +43,7 @@ index 884eb99..dbd9a2d 100644
#include "ifconf.h" #include "ifconf.h"
#include "macro.h" #include "macro.h"
@@ -44,6 +47,10 @@ @@ -47,6 +50,10 @@
#define LOCALADDRESS_IPV6 &in6addr_loopback #define LOCALADDRESS_IPV6 &in6addr_loopback
#define LOOPBACK_INTERFACE "lo" #define LOOPBACK_INTERFACE "lo"
@ -54,40 +54,37 @@ index 884eb99..dbd9a2d 100644
enum nss_status _nss_myhostname_gethostbyname4_r( enum nss_status _nss_myhostname_gethostbyname4_r(
const char *name, const char *name,
struct gaih_addrtuple **pat, struct gaih_addrtuple **pat,
@@ -115,6 +122,10 @@ enum nss_status _nss_myhostname_gethostbyname4_r( @@ -129,6 +136,9 @@ enum nss_status _nss_myhostname_gethostbyname4_r(
return NSS_STATUS_NOTFOUND; return NSS_STATUS_NOTFOUND;
} }
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING +#ifdef LOG_NSS_MY_HOSTNAME_WARNING
+ warn(hn); + warn(hn);
+#endif +#endif
+
/* If this fails, n_addresses is 0. Which is fine */ /* If this fails, n_addresses is 0. Which is fine */
ifconf_acquire_addresses(&addresses, &n_addresses); ifconf_acquire_addresses(&addresses, &n_addresses);
@@ -334,6 +345,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r( @@ -382,6 +392,9 @@ enum nss_status _nss_myhostname_gethostbyname3_r(
return NSS_STATUS_NOTFOUND; local_address_ipv4 = LOCALADDRESS_IPV4;
} }
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING +#ifdef LOG_NSS_MY_HOSTNAME_WARNING
+ warn(hn); + warn(hn);
+#endif +#endif
+ return fill_in_hostent(
return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, canonp); canonical, additional,
} af,
@@ -509,6 +522,9 @@ found:
@@ -429,6 +444,10 @@ found: canonical = hn;
return NSS_STATUS_UNAVAIL;
} }
+#ifdef LOG_NSS_MY_HOSTNAME_WARNING +#ifdef LOG_NSS_MY_HOSTNAME_WARNING
+ warn(hn); + warn(hn);
+#endif +#endif
+ return fill_in_hostent(
return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, NULL); canonical, additional,
af,
} @@ -537,3 +553,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r(
@@ -448,3 +467,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r(
errnop, h_errnop, errnop, h_errnop,
NULL); NULL);
} }

View File

@ -1,7 +1,6 @@
From 0d4db3c514f1fe3fe13acb7a34a5a517db9ccb2d Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com> From: Frederic Crozat <fcrozat@suse.com>
Date: Fri, 30 Sep 2011 13:55:31 +0000 Date: Fri, 30 Sep 2011 13:55:31 +0000
Subject: [PATCH] parse /etc/insserv.conf and adds dependencies accordingly Subject: parse /etc/insserv.conf and adds dependencies accordingly
(bnc#721428) (bnc#721428)
--- ---
@ -9,10 +8,10 @@ Subject: [PATCH] parse /etc/insserv.conf and adds dependencies accordingly
1 file changed, 104 insertions(+) 1 file changed, 104 insertions(+)
diff --git a/src/core/service.c b/src/core/service.c diff --git a/src/core/service.c b/src/core/service.c
index cf0bbe0..471ce8d 100644 index 3617c24..3c66cdb 100644
--- a/src/core/service.c --- a/src/core/service.c
+++ b/src/core/service.c +++ b/src/core/service.c
@@ -3440,6 +3440,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { @@ -3443,6 +3443,108 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
} }
#ifdef HAVE_SYSV_COMPAT #ifdef HAVE_SYSV_COMPAT
@ -121,7 +120,7 @@ index cf0bbe0..471ce8d 100644
static int service_enumerate(Manager *m) { static int service_enumerate(Manager *m) {
char **p; char **p;
@@ -3600,6 +3702,8 @@ static int service_enumerate(Manager *m) { @@ -3603,6 +3705,8 @@ static int service_enumerate(Manager *m) {
r = 0; r = 0;
@ -130,6 +129,3 @@ index cf0bbe0..471ce8d 100644
finish: finish:
for (i = 0; i < ELEMENTSOF(rcnd_table); i++) for (i = 0; i < ELEMENTSOF(rcnd_table); i++)
--
1.8.1.4

View File

@ -12,7 +12,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it.
2 files changed, 33 insertions(+), 2 deletions(-) 2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/src/core/service.c b/src/core/service.c diff --git a/src/core/service.c b/src/core/service.c
index 5118b06..c13ff35 100644 index a8b0d9d..c357b33 100644
--- a/src/core/service.c --- a/src/core/service.c
+++ b/src/core/service.c +++ b/src/core/service.c
@@ -135,6 +135,7 @@ static void service_init(Unit *u) { @@ -135,6 +135,7 @@ static void service_init(Unit *u) {
@ -68,7 +68,7 @@ index 5118b06..c13ff35 100644
s->guess_main_pid = false; s->guess_main_pid = false;
s->restart = SERVICE_RESTART_NO; s->restart = SERVICE_RESTART_NO;
s->exec_context.ignore_sigpipe = false; s->exec_context.ignore_sigpipe = false;
@@ -2074,7 +2104,7 @@ static void service_enter_running(Service *s, ServiceResult f) { @@ -2077,7 +2107,7 @@ static void service_enter_running(Service *s, ServiceResult f) {
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) && if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
(s->bus_name_good || s->type != SERVICE_DBUS)) { (s->bus_name_good || s->type != SERVICE_DBUS)) {
#ifdef HAVE_SYSV_COMPAT #ifdef HAVE_SYSV_COMPAT
@ -78,7 +78,7 @@ index 5118b06..c13ff35 100644
#endif #endif
service_set_state(s, SERVICE_RUNNING); service_set_state(s, SERVICE_RUNNING);
diff --git a/src/core/service.h b/src/core/service.h diff --git a/src/core/service.h b/src/core/service.h
index d1e53bf..4cd1a79 100644 index 703d3fa..dc52e8c 100644
--- a/src/core/service.h --- a/src/core/service.h
+++ b/src/core/service.h +++ b/src/core/service.h
@@ -176,6 +176,7 @@ struct Service { @@ -176,6 +176,7 @@ struct Service {

View File

@ -11,10 +11,10 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink
create mode 100644 units/var-run.mount create mode 100644 units/var-run.mount
diff --git a/Makefile.am b/Makefile.am diff --git a/Makefile.am b/Makefile.am
index e82d092..38309a9 100644 index 8730f66..b8cf696 100644
--- a/Makefile.am --- a/Makefile.am
+++ b/Makefile.am +++ b/Makefile.am
@@ -406,6 +406,12 @@ dist_systemunit_DATA = \ @@ -409,6 +409,12 @@ dist_systemunit_DATA = \
units/system-update.target \ units/system-update.target \
units/initrd-switch-root.target units/initrd-switch-root.target
@ -27,7 +27,7 @@ index e82d092..38309a9 100644
nodist_systemunit_DATA = \ nodist_systemunit_DATA = \
units/getty@.service \ units/getty@.service \
units/serial-getty@.service \ units/serial-getty@.service \
@@ -4018,6 +4024,9 @@ RUNLEVEL4_TARGET_WANTS += \ @@ -4058,6 +4064,9 @@ RUNLEVEL4_TARGET_WANTS += \
systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service
RUNLEVEL5_TARGET_WANTS += \ RUNLEVEL5_TARGET_WANTS += \
systemd-update-utmp-runlevel.service systemd-update-utmp-runlevel.service

View File

@ -0,0 +1,27 @@
From 9541fe6adff9941e487084c718ff2d46ed2929c6 Mon Sep 17 00:00:00 2001
From: Auke Kok <auke-jan.h.kok@intel.com>
Date: Thu, 9 May 2013 09:39:15 -0700
Subject: [PATCH] systemctl does not expand %u, so revert back to %I
The description field is only displayed by systemctl, and
it can't expand %u properly (it will always display "root").
---
units/user@.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/user@.service.in b/units/user@.service.in
index 3cf1347..ece671d 100644
--- a/units/user@.service.in
+++ b/units/user@.service.in
@@ -6,7 +6,7 @@
# (at your option) any later version.
[Unit]
-Description=User Manager for %u
+Description=User Manager for %I
After=systemd-user-sessions.service
[Service]
--
1.8.1.4

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c43073252a52eb9f9ab9bd698be0192bcb2175ba5daba6057250083dd64e059
size 2149860

3
systemd-204.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:072c393503c7c1e55ca7acf3db659cbd28c7fe5fa94fab3db95360bafd96731b
size 2186264

View File

@ -1,3 +1,49 @@
-------------------------------------------------------------------
Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com
- Update to release 204:
+ systemd-nspawn creates etc/resolv.conf in container if needed.
+ systemd-nspawn will store metadata about container in container
cgroup including its root directory.
+ cgroup hierarchy has been reworked, all objects are now suffxed
(with .session for user sessions, .user for users, .nspawn for
containers). All cgroup names are now escaped to preven
collision of object names.
+ systemctl list-dependencies gained --plain, --reverse, --after
and --before switches.
+ systemd-inhibit shows processes name taking inhibitor lock.
+ nss-myhostname will now resolve "localhost" implicitly.
+ .include is not allowed recursively anymore and only in unit
files. Drop-in files should be favored in most cases.
+ systemd-analyze gained "critical-chain" command, to get slowest
chain of units run during boot-up.
+ systemd-nspawn@.service has been added to easily run nspawn
container for system services. Just start
"systemd-nspawn@foobar.service" and container from
/var/lib/container/foobar" will be booted.
+ systemd-cgls has new --machine parameter to list processes from
one container.
+ ConditionSecurity= can now check for apparmor and SMACK.
+ /etc/systemd/sleep.conf has been introduced to configure which
kernel operation will be execute when "suspend", "hibernate" or
"hybrid-sleep" is requrested. It allow new kernel "freeze"
state to be used too. (This setting won't have any effect if
pm-utils is installed).
+ ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
passed argument if applicable.
- Regenerate some patches for this new release.
- Rename hostname-setup-shortname.patch to
ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git
format-patch friendly.
- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to
/dev/nvidia* (bnc#808319).
- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a
configure option.
- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids
expansion errors.
- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del
should be irreversible for reliability.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org

View File

@ -25,7 +25,7 @@
Name: systemd-mini Name: systemd-mini
Url: http://www.freedesktop.org/wiki/Software/systemd Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 202 Version: 204
Release: 0 Release: 0
Summary: A System and Session Manager Summary: A System and Session Manager
License: LGPL-2.1+ License: LGPL-2.1+
@ -137,8 +137,6 @@ Patch18: fix-owner-of-var-log-btmp.patch
# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done
Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch
# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available
Patch19: Ensure-debugshell-has-a-correct-value.patch
# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype # PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype
Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch
# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin
@ -153,8 +151,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch
Patch39: systemd-tmp-safe-defaults.patch Patch39: systemd-tmp-safe-defaults.patch
# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf-<kernel_release> file # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf-<kernel_release> file
Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch
# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname
Patch41: hostname-setup-shortname.patch Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch
# Upstream First - Policy: # Upstream First - Policy:
# Never add any patches to this package without the upstream commit id # Never add any patches to this package without the upstream commit id
@ -168,6 +166,10 @@ Patch24: handle-etc-HOSTNAME.patch
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors.
Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch
# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability.
Patch43: Start-ctrl-alt-del.target-irreversibly.patch
# udev patches # udev patches
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
@ -388,7 +390,6 @@ cp %{SOURCE7} m4/
%patch16 -p1 %patch16 -p1
%patch17 -p1 %patch17 -p1
%patch18 -p1 %patch18 -p1
%patch19 -p1
%patch20 -p1 %patch20 -p1
%patch21 -p1 %patch21 -p1
%patch22 -p1 %patch22 -p1
@ -403,6 +404,8 @@ cp %{SOURCE7} m4/
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%patch42 -p1
%patch43 -p1
%build %build
autoreconf -fiv autoreconf -fiv
@ -428,6 +431,7 @@ export V=1
--with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \
--with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-start=/etc/init.d/boot.local \
--with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \
--with-debug-shell=/bin/bash \
CFLAGS="%{optflags}" CFLAGS="%{optflags}"
make %{?_smp_mflags} make %{?_smp_mflags}
@ -768,6 +772,10 @@ rm -rf %{buildroot}
%{_bindir}/systemd-cgls %{_bindir}/systemd-cgls
%{_bindir}/systemd-cgtop %{_bindir}/systemd-cgtop
%{_bindir}/systemd-cat %{_bindir}/systemd-cat
%dir %{_prefix}/lib/kernel
%dir %{_prefix}/lib/kernel/install.d
%{_prefix}/lib/kernel/install.d/50-depmod.install
%{_prefix}/lib/kernel/install.d/90-loaderentry.install
%dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd
%dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/user
%dir %{_prefix}/lib/systemd/system %dir %{_prefix}/lib/systemd/system

View File

@ -1,3 +1,49 @@
-------------------------------------------------------------------
Wed May 29 10:44:11 CEST 2013 - fcrozat@suse.com
- Update to release 204:
+ systemd-nspawn creates etc/resolv.conf in container if needed.
+ systemd-nspawn will store metadata about container in container
cgroup including its root directory.
+ cgroup hierarchy has been reworked, all objects are now suffxed
(with .session for user sessions, .user for users, .nspawn for
containers). All cgroup names are now escaped to preven
collision of object names.
+ systemctl list-dependencies gained --plain, --reverse, --after
and --before switches.
+ systemd-inhibit shows processes name taking inhibitor lock.
+ nss-myhostname will now resolve "localhost" implicitly.
+ .include is not allowed recursively anymore and only in unit
files. Drop-in files should be favored in most cases.
+ systemd-analyze gained "critical-chain" command, to get slowest
chain of units run during boot-up.
+ systemd-nspawn@.service has been added to easily run nspawn
container for system services. Just start
"systemd-nspawn@foobar.service" and container from
/var/lib/container/foobar" will be booted.
+ systemd-cgls has new --machine parameter to list processes from
one container.
+ ConditionSecurity= can now check for apparmor and SMACK.
+ /etc/systemd/sleep.conf has been introduced to configure which
kernel operation will be execute when "suspend", "hibernate" or
"hybrid-sleep" is requrested. It allow new kernel "freeze"
state to be used too. (This setting won't have any effect if
pm-utils is installed).
+ ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
passed argument if applicable.
- Regenerate some patches for this new release.
- Rename hostname-setup-shortname.patch to
ensure-shortname-is-set-as-hostname-bnc-820213.patch to be git
format-patch friendly.
- Update apply-ACL-for-nvidia-device-nodes.patch to apply ACL to
/dev/nvidia* (bnc#808319).
- Remove Ensure-debugshell-has-a-correct-value.patch, doable with a
configure option.
- Add systemctl-does-not-expand-u-so-revert-back-to-I.patch: avoids
expansion errors.
- Add Start-ctrl-alt-del.target-irreversibly.patch: ctrl-alt-del
should be irreversible for reliability.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org Tue May 28 03:24:39 UTC 2013 - crrodriguez@opensuse.org

View File

@ -23,7 +23,7 @@
Name: systemd Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 202 Version: 204
Release: 0 Release: 0
Summary: A System and Session Manager Summary: A System and Session Manager
License: LGPL-2.1+ License: LGPL-2.1+
@ -132,8 +132,6 @@ Patch18: fix-owner-of-var-log-btmp.patch
# PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done
Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch
# PATCH-FIX-OPENSUSE Ensure-debugshell-has-a-correct-value.patch fcrozat@suse.com bnc#789052 -- use bash if sushell isn't available
Patch19: Ensure-debugshell-has-a-correct-value.patch
# PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype # PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype
Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch
# PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin
@ -148,8 +146,8 @@ Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch
Patch39: systemd-tmp-safe-defaults.patch Patch39: systemd-tmp-safe-defaults.patch
# PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf-<kernel_release> file # PATCH-FIX-OPENSUSE sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf-<kernel_release> file
Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.patch
# PATCH-FIX-OPENSUSE hostname-setup-shortname.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname
Patch41: hostname-setup-shortname.patch Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch
# Upstream First - Policy: # Upstream First - Policy:
# Never add any patches to this package without the upstream commit id # Never add any patches to this package without the upstream commit id
@ -163,6 +161,10 @@ Patch24: handle-etc-HOSTNAME.patch
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
# PATCH-FIX-UPSTREAM systemctl-does-not-expand-u-so-revert-back-to-I.patch fcrozat@suse.com -- avoids expansion errors.
Patch42: systemctl-does-not-expand-u-so-revert-back-to-I.patch
# PATCH-FIX-UPSTREAM Start-ctrl-alt-del.target-irreversibly.patch fcrozat@suse.com -- ctrl-alt-del should be irreversible for reliability.
Patch43: Start-ctrl-alt-del.target-irreversibly.patch
# udev patches # udev patches
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
@ -383,7 +385,6 @@ cp %{SOURCE7} m4/
%patch16 -p1 %patch16 -p1
%patch17 -p1 %patch17 -p1
%patch18 -p1 %patch18 -p1
%patch19 -p1
%patch20 -p1 %patch20 -p1
%patch21 -p1 %patch21 -p1
%patch22 -p1 %patch22 -p1
@ -398,6 +399,8 @@ cp %{SOURCE7} m4/
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%patch42 -p1
%patch43 -p1
%build %build
autoreconf -fiv autoreconf -fiv
@ -423,6 +426,7 @@ export V=1
--with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \
--with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-start=/etc/init.d/boot.local \
--with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \
--with-debug-shell=/bin/bash \
CFLAGS="%{optflags}" CFLAGS="%{optflags}"
make %{?_smp_mflags} make %{?_smp_mflags}
@ -763,6 +767,10 @@ rm -rf %{buildroot}
%{_bindir}/systemd-cgls %{_bindir}/systemd-cgls
%{_bindir}/systemd-cgtop %{_bindir}/systemd-cgtop
%{_bindir}/systemd-cat %{_bindir}/systemd-cat
%dir %{_prefix}/lib/kernel
%dir %{_prefix}/lib/kernel/install.d
%{_prefix}/lib/kernel/install.d/50-depmod.install
%{_prefix}/lib/kernel/install.d/90-loaderentry.install
%dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd
%dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/user
%dir %{_prefix}/lib/systemd/system %dir %{_prefix}/lib/systemd/system