]> git.pld-linux.org Git - packages/util-linux.git/commitdiff
- added systemd service for blockdev auto/th/util-linux-2.24-4
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 29 Dec 2013 20:00:59 +0000 (21:00 +0100)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 29 Dec 2013 20:00:59 +0000 (21:00 +0100)
- rel 4

blockdev.service [new file with mode: 0644]
blockdev.sh [new file with mode: 0644]
util-linux.spec

diff --git a/blockdev.service b/blockdev.service
new file mode 100644 (file)
index 0000000..cc0e6e9
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Advanced block devices setup
+After=local-fs.target
+
+[Service]
+Type=oneshot
+ExecStart=/lib/systemd/pld-helpers.d/blockdev.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/blockdev.sh b/blockdev.sh
new file mode 100644 (file)
index 0000000..adb4348
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+[ -f /etc/sysconfig/blockdev ] || exit 0
+
+blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
+[ -n "$blockdevs" ] || exit 0
+
+# Source blockdev configuration.
+. /etc/sysconfig/blockdev
+
+for var in $blockdevs; do
+       realdrive=
+       drive=${var#BLOCKDEV_}
+       if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
+               realdrive="/dev/${drive}"
+       elif [ -e "/dev/mapper/${drive}" ]; then
+               realdrive="/dev/mapper/${drive}"
+       elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
+               realdrive="/dev/${drive}"
+       elif [ -e "/dev/mapper/${drive}" ]; then
+               realdrive="/dev/mapper/${drive}"
+       fi
+
+       if [ -n "$realdrive" ]; then
+               eval PARAMS=\$$var
+               if [ -n "${PARAMS}" ]; then
+                       /sbin/blockdev ${PARAMS} $realdrive
+               fi
+       fi
+done
+
+exit 0
index 617db4c18a404676394f37485951aaf216bf15d9..91d3902c0a54ea4316318505e6c8b7b069488b00 100644 (file)
@@ -37,7 +37,7 @@ Summary(tr.UTF-8):    Temel sistem araçları
 Summary(uk.UTF-8):     Набір базових системних утиліт для Linux
 Name:          util-linux
 Version:       2.24
-Release:       3
+Release:       4
 License:       GPL
 Group:         Applications/System
 Source0:       https://www.kernel.org/pub/linux/utils/util-linux/v2.24/%{name}-%{version}.tar.xz
@@ -54,6 +54,8 @@ Source8:      runuser.pamd
 Source9:       runuser-l.pamd
 Source10:      nologin.c
 Source11:      nologin.8
+Source12:      blockdev.service
+Source13:      blockdev.sh
 Patch0:                %{name}-pl.po-update.patch
 Patch1:                %{name}-ng-union-mount.patch
 
@@ -72,6 +74,7 @@ BuildRequires:        gettext-devel >= 0.14.1
 %{?with_fallocate:BuildRequires:       glibc-devel >= 6:2.11}
 BuildRequires: gtk-doc >= 1.10
 BuildRequires: gtk-doc-automake >= 1.10
+BuildRequires: libcap-ng-devel
 %{?with_selinux:BuildRequires: libselinux-devel >= 2.0}
 %{?with_selinux:BuildRequires: libsepol-devel}
 BuildRequires: libtool >= 2:2.2
@@ -81,7 +84,7 @@ BuildRequires:        pam-devel >= %{pam_ver}
 BuildRequires: pkgconfig
 BuildRequires: python3-devel
 BuildRequires: rpm >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.470
+BuildRequires: rpmbuild(macros) >= 1.671
 BuildRequires: sed >= 4.0
 BuildRequires: tar >= 1:1.22
 BuildRequires: udev-devel
@@ -196,8 +199,10 @@ Summary:   Support for blockdev
 Summary(pl.UTF-8):     Obsługa blockdev
 Group:         Applications/System
 Requires(post,preun):  /sbin/chkconfig
+Requires(post,preun,postun):   systemd-units >= 38
 Requires:      coreutils
 Requires:      rc-scripts >= 0.4.3.0
+Requires:      systemd-units >= 38
 
 %description -n blockdev
 The utility blockdev allows one to call block device ioctls from the
@@ -783,7 +788,8 @@ export CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses -DHAVE_LSEEK64_PROTOTYPE
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,init,security} \
-       $RPM_BUILD_ROOT{/%{_lib},/var/{lock,lib/libuuid}}
+       $RPM_BUILD_ROOT{/%{_lib},/var/{lock,lib/libuuid}} \
+       $RPM_BUILD_ROOT{/lib/systemd/pld-helpers.d,%{systemdunitdir}}
 %{?with_dietlibc:install -d $RPM_BUILD_ROOT%{dietlibdir}}
 
 %{__make} install \
@@ -799,6 +805,8 @@ cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/login
 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/blockdev
 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/blockdev
 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/init/blockdev.conf
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/blockdev.service
+cp -p %{SOURCE13} $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d/blockdev.sh
 %if %{with su}
 ln -s ../sbin/runuser  $RPM_BUILD_ROOT/bin/runuser
 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/su
@@ -887,12 +895,20 @@ rm -rf $RPM_BUILD_ROOT
 %post -n blockdev
 /sbin/chkconfig --add blockdev
 %service blockdev restart
+%systemd_post blockdev.service
 
 %preun -n blockdev
 if [ "$1" = "0" ]; then
        %service blockdev stop
        /sbin/chkconfig --del blockdev
 fi
+%systemd_preun blockdev.service
+
+%postun -n blockdev
+%systemd_reload
+
+%triggerpostun -n blockdev -- blockdev < 2.24-4
+%systemd_trigger blockdev.service
 
 %post  -n libblkid -p /sbin/ldconfig
 %postun -n libblkid -p /sbin/ldconfig
@@ -1365,6 +1381,8 @@ fi
 %attr(755,root,root) /sbin/blockdev
 %{_mandir}/man8/blockdev.8*
 %lang(ja) %{_mandir}/ja/man8/blockdev.8*
+%{systemdunitdir}/blockdev.service
+%attr(755,root,root) /lib/systemd/pld-helpers.d/blockdev.sh
 
 %files -n mount
 %defattr(644,root,root,755)
This page took 0.165938 seconds and 4 git commands to generate.