X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm-build-macros.git;a=blobdiff_plain;f=rpm.macros;h=d195ae0f3d2ca397af4748b168dda9911b724c88;hp=b0caa45d9c16bae0134291206944d8ae80f3c581;hb=595170069e3a9ee6aef5a92f419be9c0c3d74321;hpb=0996175992b34613ba51b5e66a12cfc36ed7a997 diff --git a/rpm.macros b/rpm.macros index b0caa45..d195ae0 100644 --- a/rpm.macros +++ b/rpm.macros @@ -686,6 +686,30 @@ __spec_install_post_check_so() { \ %{!?no_install_post_check_so:return $fail;} \ }; __spec_install_post_check_so }} +#----------------------------------------------------------------- +# Verify that for each directory under /var/run package contains +# tmpfiles.d configuration. Warn and terminate build if config is +# missing. +# +#%no_install_post_check_tmpfiles 1 +# +%__spec_install_post_check_tmpfiles { \ +__spec_install_post_check_tmpfiles() { \ +%{!?debug:set +x;} \ + fail=0; \ + echo "Checking /var/run <-> tmpfiles.d completeness..."; \ + for d in $RPM_BUILD_ROOT/var/run/*; do \ + [ -d "$d" ] || continue; \ + d=${d##$RPM_BUILD_ROOT}; \ + if ! LC_ALL=C grep -qs "$d" $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/*.conf $RPM_BUILD_ROOT/etc/tmpfiles.d/*.conf; then\ + echo "No tmpfiles configuration for '$d'";\ + fail=1 ; \ + fi \ + done ; \ + echo " DONE"; \ + %{!?no_install_post_check_tmpfiles:return $fail;} \ +}; __spec_install_post_check_tmpfiles }} + #----------------------------------------------------------------- # Find and gzip all kernel modules # @@ -2051,34 +2075,50 @@ fi; \ %{nil} -# pre/post script for -systemd subpackages +# pre/post script for packages supporting systemd units # # Author: Bartlomiej Zimon # # Usage: # %systemd_reload # %systemd_post service_name1.service service_name2.service -# %systemd_preun service_name1.service service_name2.service +# %systemd_preun service_name1.service service_name2.service +# %systend_trigger service_name1.service service_name2.service # # Sample: -# %post systemd -# %systemd_reload -# or if service must be enabled by default: -# %post systemd +# %post # %systemd_post %{name}.service # -# %preun systemd +# %preun # %systemd_preun %{name}.service # -# %postun systemd +# %postun # %systemd_reload # +# %triggerpostun -- %{name} < first-version-with-systemd-units +# %systemd_trigger %{name}.service +# # Requirements: # BuildRequires: rpmbuild(macros) >= 1.627 # Requires: systemd-units >= 37-0.10 %systemd_reload /bin/systemd_booted && SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog /bin/systemctl --quiet daemon-reload || : +%systemd_trigger() \ +want_enable_service() { \ + [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \ + [ ${RPM_ENABLE_SYSTEMD_SERVICE:-yes} = no ] && return 1 \ + /sbin/chkconfig --list ${1%.service} 2>/dev/null | grep -qsv "[0-6]:on" && return 1 \ + return 0 \ +}\ + export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ + for s in %{*}; do \ + if want_enable_service $s; then \ + /bin/systemctl --quiet enable $s || : \ + fi \ + done \ +%{nil} + %systemd_post() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl --quiet daemon-reload || : \