aboutsummaryrefslogtreecommitdiff
path: root/misc/subsurface/subsurface.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'misc/subsurface/subsurface.SlackBuild')
-rw-r--r--misc/subsurface/subsurface.SlackBuild101
1 files changed, 84 insertions, 17 deletions
diff --git a/misc/subsurface/subsurface.SlackBuild b/misc/subsurface/subsurface.SlackBuild
index d3c07d9312081..d660b833df709 100644
--- a/misc/subsurface/subsurface.SlackBuild
+++ b/misc/subsurface/subsurface.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for subsurface
-# Copyright 2014-2015 Larry Hajali <larryhaja[at]gmail[dot]com>
+# Copyright 2014-2016 Larry Hajali <larryhaja[at]gmail[dot]com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,13 +24,13 @@
PRGNAM=subsurface
SRCNAM=Subsurface
-VERSION=${VERSION:-4.4.2}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-4.5.6}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -41,8 +41,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -63,6 +63,8 @@ cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tgz
cd $SRCNAM-$VERSION
+tar xvf $CWD/libdivecomputer-$PRGNAM-branch-$VERSION.tgz
+tar xvf $CWD/marble-$PRGNAM-branch-$VERSION.tgz
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -70,23 +72,88 @@ 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 {} \;
-# Fix man page directory.
-sed -i '/MANDIR =/s|=.*|= /usr/man/man1|' $PRGNAM-install.pri
-# Build with Qt4.
-patch -p1 < packaging/ubuntu/0001-Make-build-with-Qt4.patch
-# Build with newer libgit2.
-patch -Np1 < $CWD/libgit2-0.23.x.patch
-
-qmake PREFX="/usr" QMAKE_CFLAGS+="$SLKCFLAGS" QMAKE_CXXFLAGS+="$SLKCFLAGS" \
- V=1 -config release -o Makefile $PRGNAM.pro
+# Ugly hack to avoid header collision between grantlee and grantlee-qt5.
+# https://mail.kde.org/pipermail/release-team/2015-August/008911.html
+sed -i 's|#include <grantlee_templates.h>|#include "grantlee_templates_local.h"|' templatelayout.h
+cat /usr/include/Grantlee5/grantlee_templates.h | \
+ sed -e 's|grantlee/|Grantlee5/grantlee/|'\
+ > grantlee_templates_local.h
+
+# We already have packages for libdivecomputer and marble on the system.
+# Subsurface requires newer (custom) packages then what is currently available,
+# so we're going to compile them into the Subsurface package.
+# Similar to packaging/ubuntu/debian/rules.
+cd libdivecomputer-$PRGNAM-branch-$VERSION
+if [ ! -f configure ]; then
+ autoreconf -ivf
+fi
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-static=yes \
+ --enable-shared=no \
+ --enable-logging=no \
+ --disable-silent-rules
make
-make install INSTALL_ROOT=$PKG
+make install DESTDIR="$PWD/.."
+cd -
+
+mkdir -p marble-$PRGNAM-branch-$VERSION/build
+cd marble-$PRGNAM-branch-$VERSION/build
+ cmake -G "Unix Makefiles" \
+ -DCMAKE_INSTALL_PREFIX:PATH="/usr" \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DQT5BUILD:BOOL=ON \
+ -DQTONLY:BOOL=TRUE \
+ -DBUILD_MARBLE_APPS:BOOL=OFF \
+ -DBUILD_MARBLE_EXAMPLES:BOOL=OFF \
+ -DBUILD_MARBLE_TESTS:BOOL=OFF \
+ -DBUILD_MARBLE_TOOLS:BOOL=OFF \
+ -DWITH_DESIGNER_PLUGIN:BOOL=OFF \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DBUILD_WITH_DBUS:BOOL=OFF \
+ -DLIB_SUFFIX:STRING="$LIBDIRSUFFIX" \
+ -DCMAKE_BUILD_TYPE=Release ..
+
+ make VERBOSE=1
+ make -C src/lib/marble install DESTDIR=$PKG
+cd -
+
+# Build subsurface with libftdi support. Default is no.
+if [ "${FTDI:-no}" == "yes" ]; then
+ FTDISUPPORT="ON"
+else
+ FTDISUPPORT="OFF"
+fi
+
+mkdir build
+cd build
+ cmake -G "Unix Makefiles" \
+ -DCMAKE_INSTALL_PREFIX:PATH="/usr" \
+ -DUSE_LIBGIT23_API:BOOL=ON \
+ -DFTDISUPPORT:BOOL="$FTDISUPPORT" \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -std=c++11" \
+ -DMARBLE_LIBRARIES="$PKG/usr/lib${LIBDIRSUFFIX}/libssrfmarblewidget.so" \
+ -DMARBLE_INCLUDE_DIR="$PKG/usr/include" \
+ -DLIBDIVECOMPUTER_INCLUDE_DIR="../usr/include" \
+ -DLIBDIVECOMPUTER_LIBRARIES="../usr/lib${LIBDIRSUFFIX}/libdivecomputer.a" \
+ -DCMAKE_BUILD_TYPE=Release ..
+
+ make VERBOSE=1
+ make install DESTDIR=$PKG
+cd -
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/usr/man -type f -exec gzip -9 {} \;
+# Remove unneeded files/directories.
+rm -rf $PKG/usr/include/marble
+find $PKG -type d -empty -delete
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a gpl-2.0.txt INSTALL README SupportedDivecomputers.* TODO.CCR \