Created
July 26, 2016 00:44
-
-
Save dakcarto/a0daa8c8ba55a1ff78b90365437747c1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#TODO: g2clib and grib (said to be modified) | |
#TODO: Python 3 modules should be possible since 1.7 | |
#TODO: Create script to make clean tarball | |
#TODO: msg needs to have PublicDecompWT.zip from EUMETSAT, which is not free; | |
# Building without msg therefore | |
#TODO: e00compr bundled? | |
#TODO: There are tests for bindings -- at least for Perl | |
#TODO: Java has a directory with test data and a build target called test | |
# It uses %{JAVA_RUN}; make test seems to work in the build directory | |
#TODO: e00compr source is the same in the package and bundled in GDAL | |
#TODO: Consider doxy patch from Suse, setting EXTRACT_LOCAL_CLASSES = NO | |
# Soname should be bumped on API/ABI break | |
# http://trac.osgeo.org/gdal/ticket/4543 | |
# Conditionals and structures for EL 5 are there | |
# to make life easier for downstream ELGIS. | |
# Sadly noarch doesn't work in EL 5, see | |
# http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies | |
# He also suggest to use --with-static-proj4 to actually link to proj, instead of dlopen()ing it. | |
# Tests can be of a different version | |
%global testversion 1.11.4 | |
%global run_tests 1 | |
%global with_spatialite 1 | |
%global spatialite "--with-spatialite" | |
# No ppc64 build for spatialite in EL7 | |
# https://bugzilla.redhat.com/show_bug.cgi?id=663938 | |
%if 0%{?rhel} == 7 | |
%ifnarch ppc64 | |
%global with_spatialite 0 | |
%global spatialite "--without-spatialite" | |
%endif | |
%endif | |
Name: gdal | |
Version: 1.11.4 | |
Release: 1%{?dist} | |
Summary: GIS file format library | |
Group: System Environment/Libraries | |
License: MIT | |
URL: http://www.gdal.org | |
# Source0: http://download.osgeo.org/gdal/%%{version}/gdal-%%{version}.tar.xz | |
# See PROVENANCE.TXT-fedora and the cleaner script for details! | |
Source0: %{name}-%{version}-fedora.tar.xz | |
Source1: http://download.osgeo.org/%{name}/%{testversion}/%{name}autotest-%{testversion}.tar.gz | |
Source2: %{name}.pom | |
# Cleaner script for the tarball | |
Source3: %{name}-cleaner.sh | |
Source4: PROVENANCE.TXT-fedora | |
# Patch to use system g2clib | |
Patch1: %{name}-g2clib.patch | |
# Patch for Fedora JNI library location | |
Patch2: %{name}-jni.patch | |
# https://trac.osgeo.org/gdal/ticket/6159#ticket | |
Patch3: %{name}-2.0.1-iso8211-include.patch | |
# Fedora uses Alternatives for Java | |
Patch8: %{name}-1.9.0-java.patch | |
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
BuildRequires: ant | |
# No armadillo in EL5 | |
BuildRequires: armadillo-devel | |
BuildRequires: cfitsio-devel | |
# No CharLS in EL5 | |
BuildRequires: CharLS-devel | |
BuildRequires: chrpath | |
BuildRequires: curl-devel | |
BuildRequires: doxygen | |
BuildRequires: expat-devel | |
BuildRequires: fontconfig-devel | |
# No freexl in EL5 | |
BuildRequires: freexl-devel | |
BuildRequires: g2clib-static | |
BuildRequires: geos-devel | |
BuildRequires: ghostscript | |
BuildRequires: hdf-devel | |
BuildRequires: hdf-static | |
BuildRequires: hdf5-devel | |
BuildRequires: java-devel >= 1:1.6.0 | |
BuildRequires: jasper-devel | |
BuildRequires: jpackage-utils | |
BuildRequires: libgeotiff-devel | |
# No libgta in EL5 | |
BuildRequires: libgta-devel | |
BuildRequires: libjpeg-devel | |
BuildRequires: libpng-devel | |
%if %{with_spatialite} | |
BuildRequires: libspatialite-devel | |
%endif | |
BuildRequires: libtiff-devel | |
# No libwebp in EL 5 and 6 | |
BuildRequires: libwebp-devel | |
BuildRequires: libtool | |
BuildRequires: giflib-devel | |
BuildRequires: netcdf-devel | |
BuildRequires: libdap-devel | |
BuildRequires: librx-devel | |
BuildRequires: mysql-devel | |
BuildRequires: numpy | |
BuildRequires: pcre-devel | |
BuildRequires: ogdi-devel | |
BuildRequires: openjpeg2-devel | |
BuildRequires: perl(ExtUtils::MakeMaker) | |
BuildRequires: pkgconfig | |
BuildRequires: poppler-devel | |
BuildRequires: postgresql-devel | |
BuildRequires: proj-devel | |
BuildRequires: python2-devel | |
BuildRequires: sqlite-devel | |
BuildRequires: swig | |
BuildRequires: texlive-latex | |
%if 0%{?fedora} >= 20 | |
BuildRequires: texlive-collection-fontsrecommended | |
BuildRequires: texlive-collection-langcyrillic | |
BuildRequires: texlive-collection-langportuguese | |
BuildRequires: texlive-collection-latex | |
BuildRequires: texlive-epstopdf | |
BuildRequires: tex(multirow.sty) | |
BuildRequires: tex(sectsty.sty) | |
BuildRequires: tex(tocloft.sty) | |
BuildRequires: tex(xtab.sty) | |
%endif | |
BuildRequires: unixODBC-devel | |
BuildRequires: xerces-c-devel | |
BuildRequires: xz-devel | |
BuildRequires: zlib-devel | |
# Run time dependency for gpsbabel driver | |
Requires: gpsbabel | |
Requires: %{name}-libs%{?_isa} = %{version}-%{release} | |
# Enable/disable generating refmans | |
%global build_refman 1 | |
# We have multilib triage | |
%if "%{_lib}" == "lib" | |
%global cpuarch 32 | |
%else | |
%global cpuarch 64 | |
%endif | |
%if ! (0%{?fedora} || 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: Description on the lib? | |
%description | |
Geospatial Data Abstraction Library (GDAL/OGR) is a cross platform | |
C++ translator library for raster and vector geospatial data formats. | |
As a library, it presents a single abstract data model to the calling | |
application for all supported formats. It also comes with a variety of | |
useful commandline utilities for data translation and processing. | |
It provides the primary data access engine for many applications. | |
GDAL/OGR is the most widely used geospatial data access library. | |
%package devel | |
Summary: Development files for the GDAL file format library | |
Group: Development/Libraries | |
# Old rpm didn't figure out | |
%if 0%{?rhel} < 6 | |
Requires: pkgconfig | |
%endif | |
Requires: %{name}-libs%{?_isa} = %{version}-%{release} | |
Obsoletes: %{name}-static < 1.9.0-1 | |
%description devel | |
This package contains development files for GDAL. | |
%package libs | |
Summary: GDAL file format library | |
Group: System Environment/Libraries | |
Obsoletes: %{name}-ruby < 1.11.0-1 | |
%description libs | |
This package contains the GDAL file format library. | |
%package java | |
Summary: Java modules for the GDAL file format library | |
Group: Development/Libraries | |
Requires: jpackage-utils | |
Requires: %{name}-libs%{?_isa} = %{version}-%{release} | |
%description java | |
The GDAL Java modules provide support to handle multiple GIS file formats. | |
%package javadoc | |
Summary: Javadocs for %{name} | |
Group: Documentation | |
Requires: jpackage-utils | |
BuildArch: noarch | |
%description javadoc | |
This package contains the API documentation for %{name}. | |
%package perl | |
Summary: Perl modules for the GDAL file format library | |
Group: Development/Libraries | |
Requires: %{name}-libs%{?_isa} = %{version}-%{release} | |
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) | |
%description perl | |
The GDAL Perl modules provide support to handle multiple GIS file formats. | |
%package python | |
Summary: Python modules for the GDAL file format library | |
Group: Development/Libraries | |
Requires: numpy | |
Requires: %{name}-libs%{?_isa} = %{version}-%{release} | |
%description python | |
The GDAL Python modules provide support to handle multiple GIS file formats. | |
The package also includes a couple of useful utilities in Python. | |
%package doc | |
Summary: Documentation for GDAL | |
Group: Documentation | |
BuildArch: noarch | |
%description doc | |
This package contains HTML and PDF documentation for GDAL. | |
# We don't want to provide private Python extension libs | |
%global __provides_exclude_from ^%{python_sitearch}/.*\.so$ | |
%prep | |
%setup -q -n %{name}-%{version}-fedora | |
# Unpack tests to the same directory | |
%setup -q -D -a 1 -n %{name}-%{version}-fedora | |
# 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 | |
rm -r frmts/grib/degrib18/g2clib-1.0.4 | |
%patch1 -p1 -b .g2clib~ | |
%patch2 -p1 -b .jni~ | |
%patch3 -p1 -b .iso8211~ | |
%patch8 -p1 -b .java~ | |
# Copy in PROVENANCE.TXT-fedora | |
cp -p %SOURCE4 . | |
# Sanitize linebreaks and encoding | |
#TODO: Don't touch data directory! | |
# /frmts/grib/degrib18/degrib/metaname.cpp | |
# and geoconcept.c are potentially dangerous to change | |
set +x | |
for f in `find . -type f` ; do | |
if file $f | grep -q ISO-8859 ; then | |
set -x | |
iconv -f ISO-8859-1 -t UTF-8 $f > ${f}.tmp && \ | |
mv -f ${f}.tmp $f | |
set +x | |
fi | |
if file $f | grep -q CRLF ; then | |
set -x | |
sed -i -e 's|\r||g' $f | |
set +x | |
fi | |
done | |
set -x | |
# Solved for 2.0 | |
for f in ogr/ogrsf_frmts/gpsbabel ogr/ogrsf_frmts/pgdump port apps; do | |
pushd $f | |
chmod 644 *.cpp *.h | |
popd | |
done | |
# Fix build order with parallel make | |
# http://trac.osgeo.org/gdal/ticket/5346 | |
sed -i '/^swig-modules:/s/lib-target/apps-target/' GNUmakefile | |
# Workaround about wrong result in configure | |
# armadillo returns a warning about gcc versions 4.7.0 or 4.7.1 | |
# due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53549 | |
# configure interprets the result as an error so ignore it | |
# this patch can/should be removed after gcc 4.7.2 is released | |
sed -i 's|if test -z "`${CXX} testarmadillo.cpp -o testarmadillo -larmadillo 2>&1`"|if true|' configure | |
# Replace hard-coded library- and include paths | |
%ifnarch aarch64 ppc64le | |
# workaround libtool bug in RHEL 7.2 (rhbz#1287191) | |
sed -i 's|@LIBTOOL@|%{_bindir}/libtool|g' GDALmake.opt.in | |
%endif | |
sed -i 's|-L\$with_cfitsio -L\$with_cfitsio/lib -lcfitsio|-lcfitsio|g' configure | |
sed -i 's|-I\$with_cfitsio -I\$with_cfitsio/include|-I\$with_cfitsio/include/cfitsio|g' configure | |
sed -i 's|-L\$with_netcdf -L\$with_netcdf/lib -lnetcdf|-lnetcdf|g' configure | |
sed -i 's|-L\$DODS_LIB -ldap++|-ldap++|g' configure | |
sed -i 's|-L\$with_ogdi -L\$with_ogdi/lib -logdi|-logdi|g' configure | |
sed -i 's|-L\$with_jpeg -L\$with_jpeg/lib -ljpeg|-ljpeg|g' configure | |
sed -i 's|-L\$with_libtiff\/lib -ltiff|-ltiff|g' configure | |
sed -i 's|-lgeotiff -L$with_geotiff $LIBS|-lgeotiff $LIBS|g' configure | |
sed -i 's|-L\$with_geotiff\/lib -lgeotiff $LIBS|-lgeotiff $LIBS|g' configure | |
# libproj is dlopened; upstream sources point to .so, which is usually not present | |
# http://trac.osgeo.org/gdal/ticket/3602 | |
sed -i 's|libproj.so|libproj.so.0|g' ogr/ogrct.cpp | |
# Fix Python installation path | |
sed -i 's|setup.py install|setup.py install --root=%{buildroot}|' swig/python/GNUmakefile | |
# Must be corrected for 64 bit architectures other than Intel | |
# http://trac.osgeo.org/gdal/ticket/4544 | |
# Should be gone in 2.0 | |
sed -i 's|test \"$ARCH\" = \"x86_64\"|test \"$libdir\" = \"/usr/lib64\"|g' configure | |
# Adjust check for LibDAP version | |
# http://trac.osgeo.org/gdal/ticket/4545 | |
%if %cpuarch == 64 | |
sed -i 's|with_dods_root/lib|with_dods_root/lib64|' configure | |
%endif | |
# Fix mandir | |
sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure | |
# Activate support for JPEGLS | |
sed -i 's|^#HAVE_CHARLS|HAVE_CHARLS|' GDALmake.opt.in | |
sed -i 's|#CHARLS_INC = -I/path/to/charls_include|CHARLS_INC = -I%{_includedir}/CharLS|' GDALmake.opt.in | |
sed -i 's|#CHARLS_LIB = -L/path/to/charls_lib -lCharLS|CHARLS_LIB = -lCharLS|' GDALmake.opt.in | |
# Replace default plug-in dir | |
# Solved in 2.0 | |
# http://trac.osgeo.org/gdal/ticket/4444 | |
%if %cpuarch == 64 | |
sed -i 's|GDAL_PREFIX "/lib/gdalplugins"|GDAL_PREFIX "/lib64/gdalplugins"|' \ | |
gcore/gdaldrivermanager.cpp \ | |
ogr/ogrsf_frmts/generic/ogrsfdriverregistrar.cpp | |
%endif | |
# Remove man dir, as it blocks a build target. | |
# It obviously slipped into the tarball and is not in Trunk (April 17th, 2011) | |
#rm -rf man | |
%build | |
#TODO: Couldn't I have modified that in the prep section? | |
%ifarch sparcv9 sparc64 s390 s390x | |
export CFLAGS="$RPM_OPT_FLAGS -fPIC" | |
%else | |
export CFLAGS="$RPM_OPT_FLAGS -fpic" | |
%endif | |
export CXXFLAGS="$CFLAGS -I%{_includedir}/libgeotiff" | |
export CPPFLAGS="$CPPFLAGS -I%{_includedir}/libgeotiff" | |
# For future reference: | |
# epsilon: Stalled review -- https://bugzilla.redhat.com/show_bug.cgi?id=660024 | |
# Building without pgeo driver, because it drags in Java | |
%configure \ | |
LIBS=-lgrib2c \ | |
--with-autoload=%{_libdir}/%{name}plugins \ | |
--datadir=%{_datadir}/%{name}/ \ | |
--includedir=%{_includedir}/%{name}/ \ | |
--prefix=%{_prefix} \ | |
--without-bsb \ | |
--with-armadillo \ | |
--with-curl \ | |
--with-cfitsio=%{_prefix} \ | |
--with-dods-root=%{_prefix} \ | |
--with-expat \ | |
--with-freexl \ | |
--with-geos \ | |
--with-geotiff=external \ | |
--with-gif \ | |
--with-gta \ | |
--with-hdf4 \ | |
--with-hdf5 \ | |
--with-jasper \ | |
--with-java \ | |
--with-jpeg \ | |
--without-jpeg12 \ | |
--with-liblzma \ | |
--with-libtiff=external \ | |
--with-libz \ | |
--without-mdb \ | |
--with-mysql \ | |
--with-netcdf \ | |
--with-odbc \ | |
--with-ogdi \ | |
--without-msg \ | |
--with-openjpeg \ | |
--with-pcraster \ | |
--with-pg \ | |
--with-png \ | |
--with-poppler \ | |
%{spatialite} \ | |
--with-sqlite3 \ | |
--with-threads \ | |
--with-webp \ | |
--with-xerces \ | |
--enable-shared \ | |
--with-perl \ | |
--with-python | |
#--with-rasdaman # 8.3 rasdaman has no -lcompression; doesn't work | |
# {?_smp_mflags} doesn't work; Or it does -- who knows! | |
make %{?_smp_mflags} | |
make man | |
make docs | |
# Make Perl modules | |
pushd swig/perl | |
perl Makefile.PL; make; | |
echo > Makefile.PL; | |
popd | |
# Build some utilities, as requested in BZ #1271906 | |
pushd ogr/ogrsf_frmts/s57/ | |
make all | |
popd | |
pushd frmts/iso8211/ | |
make all | |
popd | |
# Install the Perl modules in the right place | |
sed -i 's|INSTALLDIRS = site|INSTALLDIRS = vendor|' swig/perl/Makefile_* | |
# Don't append installation info to pod | |
#TODO: What about the pod? | |
sed -i 's|>> $(DESTINSTALLARCHLIB)\/perllocal.pod|> \/dev\/null|g' swig/perl/Makefile_* | |
# Make Java module and documentation | |
pushd swig/java | |
make | |
./make_doc.sh | |
popd | |
# --------- Documentation ---------- | |
# No useful documentation in swig | |
%global docdirs apps doc doc/br doc/ru ogr ogr/ogrsf_frmts frmts/gxf frmts/iso8211 frmts/pcidsk frmts/sdts frmts/vrt ogr/ogrsf_frmts/dgn/ | |
for docdir in %{docdirs}; do | |
# CreateHTML and PDF documentation, if specified | |
pushd $docdir | |
if [ ! -f Doxyfile ]; then | |
doxygen -g | |
else | |
doxygen -u | |
fi | |
sed -i -e 's|^GENERATE_LATEX|GENERATE_LATEX = YES\n#GENERATE_LATEX |' Doxyfile | |
sed -i -e 's|^GENERATE_HTML|GENERATE_HTML = YES\n#GENERATE_HTML |' Doxyfile | |
sed -i -e 's|^USE_PDFLATEX|USE_PDFLATEX = YES\n#USE_PDFLATEX |' Doxyfile | |
if [ $docdir == "doc/ru" ]; then | |
sed -i -e 's|^OUTPUT_LANGUAGE|OUTPUT_LANGUAGE = Russian\n#OUTPUT_LANGUAGE |' Doxyfile | |
fi | |
rm -rf latex html | |
doxygen | |
%if %{build_refman} | |
pushd latex | |
sed -i -e '/rfoot\[/d' -e '/lfoot\[/d' doxygen.sty | |
sed -i -e '/small/d' -e '/large/d' refman.tex | |
sed -i -e 's|pdflatex|pdflatex -interaction nonstopmode |g' Makefile | |
make refman.pdf || true | |
popd | |
%endif | |
popd | |
done | |
%install | |
rm -rf %{buildroot} | |
make DESTDIR=%{buildroot} \ | |
install \ | |
install-man | |
install -pm 755 ogr/ogrsf_frmts/s57/s57dump %{buildroot}%{_bindir} | |
install -pm 755 frmts/iso8211/8211createfromxml %{buildroot}%{_bindir} | |
install -pm 755 frmts/iso8211/8211dump %{buildroot}%{_bindir} | |
install -pm 755 frmts/iso8211/8211view %{buildroot}%{_bindir} | |
# Directory for auto-loading plugins | |
mkdir -p %{buildroot}%{_libdir}/%{name}plugins | |
#TODO: Don't do that? | |
find %{buildroot}%{perl_vendorarch} -name "*.dox" -exec rm -rf '{}' \; | |
rm -f %{buildroot}%{perl_archlib}/perllocal.pod | |
# Correct permissions | |
#TODO and potential ticket: Why are the permissions not correct? | |
find %{buildroot}%{perl_vendorarch} -name "*.so" -exec chmod 755 '{}' \; | |
find %{buildroot}%{perl_vendorarch} -name "*.pm" -exec chmod 644 '{}' \; | |
#TODO: JAR files that require JNI shared objects MUST be installed in %{_libdir}/%{name}. The JNI shared objects themselves must also be installed in %{_libdir}/%{name}. | |
#Java programs that wish to make calls into native libraries do so via the Java Native Interface (JNI). A Java package uses JNI if it contains a .so | |
#If the JNI-using code calls System.loadLibrary you'll have to patch it to use System.load, passing it the full path to the dynamic shared object. If the package installs a wrapper script you'll need to manually add %{_libdir}/%{name}/<jar filename> to CLASSPATH. If you are depending on a JNI-using JAR file, you'll need to add it manually -- build-classpath will not find it. | |
touch -r NEWS swig/java/gdal.jar | |
mkdir -p %{buildroot}%{_javadir} | |
cp -p swig/java/gdal.jar \ | |
%{buildroot}%{_javadir}/%{name}.jar | |
# Install Maven pom and update version number | |
install -dm 755 %{buildroot}%{_mavenpomdir} | |
install -pm 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom | |
sed -i 's|<version></version>|<version>%{version}</version>|' %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom | |
# Create depmap fragment | |
%add_maven_depmap JPP-%{name}.pom %{name}.jar | |
# 775 on the .so? | |
# copy JNI libraries and links, non versioned link needed by JNI | |
# What is linked here? | |
mkdir -p %{buildroot}%{_jnidir}/%{name} | |
cp -pl swig/java/.libs/*.so* \ | |
%{buildroot}%{_jnidir}/%{name}/ | |
chrpath --delete %{buildroot}%{_jnidir}/%{name}/*jni.so* | |
# Install Java API documentation in the designated place | |
mkdir -p %{buildroot}%{_javadocdir}/%{name} | |
cp -pr swig/java/java/org %{buildroot}%{_javadocdir}/%{name} | |
# Install refmans | |
for docdir in %{docdirs}; do | |
pushd $docdir | |
path=%{_builddir}/%{name}-%{version}-fedora/refman | |
mkdir -p $path/html/$docdir | |
cp -r html $path/html/$docdir | |
# Install all Refmans | |
%if %{build_refman} | |
if [ -f latex/refman.pdf ]; then | |
mkdir -p $path/pdf/$docdir | |
cp latex/refman.pdf $path/pdf/$docdir | |
fi | |
%endif | |
popd | |
done | |
# Install formats documentation | |
for dir in gdal_frmts ogrsf_frmts; do | |
mkdir -p $dir | |
find frmts -name "*.html" -exec install -p -m 644 '{}' $dir \; | |
done | |
#TODO: Header date lost during installation | |
# Install multilib cpl_config.h bz#430894 | |
install -p -D -m 644 port/cpl_config.h %{buildroot}%{_includedir}/%{name}/cpl_config-%{cpuarch}.h | |
# Create universal multilib cpl_config.h bz#341231 | |
# The problem is still there in 1.9. | |
#TODO: Ticket? | |
#>>>>>>>>>>>>> | |
cat > %{buildroot}%{_includedir}/%{name}/cpl_config.h <<EOF | |
#include <bits/wordsize.h> | |
#if __WORDSIZE == 32 | |
#include "gdal/cpl_config-32.h" | |
#else | |
#if __WORDSIZE == 64 | |
#include "gdal/cpl_config-64.h" | |
#else | |
#error "Unknown word size" | |
#endif | |
#endif | |
EOF | |
#<<<<<<<<<<<<< | |
touch -r NEWS port/cpl_config.h | |
# Create and install pkgconfig file | |
#TODO: Why does that exist? Does Grass really use it? I don't think so. | |
# http://trac.osgeo.org/gdal/ticket/3470 | |
#>>>>>>>>>>>>> | |
cat > %{name}.pc <<EOF | |
prefix=%{_prefix} | |
exec_prefix=%{_prefix} | |
libdir=%{_libdir} | |
includedir=%{_includedir} | |
Name: GDAL | |
Description: GIS file format library | |
Version: %{version} | |
Libs: -L\${libdir} -lgdal | |
Cflags: -I\${includedir}/%{name} | |
EOF | |
#<<<<<<<<<<<<< | |
mkdir -p %{buildroot}%{_libdir}/pkgconfig/ | |
install -m 644 %{name}.pc %{buildroot}%{_libdir}/pkgconfig/ | |
touch -r NEWS %{buildroot}%{_libdir}/pkgconfig/%{name}.pc | |
# Multilib gdal-config | |
# Rename the original script to gdal-config-$arch (stores arch-specific information) | |
# and create a script to call one or the other -- depending on detected architecture | |
# TODO: The extra script will direct you to 64 bit libs on | |
# 64 bit systems -- whether you like that or not | |
mv %{buildroot}%{_bindir}/%{name}-config %{buildroot}%{_bindir}/%{name}-config-%{cpuarch} | |
#>>>>>>>>>>>>> | |
cat > %{buildroot}%{_bindir}/%{name}-config <<EOF | |
#!/bin/bash | |
ARCH=\$(uname -m) | |
case \$ARCH in | |
x86_64 | ppc64 | ppc64le | ia64 | s390x | sparc64 | alpha | alphaev6 | aarch64 ) | |
%{name}-config-64 \${*} | |
;; | |
*) | |
%{name}-config-32 \${*} | |
;; | |
esac | |
EOF | |
#<<<<<<<<<<<<< | |
touch -r NEWS %{buildroot}%{_bindir}/%{name}-config | |
chmod 755 %{buildroot}%{_bindir}/%{name}-config | |
# Clean up junk | |
rm -f %{buildroot}%{_bindir}/*.dox | |
#jni-libs and libgdal are also built static (*.a) | |
#.exists and .packlist stem from Perl | |
for junk in {*.a,*.la,*.bs,.exists,.packlist} ; do | |
find %{buildroot} -name "$junk" -exec rm -rf '{}' \; | |
done | |
# Don't duplicate license files | |
rm -f %{buildroot}%{_datadir}/%{name}/LICENSE.TXT | |
# Throw away random API man mages plus artefact seemingly caused by Doxygen 1.8.1 or 1.8.1.1 | |
for f in 'GDAL*' BandProperty ColorAssociation CutlineTransformer DatasetProperty EnhanceCBInfo ListFieldDesc NamedColor OGRSplitListFieldLayer VRTBuilder; do | |
rm -rf %{buildroot}%{_mandir}/man1/$f.1* | |
done | |
#TODO: What's that? | |
rm -f %{buildroot}%{_mandir}/man1/*_%{name}-%{version}-fedora_apps_* | |
rm -f %{buildroot}%{_mandir}/man1/_home_rouault_dist_wrk_gdal_apps_.1* | |
%check | |
%if %{run_tests} | |
for i in -I/usr/lib/jvm/java/include{,/linux}; do | |
java_inc="$java_inc $i" | |
done | |
pushd %{name}autotest-%{testversion} | |
# Export test enviroment | |
export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python_sitearch} | |
#TODO: Nötig? | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir} | |
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir}:$java_inc | |
export GDAL_DATA=%{buildroot}%{_datadir}/%{name}/ | |
# Enable these tests on demand | |
#export GDAL_RUN_SLOW_TESTS=1 | |
#export GDAL_DOWNLOAD_TEST_DATA=1 | |
# Remove some test cases that would require special preparation | |
rm -rf ogr/ogr_pg.py # No database available | |
rm -rf ogr/ogr_mysql.py # No database available | |
rm -rf osr/osr_esri.py # ESRI datum absent | |
rm -rf osr/osr_erm.py # File from ECW absent | |
# Run tests but force normal exit in the end | |
./run_all.py || true | |
popd | |
%endif #%{run_tests} | |
%post libs -p /sbin/ldconfig | |
%postun libs -p /sbin/ldconfig | |
%files | |
%{_bindir}/gdallocationinfo | |
%{_bindir}/gdal_contour | |
%{_bindir}/gdal_rasterize | |
%{_bindir}/gdal_translate | |
%{_bindir}/gdaladdo | |
%{_bindir}/gdalinfo | |
%{_bindir}/gdaldem | |
%{_bindir}/gdalbuildvrt | |
%{_bindir}/gdaltindex | |
%{_bindir}/gdalwarp | |
%{_bindir}/gdal_grid | |
%{_bindir}/gdalenhance | |
%{_bindir}/gdalmanage | |
%{_bindir}/gdalserver | |
%{_bindir}/gdalsrsinfo | |
%{_bindir}/gdaltransform | |
%{_bindir}/nearblack | |
%{_bindir}/ogr* | |
%{_bindir}/8211* | |
%{_bindir}/s57* | |
%{_bindir}/testepsg | |
%{_mandir}/man1/gdal*.1* | |
%exclude %{_mandir}/man1/gdal-config.1* | |
%exclude %{_mandir}/man1/gdal2tiles.1* | |
%exclude %{_mandir}/man1/gdal_fillnodata.1* | |
%exclude %{_mandir}/man1/gdal_merge.1* | |
%exclude %{_mandir}/man1/gdal_retile.1* | |
%exclude %{_mandir}/man1/gdal_sieve.1* | |
%{_mandir}/man1/nearblack.1* | |
%{_mandir}/man1/ogr*.1* | |
%files libs | |
%doc LICENSE.TXT NEWS PROVENANCE.TXT COMMITERS PROVENANCE.TXT-fedora | |
%{_libdir}/libgdal.so.* | |
%{_datadir}/%{name} | |
#TODO: Possibly remove files like .dxf, .dgn, ... | |
%dir %{_libdir}/%{name}plugins | |
%files devel | |
%{_bindir}/%{name}-config | |
%{_bindir}/%{name}-config-%{cpuarch} | |
%{_mandir}/man1/gdal-config.1* | |
%dir %{_includedir}/%{name} | |
%{_includedir}/%{name}/*.h | |
%{_libdir}/*.so | |
%{_libdir}/pkgconfig/%{name}.pc | |
# Can I even have a separate Java package anymore? | |
%files java -f .mfiles | |
%doc swig/java/apps | |
%{_jnidir}/%{name}/ | |
%files javadoc | |
%{_javadocdir}/%{name} | |
%files perl | |
%doc swig/perl/README | |
%{perl_vendorarch}/* | |
%files python | |
%doc swig/python/README.txt | |
%doc swig/python/samples | |
#TODO: Bug with .py files in EPEL 5 bindir, see http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies | |
%{_bindir}/*.py | |
%{_mandir}/man1/pct2rgb.1* | |
%{_mandir}/man1/rgb2pct.1* | |
%{_mandir}/man1/gdal2tiles.1* | |
%{_mandir}/man1/gdal_fillnodata.1* | |
%{_mandir}/man1/gdal_merge.1* | |
%{_mandir}/man1/gdal_retile.1* | |
%{_mandir}/man1/gdal_sieve.1* | |
%{python_sitearch}/osgeo | |
%{python_sitearch}/GDAL-%{version}-py*.egg-info | |
%{python_sitearch}/osr.py* | |
%{python_sitearch}/ogr.py* | |
%{python_sitearch}/gdal*.py* | |
%files doc | |
%doc gdal_frmts ogrsf_frmts refman | |
#TODO: jvm | |
#Should be managed by the Alternatives system and not via ldconfig | |
#The MDB driver is said to require: | |
#Download jackcess-1.2.2.jar, commons-lang-2.4.jar and | |
#commons-logging-1.1.1.jar (other versions might work) | |
#If you didn't specify --with-jvm-lib-add-rpath at | |
#Or as before, using ldconfig | |
%changelog | |
* Sun Feb 14 2016 Volker Froehlich <[email protected]> - 1.11.4-1 | |
- New release | |
* Thu Feb 04 2016 Volker Froehlich <[email protected]> - 1.11.3-1 | |
- New release | |
- Solve BZ #1271906 (Build iso8211 and s57 utilities) | |
- Support openjpeg2 | |
* Thu Dec 10 2015 Dan Horák <dan[at]danny.cz> - 1.11.2-2 | |
- workaround libtool bug in RHEL 7.2 (rhbz#1287191) | |
* Tue Jul 7 2015 Volker Fröhlich <[email protected]> - 1.11.2-1 | |
- New release | |
- Rebuild for g2clib (bz 1203582) | |
- Update gdal-config for aarch64 and ppc64le (bz 1227642) | |
* Tue Nov 18 2014 Volker Fröhlich <[email protected]> - 1.11.1-1 | |
- New release | |
- Correct test suite source URL | |
* Sat Jun 07 2014 Fedora Release Engineering <[email protected]> - 1.11.0-2 | |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild | |
* Fri Apr 25 2014 Volker Fröhlich <[email protected]> - 1.11.0-1 | |
- New upstream release | |
- Remove libgcj as BR, as it no longer exists in F21 | |
- Re-enable ogdi and spatialite where possible | |
- Adapt Python-BR to python2-devel | |
- Obsolete Ruby bindings, due to the suggestion of Even Rouault | |
- Preserve timestamp of Fedora README file | |
- Explicitly create HTML documentation with Doxygen | |
- Make test execution conditional | |
- Truncate changelog | |
* Thu Apr 24 2014 Vít Ondruch <[email protected]> - 1.10.1-7 | |
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.1 | |
* Fri Mar 28 2014 Michael Simacek <[email protected]> - 1.10.1-6 | |
- Use Requires: java-headless rebuild (#1067528) | |
* Fri Jan 10 2014 Orion Poplawski <[email protected]> - 1.10.1-5 | |
- Rebuild for armadillo soname bump | |
* Wed Jan 08 2014 Orion Poplawski <[email protected]> - 1.10.1-4 | |
- Rebuild for cfitsio 3.360 | |
* Thu Jan 02 2014 Orion Poplawski <[email protected]> - 1.10.1-3 | |
- Rebuild for libwebp soname bump | |
* Sat Sep 21 2013 Orion Poplawski <[email protected]> - 1.10.1-2 | |
- Rebuild to pick up atlas 3.10 changes | |
* Sun Sep 8 2013 Volker Fröhlich <[email protected]> - 1.10.1-1 | |
- New upstream release | |
* Fri Aug 23 2013 Orion Poplawski <[email protected]> - 1.10.0-1 | |
- Update to 1.10.0 | |
- Enable PCRE support | |
- Drop man patch applied upstream | |
- Drop dods patch fixed upstream | |
- Add more tex BRs to handle changes in texlive packaging | |
- Fix man page install location | |
* Mon Aug 19 2013 Marek Kasik <[email protected]> - 1.9.2-12 | |
- Rebuild (poppler-0.24.0) | |
* Sat Aug 03 2013 Fedora Release Engineering <[email protected]> - 1.9.2-11 | |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild | |
* Wed Jul 17 2013 Petr Pisar <[email protected]> - 1.9.2-10 | |
- Perl 5.18 rebuild | |
* Thu Jul 11 2013 Orion Poplawski <[email protected]> - 1.9.2-9 | |
- Rebuild for cfitsio 3.350 | |
* Mon Jun 24 2013 Volker Fröhlich <[email protected]> - 1.9.2-8 | |
- Rebuild for poppler 0.22.5 | |
* Wed Jun 12 2013 Orion Poplawski <[email protected]> - 1.9.2-7 | |
- Update Java/JNI for new guidelines, also fixes bug #908065 | |
* Thu May 16 2013 Orion Poplawski <[email protected]> - 1.9.2-6 | |
- Rebuild for hdf5 1.8.11 | |
* Mon Apr 29 2013 Peter Robinson <[email protected]> - 1.9.2-5 | |
- Rebuild for ARM libspatialite issue | |
* Tue Mar 26 2013 Volker Fröhlich <[email protected]> - 1.9.2-4 | |
- Rebuild for cfitsio 3.340 | |
* Sun Mar 24 2013 Peter Robinson <[email protected]> - 1.9.2-3 | |
- rebuild (libcfitsio) | |
* Wed Mar 13 2013 Vít Ondruch <[email protected]> - 1.9.2-2 | |
- Rebuild for https://fedoraproject.org/wiki/Features/Ruby_2.0.0 | |
* Sun Mar 10 2013 Orion Poplawski <[email protected]> - 1.9.2-1 | |
- Update to 1.9.2 | |
- Drop poppler and java-swig patches applied upstream | |
* Fri Jan 25 2013 Devrim GÜNDÜZ <[email protected]> - 1.9.1-18 | |
- Rebuild with geos 3.3.7. | |
* Mon Jan 21 2013 Volker Fröhlich <[email protected]> - 1.9.1-17 | |
- Rebuild due to libpoppler 0.22 | |
* Fri Jan 18 2013 Adam Tkac <atkac redhat com> - 1.9.1-16 | |
- rebuild due to "jpeg8-ABI" feature drop | |
* Fri Dec 28 2012 Richard W.M. Jones <[email protected]> - 1.9.1-15 | |
- Rebuild, see | |
http://lists.fedoraproject.org/pipermail/devel/2012-December/175685.html | |
* Thu Dec 13 2012 Peter Robinson <[email protected]> - 1.9.1-14 | |
- Tweak -fpic CFLAGS to fix FTBFS on ARM | |
* Mon Dec 3 2012 Orion Poplawski <[email protected]> - 1.9.1-13 | |
- Rebuild for hdf5 1.8.10 | |
* Sun Dec 2 2012 Bruno Wolff III <[email protected]> - 1.9.1-12 | |
- Rebuild for libspatialite soname bump | |
* Thu Aug 9 2012 Volker Fröhlich <[email protected]> - 1.9.1-11 | |
- Correct and extend conditionals for ppc andd ppc64, considering libspatialite | |
Related to BZ #846301 | |
* Sun Jul 29 2012 José Matos <[email protected]> - 1.9.1-10 | |
- Use the correct shell idiom "if true" instead of "if 1" | |
* Sun Jul 29 2012 José Matos <[email protected]> - 1.9.1-9 | |
- Ignore for the moment the test for armadillo (to be removed after gcc 4.7.2 release) | |
* Fri Jul 27 2012 José Matos <[email protected]> - 1.9.1-8 | |
- Rebuild for new armadillo | |
* Fri Jul 20 2012 Peter Robinson <[email protected]> - 1.9.1-7 | |
- Build with PIC | |
* Thu Jul 19 2012 Fedora Release Engineering <[email protected]> - 1.9.1-6 | |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild | |
* Tue Jul 10 2012 Petr Pisar <[email protected]> - 1.9.1-5 | |
- Perl 5.16 rebuild | |
* Sat Jul 7 2012 Volker Fröhlich <[email protected]> - 1.9.1-4 | |
- Delete unnecessary manpage, that seems to be created with | |
new Doxygen (1.8.1 or 1.8.1.1) | |
* Mon Jul 2 2012 Marek Kasik <[email protected]> - 1.9.1-3 | |
- Rebuild (poppler-0.20.1) | |
* Mon Jun 11 2012 Petr Pisar <[email protected]> - 1.9.1-2 | |
- Perl 5.16 rebuild | |
* Wed May 23 2012 Volker Fröhlich <[email protected]> - 1.9.1-1 | |
- New upstream release | |
- Update poppler patch | |
- Add cleaner script | |
* Sun May 20 2012 Volker Fröhlich <[email protected]> - 1.9.0-5 | |
- Patches for libpoppler 0.20, libdap 3.11.3 and swig 2.0.6 | |
* Thu May 10 2012 Volker Fröhlich <[email protected]> - 1.9.0-4 | |
- Correct provides-filtering as of https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Usage | |
- Support webp | |
- Remove bogus libjpeg-turbo conditional | |
- Update Ruby ABI version to 1.9.1 | |
- Install Ruby bindings to vendorarchdir on F17 and later | |
- Conditionals for Ruby specific elements for versions prior F17 and for EPEL | |
- Correct quotes for CFLAGS and Ruby | |
- Disable ogdi, until BZ#816282 is resolved | |
* Wed Apr 25 2012 Orion Poplawski <[email protected]> - 1.9.0-2 | |
- Rebuild for cfitsio 3.300 | |
* Sun Feb 26 2012 Volker Fröhlich <[email protected]> - 1.9.0-1 | |
- Completely re-work the original spec-file | |
The major changes are: | |
- Add a libs sub-package | |
- Move Python scripts to python sub-package | |
- Install the documentation in a better way and with less slack | |
- jar's filename is versionless | |
- Update the version in the Maven pom automatically | |
- Add a plugins directory | |
- Add javadoc package and make the man sub-package noarch | |
- Support many additional formats | |
- Drop static sub-package as no other package uses it as BR | |
- Delete included libs before building | |
- Drop all patches, switch to a patch for the manpages, patch for JAVA path | |
- Harmonize the use of buildroot and RPM_BUILD_ROOT | |
- Introduce testversion macro | |
* Sun Feb 19 2012 Volker Fröhlich <[email protected]> - 1.7.3-14 | |
- Require Ruby abi | |
- Add patch for Ruby 1.9 include dir, back-ported from GDAL 1.9 | |
- Change version string for gdal-config from <version>-fedora to | |
<version> | |
- Revert installation path for Ruby modules, as it proofed wrong | |
- Use libjpeg-turbo | |
* Thu Feb 9 2012 Volker Fröhlich <[email protected]> - 1.7.3-13 | |
- Rebuild for Ruby 1.9 | |
http://lists.fedoraproject.org/pipermail/ruby-sig/2012-January/000805.html | |
* Tue Jan 10 2012 Volker Fröhlich <[email protected]> - 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 | |
- Allow for libpng 1.5 | |
* Tue Dec 06 2011 Adam Jackson <[email protected]> - 1.7.3-11 | |
- Rebuild for new libpng | |
* Tue May 17 2011 Orion Poplawski <[email protected]> - 1.7.3-10 | |
- Rebuild for hdf5 1.8.7 | |
* Fri Apr 22 2011 Volker Fröhlich <[email protected]> - 1.7.3-9 | |
- Patched spaces problem for Mapinfo files (mif) | |
(http://trac.osgeo.org/gdal/ticket/3694) | |
- Replaced all define macros with global | |
- Corrected ruby_sitelib to ruby_sitearch | |
- Use python_lib and ruby_sitearch instead of generating lists | |
- Added man-pages for binaries | |
- Replaced mkdir and install macros | |
- Removed Python files from main package files section, that | |
effectively already belonged to the Python sub-package | |
* Mon Apr 11 2011 Volker Fröhlich <[email protected]> - 1.7.3-8 | |
- Solved image path problem with Latex | |
- Removed with-tiff and updated with-sqlite to with-sqlite3 | |
- Add more refman documents | |
- Adapted refman loop to actual directories | |
- Harmonized buildroot macro use | |
* Thu Mar 31 2011 Orion Poplawski <[email protected]> - 1.7.3-7 | |
- Rebuild for netcdf 4.1.2 | |
* Wed Mar 23 2011 Dan Horák <[email protected]> - 1.7.3-6 | |
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient) | |
* Sun Mar 20 2011 Volker Fröhlich <[email protected]> - 1.7.3-5 | |
- Dropped unnecessary encoding conversion for Russian refman | |
- Install Russian refman | |
- Don't try to install refman for sdts and dgn, as they fail to compile | |
- Added -p to post and postun | |
- Remove private-shared-object-provides for Python and Perl | |
- Remove installdox scripts | |
- gcc 4.6 doesn't accept -Xcompiler | |
* Thu Mar 10 2011 Kalev Lember <[email protected]> - 1.7.3-4 | |
- Rebuilt with xerces-c 3.1 | |
* Tue Feb 08 2011 Fedora Release Engineering <[email protected]> - 1.7.3-3 | |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild | |
* Sun Nov 21 2010 Viji Nair <viji [AT] fedoraproject DOT org> - 1.7.3-2 | |
- Install all the generated pdf documentation. | |
- Build documentation as a separate package. | |
- Spec cleanup | |
* Fri Nov 19 2010 Viji Nair <viji [AT] fedoraproject DOT org> - 1.7.3-1 | |
- Update to latest upstream version | |
- Added jnis | |
- Patches updated with proper version info | |
- Added suggestions from Ralph Apel <[email protected]> | |
+ Versionless symlink for gdal.jar | |
+ Maven2 pom | |
+ JPP-style depmap | |
+ Use -f XX.files for ruby and python |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment