astro/opencpn: Update to 5.2.4

- New Plugin Management System
- Support for signalK input data streams
- New Head-Up Navigation Mode
- Docking the Dashboard with dual canvases
- Realtime prediction of AIS target location

Changelog: https://opencpn.org/OpenCPN/about/ver520.html

PR:		252168
Submitted by:	Andrea Venturoli <ml@netfence.it> (maintainer)
Approved by:	arrowd (mentor)
Differential Revision:	https://reviews.freebsd.org/D27798
This commit is contained in:
Rainer Hurling 2021-01-05 20:05:00 +00:00
parent a8f07a41e4
commit a402038101
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=560424
9 changed files with 1131 additions and 1044 deletions

View file

@ -1,7 +1,7 @@
# $FreeBSD$ # $FreeBSD$
PORTNAME= opencpn PORTNAME= opencpn
PORTVERSION= 5.2.0 PORTVERSION= 5.2.4
DISTVERSIONPREFIX= v DISTVERSIONPREFIX= v
CATEGORIES= astro geography CATEGORIES= astro geography
@ -13,47 +13,50 @@ LICENSE_FILE= ${WRKSRC}/COPYING.gplv2
LIB_DEPENDS= libportaudio.so:audio/portaudio \ LIB_DEPENDS= libportaudio.so:audio/portaudio \
libcurl.so:ftp/curl \ libcurl.so:ftp/curl \
libexif.so:graphics/libexif \
libexpat.so:textproc/expat2 \ libexpat.so:textproc/expat2 \
libsndfile.so:audio/libsndfile \
libtinyxml.so:textproc/tinyxml \ libtinyxml.so:textproc/tinyxml \
liblz4.so:archivers/liblz4 liblz4.so:archivers/liblz4
USES= cmake compiler:c++11-lang gettext-tools gl gnome \ USES= cmake compiler:c++11-lang gettext-tools gl gnome \
localbase pkgconfig sqlite xorg libarchive localbase pkgconfig sqlite xorg
USE_CXXSTD= c++11 USE_CXXSTD= c++11
USE_GITHUB= yes USE_GITHUB= yes
GH_ACCOUNT= ${GH_PROJECT} GH_ACCOUNT= ${GH_PROJECT}
GH_PROJECT= OpenCPN GH_PROJECT= OpenCPN
USE_GL= gl USE_GL= gl glu
USE_GNOME= cairo gdkpixbuf2 gtk30 pango USE_GNOME= cairo gdkpixbuf2 gtk30 pango
INSTALLS_ICONS= yes INSTALLS_ICONS= yes
USE_LDCONFIG= ${PREFIX}/lib/opencpn USE_LDCONFIG= ${PREFIX}/lib/opencpn
USE_WX= 3.0+ USE_WX= 3.0+
WX_CONF_ARGS= absolute
WX_PREMK= yes
USE_XORG= ice sm x11 xext USE_XORG= ice sm x11 xext
CMAKE_ARGS= -DOCPN_BUNDLE_GSHHS=CRUDE CMAKE_ARGS= -DOCPN_BUNDLE_GSHHS=CRUDE
CMAKE_ON= OCPN_BUNDLE_TCDATA OCPN_FORCE_GTK3 CMAKE_ON= OCPN_BUNDLE_TCDATA OCPN_FORCE_GTK3 # OCPN_USE_CRASHREPORT
CMAKE_OFF= OCPN_USE_NEWSERIAL CMAKE_OFF= OCPN_USE_NEWSERIAL
OPTIONS_DEFINE= DOCS OPTIONS_DEFINE= DOCS
OPTIONS_SUB= yes
DOCS_CMAKE_ON= -DOCPN_BUNDLE_DOCS:STRING="ON" DOCS_CMAKE_ON= -DOCPN_BUNDLE_DOCS:STRING="ON"
DOCS_CMAKE_OFF= -DOCPN_BUNDLE_DOCS:STRING="OFF" DOCS_CMAKE_OFF= -DOCPN_BUNDLE_DOCS:STRING="OFF"
.include <bsd.port.options.mk>
.if ${ARCH} == powerpc64
CMAKE_ARGS+= -DHAVE_MSSE=OFF -DHAVE_MSSE2=OFF -DHAVE_MSSE3=OFF -DHAVE_MAVX2=OFF -DHAVE_MFPU_NEON=OFF
.endif
.include <bsd.port.pre.mk> .include <bsd.port.pre.mk>
post-patch: post-patch:
@${REINPLACE_CMD} -e 's,/usr/local,${PREFIX},' \ @${REINPLACE_CMD} \
${WRKSRC}/libs/gdal/src/cpl_csv.cpp \ -e 's,wx-config,${WX_CONFIG},' \
${WRKSRC}/libs/gdal/src/cpl_findfile.cpp \ -e 's,$${PREFIX_PKGDATA}/doc,${DOCSDIR},g' \
${WRKSRC}/data/doc/help_en_US.html ${WRKSRC}/CMakeLists.txt
.if ${ARCH} != amd64 && ${ARCH} != i386 .if ${ARCH} != amd64 && ${ARCH} != i386
@${REINPLACE_CMD} -e '/-msse/d' -e '/-mssse3/d' \ @${REINPLACE_CMD} -e '/-msse/d' -e '/-mssse3/d' \
-e '/-mavx2/d' ${WRKSRC}/CMakeLists.txt -e '/-mavx2/d' ${WRKSRC}/CMakeLists.txt
.endif .endif
post-install-DOCS-on:
${CP} -R ${WRKSRC}/Docs/OSENC ${STAGEDIR}${DOCSDIR}/OSENC.docx
.include <bsd.port.post.mk> .include <bsd.port.post.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1599147212 TIMESTAMP = 1605894801
SHA256 (OpenCPN-OpenCPN-v5.2.0_GH0.tar.gz) = f6ec38989bc38f5a7f63234c5e0230adeb73f5626b4e3d3dfa680f0c240badc7 SHA256 (OpenCPN-OpenCPN-v5.2.4_GH0.tar.gz) = 8b25a6bb8d52abac0f8c004a1c8297ce3fba0798dedd973b87344d18273db660
SIZE (OpenCPN-OpenCPN-v5.2.0_GH0.tar.gz) = 78313969 SIZE (OpenCPN-OpenCPN-v5.2.4_GH0.tar.gz) = 81226481

