From: Jan Rękorajski Date: Sun, 29 Dec 2013 20:00:59 +0000 (+0100) Subject: - added systemd service for blockdev X-Git-Tag: auto/th/util-linux-2.24-4 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=d18bf87751ec850b1879cba1d429ae25453c90be;p=packages%2Futil-linux.git - added systemd service for blockdev - rel 4 --- diff --git a/blockdev.service b/blockdev.service new file mode 100644 index 0000000..cc0e6e9 --- /dev/null +++ b/blockdev.service @@ -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 index 0000000..adb4348 --- /dev/null +++ b/blockdev.sh @@ -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 diff --git a/util-linux.spec b/util-linux.spec index 617db4c..91d3902 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -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)