https://issues.shibboleth.net/jira/browse/SSPCPP-618
authorScott Cantor <cantor.2@osu.edu>
Tue, 20 Jan 2015 00:27:14 +0000 (00:27 +0000)
committerScott Cantor <cantor.2@osu.edu>
Tue, 20 Jan 2015 00:27:14 +0000 (00:27 +0000)
configs/Makefile.am
configs/shibd-amazon.in [new file with mode: 0644]
shibboleth.spec.in

index 3b52b40..8386c7d 100644 (file)
@@ -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 (file)
index 0000000..25ef4a2
--- /dev/null
@@ -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 $?
index 8097e04..32a6a47 100644 (file)
@@ -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 <<EOF
 
 # Override OS-supplied libcurl
@@ -187,7 +187,7 @@ EOF
        %endif
 fi
 
-%if "%{_vendor}" == "redhat" || "%{_vendor}" == "suse"
+%if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon" || "%{_vendor}" == "suse"
        # %{_initddir} not yet in RHEL5, use deprecated %{_initrddir}
        install -d -m 0755 $RPM_BUILD_ROOT%{_initrddir}
        install -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/shibboleth/shibd-%{_vendor} $RPM_BUILD_ROOT%{_initrddir}/shibd
@@ -225,7 +225,7 @@ fi
 # Fix ownership of log files (even on new installs, if they're left from an older one).
 %{__chown} %{runuser}:%{runuser} %{_localstatedir}/log/shibboleth/* 2>/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 <cantor.2@osu.edu> - 2.5.4-1
+- Add Amazon VM support
+
 * Mon Nov 17 2014 Scott Cantor <cantor.2@osu.edu> - 2.5.3-2
 - Add libtool dep for OpenSUSE 13
 - Remove /var/run/shibboleth for OpenSUSE 13