Browse Source

gis/OTB: Updated for version 9.0.0.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/217/head
Giancarlo Dessi 2 years ago
committed by Willy Sudiarto Raharjo
parent
commit
c2b24d8569
No known key found for this signature in database GPG Key ID: 3F617144D7238786
  1. 104
      gis/OTB/OTB.SlackBuild
  2. 8
      gis/OTB/OTB.info
  3. 37
      gis/OTB/README
  4. 13
      gis/OTB/doinst.sh
  5. 8
      gis/OTB/otbSpatialReference.cxx.patch

104
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

8
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"

37
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.

13
gis/OTB/doinst.sh

@ -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

8
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
Loading…
Cancel
Save