Browse Source

gis/therion: Added (Cave surveying software)

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/198/head
Giancarlo Dessì 3 years ago
committed by Willy Sudiarto Raharjo
parent
commit
5f19b45398
No known key found for this signature in database GPG Key ID: 3F617144D7238786
  1. 71
      gis/therion/README
  2. 29
      gis/therion/doinst.sh
  3. 19
      gis/therion/slack-desc
  4. 167
      gis/therion/therion.SlackBuild
  5. 10
      gis/therion/therion.info

71
gis/therion/README

@ -0,0 +1,71 @@
Therion is a complete platform which processes survey data and
generates maps or 3D models of caves. This suite may be useful for
professional or amateur cavers and researchers in geology or
speleology fields.
The package includes the following components:
- therion: the basic executable program that works as a command-line
compiler and processes input files, which are - including 2D maps -
in text format, to create files with 2D maps or 3D model. 2D maps
can be generated in PDF or SVG formats or other formats handled by
GIS platforms (DXF, ESRI, KML) or Aven (Survex format). 3D models
can be generated in the native format (handled by the component
Loch) or other formats (Compass, 3DMF, VRML, Survex, ecc.) handled
by appropriate viewers.
- xtherion: the executable program that launches the GUI (Graphical
User Interface). Xtherion works as text editor, map editor, and
compiler (instead of therion). This component is not essential:
output files can be generated by therion preparing the input files
with external programs as text or maps editors.
- Loch: a 3D model viewer that supports high-resolution rendering to
file and stereo view using 3D-glasses. This component is not
essential: output 3D models can be displayed with other external
viewers.
- thbook.pdf: the Therion Book, it contains the documentation to use
Therion, generated with pdfTEX during the build process. It will be
installed in /usr/doc/therion-[VERSION]. This component is not
essential: a copy of the book (in basic size format) is also
available in the project homepage.
The build of the optional components is enabled by default. You can
exclude one or more of them by passing to the script the respective
environment variables:
- LOCH=no This disables the build of the native 3D viewer Loch. In
this case wxWidgets and VTK are not required.
- GUI=no This disables the build of Xtherion.
- BOOK=no This disables the build of thbook.pdf.
If you leave enabled the build of Loch, the compilation works also
if you have wxGTK3 (without the dependency wxWidgets) installed in
your system. Other libraries based on wxWidgets (like wxPython3 or
wxPython4 for example) could be detected and used but they are not
tested.
The build requires the library {fmt} as dependency and the source
uses by default an internal {fmt}. This library is available as
slackbuild in Slackbuilds.org (for Slackware 15.0) and a prebuild
package in the official release (for Slackware current). If the
library is installed in your system you would use it. In this case
you can set the build for use of the external library passing an
environment variable to the script as following:
FMT=yes ./therion.SlackBuild
WARNINGS
Note that the platform works only with some standards, interpreters or
programs (like METAPOST, TEX, tcl/tk, ImageMagick, ecc.) that are
available in a full installation of Slackware, and some extensions of
these (like LCDF Typetools, Bwidget, and tkImg) that are available in
Slackbuilds.org. Without these dependencies Therion fails during the
package build (almost) or in runtime for some features (e.g. tkImg,
that is not detected by the build process).
After the installation, a full and extended integrated behavior,
optimized with the custom configuration, requires to set or uncomment
appropriate values in the initialization files in /etc/therion.
Sample data can be downloaded from the project homepage. They can be
used to practice about Therion.
See the thbook.pdf for more information.

29
gis/therion/doinst.sh

@ -0,0 +1,29 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/therion/therion.ini.new
config etc/therion/xtherion.ini.new
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
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

19
gis/therion/slack-desc

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
therion: therion (Cave surveying software)
therion:
therion: Therion is a complete package which processes survey data and
therion: generates maps or 3D models of caves.
therion:
therion:
therion:
therion:
therion: https://therion.speleo.sk/
therion:
therion:

167
gis/therion/therion.SlackBuild

