%ifarch alpha ia64 ppc64 s390x sparc64 x86_64 %global flavor gcc64pthr %else %global flavor gcc32pthr %endif %{!?perl_vendorlib: %global perl_vendorlib %(eval "`perl -V:installvendorlib`"; echo $installvendorlib)} Name: globus-common %global _name %(tr - _ <<< %{name}) Version: 11.6 %global setupversion 2.6 Release: 5%{?dist} Summary: Globus Toolkit - Common Library 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.3/installers/src/gt5.0.3-all-source-installer.tar.bz2 # tar -jxf gt5.0.3-all-source-installer.tar.bz2 # mv gt5.0.3-all-source-installer/source-trees/common/source globus_common-11.6 # cp -p gt5.0.3-all-source-installer/source-trees/core/source/GLOBUS_LICENSE globus_common-11.6 # tar -zcf globus_common-11.6.tar.gz globus_common-11.6 Source: %{_name}-%{version}.tar.gz # Source1 is extracted from the globus toolkit installer: # wget -N http://www-unix.globus.org/ftppub/gt5/5.0/5.0.3/installers/src/gt5.0.3-all-source-installer.tar.bz2 # tar -jxf gt5.0.3-all-source-installer.tar.bz2 # mv gt5.0.3-all-source-installer/source-trees/common/setup globus_common_setup-2.6 # cp -p gt5.0.3-all-source-installer/source-trees/core/source/GLOBUS_LICENSE globus_common_setup-2.6 # tar -zcf globus_common_setup-2.6.tar.gz globus_common_setup-2.6 Source1: %{_name}_setup-%{setupversion}.tar.gz Source2: globus-domainname.1 Source3: globus-hostname.1 Source4: globus-sh-exec.1 Source5: globus-version.1 # README file Source8: GLOBUS-CCOMMONLIB # 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 # Environment variable elimination patch: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6459 Patch0: %{name}-usr.patch # Segfault fix patch: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6460 Patch1: %{name}-no-pthread-exceptions.patch # Allow plugins without the flavor extension in the name: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6461 Patch2: %{name}-noflavext.patch # Remove bogus inter-package dependency: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6462 Patch3: %{name}-deps.patch # Fixes a stupid typo in library/Makefile.am: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6463 Patch4: %{name}-typo.patch # The file globus_netos_dir.h does not exist: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6464 Patch5: %{name}-nosuchfile.patch # Doxygen warning fix: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6465 Patch6: %{name}-doxygen.patch # Extradist should not be conditional: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6576 Patch7: %{name}-extradist.patch # Check for function removed from newer versions of libltdl: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6578 Patch8: %{name}-ltdlmutex.patch # Fixes for mingw compilation: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6742 Patch9: %{name}-mingw.patch # Not all platforms defines PATH_MAX: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6755 Patch10: %{name}-pathmax.patch # Let globus-makefile-header fail gracefully without GPT: # Not really relevant for globus upstream Patch11: %{name}-makefile-header.patch # Workaround a bug in doxygen 1.6.0 and later: # https://bugzilla.gnome.org/show_bug.cgi?id=593759 Patch12: %{name}-doxygen-workaround.patch # Configure options not propagated in globus common setup: # http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6467 Patch13: %{name}-setup.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: globus-libtool%{?_isa} >= 1 # Obsolete dropped packages from Globus Toolkit 4.2.1 Obsoletes: globus-data-conversion Obsoletes: globus-mp Obsoletes: globus-nexus Obsoletes: globus-duct-common Obsoletes: globus-duct-control Obsoletes: globus-duroc-common Obsoletes: globus-duroc-control BuildRequires: grid-packaging-tools BuildRequires: globus-libtool-devel%{?_isa} >= 1 BuildRequires: globus-core%{?_isa} >= 4 BuildRequires: doxygen BuildRequires: graphviz %if "%{?rhel}" == "5" BuildRequires: graphviz-gd %endif BuildRequires: ghostscript %if %{?fedora}%{!?fedora:0} >= 9 || %{?rhel}%{!?rhel:0} >= 5 BuildRequires: tex(latex) %else BuildRequires: tetex-latex %endif %package progs Summary: Globus Toolkit - Common Library Programs Group: Applications/Internet Provides: %{name}-setup = %{setupversion} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: globus-libtool%{?_isa} >= 1 Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) # Try to ensure that most of globus-sh-tools-vars.sh gets filled Requires(post): autoconf, bind-utils, cvs, diffutils, finger, gawk, grep Requires(post): gzip, ncurses, net-tools, procps, sudo, tar, util-linux %package devel Summary: Globus Toolkit - Common Library Development Files Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: globus-libtool-devel%{?_isa} >= 1 Requires: globus-core%{?_isa} >= 4 # Obsolete dropped packages from Globus Toolkit 4.2.1 Obsoletes: globus-data-conversion-devel Obsoletes: globus-mp-devel Obsoletes: globus-nexus-devel Obsoletes: globus-duct-common-devel Obsoletes: globus-duct-control-devel Obsoletes: globus-duroc-common-devel Obsoletes: globus-duroc-control-devel %package doc Summary: Globus Toolkit - Common Library Documentation Files Group: Documentation %if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6 BuildArch: noarch %endif Requires: %{name} = %{version}-%{release} %description The Globus Toolkit is an open source software toolkit used for building Grid systems and applications. It is being developed by the Globus Alliance and many others all over the world. A growing number of projects and companies are using the Globus Toolkit to unlock the potential of grids for their cause. The %{name} package contains: Common Library %description progs The Globus Toolkit is an open source software toolkit used for building Grid systems and applications. It is being developed by the Globus Alliance and many others all over the world. A growing number of projects and companies are using the Globus Toolkit to unlock the potential of grids for their cause. The %{name}-progs package contains: Common Library Programs Common Setup %description devel The Globus Toolkit is an open source software toolkit used for building Grid systems and applications. It is being developed by the Globus Alliance and many others all over the world. A growing number of projects and companies are using the Globus Toolkit to unlock the potential of grids for their cause. The %{name}-devel package contains: Common Library Development Files %description doc The Globus Toolkit is an open source software toolkit used for building Grid systems and applications. It is being developed by the Globus Alliance and many others all over the world. A growing number of projects and companies are using the Globus Toolkit to unlock the potential of grids for their cause. The %{name}-doc package contains: Common Library Documentation Files %prep %setup -q -n %{_name}-%{version} %setup -D -T -q -n %{_name}-%{version} -a 1 %patch0 -p1 -b .usr %patch1 -p1 -b .segfault %patch2 -p1 -b .noflavext %patch3 -p1 -b .deps %patch4 -p1 -b .typo %patch5 -p1 -b .nofile %patch6 -p1 -b .doxygen %patch7 -p1 -b .extradist %patch8 -p1 -b .ltdlmutex %patch9 -p1 -b .mingw %patch10 -p1 -b .pathmax %patch11 -p1 -b .mfheader %patch12 -p1 -b .doxygenbug cd %{_name}_setup-%{setupversion} %patch13 -p1 -b .setup cd - # custom perl requires that removes dependency on gpt perl modules cat << EOF > %{name}-req #!/bin/sh %{__perl_requires} $* |\ sed -e '/perl(Grid::GPT::.*)/d' EOF %global __perl_requires %{_builddir}/%{_name}-%{version}/%{name}-req chmod +x %{__perl_requires} %if "%{rhel}" == "5" mkdir bin install %{SOURCE9} bin/epstopdf %endif %build %if "%{rhel}" == "5" export PATH=$PWD/bin:$PATH %endif # Remove files that should be replaced during bootstrap rm -f doxygen/Doxyfile* rm -f doxygen/Makefile.am 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 %{_datadir}/globus/globus-bootstrap.sh export GLOBUS_VERSION=5.0.3 %configure --with-flavor=%{flavor} --enable-doxygen make %{?_smp_mflags} # setup package cd %{_name}_setup-%{setupversion} # Remove files that should be replaced during bootstrap rm -f doxygen/Doxyfile* rm -f doxygen/Makefile.am rm -f pkgdata/Makefile.am rm -f globus_automake* rm -rf autom4te.cache %{_datadir}/globus/globus-bootstrap.sh %configure --without-flavor --with-secure-tmpdir=/var/tmp make %{?_smp_mflags} cd - %install %if "%{rhel}" == "5" export PATH=$PWD/bin:$PATH %endif rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT # setup package cd %{_name}_setup-%{setupversion} make install DESTDIR=$RPM_BUILD_ROOT cd - # These scripts are intended to be sourced, not executed chmod 644 $RPM_BUILD_ROOT%{_datadir}/globus/globus-args-parser-header chmod 644 $RPM_BUILD_ROOT%{_datadir}/globus/setup/setup-globus-common.pl chmod 644 $RPM_BUILD_ROOT%{_datadir}/globus/globus-script-initializer chmod 644 $RPM_BUILD_ROOT%{_datadir}/globus/globus-sh-tools.sh # Register setup perl -MGrid::GPT::Setup <<EOF my \$metadata = new Grid::GPT::Setup(package_name => "%{_name}_setup", globusdir => "$RPM_BUILD_ROOT%{_prefix}"); \$metadata->finish(); EOF 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 # 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 globus-makefile-header to devel package grep globus-makefile-header $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist \ >> $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist sed /globus-makefile-header/d \ -i $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist # Don't use /usr/bin/env sed 's!/usr/bin/env perl!/usr/bin/perl!' \ -i $RPM_BUILD_ROOT%{_bindir}/globus-makefile-header # 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 # 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 # Remove deprecated.3 man page (too common name) rm -f $RPM_BUILD_ROOT%{_mandir}/man3/deprecated.3 sed -e '/deprecated\.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} # install manpages mkdir $RPM_BUILD_ROOT%{_mandir}/man1 install -m 644 %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} \ $RPM_BUILD_ROOT%{_mandir}/man1 # Install README file install -m 644 -p %{SOURCE8} \ $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/README # Generate package filelists cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_rtl.filelist \ | sed s!^!%{_prefix}! > package.filelist cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist \ $GLOBUSPACKAGEDIR/%{_name}/noflavor_data.filelist \ $GLOBUSPACKAGEDIR/%{_name}_setup/noflavor_pgm.filelist \ $GLOBUSPACKAGEDIR/%{_name}_setup/noflavor_rtl.filelist \ $GLOBUSPACKAGEDIR/%{_name}_setup/noflavor_data.filelist \ | sed s!^!%{_prefix}! > package-progs.filelist cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist \ | sed s!^!%{_prefix}! > package-devel.filelist cat $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \ | sed -e 's!/man/.*!&*!' -e 's!^!%doc %{_prefix}!' > package-doc.filelist # Touch ghost files touch $RPM_BUILD_ROOT%{_datadir}/globus/setup/globus-sh-tools-vars.sh touch $RPM_BUILD_ROOT%{_datadir}/globus/globus-sh-tools-vars.sh %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post progs cd %{_datadir}/globus/setup ./findshelltools > /dev/null cp -p globus-sh-tools-vars.sh .. rm -f config.log config.status %files -f package.filelist %defattr(-,root,root,-) %dir %{_datadir}/globus %dir %{_datadir}/globus/packages %dir %{_datadir}/globus/packages/setup %dir %{_datadir}/globus/packages/%{_name} %dir %{_datadir}/globus/setup %dir %{_docdir}/%{name}-%{version} %doc %{_docdir}/%{name}-%{version}/GLOBUS_LICENSE %doc %{_docdir}/%{name}-%{version}/README %files -f package-progs.filelist progs %defattr(-,root,root,-) %dir %{_datadir}/globus/packages/%{_name}_setup %{_datadir}/globus/packages/setup/%{_name}_setup %dir %{perl_vendorlib}/Globus %dir %{perl_vendorlib}/Globus/Core %doc %{_mandir}/man1/*.1* %ghost %{_datadir}/globus/setup/globus-sh-tools-vars.sh %ghost %{_datadir}/globus/globus-sh-tools-vars.sh %files -f package-devel.filelist devel %defattr(-,root,root,-) %dir %{_includedir}/globus %{_libdir}/pkgconfig/%{name}.pc %files -f package-doc.filelist doc %defattr(-,root,root,-) %dir %{_docdir}/%{name}-%{version}/html %changelog * Sun Oct 02 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.6-5 - Add contributed manpages * Mon Jun 20 2011 Marcela MaÅ¡láÅová <mmaslano@redhat.com> - 11.6-4 - Perl mass rebuild * Fri Jun 10 2011 Marcela MaÅ¡láÅová <mmaslano@redhat.com> - 11.6-3 - Perl 5.14 mass rebuild * Sun Apr 24 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.6-2 - Add README file * Wed Feb 23 2011 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.6-1 - Update to Globus Toolkit 5.0.3 - Try to ensure that most of globus-sh-tools-vars.sh gets filled * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 11.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Mon Sep 06 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.5-3 - Updated pthread exception patch for better compatibility with boost's headers * Sun Aug 08 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.5-2 - Fix perl dependncies (use vs. require) * Sat Jul 17 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.5-1 - Update to Globus Toolkit 5.0.2 * Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 11.4-2 - Mass rebuild with perl-5.12.0 * Tue Apr 13 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.4-1 - Update to Globus Toolkit 5.0.1 * Wed Feb 24 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.2-2 - Make the globus-version script return the right value * Thu Jan 21 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 11.2-1 - Update to Globus Toolkit 5.0.0 * Fri Dec 04 2009 Stepan Kasal <skasal@redhat.com> - 10.2-9 - rebuild against perl 5.10.1 * Sun Nov 08 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-8 - Let globus-makefile-header fail gracefully when GPT is not present - Workaround a bug in doxygen * Mon Aug 03 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-7 - Patch globus_location function to allow unset GLOBUS_LOCATION - Put back config.guess file * Thu Jul 23 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-6 - Add instruction set architecture (isa) tags - Make doc subpackage noarch - Replace /usr/bin/env shebangs * Tue Jun 02 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-5 - Update to official Fedora Globus packaging guidelines * Mon Apr 27 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-4 - Rebuild with updated libtool * Tue Apr 21 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-3 - Put GLOBUS_LICENSE file in extracted source tarball * Thu Apr 16 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-2 - Remove config.guess file * Tue Apr 07 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-1 - Change defines to globals * Mon Apr 06 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.6 - Make comment about source retrieval more explicit * Sun Mar 15 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.5 - Adapting to updated globus-core package * Thu Feb 26 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.4 - Add s390x to the list of 64 bit platforms - Move globus-makefile-header to devel package * Thu Jan 01 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.3 - Adapt to updated GPT package * Wed Oct 15 2008 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.2 - Update to Globus Toolkit 4.2.1 * Mon Jul 14 2008 Mattias Ellert <mattias.ellert@fysast.uu.se> - 10.2-0.1 - Autogenerated