[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