Blob Blame History Raw
%ifarch alpha ia64 ppc64 s390x sparc64 x86_64
%global flavor gcc64pthr
%else
%global flavor gcc32pthr
%endif

Name:		globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version:	3.23
Release:	1%{?dist}
Summary:	Globus Toolkit - Globus GridFTP Server

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.2/installers/src/gt5.0.2-all-source-installer.tar.bz2
#		tar -jxf gt5.0.2-all-source-installer.tar.bz2
#		mv gt5.0.2-all-source-installer/source-trees/gridftp/server/src globus_gridftp_server-3.23
#		cp -p gt5.0.2-all-source-installer/source-trees/core/source/GLOBUS_LICENSE globus_gridftp_server-3.23
#		tar -zcf globus_gridftp_server-3.23.tar.gz globus_gridftp_server-3.23
Source:		%{_name}-%{version}.tar.gz
#		Add missing dependency metadata:
#		http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6813
Patch0:		%{name}-deps.patch
#		Fixes for FHS installation:
#		http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6814
Patch1:		%{name}-usr.patch
#		PATH_MAX and MAXPATHLENGTH should not be defined in headers:
#		http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6830
Patch2:		%{name}-pathmax.patch
#		Fix location of default config file:
#		http://bugzilla.globus.org/bugzilla/show_bug.cgi?id=6876
Patch3:		%{name}-etc.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

Requires:	globus-xio-gsi-driver%{?_isa}
BuildRequires:	grid-packaging-tools
BuildRequires:	globus-gridftp-server-control-devel%{?_isa}
BuildRequires:	globus-usage-devel%{?_isa} >= 1
BuildRequires:	globus-xio-gsi-driver-devel%{?_isa}
BuildRequires:	globus-xio-devel%{?_isa}
BuildRequires:	globus-authz-devel%{?_isa}
BuildRequires:	globus-gfork-devel%{?_isa}
BuildRequires:	globus-ftp-control-devel%{?_isa} >= 1

%package progs
Summary:	Globus Toolkit - Globus GridFTP Server Programs
Group:		Applications/Internet
Requires:	%{name}%{?_isa} = %{version}-%{release}
Requires:	globus-xio-gsi-driver%{?_isa}

%package devel
Summary:	Globus Toolkit - Globus GridFTP Server Development Files
Group:		Development/Libraries
Requires:	%{name}%{?_isa} = %{version}-%{release}
Requires:	globus-gridftp-server-control-devel%{?_isa}
Requires:	globus-usage-devel%{?_isa} >= 1
Requires:	globus-xio-gsi-driver-devel%{?_isa}
Requires:	globus-xio-devel%{?_isa}
Requires:	globus-authz-devel%{?_isa}
Requires:	globus-gfork-devel%{?_isa}
Requires:	globus-ftp-control-devel%{?_isa} >= 1

%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:
Globus GridFTP Server

%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:
Globus GridFTP Server Programs

%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:
Globus GridFTP Server Development Files

%prep
%setup -q -n %{_name}-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1

%build
# 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 -s 's!\(lib[a-zA-Z_${}]*\)_${GLOBUS_FLAVOR_NAME}\.la!\1.la!g' \
  -i configure.in
sed -e "s!<With_Flavors!<With_Flavors ColocateLibraries=\"no\"!" \
  -i pkgdata/pkg_data_src.gpt.in

%{_datadir}/globus/globus-bootstrap.sh

export GRIDMAP=/etc/grid-security/grid-mapfile
%configure --with-flavor=%{flavor} --sysconfdir=/etc/%{name}

make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

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

# Remove buildroot from filelist
sed s!$RPM_BUILD_ROOT!! -i $GLOBUSPACKAGEDIR/%{_name}/noflavor_data.filelist

# No need for environment in gfork scripts
sed '/ env /d' -i $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/g*

# Remove .pl extension and add globus namespace
mv $RPM_BUILD_ROOT%{_sbindir}/gridftp-password.pl \
   $RPM_BUILD_ROOT%{_sbindir}/globus-gridftp-password
sed s/gridftp-password.pl/globus-gridftp-password/ \
  -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%{_sbindir}/globus-gridftp-password

# Install license file
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
install -m 644 -p GLOBUS_LICENSE $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}

# 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 \
  | 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

%clean
rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files -f package.filelist
%defattr(-,root,root,-)
%dir %{_datadir}/globus/packages/%{_name}
%dir %{_docdir}/%{name}-%{version}
%doc %{_docdir}/%{name}-%{version}/GLOBUS_LICENSE

%files -f package-progs.filelist progs
%defattr(-,root,root,-)
%dir %{_sysconfdir}/%{name}

%files -f package-devel.filelist devel
%defattr(-,root,root,-)
%{_libdir}/pkgconfig/%{name}.pc

%changelog
* Sat Jul 17 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.23-1
- Update to Globus Toolkit 5.0.2

* Wed Apr 14 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.21-1
- Update to Globus Toolkit 5.0.1

* Sat Jan 23 2010 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.19-1
- Update to Globus Toolkit 5.0.0

* Mon Oct 19 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.17-2
- Fix location of default config file

* Thu Jul 30 2009 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.17-1
- Autogenerated