summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Giancarlo Dessi2024-03-11 14:50:29 +0100
committer Willy Sudiarto Raharjo2024-03-13 00:27:43 +0100
commitc2b24d85693af22cf124fea5d30e61acdbd4cd64 (patch)
tree55fbae24404486510f5e11e2fe5ee32678004a22
parentf2ead3b077159d7c3bf52bf51b6c837826c51e2c (diff)
downloadslackbuilds-c2b24d85693af22cf124fea5d30e61acdbd4cd64.tar.gz
gis/OTB: Updated for version 9.0.0.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--gis/OTB/OTB.SlackBuild104
-rw-r--r--gis/OTB/OTB.info8
-rw-r--r--gis/OTB/README37
-rw-r--r--gis/OTB/doinst.sh13
-rw-r--r--gis/OTB/otbSpatialReference.cxx.patch8
5 files changed, 81 insertions, 89 deletions
diff --git a/gis/OTB/OTB.SlackBuild b/gis/OTB/OTB.SlackBuild
index 714540970c..4f7ff0585b 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 6e3b37608a..7322b947bd 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 637002a2a7..1f72146696 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 19ad22754d..0000000000
--- 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 0000000000..ee18d7ec78
--- /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