View file

@ -1,8 +1,8 @@
--- CMakeLists.txt.orig 2020-07-15 18:02:29 UTC --- CMakeLists.txt.orig 2020-10-22 23:20:06 UTC
+++ CMakeLists.txt +++ CMakeLists.txt
@@ -2221,7 +2221,7 @@ if (NOT APPLE) @@ -2230,7 +2230,7 @@ if (NOT APPLE)
FILES ${CMAKE_BINARY_DIR}/opencpn.appdata.xml
DESTINATION ${PREFIX_DATA}/metainfo DESTINATION ${PREFIX_DATA}/metainfo
RENAME opencpn.appdata.xml
) )
- install(FILES opencpn.1 DESTINATION ${PREFIX_DATA}/man/man1) - install(FILES opencpn.1 DESTINATION ${PREFIX_DATA}/man/man1)
+ install(FILES opencpn.1 DESTINATION ${PREFIX_DATA}/../man/man1) + install(FILES opencpn.1 DESTINATION ${PREFIX_DATA}/../man/man1)

View file

@ -1,8 +1,8 @@
--- cmake/TargetSetup.cmake.orig 2020-07-15 18:02:29 UTC --- cmake/TargetSetup.cmake.orig 2020-10-22 23:20:06 UTC
+++ cmake/TargetSetup.cmake +++ cmake/TargetSetup.cmake
@@ -26,14 +26,10 @@ elseif (APPLE) @@ -39,14 +39,14 @@ elseif(_wx_selected_config MATCHES "androideabi-qt")
execute_process(COMMAND "sw_vers" "-productVersion" endif(ANDROID_ARCH MATCHES "arm64")
OUTPUT_VARIABLE PKG_TARGET_VERSION)
elseif (UNIX) elseif (UNIX)
- find_program(LSB_RELEASE NAMES lsb_release) - find_program(LSB_RELEASE NAMES lsb_release)
- if (NOT LSB_RELEASE) - if (NOT LSB_RELEASE)
@ -10,11 +10,15 @@
- "Cannot find the lsb_release program, please install.") - "Cannot find the lsb_release program, please install.")
- endif () - endif ()
- execute_process(COMMAND ${LSB_RELEASE} "-is" - execute_process(COMMAND ${LSB_RELEASE} "-is"
+ find_program(LSB_RELEASE NAMES uname) +# find_program(LSB_RELEASE NAMES lsb_release)
+ execute_process(COMMAND ${LSB_RELEASE} "-s" +# if (NOT LSB_RELEASE)
+# message(FATAL_ERROR
+# "Cannot find the lsb_release program, please install.")
+# endif ()
+ execute_process(COMMAND uname "-i"
OUTPUT_VARIABLE PKG_TARGET) OUTPUT_VARIABLE PKG_TARGET)
- execute_process(COMMAND ${LSB_RELEASE} "-rs" - execute_process(COMMAND ${LSB_RELEASE} "-rs"
+ execute_process(COMMAND ${LSB_RELEASE} "-r" + execute_process(COMMAND uname "-r"
OUTPUT_VARIABLE PKG_TARGET_VERSION) OUTPUT_VARIABLE PKG_TARGET_VERSION)
else () else ()
set(PKG_TARGET "unknown") set(PKG_TARGET "unknown")

View file

@ -0,0 +1,11 @@
--- libs/wxcurl/include/wx/curl/thread.h.orig 2020-10-22 23:20:06 UTC
+++ libs/wxcurl/include/wx/curl/thread.h
@@ -43,7 +43,7 @@ enum wxCurlThreadError
};
//! The stack size for wxCurl threads.
-#define wxCURL_THREAD_STACK_SIZE 2048
+#define wxCURL_THREAD_STACK_SIZE 1024
// ----------------------------------------------------------------------------

View file

@ -0,0 +1,11 @@
--- src/PluginPaths.cpp.orig 2020-10-22 23:20:06 UTC
+++ src/PluginPaths.cpp
@@ -214,7 +214,7 @@ PluginPaths::PluginPaths()
else if (g_Platform->isFlatpacked()) {
initFlatpackPaths();
}
- else if (osSystemId & wxOS_UNIX_LINUX) {
+ else if (osSystemId & wxOS_UNIX_LINUX || osSystemId & wxOS_UNIX_FREEBSD) {
#ifdef __OCPN__ANDROID__
initAndroidPaths();
#else

View file

@ -1,6 +1,6 @@
--- src/chart1.cpp.orig 2020-07-15 18:02:29 UTC --- src/chart1.cpp.orig 2020-07-15 18:02:29 UTC
+++ src/chart1.cpp +++ src/chart1.cpp
@@ -8226,7 +8226,7 @@ void MyFrame::MouseEvent( wxMouseEvent& event ) @@ -8244,7 +8244,7 @@ void MyFrame::MouseEvent( wxMouseEvent& event )
#endif #endif
#ifdef __WXGTK__ #ifdef __WXGTK__
@ -9,7 +9,13 @@
#endif #endif
#if defined(__linux__) #if defined(__linux__)
@@ -10370,6 +10370,8 @@ extern "C" int wait(int *); // POS @@ -10382,10 +10382,14 @@
#if defined(__UNIX__) && !defined(__OCPN__ANDROID__) && !defined(__WXOSX__)
extern "C" int wait(int *); // POSIX wait() for process
+#include <sys/param.h>
#include <termios.h>
+#include <fcntl.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#ifdef __linux__ #ifdef __linux__
#include <linux/serial.h> #include <linux/serial.h>
@ -18,14 +24,26 @@
#endif #endif
#endif #endif
@@ -10445,17 +10447,25 @@ int isTTYreal(const char *dev) @@ -10452,7 +10456,8 @@
int isTTYreal(const char *dev)
{
-#ifdef __NetBSD__
+#ifdef __FreeBSD__
+ wxLogMessage( _T("FreeBSD") );
if (strncmp("/dev/tty0", dev, 9) == 0)
return 1;
if (strncmp("/dev/ttyU", dev, 9) == 0)
@@ -10460,24 +10465,32 @@
if (strcmp("/dev/gps", dev) == 0)
return 1; return 1;
return 0; return 0;
#else /* !NetBSD */ -#else /* !NetBSD */
+#ifdef __linux__
struct serial_struct serinfo;
+#else +#else
+ struct termios termattr; +#ifdef __FreeBSD__
+ struct termios termAttr;
+#else
struct serial_struct serinfo;
+#endif +#endif
int ret = 0; int ret = 0;
@ -33,33 +51,61 @@
// device name is pointing to a real device // device name is pointing to a real device
if(fd >= 0) { if(fd >= 0) {
+#ifdef __linux__ +#ifdef __FreeBSD__
+ if (tcgetattr(fd, &termAttr) == 0) {
+#else
if (ioctl(fd, TIOCGSERIAL, &serinfo)==0) { if (ioctl(fd, TIOCGSERIAL, &serinfo)==0) {
// If device type is no PORT_UNKNOWN we accept the port // If device type is no PORT_UNKNOWN we accept the port
if (serinfo.type != PORT_UNKNOWN) if (serinfo.type != PORT_UNKNOWN)
- ret = 1;
+#else
+ if (tcgetattr(fd, &termattr) == 0) {
+#endif +#endif
+ ret = 1; ret = 1;
} }
close (fd); close (fd);
} }
@@ -10505,10 +10515,17 @@ wxArrayString *EnumerateSerialPorts( void )
return ret;
-#endif /* !NetBSD */
+#endif
}
@@ -10521,10 +10534,17 @@
//Initialize the pattern table //Initialize the pattern table
if( devPatern[0] == NULL ) { if( devPatern[0] == NULL ) {
+#ifdef __linux__ +#ifdef __FreeBSD__
paternAdd ( "ttyUSB" );
paternAdd ( "ttyACM" );
paternAdd ( "ttyGPS" );
paternAdd ( "refcom" );
+#else
+ paternAdd ( "ttyU" ); + paternAdd ( "ttyU" );
+ paternAdd ( "ttyu" ); + paternAdd ( "ttyu" );
+ paternAdd ( "ttyd" ); + paternAdd ( "ttyd" );
+ paternAdd ( "gps" ); + paternAdd ( "gps" );
+#else
paternAdd ( "ttyUSB" );
paternAdd ( "ttyACM" );
paternAdd ( "ttyGPS" );
paternAdd ( "refcom" );
+#endif +#endif
} }
// Looking for user privilege openable devices in /dev // Looking for user privilege openable devices in /dev
@@ -11019,6 +11039,12 @@
if(!result1.size())
wxExecute(_T("stat -c %G /dev/ttyACM0"), result1);
+ if(!result1.size())
+ wxExecute(_T("stat -f %g /dev/ttyu0"), result1);
+
+ if(!result1.size())
+ wxExecute(_T("stat -f %g /dev/ttyU0"), result1);
+
wxString msg1 = _("OpenCPN requires access to serial ports to use serial NMEA data.\n");
if(!result1.size()) {
wxString msg = msg1 + _("No Serial Ports can be found on this system.\n\
@@ -11032,7 +11058,7 @@
wxString user = wxGetUserId(), group = result1[0];
wxArrayString result2;
- wxExecute(_T("groups ") + user, result2);
+ wxExecute(_T("id -G ") + user, result2);
if(result2.size()) {
wxString user_groups = result2[0];

View file

@ -0,0 +1,11 @@
--- src/glChartCanvas.cpp.orig 2020-10-22 23:20:06 UTC
+++ src/glChartCanvas.cpp
@@ -57,7 +57,7 @@ class OCPNStopWatch (private)
#if defined(__OCPN__ANDROID__)
#include "androidUTIL.h"
-#elif defined(__WXQT__)
+#else
#include <GL/glx.h>
#endif

File diff suppressed because it is too large Load diff