Browse Source

gis/opencpn: Updated for version 5.2.4.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
pull/182/head
M.Dinslage 4 years ago
committed by Robby Workman
parent
commit
426d4b931c
  1. 15
      gis/opencpn/README
  2. 42
      gis/opencpn/opencpn.SlackBuild
  3. 8
      gis/opencpn/opencpn.info
  4. 79
      gis/opencpn/patches/cmake_build_fix.patch
  5. 20
      gis/opencpn/patches/honor_mandir.patch
  6. 14
      gis/opencpn/patches/opencpn-4.4.0-multilib-strict.patch

15
gis/opencpn/README

@ -3,15 +3,6 @@ plotter and navigation software, for use underway or as a planning
tool. OpenCPN is developed by a team of active sailors using real
world conditions for program testing and refinement.
If you are upgrading or installing new, OpenCPN 5.x now requires
that wxGTK3 be built with webkitgtk support. So you will have to
install webkitgtk available here at SBo, then build and install
wxGTK3.
OpenCPN only looks for plugins in the "lib" directories. So on
x86_64 we have to pass an environment variable to use plugins.
The menu launcher will automatically set this for you, however
if you choose to launch OpenCPN from the command line you must
launch it with this command to get plugin support on x86_64.
OPENCPN_PLUGIN_DIRS="/usr/lib64/opencpn" opencpn
If you are upgrading or installing new, OpenCPN 5.2.x needs wxGTK3
to be built with webkitgtk3 support. So you will have to install
webkitgtk3, available here at SBo, then build and install wxGTK3.

42
gis/opencpn/opencpn.SlackBuild

