[globus-scheduler-event-generator/el4] Update to Globus Toolkit 5.2.0 Drop patch globus-scheduler-event-generator.patch (fixed upstream)

Mattias Ellert ellert at fedoraproject.org
Sun Jan 8 01:21:55 UTC 2012


commit 8f26af9f5b5ac7ffbe672ca402ada130085afd7d
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date:   Sun Jan 8 00:52:25 2012 +0100

    Update to Globus Toolkit 5.2.0
    Drop patch globus-scheduler-event-generator.patch (fixed upstream)

 .gitignore                             |    4 +-
 GLOBUS-GRAM5                           |    6 +
 globus-scheduler-event-generator       |  231 ++++++++++++++++++++++++++++++++
 globus-scheduler-event-generator.patch |   33 -----
 globus-scheduler-event-generator.spec  |  142 +++++++++++---------
 sources                                |    2 +-
 6 files changed, 319 insertions(+), 99 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 0789c93..943fe53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-epstopdf-2.9.5gw
-globus_scheduler_event_generator-2.1.tar.gz
+/epstopdf-2.9.5gw
+/*.tar.gz
diff --git a/GLOBUS-GRAM5 b/GLOBUS-GRAM5
index 44a32f6..e6e44fe 100644
--- a/GLOBUS-GRAM5
+++ b/GLOBUS-GRAM5
@@ -6,6 +6,9 @@ http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/
 Admin Guide:
 http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/admin/
 
+User's Guide
+http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/user/
+
 Developer's Guide:
 http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/developer/
 
@@ -20,3 +23,6 @@ http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/qp/
 
 Migrating Guide:
 http://www.globus.org/toolkit/docs/latest-stable/execution/gram5/mig/
+
+Globus RPM packaging is supported by the Initiative for Globus in Europe:
+http://www.ige-project.eu/
diff --git a/globus-scheduler-event-generator b/globus-scheduler-event-generator
new file mode 100644
index 0000000..c346b30
--- /dev/null
+++ b/globus-scheduler-event-generator
@@ -0,0 +1,231 @@
+#! /bin/sh
+#
+# globus-scheduler-event-generator - Globus Scheduler Event Generator
+#
+# chkconfig:         - 20 80
+# description:       Parse LRM events into a common log format \
+#                    for the GRAM job manager to use
+
+### BEGIN INIT INFO
+# Provides:          globus-scheduler-event-generator
+# Required-Start:    $remote_fs $time
+# Required-Stop:     $remote_fs
+# Default-Stop:      0 1 2 3 4 5 6
+# Short-Description: Globus Scheduler Event Generator
+# Description:       The Globus Scheduler Event Generator service 
+#                    process state from local resource managers (such as
+#                    torque or SGE) into a form that the globus-job-manager
+#                    process can easily parse.
+#                    It is part of the Globus Toolkit(tm)
+### END INIT INFO
+
+# Copyright 1999-2011 University of Chicago
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+sbindir=/usr/sbin
+progname=globus-scheduler-event-generator
+prog=${sbindir}/${progname}
+
+test -f /etc/sysconfig/${progname} && . /etc/sysconfig/${progname}
+
+test -f ${prog} || exit 0
+
+lockfile=/var/lock/subsys/${progname}
+
+GLOBUS_SEG_LRM_DIR="${GLOBUS_SEG_LRM_DIR:-/etc/globus/scheduler-event-generator}"
+
+full=1
+if [ -n "$2" ]; then
+    full=0
+fi
+for lrm in "${GLOBUS_SEG_LRM_DIR}"/*; do
+    if [ -n "$2" -a "$(basename "$lrm")" != "$2" ]; then
+        continue
+    fi
+    if [ -f "$lrm" ]; then
+        lrms="${lrms:+$lrms }$(basename $lrm)"
+    fi
+done
+
+GLOBUS_SEG_PIDFMT="${GLOBUS_SEG_PIDFMT:-/var/run/${progname}-%s.pid}"
+GLOBUS_SEG_LOGFMT="${GLOBUS_SEG_LOGFMT:-/var/log/globus/globus-seg-%s}"
+
+start()
+{
+    allrc=0
+    started=""
+    failed=""
+    for lrm in $lrms; do
+        pidfile="$(printf "$GLOBUS_SEG_PIDFMT" "$lrm")"
+        logdir="$(printf "$GLOBUS_SEG_LOGFMT" "$lrm")"
+
+        status $lrm > /dev/null
+        rc=$?
+        if [ $rc -eq 0 ]; then
+            continue
+        fi
+
+        if [ ! -d "$logdir" ]; then
+            (umask 022; mkdir "$logdir")
+        fi
+        ${GLOBUS_SEG_NICE_LEVEL:+nice -n "${GLOBUS_SEG_NICE_LEVEL}"} \
+            "${prog}" \
+            -s "$lrm" \
+            -p "$pidfile" \
+            -d "$logdir" \
+            -b > /dev/null
+        rc=$?
+        if [ $rc = 0 ]; then
+            started="${started:+${started}, }$lrm"
+        else
+            failed="${failed:+${failed}, }$lrm"
+            allrc=$rc
+        fi
+    done
+    if [ "$allrc" -eq 0 -a "$lrms" != "" ]; then
+        echo "Started ${progname}${started:+ for ($started)}"
+        touch "$lockfile"
+    elif [ "$allrc" -eq 0 ]; then
+        echo "$progname: no LRMS installed"
+    elif [ "$started" = "" ]; then
+        echo "Failed to start ${progname} for ($failed)"
+    else
+        echo "Some problems starting ${progname} for ($failed), but ($started) were ok"
+        touch "$lockfile"
+    fi
+    return $allrc
+}
+
+stop()
+{
+    allrc=0
+    stopped=""
+    failed=""
+    for lrm in $lrms; do
+        pidfile="$(printf "$GLOBUS_SEG_PIDFMT" "$lrm")"
+        logdir="$(printf "$GLOBUS_SEG_LOGFMT" "$lrm")"
+
+        if [ -f "$pidfile" ]; then
+            read pid < "${pidfile}" 2> /dev/null
+            if [ "$pid" -gt 0 ] 2>/dev/null; then
+                if kill -0 "${pid}" 2> /dev/null; then
+                    kill -TERM "${pid}"
+                    if sleep 1 && kill -0 "${pid}" 2>/dev/null &&  \
+                        sleep 3 && kill -0 "${pid}" 2>/dev/null; then
+                        kill -KILL "${pid}"
+                    fi
+
+                    if kill -0 "${pid}" 2> /dev/null; then
+                        failed="${failed:+$failed, }$lrm"
+                        allrc=1
+                        continue
+                    fi
+                fi
+            fi
+            stopped="${stopped:+${stopped}, }$lrm"
+            rm -f "${pidfile}"
+        fi
+    done
+    if [ "$allrc" -eq 0 ]; then
+        echo "Stopped ${progname}${stopped:+ for ($stopped)}"
+        if [ "$full" -eq 1 ]; then
+            rm -f "$lockfile"
+        fi
+    elif [ "$stopped" = "" ]; then
+        echo "Failed to stop ${progname} for $failed"
+    else
+        echo "Some problems stopping ${progname} for $failed, but $stopped were ok"
+    fi
+    return $allrc
+}
+
+restart()
+{
+    stop
+    start
+}
+
+status()
+{
+    _lrms="$1"
+    running=0
+    stale=0
+    nopidfile=0
+
+    if [ "$_lrms" = "" ]; then
+        _lrms="$lrms"
+    fi
+    for lrm in $_lrms; do
+        pidfile="$(printf "$GLOBUS_SEG_PIDFMT" "$lrm")"
+        if [ -f "$pidfile" ]; then
+            read pid < "$pidfile" 2>/dev/null
+            if [ "$pid" -gt 0 ] 2>/dev/null; then
+                if ps -p "$pid" > /dev/null; then
+                    echo "$progname ($lrm) is running (pid=$pid)"
+                    running=1
+                else
+                    echo "Stale PID file for $progname ($lrm)"
+                    stale=1
+                fi
+            fi
+        else
+            echo "$progname ($lrm) is not running"
+        fi
+    done
+
+    if [ "$stale" -ne 0 ]; then
+        return 1
+    fi
+    if [ "$running" -eq 0 -a "$stale" -eq 0 -a "${lrms}" != "" -a -f "${lockfile}" ]; then
+        echo "Stale lock file for $progname"
+        return 2
+    fi
+
+    if [ "$running" -eq 1 ]; then
+        return 0
+    else
+        echo "$progname not running, no LRMs installed"
+        return 3
+    fi
+}
+
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        restart
+        ;;
+    reload)
+        exit 0
+        ;;
+    force-reload)
+        restart
+        ;;
+    status)
+        status
+        ;;
+    condrestart|try-restart)
+        status || exit 0
+        restart
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+        exit 2
+        ;;
+esac
diff --git a/globus-scheduler-event-generator.spec b/globus-scheduler-event-generator.spec
index eaef23f..6caa68f 100644
--- a/globus-scheduler-event-generator.spec
+++ b/globus-scheduler-event-generator.spec
@@ -1,44 +1,42 @@
 %ifarch alpha ia64 ppc64 s390x sparc64 x86_64
-%global flavor gcc64pthr
+%global flavor gcc64
 %else
-%global flavor gcc32pthr
+%global flavor gcc32
 %endif
 
+%{!?_initddir: %global _initddir %{_initrddir}}
+
 Name:		globus-scheduler-event-generator
 %global _name %(tr - _ <<< %{name})
-Version:	2.1
-Release:	4%{?dist}
+Version:	4.4
+Release:	1%{?dist}
 Summary:	Globus Toolkit - Scheduler Event Generator
 
 Group:		System Environment/Libraries
 License:	ASL 2.0
 URL:		http://www.globus.org/
-#		Source is extracted from the globus toolkit installer:
-#		wget -N http://www-unix.globus.org/ftppub/gt5/5.0/5.0.0/installers/src/gt5.0.0-all-source-installer.tar.bz2
-#		tar -jxf gt5.0.0-all-source-installer.tar.bz2
-#		mv gt5.0.0-all-source-installer/source-trees/ws-gram/job_monitoring/common/c/source globus_scheduler_event_generator-2.1
-#		cp -p gt5.0.0-all-source-installer/source-trees/core/source/GLOBUS_LICENSE globus_scheduler_event_generator-2.1
-#		tar -zcf globus_scheduler_event_generator-2.1.tar.gz globus_scheduler_event_generator-2.1
-Source:		%{_name}-%{version}.tar.gz
+Source:		http://www.globus.org/ftppub/gt5/5.2/5.2.0/packages/src/%{_name}-%{version}.tar.gz
+Source1:	%{name}
 #		README file
 Source8:	GLOBUS-GRAM5
 #		This is a workaround for the broken epstopdf script in RHEL5
 #		See: https://bugzilla.redhat.com/show_bug.cgi?id=450388
 Source9:	epstopdf-2.9.5gw
-#		Add missing dependency metadata:
-#		http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6819
-Patch0:		%{name}.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-Requires:	globus-libtool%{?_isa} >= 1
-Requires:	globus-xio-gsi-driver%{?_isa}
-BuildRequires:	grid-packaging-tools
-BuildRequires:	globus-gram-protocol-devel%{?_isa} >= 5
-BuildRequires:	globus-libtool-devel%{?_isa} >= 1
-BuildRequires:	globus-common-devel%{?_isa} >= 3
-BuildRequires:	globus-xio-gsi-driver-devel%{?_isa}
-BuildRequires:	globus-xio-devel%{?_isa}
-BuildRequires:	globus-core%{?_isa} >= 4
+Requires:	globus-common%{?_isa} >= 14
+Requires:	globus-xio-gsi-driver%{?_isa} >= 2
+BuildRequires:	grid-packaging-tools >= 3.4
+BuildRequires:	globus-core%{?_isa} >= 8
+BuildRequires:	globus-gram-protocol-devel%{?_isa} >= 11
+BuildRequires:	globus-common-devel%{?_isa} >= 14
+BuildRequires:	globus-xio-gsi-driver-devel%{?_isa} >= 2
+BuildRequires:	globus-xio-devel%{?_isa} >= 3
+%if %{?fedora}%{!?fedora:0} >= 4 || %{?rhel}%{!?rhel:0} >= 5
+BuildRequires:	libtool-ltdl-devel%{?_isa}
+%else
+BuildRequires:	libtool
+%endif
 BuildRequires:	doxygen
 BuildRequires:	graphviz
 %if "%{?rhel}" == "5"
@@ -55,19 +53,23 @@ BuildRequires:	tetex-latex
 Summary:	Globus Toolkit - Scheduler Event Generator Programs
 Group:		Applications/Internet
 Requires:	%{name}%{?_isa} = %{version}-%{release}
-Requires:	globus-libtool%{?_isa} >= 1
-Requires:	globus-xio-gsi-driver%{?_isa}
+Requires:	globus-common%{?_isa} >= 14
+Requires:	globus-xio-gsi-driver%{?_isa} >= 2
+Requires:	globus-xio%{?_isa} >= 3
+Requires(post):		chkconfig
+Requires(preun):	chkconfig
+Requires(preun):	initscripts
+Requires(postun):	initscripts
 
 %package devel
 Summary:	Globus Toolkit - Scheduler Event Generator Development Files
 Group:		Development/Libraries
 Requires:	%{name}%{?_isa} = %{version}-%{release}
-Requires:	globus-gram-protocol-devel%{?_isa} >= 5
-Requires:	globus-libtool-devel%{?_isa} >= 1
-Requires:	globus-common-devel%{?_isa} >= 3
-Requires:	globus-xio-gsi-driver-devel%{?_isa}
-Requires:	globus-xio-devel%{?_isa}
-Requires:	globus-core%{?_isa} >= 4
+Requires:	globus-gram-protocol-devel%{?_isa} >= 11
+Requires:	globus-common-devel%{?_isa} >= 14
+Requires:	globus-xio-gsi-driver-devel%{?_isa} >= 2
+Requires:	globus-xio-devel%{?_isa} >= 3
+Requires:	globus-core%{?_isa} >= 8
 
 %package doc
 Summary:	Globus Toolkit - Scheduler Event Generator Documentation Files
@@ -115,7 +117,6 @@ Scheduler Event Generator Documentation Files
 
 %prep
 %setup -q -n %{_name}-%{version}
-%patch0 -p1
 
 %if "%{rhel}" == "5"
 mkdir bin
@@ -134,18 +135,17 @@ rm -f pkgdata/Makefile.am
 rm -f globus_automake*
 rm -rf autom4te.cache
 
-# Remove flavor tags
-for f in `find . -name Makefile.am` ; do
-  sed -e 's!^flavorinclude_HEADERS!include_HEADERS!' \
-      -e 's!\(lib[a-zA-Z_]*\)_$(GLOBUS_FLAVOR_NAME)\.la!\1.la!g' \
-      -e 's!^\(lib[a-zA-Z_]*\)___GLOBUS_FLAVOR_NAME__la_!\1_la_!' -i $f
-done
-sed -e "s!<With_Flavors!<With_Flavors ColocateLibraries=\"no\"!" \
-  -i pkgdata/pkg_data_src.gpt.in
-
+unset GLOBUS_LOCATION
+unset GPT_LOCATION
 %{_datadir}/globus/globus-bootstrap.sh
 
-%configure --with-flavor=%{flavor} --enable-doxygen
+%configure --disable-static --with-flavor=%{flavor} \
+	   --enable-doxygen --with-docdir=%{_docdir}/%{name}-%{version} \
+	   --with-initscript-config-path=%{_sysconfdir}/sysconfig/%{name} \
+	   --with-lockfile-path='${localstatedir}/lock/subsys/%{name}'
+
+# Reduce overlinking
+sed 's!CC -shared !CC \${wl}--as-needed -shared !g' -i libtool
 
 make %{?_smp_mflags}
 
@@ -161,31 +161,25 @@ GLOBUSPACKAGEDIR=$RPM_BUILD_ROOT%{_datadir}/globus/packages
 
 # Remove libtool archives (.la files)
 find $RPM_BUILD_ROOT%{_libdir} -name 'lib*.la' -exec rm -v '{}' \;
-sed '/lib.*\.la$/d' -i $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_rtl.filelist
-
-# Remove static libraries (.a files)
-find $RPM_BUILD_ROOT%{_libdir} -name 'lib*.a' -exec rm -v '{}' \;
-sed '/lib.*\.a$/d' -i $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist
+sed '/lib.*\.la$/d' -i $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist
 
-# Generate pkg-config file from GPT metadata
-mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig
-%{_datadir}/globus/globus-gpt2pkg-config pkgdata/pkg_data_%{flavor}_dev.gpt > \
-  $RPM_BUILD_ROOT%{_libdir}/pkgconfig/%{name}.pc
-
-# Move documentation to default RPM location
-mv $RPM_BUILD_ROOT%{_docdir}/%{_name} \
-  $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-sed s!doc/%{_name}!doc/%{name}-%{version}! \
-  -i $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist
+# Move license file to main package
+grep GLOBUS_LICENSE $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \
+  >> $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_rtl.filelist
+sed /GLOBUS_LICENSE/d -i $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist
 
 # Remove unwanted documentation (needed for RHEL4)
 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/*_%{_name}-%{version}_*.3
 sed -e '/_%{_name}-%{version}_.*\.3/d' \
   -i $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist
 
-# Install license file
-mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-install -m 644 -p GLOBUS_LICENSE $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+# Remove start-up scripts
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/init.d
+sed '/init\.d/d' -i $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist
+
+# Install start-up scripts
+mkdir -p $RPM_BUILD_ROOT%{_initddir}
+install -p %{SOURCE1} $RPM_BUILD_ROOT%{_initddir}
 
 # Install README file
 install -m 644 -p %{SOURCE8} \
@@ -195,7 +189,10 @@ install -m 644 -p %{SOURCE8} \
 cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_rtl.filelist \
   | sed s!^!%{_prefix}! > package.filelist
 cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist \
-  | sed s!^!%{_prefix}! > package-progs.filelist
+    $GLOBUSPACKAGEDIR/%{_name}/noflavor_data.filelist \
+  | sed -e s!^!%{_prefix}! \
+	-e 's!%{_prefix}%{_sysconfdir}!%config(noreplace) %{_sysconfdir}!' \
+  > package-progs.filelist
 cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist \
   | sed s!^!%{_prefix}! > package-devel.filelist
 cat $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \
@@ -208,25 +205,44 @@ rm -rf $RPM_BUILD_ROOT
 
 %postun -p /sbin/ldconfig
 
+%post progs
+if [ $1 -eq 1 ]; then
+    /sbin/chkconfig --add %{name}
+fi
+
+%preun progs
+if [ $1 -eq 0 ]; then
+    /sbin/chkconfig --del %{name}
+    /sbin/service %{name} stop > /dev/null 2>&1 || :
+fi
+
+%postun progs
+if [ $1 -ge 1 ]; then
+    /sbin/service %{name} condrestart > /dev/null 2>&1 || :
+fi
+
 %files -f package.filelist
 %defattr(-,root,root,-)
 %dir %{_datadir}/globus/packages/%{_name}
 %dir %{_docdir}/%{name}-%{version}
-%doc %{_docdir}/%{name}-%{version}/GLOBUS_LICENSE
 %doc %{_docdir}/%{name}-%{version}/README
 
 %files -f package-progs.filelist progs
 %defattr(-,root,root,-)
+%{_initddir}/%{name}
 
 %files -f package-devel.filelist devel
 %defattr(-,root,root,-)
-%{_libdir}/pkgconfig/%{name}.pc
 
 %files -f package-doc.filelist doc
 %defattr(-,root,root,-)
 %dir %{_docdir}/%{name}-%{version}/html
 
 %changelog
+* Thu Dec 15 2011 Mattias Ellert <mattias.ellert at fysast.uu.se> - 4.4-1
+- Update to Globus Toolkit 5.2.0
+- Drop patch globus-scheduler-event-generator.patch (fixed upstream)
+
 * Mon Apr 25 2011 Mattias Ellert <mattias.ellert at fysast.uu.se> - 2.1-4
 - Add README file
 
diff --git a/sources b/sources
index 8f490f2..9f6c63f 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 44ec158f5ca5f60310cca74a3aaaea2b  epstopdf-2.9.5gw
-eb8bfc1a3fb5a7d043e402af42c76460  globus_scheduler_event_generator-2.1.tar.gz
+3e15ed080036a284bd423ab4bab4ef2a  globus_scheduler_event_generator-4.4.tar.gz


More information about the scm-commits mailing list