forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=801
This commit is contained in:
parent
f1db6f5530
commit
6e35d5d56c
95
0001-shell-completion-fix-completion-of-inactive-units.patch
Normal file
95
0001-shell-completion-fix-completion-of-inactive-units.patch
Normal file
@ -0,0 +1,95 @@
|
||||
Based on f29c77bc0179b0fa57407dbe30b495be9f5ad2e8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 14 Oct 2014 20:20:07 -0400
|
||||
Subject: [PATCH] shell-completion: fix completion of inactive units
|
||||
|
||||
Units which not loaded were not proposed properly. OTOH, we should
|
||||
filter units from get-unit-files by their state if they are currently
|
||||
loaded. Bring zsh completions in line with bash completion, the same
|
||||
logic should be used in both implementations.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1024379
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=790768
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=84720
|
||||
---
|
||||
shell-completion/bash/systemctl | 17 +++++++++--------
|
||||
shell-completion/zsh/_systemctl | 16 +++++++++-------
|
||||
2 files changed, 18 insertions(+), 15 deletions(-)
|
||||
|
||||
--- shell-completion/bash/systemctl
|
||||
+++ shell-completion/bash/systemctl
|
||||
@@ -55,10 +55,14 @@ __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-
|
||||
| { 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
|
||||
- __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_startable_units () {
|
||||
+ # find inactive or failed units, filter out masked and not-found
|
||||
+ __systemctl $1 list-units --state inactive,failed -- $( __get_all_units ) | \
|
||||
+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; }
|
||||
+__get_restartable_units () {
|
||||
+ # find !masked, filter out masked and not-found
|
||||
+ __systemctl $1 list-units --state active,inactive,failed -- $( __get_all_units ) | \
|
||||
+ { while read -r a b c d; do [[ $b == "loaded" ]] && echo " $a"; done; }; }
|
||||
__get_failed_units () { __systemctl $1 list-units \
|
||||
| { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; }
|
||||
__get_enabled_units () { __systemctl $1 list-unit-files \
|
||||
@@ -180,10 +184,7 @@ _systemctl () {
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then
|
||||
comps=$( __filter_units_by_property $mode CanStart yes \
|
||||
- $( __get_all_units $mode \
|
||||
- | while read -r line; do \
|
||||
- [[ "$line" =~ @\.|\.(device|snapshot|socket|timer)$ ]] || echo " $line"; \
|
||||
- done ))
|
||||
+ $( __get_restartable_units $mode))
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then
|
||||
--- shell-completion/zsh/_systemctl
|
||||
+++ shell-completion/zsh/_systemctl
|
||||
@@ -138,8 +138,11 @@ _filter_units_by_property() {
|
||||
done
|
||||
}
|
||||
|
||||
+_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $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_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )}
|
||||
+_systemctl_restartable_units(){_sys_restartable_units=($(__systemctl list-units --state inactive,failed,active -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && 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; }) )}
|
||||
@@ -181,8 +184,9 @@ done
|
||||
# Completion functions for STARTABLE_UNITS
|
||||
(( $+functions[_systemctl_start] )) || _systemctl_start()
|
||||
{
|
||||
- _systemctl_inactive_units
|
||||
- compadd "$@" -a - _sys_inactive_units
|
||||
+ _systemctl_startable_units
|
||||
+ compadd "$@" - $( _filter_units_by_property CanStart yes \
|
||||
+ ${_sys_startable_units[*]} )
|
||||
}
|
||||
|
||||
# Completion functions for STOPPABLE_UNITS
|
||||
@@ -217,11 +221,9 @@ done
|
||||
for fun in restart reload-or-restart ; do
|
||||
(( $+functions[_systemctl_$fun] )) || _systemctl_$fun()
|
||||
{
|
||||
- _systemctl_all_units
|
||||
+ _systemctl_restartable_units
|
||||
compadd "$@" - $( _filter_units_by_property CanStart yes \
|
||||
- ${_sys_all_units[*]} | while read -r line; do \
|
||||
- [[ "$line" =~ \.device$ ]] || echo -E - " $line"; \
|
||||
- done )
|
||||
+ ${_sys_restartable_units[*]} )
|
||||
}
|
||||
done
|
||||
|
||||
--
|
||||
1.7.9.2
|
||||
|
111
0002-shell-completion-propose-templates-for-disable-re-en.patch
Normal file
111
0002-shell-completion-propose-templates-for-disable-re-en.patch
Normal file
@ -0,0 +1,111 @@
|
||||
Based on e9a19bd882ff8a2c8aef5c63b39525ea231e5fb9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 14 Oct 2014 21:10:02 -0400
|
||||
Subject: [PATCH] shell-completion: propose templates for
|
||||
disable/[re]enable/[re]start
|
||||
|
||||
Templates can be [re]enabled, on their own if the have DefaultInstance set,
|
||||
and with an instance suffix in all cases. Propose just the template name
|
||||
ending in @, to underline the instance suffix may have to be appended.
|
||||
|
||||
Likewise for start/restart.
|
||||
|
||||
This means that sometimes superflous units that one will not really
|
||||
want to operate on will be proposed, but this seems better than
|
||||
proposing a very incomplete set of names.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=66912
|
||||
---
|
||||
shell-completion/bash/systemctl | 15 +++++++++++----
|
||||
shell-completion/zsh/_systemctl | 20 +++++++++++++-------
|
||||
2 files changed, 24 insertions(+), 11 deletions(-)
|
||||
|
||||
--- shell-completion/bash/systemctl
|
||||
+++ shell-completion/bash/systemctl
|
||||
@@ -53,6 +53,9 @@ __filter_units_by_property () {
|
||||
|
||||
__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \
|
||||
| { while read -r a b; do echo " $a"; done; }; }
|
||||
+__get_template_names () { __systemctl $1 list-unit-files \
|
||||
+ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; }
|
||||
+
|
||||
__get_active_units () { __systemctl $1 list-units \
|
||||
| { while read -r a b; do echo " $a"; done; }; }
|
||||
__get_startable_units () {
|
||||
@@ -169,22 +172,26 @@ _systemctl () {
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[DISABLED_UNITS]}; then
|
||||
- comps=$( __get_disabled_units $mode )
|
||||
+ comps=$( __get_disabled_units $mode;
|
||||
+ __get_template_names $mode)
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[REENABLABLE_UNITS]}; then
|
||||
comps=$( __get_disabled_units $mode;
|
||||
- __get_enabled_units $mode )
|
||||
+ __get_enabled_units $mode;
|
||||
+ __get_template_names $mode)
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[STARTABLE_UNITS]}; then
|
||||
comps=$( __filter_units_by_property $mode CanStart yes \
|
||||
- $( __get_startable_units $mode))
|
||||
+ $( __get_startable_units $mode);
|
||||
+ __get_template_names $mode)
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[RESTARTABLE_UNITS]}; then
|
||||
comps=$( __filter_units_by_property $mode CanStart yes \
|
||||
- $( __get_restartable_units $mode))
|
||||
+ $( __get_restartable_units $mode); \
|
||||
+ __get_template_names $mode)
|
||||
compopt -o filenames
|
||||
|
||||
elif __contains_word "$verb" ${VERBS[STOPPABLE_UNITS]}; then
|
||||
--- shell-completion/zsh/_systemctl
|
||||
+++ shell-completion/zsh/_systemctl
|
||||
@@ -139,6 +139,8 @@ _filter_units_by_property() {
|
||||
}
|
||||
|
||||
_systemctl_all_units() { { __systemctl list-unit-files; __systemctl list-units --all; } | { while read -r a b; do echo -E - " $a"; done; } }
|
||||
+_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } }
|
||||
+
|
||||
|
||||
_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )}
|
||||
_systemctl_startable_units(){_sys_startable_units=($(__systemctl list-units --state inactive,failed -- $(_systemctl_all_units) | { while read -r a b c d; do [[ $b == "loaded" ]] && echo -E - " $a"; done; }) )}
|
||||
@@ -158,20 +160,24 @@ for fun in is-active is-failed is-enabled status show cat mask preset help list-
|
||||
done
|
||||
|
||||
# Completion functions for ENABLED_UNITS
|
||||
-for fun in disable reenable ; do
|
||||
- (( $+functions[_systemctl_$fun] )) || _systemctl_$fun()
|
||||
- {
|
||||
+(( $+functions[_systemctl_disable] )) || _systemctl_disable()
|
||||
+{
|
||||
+ _systemctl_enabled_units
|
||||
+ compadd "$@" -a - _sys_enabled_units
|
||||
+}
|
||||
+
|
||||
+(( $+functions[_systemctl_reenable] )) || _systemctl_reenable()
|
||||
+{
|
||||
_systemctl_enabled_units
|
||||
_systemctl_disabled_units
|
||||
- compadd "$@" -a - _sys_enabled_units _sys_disabled_units
|
||||
- }
|
||||
-done
|
||||
+ compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names)
|
||||
+}
|
||||
|
||||
# Completion functions for DISABLED_UNITS
|
||||
(( $+functions[_systemctl_enable] )) || _systemctl_enable()
|
||||
{
|
||||
_systemctl_disabled_units
|
||||
- compadd "$@" -a - _sys_disabled_units
|
||||
+ compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names)
|
||||
}
|
||||
|
||||
# Completion functions for FAILED_UNITS
|
||||
--
|
||||
1.7.9.2
|
||||
|
29
0003-man-we-don-t-have-Wanted-dependency.patch
Normal file
29
0003-man-we-don-t-have-Wanted-dependency.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 3e883473a0f36c220fc45ecf61d6878c9ac308b4 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Wed, 15 Oct 2014 09:28:31 +0200
|
||||
Subject: [PATCH] man: we don't have 'Wanted' dependency
|
||||
|
||||
---
|
||||
man/systemd.unit.xml | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git man/systemd.unit.xml man/systemd.unit.xml
|
||||
index e9395ff..88c9d7f 100644
|
||||
--- man/systemd.unit.xml
|
||||
+++ man/systemd.unit.xml
|
||||
@@ -181,10 +181,10 @@
|
||||
<filename>foo.service.wants/</filename> may exist. All
|
||||
unit files symlinked from such a directory are
|
||||
implicitly added as dependencies of type
|
||||
- <varname>Wanted=</varname> to the unit. This is useful
|
||||
+ <varname>Wants=</varname> to the unit. This is useful
|
||||
to hook units into the start-up of other units,
|
||||
without having to modify their unit files. For details
|
||||
- about the semantics of <varname>Wanted=</varname>, see
|
||||
+ about the semantics of <varname>Wants=</varname>, see
|
||||
below. The preferred way to create symlinks in the
|
||||
<filename>.wants/</filename> directory of a unit file
|
||||
is with the <command>enable</command> command of the
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -0,0 +1,38 @@
|
||||
From 5e78424f4a27c07be50e246308035c877f204038 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Sekletar <msekleta@redhat.com>
|
||||
Date: Mon, 13 Oct 2014 15:25:09 +0200
|
||||
Subject: [PATCH] selinux: fix potential double free crash in child process
|
||||
|
||||
Before returning from function we should reset ret to NULL, thus cleanup
|
||||
function is nop.
|
||||
|
||||
Also context_str() returns pointer to a string containing context but not a
|
||||
copy, hence we must make copy it explicitly.
|
||||
---
|
||||
src/shared/label.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git src/shared/label.c src/shared/label.c
|
||||
index b6af38d..69d4616 100644
|
||||
--- src/shared/label.c
|
||||
+++ src/shared/label.c
|
||||
@@ -334,7 +334,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) {
|
||||
}
|
||||
|
||||
freecon(mycon);
|
||||
- mycon = context_str(bcon);
|
||||
+ mycon = strdup(context_str(bcon));
|
||||
if (!mycon) {
|
||||
r = -errno;
|
||||
goto out;
|
||||
@@ -348,6 +348,7 @@ int label_get_child_mls_label(int socket_fd, const char *exe, char **label) {
|
||||
}
|
||||
|
||||
*label = ret;
|
||||
+ ret = NULL;
|
||||
r = 0;
|
||||
|
||||
out:
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream patches
|
||||
0001-shell-completion-fix-completion-of-inactive-units.patch
|
||||
0002-shell-completion-propose-templates-for-disable-re-en.patch
|
||||
0003-man-we-don-t-have-Wanted-dependency.patch
|
||||
0004-selinux-fix-potential-double-free-crash-in-child-pro.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de
|
||||
|
||||
|
@ -950,6 +950,14 @@ Patch459: 0005-util-avoid-double-close-of-fd.patch
|
||||
Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/14
|
||||
Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -1755,6 +1763,10 @@ cp %{SOURCE7} m4/
|
||||
%patch459 -p0
|
||||
%patch460 -p0
|
||||
%patch461 -p0
|
||||
%patch462 -p0
|
||||
%patch463 -p0
|
||||
%patch464 -p0
|
||||
%patch465 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 15 12:03:36 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream patches
|
||||
0001-shell-completion-fix-completion-of-inactive-units.patch
|
||||
0002-shell-completion-propose-templates-for-disable-re-en.patch
|
||||
0003-man-we-don-t-have-Wanted-dependency.patch
|
||||
0004-selinux-fix-potential-double-free-crash-in-child-pro.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 15 08:48:36 UTC 2014 - werner@suse.de
|
||||
|
||||
|
12
systemd.spec
12
systemd.spec
@ -945,6 +945,14 @@ Patch459: 0005-util-avoid-double-close-of-fd.patch
|
||||
Patch460: 0001-systemctl-when-mangle-unit-names-for-the-isolate-suf.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/14
|
||||
Patch461: 0001-tmpfiles-compare-return-against-correct-errno.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch462: 0001-shell-completion-fix-completion-of-inactive-units.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch463: 0002-shell-completion-propose-templates-for-disable-re-en.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch464: 0003-man-we-don-t-have-Wanted-dependency.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/10/15
|
||||
Patch465: 0004-selinux-fix-potential-double-free-crash-in-child-pro.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -1750,6 +1758,10 @@ cp %{SOURCE7} m4/
|
||||
%patch459 -p0
|
||||
%patch460 -p0
|
||||
%patch461 -p0
|
||||
%patch462 -p0
|
||||
%patch463 -p0
|
||||
%patch464 -p0
|
||||
%patch465 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user