@ -0,0 +1,167 @@
#!/bin/bash
# Slackware build script for therion
# Copyright 2023 Giancarlo Dessi, Cagliari, IT
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=therion
VERSION=${VERSION:-6.1.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
# Features enabled by default
BUILDLOCH="" ; [ "${LOCH:-yes}" = "no" ] && BUILDLOCH=" -DBUILD_LOCH=OFF"
BUILDBOOK=" -DTHBOOK_FORMAT=3" ; [ "${BOOK:-yes}" = "no" ] && BUILDBOOK=" -DBUILD_THBOOK=OFF"
BUILDX=""; [ "${GUI:-yes}" = "no" ] && BUILDX=" -DBUILD_XTHERION=OFF"
# Set internal (default) or system library {fmt}
EXT_FMT=""; [ "${FMT:-no}" = "yes" ] && EXT_FMT=" -DUSE_BUNDLED_FMT=OFF"
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
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 {} \;
mkdir -p build
cd build
cmake -Wno-dev \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SYSCONFDIR=/etc/therion \
$EXT_FMT \
$BUILDLOCH \
$BUILDBOOK \
$BUILDX \
-DCMAKE_BUILD_TYPE=Release ..
make
make install/strip DESTDIR=$PKG
cd ..
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
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
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a CHANGES COPYING README CONTRIBUTING.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# make installs documentation generated by the build into two directories in /usr/share/doc
# we move this documentation in /usr/doc/therion-x.y.z
if [ "$BOOK" != "no" ] ; then
mv $PKG/usr/share/doc/$PRGNAM/thbook.pdf $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share/doc/$PRGNAM
if [ "$LOCH" == "no" ] ; then
rm -rf $PKG/usr/share
fi
fi
if [ "$LOCH" != "no" ] ; then
mv $PKG/usr/share/doc/therion-viewer $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share/doc
fi
#Make and install a copy of the application icon in PNG format
mkdir -p $PKG/usr/share/icons/hicolor/32x32/apps
magick $TMP/$PRGNAM-$VERSION/therion.ico $PKG/usr/share/icons/hicolor/32x32/apps/therion.png
#Create a desktop entry
mkdir -p $PKG/usr/share/applications
cat << EOF > $PKG/usr/share/applications/therion.desktop
[Desktop Entry]
Type=Application
Name=Therion
GenericName=Cave survey software
GenericName[de]=Höhlenstudienprogramm
GenericName[es]=Programa de estudio de las cuevas
GenericName[fr]=Programme d'étude des grottes
GenericName[it]=Programma di studio delle grotte
GenericName[pt]=Programa de estudo de caverna
Comment=Process data from speleological surveys and generate maps and 3D models of caves
Comment[de]=Verarbeiten Sie speläologische Daten und erstellen Sie Höhlenkarten und 3D-Modelle
Comment[es]=Procese datos de estudios espeleológicos y genere mapas y modelos 3D de cuevas
Comment[fr]=Traiter données des relevés spéléologiques et générer cartes et modèles 3D de grottes
Comment[it]=Elabora dati di rilievi speleologici e genera mappe e modelli 3D delle grotte
Comment[pt]=Processar dados de levantamentos espeleológicos e gerar mapas e modelos 3D de cavernas
Exec=xtherion
Icon=/usr/share/icons/hicolor/32x32/apps/therion.png
Terminal=false
Categories=Education;Science;Geology;
StartupNotify=true
MimeType=text/x-th;text/x-th2;
EOF
# remove *.ini files, leave only *.ini.new
rm -f $PKG/etc/therion/*.ini
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

10
gis/therion/therion.info

@ -0,0 +1,10 @@
PRGNAM="therion"
VERSION="6.1.6"
HOMEPAGE="https://therion.speleo.sk/"
DOWNLOAD="https://github.com/therion/therion/archive/v6.1.6/therion-6.1.6.tar.gz"
MD5SUM="b5a9809efd5c2c71c81ceca27c0e0c52"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="bwidget lcdf-typetools proj tkimg VTK wxWidgets"
MAINTAINER="Giancarlo Dessì"
EMAIL="slack@giand.it"
Loading…
Cancel
Save