diff options
author | Giancarlo Dessi <slack@giand.it> | 2024-03-11 20:50:29 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2024-03-13 06:27:43 +0700 |
commit | c2b24d85693af22cf124fea5d30e61acdbd4cd64 (patch) | |
tree | 55fbae24404486510f5e11e2fe5ee32678004a22 /gis | |
parent | f2ead3b077159d7c3bf52bf51b6c837826c51e2c (diff) |
gis/OTB: Updated for version 9.0.0.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'gis')
-rw-r--r-- | gis/OTB/OTB.SlackBuild | 104 | ||||
-rw-r--r-- | gis/OTB/OTB.info | 8 | ||||
-rw-r--r-- | gis/OTB/README | 37 | ||||
-rw-r--r-- | gis/OTB/doinst.sh | 13 | ||||
-rw-r--r-- | gis/OTB/otbSpatialReference.cxx.patch | 8 |
5 files changed, 81 insertions, 89 deletions
diff --git a/gis/OTB/OTB.SlackBuild b/gis/OTB/OTB.SlackBuild index 714540970c5e..4f7ff0585bb5 100644 --- a/gis/OTB/OTB.SlackBuild +++ b/gis/OTB/OTB.SlackBuild @@ -2,7 +2,7 @@ # SlackBuild script for OTB -# Copyright 2023 Giancarlo Dessi, Cagliari, IT +# Copyright 2023-2024 Giancarlo Dessi, Cagliari, IT # Copyright 2014-2021 Benjamin Trigona-Harany <slackbuilds@jaxartes.net> # All rights reserved. # @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=OTB -VERSION=${VERSION:-8.1.2} +VERSION=${VERSION:-9.0.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -46,6 +46,19 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi +#Look for installed package OTB-legacy +if [ -d /usr/doc/OTB-legacy* ]; then + echo "*****************************************************************" + echo "WARNING: package OTB-legacy is found installed in your system!" + echo "OTB and OTB-legacy cannot exist in the same system, please remove" + echo "OTB-legacy before running this script if you want to upgrade to a" + echo "later version of OTB:" + echo "# removepkg OTB-legacy" + echo "This script will be stopped" + echo "*****************************************************************" + exit 1 +fi + TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -66,20 +79,6 @@ fi set -e -# Search for optional dependencies -if pkg-config --exists ompi; then - BUILD_MPI="" ; [ "${MPI:-ON}" = "ON" ] && BUILD_MPI="-DOTB_USE_MPI=ON " -else - BUILD_MPI="" -fi - -# glfw3 will be enabled only if environment variable MONTEVERDI is set to ON -if pkg-config --exists glfw3; then - WITH_GLFW="" ; [ "${GLFW:-ON}" = "ON" ] && WITH_GLFW="-DOTB_USE_GLFW=ON " -else - WITH_GLFW="" -fi - rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP @@ -93,82 +92,71 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +patch -p1 < $CWD/otbSpatialReference.cxx.patch + +sed -i CMakeLists.txt -e "s/message(WARNING/message(STATUS/g" + sed -i "s/lib\b/lib${LIBDIRSUFFIX}/" \ CMakeLists.txt \ CMake/OTBModuleExternal.cmake \ CMake/OTBStandaloneModuleMacros.cmake \ CMake/OTBApplicationMacros.cmake -MONTEVERDI=${MONTEVERDI:-OFF} -BUILD_MONTEVERDI="-DOTB_USE_QWT=$MONTEVERDI \ - -DOTB_USE_GLEW=$MONTEVERDI \ - -DOTB_USE_OPENGL=$MONTEVERDI \ - $WITH_GLFW" -BUILD_QT="-DOTB_USE_QT=${QTGUI:-ON}" - mkdir -p build cd build cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="$SLKCFLAGS" \ -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \ + -DCMAKE_POLICY_DEFAULT_CMP0106=OLD \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DBUILD_EXAMPLES=OFF \ - -DBUILD_TESTING=OFF \ -DOTB_USE_CURL=ON \ - -DOTB_USE_GLUT=ON \ -DOTB_USE_GSL=ON \ -DOTB_USE_LIBKML=ON \ - -DOTB_USE_MUPARSER=ON \ - -DOTB_USE_OPENCV=ON \ + -DOTBGroup_Learning=ON \ + -DOTBGroup_FeaturesExtraction=ON \ + -DOTB_USE_MUPARSERX=OFF \ -DOTB_USE_OPENMP=ON \ -DOTB_USE_SHARK=ON \ -DOTB_INSTALL_PYTHON_DIR=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ -DOTB_WRAP_PYTHON=ON \ - -DOTB_INSTALL_DOC_DIR=doc/$PRGNAM-$VERSION \ - -DGDAL_CONFIG_CHECKING=ON \ - $BUILD_MPI \ - $BUILD_MONTEVERDI \ - $BUILD_QT \ + -DGDAL_CONFIG_CHECKING=OFF \ + -DBUILD_DOCUMENTATION=OFF \ .. - make + make -j 10 make install DESTDIR=$PKG cd .. -if [ "$QTGUI" = "OFF" ] ; then - # otbgui scripts are added but are unusable - rm $PKG/usr/bin/otbgui_* -fi - find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -mkdir -p $PKG/etc/profile.d -cat > $PKG/etc/profile.d/otb.csh << EOF -#!/bin/csh -# Orfeo ToolBox applications path -setenv OTB_APPLICATION_PATH /usr/lib${LIBDIRSUFFIX}/otb/applications -EOF -cat > $PKG/etc/profile.d/otb.sh << EOF -#!/bin/sh -# Orfeo ToolBox applications path -export OTB_APPLICATION_PATH=/usr/lib${LIBDIRSUFFIX}/otb/applications -EOF - -chmod 0755 $PKG/etc/profile.d/otb.csh -chmod 0755 $PKG/etc/profile.d/otb.sh + +# Experimental: remove post-install scripts from a no-standard path +# These scripts should be used to reconfigure the environment if various versions of OTB +# are installed and/or set the correct Python path in some Linux distributions +# They do not seem essential and their launch might cause unexpected issues with +# pkgtool. I think we do not need this +cp -a $PKG/usr/LICENSE . +rm -f $PKG/usr/README \ + $PKG/usr/otbenv.profile \ + $PKG/usr/recompile_bindings.sh \ + $PKG/usr/LICENSE + +# This no standard directory includes three post-install scripts. We do need them? +# At the moment we move this directory in /usr/share/otb: users would require these +# tools for singular contexts +mv $PKG/usr/tools $PKG/usr/share/otb + +# Remove no standard directory /usr/share/doc with superfluous content +rm -rf $PKG/usr/share/doc mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ - README.md RELEASE_NOTES.txt \ + README.md RELEASE_NOTES.txt LICENSE \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc -if [ "$MONTEVERDI" = "ON" ] ; then - cat $CWD/doinst.sh > $PKG/install/doinst.sh -fi cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/gis/OTB/OTB.info b/gis/OTB/OTB.info index 6e3b37608a30..7322b947bd20 100644 --- a/gis/OTB/OTB.info +++ b/gis/OTB/OTB.info @@ -1,10 +1,10 @@ PRGNAM="OTB" -VERSION="8.1.2" +VERSION="9.0.0" HOMEPAGE="http://orfeo-toolbox.org/otb/" -DOWNLOAD="https://github.com/orfeotoolbox/OTB/archive/8.1.2/OTB-8.1.2.tar.gz" -MD5SUM="b9657e08b5a985e46a8442bcdcfd8038" +DOWNLOAD="https://github.com/orfeotoolbox/OTB/archive/9.0.0/OTB-9.0.0.tar.gz" +MD5SUM="b710e6eee6f49d6bae75541fc242cbbb" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="gdal ITK libkml OpenSceneGraph muParser ossim Shark tinyxml" +REQUIRES="gdal ITK libkml libsvm muParser muparserx Shark tinyxml" MAINTAINER="Giancarlo Dessi" EMAIL="slack@giand.it" diff --git a/gis/OTB/README b/gis/OTB/README index 637002a2a79b..1f721466968b 100644 --- a/gis/OTB/README +++ b/gis/OTB/README @@ -4,21 +4,30 @@ OTB is based on the medical image processing library ITK and offers particular functionalities for remote sensing image processing in general and for high spatial resolution images in particular. Targeted algorithms for high resolution optical images (Pleiades, SPOT, -QuickBird, WorldView, Landsat, -Ikonos), hyperspectral sensors (Hyperion) or SAR (TerraSarX, ERS, -Palsar) are available. +QuickBird, WorldView, Landsat, Ikonos), hyperspectral sensors +(Hyperion) or SAR (TerraSarX, ERS, Palsar) are available. -Monteverdi, a satellite image viewer with access to OTB processing, -will also be built if MONTEVERDI=ON is passed to the script. This will -require the qwt package to be installed. - -A QT application launcher will be built by default. Set QTGUI=OFF to -disable it (note that disabling Qt support will also disable Monteverdi -even if MONTEVERDI is set to ON). +All of OTB's algorithms are accessible from other platforms like +QGIS, Python, command line, C++, and Monteverdi. Monteverdi is a +satellite image viewer with access to OTB processing. Until version +8.1.2, Monteverdi could be included in a single build, but since 9.0.0 +version the image viewer is available only a standalone application. +If you are interested to the integrated graphic interface, you must +refer to OTB-legacy package (available in this repository) otherwise +you have to build and install separately the package Monteverdi. OTB will be built with support for the following packages if they are -available at compile time: numpy3, openmpi, glfw3. Support to glfw3 is -enabled only with the build of Monteverdi. +available at compile time: numpy3. -Warning: the build fails if Shark is not built against the optional -dependency cblas that gives the support to ATLAS. +Warnings +1. The build fails if Shark is not built against the optional + dependency cblas that gives the support to ATLAS. +2. OTB sources in lastest version has changed in several areas and the + build could require - at least in some Linux distributions - the + launch of post-install scripts to patch the default settings and + adapt them to the system environment. This could not be needed in + Slackware, but the upgrade is not sufficiently tested in runtime, so + please report any issues to the maintainer. + You might also consider the installation of the legacy version that + is provided by the slackbuild OTB-legacy (v. 8.1.2) that replaces + the old OTB package. diff --git a/gis/OTB/doinst.sh b/gis/OTB/doinst.sh deleted file mode 100644 index 19ad22754d1f..000000000000 --- a/gis/OTB/doinst.sh +++ /dev/null @@ -1,13 +0,0 @@ -if [ -x /usr/bin/update-desktop-database ]; then - /usr/bin/update-desktop-database -q usr/share/applications -fi - -if [ -x /usr/bin/update-mime-database ]; then - /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 -fi - -if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then - if [ -x /usr/bin/gtk-update-icon-cache ]; then - /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1 - fi -fi diff --git a/gis/OTB/otbSpatialReference.cxx.patch b/gis/OTB/otbSpatialReference.cxx.patch new file mode 100644 index 000000000000..ee18d7ec7867 --- /dev/null +++ b/gis/OTB/otbSpatialReference.cxx.patch @@ -0,0 +1,8 @@ +--- ./Modules/Core/Adapters/GdalAdapters/src/otbSpatialReference.cxx ++++ ./Modules/Core/Adapters/GdalAdapters/src/otbSpatialReference.cxx +@@ -31,4 +31,5 @@ + #include <sstream> + #include <stdexcept> ++#include <cassert> + + namespace otb |