From 4fd193bc8cc19470dfc1708bbf857be7411032c7a028a0f5264f515406289ad7 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Fri, 14 Oct 2011 15:47:16 +0000 Subject: [PATCH] Accepting request 87882 from home:fcrozat:systemd - Recommends dbus-1-python, do not requires python (bnc#716939) - Add private_tmp_crash.patch: prevent crash in debug mode (bnc#699829). - Add systemctl-completion-fix.patch: fix incorrect bash completion with some commands (git). OBS-URL: https://build.opensuse.org/request/show/87882 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=217 --- private_tmp_crash.patch | 12 ++++++ systemctl-completion-fix.patch | 77 ++++++++++++++++++++++++++++++++++ systemd-gtk.changes | 9 ++++ systemd.changes | 9 ++++ systemd.spec | 12 +++++- 5 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 private_tmp_crash.patch create mode 100644 systemctl-completion-fix.patch diff --git a/private_tmp_crash.patch b/private_tmp_crash.patch new file mode 100644 index 00000000..c7bb783b --- /dev/null +++ b/private_tmp_crash.patch @@ -0,0 +1,12 @@ +Index: systemd-37/src/namespace.c +=================================================================== +--- systemd-37.orig/src/namespace.c ++++ systemd-37/src/namespace.c +@@ -157,7 +157,6 @@ static int apply_mount(Path *p, const ch + } + + if ((r = mount(what, where, NULL, MS_BIND|MS_REC, NULL)) >= 0) { +- log_debug("Successfully mounted %s to %s", what, where); + + /* The bind mount will always inherit the original + * flags. If we want to set any flag we need diff --git a/systemctl-completion-fix.patch b/systemctl-completion-fix.patch new file mode 100644 index 00000000..3f5b2e37 --- /dev/null +++ b/systemctl-completion-fix.patch @@ -0,0 +1,77 @@ +In the case of completion for the 'restart' verb, passing the invalid +unit name (the colums header) causes completion to cease functioning +entirely, with the error: + + Failed to issue method call: Unit name UNIT is not valid. + +This adds a small wrapper function for systemctl which can have common +options added to it. + +--- + src/systemctl-bash-completion.sh | 20 ++++++++++++-------- + 1 files changed, 12 insertions(+), 8 deletions(-) + +diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh +index 6369a6c..6ebb792 100644 +--- a/src/systemctl-bash-completion.sh ++++ b/src/systemctl-bash-completion.sh +@@ -15,6 +15,10 @@ + # You should have received a copy of the GNU General Public License + # along with systemd; If not, see . + ++__systemctl() { ++ systemctl --no-legend "$@" ++} ++ + __contains_word () { + local word=$1; shift + for w in $*; do [[ $w = $word ]] && return 0; done +@@ -24,7 +28,7 @@ __contains_word () { + __filter_units_by_property () { + local property=$1 value=$2 ; shift ; shift + local -a units=( $* ) +- local -a props=( $(systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) ++ local -a props=( $(__systemctl show --property "$property" -- ${units[*]} | grep -v ^$) ) + for ((i=0; $i < ${#units[*]}; i++)); do + if [[ "${props[i]}" = "$property=$value" ]]; then + echo "${units[i]}" +@@ -32,10 +36,10 @@ __filter_units_by_property () { + done + } + +-__get_all_units () { systemctl list-units --full --all | awk ' {print $1}' ; } +-__get_active_units () { systemctl list-units --full | awk ' {print $1}' ; } +-__get_inactive_units () { systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } +-__get_failed_units () { systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } ++__get_all_units () { __systemctl list-units --full --all | awk ' {print $1}' ; } ++__get_active_units () { __systemctl list-units --full | awk ' {print $1}' ; } ++__get_inactive_units () { __systemctl list-units --full --all | awk '$3 == "inactive" {print $1}' ; } ++__get_failed_units () { __systemctl list-units --full | awk '$3 == "failed" {print $1}' ; } + + _systemctl () { + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} +@@ -134,13 +138,13 @@ _systemctl () { + comps='' + + elif __contains_word "$verb" ${VERBS[JOBS]}; then +- comps=$( systemctl list-jobs | awk '{print $1}' ) ++ comps=$( __systemctl list-jobs | awk '{print $1}' ) + + elif __contains_word "$verb" ${VERBS[SNAPSHOTS]}; then +- comps=$( systemctl list-units --type snapshot --full --all | awk '{print $1}' ) ++ comps=$( __systemctl list-units --type snapshot --full --all | awk '{print $1}' ) + + elif __contains_word "$verb" ${VERBS[ENVS]}; then +- comps=$( systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) ++ comps=$( __systemctl show-environment | sed 's_\([^=]\+=\).*_\1_' ) + compopt -o nospace + fi + +-- +1.7.7 + +_______________________________________________ +systemd-devel mailing list +systemd-devel@lists.freedesktop.org +http://lists.freedesktop.org/mailman/listinfo/systemd-devel + diff --git a/systemd-gtk.changes b/systemd-gtk.changes index 2391e022..e807819c 100644 --- a/systemd-gtk.changes +++ b/systemd-gtk.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com + +- Recommends dbus-1-python, do not requires python (bnc#716939) +- Add private_tmp_crash.patch: prevent crash in debug mode + (bnc#699829). +- Add systemctl-completion-fix.patch: fix incorrect bash completion + with some commands (git). + ------------------------------------------------------------------- Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com diff --git a/systemd.changes b/systemd.changes index 2391e022..e807819c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Oct 14 13:07:07 UTC 2011 - fcrozat@suse.com + +- Recommends dbus-1-python, do not requires python (bnc#716939) +- Add private_tmp_crash.patch: prevent crash in debug mode + (bnc#699829). +- Add systemctl-completion-fix.patch: fix incorrect bash completion + with some commands (git). + ------------------------------------------------------------------- Wed Oct 12 13:21:15 UTC 2011 - fcrozat@suse.com diff --git a/systemd.spec b/systemd.spec index 6c973dc4..3cccecbf 100644 --- a/systemd.spec +++ b/systemd.spec @@ -19,6 +19,8 @@ %define build_plymouth 0 +#don't require python, use recommends (bnc#716939) + Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 37 @@ -45,6 +47,7 @@ Requires: kbd Requires: util-linux >= 2.19 Requires: pam-config Requires: systemd-presets-branding +Recommends: dbus-1-python Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 @@ -67,6 +70,8 @@ Patch10: 0001-service-Fix-dependencies-added-when-parsing-insserv..patch Patch13: 0001-service-flags-sysv-service-with-detected-pid-as-Rema.patch Patch15: support-sysvinit.patch Patch16: modules_on_boot.patch +Patch17: private_tmp_crash.patch +Patch18: systemctl-completion-fix.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -122,6 +127,8 @@ Plymouth integration for systemd %patch13 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 %build autoreconf -fiv @@ -139,6 +146,9 @@ make %{?_smp_mflags} %install %makeinstall + +#workaround for 716939 +chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' @@ -251,7 +261,7 @@ rm -rf %{buildroot} /bin/systemd-machine-id-setup /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge -/usr/bin/systemd-analyze +%attr(0755,root,root) /usr/bin/systemd-analyze %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.*