diff options
Diffstat (limited to 'memcached.spec.in')
-rw-r--r-- | memcached.spec.in | 126 |
1 files changed, 100 insertions, 26 deletions
diff --git a/memcached.spec.in b/memcached.spec.in index e065615..cf510a4 100644 --- a/memcached.spec.in +++ b/memcached.spec.in @@ -1,3 +1,21 @@ +# Set with_systemd on distros that use it, so we can install the service +# file, otherwise the sysvinit script will be installed +%if 0%{?fedora} >= 14 || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210 +%global with_systemd 1 +BuildRequires: systemd-units + +# Disable some systemd safety features on OSes without a new enough systemd +# (new enough is systemd >= 233) +%if 0%{?fedora} < 26 || 0%{?rhel} > 0 +%global safer_systemd 0 +%else +%global safer_systemd 1 +%endif + +%else +%global with_systemd 0 +%endif + Name: memcached Version: @VERSION@ Release: @RELEASE@%{?dist} @@ -6,16 +24,25 @@ Summary: High Performance, Distributed Memory Object Cache Group: System Environment/Daemons License: BSD URL: http://memcached.org -Source0: http://memcached.org/files/%{name}-@FULLVERSION@.tar.gz +Source0: http://memcached.org/files/%{name}-%{version}.tar.gz +Source1: memcached.sysconfig +Source2: memcached.service +Source3: memcached@.service BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libevent-devel BuildRequires: perl(Test::More) BuildRequires: /usr/bin/prove Requires: initscripts +%if %{with_systemd} +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%else Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): /sbin/service +%endif %description memcached is a high-performance, distributed memory object caching @@ -23,7 +50,7 @@ system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. %prep -%setup -q -n %{name}-@FULLVERSION@ +%setup -q -n %{name}-%{version} %build @@ -31,53 +58,90 @@ web applications by alleviating database load. make %{?_smp_mflags} + %check make test + %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} # remove memcached-debug -rm -f %{buildroot}/%{_bindir}/memcached-debug +rm -f %{buildroot}/%{_bindir}/%{name}-debug # Perl script for monitoring memcached -install -Dp -m0755 scripts/memcached-tool %{buildroot}%{_bindir}/memcached-tool +install -Dp -m0755 scripts/memcached-tool %{buildroot}%{_bindir}/%{name}-tool # Init script -install -Dp -m0755 scripts/memcached.sysv %{buildroot}%{_initrddir}/memcached +%if %{with_systemd} +install -Dp -m0755 scripts/memcached.service %{buildroot}%{_unitdir}/%{name}.service +install -Dp -m0755 scripts/memcached@.service %{buildroot}%{_unitdir}/%{name}@.service + +if [ %{safer_systemd} -gt 0 ]; then + sed -e -i 's/^##safer##//g' %{buildroot}%{_unitdir}/%{name}.service %{buildroot}%{_unitdir}/%{name}@.service +else + sed -e -i 's/^##safer##/#/g' %{buildroot}%{_unitdir}/%{name}.service %{buildroot}%{_unitdir}/%{name}@.service +fi +%else +install -Dp -m0755 scripts/memcached.sysv %{buildroot}%{_initrddir}/%{name} +%endif # Default configs -mkdir -p %{buildroot}/%{_sysconfdir}/sysconfig -cat <<EOF >%{buildroot}/%{_sysconfdir}/sysconfig/%{name} -PORT="11211" -USER="nobody" -MAXCONN="1024" -CACHESIZE="64" -OPTIONS="" -EOF +install -Dp -m0644 scripts/memcached.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/%{name} # pid directory -mkdir -p %{buildroot}/%{_localstatedir}/run/memcached +mkdir -p %{buildroot}/%{_localstatedir}/run/%{name} + %clean rm -rf %{buildroot} %post -/sbin/chkconfig --add %{name} +if [ $1 -eq 1 ]; then + # Initial install +%if %{with_systemd} + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +%else + /sbin/chkconfig --add %{name} +%endif +fi + %preun if [ "$1" = 0 ] ; then - /sbin/service %{name} stop > /dev/null 2>&1 + # Removal, not upgrade +%if %{with_systemd} + /bin/systemctl --no-reload disable %{name}.service > /dev/null 2>&1 || : + /bin/systemctl --no-reload disable %{name}@\*.service > /dev/null 2>&1 || : + /bin/systemctl stop %{name}.service > /dev/null 2>&1 || : + /bin/systemctl stop %{name}@\*.service > /dev/null 2>&1 || : +%else + /sbin/service %{name} stop > /dev/null 2&>1 || : /sbin/chkconfig --del %{name} +%endif fi + exit 0 + %postun -if [ "$1" -ge 1 ]; then - /sbin/service %{name} condrestart > /dev/null 2>&1 -fi +%if %{with_systemd} + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +%endif + +# Don't auto-restart memcached on upgrade -- let user control when cache flushes +# if [ "$1" -ge 1 ]; then +# # upgrade, not install +# %if %{with_systemd} +# /bin/systemctl try-restart %{name}.service +# /bin/systemctl try-restart %{name}@\*.service +# %else +# /sbin/service %named condrestart 2>/dev/null || : +# %endif +#fi + exit 0 @@ -86,14 +150,24 @@ exit 0 %doc AUTHORS ChangeLog COPYING NEWS README.md doc/CONTRIBUTORS doc/*.txt %config(noreplace) %{_sysconfdir}/sysconfig/%{name} -%dir %attr(750,nobody,nobody) %{_localstatedir}/run/memcached -%{_bindir}/memcached-tool -%{_bindir}/memcached -%{_mandir}/man1/memcached.1* -%{_initrddir}/memcached -%{_includedir}/memcached +%dir %attr(750,nobody,nobody) %{_localstatedir}/run/%{name} +%{_bindir}/%{name}-tool +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1* +%{_includedir}/%{name} + +%if %{with_systemd} +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}@.service +%else +%{_initrddir}/%{name} +%endif %changelog +* Wed Jul 5 2017 J. Grizzard <jg-github@lupine.org> - 1.4.39 +- Add systemd-aware build +- Add both static and instanced versions of memcached unit files + * Mon Nov 2 2009 Dormando <dormando@rydia.net> - 1.4.3-1 - Fix autogen more. @@ -113,7 +187,7 @@ exit 0 - above suggestions from Bernard Johnson * Mon May 7 2007 Paul Lindner <lindner@inuus.com> - 1.2.2-2 -- Tidiness improvements suggested by Ruben Kerkhof in bugzilla #238994 +- Tidyness improvements suggested by Ruben Kerkhof in bugzilla #238994 * Fri May 4 2007 Paul Lindner <lindner@inuus.com> - 1.2.2-1 - Initial spec file created via rpmdev-newspec |