- fix ipv6 name lookup check. - fix ipv6 rpc calls. - fix ipv6 configure check. - add piddir to configure. - add systemd unit support. - fix MNT_DETACH define.
389 lines
11 KiB
Diff
389 lines
11 KiB
Diff
autofs-5.0.5 - add systemd unit support
|
||
|
||
From: Ian Kent <ikent@redhat.com>
|
||
|
||
Add a systemd unit file and attempt to integrating it into our
|
||
install.
|
||
---
|
||
|
||
CHANGELOG | 1
|
||
Makefile.conf.in | 2 +
|
||
aclocal.m4 | 28 ++++++++++++++++++++++
|
||
autofs.spec | 58 +++++++++++++++++++++++++++++++++++++++++-----
|
||
configure | 47 +++++++++++++++++++++++++++++++++++++
|
||
configure.in | 9 +++++++
|
||
redhat/Makefile | 10 ++++++-
|
||
samples/Makefile | 23 +++++++++++++-----
|
||
samples/autofs.service.in | 12 +++++++++
|
||
9 files changed, 176 insertions(+), 14 deletions(-)
|
||
create mode 100644 samples/autofs.service.in
|
||
|
||
|
||
--- autofs-5.0.6.orig/CHANGELOG
|
||
+++ autofs-5.0.6/CHANGELOG
|
||
@@ -17,6 +17,7 @@
|
||
- fix ipv6 rpc calls.
|
||
- fix ipv6 configure check.
|
||
- add piddir to configure.
|
||
+- add systemd unit support.
|
||
|
||
28/06/2011 autofs-5.0.6
|
||
-----------------------
|
||
--- autofs-5.0.6.orig/Makefile.conf.in
|
||
+++ autofs-5.0.6/Makefile.conf.in
|
||
@@ -98,3 +98,5 @@ mandir = @mandir@
|
||
# Location for init.d files
|
||
initdir = @initdir@
|
||
|
||
+# Location of systemd unit files
|
||
+systemddir = @systemddir@
|
||
--- autofs-5.0.6.orig/aclocal.m4
|
||
+++ autofs-5.0.6/aclocal.m4
|
||
@@ -199,6 +199,34 @@ fi], [AC_MSG_RESULT(no)])
|
||
])
|
||
|
||
dnl --------------------------------------------------------------------------
|
||
+dnl AF_WITH_SYSTEMD
|
||
+dnl
|
||
+dnl Check the location of the systemd unit files directory
|
||
+dnl --------------------------------------------------------------------------
|
||
+AC_DEFUN([AF_WITH_SYSTEMD],
|
||
+[AC_ARG_WITH(systemd,
|
||
+[ --with-systemd install systemd unit file if systemd unit directory
|
||
+ is found on system],
|
||
+[if test "$withval" = yes; then
|
||
+ if test -z "$systemddir"; then
|
||
+ AC_MSG_CHECKING([location of the systemd unit files directory])
|
||
+ for systemd_d in /lib/systemd/system; do
|
||
+ if test -z "$systemddir"; then
|
||
+ if test -d "$systemd_d"; then
|
||
+ systemddir="$systemd_d"
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+ fi
|
||
+ if test -n "$systemddir"; then
|
||
+ AC_MSG_RESULT($systemddir)
|
||
+ else
|
||
+ AC_MSG_RESULT(not found)
|
||
+ fi
|
||
+fi])
|
||
+])
|
||
+
|
||
+dnl --------------------------------------------------------------------------
|
||
dnl AF_CHECK_LIBXML
|
||
dnl
|
||
dnl Check for lib xml
|
||
--- autofs-5.0.6.orig/autofs.spec
|
||
+++ autofs-5.0.6/autofs.spec
|
||
@@ -8,6 +8,10 @@
|
||
%define _lib lib64
|
||
%endif
|
||
|
||
+# Use --without systemd in your rpmbuild command or force values to 0 to
|
||
+# disable them.
|
||
+%define with_systemd %{?_without_systemd: 0} %{?!_without_systemd: 1}
|
||
+
|
||
Summary: A tool from automatically mounting and umounting filesystems.
|
||
Name: autofs
|
||
%define version 5.0.6
|
||
@@ -18,9 +22,18 @@ License: GPL
|
||
Group: System Environment/Daemons
|
||
Source: ftp://ftp.kernel.org/pub/linux/daemons/autofs/v4/autofs-%{version}.tar.gz
|
||
Buildroot: %{_tmppath}/%{name}-tmp
|
||
+%if %{with_systemd}
|
||
+BuildRequires: systemd-units
|
||
+%endif
|
||
BuildPrereq: autoconf, hesiod-devel, openldap-devel, bison, flex, cyrus-sasl-devel
|
||
Prereq: chkconfig
|
||
Requires: /bin/bash mktemp sed textutils sh-utils grep /bin/ps
|
||
+%if %{with_systemd}
|
||
+Requires(post): systemd-sysv
|
||
+Requires(post): systemd-units
|
||
+Requires(preun): systemd-units
|
||
+Requires(postun): systemd-units
|
||
+%endif
|
||
Obsoletes: autofs-ldap
|
||
Summary(de): autofs daemon
|
||
Summary(fr): d<>mon autofs
|
||
@@ -55,14 +68,22 @@ inkludera n<>tfilsystem, CD-ROM, floppydi
|
||
%prep
|
||
%setup -q
|
||
echo %{version}-%{release} > .version
|
||
+%if %{with_systemd}
|
||
+ %define _unitdir %{?_unitdir:/lib/systemd/system}
|
||
+ %define systemd_configure_arg --with-systemd
|
||
+%endif
|
||
|
||
%build
|
||
-CFLAGS="$RPM_OPT_FLAGS -Wall" ./configure --libdir=%{_libdir} --disable-mount-locking --enable-ignore-busy --with-libtirpc --disable-mount-move
|
||
+CFLAGS="$RPM_OPT_FLAGS -Wall" ./configure --libdir=%{_libdir} --disable-mount-locking --enable-ignore-busy --with-libtirpc --disable-mount-move %{?systemd_configure_arg:}
|
||
CFLAGS="$RPM_OPT_FLAGS -Wall" make initdir=/etc/rc.d/init.d DONTSTRIP=1
|
||
|
||
%install
|
||
rm -rf $RPM_BUILD_ROOT
|
||
+%if %{with_systemd}
|
||
+install -d -m 755 $RPM_BUILD_ROOT%{_unitdir}
|
||
+%else
|
||
mkdir -p -m755 $RPM_BUILD_ROOT/etc/rc.d/init.d
|
||
+%endif
|
||
mkdir -p -m755 $RPM_BUILD_ROOT%{_sbindir}
|
||
mkdir -p -m755 $RPM_BUILD_ROOT%{_libdir}/autofs
|
||
mkdir -p -m755 $RPM_BUILD_ROOT%{_mandir}/{man5,man8}
|
||
@@ -70,31 +91,56 @@ mkdir -p -m755 $RPM_BUILD_ROOT/etc/sysco
|
||
mkdir -p -m755 $RPM_BUILD_ROOT/etc/auto.master.d
|
||
|
||
make install mandir=%{_mandir} initdir=/etc/rc.d/init.d INSTALLROOT=$RPM_BUILD_ROOT
|
||
+echo make -C redhat
|
||
make -C redhat
|
||
+%if %{with_systemd}
|
||
+install -m 644 redhat/autofs.service $RPM_BUILD_ROOT%{_unitdir}/autofs.service
|
||
+%else
|
||
install -m 755 redhat/autofs.init $RPM_BUILD_ROOT/etc/rc.d/init.d/autofs
|
||
+%endif
|
||
install -m 644 redhat/autofs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/autofs
|
||
|
||
%clean
|
||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||
|
||
%post
|
||
+%if %{with_systemd}
|
||
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||
+%else
|
||
chkconfig --add autofs
|
||
-
|
||
-%postun
|
||
-if [ $1 -ge 1 ] ; then
|
||
- /sbin/service autofs condrestart > /dev/null 2>&1 || :
|
||
-fi
|
||
+%endif
|
||
|
||
%preun
|
||
if [ "$1" = 0 ] ; then
|
||
+%if %{with_systemd}
|
||
+ /bin/systemctl --no-reload disable autofs.service > /dev/null 2>&1 || :
|
||
+ /bin/systemctl stop autofs.service > /dev/null 2>&1 || :
|
||
+%else
|
||
/sbin/service autofs stop > /dev/null 2>&1 || :
|
||
/sbin/chkconfig --del autofs
|
||
+%endif
|
||
fi
|
||
|
||
+%postun
|
||
+%if %{with_systemd}
|
||
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||
+if [ $1 -ge 1 ] ; then
|
||
+ /bin/systemctl try-restart autofs.service >/dev/null 2>&1 || :
|
||
+fi
|
||
+%else
|
||
+if [ $1 -ge 1 ] ; then
|
||
+ /sbin/service autofs condrestart > /dev/null 2>&1 || :
|
||
+fi
|
||
+%endif
|
||
+
|
||
%files
|
||
%defattr(-,root,root)
|
||
%doc CREDITS CHANGELOG INSTALL COPY* README* samples/ldap* samples/autofs.schema samples/autofs_ldap_auth.conf
|
||
+%if %{with_systemd}
|
||
+%{_unitdir}/autofs.service
|
||
+%else
|
||
%config /etc/rc.d/init.d/autofs
|
||
+%endif
|
||
%config(noreplace) /etc/auto.master
|
||
%config(noreplace,missingok) /etc/auto.misc
|
||
%config(noreplace,missingok) /etc/auto.net
|
||
--- autofs-5.0.6.orig/configure
|
||
+++ autofs-5.0.6/configure
|
||
@@ -650,6 +650,8 @@ flagdir
|
||
fifodir
|
||
mapdir
|
||
confdir
|
||
+systemddir
|
||
+piddir
|
||
initdir
|
||
target_alias
|
||
host_alias
|
||
@@ -693,6 +695,7 @@ ac_subst_files=''
|
||
ac_user_opts='
|
||
enable_option_checking
|
||
with_path
|
||
+with_systemd
|
||
with_confdir
|
||
with_mapdir
|
||
with_fifodir
|
||
@@ -1337,6 +1340,8 @@ Optional Packages:
|
||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||
--with-path=PATH look in PATH for binaries needed by the automounter
|
||
+ --with-systemd install systemd unit file if systemd unit directory
|
||
+ is found on system
|
||
--with-confdir=DIR use DIR for autofs configuration files
|
||
--with-mapdir=PATH look in PATH for mount maps used by the automounter
|
||
--with-fifodir=PATH use PATH as the directory for fifos used by the automounter
|
||
@@ -2119,6 +2124,48 @@ $as_echo "$initdir" >&6; }
|
||
done
|
||
fi
|
||
|
||
+if test -z "$piddir"; then
|
||
+ for pid_d in /run /var/run /tmp; do
|
||
+ if test -z "$piddir"; then
|
||
+ if test -d "$pid_d"; then
|
||
+ piddir="$pid_d"
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+fi
|
||
+
|
||
+
|
||
+#
|
||
+# Check for systemd unit files direectory exists if unit file installation
|
||
+# is requested
|
||
+#
|
||
+
|
||
+# Check whether --with-systemd was given.
|
||
+if test "${with_systemd+set}" = set; then :
|
||
+ withval=$with_systemd; if test "$withval" = yes; then
|
||
+ if test -z "$systemddir"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
|
||
+$as_echo_n "checking location of the systemd unit files directory... " >&6; }
|
||
+ for systemd_d in /lib/systemd/system; do
|
||
+ if test -z "$systemddir"; then
|
||
+ if test -d "$systemd_d"; then
|
||
+ systemddir="$systemd_d"
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+ fi
|
||
+ if test -n "$systemddir"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
|
||
+$as_echo "$systemddir" >&6; }
|
||
+ else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||
+$as_echo "not found" >&6; }
|
||
+ fi
|
||
+fi
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
|
||
#
|
||
# Location of system config script directory?
|
||
--- autofs-5.0.6.orig/configure.in
|
||
+++ autofs-5.0.6/configure.in
|
||
@@ -43,6 +43,15 @@ AF_LINUX_PROCFS()
|
||
#
|
||
AF_INIT_D()
|
||
AC_SUBST(initdir)
|
||
+AF_PID_D()
|
||
+AC_SUBST(piddir)
|
||
+
|
||
+#
|
||
+# Check for systemd unit files direectory exists if unit file installation
|
||
+# is requested
|
||
+#
|
||
+AF_WITH_SYSTEMD()
|
||
+AC_SUBST(systemddir)
|
||
|
||
#
|
||
# Location of system config script directory?
|
||
--- autofs-5.0.6.orig/redhat/Makefile
|
||
+++ autofs-5.0.6/redhat/Makefile
|
||
@@ -2,7 +2,7 @@
|
||
-include ../Makefile.conf
|
||
include ../Makefile.rules
|
||
|
||
-all: autofs.init autofs.sysconfig
|
||
+all: autofs.init autofs.sysconfig autofs.service
|
||
|
||
autofs.init: autofs.init.in
|
||
sed -e "s|@@sbindir@@|$(sbindir)|g" \
|
||
@@ -15,6 +15,12 @@ autofs.sysconfig: autofs.sysconfig.in
|
||
sed -e "s|@@autofsmapdir@@|$(autofsmapdir)|g" \
|
||
< autofs.sysconfig.in > autofs.sysconfig
|
||
|
||
+autofs.service: ../samples/autofs.service.in
|
||
+ sed -e "s|@@sbindir@@|$(sbindir)|g" \
|
||
+ -e "s|@@autofsconfdir@@|$(autofsconfdir)|g" \
|
||
+ -e "s|@@autofspiddir@@|$(autofspiddir)|g" \
|
||
+ < ../samples/autofs.service.in > autofs.service
|
||
+
|
||
clean:
|
||
- rm -f autofs.init autofs.sysconfig
|
||
+ rm -f autofs.init autofs.sysconfig autofs.service
|
||
|
||
--- autofs-5.0.6.orig/samples/Makefile
|
||
+++ autofs-5.0.6/samples/Makefile
|
||
@@ -4,7 +4,7 @@ include ../Makefile.rules
|
||
|
||
SAMPLES = auto.master auto.misc auto.net auto.smb
|
||
|
||
-all: rc.autofs autofs.conf.default
|
||
+all: rc.autofs autofs.conf.default autofs.service
|
||
|
||
rc.autofs: rc.autofs.in
|
||
sed -e "s|@@sbindir@@|$(sbindir)|g" \
|
||
@@ -16,6 +16,12 @@ autofs.conf.default: autofs.conf.default
|
||
sed -e "s|@@autofsmapdir@@|$(autofsmapdir)|g" \
|
||
< autofs.conf.default.in > autofs.conf.default
|
||
|
||
+autofs.service: autofs.service.in
|
||
+ sed -e "s|@@sbindir@@|$(sbindir)|g" \
|
||
+ -e "s|@@autofsconfdir@@|$(autofsconfdir)|g" \
|
||
+ -e "s|@@autofspiddir@@|$(autofspiddir)|g" \
|
||
+ < autofs.service.in > autofs.service
|
||
+
|
||
.PHONY: dirs
|
||
dirs:
|
||
install -d -m 755 $(INSTALLROOT)$(autofsmapdir)
|
||
@@ -26,13 +32,18 @@ dirs:
|
||
.PHONY: autofs.init
|
||
autofs.init:
|
||
@echo
|
||
-ifneq ($(initdir),)
|
||
+ifneq ($(systemddir),)
|
||
+ install -d -m 755 $(INSTALLROOT)$(systemddir)
|
||
+ install autofs.service -m 644 $(INSTALLROOT)$(systemddir)/autofs.service
|
||
+else
|
||
+ ifneq ($(initdir),)
|
||
install -d -m 755 $(INSTALLROOT)$(initdir)
|
||
install rc.autofs -m 755 $(INSTALLROOT)$(initdir)/autofs
|
||
-else
|
||
+ else
|
||
if test -d $(INSTALLROOT)/etc/rc.d ; then \
|
||
install -c rc.autofs -m 755 $(INSTALLROOT)/etc/rc.d ; \
|
||
fi
|
||
+ endif
|
||
endif
|
||
|
||
CONFIG = $(shell test -e $(INSTALLROOT)$(autofsconfdir)/autofs.orig || echo "-b --suffix=.orig")
|
||
@@ -173,10 +184,10 @@ auto.smb:
|
||
fi ; \
|
||
fi
|
||
|
||
-install: rc.autofs autofs.conf.default dirs autofs.init autofs.conf \
|
||
- autofs_ldap_auth.conf $(SAMPLES)
|
||
+install: rc.autofs autofs.conf.default dirs autofs.init autofs.service \
|
||
+ autofs.conf autofs_ldap_auth.conf $(SAMPLES)
|
||
@echo
|
||
|
||
clean:
|
||
- rm -f *.o *.s rc.autofs autofs.conf.default
|
||
+ rm -f *.o *.s rc.autofs autofs.conf.default autofs.service
|
||
|
||
--- /dev/null
|
||
+++ autofs-5.0.6/samples/autofs.service.in
|
||
@@ -0,0 +1,12 @@
|
||
+[Unit]
|
||
+Description=Automounts filesystems on demand
|
||
+After=network.target ypbind.service
|
||
+
|
||
+[Service]
|
||
+Type=forking
|
||
+PIDFile=@@autofspiddir@@/autofs.pid
|
||
+EnvironmentFile=-@@autofsconfdir@@/autofs
|
||
+ExecStart=@@sbindir@@/automount ${OPTIONS} --pid-file @@autofspiddir@@/autofs.pid
|
||
+
|
||
+[Install]
|
||
+WantedBy=multi-user.target
|