File memcached.spec of Package memcached.11124

#
# spec file for package memcached
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           memcached
Version:        1.4.39
Release:        0
Summary:        A high-performance, distributed memory object caching system
License:        BSD-3-Clause
Group:          Productivity/Networking/Other
Url:            http://memcached.org/
Source:         http://www.memcached.org/files/%{name}-%{version}.tar.gz
Source1:        %{name}.init
Source2:        %{name}.sysconfig
Source3:        memcached-rpmlintrc
Source4:        memcached.service
Patch0:         memcached-1.4.5.dif
Patch1:         memcached-autofoo.patch
Patch2:         memcached-use-endian_h.patch
# bsc#1083903 -  Disable UDP by default
Patch3:         fix-upstream-disable-udp-default.patch
# CVE-2019-11596 [bsc#1133817]
Patch4:         memcached-CVE-2019-11596.patch
# CVE-2019-15026 [bsc#1149110]
Patch5:         memcached-CVE-2019-15026.patch
# new version of the test (from 1.5.17)
Patch6:         memcached-lru-maintainer.t.patch
# fails because of fix-upstream-disable-udp-default.patch
Patch7:         memcached-issue_67.t.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  cyrus-sasl-devel
BuildRequires:  libevent-devel
BuildRequires:  libtool
BuildRequires:  pkg-config
Requires(pre):  %{_sbindir}/groupadd
Requires(pre):  %{_sbindir}/useradd
Conflicts:      memcached-unstable
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1210
BuildRequires:  systemd-rpm-macros
%{?systemd_requires}
%else
Requires(pre):  %insserv_prereq
%endif
Requires(pre):  %fillup_prereq

%description
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.

Danga Interactive developed memcached to enhance the speed of
LiveJournal.com, a site which was already doing 20 million+ dynamic
page views per day for 1 million users with a bunch of webservers and a
bunch of database servers. memcached dropped the database load to
almost nothing, yielding faster page load times for users, better
resource utilization, and faster access to the databases on a memcache
miss.

%package devel
Summary:        Files needed for development using memcached protocol
Group:          Development/Libraries
Requires:       %{name} = %{version}

%description devel
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.

This package contains development files

%prep
%setup -q -n %{name}-%{version}
%patch0
%patch1
%patch2
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1

%build
autoreconf -fi
%if 0%{?suse_version} <= 1140
export LIBEVENT_CFLAGS="-I%{_includedir}"
export LIBEVENT_LIBS="-levent"
%endif
%configure \
	--enable-sasl \
	--disable-coverage \
	--bindir=%{_sbindir}

make %{?_smp_mflags}

%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
install -D  -m 0755 scripts/memcached-tool %{buildroot}%{_sbindir}/memcached-tool
install -Dd -m 0751 %{buildroot}%{_localstatedir}/lib/%{name}
install -D  -m 0644 %{SOURCE2} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
%if  0%{?suse_version} > 1210
ln -s  	%{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
install -D  -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}.service
%else
install -D  -m 0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/init.d/%{name}
ln -s  ../..%{_sysconfdir}/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name}
%endif

%check
make %{?_smp_mflags} test

%pre
%{_sbindir}/groupadd -r %{name} >/dev/null 2>&1 || :
%{_sbindir}/useradd -g %{name} -s /bin/false -r -c "user for %{name}" -d %{_localstatedir}/lib/%{name} %{name} >/dev/null 2>&1 || :
%if 0%{?suse_version} > 1210
%service_add_pre %{name}.service
%endif

%post
%if 0%{?suse_version} > 1210
%service_add_post %{name}.service
%fillup_only %{name}
%else
%fillup_and_insserv %{name}
%endif

%preun
%if 0%{?suse_version} > 1210
%service_del_preun %{name}.service
%else
%stop_on_removal %{name}
%endif

%postun
%if 0%{?suse_version} > 1210
%service_del_postun %{name}.service
%else
%restart_on_update %{name}
%insserv_cleanup
%endif

%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS 
%{_sbindir}/%{name}
%{_sbindir}/memcached-tool
%{_sbindir}/rc%{name}
%{_mandir}/man1/%{name}.*
%if 0%{?suse_version} > 1210
%{_unitdir}/%{name}.service
%else
%{_sysconfdir}/init.d/%{name}
%endif
%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
%dir %attr(751,root,root) %{_localstatedir}/lib/%{name}

%files devel
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS doc/*.txt
%{_includedir}/%{name}

%changelog