[gdal] Versioned MODULE_COMPAT_ Requires for Perl
Volker Fröhlich
volter at fedoraproject.org
Tue Jan 10 05:54:01 UTC 2012
commit 7c9c0c60e60c86d2abafaed7a020385db18fe3ec
Author: Volker Fröhlich <volker27 at gmx.at>
Date: Tue Jan 10 11:21:23 2012 +0530
Versioned MODULE_COMPAT_ Requires for Perl
A lot of backports, that were intended for 1.9; amongst:
- Install Python package in the correct place
- Remove bsb from tarball
- Drop support for EPEL4
- Remove support for Grass
- Remove xerces_c limitation
gdal-1.7.3.pom | 2 +-
gdal-libdap.patch | 24 -------
gdal.spec | 182 +++++++++++++++++++++++++++++------------------------
sources | 3 +-
4 files changed, 102 insertions(+), 109 deletions(-)
---
diff --git a/gdal-1.7.3.pom b/gdal-1.7.3.pom
index 754e07c..a0a604e 100644
--- a/gdal-1.7.3.pom
+++ b/gdal-1.7.3.pom
@@ -2,5 +2,5 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gdal</groupId>
<artifactId>gdal-java-bindings</artifactId>
- <version>1.7.2</version>
+ <version>1.7.3</version>
</project>
diff --git a/gdal.spec b/gdal.spec
index 33ea84b..150cf08 100644
--- a/gdal.spec
+++ b/gdal.spec
@@ -1,6 +1,9 @@
+#TODO: Un-bundle g2clib and grib
+#TODO: Python 3 bindings possible since 1.7.0
+
Name: gdal
Version: 1.7.3
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: GIS file format library
Group: System Environment/Libraries
License: MIT
@@ -11,7 +14,6 @@ Source0: %{name}-%{version}-fedora.tar.gz
Source1: http://download.osgeo.org/gdal/gdalautotest-1.7.3.tar.gz
# create versionless symlink
Source2: gdal-1.7.3.pom
-Patch0: %{name}-libdap.patch
Patch1: %{name}-mysql.patch
Patch2: %{name}-bindir.patch
Patch3: %{name}-AIS.patch
@@ -31,17 +33,11 @@ BuildRequires: proj-devel geos-devel netcdf-devel hdf5-devel ogdi-devel libgeoti
BuildRequires: curl-devel
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: chrpath
-# no xerces-c package available for ppc in el5, so excluding the same.
-%if "%{?dist}" == ".el6"
-ExcludeArch: ppc64
-%endif
-
-%if "%{?dist}" != ".el4"
BuildRequires: ant swig ruby java-devel-gcj
-%endif
-# enable/disable grass support, for bootstrapping
-%global grass_support 0
-# enable/disable refman generation
+
+#TODO: Grass support will be available as a plug-in
+
+# Enable/disable refman generation
%global build_refman 1
# we have multilib triage
@@ -51,19 +47,20 @@ BuildRequires: ant swig ruby java-devel-gcj
%global cpuarch 64
%endif
-%{!?python_lib: %global python_lib %(%{__python} -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)')}
+%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
+%endif
+
+#TODO: What if you have Ruby 1.9 as well?
%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"]')}
-# We don't want to provide private python extension libs
+# Avoid providing private Python and Perl extension libs
%{?filter_setup:
-%filter_provides_in %{python_lib}/.*\.so %{_libdir}/perl5/.*\.so$
+%filter_provides_in %{python_sitearch}/.*\.so %{_libdir}/perl5/.*\.so$
%filter_setup
}
-%if %{grass_support}
-BuildRequires: grass-devel
-%endif
-
%description
The GDAL library provides support to handle multiple GIS file formats.
@@ -72,7 +69,7 @@ Summary: Development Libraries for the GDAL file format library
Group: Development/Libraries
Requires: pkgconfig
Requires: libgeotiff-devel
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The GDAL library provides support to handle multiple GIS file formats.
@@ -88,7 +85,7 @@ The GDAL library provides support to handle multiple GIS file formats.
Summary: Python modules for the GDAL file format library
Group: Development/Libraries
Requires: numpy
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description python
The GDAL python modules provides support to handle multiple GIS file formats.
@@ -96,19 +93,19 @@ The GDAL python modules provides support to handle multiple GIS file formats.
%package perl
Summary: Perl modules for the GDAL file format library
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description perl
The GDAL perl modules provides support to handle multiple GIS file formats.
-%if "%{?dist}" != ".el4"
%package ruby
Summary: Ruby modules for the GDAL file format library
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description ruby
-The GDAL ruby modules provides support to handle multiple GIS file formats.
+The GDAL Ruby modules provide support to handle multiple GIS file formats.
%package java
Summary: Java modules for the GDAL file format library
@@ -120,11 +117,10 @@ Requires: maven2
Requires: jpackage-utils
Requires(post): jpackage-utils
Requires(postun): jpackage-utils
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description java
The GDAL java modules provides support to handle multiple GIS file formats.
-%endif
%package doc
Summary: Documentation for GDAL
@@ -136,9 +132,16 @@ This package contains html and pdf documentation for GDAL.
%prep
%setup -q -n %{name}-%{version}-fedora
-%if "%{?dist}" == ".fc10"
-%patch0 -p1 -b .libdap~
-%endif
+
+# Delete bundled libraries
+rm -rf frmts/zlib
+rm -rf frmts/png/libpng
+rm -rf frmts/gif/giflib
+rm -rf frmts/jpeg/libjpeg \
+ frmts/jpeg/libjpeg12
+rm -rf frmts/gtiff/libgeotiff \
+ frmts/gtiff/libtiff
+
%patch1 -p0 -b .mysql~
%patch2 -p1 -b .bindir~
%patch3 -p1 -b .AIS~
@@ -174,6 +177,19 @@ find swig/python/samples -name "*.py" -exec chmod -x '{}' \;
# It obviously slipped into the tarball and is not in Trunk (April 17th, 2011)
rm -rf man
+# Repair check for dap and also Curl (although not obvious here!)
+#TODO: Better use dap-config --libs
+sed -i 's|-ldap++|-ldap -ldapclient -ldapserver|' configure configure.in
+
+# fix doxygen for multilib docs
+sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' swig/perl/Doxyfile
+sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/gxf/Doxyfile
+sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/sdts/Doxyfile
+sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/pcraster/doxygen.cfg
+sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/iso8211/Doxyfile
+
+
+
%build
# fix hardcoded issues
@@ -193,7 +209,14 @@ sed -i 's|-logdi31|-logdi|g' configure
sed -i 's|libproj.so|libproj.so.0|g' ogr/ogrct.cpp
# Fix python path for ppc64
-sed -i 's|test \"$ARCH\" = \"x86_64\"|test \"$libdir\" = \"\/usr\/lib64\"|g' configure
+#TODO: Überprüfen ob es wirkt
+sed -i 's|test \"$ARCH\" = \"x86_64\"|test \"$libdir\" = \"$libdir"|g' configure
+
+# Install Ruby bindings into the proper place
+#TODO: Upstream, as this is useful and does no harm
+sed -i -e 's|^$(INSTALL_DIR):|$(DESTDIR)$(INSTALL_DIR):|' swig/ruby/RubyMakefile.mk
+sed -i -e 's|^install: $(INSTALL_DIR)|install: $(DESTDIR)$(INSTALL_DIR)|' swig/ruby/RubyMakefile.mk
+sed -i -e 's|^INSTALL_DIR := $(RUBY_EXTENSIONS_DIR)/gdal|INSTALL_DIR = $(RUBY_EXTENSIONS_DIR)|' swig/ruby/RubyMakefile.mk
# Append paths for some libs
export CPPFLAGS="`pkg-config ogdi --cflags`"
@@ -208,11 +231,14 @@ export CPPFLAGS="$CPPFLAGS -DH5_USE_16_API"
export CXXFLAGS=`echo %{optflags}|sed -e 's/\-Wp\,-D_FORTIFY_SOURCE\=2 / -fPIC -DPIC /g'`
export CFLAGS=`echo %{optflags}|sed -e 's/\-Wp\,\-D_FORTIFY_SOURCE\=2 / -fPIC -DPIC /g'`
+# BSB has legal claims, see PROVENANCE.TXT-fedora
+#TODO: msg needs to have PublicDecompWT.zip from EUMETSAT, which is not free
%configure \
--prefix=%{_prefix} \
--includedir=%{_includedir}/%{name}/ \
--datadir=%{_datadir}/%{name}/ \
--with-threads \
+ --without-bsb \
--with-dods-root=%{_libdir} \
--with-ogdi \
--with-cfitsio=%{_prefix} \
@@ -234,19 +260,13 @@ export CFLAGS=`echo %{optflags}|sed -e 's/\-Wp\,\-D_FORTIFY_SOURCE\=2 / -fPIC -D
--with-python \
--with-perl \
--with-pcraster \
-%if "%{?dist}" != ".el4"
--with-ruby \
--with-java \
-%endif
--with-xerces \
--with-xerces-lib='-lxerces-c' \
--with-xerces-inc=%{_includedir} \
--with-jpeg12=no \
--enable-shared \
-%if %{grass_support}
- --with-libgrass \
- --with-grass=%{_prefix} \
-%endif
--with-gdal-ver=%{version}-fedora
# fixup hardcoded wrong compile flags.
@@ -257,16 +277,11 @@ sed -e 's/ cfitsio / /' \
GDALmake.opt.orig > GDALmake.opt
rm GDALmake.opt.orig
-# fix ruby flags
+# Build with fPIC to allow Ruby bindings
+#TODO: Ticket
sed -i -e "s/\$(LD)/g++ -L..\/..\/.libs\/ $RPM_OPT_FLAGS/g" swig/ruby/RubyMakefile.mk
sed -i -e "s/\$(CFLAGS)/$(CFLAGS) -fPIC/g" swig/ruby/RubyMakefile.mk
-# fix doxygen for multilib docs
-sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' swig/perl/Doxyfile
-sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/gxf/Doxyfile
-sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/sdts/Doxyfile
-sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/pcraster/doxygen.cfg
-sed -i -e 's|^HTML_FOOTER|HTML_FOOTER = ../../doc/gdal_footer.html\n#HTML_FOOTER = |' frmts/iso8211/Doxyfile
# WARNING !!!
# dont use {?_smp_mflags} it break compile
@@ -279,7 +294,6 @@ pushd swig/perl
echo > Makefile.PL;
popd
-%if "%{?dist}" != ".el4"
# make java modules
pushd swig/java
# fix makefile
@@ -288,7 +302,6 @@ popd
# build java module
make
popd
-%endif
# remake documentation for multilib issues
# also include many pdf documentation
@@ -324,14 +337,16 @@ for docdir in ./ doc doc/ru doc/br ogr frmts/gxf frmts/pcidsk/sdk frmts/sdts frm
popd
done
+
%install
rm -rf %{buildroot}
+# Fix Python installation path
+sed -i 's|setup.py install|setup.py install --root=%{buildroot}|' swig/python/GNUmakefile
+
# fix some perl installation issue
sed -i 's|>> $(DESTINSTALLARCHLIB)\/perllocal.pod|> \/dev\/null|g' swig/perl/Makefile_*
-# fix python installation path
-sed -i 's|setup.py install|setup.py install --root=%{buildroot}|' swig/python/GNUmakefile
make DESTDIR=%{buildroot} \
install
@@ -347,12 +362,6 @@ find %{buildroot}%{perl_vendorarch} -name "*.dox" -exec rm -rf '{}' \;
# fix some exec bits
find %{buildroot}%{perl_vendorarch} -name "*.so" -exec chmod 755 '{}' \;
-find %{buildroot}%{python_lib} -name "*.so" -exec chmod 755 '{}' \;
-
-%if "%{?dist}" != ".el4"
-# move ruby modules in the right path
-mv %{buildroot}%{ruby_sitearch}/%{name}/*.* %{buildroot}%{ruby_sitearch}
-rm -rf %{buildroot}%{ruby_sitearch}/%{name}
# install multilib java modules in the right path
touch -r NEWS swig/java/gdal.jar
@@ -363,16 +372,18 @@ cp -p swig/java/gdal.jar \
# create versionless symlink
ln -s %{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
-# add pom
-mkdir -p %{buildroot}%{_datadir}/maven2/poms
-install -m 644 %{SOURCE2} \
- %{buildroot}%{_datadir}/maven2/poms/JPP-%{name}.pom
+# Install Maven pom
+mkdir -p %{buildroot}%{_mavenpomdir}
+install -pm 644 %{SOURCE2} \
+ %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
+
+# Create depmap fragment
+%add_to_maven_depmap org.gdal gdal-java-bindings %{version} JPP %{name}
# copy JNI libraries and links, non versioned link needed by JNI
cp -pvl swig/java/.libs/*.so* \
%{buildroot}%{_libdir}
chrpath --delete %{buildroot}%{_libdir}/*jni.so*
-%endif
# install and include all docs
# due TeX-related issues some refman.pdf are not created
@@ -397,11 +408,8 @@ mkdir -p doc/ogrsf_frmts; find ogr -name "*.html" -exec install -p -m 644 '{}' d
#%ifnarch ppc ppc64
#install -p -m 644 ogr/ogrsf_frmts/dgn/latex/refman.pdf docs/docs-%{cpuarch}/pdf/ogrsf_frmts/dgn/
#%endif
- %if "%{?dist}" != ".el4"
- # broken on el4
- install -p -m 644 frmts/gxf/latex/refman.pdf docs/docs-%{cpuarch}/pdf/frmts/gxf/
- install -p -m 644 frmts/sdts/latex/class*.pdf docs/docs-%{cpuarch}/pdf/frmts/sdts/
- %endif
+ install -p -m 644 frmts/gxf/latex/refman.pdf docs/docs-%{cpuarch}/pdf/frmts/gxf/
+ install -p -m 644 frmts/sdts/latex/class*.pdf docs/docs-%{cpuarch}/pdf/frmts/sdts/
# Doesn't work at all. Complaints about different nesting level in \pdfendlink
# Working in GDAL 1.8.0, funny enough!
#%ifnarch ppc ppc64
@@ -488,15 +496,13 @@ for junk in {*.la,*.bs,.exists,.packlist,.cvsignore} ; do
find %{buildroot} -name "$junk" -exec rm -rf '{}' \;
done
-# create depmap fragment
-%add_to_maven_depmap org.gdal gdal-java-bindings %{version} JPP %{name}
%check
pushd gdalautotest-1.7.3
# export test enviroment
-export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python_lib}
+export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python_sitearch}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir}
export GDAL_DATA=%{buildroot}%{_datadir}/%{name}/
@@ -514,6 +520,7 @@ rm -rf gcore/mask.py # crash ugly (mustfix)
popd
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -531,8 +538,8 @@ rm -rf $RPM_BUILD_ROOT
# update maven2 depmap
%update_maven_depmap
+
%files
-%defattr(-,root,root,-)
%doc NEWS PROVENANCE.TXT PROVENANCE.TXT-fedora COMMITERS
%{_bindir}/gdal_contour
%{_bindir}/gdal_rasterize
@@ -553,10 +560,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libgdal.so.*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/*
-%{_mandir}/man1/*
+%{_mandir}/man1/*.1*
%files devel
-%defattr(-,root,root,-)
%{_bindir}/%{name}-config
%{_bindir}/%{name}-config-%{cpuarch}
%dir %{_includedir}/%{name}
@@ -565,44 +571,56 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/%{name}.pc
%files static
-%defattr(-,root,root,-)
%{_libdir}/*.a
%files python
-%defattr(-,root,root,-)
%doc swig/python/samples
%{_bindir}/*.py*
-%{python_lib}/*
+%{python_sitearch}/*
%files perl
-%defattr(-,root,root,-)
%doc doc/docs-perl
%doc swig/perl/README
%{perl_vendorarch}/*
-%if "%{?dist}" != ".el4"
%files ruby
-%defattr(-,root,root,-)
%{ruby_sitearch}/*
%files java
-%defattr(-,root,root,-)
%doc swig/java/apps
%{_javadir}/%{name}-%{version}.jar
# provide versionless symlink
%{_javadir}/%{name}.jar
%{_libdir}/*jni.so.*
-# provide the pom
-%{_datadir}/maven2/poms/*
-# provide the depmap frag
+%{_mavenpomdir}/*
%{_mavendepmapfragdir}/*
-%endif
%files doc
-%defattr(-,root,root)
%doc docs
%changelog
+* Tue Jan 10 2012 Volker Fröhlich <volker27 at gmx.at> - 1.7.3-12
+- Remove FC10 specific patch0
+- Versioned MODULE_COMPAT_ Requires for Perl (BZ 768265)
+- Add isa macro to base package Requires
+- Remove conditional for xerces_c in EL6, as EL6 has xerces_c
+ even for ppc64 via EPEL
+- Remove EL4 conditionals
+- Replace the python_lib macro definition and install Python bindings
+ to sitearch directory, where they belong
+- Use correct dap library names for linking
+- Correct Ruby installation path in the Makefile instead of moving it later
+- Use libdir variable in ppc64 Python path
+- Delete obsolete chmod for Python libraries
+- Move correction for Doxygen footer to prep section
+- Delete bundled libraries before building
+- Build without bsb and remove it from the tarball
+- Use mavenpomdir macro and be a bit more precise on manpages in
+ the files section
+- Remove elements for grass support --> Will be replaced by plug-in
+- Remove unnecessary defattr
+- Correct version number in POM
+
* Tue Dec 06 2011 Adam Jackson <ajax at redhat.com> - 1.7.3-11
- Rebuild for new libpng
diff --git a/sources b/sources
index 205f22f..3cbebfb 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-aeb6c9686a3c008e77ebf379724f6a61 gdal-1.7.3-fedora.tar.gz
-0b12bd95c7fb78a6f33a922c24d1b40d gdalautotest-1.7.3.tar.gz
+c2bf1c67ff6db27e2238c6c3d5feac29 gdal-1.7.3-fedora.tar.gz
More information about the scm-commits
mailing list