Browse Source

improve packaging by providing SASL database for authentication

master
parent
commit
3ad01255e4
  1. 23
      memcached/memcached-sasldb.sh
  2. 6
      memcached/memcached.conf
  3. 55
      memcached/memcached.spec
  4. 4
      memcached/rc.memcached

23
memcached/memcached-sasldb.sh

@ -0,0 +1,23 @@
#!/bin/sh
##
## memcached-sasldb -- SASL database utilit
##
if [ $# -lt 1 ]; then
echo "Usage: memcached-sasldb list"
echo "Usage: memcached-sasldb passwd [options]"
fi
sasldb="@l_prefix@/etc/memcached/memcached.sasldb"
cmd="$1"
shift
case "$cmd" in
list )
exec @l_prefix@/sbin/sasldblistusers -f $sasldb
;;
passwd )
exec @l_prefix@/sbin/saslpasswd -f $sasldb -a memcached "$@"
;;
esac

6
memcached/memcached.conf

@ -0,0 +1,6 @@
mech_list: PLAIN
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: @l_prefix@/etc/memcached/memcached.sasldb

55
memcached/memcached.spec

@ -37,6 +37,8 @@ Release: 20180430
# list of sources
Source0: http://www.memcached.org/files/memcached-%{version}.tar.gz
Source1: rc.memcached
Source2: memcached.conf
Source3: memcached-sasldb.sh
Patch0: memcached.patch
# build information
@ -81,14 +83,18 @@ PreReq: libevent, sasl, libexecinfo
%{l_make} %{l_mflags -O}
%install
# install package
# create installation hierarchy
%{l_shtool} mkdir -f -p -m 775 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/sbin \
$RPM_BUILD_ROOT%{l_prefix}/man/man1 \
$RPM_BUILD_ROOT%{l_prefix}/etc/memcached \
$RPM_BUILD_ROOT%{l_prefix}/etc/sasl/sasl.d \
$RPM_BUILD_ROOT%{l_prefix}/var/memcached/run \
$RPM_BUILD_ROOT%{l_prefix}/var/memcached/log
# install program
%{l_shtool} install -c -s -m 775 \
memcached $RPM_BUILD_ROOT%{l_prefix}/bin/
memcached $RPM_BUILD_ROOT%{l_prefix}/sbin/
%{l_shtool} install -c -m 644 \
doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
@ -98,9 +104,20 @@ PreReq: libevent, sasl, libexecinfo
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# install default SASL configuration
%{l_shtool} install -c -m 644 %{l_value -s -a} \
%{SOURCE memcached.conf} \
$RPM_BUILD_ROOT%{l_prefix}/etc/sasl/sasl.d/
# install SASL database utility
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE memcached-sasldb.sh} \
$RPM_BUILD_ROOT%{l_prefix}/sbin/memcached-sasldb
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} `cat perl-openpkg-files` \
'%config %attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/etc/memcached' \
'%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/memcached/*'
%files -f files
@ -108,17 +125,31 @@ PreReq: libevent, sasl, libexecinfo
%clean
%post
# after upgrade, restart service
[ $1 -eq 2 ] || exit 0
eval `%{l_rc} memcached status 2>/dev/null`
[ ".$memcached_active" = .yes ] && %{l_rc} memcached restart
if [ $1 -eq 1 ]; then
echo "Initializing Memcached SASL database" | \
%{l_rpmtool} msg -b -t notice
su - %{l_nusr} -c \
"echo memcached | $RPM_INSTALL_PREFIX/sbin/memcached-sasldb passwd -p memcached"
# display some initial hints, too
( echo "Configure your Memcached SASL users with:"
echo " \$ $RPM_INSTALL_PREFIX/sbin/memcached-sasldb passwd <username>"
echo "A standard username/password pair is pre-existing:"
echo " memcached/memcached"
) | %{l_rpmtool} msg -b -t notice
elif [ $1 -eq 2 ]; then
# after upgrade, restart service
eval `%{l_rc} memcached status 2>/dev/null`
[ ".$memcached_active" = .yes ] && %{l_rc} memcached restart
fi
exit 0
%preun
# before erase, stop service and remove log files
[ $1 -eq 0 ] || exit 0
%{l_rc} memcached stop 2>/dev/null
rm -f $RPM_INSTALL_PREFIX/var/memcached/run/* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/memcached/log/* >/dev/null 2>&1 || true
if [ $1 -eq 0 ]; then
# before erase, stop service and remove log files
%{l_rc} memcached stop 2>/dev/null
rm -f $RPM_INSTALL_PREFIX/etc/memcached/memcached.sasldb >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/memcached/run/* >/dev/null 2>&1 || true
rm -f $RPM_INSTALL_PREFIX/var/memcached/log/* >/dev/null 2>&1 || true
fi
exit 0

4
memcached/rc.memcached

@ -6,7 +6,7 @@
%config
memcached_enable="$openpkg_rc_def"
memcached_daemon="yes"
memcached_flags="-l 127.0.0.1 -p 11211"
memcached_flags="-l 127.0.0.1 -p 11211 -S"
memcached_log_prolog="true"
memcached_log_epilog="true"
memcached_log_numfiles="10"
@ -32,7 +32,7 @@
rcService memcached enable yes || exit 0
rcService memcached active yes && exit 0
rcVarIsYes memcached_daemon || exit 0
@l_prefix@/bin/memcached \
@l_prefix@/sbin/memcached \
-d -u @l_nusr@ \
-P $memcached_pidfile \
$memcached_flags

Loading…
Cancel
Save