From 05654b6ccd0dd1a7ccb001b24f46e443f3e5a156 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sat, 25 Feb 2017 11:57:58 +0100 Subject: [PATCH] - add dmraid-activation service and script from main systemd package - rel 3 --- dmraid-activation.service | 14 ++++++++++++++ dmraid-activation.sh | 20 ++++++++++++++++++++ dmraid.spec | 29 +++++++++++++++++++++++++---- 3 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 dmraid-activation.service create mode 100644 dmraid-activation.sh diff --git a/dmraid-activation.service b/dmraid-activation.service new file mode 100644 index 0000000..e8061ec --- /dev/null +++ b/dmraid-activation.service @@ -0,0 +1,14 @@ +[Unit] +Description=Activation of DM RAID sets +DefaultDependencies=no +Conflicts=shutdown.target +After=systemd-udev-settle.service +Before=lvm2-activation-early.service cryptsetup.target local-fs-pre.target shutdown.target +Wants=systemd-udev-settle.service + +[Service] +ExecStart=/lib/systemd/dmraid-activation +Type=oneshot + +[Install] +WantedBy=sysinit.target diff --git a/dmraid-activation.sh b/dmraid-activation.sh new file mode 100644 index 0000000..c9a50cc --- /dev/null +++ b/dmraid-activation.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Read functions +. /lib/rc-scripts/functions + +if [ -x /sbin/dmraid ]; then + modprobe -s dm-mod >/dev/null 2>&1 + modprobe -s dm-mirror >/dev/null 2>&1 + dmraidsets=$(LC_ALL=C /sbin/dmraid -s -c -i) + if [ "$?" = "0" ]; then + oldIFS=$IFS + IFS=$(echo -en "\n\b") + for dmname in $dmraidsets ; do + [[ "$dmname" = isw_* ]] && continue + /sbin/dmraid -ay -i --rm_partitions -p "$dmname" + [ -x /sbin/kpartx ] && /sbin/kpartx -u -a -p p "/dev/mapper/$dmname" + done + IFS=$oldIFS + fi +fi diff --git a/dmraid.spec b/dmraid.spec index 879ea18..d78f808 100644 --- a/dmraid.spec +++ b/dmraid.spec @@ -4,7 +4,7 @@ %bcond_with dietlibc # build initrd version with static glibc instead of dietlibc %bcond_without selinux # build without SELinux support (needs selinux-disabled device-mapper) -%define rel 2 +%define rel 3 %define subver rc16.3 Summary: Device-mapper RAID tool Summary(pl.UTF-8): Narzędzie do RAID-u opartego o device-mapper @@ -15,6 +15,8 @@ License: GPL v2+ Group: Base Source0: http://people.redhat.com/~heinzm/sw/dmraid/src/%{name}-%{version}.rc16-3.tar.bz2 # Source0-md5: 819338fcef98e8e25819f0516722beeb +Source1: dmraid-activation.sh +Source2: dmraid-activation.service Patch0: %{name}-selinux-static.patch Patch1: %{name}-optflags.patch Patch2: %{name}-unsigned.patch @@ -43,6 +45,8 @@ BuildRequires: libsepol-static BuildRequires: libselinux-devel BuildRequires: libsepol-devel %endif +BuildRequires: rpmbuild(macros) >= 1.671 +Requires: systemd-units >= 38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sbindir /sbin @@ -140,7 +144,7 @@ mv -f tools/dmraid dmraid-initrd %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/%{_lib} +install -d $RPM_BUILD_ROOT{/%{_lib},%{systemdunitdir}} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT @@ -154,15 +158,32 @@ install -d $RPM_BUILD_ROOT%{_libdir}/initrd install -p dmraid-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/dmraid %endif +# Install systemd unit +install -p %{SOURCE1} $RPM_BUILD_ROOT/lib/systemd/dmraid-activation +install -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/dmraid-activation.service + %clean rm -rf $RPM_BUILD_ROOT -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post +/sbin/ldconfig +%systemd_post dmraid-activation.service + +%preun +%systemd_preun dmraid-activation.service + +%postun +/sbin/ldconfig +%systemd_reload + +%triggerpostun -- %{name} < 1.0.0-0.rc16.3.3 +%systemd_trigger dmraid-activation.service %files %defattr(644,root,root,755) %doc CHANGELOG CREDITS KNOWN_BUGS README TODO doc/dmraid_design.txt +%attr(755,root,root) /lib/systemd/dmraid-activation +%{systemdunitdir}/dmraid-activation.service %attr(755,root,root) %{_sbindir}/dmevent_tool %attr(755,root,root) %{_sbindir}/dmraid %attr(755,root,root) /%{_lib}/libdmraid.so.*.*.* -- 2.43.0