Accepting request 241980 from Base:System

1

OBS-URL: https://build.opensuse.org/request/show/241980
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=194
This commit is contained in:
Stephan Kulow 2014-07-23 20:06:11 +00:00 committed by Git OBS Bridge
commit f29f1b4b31
19 changed files with 1049 additions and 82 deletions

View File

@ -0,0 +1,46 @@
From be8f4a9fa732d61e845e1ab1a62ac3a6b368d3a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sat, 19 Jul 2014 19:46:04 -0400
Subject: [PATCH] bash-completion: -p option for journalctl
---
shell-completion/bash/journalctl | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git shell-completion/bash/journalctl shell-completion/bash/journalctl
index e4b2f4a..14dcd22 100644
--- shell-completion/bash/journalctl
+++ shell-completion/bash/journalctl
@@ -35,6 +35,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
_UDEV_{SYSNAME,DEVNODE,DEVLINK}
__CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP)
+__syslog_priorities=(emerg alert crit err warning notice info debug)
+
_journalctl() {
local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
local -A OPTS=(
@@ -44,8 +46,8 @@ _journalctl() {
--no-tail -q --quiet --setup-keys --this-boot --verify
--version --list-catalog --update-catalog --list-boots'
[ARG]='-b --boot --this-boot -D --directory --file -F --field
- -o --output -u --unit --user-unit'
- [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until
+ -o --output -u --unit --user-unit -p --priority'
+ [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until
--verify-key'
)
@@ -68,6 +70,9 @@ _journalctl() {
--field|-F)
comps=${__journal_fields[*]}
;;
+ --priority|-p)
+ comps=${__syslog_priorities[*]}
+ ;;
--unit|-u)
comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null)
;;
--
1.7.9.2

View File

@ -0,0 +1,34 @@
From 01c3322e017989d25f7b4b51268245d5315ae678 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Fri, 18 Jul 2014 21:44:36 -0400
Subject: [PATCH] compress: fix return value
---
src/journal/compress.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git src/journal/compress.c src/journal/compress.c
index 316c1a6..ee18bc8 100644
--- src/journal/compress.c
+++ src/journal/compress.c
@@ -132,7 +132,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size,
space = MIN(src_size * 2, dst_max ?: (uint64_t) -1);
if (!greedy_realloc(dst, dst_alloc_size, space, 1))
- return false;
+ return -ENOMEM;
s.next_in = src;
s.avail_in = src_size;
@@ -158,7 +158,7 @@ int decompress_blob_xz(const void *src, uint64_t src_size,
used = space - s.avail_out;
space = MIN(2 * space, dst_max ?: (uint64_t) -1);
if (!greedy_realloc(dst, dst_alloc_size, space, 1))
- return false;
+ return -ENOMEM;
s.avail_out = space - used;
s.next_out = *dst + used;
--
1.7.9.2

View File

@ -1,35 +0,0 @@
bnc#880438 - systemd-detect-virt doesn't work on System z
--- systemd-210/src/shared/virt.c
+++ systemd-210/src/shared/virt.c 2014-06-26 07:55:30.081608729 +0000
@@ -196,6 +196,30 @@
} else
return r;
+#if defined(__s390x__)
+ /* First layer virtualization (PR/SM) is always present on s390x */
+ _id = "PR/SM";
+ r = 1;
+
+ /* Check for second layer virtualization */
+ _cleanup_fclose_ FILE *f = NULL;
+ char line[LINE_MAX];
+ f = fopen("/proc/sysinfo", "re");
+ if (f) {
+ FOREACH_LINE(line, f, return -errno) {
+ if (startswith(line, "VM00 Control Program:")) {
+ if (strstr(line,"z/VM"))
+ _id = "z/VM";
+ else if (strstr(line,"KVM/Linux"))
+ _id = "KVM";
+ break;
+ }
+ }
+ }
+
+ goto finish;
+#endif
+
/* this will set _id to "other" and return 0 for unknown hypervisors */
r = detect_vm_cpuid(&_id);
if (r != 0)

View File

@ -0,0 +1,33 @@
From a71516dfd1858f37712ef52a288bf5fb274383e0 Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com>
Date: Thu, 17 Jul 2014 11:25:37 +0200
Subject: [PATCH] detect-virt: Fix Xen domU discovery
The conditional for detection xen virtualization contained a little mistake.
It is checking for i to be empty: 'if (!i) {', but it must check for cap instead,
because: 'cap = strsep(&i, ",")' will set cap to the discovered value and i to
the next value after the separator.
Hence, i would be empty, if there is only control_d in domcap, leading to a wrong
domU detection.
https://bugs.freedesktop.org/show_bug.cgi?id=77271
---
src/shared/virt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git src/shared/virt.c src/shared/virt.c
index 774915f..20a8d7c 100644
--- src/shared/virt.c
+++ src/shared/virt.c
@@ -173,7 +173,7 @@ int detect_vm(const char **id) {
if (streq(cap, "control_d"))
break;
- if (!i) {
+ if (!cap) {
_id = "xen";
r = 1;
}
--
1.7.9.2

View File

@ -1,17 +0,0 @@
Fix upstream patch patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch
of the commit 37287585b6ba9a55065c8f94458f6db3c0abe0af
---
systemd-210/src/shared/virt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- systemd-210/src/shared/virt.c
+++ systemd-210/src/shared/virt.c 2014-07-17 07:25:12.169628255 +0000
@@ -174,7 +174,7 @@
if (streq(cap, "control_d"))
break;
- if (!i) {
+ if (!cap) {
_id = "xen";
r = 1;
}

View File

@ -0,0 +1,72 @@
From f41925b4e442a34c93ad120ef1426c974a047ed1 Mon Sep 17 00:00:00 2001
From: Thomas Blume <Thomas.Blume@suse.com>
Date: Fri, 18 Jul 2014 09:13:36 -0400
Subject: [PATCH] systemd-detect-virt: detect s390 virtualization
A system that is running on a logical partition (LPAR) provided by
PR/SM has access to physical hardware (except CPU). It is true that
PR/SM abstracts the hardware, but only for sharing purposes.
Details are statet at:
http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm
-->--
In other words, PR/SM transforms physical resources into virtual resources so
that many logical partitions can share the same physical resources.
--<--
Still, from the OS point of view, the shared virtual resource is real
hardware. ConditionVirtualization must be set to false if the OS runs
directly on PR/SM (e.g. in an LPAR).
[zj: reorder code so that variables are not allocated when #if-def is
false. Add commit message.]
---
man/systemd.unit.xml | 1 +
src/shared/virt.c | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git man/systemd.unit.xml man/systemd.unit.xml
index 6447584..86a8cbb 100644
--- man/systemd.unit.xml
+++ man/systemd.unit.xml
@@ -996,6 +996,7 @@
virtualization solution, or one of
<varname>qemu</varname>,
<varname>kvm</varname>,
+ <varname>zvm</varname>,
<varname>vmware</varname>,
<varname>microsoft</varname>,
<varname>oracle</varname>,
diff --git src/shared/virt.c src/shared/virt.c
index 20a8d7c..b436895 100644
--- src/shared/virt.c
+++ src/shared/virt.c
@@ -220,6 +220,23 @@ int detect_vm(const char **id) {
goto finish;
}
+#if defined(__s390__)
+ {
+ _cleanup_free_ char *t = NULL;
+
+ r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t);
+ if (r >= 0) {
+ if (streq(t, "z/VM"))
+ _id = "zvm";
+ else
+ _id = "kvm";
+ r = 1;
+
+ goto finish;
+ }
+ }
+#endif
+
r = 0;
finish:
--
1.7.9.2

View File

@ -0,0 +1,92 @@
Based on 6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Mon, 3 Mar 2014 19:49:40 -0500
Subject: [PATCH] Be more verbose when bind or listen fails
Also be more verbose in devnode_acl_all().
---
src/core/manager.c | 2 +-
src/journal/journald-native.c | 2 +-
src/journal/journald-stream.c | 4 ++--
src/journal/journald-syslog.c | 2 +-
src/login/logind-acl.c | 5 ++++-
src/shared/ask-password-api.c | 2 +-
6 files changed, 10 insertions(+), 7 deletions(-)
--- src/core/manager.c
+++ src/core/manager.c 2014-07-21 10:57:20.286367050 +0000
@@ -571,7 +571,7 @@ static int manager_setup_notify(Manager
r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1));
if (r < 0) {
- log_error("bind() failed: %m");
+ log_error("bind(@%s) failed: %m", sa.un.sun_path+1);
return -errno;
}
--- src/journal/journald-native.c
+++ src/journal/journald-native.c 2014-07-21 00:00:00.000000000 +0000
@@ -405,7 +405,7 @@ int server_open_native_socket(Server*s)
r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
if (r < 0) {
- log_error("bind() failed: %m");
+ log_error("bind(%s) failed: %m", sa.un.sun_path);
return -errno;
}
--- src/journal/journald-stream.c
+++ src/journal/journald-stream.c 2014-07-21 00:00:00.000000000 +0000
@@ -447,14 +447,14 @@ int server_open_stdout_socket(Server *s)
r = bind(s->stdout_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
if (r < 0) {
- log_error("bind() failed: %m");
+ log_error("bind(%s) failed: %m", sa.un.sun_path);
return -errno;
}
chmod(sa.un.sun_path, 0666);
if (listen(s->stdout_fd, SOMAXCONN) < 0) {
- log_error("listen() failed: %m");
+ log_error("listen(%s) failed: %m", sa.un.sun_path);
return -errno;
}
} else
--- src/journal/journald-syslog.c
+++ src/journal/journald-syslog.c 2014-07-21 00:00:00.000000000 +0000
@@ -437,7 +437,7 @@ int server_open_syslog_socket(Server *s)
r = bind(s->syslog_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
if (r < 0) {
- log_error("bind() failed: %m");
+ log_error("bind(%s) failed: %m", sa.un.sun_path);
return -errno;
}
--- src/login/logind-acl.c
+++ src/login/logind-acl.c 2014-07-21 10:59:04.986235573 +0000
@@ -277,7 +277,10 @@ int devnode_acl_all(struct udev *udev,
SET_FOREACH(n, nodes, i) {
int k;
- log_debug("Fixing up ACLs at %s for seat %s", n, seat);
+ log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)",
+ n, seat, old_uid, new_uid,
+ del ? " del" : "", add ? " add" : "");
+
k = devnode_acl(n, flush, del, old_uid, add, new_uid);
if (k < 0)
r = k;
--- src/shared/ask-password-api.c
+++ src/shared/ask-password-api.c 2014-07-21 00:00:00.000000000 +0000
@@ -275,7 +275,7 @@ static int create_socket(char **name) {
if (r < 0) {
r = -errno;
- log_error("bind() failed: %m");
+ log_error("bind(%s) failed: %m", sa.un.sun_path);
goto fail;
}

View File

@ -0,0 +1,109 @@
From 4e6029435111adcad71489aca2dd68bc65aeffd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sat, 19 Jul 2014 21:05:07 -0400
Subject: [PATCH] journalctl,man: allow + only between terms
https://bugzilla.redhat.com/show_bug.cgi?id=1110712
---
man/journalctl.xml | 19 +++++++++++++++----
src/journal/journalctl.c | 20 +++++++++++++++++---
2 files changed, 32 insertions(+), 7 deletions(-)
diff --git man/journalctl.xml man/journalctl.xml
index 47b5a05..df9c794 100644
--- man/journalctl.xml
+++ man/journalctl.xml
@@ -84,10 +84,11 @@
field, then they are automatically matched as
alternatives, i.e. the resulting output will show
entries matching any of the specified matches for the
- same field. Finally, if the character
- <literal>+</literal> appears as a separate word on the
- command line, all matches before and after are combined
- in a disjunction (i.e. logical OR).</para>
+ same field. Finally, the character
+ <literal>+</literal> may appears as a separate word
+ between other terms on the command line. This causes
+ all matches before and after to be combined in a
+ disjunction (i.e. logical OR).</para>
<para>As shortcuts for a few types of field/value
matches, file paths may be specified. If a file path
@@ -98,11 +99,21 @@
<literal>_KERNEL_DEVICE=</literal> match for the
device.</para>
+ <para>Additional contraints may be added using options
+ <option>--boot</option>, <option>--unit=</option>,
+ etc, to futher limit what entries will be shown
+ (logical AND).</para>
+
<para>Output is interleaved from all accessible
journal files, whether they are rotated or currently
being written, and regardless of whether they belong to the
system itself or are accessible user journals.</para>
+ <para>The set of journal files which will be used
+ can be modified using the <option>--user</option>,
+ <option>--system</option>, <option>--directory</option>,
+ and <option>--file</option> options, see below.</para>
+
<para>All users are granted access to their private
per-user journals. However, by default, only root and
users who are members of the <literal>systemd-journal</literal>
diff --git src/journal/journalctl.c src/journal/journalctl.c
index 92e8286..7aedbf0 100644
--- src/journal/journalctl.c
+++ src/journal/journalctl.c
@@ -699,15 +699,20 @@ static int generate_new_id128(void) {
static int add_matches(sd_journal *j, char **args) {
char **i;
+ bool have_term = false;
assert(j);
STRV_FOREACH(i, args) {
int r;
- if (streq(*i, "+"))
+ if (streq(*i, "+")) {
+ if (!have_term)
+ break;
r = sd_journal_add_disjunction(j);
- else if (path_is_absolute(*i)) {
+ have_term = false;
+
+ } else if (path_is_absolute(*i)) {
_cleanup_free_ char *p, *t = NULL, *t2 = NULL;
const char *path;
_cleanup_free_ char *interpreter = NULL;
@@ -756,8 +761,12 @@ static int add_matches(sd_journal *j, char **args) {
r = sd_journal_add_match(j, t, 0);
if (t2)
r = sd_journal_add_match(j, t2, 0);
- } else
+ have_term = true;
+
+ } else {
r = sd_journal_add_match(j, *i, 0);
+ have_term = true;
+ }
if (r < 0) {
log_error("Failed to add match '%s': %s", *i, strerror(-r));
@@ -765,6 +774,11 @@ static int add_matches(sd_journal *j, char **args) {
}
}
+ if (!strv_isempty(args) && !have_term) {
+ log_error("\"+\" can only be used between terms");
+ return -EINVAL;
+ }
+
return 0;
}
--
1.7.9.2

View File

@ -0,0 +1,41 @@
From f0ea29eaeb3449822bfbdfa839b00e323dfc523e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sun, 20 Jul 2014 19:47:42 -0400
Subject: [PATCH] Add quotes to warning message
The message for SYSTEMD_LOG_LEVEL= looked a bit strange.
---
src/shared/log.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git src/shared/log.c src/shared/log.c
index 9039db3..3941e3e 100644
--- src/shared/log.c
+++ src/shared/log.c
@@ -884,19 +884,19 @@ void log_parse_environment(void) {
e = secure_getenv("SYSTEMD_LOG_TARGET");
if (e && log_set_target_from_string(e) < 0)
- log_warning("Failed to parse log target %s. Ignoring.", e);
+ log_warning("Failed to parse log target '%s'. Ignoring.", e);
e = secure_getenv("SYSTEMD_LOG_LEVEL");
if (e && log_set_max_level_from_string(e) < 0)
- log_warning("Failed to parse log level %s. Ignoring.", e);
+ log_warning("Failed to parse log level '%s'. Ignoring.", e);
e = secure_getenv("SYSTEMD_LOG_COLOR");
if (e && log_show_color_from_string(e) < 0)
- log_warning("Failed to parse bool %s. Ignoring.", e);
+ log_warning("Failed to parse bool '%s'. Ignoring.", e);
e = secure_getenv("SYSTEMD_LOG_LOCATION");
if (e && log_show_location_from_string(e) < 0)
- log_warning("Failed to parse bool %s. Ignoring.", e);
+ log_warning("Failed to parse bool '%s'. Ignoring.", e);
}
LogTarget log_get_target(void) {
--
1.7.9.2

View File

@ -0,0 +1,111 @@
From b87c2aa6bf1247c298c9bd9f56b9b56a87836b2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 7 Jan 2014 00:00:05 -0500
Subject: [PATCH] systemd: use pager for --test and --help
---
src/core/main.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git src/core/main.c src/core/main.c
index f9ee297..ae38b43 100644
--- src/core/main.c
+++ src/core/main.c
@@ -50,6 +50,7 @@
#include "conf-parser.h"
#include "missing.h"
#include "label.h"
+#include "pager.h"
#include "build.h"
#include "strv.h"
#include "def.h"
@@ -94,6 +95,7 @@ static int arg_crash_chvt = -1;
static bool arg_confirm_spawn = false;
static ShowStatus arg_show_status = _SHOW_STATUS_UNSET;
static bool arg_switched_root = false;
+static int arg_no_pager = -1;
static char ***arg_join_controllers = NULL;
static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
@@ -117,6 +119,14 @@ static bool arg_default_memory_accounting = false;
static void nop_handler(int sig) {}
+static void pager_open_if_enabled(void) {
+
+ if (arg_no_pager <= 0)
+ return;
+
+ pager_open(false);
+}
+
noreturn static void crash(int sig) {
if (getpid() != 1)
@@ -704,6 +714,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_SYSTEM,
ARG_USER,
ARG_TEST,
+ ARG_NO_PAGER,
ARG_VERSION,
ARG_DUMP_CONFIGURATION_ITEMS,
ARG_DUMP_CORE,
@@ -725,6 +736,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "system", no_argument, NULL, ARG_SYSTEM },
{ "user", no_argument, NULL, ARG_USER },
{ "test", no_argument, NULL, ARG_TEST },
+ { "no-pager", no_argument, NULL, ARG_NO_PAGER },
{ "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, ARG_VERSION },
{ "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS },
@@ -832,6 +844,12 @@ static int parse_argv(int argc, char *argv[]) {
case ARG_TEST:
arg_action = ACTION_TEST;
+ if (arg_no_pager < 0)
+ arg_no_pager = true;
+ break;
+
+ case ARG_NO_PAGER:
+ arg_no_pager = true;
break;
case ARG_VERSION:
@@ -912,6 +930,8 @@ static int parse_argv(int argc, char *argv[]) {
case 'h':
arg_action = ACTION_HELP;
+ if (arg_no_pager < 0)
+ arg_no_pager = true;
break;
case 'D':
@@ -984,6 +1004,7 @@ static int help(void) {
"Starts up and maintains the system or user services.\n\n"
" -h --help Show this help\n"
" --test Determine startup sequence, dump it and exit\n"
+ " --no-pager Do not pipe output into a pager\n"
" --dump-configuration-items Dump understood unit configuration items\n"
" --unit=UNIT Set default unit\n"
" --system Run a system instance, even if PID != 1\n"
@@ -1452,6 +1473,8 @@ int main(int argc, char *argv[]) {
goto finish;
}
+ pager_open_if_enabled();
+
if (arg_action == ACTION_HELP) {
retval = help();
goto finish;
@@ -1798,6 +1821,8 @@ int main(int argc, char *argv[]) {
}
finish:
+ pager_close();
+
if (m) {
manager_free(m);
m = NULL;
--
1.7.9.2

View File

@ -0,0 +1,57 @@
From 1cd974edfd7cd91dcdf321e7202bd220bac50a2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Fri, 18 Jul 2014 17:05:18 -0400
Subject: [PATCH] systemd: return the first error from manager_startup()
---
src/core/manager.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git src/core/manager.c src/core/manager.c
index 2e63c5e..0653d7e 100644
--- src/core/manager.c
+++ src/core/manager.c
@@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
dual_timestamp_get(&m->units_load_finish_timestamp);
/* Second, deserialize if there is something to deserialize */
- if (serialization) {
- q = manager_deserialize(m, serialization, fds);
- if (q < 0)
- r = q;
- }
+ if (serialization)
+ r = manager_deserialize(m, serialization, fds);
/* Any fds left? Find some unit which wants them. This is
* useful to allow container managers to pass some file
@@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
* socket-based activation of entire containers. */
if (fdset_size(fds) > 0) {
q = manager_distribute_fds(m, fds);
- if (q < 0)
+ if (q < 0 && r == 0)
r = q;
}
/* We might have deserialized the notify fd, but if we didn't
* then let's create the bus now */
- manager_setup_notify(m);
+ q = manager_setup_notify(m);
+ if (q < 0 && r == 0)
+ r = q;
/* We might have deserialized the kdbus control fd, but if we
* didn't, then let's create the bus now. */
@@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
/* Third, fire things up! */
q = manager_coldplug(m);
- if (q < 0)
+ if (q < 0 && r == 0)
r = q;
if (serialization) {
--
1.7.9.2

View File

@ -0,0 +1,29 @@
Index: systemd-210/src/udev/rule_generator/write_net_rules
===================================================================
--- systemd-210.orig/src/udev/rule_generator/write_net_rules
+++ systemd-210/src/udev/rule_generator/write_net_rules
@@ -89,6 +89,12 @@ choose_rules_file
# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces
if [ "$MATCHADDR" ]; then
+ # Check if MACADDR doesn't exist already in the generated rules
+ MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 2>/dev/null || true)"
+ if [ "$MAC" == "$MATCHADDR" ]; then
+ unlock_rules_file
+ exit 0
+ fi
match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\""
fi
@@ -101,8 +107,9 @@ if [ "$MATCHDEVID" ]; then
fi
if [ "$MATCHID" ]; then
- ID="$(find_all_rules 'KERNELS==' "$MATCHID")"
- if [ "$ID" == "$MATCHID" ]; then
+ # Check if KERNEL doesn't exist already in the generated rules
+ KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")"
+ if [ "$KERNEL" == "$MATCHID" ]; then
unlock_rules_file
exit 0
fi

View File

@ -0,0 +1,159 @@
Use and set default logging console for both journald and kernel messages
---
src/journal/journald-console.c | 96 +++++++++++++++++++++++++++++++++++++++++
src/journal/journald-console.h | 4 +
src/journal/journald-server.c | 5 ++
3 files changed, 105 insertions(+)
--- src/journal/journald-console.c
+++ src/journal/journald-console.c 2014-07-23 09:08:29.522235688 +0000
@@ -23,6 +23,14 @@
#include <fcntl.h>
#include <unistd.h>
#include <sys/socket.h>
+#ifdef HAVE_SYSV_COMPAT
+# include <linux/tiocl.h>
+# include <linux/vt.h>
+# include <sys/ioctl.h>
+# include <sys/klog.h>
+# include <errno.h>
+# include "util.h"
+#endif
#include "fileio.h"
#include "journald-server.h"
@@ -43,6 +51,74 @@ static bool prefix_timestamp(void) {
return cached_printk_time;
}
+#ifdef HAVE_SYSV_COMPAT
+void defaul_tty_path(Server *s)
+{
+ static const char list[] = "/dev/tty10\0" "/dev/console\0";
+ const char *vc;
+
+ if (s->tty_path)
+ return;
+
+ NULSTR_FOREACH(vc, list) {
+ _cleanup_close_ int fd = -1;
+
+ if (access(vc, F_OK) < 0)
+ continue;
+
+ fd = open_terminal(vc, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ continue;
+
+ s->tty_path = strdup(vc);
+ break;
+ }
+}
+
+void klogconsole(Server *s)
+{
+ _cleanup_free_ char *klogconsole_params = NULL;
+ _cleanup_close_ int fd = -1;
+ const char *vc = s->tty_path;
+ const char *num;
+ int tiocl[2];
+ int r;
+
+ if (!vc || *vc == 0 || !strneq("/dev/tty", vc, 8))
+ return;
+
+ num = vc + strcspn(vc, "0123456789");
+ if (safe_atoi(num, &r) < 0)
+ return;
+
+ if (access(vc, F_OK) < 0)
+ return false;
+
+ fd = open_terminal(vc, O_RDWR|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ return;
+
+ tiocl[0] = TIOCL_SETKMSGREDIRECT;
+ tiocl[1] = r;
+
+ if (ioctl(fd, TIOCLINUX, tiocl) < 0)
+ return;
+
+ zero(klogconsole_params);
+ r = parse_env_file("/etc/sysconfig/boot", NEWLINE,
+ "KLOGCONSOLE_PARAMS", &klogconsole_params,
+ NULL);
+ if (r < 0)
+ return;
+ if (!klogconsole_params || *klogconsole_params == 0)
+ return;
+
+ num = klogconsole_params + strcspn(klogconsole_params, "0123456789");
+ if (safe_atoi(num, &r) == 0)
+ klogctl(8, 0, r);
+}
+#endif
+
void server_forward_console(
Server *s,
int priority,
@@ -63,6 +139,10 @@ void server_forward_console(
if (LOG_PRI(priority) > s->max_level_console)
return;
+
+ /* Do not write security/authorization (private) messages to console */
+ if (priority & LOG_AUTHPRIV)
+ return;
/* First: timestamp */
if (prefix_timestamp()) {
@@ -101,7 +181,23 @@ void server_forward_console(
fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (fd < 0) {
log_debug("Failed to open %s for logging: %m", tty);
+#ifdef HAVE_SYSV_COMPAT
+ if (fd != -ENOENT && fd != -ENODEV)
+ return;
+ if (tty != s->tty_path)
+ return;
+ if (!streq("/dev/console", tty)) {
+ if (s->tty_path)
+ free(s->tty_path);
+ s->tty_path = NULL;
+ tty = "/dev/console";
+ fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd < 0)
+ return;
+ }
+#else
return;
+#endif
}
if (writev(fd, iovec, n) < 0)
--- src/journal/journald-console.h
+++ src/journal/journald-console.h 2014-07-22 11:20:52.754235644 +0000
@@ -24,3 +24,7 @@
#include "journald-server.h"
void server_forward_console(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred);
+#ifdef HAVE_SYSV_COMPAT
+void klogconsole(Server *s);
+void defaul_tty_path(Server *s);
+#endif
--- src/journal/journald-server.c
+++ src/journal/journald-server.c 2014-07-22 11:16:45.966236859 +0000
@@ -1509,6 +1509,11 @@ int server_init(Server *s) {
server_parse_config_file(s);
server_parse_proc_cmdline(s);
+ defaul_tty_path(s);
+
+ if (s->tty_path)
+ klogconsole(s);
+
if (!!s->rate_limit_interval ^ !!s->rate_limit_burst) {
log_debug("Setting both rate limit interval and burst from %llu,%u to 0,0",
(long long unsigned) s->rate_limit_interval,

View File

@ -18,3 +18,10 @@ addFilter("libudev-mini.*shlib-policy-name-error.*")
addFilter("nss-myhostname.*shlib-policy-name-error.*")
addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*")
addFilter(".*files-duplicate.*/systemd-logger.*")
addFilter(".*missing-call-to-setgroups-before-setuid.*")
addFilter(".*missing-call-to-chdir-with-chroot.*")
addFilter(".*systemd-service-without-service.*")
addFilter(".*shlib-policy-missing-suffix.*")
addFilter(".*suse-missing-rclink.*")

View File

@ -1,3 +1,55 @@
-------------------------------------------------------------------
Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com
- Enable better checks in write_net_rules to skip adding duplicated
entries in the generate rules (bnc#888178).
Add 1053-better-checks-in-write_net_rules.patch
-------------------------------------------------------------------
Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de
- Change patch set-and-use-default-logconsole.patch to avoid to
write security/authorization (private) messages to console
-------------------------------------------------------------------
Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de
- Add patch set-and-use-default-logconsole.patch to use and set
the default logging console for both journald and kernel messages
-------------------------------------------------------------------
Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de
- Add upstream patches
0001-bash-completion-p-option-for-journalctl.patch
0002-journalctl-man-allow-only-between-terms.patch
0003-systemd-use-pager-for-test-and-help.patch
-------------------------------------------------------------------
Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de
- Use verify scripts and add permission files for systemd logger
- Avoid useless warning about static systemd unit files
- Make pam file a config file
- Remove non-break-space from this changelog
-------------------------------------------------------------------
Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de
- Add upstream patches
0001-compress-fix-return-value.patch
0002-Be-more-verbose-when-bind-or-listen-fails.patch
0003-Add-quotes-to-warning-message.patch
0004-systemd-return-the-first-error-from-manager_startup.patch
-------------------------------------------------------------------
Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de
- Replace patch 0001-fix-only-discover-Xen-domU.patch with
upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch
- Replace patch 0001-detect-s390-virt.patch with upstream
patch 0001-systemd-detect-virt-detect-s390-virtualization.patch
-------------------------------------------------------------------
Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de
@ -2504,15 +2556,15 @@ Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com
may now be passed more than once. 'systemctl list-sockets' has
been added.
+ systemd gained a new unit 'systemd-static-nodes.service'
    that generates static device nodes earlier during boot, and
    can run in conjunction with udev.
that generates static device nodes earlier during boot, and
can run in conjunction with udev.
+ systemd-nspawn now places all containers in the new /machine
    top-level cgroup directory in the name=systemd hierarchy.
top-level cgroup directory in the name=systemd hierarchy.
+ bootchart can now store its data in the journal.
+ journactl can now take multiple --unit= and --user-unit=
    switches.
switches.
+ The cryptsetup logic now understands the "luks.key=" kernel
    command line switch. If a configured key file is missing, it
line switch. If a configured key file is missing, it
will fallback to prompting the user.
- Rebase some patches
- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to

View File

@ -32,6 +32,7 @@
%define has_efi 0
%endif
%bcond_with udevsettle
%bcond_with permission
Name: systemd-mini
Url: http://www.freedesktop.org/wiki/Software/systemd
@ -577,8 +578,8 @@ Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch
Patch278: 0001-core-fix-invalid-free-in-killall.patch
# PATCH-FIX-UPSTREAM added at 2014/06/17
Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch
# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438)
Patch280: 0001-detect-s390-virt.patch
# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438)
Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch
# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available
Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch
# PATCH-FIX-UPSTREAM added at 2014/06/24
@ -705,8 +706,24 @@ Patch341: 0001-po-add-Ukrainian-translation.patch
Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch
# PATCH-FIX-UPSTREAM added at 2014/07/17
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch
Patch344: 0001-fix-only-discover-Xen-domU.patch
# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch
Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch345: 0001-compress-fix-return-value.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch347: 0003-Add-quotes-to-warning-message.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch349: 0001-bash-completion-p-option-for-journalctl.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch350: 0002-journalctl-man-allow-only-between-terms.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
# PATCH-FIX-SUSE
Patch352: set-and-use-default-logconsole.patch
# UDEV PATCHES
# ============
@ -818,6 +835,8 @@ Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patc
Patch1051: 1051-check-if-NAME-has-a-value.patch
# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
Patch1053: 1053-better-checks-in-write_net_rules.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -992,6 +1011,7 @@ Requires(pre): /usr/sbin/groupadd
Requires(post): /usr/bin/getent
Requires(post): /usr/bin/setfacl
Requires(post): /usr/bin/systemctl
Requires(post): permissions
Conflicts: otherproviders(syslog)
%description logger
@ -1255,7 +1275,7 @@ cp %{SOURCE7} m4/
%patch277 -p0
%patch278 -p0
%patch279 -p0
%patch280 -p1
%patch280 -p0
%patch281 -p1
%patch282 -p0
%patch283 -p0
@ -1319,7 +1339,15 @@ cp %{SOURCE7} m4/
%patch341 -p0
%patch342 -p0
%patch343 -p0
%patch344 -p1
%patch344 -p0
%patch345 -p0
%patch346 -p0
%patch347 -p0
%patch348 -p0
%patch349 -p0
%patch350 -p0
%patch351 -p0
%patch352 -p0
# udev patches
%patch1001 -p1
@ -1381,6 +1409,7 @@ cp %{SOURCE7} m4/
%patch1050 -p1
%patch1051 -p1
%patch1052 -p0
%patch1053 -p1
# ensure generate files are removed
rm -f units/emergency.service
@ -1408,6 +1437,14 @@ do
done
%endif
#
# In combination with Patch352 set-and-use-default-logconsole.patch
# Ensure that journald log on tty10
#
%ifarch %ix86 x86_64 x32
sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf
%endif
%build
cflags ()
{
@ -1751,6 +1788,17 @@ do
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
done
# Add permission files for logger
%if %{with permission}
mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF'
%{_localstatedir}/log/journal/ root:systemd-journal 2755
EOF
cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF'
%{_localstatedir}/log/journal/ root:systemd-journal 2755
EOF
%endif
%find_lang systemd
%pre
@ -1922,11 +1970,19 @@ fi
%postun -n libgudev-1_0-0 -p /sbin/ldconfig
%if %{with permission}
%verifyscript logger
%verify_permissions -e %{_localstatedir}/log/journal
%endif
%pre logger
getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
exit 0
%post logger
%if %{with permission}
%set_permissions %{_localstatedir}/log/journal
%endif
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
if [ "$1" -eq 1 ]; then
@ -1960,7 +2016,7 @@ exit 0
%endif
%files
%files -f systemd.lang
%defattr(-,root,root)
/bin/systemd
/bin/systemd-ask-password
@ -2064,7 +2120,7 @@ exit 0
%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator
%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
/%{_lib}/security/pam_systemd.so
/etc/pam.d/systemd-user
%config /etc/pam.d/systemd-user
%dir %{_libexecdir}/modules-load.d
%dir %{_sysconfdir}/modules-load.d
@ -2132,7 +2188,6 @@ exit 0
%exclude %{_datadir}/systemd/gatewayd
%endif
%{_datadir}/systemd
%{_datadir}/locale/*/LC_MESSAGES
%if ! 0%{?bootstrap}
# Packaged in sysvinit subpackage
@ -2329,6 +2384,10 @@ exit 0
%files logger
%defattr(-,root,root)
%if %{with permission}
%config %{_sysconfdir}/permissions.d/systemd-logger
%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid
%endif
%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal
%{_localstatedir}/log/README
/etc/init.d/systemd-journald

View File

@ -18,3 +18,10 @@ addFilter("libudev-mini.*shlib-policy-name-error.*")
addFilter("nss-myhostname.*shlib-policy-name-error.*")
addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")
addFilter(".*script-without-shebang.*/usr/lib/udev/rule_generator.functions.*")
addFilter(".*files-duplicate.*/systemd-logger.*")
addFilter(".*missing-call-to-setgroups-before-setuid.*")
addFilter(".*missing-call-to-chdir-with-chroot.*")
addFilter(".*systemd-service-without-service.*")
addFilter(".*shlib-policy-missing-suffix.*")
addFilter(".*suse-missing-rclink.*")

View File

@ -1,3 +1,55 @@
-------------------------------------------------------------------
Wed Jul 23 09:19:52 UTC 2014 - rmilasan@suse.com
- Enable better checks in write_net_rules to skip adding duplicated
entries in the generate rules (bnc#888178).
Add 1053-better-checks-in-write_net_rules.patch
-------------------------------------------------------------------
Wed Jul 23 09:13:43 UTC 2014 - werner@suse.de
- Change patch set-and-use-default-logconsole.patch to avoid to
write security/authorization (private) messages to console
-------------------------------------------------------------------
Tue Jul 22 11:50:44 UTC 2014 - werner@suse.de
- Add patch set-and-use-default-logconsole.patch to use and set
the default logging console for both journald and kernel messages
-------------------------------------------------------------------
Mon Jul 21 13:22:35 UTC 2014 - werner@suse.de
- Add upstream patches
0001-bash-completion-p-option-for-journalctl.patch
0002-journalctl-man-allow-only-between-terms.patch
0003-systemd-use-pager-for-test-and-help.patch
-------------------------------------------------------------------
Mon Jul 21 12:49:00 UTC 2014 - werner@suse.de
- Use verify scripts and add permission files for systemd logger
- Avoid useless warning about static systemd unit files
- Make pam file a config file
- Remove non-break-space from this changelog
-------------------------------------------------------------------
Mon Jul 21 11:09:44 UTC 2014 - werner@suse.de
- Add upstream patches
0001-compress-fix-return-value.patch
0002-Be-more-verbose-when-bind-or-listen-fails.patch
0003-Add-quotes-to-warning-message.patch
0004-systemd-return-the-first-error-from-manager_startup.patch
-------------------------------------------------------------------
Mon Jul 21 10:42:10 UTC 2014 - werner@suse.de
- Replace patch 0001-fix-only-discover-Xen-domU.patch with
upstream patch 0001-detect-virt-Fix-Xen-domU-discovery.patch
- Replace patch 0001-detect-s390-virt.patch with upstream
patch 0001-systemd-detect-virt-detect-s390-virtualization.patch
-------------------------------------------------------------------
Thu Jul 17 09:30:28 UTC 2014 - werner@suse.de
@ -2504,15 +2556,15 @@ Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com
may now be passed more than once. 'systemctl list-sockets' has
been added.
+ systemd gained a new unit 'systemd-static-nodes.service'
    that generates static device nodes earlier during boot, and
    can run in conjunction with udev.
that generates static device nodes earlier during boot, and
can run in conjunction with udev.
+ systemd-nspawn now places all containers in the new /machine
    top-level cgroup directory in the name=systemd hierarchy.
top-level cgroup directory in the name=systemd hierarchy.
+ bootchart can now store its data in the journal.
+ journactl can now take multiple --unit= and --user-unit=
    switches.
switches.
+ The cryptsetup logic now understands the "luks.key=" kernel
    command line switch. If a configured key file is missing, it
line switch. If a configured key file is missing, it
will fallback to prompting the user.
- Rebase some patches
- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to

View File

@ -30,6 +30,7 @@
%define has_efi 0
%endif
%bcond_with udevsettle
%bcond_with permission
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
@ -572,8 +573,8 @@ Patch277: 0006-log-honour-the-kernel-s-quiet-cmdline-argument.patch
Patch278: 0001-core-fix-invalid-free-in-killall.patch
# PATCH-FIX-UPSTREAM added at 2014/06/17
Patch279: 0003-install-fix-invalid-free-in-unit_file_mask.patch
# PATCH-FIX-SUSE detect virtualization layers on S390 (bnc#880438)
Patch280: 0001-detect-s390-virt.patch
# PATCH-FIX-UPSTREAM detect virtualization layers on S390 (bnc#880438)
Patch280: 0001-systemd-detect-virt-detect-s390-virtualization.patch
# PATCH-FIX-UPSTREAM 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch arvidjaar@gmail.com -- Ensure legacy services are started after network is available
Patch281: 0001-core-sysvcompat-network-should-be-equivalent-to-netw.patch
# PATCH-FIX-UPSTREAM added at 2014/06/24
@ -700,8 +701,24 @@ Patch341: 0001-po-add-Ukrainian-translation.patch
Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch
# PATCH-FIX-UPSTREAM added at 2014/07/17
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
# PATCH-FIX-SUSE Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch
Patch344: 0001-fix-only-discover-Xen-domU.patch
# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-only-discover-Xen-domU.patch
Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch345: 0001-compress-fix-return-value.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch347: 0003-Add-quotes-to-warning-message.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch348: 0004-systemd-return-the-first-error-from-manager_startup.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch349: 0001-bash-completion-p-option-for-journalctl.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch350: 0002-journalctl-man-allow-only-between-terms.patch
# PATCH-FIX-UPSTREAM added at 2014/07/21
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
# PATCH-FIX-SUSE
Patch352: set-and-use-default-logconsole.patch
# UDEV PATCHES
# ============
@ -813,6 +830,8 @@ Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patc
Patch1051: 1051-check-if-NAME-has-a-value.patch
# PATCH-FIX-UPSTREAM 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
Patch1052: 1052-rules-uaccess-add-ID_SOFTWARE_RADIO.patch
# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178)
Patch1053: 1053-better-checks-in-write_net_rules.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -987,6 +1006,7 @@ Requires(pre): /usr/sbin/groupadd
Requires(post): /usr/bin/getent
Requires(post): /usr/bin/setfacl
Requires(post): /usr/bin/systemctl
Requires(post): permissions
Conflicts: otherproviders(syslog)
%description logger
@ -1250,7 +1270,7 @@ cp %{SOURCE7} m4/
%patch277 -p0
%patch278 -p0
%patch279 -p0
%patch280 -p1
%patch280 -p0
%patch281 -p1
%patch282 -p0
%patch283 -p0
@ -1314,7 +1334,15 @@ cp %{SOURCE7} m4/
%patch341 -p0
%patch342 -p0
%patch343 -p0
%patch344 -p1
%patch344 -p0
%patch345 -p0
%patch346 -p0
%patch347 -p0
%patch348 -p0
%patch349 -p0
%patch350 -p0
%patch351 -p0
%patch352 -p0
# udev patches
%patch1001 -p1
@ -1376,6 +1404,7 @@ cp %{SOURCE7} m4/
%patch1050 -p1
%patch1051 -p1
%patch1052 -p0
%patch1053 -p1
# ensure generate files are removed
rm -f units/emergency.service
@ -1403,6 +1432,14 @@ do
done
%endif
#
# In combination with Patch352 set-and-use-default-logconsole.patch
# Ensure that journald log on tty10
#
%ifarch %ix86 x86_64 x32
sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf
%endif
%build
cflags ()
{
@ -1746,6 +1783,17 @@ do
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
done
# Add permission files for logger
%if %{with permission}
mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger <<-'EOF'
%{_localstatedir}/log/journal/ root:systemd-journal 2755
EOF
cat > %{buildroot}%{_sysconfdir}/permissions.d/systemd-logger.paranoid <<-'EOF'
%{_localstatedir}/log/journal/ root:systemd-journal 2755
EOF
%endif
%find_lang systemd
%pre
@ -1917,11 +1965,19 @@ fi
%postun -n libgudev-1_0-0 -p /sbin/ldconfig
%if %{with permission}
%verifyscript logger
%verify_permissions -e %{_localstatedir}/log/journal
%endif
%pre logger
getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
exit 0
%post logger
%if %{with permission}
%set_permissions %{_localstatedir}/log/journal
%endif
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
if [ "$1" -eq 1 ]; then
@ -1955,7 +2011,7 @@ exit 0
%endif
%files
%files -f systemd.lang
%defattr(-,root,root)
/bin/systemd
/bin/systemd-ask-password
@ -2059,7 +2115,7 @@ exit 0
%{_prefix}/lib/systemd/system-generators/systemd-insserv-generator
%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
/%{_lib}/security/pam_systemd.so
/etc/pam.d/systemd-user
%config /etc/pam.d/systemd-user
%dir %{_libexecdir}/modules-load.d
%dir %{_sysconfdir}/modules-load.d
@ -2127,7 +2183,6 @@ exit 0
%exclude %{_datadir}/systemd/gatewayd
%endif
%{_datadir}/systemd
%{_datadir}/locale/*/LC_MESSAGES
%if ! 0%{?bootstrap}
# Packaged in sysvinit subpackage
@ -2324,6 +2379,10 @@ exit 0
%files logger
%defattr(-,root,root)
%if %{with permission}
%config %{_sysconfdir}/permissions.d/systemd-logger
%config %{_sysconfdir}/permissions.d/systemd-logger.paranoid
%endif
%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal
%{_localstatedir}/log/README
/etc/init.d/systemd-journald