From c069c8e6d0060198e096fdd80f6ef6ffba9d6f43 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Tue, 20 Jan 2015 00:27:14 +0000 Subject: [PATCH] https://issues.shibboleth.net/jira/browse/SSPCPP-618 --- configs/Makefile.am | 6 +++ configs/shibd-amazon.in | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ shibboleth.spec.in | 27 +++++----- 3 files changed, 150 insertions(+), 12 deletions(-) create mode 100644 configs/shibd-amazon.in diff --git a/configs/Makefile.am b/configs/Makefile.am index 3b52b40..8386c7d 100644 --- a/configs/Makefile.am +++ b/configs/Makefile.am @@ -12,6 +12,7 @@ pkgcachedir = $(localstatedir)/cache/@PACKAGE_NAME@ pkgsysconfdir = $(sysconfdir)/@PACKAGE_NAME@ pkgsysconf_DATA = \ shibd-redhat \ + shibd-amazon \ shibd-suse \ shibd-debian \ shibd-osx.plist \ @@ -87,6 +88,9 @@ apache24.config: ${srcdir}/apache24.config.in Makefile ${top_builddir}/config.st shibd-redhat: ${srcdir}/shibd-redhat.in Makefile ${top_builddir}/config.status $(MAKE) do-build-file FILE=$@ +shibd-amazon: ${srcdir}/shibd-amazon.in Makefile ${top_builddir}/config.status + $(MAKE) do-build-file FILE=$@ + shibd-suse: ${srcdir}/shibd-suse.in Makefile ${top_builddir}/config.status $(MAKE) do-build-file FILE=$@ @@ -138,6 +142,7 @@ CLEANFILES = \ apache22.config \ apache24.config \ shibd-redhat \ + shibd-amazon \ shibd-suse \ shibd-debian \ shibd-osx.plist \ @@ -152,6 +157,7 @@ EXTRA_DIST = \ apache22.config.in \ apache24.config.in \ shibd-redhat.in \ + shibd-amazon.in \ shibd-suse.in \ shibd-debian.in \ shibd-osx.plist.in \ diff --git a/configs/shibd-amazon.in b/configs/shibd-amazon.in new file mode 100644 index 0000000..25ef4a2 --- /dev/null +++ b/configs/shibd-amazon.in @@ -0,0 +1,129 @@ +#!/bin/bash +# +# shibd Shibboleth Service Provider Daemon +# +# chkconfig: - 80 20 +# description: Shibboleth 2 Service Provider Daemon +# processname: shibd +# pidfile: @-PKGRUNDIR-@/shibd.pid +# config: @-PKGSYSCONFDIR-@/shibboleth2.xml + +### BEGIN INIT INFO +# Provides: shibd +# Required-Start: $local_fs $remote_fs $network +# Should-Start: $time +# Should-Stop: $time +# Required-Stop: $local_fs $remote_fs $network +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Shibboleth 2 Service Provider Daemon +# Description: Starts the separate daemon used by the Shibboleth Apache module to manage state and SAML interactions. +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +shibd="@-PREFIX-@/sbin/shibd" +SHIBD_USER=root +prog=shibd +pidfile=@-PKGRUNDIR-@/shibd.pid +lockfile=/var/lock/subsys/$prog + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + echo -n $"Starting $prog: " + if [ -f $lockfile ] ; then + if [ -f $pidfile ]; then + read kpid < $pidfile + if checkpid $kpid 2>&1; then + echo "process already running" + return 1; + else + echo "lock file found but no process running for pid $kpid, continuing" + fi + fi + fi + + # Make sure package run directory exists. + [ -d @-PKGRUNDIR-@ ] || mkdir @-PKGRUNDIR-@ + + export SHIBD_PID=$pidfile + touch $pidfile + chown $SHIBD_USER:$SHIBD_USER $pidfile + + # Handle transition from root to non-root packages. + chown -R $SHIBD_USER:$SHIBD_USER @-PKGRUNDIR-@ 2>/dev/null || : + daemon --user $SHIBD_USER $shibd -p $pidfile -f -w 30 + + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch $lockfile + return $RETVAL +} + +stop() { + echo -n $"Stopping $prog: " + killproc shibd + + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile + return $RETVAL +} + +restart() { + stop + sleep 5 + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac + +exit $? diff --git a/shibboleth.spec.in b/shibboleth.spec.in index 8097e04..32a6a47 100644 --- a/shibboleth.spec.in +++ b/shibboleth.spec.in @@ -10,7 +10,7 @@ Source: %{name}-sp-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-sp-%{version}-root Obsoletes: shibboleth-sp = 2.5.0 Requires: openssl -%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 +%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1 PreReq: xmltooling-schemas%{?_isa} >= 1.5.0, opensaml-schemas%{?_isa} >= 2.5.0 %else PreReq: xmltooling-schemas >= 1.5.0, opensaml-schemas >= 2.5.0 @@ -30,7 +30,7 @@ BuildRequires: libxmltooling-devel >= 1.5.0 BuildRequires: libsaml-devel >= 2.5.0 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0} %{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 1.0.4} -%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 +%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1 Requires: libcurl-openssl%{?_isa} >= 7.21.7 BuildRequires: chrpath %endif @@ -46,8 +46,8 @@ BuildRequires: gcc-c++, zlib-devel, boost-devel >= 1.32.0 BuildRequires: libmemcached-devel %endif %{?_with_memcached:BuildRequires: libmemcached-devel} -%if "%{_vendor}" == "redhat" -%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" +%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1 %{!?_without_builtinapache:BuildRequires: httpd-devel%{?_isa}} %else %{!?_without_builtinapache:BuildRequires: httpd-devel} @@ -156,7 +156,7 @@ fi # Establish location of sysconfig file, if any. SYSCONFIG_SHIBD="no" -%if "%{_vendor}" == "redhat" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig echo "%config(noreplace) %{_sysconfdir}/sysconfig/shibd" >> rpm.filelist SYSCONFIG_SHIBD="$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/shibd" @@ -174,7 +174,7 @@ if [ "$SYSCONFIG_SHIBD" != "no" ] ; then # User account for shibd SHIBD_USER=%{runuser} EOF - %if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 + %if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1 cat >> $SYSCONFIG_SHIBD </dev/null || : -%if "%{_vendor}" == "redhat" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" if [ "$1" -gt "1" ] ; then # On Red Hat with shib.conf installed, clean up old Alias commands # by pointing them at new version-independent /usr/share/share tree. @@ -258,7 +258,7 @@ fi %preun # On final removal, stop shibd and remove service, restart Apache if running. -%if "%{_vendor}" == "redhat" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" if [ "$1" -eq 0 ] ; then /sbin/service shibd stop >/dev/null 2>&1 /sbin/chkconfig --del shibd @@ -277,7 +277,7 @@ exit 0 %ifnos solaris2.8 solaris2.9 solaris2.10 solaris2.11 /sbin/ldconfig %endif -%if "%{_vendor}" == "redhat" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" # On upgrade, restart components if they're already running. if [ "$1" -ge "1" ] ; then /etc/init.d/shibd status 1>/dev/null && /etc/init.d/shibd restart 1>/dev/null @@ -294,7 +294,7 @@ exit 0 %posttrans # ugly hack if init script got removed during %postun by upgraded (buggy/2.1) package -%if "%{_vendor}" == "redhat" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" if [ ! -f %{_initrddir}/shibd ] ; then if [ -f %{_sysconfdir}/shibboleth/shibd-%{_vendor} ] ; then %{__cp} -p %{_sysconfdir}/shibboleth/shibd-%{_vendor} %{_initrddir}/shibd @@ -326,7 +326,7 @@ fi %config(noreplace) %{_sysconfdir}/shibboleth/*.xml %config(noreplace) %{_sysconfdir}/shibboleth/*.html %config(noreplace) %{_sysconfdir}/shibboleth/*.logger -%if "%{_vendor}" == "redhat" || "%{_vendor}" == "suse" +%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" || "%{_vendor}" == "suse" %config %{_initrddir}/shibd %endif %if "%{_vendor}" == "suse" @@ -349,6 +349,9 @@ fi %doc %{pkgdocdir}/api %changelog +* Mon Jan 19 2015 Scott Cantor - 2.5.4-1 +- Add Amazon VM support + * Mon Nov 17 2014 Scott Cantor - 2.5.3-2 - Add libtool dep for OpenSUSE 13 - Remove /var/run/shibboleth for OpenSUSE 13 -- 2.1.4