From 73e464227e99d6abacdd2e909dee72f56b58ea12 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 26 Nov 2012 09:05:24 +0100 Subject: memcached: sync with rawhide + backport stuff --- memcached.spec | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 154 insertions(+), 19 deletions(-) (limited to 'memcached.spec') diff --git a/memcached.spec b/memcached.spec index 3a460c2..89381c3 100644 --- a/memcached.spec +++ b/memcached.spec @@ -1,10 +1,16 @@ %global username memcached %global groupname memcached +%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7 +%global with_systemd 1 +%else +%global with_systemd 0 +%endif + Name: memcached -Version: 1.4.5 -Release: 2%{?dist}.1 -Epoch: 0 +Version: 1.4.15 +Release: 1%{?dist} +Epoch: 0 Summary: High Performance, Distributed Memory Object Cache Group: System Environment/Daemons @@ -12,23 +18,35 @@ License: BSD URL: http://www.memcached.org/ Source0: http://memcached.googlecode.com/files/%{name}-%{version}.tar.gz +# custom unit file +Source1: memcached.service # custom init script -Source1: memcached.sysv -Source2: memcached.sysvel4 +Source2: memcached.sysv + +# Patches # Fixes BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libevent-devel -BuildRequires: perl(Test::More) - +BuildRequires: perl(Test::More), perl(Test::Harness) + +%if %{with_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +# For triggerun +Requires(post): systemd-sysv +%else Requires: initscripts Requires: libevent -Requires(pre): shadow-utils Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig, /sbin/service Requires(postun): /sbin/service +%endif +Requires(pre): shadow-utils + # as of 3.5.5-4 selinux has memcache included Obsoletes: memcached-selinux @@ -38,6 +56,7 @@ memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. + %package devel Summary: Files needed for development using memcached protocol Group: Development/Libraries @@ -47,41 +66,49 @@ Requires: %{name} = %{epoch}:%{version}-%{release} Install memcached-devel if you are developing C/C++ applications that require access to the memcached binary include files. + %prep %setup -q + %build %configure - +sed -i 's/-Werror/ /' Makefile make %{?_smp_mflags} %check +# whitespace tests fail locally on fedpkg systems now that they use git +rm -f t/whitespace.t + # Parts of the test suite only succeed as non-root. if [ `id -u` -ne 0 ]; then # remove failing test that doesn't work in # build systems - rm -f t/daemonize.t - make test + rm -f t/daemonize.t fi +make test + %install rm -rf %{buildroot} -make install DESTDIR=%{buildroot} INSTALL="%{__install} -p" +make install DESTDIR=%{buildroot} INSTALL="%{__install} -p" # remove memcached-debug rm -f %{buildroot}/%{_bindir}/memcached-debug # Perl script for monitoring memcached install -Dp -m0755 scripts/memcached-tool %{buildroot}%{_bindir}/memcached-tool +%if %{with_systemd} +# Unit file +install -Dp -m0644 %{SOURCE1} %{buildroot}%{_unitdir}/memcached.service +%else # Init script -%if 0%{?rhel} == 4 install -Dp -m0755 %{SOURCE2} %{buildroot}%{_initrddir}/memcached -%else -install -Dp -m0755 %{SOURCE1} %{buildroot}%{_initrddir}/memcached -%endif # pid directory mkdir -p %{buildroot}/%{_localstatedir}/run/memcached +%endif + # Default configs mkdir -p %{buildroot}/%{_sysconfdir}/sysconfig @@ -96,6 +123,7 @@ EOF # Constant timestamp on the config file. touch -r %{SOURCE1} %{buildroot}/%{_sysconfdir}/sysconfig/%{name} + %clean rm -rf %{buildroot} @@ -103,45 +131,152 @@ rm -rf %{buildroot} %pre getent group %{groupname} >/dev/null || groupadd -r %{groupname} getent passwd %{username} >/dev/null || \ +%if %{with_systemd} +useradd -r -g %{groupname} -d /run/memcached \ +%else useradd -r -g %{groupname} -d %{_localstatedir}/run/memcached \ +%endif -s /sbin/nologin -c "Memcached daemon" %{username} exit 0 %post -/sbin/chkconfig --add %{name} +%if 0%{?systemd_post:1} +%systemd_post %{name}.service +%else +if [ $1 = 1 ]; then + # Initial installation +%if %{with_systemd} + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +%else + /sbin/chkconfig --add %{name} +%endif +fi +%endif %preun +%if 0%{?systemd_preun:1} +%systemd_preun %{name}.service +%else if [ "$1" = 0 ] ; then + # Package removal, not upgrade +%if %{with_systemd} + /bin/systemctl --no-reload disable %{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 +%endif %postun +%if 0%{?systemd_postun_with_restart:1} +%systemd_postun_with_restart %{name}.service +%else +%if %{with_systemd} +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ]; then + # Package upgrade, not uninstall + /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi +%else if [ "$1" -ge 1 ]; then /sbin/service %{name} condrestart > /dev/null 2>&1 fi exit 0 +%endif +%endif + +%triggerun -- memcached +%if %{with_systemd} +if [ -f /etc/rc.d/init.d/memcached ]; then +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply memcached +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save memcached >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del memcached >/dev/null 2>&1 || : +/bin/systemctl try-restart memcached.service >/dev/null 2>&1 || : +fi +%endif %files %defattr(-,root,root,-) -%doc AUTHORS ChangeLog COPYING NEWS README doc/CONTRIBUTORS doc/*.txt +%doc AUTHORS ChangeLog COPYING NEWS README.md doc/CONTRIBUTORS doc/*.txt %config(noreplace) %{_sysconfdir}/sysconfig/%{name} -%dir %attr(755,%{username},%{groupname}) %{_localstatedir}/run/memcached %{_bindir}/memcached-tool %{_bindir}/memcached %{_mandir}/man1/memcached.1* +%if %{with_systemd} +%{_unitdir}/memcached.service +%else %{_initrddir}/memcached +%dir %attr(755,%{username},%{groupname}) %{_localstatedir}/run/memcached +%endif + %files devel %defattr(-,root,root,0755) %{_includedir}/memcached/* %changelog +* Mon Nov 26 2012 Remi Collet - 0:1.4.15-1 +- sync with rawhide, backport for remi repo + +* Tue Nov 20 2012 Joe Orton - 0:1.4.15-2 +- BR perl(Test::Harness) + +* Tue Nov 20 2012 Joe Orton - 0:1.4.15-1 +- update to 1.4.15 (#782395) +- switch to simple systemd service (#878198) +- use systemd scriptlet macros (Václav Pavlín, #850204) + +* Fri Jul 20 2012 Fedora Release Engineering - 0:1.4.13-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri May 04 2012 Jon Ciesla - 0:1.4.13-2 +- Migrate to systemd, 783112. + +* Tue Feb 7 2012 Paul Lindner - 0:1.4.13-1 +- Upgrade to memcached 1.4.13 +- http://code.google.com/p/memcached/wiki/ReleaseNotes1413 +- http://code.google.com/p/memcached/wiki/ReleaseNotes1412 +- http://code.google.com/p/memcached/wiki/ReleaseNotes1411 + +* Fri Jan 13 2012 Fedora Release Engineering - 0:1.4.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 9 2011 Paul Lindner - 0:1.4.10-1 +- Upgrade to memcached 1.4.10 (http://code.google.com/p/memcached/wiki/ReleaseNotes1410) + +* Tue Aug 16 2011 Paul Lindner - 0:1.4.7-1 +- Upgrade to memcached 1.4.7 (http://code.google.com/p/memcached/wiki/ReleaseNotes147) +- Fix some rpmlint errors/warnings. + +* Tue Aug 2 2011 Paul Lindner - 0:1.4.6-1 +- Upgrade to memcached-1.4.6 + +* Wed Feb 16 2011 Joe Orton - 0:1.4.5-7 +- fix build + +* Mon Feb 14 2011 Paul Lindner - 0:1.4.5-6 +- Rebuild for updated libevent + +* Tue Feb 08 2011 Fedora Release Engineering - 0:1.4.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Nov 28 2010 Paul Lindner - 0:1.4.5-4 +- Add code to deal with /var/run/memcached on tmpfs + +* Wed Sep 8 2010 Paul Lindner - 0:1.4.5-3 +- Apply patch from memcached issue #60, solves Bugzilla 631051 + * Tue Jun 15 2010 Remi Collet - 1.4.5-2.el4.1 - also use /var/run/memcached/memcached.pid on EL-4 -- cgit