forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=736
This commit is contained in:
parent
5c21ff5f53
commit
a6b30b4bff
21
0001-bus-proxyd-fix-incorrect-comparison.patch
Normal file
21
0001-bus-proxyd-fix-incorrect-comparison.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Based on e05aa2e02ba35d8b3741dddb79af3c802308414b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||||
|
Date: Fri, 25 Jul 2014 10:25:06 +0200
|
||||||
|
Subject: [PATCH] bus-proxyd: fix incorrect comparison
|
||||||
|
|
||||||
|
We should be interested in k variable.
|
||||||
|
---
|
||||||
|
src/bus-proxyd/bus-proxyd.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- src/bus-proxyd/bus-proxyd.c
|
||||||
|
+++ src/bus-proxyd/bus-proxyd.c 2014-07-28 09:37:29.274735818 +0000
|
||||||
|
@@ -698,7 +698,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
|
k = sd_bus_send(a, m, NULL);
|
||||||
|
if (k < 0) {
|
||||||
|
- if (r == -ECONNRESET)
|
||||||
|
+ if (k == -ECONNRESET)
|
||||||
|
r = 0;
|
||||||
|
else {
|
||||||
|
r = k;
|
67
0002-shell-completion-prevent-mangling-unit-names.patch
Normal file
67
0002-shell-completion-prevent-mangling-unit-names.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
Based on 6d314eca15f6cbda38d82774b210f784d3d4f52a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Cook <llua@gmx.com>
|
||||||
|
Date: Sat, 26 Jul 2014 11:15:52 -0400
|
||||||
|
Subject: [PATCH] shell-completion: prevent mangling unit names
|
||||||
|
|
||||||
|
Units with literal hex '\xFF' in their names has to be read
|
||||||
|
and printed properly.
|
||||||
|
dev-disk-byx2dlabel-root.device != dev-disk-by\x2dlabel-root.device
|
||||||
|
---
|
||||||
|
shell-completion/zsh/_systemctl.in | 20 ++++++++++----------
|
||||||
|
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git shell-completion/zsh/_systemctl.in shell-completion/zsh/_systemctl.in
|
||||||
|
index d364d17..e681ec6 100644
|
||||||
|
--- shell-completion/zsh/_systemctl
|
||||||
|
+++ shell-completion/zsh/_systemctl
|
||||||
|
@@ -100,7 +100,7 @@ _systemctl_all_units()
|
||||||
|
if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) &&
|
||||||
|
! _retrieve_cache SYS_ALL_UNITS;
|
||||||
|
then
|
||||||
|
- _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) )
|
||||||
|
+ _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) )
|
||||||
|
_store_cache SYS_ALL_UNITS _sys_all_units
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
@@ -113,7 +113,7 @@ _systemctl_really_all_units()
|
||||||
|
if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) &&
|
||||||
|
! _retrieve_cache SYS_REALLY_ALL_UNITS;
|
||||||
|
then
|
||||||
|
- all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) )
|
||||||
|
+ all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) )
|
||||||
|
_systemctl_all_units
|
||||||
|
really_all_units=($_sys_all_units $all_unit_files)
|
||||||
|
_sys_really_all_units=(${(u)really_all_units})
|
||||||
|
@@ -138,12 +138,12 @@ _filter_units_by_property() {
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
-_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )}
|
||||||
|
-_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )}
|
||||||
|
-_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )}
|
||||||
|
-_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )}
|
||||||
|
-_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )}
|
||||||
|
-_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )}
|
||||||
|
+_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )}
|
||||||
|
+_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo -E - " $a"; done; }) )}
|
||||||
|
+_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )}
|
||||||
|
+_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )}
|
||||||
|
+_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )}
|
||||||
|
+_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )}
|
||||||
|
|
||||||
|
# Completion functions for ALL_UNITS
|
||||||
|
for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do
|
||||||
|
@@ -219,8 +219,8 @@ for fun in restart reload-or-restart ; do
|
||||||
|
{
|
||||||
|
_systemctl_all_units
|
||||||
|
compadd "$@" - $( _filter_units_by_property CanStart yes \
|
||||||
|
- ${_sys_all_units[*]} | while read line; do \
|
||||||
|
- [[ "$line" =~ \.device$ ]] || echo " $line"; \
|
||||||
|
+ ${_sys_all_units[*]} | while read -r line; do \
|
||||||
|
+ [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \
|
||||||
|
done )
|
||||||
|
}
|
||||||
|
done
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
223
0003-Always-check-asprintf-return-code.patch
Normal file
223
0003-Always-check-asprintf-return-code.patch
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
Based on 7de80bfe2e61d5818601ccfddbadad3b7703ed70 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karel Zak <kzak@redhat.com>
|
||||||
|
Date: Fri, 25 Jul 2014 15:38:31 +0200
|
||||||
|
Subject: [PATCH] Always check asprintf return code
|
||||||
|
|
||||||
|
There is a small number of the places in sources where we don't check
|
||||||
|
asprintf() return code and assume that after error the function
|
||||||
|
returns NULL pointer via the first argument. That's wrong, after
|
||||||
|
error the content of pointer is undefined.
|
||||||
|
---
|
||||||
|
src/core/unit-printf.c | 8 ++++----
|
||||||
|
src/cryptsetup/cryptsetup.c | 11 ++++++++---
|
||||||
|
src/journal/journalctl.c | 16 +++++++++++-----
|
||||||
|
src/run/run.c | 20 ++++++++++----------
|
||||||
|
src/shared/install.c | 15 +++++++++------
|
||||||
|
src/systemctl/systemctl.c | 18 +++++++++---------
|
||||||
|
src/tty-ask-password-agent/tty-ask-password-agent.c | 5 +++--
|
||||||
|
7 files changed, 54 insertions(+), 39 deletions(-)
|
||||||
|
|
||||||
|
--- src/core/unit-printf.c
|
||||||
|
+++ src/core/unit-printf.c 2014-07-28 09:42:20.726235696 +0000
|
||||||
|
@@ -182,7 +182,7 @@ static int specifier_user_name(char spec
|
||||||
|
char *printed = NULL;
|
||||||
|
Unit *u = userdata;
|
||||||
|
ExecContext *c;
|
||||||
|
- int r;
|
||||||
|
+ int r = 0;
|
||||||
|
|
||||||
|
assert(u);
|
||||||
|
|
||||||
|
@@ -208,7 +208,7 @@ static int specifier_user_name(char spec
|
||||||
|
if (r < 0)
|
||||||
|
return -ENODATA;
|
||||||
|
|
||||||
|
- asprintf(&printed, "%lu", (unsigned long) uid);
|
||||||
|
+ r = asprintf(&printed, "%lu", (unsigned long) uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -231,10 +231,10 @@ static int specifier_user_name(char spec
|
||||||
|
if (specifier == 'u')
|
||||||
|
printed = strdup(username);
|
||||||
|
else
|
||||||
|
- asprintf(&printed, "%lu", (unsigned long) uid);
|
||||||
|
+ r = asprintf(&printed, "%lu", (unsigned long) uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!printed)
|
||||||
|
+ if (r < 0 || !printed)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
*ret = printed;
|
||||||
|
--- src/cryptsetup/cryptsetup.c
|
||||||
|
+++ src/cryptsetup/cryptsetup.c 2014-07-28 00:00:00.000000000 +0000
|
||||||
|
@@ -535,13 +535,18 @@ int main(int argc, char *argv[]) {
|
||||||
|
description = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ k = 0;
|
||||||
|
if (mount_point && description)
|
||||||
|
- asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point);
|
||||||
|
+ k = asprintf(&name_buffer, "%s (%s) on %s", description, argv[2], mount_point);
|
||||||
|
else if (mount_point)
|
||||||
|
- asprintf(&name_buffer, "%s on %s", argv[2], mount_point);
|
||||||
|
+ k = asprintf(&name_buffer, "%s on %s", argv[2], mount_point);
|
||||||
|
else if (description)
|
||||||
|
- asprintf(&name_buffer, "%s (%s)", description, argv[2]);
|
||||||
|
+ k = asprintf(&name_buffer, "%s (%s)", description, argv[2]);
|
||||||
|
|
||||||
|
+ if (k < 0) {
|
||||||
|
+ log_oom();
|
||||||
|
+ goto finish;
|
||||||
|
+ }
|
||||||
|
name = name_buffer ? name_buffer : argv[2];
|
||||||
|
|
||||||
|
k = crypt_init(&cd, argv[3]);
|
||||||
|
--- src/journal/journalctl.c
|
||||||
|
+++ src/journal/journalctl.c 2014-07-28 00:00:00.000000000 +0000
|
||||||
|
@@ -746,11 +746,17 @@ static int add_matches(sd_journal *j, ch
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
t = strappend("_EXE=", path);
|
||||||
|
- } else if (S_ISCHR(st.st_mode))
|
||||||
|
- asprintf(&t, "_KERNEL_DEVICE=c%u:%u", major(st.st_rdev), minor(st.st_rdev));
|
||||||
|
- else if (S_ISBLK(st.st_mode))
|
||||||
|
- asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev));
|
||||||
|
- else {
|
||||||
|
+ } else if (S_ISCHR(st.st_mode)) {
|
||||||
|
+ if (asprintf(&t, "_KERNEL_DEVICE=c%u:%u",
|
||||||
|
+ major(st.st_rdev),
|
||||||
|
+ minor(st.st_rdev)) < 0)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ } else if (S_ISBLK(st.st_mode)) {
|
||||||
|
+ if (asprintf(&t, "_KERNEL_DEVICE=b%u:%u",
|
||||||
|
+ major(st.st_rdev),
|
||||||
|
+ minor(st.st_rdev)) < 0)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ } else {
|
||||||
|
log_error("File is neither a device node, nor regular file, nor executable: %s", *i);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
--- src/run/run.c
|
||||||
|
+++ src/run/run.c 2014-07-28 09:46:36.846235596 +0000
|
||||||
|
@@ -309,12 +309,12 @@ static int start_transient_service(
|
||||||
|
_cleanup_free_ char *name = NULL;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
- if (arg_unit)
|
||||||
|
+ if (arg_unit) {
|
||||||
|
name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".service");
|
||||||
|
- else
|
||||||
|
- asprintf(&name, "run-%lu.service", (unsigned long) getpid());
|
||||||
|
- if (!name)
|
||||||
|
- return -ENOMEM;
|
||||||
|
+ if (!name)
|
||||||
|
+ return log_oom();
|
||||||
|
+ } else if (asprintf(&name, "run-%lu.service", (unsigned long) getpid()) < 0)
|
||||||
|
+ return log_oom();
|
||||||
|
|
||||||
|
r = message_start_transient_unit_new(bus, name, &m);
|
||||||
|
if (r < 0)
|
||||||
|
@@ -436,12 +436,12 @@ static int start_transient_scope(
|
||||||
|
|
||||||
|
assert(bus);
|
||||||
|
|
||||||
|
- if (arg_unit)
|
||||||
|
+ if (arg_unit) {
|
||||||
|
name = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope");
|
||||||
|
- else
|
||||||
|
- asprintf(&name, "run-%lu.scope", (unsigned long) getpid());
|
||||||
|
- if (!name)
|
||||||
|
- return -ENOMEM;
|
||||||
|
+ if (!name)
|
||||||
|
+ return log_oom();
|
||||||
|
+ } else if (asprintf(&name, "run-%lu.scope", (unsigned long) getpid()) < 0)
|
||||||
|
+ return log_oom();
|
||||||
|
|
||||||
|
r = message_start_transient_unit_new(bus, name, &m);
|
||||||
|
if (r < 0)
|
||||||
|
--- src/shared/install.c
|
||||||
|
+++ src/shared/install.c 2014-07-28 00:00:00.000000000 +0000
|
||||||
|
@@ -72,13 +72,16 @@ static int get_config_path(UnitFileScope
|
||||||
|
|
||||||
|
case UNIT_FILE_SYSTEM:
|
||||||
|
|
||||||
|
- if (root_dir && runtime)
|
||||||
|
- asprintf(&p, "%s/run/systemd/system", root_dir);
|
||||||
|
- else if (runtime)
|
||||||
|
+ if (root_dir && runtime) {
|
||||||
|
+ if (asprintf(&p, "%s/run/systemd/system", root_dir) < 0)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ } else if (runtime)
|
||||||
|
p = strdup("/run/systemd/system");
|
||||||
|
- else if (root_dir)
|
||||||
|
- asprintf(&p, "%s/%s", root_dir, SYSTEM_CONFIG_UNIT_PATH);
|
||||||
|
- else
|
||||||
|
+ else if (root_dir) {
|
||||||
|
+ if (asprintf(&p, "%s/%s", root_dir,
|
||||||
|
+ SYSTEM_CONFIG_UNIT_PATH) < 0)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ } else
|
||||||
|
p = strdup(SYSTEM_CONFIG_UNIT_PATH);
|
||||||
|
|
||||||
|
break;
|
||||||
|
--- src/systemctl/systemctl.c
|
||||||
|
+++ src/systemctl/systemctl.c 2014-07-28 09:51:40.894735541 +0000
|
||||||
|
@@ -4639,11 +4639,11 @@ static int enable_sysv_units(const char
|
||||||
|
|
||||||
|
STRV_FOREACH(k, paths.unit_path) {
|
||||||
|
if (!isempty(arg_root))
|
||||||
|
- asprintf(&p, "%s/%s/%s", arg_root, *k, name);
|
||||||
|
+ j = asprintf(&p, "%s/%s/%s", arg_root, *k, name);
|
||||||
|
else
|
||||||
|
- asprintf(&p, "%s/%s", *k, name);
|
||||||
|
+ j = asprintf(&p, "%s/%s", *k, name);
|
||||||
|
|
||||||
|
- if (!p) {
|
||||||
|
+ if (j < 0) {
|
||||||
|
r = log_oom();
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
@@ -4660,10 +4660,10 @@ static int enable_sysv_units(const char
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!isempty(arg_root))
|
||||||
|
- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name);
|
||||||
|
+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name);
|
||||||
|
else
|
||||||
|
- asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name);
|
||||||
|
- if (!p) {
|
||||||
|
+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name);
|
||||||
|
+ if (j < 0) {
|
||||||
|
r = log_oom();
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
@@ -4676,10 +4676,10 @@ static int enable_sysv_units(const char
|
||||||
|
free(p);
|
||||||
|
p = NULL;
|
||||||
|
if (!isempty(arg_root))
|
||||||
|
- asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name);
|
||||||
|
+ j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name);
|
||||||
|
else
|
||||||
|
- asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name);
|
||||||
|
- if (!p) {
|
||||||
|
+ j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name);
|
||||||
|
+ if (j < 0) {
|
||||||
|
r = log_oom();
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
--- src/tty-ask-password-agent/tty-ask-password-agent.c
|
||||||
|
+++ src/tty-ask-password-agent/tty-ask-password-agent.c 2014-07-28 00:00:00.000000000 +0000
|
||||||
|
@@ -102,8 +102,9 @@ static int ask_password_plymouth(
|
||||||
|
if (accept_cached) {
|
||||||
|
packet = strdup("c");
|
||||||
|
n = 1;
|
||||||
|
- } else
|
||||||
|
- asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1), message, &n);
|
||||||
|
+ } else if (asprintf(&packet, "*\002%c%s%n", (int) (strlen(message) + 1),
|
||||||
|
+ message, &n) < 0)
|
||||||
|
+ packet = NULL;
|
||||||
|
|
||||||
|
if (!packet) {
|
||||||
|
r = -ENOMEM;
|
@ -0,0 +1,39 @@
|
|||||||
|
Based on c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||||
|
Date: Sat, 26 Jul 2014 20:11:58 -0400
|
||||||
|
Subject: [PATCH] bash-completion: use list-unit-files to get "all" units
|
||||||
|
|
||||||
|
I think that it is better to return good results slightly more slowly,
|
||||||
|
than partial quickly. Also reading from disk seems fast enough. Even
|
||||||
|
the delay on first try with completely cold cache is acceptable.
|
||||||
|
|
||||||
|
This is just for bash, 'cause zsh was already doing this.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=790768
|
||||||
|
---
|
||||||
|
shell-completion/bash/systemctl.in | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in
|
||||||
|
index c5950cc..69ef04b 100644
|
||||||
|
--- shell-completion/bash/systemctl
|
||||||
|
+++ shell-completion/bash/systemctl
|
||||||
|
@@ -51,11 +51,13 @@ __filter_units_by_property () {
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
-__get_all_units () { __systemctl $1 list-units --all \
|
||||||
|
+__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \
|
||||||
|
| { while read -r a b; do echo " $a"; done; }; }
|
||||||
|
__get_active_units () { __systemctl $1 list-units \
|
||||||
|
| { while read -r a b; do echo " $a"; done; }; }
|
||||||
|
-__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \
|
||||||
|
+__get_startable_units () { {
|
||||||
|
+ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap
|
||||||
|
+ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \
|
||||||
|
| { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; }
|
||||||
|
__get_failed_units () { __systemctl $1 list-units \
|
||||||
|
| { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; }
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
121
0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
Normal file
121
0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
Based on c264aeab4b0e7b69f469e12e78d4a48b3ed7a66e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Sun, 27 Jul 2014 00:11:08 +0200
|
||||||
|
Subject: [PATCH] core: only set the kernel's timezone when the RTC runs in
|
||||||
|
local time
|
||||||
|
|
||||||
|
We can not reliably manage any notion of local time. Every daylight
|
||||||
|
saving time change or time zone change by traveling will make the
|
||||||
|
time jump, and the local time might jump backwards which creates
|
||||||
|
unsolvable problems with file timestamps.
|
||||||
|
|
||||||
|
We will no longer tell the kernel our local time zone and leave
|
||||||
|
everything set to UTC. This will effectively turn FAT timestamps
|
||||||
|
into UTC timestamps.
|
||||||
|
|
||||||
|
If and only if the machine is configured to read the RTC in local
|
||||||
|
time mode, the kernel's time zone will be configured, but
|
||||||
|
systemd-timesysnc will disable the kernel's system time to RTC
|
||||||
|
syncing. In this mode, the RTC will not be managed, and external
|
||||||
|
tools like Windows bootups are expected to manage the RTC's time.
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=81538
|
||||||
|
---
|
||||||
|
src/core/main.c | 23 +++++++++++++++--------
|
||||||
|
src/shared/hwclock.c | 15 ++++++++-------
|
||||||
|
src/shared/hwclock.h | 2 +-
|
||||||
|
3 files changed, 24 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
--- src/core/main.c
|
||||||
|
+++ src/core/main.c 2014-07-28 09:59:35.778235585 +0000
|
||||||
|
@@ -1349,7 +1349,14 @@ int main(int argc, char *argv[]) {
|
||||||
|
if (hwclock_is_localtime() > 0) {
|
||||||
|
int min;
|
||||||
|
|
||||||
|
- /* The first-time call to settimeofday() does a time warp in the kernel */
|
||||||
|
+ /*
|
||||||
|
+ * The very first call of settimeofday() also does a time warp in the kernel.
|
||||||
|
+ *
|
||||||
|
+ * In the rtc-in-local time mode, we set the kernel's timezone, and rely on
|
||||||
|
+ * external tools to take care of maintaining the RTC and do all adjustments.
|
||||||
|
+ * This matches the behavior of Windows, which leaves the RTC alone if the
|
||||||
|
+ * registry tells that the RTC runs in UTC.
|
||||||
|
+ */
|
||||||
|
r = hwclock_set_timezone(&min);
|
||||||
|
if (r < 0)
|
||||||
|
log_error("Failed to apply local time delta, ignoring: %s", strerror(-r));
|
||||||
|
@@ -1357,19 +1364,19 @@ int main(int argc, char *argv[]) {
|
||||||
|
log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min);
|
||||||
|
} else if (!in_initrd()) {
|
||||||
|
/*
|
||||||
|
- * Do dummy first-time call to seal the kernel's time warp magic
|
||||||
|
+ * Do a dummy very first call to seal the kernel's time warp magic.
|
||||||
|
*
|
||||||
|
* Do not call this this from inside the initrd. The initrd might not
|
||||||
|
* carry /etc/adjtime with LOCAL, but the real system could be set up
|
||||||
|
* that way. In such case, we need to delay the time-warp or the sealing
|
||||||
|
* until we reach the real system.
|
||||||
|
+ *
|
||||||
|
+ * Do no set the kernel's timezone. The concept of local time cannot
|
||||||
|
+ * be supported reliably, the time will jump or be incorrect at every daylight
|
||||||
|
+ * saving time change. All kernel local time concepts will be treated
|
||||||
|
+ * as UTC that way.
|
||||||
|
*/
|
||||||
|
- hwclock_reset_timezone();
|
||||||
|
-
|
||||||
|
- /* Tell the kernel our timezone */
|
||||||
|
- r = hwclock_set_timezone(NULL);
|
||||||
|
- if (r < 0)
|
||||||
|
- log_error("Failed to set the kernel's timezone, ignoring: %s", strerror(-r));
|
||||||
|
+ hwclock_reset_timewarp();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--- src/shared/hwclock.c
|
||||||
|
+++ src/shared/hwclock.c 2014-07-28 09:59:12.914235566 +0000
|
||||||
|
@@ -124,9 +124,10 @@ int hwclock_set_timezone(int *min) {
|
||||||
|
tz.tz_dsttime = 0; /* DST_NONE*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * If the hardware clock does not run in UTC, but in local time:
|
||||||
|
- * The very first time we set the kernel's timezone, it will warp
|
||||||
|
- * the clock so that it runs in UTC instead of local time.
|
||||||
|
+ * If the RTC does not run in UTC but in local time, the very first
|
||||||
|
+ * call to settimeofday() will set the kernel's timezone and will warp the
|
||||||
|
+ * system clock, so that it runs in UTC instead of the local time we
|
||||||
|
+ * have read from the RTC.
|
||||||
|
*/
|
||||||
|
if (settimeofday(tv_null, &tz) < 0)
|
||||||
|
return -errno;
|
||||||
|
@@ -135,7 +136,7 @@ int hwclock_set_timezone(int *min) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-int hwclock_reset_timezone(void) {
|
||||||
|
+int hwclock_reset_timewarp(void) {
|
||||||
|
const struct timeval *tv_null = NULL;
|
||||||
|
struct timezone tz;
|
||||||
|
|
||||||
|
@@ -143,9 +144,9 @@ int hwclock_reset_timezone(void) {
|
||||||
|
tz.tz_dsttime = 0; /* DST_NONE*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * The very first time we set the kernel's timezone, it will warp
|
||||||
|
- * the clock. Do a dummy call here, so the time warping is sealed
|
||||||
|
- * and we set only the timezone with next call.
|
||||||
|
+ * The very first call to settimeofday() does time warp magic. Do a
|
||||||
|
+ * dummy call here, so the time warping is sealed and all later calls
|
||||||
|
+ * behave as expected.
|
||||||
|
*/
|
||||||
|
if (settimeofday(tv_null, &tz) < 0)
|
||||||
|
return -errno;
|
||||||
|
--- src/shared/hwclock.h
|
||||||
|
+++ src/shared/hwclock.h 2014-07-28 09:59:25.034736002 +0000
|
||||||
|
@@ -23,6 +23,6 @@
|
||||||
|
|
||||||
|
int hwclock_is_localtime(void);
|
||||||
|
int hwclock_set_timezone(int *min);
|
||||||
|
-int hwclock_reset_timezone(void);
|
||||||
|
+int hwclock_reset_timewarp(void);
|
||||||
|
int hwclock_get_time(struct tm *tm);
|
||||||
|
int hwclock_set_time(const struct tm *tm);
|
48
0006-parse_boolean-require-exact-matches.patch
Normal file
48
0006-parse_boolean-require-exact-matches.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From 0f625d0b87139fc18cd565c9b6da05c53a0eb7ab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ansgar Burchardt <ansgar@debian.org>
|
||||||
|
Date: Sun, 27 Jul 2014 15:19:00 +0200
|
||||||
|
Subject: [PATCH] parse_boolean: require exact matches
|
||||||
|
|
||||||
|
Require exact matches in all cases instead of treating strings
|
||||||
|
starting with 't' ('f') as true (false).
|
||||||
|
|
||||||
|
This is required for config_parse_protect_system to parse ProtectSystem=full
|
||||||
|
correctly: it uses parse_boolean and only tries a more specific parsing
|
||||||
|
function if that did not return a valid result. Thus "full" was treated as
|
||||||
|
"false" before.
|
||||||
|
---
|
||||||
|
src/shared/util.c | 4 ++--
|
||||||
|
src/test/test-util.c | 1 +
|
||||||
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/shared/util.c src/shared/util.c
|
||||||
|
index 4fda31c..49c17ef 100644
|
||||||
|
--- src/shared/util.c
|
||||||
|
+++ src/shared/util.c
|
||||||
|
@@ -231,9 +231,9 @@ int unlink_noerrno(const char *path) {
|
||||||
|
int parse_boolean(const char *v) {
|
||||||
|
assert(v);
|
||||||
|
|
||||||
|
- if (streq(v, "1") || v[0] == 'y' || v[0] == 'Y' || v[0] == 't' || v[0] == 'T' || strcaseeq(v, "on"))
|
||||||
|
+ if (streq(v, "1") || strcaseeq(v, "yes") || strcaseeq(v, "y") || strcaseeq(v, "true") || strcaseeq(v, "t") || strcaseeq(v, "on"))
|
||||||
|
return 1;
|
||||||
|
- else if (streq(v, "0") || v[0] == 'n' || v[0] == 'N' || v[0] == 'f' || v[0] == 'F' || strcaseeq(v, "off"))
|
||||||
|
+ else if (streq(v, "0") || strcaseeq(v, "no") || strcaseeq(v, "n") || strcaseeq(v, "false") || strcaseeq(v, "f") || strcaseeq(v, "off"))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return -EINVAL;
|
||||||
|
diff --git src/test/test-util.c src/test/test-util.c
|
||||||
|
index ed91a67..9a28ef9 100644
|
||||||
|
--- src/test/test-util.c
|
||||||
|
+++ src/test/test-util.c
|
||||||
|
@@ -129,6 +129,7 @@ static void test_parse_boolean(void) {
|
||||||
|
|
||||||
|
assert_se(parse_boolean("garbage") < 0);
|
||||||
|
assert_se(parse_boolean("") < 0);
|
||||||
|
+ assert_se(parse_boolean("full") < 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_parse_pid(void) {
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
31
0007-drop_duplicates-copy-full-BindMount-struct.patch
Normal file
31
0007-drop_duplicates-copy-full-BindMount-struct.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From e2d7c1a0758ce80d7cb439745deefefdffd67655 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ansgar Burchardt <ansgar@debian.org>
|
||||||
|
Date: Sun, 27 Jul 2014 16:32:13 +0200
|
||||||
|
Subject: [PATCH] drop_duplicates: copy full BindMount struct
|
||||||
|
|
||||||
|
At least
|
||||||
|
|
||||||
|
t->ignore = f->ignore;
|
||||||
|
|
||||||
|
is missing here. Just copy the full struct to be sure.
|
||||||
|
---
|
||||||
|
src/core/namespace.c | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/core/namespace.c src/core/namespace.c
|
||||||
|
index 5466b7b..fe95377 100644
|
||||||
|
--- src/core/namespace.c
|
||||||
|
+++ src/core/namespace.c
|
||||||
|
@@ -124,8 +124,7 @@ static void drop_duplicates(BindMount *m, unsigned *n) {
|
||||||
|
if (previous && path_equal(f->path, previous->path))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- t->path = f->path;
|
||||||
|
- t->mode = f->mode;
|
||||||
|
+ *t = *f;
|
||||||
|
|
||||||
|
previous = t;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
87
0008-shell-completion-prevent-mangling-unit-names-bash.patch
Normal file
87
0008-shell-completion-prevent-mangling-unit-names-bash.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
Based on c317a1a19cd9584e07ee43f1b6fafc26c2c75cca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Cook <llua@gmx.com>
|
||||||
|
Date: Sun, 27 Jul 2014 15:07:03 -0400
|
||||||
|
Subject: [PATCH] shell-completion: prevent mangling unit names (bash)
|
||||||
|
|
||||||
|
This fixes the issue noted by Zbigniew in most cases.
|
||||||
|
if a unit's name is enclosed in single quotes completion still
|
||||||
|
will not happen after the first `\'.
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=78388
|
||||||
|
---
|
||||||
|
shell-completion/bash/systemctl.in | 13 ++++++++++++-
|
||||||
|
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git shell-completion/bash/systemctl.in shell-completion/bash/systemctl.in
|
||||||
|
index 69ef04b..64b15df 100644
|
||||||
|
--- shell-completion/bash/systemctl
|
||||||
|
+++ shell-completion/bash/systemctl
|
||||||
|
@@ -158,20 +158,25 @@ _systemctl () {
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[ALL_UNITS]}; then
|
||||||
|
comps=$( __get_all_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then
|
||||||
|
comps=$( __get_enabled_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then
|
||||||
|
comps=$( __get_disabled_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then
|
||||||
|
comps=$( __get_disabled_units $mode;
|
||||||
|
__get_enabled_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then
|
||||||
|
comps=$( __filter_units_by_property $mode CanStart yes \
|
||||||
|
$( __get_startable_units $mode))
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then
|
||||||
|
comps=$( __filter_units_by_property $mode CanStart yes \
|
||||||
|
@@ -179,24 +184,30 @@ _systemctl () {
|
||||||
|
| while read -r line; do \
|
||||||
|
[[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo " $line"; \
|
||||||
|
done ))
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then
|
||||||
|
comps=$( __filter_units_by_property $mode CanStop yes \
|
||||||
|
$( __get_active_units $mode ) )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[RELOADABLE_UNITS]}; then
|
||||||
|
comps=$( __filter_units_by_property $mode CanReload yes \
|
||||||
|
$( __get_active_units $mode ) )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[ISOLATABLE_UNITS]}; then
|
||||||
|
comps=$( __filter_units_by_property $mode AllowIsolate yes \
|
||||||
|
$( __get_all_units $mode ) )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[FAILED_UNITS]}; then
|
||||||
|
comps=$( __get_failed_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[MASKED_UNITS]}; then
|
||||||
|
comps=$( __get_masked_units $mode )
|
||||||
|
+ compopt -o filenames
|
||||||
|
|
||||||
|
elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then
|
||||||
|
comps=''
|
||||||
|
@@ -221,7 +232,7 @@ _systemctl () {
|
||||||
|
| { while read -r a b; do echo " $a"; done; } )
|
||||||
|
fi
|
||||||
|
|
||||||
|
- COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
|
||||||
|
+ COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur") )
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 36dd072cdf03dcac0fcd2d6b42f261444dc7ac88 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Sekletar <msekleta@redhat.com>
|
||||||
|
Date: Fri, 25 Jul 2014 14:38:22 +0200
|
||||||
|
Subject: [PATCH] journald: always add syslog facility for messages coming
|
||||||
|
from kmsg
|
||||||
|
|
||||||
|
Set SYSLOG_FACILITY field for kernel log messages too. Setting only
|
||||||
|
SYSLOG_IDENTIFIER="kernel" is not sufficient and tools reading journal
|
||||||
|
maybe confused by missing SYSLOG_FACILITY field for kernel log messages.
|
||||||
|
---
|
||||||
|
src/journal/journald-kmsg.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c
|
||||||
|
index 12992e7..bb62a76 100644
|
||||||
|
--- src/journal/journald-kmsg.c
|
||||||
|
+++ src/journal/journald-kmsg.c
|
||||||
|
@@ -274,6 +274,9 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) {
|
||||||
|
if (asprintf(&syslog_priority, "PRIORITY=%i", priority & LOG_PRIMASK) >= 0)
|
||||||
|
IOVEC_SET_STRING(iovec[n++], syslog_priority);
|
||||||
|
|
||||||
|
+ if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
|
||||||
|
+ IOVEC_SET_STRING(iovec[n++], syslog_facility);
|
||||||
|
+
|
||||||
|
if ((priority & LOG_FACMASK) == LOG_KERN)
|
||||||
|
IOVEC_SET_STRING(iovec[n++], "SYSLOG_IDENTIFIER=kernel");
|
||||||
|
else {
|
||||||
|
@@ -295,9 +298,6 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) {
|
||||||
|
if (syslog_pid)
|
||||||
|
IOVEC_SET_STRING(iovec[n++], syslog_pid);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
|
||||||
|
- IOVEC_SET_STRING(iovec[n++], syslog_facility);
|
||||||
|
}
|
||||||
|
|
||||||
|
message = cunescape_length_with_prefix(p, pl, "MESSAGE=");
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
19
shut-up-rpmlint-on-var-log-journal.patch
Normal file
19
shut-up-rpmlint-on-var-log-journal.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
--- systemd-210/Makefile.am
|
||||||
|
+++ systemd-210/Makefile.am 2014-07-28 09:05:41.002735451 +0000
|
||||||
|
@@ -3242,11 +3242,11 @@ noinst_LTLIBRARIES += \
|
||||||
|
libsystemd-journal-core.la
|
||||||
|
|
||||||
|
journal-install-hook:
|
||||||
|
- -$(MKDIR_P) $(DESTDIR)/var/log/journal
|
||||||
|
- -chown 0:0 $(DESTDIR)/var/log/journal
|
||||||
|
- -chmod 755 $(DESTDIR)/var/log/journal
|
||||||
|
- -setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
|
||||||
|
- -setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
|
||||||
|
+ -$(MKDIR_P) $(DESTDIR)/var/log/journal/
|
||||||
|
+ -@echo chown 0:0 $(DESTDIR)/var/log/journal/
|
||||||
|
+ -chmod 755 $(DESTDIR)/var/log/journal/
|
||||||
|
+ -@echo setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
|
||||||
|
+ -@echo setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
|
||||||
|
|
||||||
|
journal-uninstall-hook:
|
||||||
|
-rmdir $(DESTDIR)/var/log/journal/
|
@ -1,3 +1,19 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid
|
||||||
|
rpmlinkt warning
|
||||||
|
- Add upstream patches
|
||||||
|
0001-bus-proxyd-fix-incorrect-comparison.patch
|
||||||
|
0002-shell-completion-prevent-mangling-unit-names.patch
|
||||||
|
0003-Always-check-asprintf-return-code.patch
|
||||||
|
0004-bash-completion-use-list-unit-files-to-get-all-units.patch
|
||||||
|
0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
|
||||||
|
0006-parse_boolean-require-exact-matches.patch
|
||||||
|
0007-drop_duplicates-copy-full-BindMount-struct.patch
|
||||||
|
0008-shell-completion-prevent-mangling-unit-names-bash.patch
|
||||||
|
0009-journald-always-add-syslog-facility-for-messages-com.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de
|
Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
@ -31,11 +31,12 @@
|
|||||||
%else
|
%else
|
||||||
%define has_efi 0
|
%define has_efi 0
|
||||||
%endif
|
%endif
|
||||||
%bcond_with permission
|
|
||||||
%if 0%{?suse_version} > 1315
|
%if 0%{?suse_version} > 1315
|
||||||
|
%bcond_without permission
|
||||||
%bcond_without blkrrpart
|
%bcond_without blkrrpart
|
||||||
%bcond_without udevsettle
|
%bcond_without udevsettle
|
||||||
%else
|
%else
|
||||||
|
%bcond_with permission
|
||||||
%bcond_with blkrrpart
|
%bcond_with blkrrpart
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%endif
|
%endif
|
||||||
@ -714,6 +715,8 @@ Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch
|
|||||||
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
|
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-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
|
Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch
|
||||||
|
# PATCH-FIX-SUSE Shut up rpmlint warning
|
||||||
|
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
||||||
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
|
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
||||||
@ -728,6 +731,24 @@ Patch350: 0002-journalctl-man-allow-only-between-terms.patch
|
|||||||
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
|
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
|
||||||
# PATCH-FIX-SUSE
|
# PATCH-FIX-SUSE
|
||||||
Patch352: set-and-use-default-logconsole.patch
|
Patch352: set-and-use-default-logconsole.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch355: 0003-Always-check-asprintf-return-code.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch358: 0006-parse_boolean-require-exact-matches.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch
|
||||||
|
|
||||||
# UDEV PATCHES
|
# UDEV PATCHES
|
||||||
# ============
|
# ============
|
||||||
@ -1346,6 +1367,7 @@ cp %{SOURCE7} m4/
|
|||||||
%patch342 -p0
|
%patch342 -p0
|
||||||
%patch343 -p0
|
%patch343 -p0
|
||||||
%patch344 -p0
|
%patch344 -p0
|
||||||
|
%patch345 -p1
|
||||||
%patch346 -p0
|
%patch346 -p0
|
||||||
%patch347 -p0
|
%patch347 -p0
|
||||||
%patch348 -p0
|
%patch348 -p0
|
||||||
@ -1353,6 +1375,15 @@ cp %{SOURCE7} m4/
|
|||||||
%patch350 -p0
|
%patch350 -p0
|
||||||
%patch351 -p0
|
%patch351 -p0
|
||||||
%patch352 -p0
|
%patch352 -p0
|
||||||
|
%patch353 -p0
|
||||||
|
%patch354 -p0
|
||||||
|
%patch355 -p0
|
||||||
|
%patch356 -p0
|
||||||
|
%patch357 -p0
|
||||||
|
%patch358 -p0
|
||||||
|
%patch359 -p0
|
||||||
|
%patch360 -p0
|
||||||
|
%patch361 -p0
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -1688,7 +1719,7 @@ done
|
|||||||
ln -s /usr/lib/udev %{buildroot}/lib/udev
|
ln -s /usr/lib/udev %{buildroot}/lib/udev
|
||||||
|
|
||||||
# Create the /var/log/journal directory to change the volatile journal to a persistent one
|
# Create the /var/log/journal directory to change the volatile journal to a persistent one
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/log/journal
|
mkdir -p %{buildroot}%{_localstatedir}/log/journal/
|
||||||
|
|
||||||
# Make sure directories in /var exist
|
# Make sure directories in /var exist
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
||||||
@ -1804,17 +1835,6 @@ do
|
|||||||
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
|
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
|
||||||
done
|
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
|
%find_lang systemd
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -1988,7 +2008,7 @@ fi
|
|||||||
|
|
||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%verifyscript logger
|
%verifyscript logger
|
||||||
%verify_permissions -e %{_localstatedir}/log/journal
|
%verify_permissions -e %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%pre logger
|
%pre logger
|
||||||
@ -1997,7 +2017,7 @@ exit 0
|
|||||||
|
|
||||||
%post logger
|
%post logger
|
||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%set_permissions %{_localstatedir}/log/journal
|
%set_permissions %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
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 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
@ -2016,7 +2036,7 @@ fi
|
|||||||
%postun -n nss-myhostname -p /sbin/ldconfig
|
%postun -n nss-myhostname -p /sbin/ldconfig
|
||||||
|
|
||||||
%pre journal-gateway
|
%pre journal-gateway
|
||||||
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 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 || :
|
getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || :
|
||||||
%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
|
%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
|
||||||
exit 0
|
exit 0
|
||||||
@ -2400,11 +2420,7 @@ exit 0
|
|||||||
|
|
||||||
%files logger
|
%files logger
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%if %{with permission}
|
%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/
|
||||||
%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
|
%{_localstatedir}/log/README
|
||||||
/etc/init.d/systemd-journald
|
/etc/init.d/systemd-journald
|
||||||
|
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 28 10:08:15 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add patch shut-up-rpmlint-on-var-log-journal.patch to avoid
|
||||||
|
rpmlinkt warning
|
||||||
|
- Add upstream patches
|
||||||
|
0001-bus-proxyd-fix-incorrect-comparison.patch
|
||||||
|
0002-shell-completion-prevent-mangling-unit-names.patch
|
||||||
|
0003-Always-check-asprintf-return-code.patch
|
||||||
|
0004-bash-completion-use-list-unit-files-to-get-all-units.patch
|
||||||
|
0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
|
||||||
|
0006-parse_boolean-require-exact-matches.patch
|
||||||
|
0007-drop_duplicates-copy-full-BindMount-struct.patch
|
||||||
|
0008-shell-completion-prevent-mangling-unit-names-bash.patch
|
||||||
|
0009-journald-always-add-syslog-facility-for-messages-com.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de
|
Fri Jul 25 11:06:54 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
58
systemd.spec
58
systemd.spec
@ -29,11 +29,12 @@
|
|||||||
%else
|
%else
|
||||||
%define has_efi 0
|
%define has_efi 0
|
||||||
%endif
|
%endif
|
||||||
%bcond_with permission
|
|
||||||
%if 0%{?suse_version} > 1315
|
%if 0%{?suse_version} > 1315
|
||||||
|
%bcond_without permission
|
||||||
%bcond_without blkrrpart
|
%bcond_without blkrrpart
|
||||||
%bcond_without udevsettle
|
%bcond_without udevsettle
|
||||||
%else
|
%else
|
||||||
|
%bcond_with permission
|
||||||
%bcond_with blkrrpart
|
%bcond_with blkrrpart
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%endif
|
%endif
|
||||||
@ -709,6 +710,8 @@ Patch342: 0002-man-document-yearly-and-annually-in-systemd.time-7.patch
|
|||||||
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
|
Patch343: 0003-core-nicer-message-when-inotify-watches-are-exhauste.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix patch 0004-systemd-detect-virt-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
|
Patch344: 0001-detect-virt-Fix-Xen-domU-discovery.patch
|
||||||
|
# PATCH-FIX-SUSE Shut up rpmlint warning
|
||||||
|
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
||||||
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
|
Patch346: 0002-Be-more-verbose-when-bind-or-listen-fails.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
# PATCH-FIX-UPSTREAM added at 2014/07/21
|
||||||
@ -723,6 +726,24 @@ Patch350: 0002-journalctl-man-allow-only-between-terms.patch
|
|||||||
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
|
Patch351: 0003-systemd-use-pager-for-test-and-help.patch
|
||||||
# PATCH-FIX-SUSE
|
# PATCH-FIX-SUSE
|
||||||
Patch352: set-and-use-default-logconsole.patch
|
Patch352: set-and-use-default-logconsole.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch353: 0001-bus-proxyd-fix-incorrect-comparison.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch354: 0002-shell-completion-prevent-mangling-unit-names.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch355: 0003-Always-check-asprintf-return-code.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch356: 0004-bash-completion-use-list-unit-files-to-get-all-units.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch357: 0005-core-only-set-the-kernel-s-timezone-when-the-RTC-run.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch358: 0006-parse_boolean-require-exact-matches.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch359: 0007-drop_duplicates-copy-full-BindMount-struct.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch360: 0008-shell-completion-prevent-mangling-unit-names-bash.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/07/28
|
||||||
|
Patch361: 0009-journald-always-add-syslog-facility-for-messages-com.patch
|
||||||
|
|
||||||
# UDEV PATCHES
|
# UDEV PATCHES
|
||||||
# ============
|
# ============
|
||||||
@ -1341,6 +1362,7 @@ cp %{SOURCE7} m4/
|
|||||||
%patch342 -p0
|
%patch342 -p0
|
||||||
%patch343 -p0
|
%patch343 -p0
|
||||||
%patch344 -p0
|
%patch344 -p0
|
||||||
|
%patch345 -p1
|
||||||
%patch346 -p0
|
%patch346 -p0
|
||||||
%patch347 -p0
|
%patch347 -p0
|
||||||
%patch348 -p0
|
%patch348 -p0
|
||||||
@ -1348,6 +1370,15 @@ cp %{SOURCE7} m4/
|
|||||||
%patch350 -p0
|
%patch350 -p0
|
||||||
%patch351 -p0
|
%patch351 -p0
|
||||||
%patch352 -p0
|
%patch352 -p0
|
||||||
|
%patch353 -p0
|
||||||
|
%patch354 -p0
|
||||||
|
%patch355 -p0
|
||||||
|
%patch356 -p0
|
||||||
|
%patch357 -p0
|
||||||
|
%patch358 -p0
|
||||||
|
%patch359 -p0
|
||||||
|
%patch360 -p0
|
||||||
|
%patch361 -p0
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -1683,7 +1714,7 @@ done
|
|||||||
ln -s /usr/lib/udev %{buildroot}/lib/udev
|
ln -s /usr/lib/udev %{buildroot}/lib/udev
|
||||||
|
|
||||||
# Create the /var/log/journal directory to change the volatile journal to a persistent one
|
# Create the /var/log/journal directory to change the volatile journal to a persistent one
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/log/journal
|
mkdir -p %{buildroot}%{_localstatedir}/log/journal/
|
||||||
|
|
||||||
# Make sure directories in /var exist
|
# Make sure directories in /var exist
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump
|
||||||
@ -1799,17 +1830,6 @@ do
|
|||||||
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
|
ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/
|
||||||
done
|
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
|
%find_lang systemd
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -1983,7 +2003,7 @@ fi
|
|||||||
|
|
||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%verifyscript logger
|
%verifyscript logger
|
||||||
%verify_permissions -e %{_localstatedir}/log/journal
|
%verify_permissions -e %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%pre logger
|
%pre logger
|
||||||
@ -1992,7 +2012,7 @@ exit 0
|
|||||||
|
|
||||||
%post logger
|
%post logger
|
||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%set_permissions %{_localstatedir}/log/journal
|
%set_permissions %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
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 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
@ -2011,7 +2031,7 @@ fi
|
|||||||
%postun -n nss-myhostname -p /sbin/ldconfig
|
%postun -n nss-myhostname -p /sbin/ldconfig
|
||||||
|
|
||||||
%pre journal-gateway
|
%pre journal-gateway
|
||||||
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 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 || :
|
getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || :
|
||||||
%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
|
%service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
|
||||||
exit 0
|
exit 0
|
||||||
@ -2395,11 +2415,7 @@ exit 0
|
|||||||
|
|
||||||
%files logger
|
%files logger
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%if %{with permission}
|
%dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/
|
||||||
%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
|
%{_localstatedir}/log/README
|
||||||
/etc/init.d/systemd-journald
|
/etc/init.d/systemd-journald
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user