diff options
Diffstat (limited to 'gis/gdal/gdal.SlackBuild')
-rw-r--r-- | gis/gdal/gdal.SlackBuild | 183 |
1 files changed, 99 insertions, 84 deletions
diff --git a/gis/gdal/gdal.SlackBuild b/gis/gdal/gdal.SlackBuild index bbe278050d..16dae944b4 100644 --- a/gis/gdal/gdal.SlackBuild +++ b/gis/gdal/gdal.SlackBuild @@ -1,8 +1,11 @@ -#!/bin/sh +#!/bin/bash # Slackware build script for GDAL # Copyright 2009 Marco Cecchetti <mrc.ild@gmail.com> +# Copyright 2010-2018 David Spencer <baildon.research@googlemail.com> +# Copyright 2019-2021 Benjamin Trigona-Harany <slackbuilds@jaxartes.net> +# Copyright 2021-2024 Gregory J. L. Tourte <artourter@gmail.com> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,12 +25,14 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# Maintained by David Spencer <baildon.research@googlemail.com> + +cd $(dirname $0) ; CWD=$(pwd) PRGNAM=gdal -VERSION=${VERSION:-3.0.4} +VERSION=${VERSION:-3.8.4} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -37,7 +42,11 @@ if [ -z "$ARCH" ]; then esac fi -CWD=$(pwd) +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -58,6 +67,10 @@ fi set -e +if [[ ${TESTBUILD:='NO'} == 'NO' ]]; then + TESTBUILDFLAGS='-DBUILD_TESTING=OFF' +fi + rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP @@ -66,102 +79,104 @@ tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* cd $PRGNAM-$VERSION chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} + -# OpenCL, webp, Spatialite and Grass support need special arrangements. -# Everything else is handled automatically by configure. WITHLIST="" # Request OpenCL support: if [ ${OPENCL:-no} = "yes" ]; then - WITHLIST+=" --with-opencl" -fi - -# Request webp support if it's installed: -if pkg-config --exists libwebp; then - WITHLIST+=" --with-webp" -fi - -# Spatialite support in gdal optionally has a circular dependency -# via the postgis 'liblwgeom' library (postgis depends on gdal). -# Here is an undocumented option to request Spatialite support, -# if you promise to be careful :-) -if pkg-config --exists spatialite; then - if [ ${SPATIALITE:-no} = "yes" ]; then - WITHLIST+=" --with-spatialite" - fi -fi - -# Also, enabling Grass support in gdal introduces a circular dependency, -# so here is another undocumented option. -if pkg-config --exists grass; then - if [ ${GRASS:-no} = "yes" ]; then - WITHLIST+=" --with-grass=$(pkg-config --variable=prefix grass)" - fi + WITHLIST+=" -DGDAL_USE_OPENCL=ON" +else + WITHLIST+=" -DGDAL_USE_OPENCL=OFF" fi -# 12 bit JPEG support is handled by internal modified versions of libjpeg -# and libtiff, but this can cause segfaults in other software linked against -# the real libjpeg (eg. qgis calling qt). Enable JPEG12 only if you need it: -if [ ${JPEG12:-no} = "yes" ]; then - WITHLIST+=" --with-jpeg=internal" -else - WITHLIST+=" --with-jpeg=/usr/lib${LIBDIRSUFFIX}" +# Build JAVA bindings: +if [ ${JAVA:-no} = "no" ]; then + WITHLIST+=" -DBUILD_JAVA_BINDINGS:BOOL=OFF" fi -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ - --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ - --enable-static=no \ - --with-threads \ - --with-geos=yes \ - --with-libz=/usr/lib${LIBDIRSUFFIX} \ - --with-liblzma \ - --with-curl=/usr/bin/curl-config \ - --without-grib \ - --with-static-proj4 \ - --with-mysql \ - --with-python \ - --with-poppler \ - --with-libtiff=internal \ - --with-rename-internal-libtiff-symbols=yes \ - --with-geotiff=internal \ - --with-rename-internal-libgeotiff-symbols=yes \ - --with-jasper=no \ - $WITHLIST \ - --build=$ARCH-slackware-linux - -make -make install DESTDIR=$PKG - -cd swig/python - rm -rf build - python3 setup.py build - python3 setup.py install --root=$PKG --prefix=/usr -cd - >/dev/null +mkdir build + +( cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SYSCONFDIR=/etc \ + -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ + -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_DATAROOTDIR=share \ + -DCMAKE_INSTALL_MANDIR=man \ + -DCMAKE_INSTALL_DOCDIR=doc/$PRGNAM-$VERSION \ + -DBUILD_CSHARP_BINDINGS:BOOL=OFF \ + -DBUILD_PYTHON_BINDINGS:BOOL=ON \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DGDAL_USE_ARCHIVE:BOOL=ON \ + -DGDAL_USE_CFITSIO:BOOL=ON \ + -DGDAL_USE_CRYPTOPP:BOOL=ON \ + -DGDAL_USE_CURL:BOOL=ON \ + -DGDAL_USE_EXPAT:BOOL=ON \ + -DGDAL_USE_EXTERNAL_LIBS:BOOL=ON \ + -DGDAL_USE_FREEXL:BOOL=ON \ + -DGDAL_USE_GEOS:BOOL=ON \ + -DGDAL_USE_GEOTIFF:BOOL=ON \ + -DGDAL_USE_GEOTIFF_INTERNAL:BOOL=OFF \ + -DGDAL_USE_GIF:BOOL=ON \ + -DGDAL_USE_GIF_INTERNAL:BOOL=OFF \ + -DGDAL_USE_HDF5:BOOL=ON \ + -DGDAL_USE_ICONV:BOOL=ON \ + -DGDAL_USE_JPEG:BOOL=ON \ + -DGDAL_USE_JPEG12_INTERNAL:BOOL=ON \ + -DGDAL_USE_JPEG_INTERNAL:BOOL=OFF \ + -DGDAL_USE_JSONC:BOOL=ON \ + -DGDAL_USE_JSONC_INTERNAL:BOOL=OFF \ + -DGDAL_USE_LERC_INTERNAL:BOOL=ON \ + -DGDAL_USE_LIBAEC:BOOL=ON \ + -DGDAL_USE_LIBLZMA:BOOL=ON \ + -DGDAL_USE_LIBXML2:BOOL=ON \ + -DGDAL_USE_LZ4:BOOL=ON \ + -DGDAL_USE_MYSQL:BOOL=ON \ + -DGDAL_USE_NETCDF:BOOL=ON \ + -DGDAL_USE_OPENCAD_INTERNAL:BOOL=ON \ + -DGDAL_USE_OPENEXR:BOOL=ON \ + -DGDAL_USE_OPENJPEG:BOOL=ON \ + -DGDAL_USE_OPENSSL:BOOL=ON \ + -DGDAL_USE_PCRE2:BOOL=ON \ + -DGDAL_USE_PNG:BOOL=ON \ + -DGDAL_USE_PNG_INTERNAL:BOOL=OFF \ + -DGDAL_USE_PODOFO:BOOL=ON \ + -DGDAL_USE_POPPLER:BOOL=ON \ + -DGDAL_USE_PUBLICDECOMPWT:BOOL=OFF \ + -DGDAL_USE_QHULL_INTERNAL:BOOL=ON \ + -DGDAL_USE_SHAPELIB_INTERNAL:BOOL=ON \ + -DGDAL_USE_SPATIALITE:BOOL=ON \ + -DGDAL_USE_SQLITE3:BOOL=ON \ + -DGDAL_USE_TIFF:BOOL=ON \ + -DGDAL_USE_TIFF_INTERNAL:BOOL=OFF \ + -DGDAL_USE_WEBP:BOOL=ON \ + -DGDAL_USE_XERCESC:BOOL=ON \ + -DGDAL_USE_ZLIB:BOOL=ON \ + -DGDAL_USE_ZLIB_INTERNAL:BOOL=OFF \ + -DGDAL_USE_ZSTD:BOOL=ON \ + $WITHLIST \ + $TESTBUILDFLAGS \ + -DCMAKE_BUILD_TYPE=Release \ + .. + make + [[ $TESTBUILD == "YES" ]] && make test + make install/strip DESTDIR=$PKG +) find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -make -f GNUmakefile -B man -make install-man DESTDIR=$PKG find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done -make -f GNUmakefile -B docs -# --docdir is ignored :-( -make install-docs DESTDIR=$PKG INST_DOCS=/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ - COMMITTERS HOWTO-RELEASE LICENSE.TXT NEWS PROVENANCE.TXT VERSION \ + CITATION COMMITTERS HOWTO-RELEASE LICENSE.TXT MIGRATION_GUIDE.TXT NEWS.md PROVENANCE.TXT SECURITY.md VERSION \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild @@ -169,4 +184,4 @@ mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |