diff --git a/cpl-config.h b/cpl-config.h new file mode 100644 index 0000000000000000000000000000000000000000..456693f96b37e7c5900da7b9cb1a9b0662e9e09b --- /dev/null +++ b/cpl-config.h @@ -0,0 +1,11 @@ +#include + +#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 diff --git a/gdal-3.7.0.tar.xz b/gdal-3.7.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..633622d01f8f9c3a8ba2eec13d208651a7fa05e5 Binary files /dev/null and b/gdal-3.7.0.tar.xz differ diff --git a/gdal-cleaner.sh b/gdal-cleaner.sh new file mode 100755 index 0000000000000000000000000000000000000000..db17622dca6985357dca73aaa8439cab398341f6 --- /dev/null +++ b/gdal-cleaner.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +if [ $# -lt 1 ]; then + echo "Usage: $0 version" + exit 1 +fi + +VERSION="$1" +PRE="$2" + +if [ ! -f "gdal-"${VERSION}${PRE}".tar.xz" ]; then + wget https://download.osgeo.org/gdal/${VERSION}/gdal-${VERSION}${PRE}.tar.xz +fi + +if [ -d gdal-"${VERSION}" ] || [ -d gdal-"${VERSION}"-fedora ]; then + echo "gdal-${VERSION} or gdal-${VERSION}-fedora in the way, please remove and rerun this script" + exit 1 +fi + +tar xvf gdal-"${VERSION}${PRE}".tar.xz +mv gdal-"${VERSION}"{,-fedora} && pushd gdal-"${VERSION}"-fedora + +rm data/cubewerx_extra.wkt +rm data/esri_StatePlane_extra.wkt +rm data/ecw_cs.wkt + + +sed -i 's|data/cubewerx_extra.wkt||' gdal.cmake +sed -i 's|data/esri_StatePlane_extra.wkt||' gdal.cmake +sed -i 's|data/ecw_cs.wkt||' gdal.cmake + +popd + + +#TODO: Insert Provenance file + +tar cvfJ gdal-"${VERSION}${PRE}"-fedora.tar.xz gdal-"${VERSION}"-fedora diff --git a/gdal-config b/gdal-config new file mode 100755 index 0000000000000000000000000000000000000000..37a3f6635585d25cd706239c4931191c1a37746a --- /dev/null +++ b/gdal-config @@ -0,0 +1,11 @@ +#!/bin/bash + +ARCH=$(uname -m) +case $ARCH in +x86_64 | ppc64 | ppc64le | ia64 | s390x | sparc64 | alpha | alphaev6 | aarch64 ) +gdal-config-64 ${*} +;; +*) +gdal-config-32 ${*} +;; +esac diff --git a/gdal.spec b/gdal.spec new file mode 100644 index 0000000000000000000000000000000000000000..857d313dec7809bfcff163127717d2ff5721b67a --- /dev/null +++ b/gdal.spec @@ -0,0 +1,540 @@ +%global run_tests 0 + +%global bashcompletiondir %(pkg-config --variable=compatdir bash-completion) + +%global cpuarch 64 + +%if 0%{?bootstrap} +%global with_mysql 0 +%global mysql --without-mysql +%global with_poppler 0 +%global poppler --without-poppler +%global with_spatialite 0 +%global spatialite --without-spatialite +%else +%global with_mysql 1 +%global mysql --with-mysql +%global with_poppler 1 +%global poppler --with-poppler +%global with_spatialite 1 +%global spatialite "--with-spatialite" +%endif + +%bcond_without python3 +%bcond_without java + +%bcond_with mingw + +Name: gdal +Version: 3.7.0 +Release: 1%{?dist} +Summary: GIS file format library +License: MIT +URL: http://www.gdal.org + +Source0: %{name}-%{version}.tar.xz +Source1: http://download.osgeo.org/%{name}/%{version}/%{name}autotest-%{version}.tar.gz +Source2: cpl-config.h +Source3: gdal-config + +Source5: %{name}-cleaner.sh + +Patch0: gdal_utils.patch + +BuildRequires: cmake +BuildRequires: gcc-c++ + +BuildRequires: armadillo-devel +BuildRequires: bison +BuildRequires: cfitsio-devel +BuildRequires: CharLS-devel +BuildRequires: curl-devel +BuildRequires: expat-devel +BuildRequires: freexl-devel +BuildRequires: geos-devel +BuildRequires: giflib-devel +BuildRequires: gtest-devel +BuildRequires: hdf5-devel +BuildRequires: json-c-devel +BuildRequires: libdap-devel +BuildRequires: libgeotiff-devel +BuildRequires: libgta-devel +BuildRequires: libjpeg-devel +BuildRequires: libkml-devel +BuildRequires: liblerc-devel +BuildRequires: libpng-devel +BuildRequires: libpq-devel +%if %{with_spatialite} +BuildRequires: libspatialite-devel +%endif +BuildRequires: libtiff-devel +BuildRequires: libtirpc-devel +BuildRequires: libwebp-devel +BuildRequires: libzstd-devel +%if 0%{?with_mysql} +BuildRequires: mariadb-connector-c-devel +%endif +BuildRequires: netcdf-devel +BuildRequires: ogdi-devel +BuildRequires: OpenEXR-devel +BuildRequires: openjpeg2-devel +BuildRequires: pcre2-devel +%if 0%{?with_poppler} +BuildRequires: poppler-devel +%endif +BuildRequires: proj-devel >= 5.2.0 +BuildRequires: qhull-devel +BuildRequires: sqlite-devel +BuildRequires: swig +BuildRequires: unixODBC-devel +BuildRequires: xerces-c-devel +BuildRequires: xz-devel +BuildRequires: zlib-devel + +%if %{with mingw} +BuildRequires: mingw32-filesystem >= 102 +BuildRequires: mingw32-gcc-c++ +BuildRequires: mingw32-cfitsio +BuildRequires: mingw32-curl +BuildRequires: mingw32-dlfcn +BuildRequires: mingw32-expat +BuildRequires: mingw32-freexl +BuildRequires: mingw32-geos +BuildRequires: mingw32-giflib +BuildRequires: mingw32-libgeotiff +BuildRequires: mingw32-libgta +BuildRequires: mingw32-libjpeg-turbo +BuildRequires: mingw32-libkml +BuildRequires: mingw32-liblerc +BuildRequires: mingw32-libpng +BuildRequires: mingw32-libspatialite +BuildRequires: mingw32-libtiff +BuildRequires: mingw32-libwebp +BuildRequires: mingw32-openexr +BuildRequires: mingw32-openjpeg2 +BuildRequires: mingw32-pcre2 +BuildRequires: mingw32-poppler +BuildRequires: mingw32-postgresql +BuildRequires: mingw32-proj +BuildRequires: mingw32-sqlite +BuildRequires: mingw32-xerces-c +BuildRequires: mingw32-xz-libs +BuildRequires: mingw32-zlib +BuildRequires: mingw32-zstd + +BuildRequires: mingw64-filesystem >= 102 +BuildRequires: mingw64-gcc-c++ +BuildRequires: mingw64-cfitsio +BuildRequires: mingw64-curl +BuildRequires: mingw64-dlfcn +BuildRequires: mingw64-expat +BuildRequires: mingw64-freexl +BuildRequires: mingw64-geos +BuildRequires: mingw64-giflib +BuildRequires: mingw64-libgeotiff +BuildRequires: mingw64-libgta +BuildRequires: mingw64-libjpeg-turbo +BuildRequires: mingw64-libkml +BuildRequires: mingw64-liblerc +BuildRequires: mingw64-libpng +BuildRequires: mingw64-libspatialite +BuildRequires: mingw64-libtiff +BuildRequires: mingw64-libwebp +BuildRequires: mingw64-openexr +BuildRequires: mingw64-openjpeg2 +BuildRequires: mingw64-pcre2 +BuildRequires: mingw64-poppler +BuildRequires: mingw64-postgresql +BuildRequires: mingw64-proj +BuildRequires: mingw64-sqlite +BuildRequires: mingw64-xerces-c +BuildRequires: mingw64-xz-libs +BuildRequires: mingw64-zlib +BuildRequires: mingw64-zstd +%endif + +# Python +%if %{with python3} +BuildRequires: python3-devel +BuildRequires: python3-numpy +BuildRequires: python3-setuptools +BuildRequires: python3dist(pytest) >= 3.6 +BuildRequires: python3dist(lxml) >= 4.5.1 + +%if %{with mingw} +BuildRequires: mingw32-python3 +BuildRequires: mingw32-python3-numpy +BuildRequires: mingw32-python3-setuptools + +BuildRequires: mingw64-python3 +BuildRequires: mingw64-python3-numpy +BuildRequires: mingw64-python3-setuptools +%endif +%endif + +# Java +%if %{with java} +# For 'mvn_artifact' and 'mvn_install' +BuildRequires: ant +BuildRequires: java-devel >= 1:1.6.0 +BuildRequires: javapackages-local +BuildRequires: jpackage-utils +%endif + +# Run time dependency for gpsbabel driver +Requires: gpsbabel +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + + +%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 +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +This package contains development files for GDAL. + + +%package libs +Summary: GDAL file format library +# See frmts/grib/degrib/README.TXT +Provides: bundled(g2lib) = 1.6.0 +Provides: bundled(degrib) = 2.14 + +%description libs +This package contains the GDAL file format library. + +%if %{with mingw} +%package -n mingw32-%{name} +Summary: MinGW Windows GDAL library +# GDAL bundles a modified copy of g2clib and degrib +# See frmts/grib/degrib/README.TXT +Provides: bundled(g2lib) = 1.6.0 +Provides: bundled(degrib) = 2.14 +BuildArch: noarch + +%description -n mingw32-%{name} +MinGW Windows GDAL library. + + +%package -n mingw32-%{name}-tools +Summary: MinGW Windows GDAL library tools +BuildArch: noarch + +%description -n mingw32-%{name}-tools +MinGW Windows GDAL library tools. + + +%package -n mingw64-%{name} +Summary: MinGW Windows GDAL library +# GDAL bundles a modified copy of g2clib and degrib +# See frmts/grib/degrib/README.TXT +Provides: bundled(g2lib) = 1.6.0 +Provides: bundled(degrib) = 2.14 +BuildArch: noarch + +%description -n mingw64-%{name} +MinGW Windows GDAL library. + + +%package -n mingw64-%{name}-tools +Summary: MinGW Windows GDAL library tools +BuildArch: noarch + +%description -n mingw64-%{name}-tools +MinGW Windows GDAL library tools. +%endif + +# No complete java yet in EL8 +%if %{with java} +%package java +Summary: Java modules for the GDAL file format library +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} +Requires: jpackage-utils +BuildArch: noarch + +%description javadoc +This package contains the API documentation for %{name}. +%endif + + +%if %{with python3} +%package -n python3-gdal +%{?python_provide:%python_provide python3-gdal} +Summary: Python modules for the GDAL file format library +Requires: python3-numpy +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description -n python3-gdal +The GDAL Python 3 modules provide support to handle multiple GIS file formats. + + +%package python-tools +Summary: Python tools for the GDAL file format library +Requires: python3-gdal + +%description python-tools +The GDAL Python package provides number of tools for programming and +manipulating GDAL file format library + + +%if %{with mingw} +%package -n mingw32-python3-%{name} +Summary: MinGW Windows Python3 GDAL bindings + +%description -n mingw32-python3-%{name} +MinGW Windows Python3 GDAL bindings. + + +%package -n mingw64-python3-%{name} +Summary: MinGW Windows Python3 GDAL bindings + +%description -n mingw64-python3-%{name} +MinGW Windows Python3 GDAL bindings. +%endif + +# We don't want to provide private Python extension libs +%global __provides_exclude_from ^%{python3_sitearch}/.*\.so$ +%endif + + +%if %{with mingw} +%{?mingw_debug_package} +%endif + +%prep +%autosetup -N -p1 -n %{name}-%{version} + +# Delete bundled libraries +rm -rf frmts/zlib +rm -rf frmts/png/libpng +rm -rf frmts/gif/giflib +rm -rf frmts/jpeg/libjpeg +rm -rf frmts/jpeg/libjpeg12 +rm -rf frmts/gtiff/libgeotiff +rm -rf frmts/gtiff/libtiff +rm -rf mrf/LERCV1 +rm -rf third_party/LercLib + +# Setup autotest directory +tar xf %{SOURCE1} +mv %{name}autotest-%{version} autotest + +# Need to patch autotest +%autopatch -p1 + + +%build +%cmake \ + -DCMAKE_INSTALL_INCLUDEDIR=include/gdal \ + -DGDAL_JAVA_INSTALL_DIR=%{_jnidir}/%{name} \ + -DGDAL_USE_JPEG12_INTERNAL=OFF \ + -DBUILD_TESTING=OFF \ + -DENABLE_DEFLATE64=OFF +%cmake_build + +%if %{with mingw} +%mingw_cmake \ + -DBUILD_TESTING=OFF \ + -DCMAKE_INSTALL_INCLUDEDIR=include/gdal \ + -DGDAL_USE_JPEG12_INTERNAL=OFF \ + -DENABLE_DEFLATE64=OFF +%mingw_make_build +%endif + + +%install +%cmake_install + +%if %{with mingw} +%mingw_make_install +# Delete data from cross packages +rm -r %{buildroot}%{mingw32_datadir} +rm -r %{buildroot}%{mingw64_datadir} +%endif + +# List of manpages for python scripts +for file in %{buildroot}%{_bindir}/*.py; do + if [ -f %{buildroot}%{_mandir}/man1/`basename ${file/.py/.1*}` ]; then + echo "%{_mandir}/man1/`basename ${file/.py/.1*}`" >> gdal_python_manpages.txt + echo "%exclude %{_mandir}/man1/`basename ${file/.py/.1*}`" >> gdal_python_manpages_excludes.txt + fi +done + +# Multilib +# - cpl_config.h is arch-dependent (contains various SIZEOF defines) +# - gdal-config stores arch-specific information +mv %{buildroot}%{_includedir}/%{name}/cpl_config.h %{buildroot}%{_includedir}/%{name}/cpl_config-%{cpuarch}.h +cp -a %{SOURCE2} %{buildroot}%{_includedir}/%{name}/cpl_config.h +mv %{buildroot}%{_bindir}/%{name}-config %{buildroot}%{_bindir}/%{name}-config-%{cpuarch} +cp -a %{SOURCE3} %{buildroot}%{_bindir}/%{name}-config + + +%if %{with mingw} +%mingw_debug_install_post +%endif + + +%if 0%{run_tests} +%check +%ctest || : +%endif + + +%files -f gdal_python_manpages_excludes.txt +%{_bindir}/8211* +%{_bindir}/gdal_contour +%{_bindir}/gdal_create +%{_bindir}/gdal_grid +%{_bindir}/gdal_rasterize +%{_bindir}/gdal_translate +%{_bindir}/gdal_viewshed +%{_bindir}/gdaladdo +%{_bindir}/gdalbuildvrt +%{_bindir}/gdaldem +%{_bindir}/gdalenhance +%{_bindir}/gdalinfo +%{_bindir}/gdallocationinfo +%{_bindir}/gdalmanage +%{_bindir}/gdalmdiminfo +%{_bindir}/gdalmdimtranslate +%{_bindir}/gdalsrsinfo +%{_bindir}/gdaltindex +%{_bindir}/gdaltransform +%{_bindir}/gdalwarp +%{_bindir}/gnmanalyse +%{_bindir}/gnmmanage +%{_bindir}/nearblack +%{_bindir}/ogr2ogr +%{_bindir}/ogrinfo +%{_bindir}/ogrlineref +%{_bindir}/ogrtindex +%{_bindir}/s57dump +%{_bindir}/sozip +%{_datadir}/bash-completion/completions/* +%exclude %{_datadir}/bash-completion/completions/*.py +%{_mandir}/man1/* +%exclude %{_mandir}/man1/gdal-config.1* +# Python manpages excluded in -f gdal_python_manpages_excludes.txt + +%files libs +%license LICENSE.TXT +%doc NEWS.md PROVENANCE.TXT COMMITTERS +%{_libdir}/libgdal.so.33 +%{_libdir}/libgdal.so.33.* +%{_datadir}/%{name}/ +%{_libdir}/gdalplugins/ + +%files devel +%{_bindir}/%{name}-config +%{_bindir}/%{name}-config-%{cpuarch} +%{_includedir}/%{name}/ +%{_libdir}/lib%{name}.so +%{_libdir}/cmake/gdal/ +%{_libdir}/pkgconfig/%{name}.pc +%{_mandir}/man1/gdal-config.1* + +%if %{with mingw} +%files -n mingw32-%{name} +%license LICENSE.TXT +%{mingw32_bindir}/libgdal-33.dll +%{mingw32_bindir}/gdal-config +%{mingw32_libdir}/libgdal.dll.a +%{mingw32_libdir}/cmake/gdal/ +%{mingw32_libdir}/pkgconfig/gdal.pc +%{mingw32_libdir}/gdalplugins/ +%{mingw32_includedir}/%{name}/ + +%files -n mingw32-%{name}-tools +%{mingw32_bindir}/*.exe + +%files -n mingw64-%{name} +%license LICENSE.TXT +%{mingw64_bindir}/libgdal-33.dll +%{mingw64_bindir}/gdal-config +%{mingw64_libdir}/libgdal.dll.a +%{mingw64_libdir}/cmake/gdal/ +%{mingw64_libdir}/pkgconfig/gdal.pc +%{mingw64_libdir}/gdalplugins/ +%{mingw64_includedir}/%{name}/ + +%files -n mingw64-%{name}-tools +%{mingw64_bindir}/*.exe +%endif + +%if %{with python3} +%files -n python3-gdal +%doc swig/python/README.rst +%{python3_sitearch}/GDAL-%{version}-py*.egg-info/ +%{python3_sitearch}/osgeo/ +%{python3_sitearch}/osgeo_utils/ + +%files python-tools -f gdal_python_manpages.txt +%{_bindir}/gdal_calc.py +%{_bindir}/gdal_edit.py +%{_bindir}/gdal_fillnodata.py +%{_bindir}/gdal_merge.py +%{_bindir}/gdal_pansharpen.py +%{_bindir}/gdal_polygonize.py +%{_bindir}/gdal_proximity.py +%{_bindir}/gdal_retile.py +%{_bindir}/gdal_sieve.py +%{_bindir}/gdal2tiles.py +%{_bindir}/gdal2xyz.py +%{_bindir}/gdalattachpct.py +%{_bindir}/gdalcompare.py +%{_bindir}/gdalmove.py +%{_bindir}/ogr_layer_algebra.py +%{_bindir}/ogrmerge.py +%{_bindir}/pct2rgb.py +%{_bindir}/rgb2pct.py +%{_datadir}/bash-completion/completions/*.py + +%if %{with mingw} +%files -n mingw32-python3-%{name} +%{mingw32_bindir}/*.py +%{mingw32_python3_sitearch}/GDAL-%{version}-py%{mingw32_python3_version}.egg-info/ +%{mingw32_python3_sitearch}/osgeo/ +%{mingw32_python3_sitearch}/osgeo_utils/ + +%files -n mingw64-python3-%{name} +%{mingw64_bindir}/*.py +%{mingw64_python3_sitearch}/GDAL-%{version}-py%{mingw32_python3_version}.egg-info/ +%{mingw64_python3_sitearch}/osgeo/ +%{mingw64_python3_sitearch}/osgeo_utils/ +%endif +%endif + +%if %{with java} +%files java +%{_jnidir}/%{name}/gdal-%{version}-sources.jar +%{_jnidir}/%{name}/gdal-%{version}.jar +%{_jnidir}/%{name}/gdal-%{version}.pom +%{_jnidir}/%{name}/libgdalalljni.so + +%files javadoc +%{_jnidir}/%{name}/gdal-%{version}-javadoc.jar +%endif + + +%changelog +* Fri Jun 16 2023 forrest_ly - 3.7.0-1 +- init for anolis 23 diff --git a/gdal_utils.patch b/gdal_utils.patch new file mode 100644 index 0000000000000000000000000000000000000000..686f61b5c482cdf2b7d1399234071fad51c8bef1 --- /dev/null +++ b/gdal_utils.patch @@ -0,0 +1,39 @@ +diff -rupN --no-dereference gdal-3.6.4-fedora/frmts/iso8211/CMakeLists.txt gdal-3.6.4-fedora-new/frmts/iso8211/CMakeLists.txt +--- gdal-3.6.4-fedora/frmts/iso8211/CMakeLists.txt 2023-04-17 13:50:19.000000000 +0200 ++++ gdal-3.6.4-fedora-new/frmts/iso8211/CMakeLists.txt 2023-04-22 14:48:30.133740745 +0200 +@@ -15,15 +15,18 @@ gdal_standard_includes(gdal_iso8211) + + # Because linking an OBJECT library + if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) +- add_executable(8211dump EXCLUDE_FROM_ALL 8211dump.cpp) ++ add_executable(8211dump 8211dump.cpp) + target_include_directories(8211dump PRIVATE $) + target_link_libraries(8211dump PRIVATE $ gdal_iso8211) ++ install(TARGETS 8211dump RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +- add_executable(8211view EXCLUDE_FROM_ALL 8211view.cpp) ++ add_executable(8211view 8211view.cpp) + target_include_directories(8211view PRIVATE $) + target_link_libraries(8211view PRIVATE $ gdal_iso8211) ++ install(TARGETS 8211view RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +- add_executable(8211createfromxml EXCLUDE_FROM_ALL 8211createfromxml.cpp) ++ add_executable(8211createfromxml 8211createfromxml.cpp) + target_include_directories(8211createfromxml PRIVATE $) + target_link_libraries(8211createfromxml PRIVATE $ gdal_iso8211) ++ install(TARGETS 8211createfromxml RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif () +diff -rupN --no-dereference gdal-3.6.4-fedora/ogr/ogrsf_frmts/s57/CMakeLists.txt gdal-3.6.4-fedora-new/ogr/ogrsf_frmts/s57/CMakeLists.txt +--- gdal-3.6.4-fedora/ogr/ogrsf_frmts/s57/CMakeLists.txt 2023-04-17 13:50:19.000000000 +0200 ++++ gdal-3.6.4-fedora-new/ogr/ogrsf_frmts/s57/CMakeLists.txt 2023-04-22 14:48:30.134740600 +0200 +@@ -17,8 +17,9 @@ target_include_directories(ogr_S57 PRIVA + gdal_standard_includes(ogr_S57) + + if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) +- add_executable(s57dump EXCLUDE_FROM_ALL s57dump.cpp) ++ add_executable(s57dump s57dump.cpp) + gdal_standard_includes(s57dump) + target_include_directories(s57dump PRIVATE $) + target_link_libraries(s57dump PRIVATE $ ogr_S57 gdal_iso8211) ++ install(TARGETS s57dump RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif () diff --git a/gdalautotest-3.7.0.tar.gz b/gdalautotest-3.7.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d21eddd13480e9e00705a89eb56fdd9b646581c9 Binary files /dev/null and b/gdalautotest-3.7.0.tar.gz differ