@ -2,7 +2,7 @@
# Slackware build script for opencpn
# Copyright 2019 Matt Dinslage, Springfield, MO
# Copyright 2021 Matt Dinslage, Springfield, MO
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -25,12 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=opencpn
VERSION=${VERSION:-5.0.0}
VERSION=${VERSION:-5.2.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@ -71,7 +70,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/OpenCPN-$VERSION.tar.gz || tar xvf $CWD/v$VERSION.tar.gz
tar xvf $CWD/OpenCPN-$VERSION.tar.gz
cd OpenCPN-$VERSION
chown -R root:root .
find -L . \
@ -80,20 +79,15 @@ 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 {} \;
# Apply patches to fix following issues...
# Honor MANDIR
# Honor LIBSUFFIXDIR
# Fix building with newer cmake versions
for patch in $CWD/patches/* ; do
patch -p1 < $patch
done
# opencpn does not have specific checks for Slackware so it
# defautls to a i386 arch. Change this for x86_64
# Fix LIBDIR
if [ "$ARCH" = "x86_64" ]; then
sed -i '0,/i386/s//x86_64/' CMakeLists.txt
sed -i '0,/"i386"/{s/"i386"/"x86_64"/}' cmake/GetArch.cmake
sed -i '0,/"lib"/{s/"lib"/"lib64"/}' cmake/GetArch.cmake
fi
# Fix MANDIR
sed -i 's,${PREFIX_DATA}/man/man1,/usr/man/man1,g' CMakeLists.txt
mkdir -p build
cd build
cmake \
@ -101,6 +95,8 @@ cd build
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DOPCPN_FORCE_GTK3=ON \
-DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config \
-DBUNDLE_GSHHS=CRUDE \
-DBUNDLE_TCDATA=ON \
-DBUNDLE_DOCS=ON \
@ -109,6 +105,9 @@ cd build
make install DESTDIR=$PKG
cd ..
# Don't ship .la files:
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
@ -121,18 +120,15 @@ mv $PKG/usr/share/doc/$PRGNAM/* $PKG/usr/doc/$PRGNAM-$VERSION
rm -rf $PKG/usr/share/doc
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# Add an icon to /usr/share/pixmaps so menu launcher has icon
rm -r $PKG/usr/share/icons/hicolor/*
mkdir -p $PKG/usr/share/icons/hicolor/scalable/apps
cp $TMP/OpenCPN-$VERSION/src/bitmaps/other_svg_src/opencpn_logo.svg \
$PKG/usr/share/icons/hicolor/scalable/apps/opencpn.svg
mkdir -p $PKG/usr/share/pixmaps
convert $PKG/usr/share/icons/hicolor/scalable/apps/opencpn.svg -resize 256x256 \
$PKG/usr/share/pixmaps/opencpn.png
# OpenCPN only looks for plugins in the "lib" directories. We
# have to set an evnironment variable in order for OpenCPN to
# find plugins in "lib64"
if [ "$ARCH" = "x86_64" ]; then
sed -i 's,Exec=opencpn,Exec=env OPENCPN_PLUGIN_DIRS="/usr/lib64/opencpn" opencpn,g' $PKG/usr/share/applications/opencpn.desktop
fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

8
gis/opencpn/opencpn.info

@ -1,10 +1,10 @@
PRGNAM="opencpn"
VERSION="5.0.0"
VERSION="5.2.4"
HOMEPAGE="https://opencpn.org/"
DOWNLOAD="https://github.com/OpenCPN/OpenCPN/archive/v5.0.0/OpenCPN-5.0.0.tar.gz"
MD5SUM="a6e79c2c6f64037be1894b48b9a1014a"
DOWNLOAD="https://github.com/OpenCPN/OpenCPN/archive/v5.2.4/OpenCPN-5.2.4.tar.gz"
MD5SUM="9ca81bed7bca1706ecaac98a7578d6bb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="gpsd tinyxml libmspack portaudio webkitgtk wxGTK3"
REQUIRES="gpsd tinyxml libmspack portaudio lsb-release webkitgtk3 wxGTK3"
MAINTAINER="M.Dinslage"
EMAIL="daedra1980@gmail.com"

79
gis/opencpn/patches/cmake_build_fix.patch

@ -1,79 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fcec1191a..8df2a9e21 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -408,9 +408,9 @@ IF((_wx_selected_config MATCHES "qt-armv7"))
ENDIF()
IF((_wx_selected_config MATCHES "qt-armv7"))
- SET(wxWidgets_USE_LIBS base core xml html adv aui)
+ SET(wxWidgets_FIND_COMPONENTS base core xml html adv aui)
ELSE()
- SET(wxWidgets_USE_LIBS net xml html adv aui core base webview)
+ SET(wxWidgets_FIND_COMPONENTS net xml html adv aui core base webview)
ENDIF()
OPTION (USE_GL "Enable OpenGL support" ON)
@@ -436,7 +436,7 @@ IF (ARCH MATCHES "arm*" AND (NOT QT_ANDROID) AND CMAKE_SYSTEM_NAME MATCHES ".*Li
SET(OPENGLES_FOUND "YES")
SET(OPENGL_FOUND "YES")
- SET(wxWidgets_USE_LIBS ${wxWidgets_USE_LIBS} gl )
+ SET(wxWidgets_FIND_COMPONENTS ${wxWidgets_FIND_COMPONENTS} gl )
add_subdirectory(src/glshim)
SET(OPENGL_LIBRARIES "GL_static" "EGL" "X11" "drm" )
@@ -455,7 +455,7 @@ IF(QT_ANDROID)
SET(OPENGLES_FOUND "YES")
SET(OPENGL_FOUND "YES")
- SET(wxWidgets_USE_LIBS ${wxWidgets_USE_LIBS} gl )
+ SET(wxWidgets_FIND_COMPONENTS ${wxWidgets_FIND_COMPONENTS} gl )
add_subdirectory(src/glshim)
ENDIF(QT_ANDROID)
@@ -468,7 +468,7 @@ IF ((NOT OPENGLES_FOUND) AND (NOT QT_ANDROID))
ENDIF(USE_GL)
IF(OPENGL_FOUND)
- SET(wxWidgets_USE_LIBS gl ${wxWidgets_USE_LIBS} )
+ SET(wxWidgets_FIND_COMPONENTS gl ${wxWidgets_FIND_COMPONENTS} )
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
MESSAGE (STATUS "Found OpenGL...." )
@@ -529,14 +529,14 @@ IF(NOT QT_ANDROID)
ENDIF(MSVC)
IF(WIN32 OR APPLE OR QT_ANDROID)
- FIND_PACKAGE(wxWidgets)
+ FIND_PACKAGE(wxWidgets COMPONENTS ${wxWidgets_FIND_COMPONENTS})
if (wxWidgets_FOUND)
message(STATUS "Found wxWidgets webview add-on")
add_definitions(-DOCPN_USE_WEBVIEW)
else ()
- list(REMOVE_ITEM wxWidgets_USE_LIBS webview)
+ list(REMOVE_ITEM wxWidgets_FIND_COMPONENTS webview)
message(STATUS "Could not find wxWidgets webview add-on")
- FIND_PACKAGE(wxWidgets REQUIRED)
+ FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS ${wxWidgets_FIND_COMPONENTS})
endif ()
IF(MSYS)
# this is to convert msys to windows paths, and handle the missing /usr
@@ -1053,14 +1053,14 @@ IF(NOT WIN32 AND NOT APPLE AND NOT QT_ANDROID)
set(wxWidgets_CONFIG_OPTIONS ${wxWidgets_CONFIG_OPTIONS} --toolkit=gtk3)
MESSAGE(STATUS "Building against GTK3...")
ENDIF(GTK2_FOUND)
- FIND_PACKAGE(wxWidgets)
+ FIND_PACKAGE(wxWidgets COMPONENTS ${wxWidgets_FIND_COMPONENTS})
if (wxWidgets_FOUND)
message(STATUS "Found wxWidgets webview add-on")
add_definitions(-DOCPN_USE_WEBVIEW)
else ()
- list(REMOVE_ITEM wxWidgets_USE_LIBS webview)
+ list(REMOVE_ITEM wxWidgets_FIND_COMPONENTS webview)
message(STATUS "Could not find wxWidgets webview add-on")
- FIND_PACKAGE(wxWidgets REQUIRED)
+ FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS ${wxWidgets_FIND_COMPONENTS})
endif ()
MESSAGE (STATUS "Found wxWidgets..." )
MESSAGE (STATUS " wxWidgets Include: ${wxWidgets_INCLUDE_DIRS}")

20
gis/opencpn/patches/honor_mandir.patch

@ -1,20 +0,0 @@
diff -up OpenCPN-5.0.0/CMakeLists.txt.orig OpenCPN-5.0.0/CMakeLists.txt
--- OpenCPN-5.0.0/CMakeLists.txt.orig 2019-04-03 13:49:21.423885285 -0500
+++ OpenCPN-5.0.0/CMakeLists.txt 2019-04-03 13:51:19.789880135 -0500
@@ -91,6 +91,7 @@ SET(CMAKE_MODULE_PATH
${CMAKE_SOURCE_DIR}/cmake
)
+SET(MAN_PATH "man/man1")
set (CMAKE_CXX_STANDARD 11)
message(STATUS "Setting C++11 standard via cmake standard mechanism")
@@ -2422,7 +2423,7 @@ IF(NOT APPLE)
INSTALL(FILES src/bitmaps/other_svg_src/opencpn.svg DESTINATION ${PREFIX_DATA}/icons/hicolor/scalable/apps PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
INSTALL(FILES data/opencpn.desktop DESTINATION ${PREFIX_DATA}/applications PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ )
INSTALL(FILES data/opencpn.appdata.xml DESTINATION ${PREFIX_DATA}/appdata PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ )
- INSTALL(FILES opencpn.1 DESTINATION ${PREFIX_DATA}/man/man1 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ )
+ INSTALL(FILES opencpn.1 DESTINATION ${MAN_PATH} PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ )
ENDIF(UNIX)
ENDIF(NOT APPLE)

14
gis/opencpn/patches/opencpn-4.4.0-multilib-strict.patch

@ -1,14 +0,0 @@
diff -up OpenCPN-4.4.0/CMakeLists.txt.orig OpenCPN-4.4.0/CMakeLists.txt
--- OpenCPN-4.4.0/CMakeLists.txt.orig 2016-10-22 03:24:56.824710722 -0500
+++ OpenCPN-4.4.0/CMakeLists.txt 2016-10-22 03:28:10.592724737 -0500
@@ -101,6 +101,9 @@ IF (NOT WIN32)
IF (EXISTS /etc/gentoo-release)
SET (LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
ENDIF (EXISTS /etc/gentoo-release)
+ IF (EXISTS /etc/slackware-version)
+ SET (LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
+ ENDIF (EXISTS /etc/slackware-version)
IF(APPLE)
IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
# IF (CMAKE_OSX_64)
Loading…
Cancel
Save