BZ 748442

convert init.d to systemd for f17 and beyond
(Will let this soak in rawhide for a while before merging to f16.
N.B. f16 continues to use init.d forever; the spec file installs
init.d file for 16 and earlier, systemd files for f17 and later.)
This commit is contained in:
Kaleb S. KEITHLEY 2011-11-02 14:05:43 -04:00
parent 84b84bad0e
commit ff4f8fdd5c
3 changed files with 90 additions and 33 deletions

13
glusterd.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=GlusterFS an clustered file-system server
Wants=glusterfsd.service
After=network.target
[Service]
Type=forking
PIDFile=/run/glusterd.pid
LimitNOFILE=65536
ExecStart=/usr/sbin/glusterd -p /run/glusterd.pid
[Install]
WantedBy=multi-user.target

View File

@ -9,22 +9,27 @@
Name: glusterfs
Version: 3.2.4
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Clustered file-system
Group: System Environment/Base
License: AGPLv3
URL: http://www.gluster.org/
Source0: http://download.gluster.com/pub/gluster/glusterfs/3.2/%{version}/glusterfs-%{version}.tar.gz
Source1: glusterd.init
Source2: glusterd.sysconfig
Source1: glusterd.sysconfig
Source2: glusterfsd.sysconfig
Source3: umount.glusterfs
Source4: glusterfs-fuse.logrotate
Source5: glusterd.logrotate
Source6: glusterfsd.logrotate
%if 0%{?fedora} < 17
# Legacy server
Source11: glusterfsd.init
Source12: glusterfsd.sysconfig
Source15: glusterfsd.logrotate
Source7: glusterd.init
Source8: glusterfsd.init
%else
Source7: glusterd.service
Source8: glusterfsd.service
%endif
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: bison
@ -33,10 +38,24 @@ BuildRequires: gcc
BuildRequires: make
BuildRequires: ncurses-devel, readline-devel, python-ctypes
%if 0%{?fedora} < 17
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
%define _daemon_enable() /sbin/chkconfig --add %1 ;
%define _daemon_disable() /sbin/chkconfig --del %1 ;
%define _daemon_restart() /sbin/service %1 condrestart &>/dev/null ;
%define _daemon_stop() /sbin/service %1 stop &>/dev/null ;
%else
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
%define _daemon_enable() /bin/systemctl enable %1.service ;
%define _daemon_disable() /bin/systemctl disable %1.service ;
%define _daemon_restart() /bin/systemctl try-restart %1.service ;
%define _daemon_stop() /bin/systemctl stop %1.service ;
%endif
Obsoletes: %{name}-libs <= 2.0.0
Obsoletes: %{name}-common < 3.1.0
@ -191,8 +210,13 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
find %{buildroot}%{_libdir} -name '*.a' -delete
find %{buildroot}%{_libdir} -name '*.la' -delete
# Remove what the `make install` did, %%doc will install later
%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs
# Remove installed docs, we include them ourselves as %%doc
%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/
# Rename the samples, so we can include them as %%config
for file in %{buildroot}%{_sysconfdir}/glusterfs/*.sample; do
%{__mv} ${file} `dirname ${file}`/`basename ${file} .sample`
done
# Create working directory
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/glusterd
@ -206,14 +230,21 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{__rm} -f examples/Makefile*
# Install init script and sysconfig file
%{__install} -D -p -m 0755 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/init.d/glusterd
%{__install} -D -p -m 0644 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
%if 0%{?fedora} < 17
# Legacy init script and sysconfig file
%{__install} -D -p -m 0755 %{SOURCE11} \
%{__install} -D -p -m 0755 %{SOURCE7} \
%{buildroot}%{_sysconfdir}/init.d/glusterd
%{__install} -D -p -m 0755 %{SOURCE8} \
%{buildroot}%{_sysconfdir}/init.d/glusterfsd
%{__install} -D -p -m 0644 %{SOURCE12} \
%else
%{__install} -D -p -m 0644 %{SOURCE7} \
%{buildroot}%{_unitdir}/glusterd.service
%{__install} -D -p -m 0644 %{SOURCE8} \
%{buildroot}%{_unitdir}/glusterfsd.service
%endif
%{__install} -D -p -m 0644 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
%{__install} -D -p -m 0644 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
# Install wrapper umount script
@ -227,7 +258,7 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%{__install} -D -p -m 0644 %{SOURCE5} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterd
# Legacy server logrotate entry
%{__install} -D -p -m 0644 %{SOURCE15} \
%{__install} -D -p -m 0644 %{SOURCE6} \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfsd
# Install vim syntax plugin
@ -275,7 +306,7 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%files server
%defattr(-,root,root,-)
%doc examples/{*.vol,README} doc/*.sample
%doc examples/ doc/glusterfs*.vol.sample
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
%config(noreplace) %{_sysconfdir}/glusterfs
@ -283,9 +314,14 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfsd
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
%{_sharedstatedir}/glusterd
%{_sysconfdir}/init.d/glusterd
%if 0%{?fedora} < 17
# Legacy init
%{_sysconfdir}/init.d/glusterd
%{_sysconfdir}/init.d/glusterfsd
%else
%{_unitdir}/glusterd.service
%{_unitdir}/glusterfsd.service
%endif
%files vim
%defattr(-,root,root,-)
@ -303,32 +339,28 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%postun -p /sbin/ldconfig
%post server
/sbin/chkconfig --add glusterd
# Legacy server
/sbin/chkconfig --add glusterfsd
%_daemon_enable glusterd
%_daemon_enable glusterfsd
%preun server
if [ $1 -eq 0 ]; then
/sbin/service glusterd stop &>/dev/null || :
/sbin/chkconfig --del glusterd
%_daemon_stop glusterfsd
%_daemon_stop glusterd
%_daemon_disable glusterfsd
%_daemon_disable glusterd
fi
if [ $1 -ge 1 ]; then
/sbin/service glusterd condrestart &>/dev/null || :
fi
# Legacy server
if [ $1 -eq 0 ]; then
/sbin/service glusterfsd stop &>/dev/null || :
/sbin/chkconfig --del glusterfsd
fi
if [ $1 -ge 1 ]; then
/sbin/service glusterfsd condrestart &>/dev/null || :
%_daemon_restart glusterd
%_daemon_restart glusterfsd
fi
%changelog
* Fri Sep 30 2011 Kaleb S. KEITHLEY <kkeithle@redhat.com> - 3.2.4-2
- Convert init.d to systemd for f17 and later
* Fri Sep 30 2011 Kaleb S. KEITHLEY <kkeithle@redhat.com> - 3.2.4-1
- Update to 3.2.4
- Update to 3.2.4
* Mon Aug 22 2011 Kaleb S. KEITHLEY <kkeithle@redhat.com> - 3.2.3-1
- Update to 3.2.3

12
glusterfsd.service Normal file
View File

@ -0,0 +1,12 @@
[Unit]
Description=GlusterFS an clustered file-system server
After=network.target glusterd.service
[Service]
Type=forking
PIDFile=/run/glusterfsd.pid
LimitNOFILE=65536
ExecStart=/usr/sbin/glusterfsd -p /run/glusterfsd.pid
[Install]
WantedBy=multi-user.target