From 73fb16e74e0fcc00127824e85d385b7f246b6e49 Mon Sep 17 00:00:00 2001 From: 4fury-c3440d8 Date: Sat, 2 Jan 2021 14:26:14 +0000 Subject: [PATCH 1/2] gpsd. --- science/gis/gpsd/actions.py | 30 ++++ science/gis/gpsd/comar/service.py | 23 +++ science/gis/gpsd/files/data/gpsd-logo.png | Bin 0 -> 16518 bytes science/gis/gpsd/files/data/xgps.desktop | 12 ++ science/gis/gpsd/files/data/xgpsspeed.desktop | 12 ++ science/gis/gpsd/files/gpsd.sysconfig | 2 + .../files/pylibdir_no_prefix_replace.patch | 13 ++ ...ntwritebytecode_environment_variable.patch | 10 ++ science/gis/gpsd/pspec.xml | 134 ++++++++++++++++++ 9 files changed, 236 insertions(+) create mode 100644 science/gis/gpsd/actions.py create mode 100644 science/gis/gpsd/comar/service.py create mode 100644 science/gis/gpsd/files/data/gpsd-logo.png create mode 100644 science/gis/gpsd/files/data/xgps.desktop create mode 100644 science/gis/gpsd/files/data/xgpsspeed.desktop create mode 100644 science/gis/gpsd/files/gpsd.sysconfig create mode 100644 science/gis/gpsd/files/pylibdir_no_prefix_replace.patch create mode 100644 science/gis/gpsd/files/use_pythondontwritebytecode_environment_variable.patch create mode 100644 science/gis/gpsd/pspec.xml diff --git a/science/gis/gpsd/actions.py b/science/gis/gpsd/actions.py new file mode 100644 index 0000000000..5150cabc22 --- /dev/null +++ b/science/gis/gpsd/actions.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file https://www.gnu.org/licenses/gpl-3.0.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +shelltools.export("PYTHONDONTWRITEBYTECODE", "1") +i = "/usr/bin/env python3 $(which scons)" + +def setup(): + pass + +def build(): + shelltools.system("%s target_python=python3 prefix=/usr sbindir=/usr/sbin udevdir=/lib/udev" % i) + +def install(): + shelltools.system("DESTDIR=%s %s udev-install prefix=/usr" % (get.installDIR(), i)) + + # fix shebang + shelltools.system("find %s/usr/bin -type f -exec sed -i 's|env\ python$|env python3|g' {} \;" % get.installDIR()) + + # Install UDEV files +# pisitools.insinto("/lib/udev/rules.d", "gpsd.rules", "99-gpsd.rules") +# pisitools.dobin("gpsd.hotplug", "/lib/udev") + diff --git a/science/gis/gpsd/comar/service.py b/science/gis/gpsd/comar/service.py new file mode 100644 index 0000000000..088f016aec --- /dev/null +++ b/science/gis/gpsd/comar/service.py @@ -0,0 +1,23 @@ +from comar.service import * + +import os + +serviceType = "local" +serviceDesc = _({"en": "GPS Daemon", + "tr": "GPS Hizmeti"}) +serviceDefault = "off" + +@synchronized +def start(): + startService(command="/usr/sbin/gpsd", + args="-P /run/gpsd.pid -F /run/sock %s %s" % + (config.get("OPTIONS", "-n"), config.get("DEVICE", "/dev/ttyUSB0"))) + +@synchronized +def stop(): + stopService(pidfile="/run/gpsd.pid", donotify=True) + if os.path.exists("/run/gpsd.pid"): + os.unlink("/run/gpsd.pid") + +def status(): + return isServiceRunning("/run/gpsd.pid") diff --git a/science/gis/gpsd/files/data/gpsd-logo.png b/science/gis/gpsd/files/data/gpsd-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..83ca308013ba016901c96ec21dfb7bf4face5128 GIT binary patch literal 16518 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 UQ?XPA{vb$BT1l!_!X)(n06ryC9smFU literal 0 HcmV?d00001 diff --git a/science/gis/gpsd/files/data/xgps.desktop b/science/gis/gpsd/files/data/xgps.desktop new file mode 100644 index 0000000000..d614d7a6e5 --- /dev/null +++ b/science/gis/gpsd/files/data/xgps.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=xgps +GenericName=GPS information +GenericName[tr]=GPS bilgi görüntüleyici +Comment=Display GPS information from a gpsd daemon +Comment[tr]=gpsd hizmetinden alınan bilgileri görüntüler +Exec=xgps +Icon=gpsd-logo +Terminal=false +Type=Application +Categories=Application;Graphics; diff --git a/science/gis/gpsd/files/data/xgpsspeed.desktop b/science/gis/gpsd/files/data/xgpsspeed.desktop new file mode 100644 index 0000000000..146d24bac7 --- /dev/null +++ b/science/gis/gpsd/files/data/xgpsspeed.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=xgpsspeed +GenericName=GPS speedometer +GenericName[tr]=GPS hızölçer +Comment=Display GPS speed from a gpsd daemon +Comment[tr]=gpsd hizmetinden alınan hız bilgilerini görüntüler +Exec=xgpsspeed +Icon=gpsd-logo +Terminal=false +Type=Application +Categories=Application;Graphics; diff --git a/science/gis/gpsd/files/gpsd.sysconfig b/science/gis/gpsd/files/gpsd.sysconfig new file mode 100644 index 0000000000..1f7b1f638a --- /dev/null +++ b/science/gis/gpsd/files/gpsd.sysconfig @@ -0,0 +1,2 @@ +OPTIONS="-n" +DEVICE="/dev/ttyUSB0" diff --git a/science/gis/gpsd/files/pylibdir_no_prefix_replace.patch b/science/gis/gpsd/files/pylibdir_no_prefix_replace.patch new file mode 100644 index 0000000000..5783e91549 --- /dev/null +++ b/science/gis/gpsd/files/pylibdir_no_prefix_replace.patch @@ -0,0 +1,13 @@ +--- a/SConstruct 2020-08-04 18:40:06.000000000 +0000 ++++ b/SConstruct 2020-12-12 18:29:38.378386573 +0000 +@@ -1460,8 +1460,8 @@ + # follow FHS, put in /usr/local/libXX, not /usr/libXX + # may be lib, lib32 or lib64 + python_libdir = polystr(python_libdir) +- python_libdir = python_libdir.replace("/usr/lib", +- "/usr/local/lib") ++# python_libdir = python_libdir.replace("/usr/lib", ++# "/usr/local/lib") + python_module_dir = str(python_libdir) + os.sep + # Many systems can have a problem with the Python path + announce("Ensure your PYTHONPATH includes %s" % python_module_dir) diff --git a/science/gis/gpsd/files/use_pythondontwritebytecode_environment_variable.patch b/science/gis/gpsd/files/use_pythondontwritebytecode_environment_variable.patch new file mode 100644 index 0000000000..6fc35d8f96 --- /dev/null +++ b/science/gis/gpsd/files/use_pythondontwritebytecode_environment_variable.patch @@ -0,0 +1,10 @@ +--- a/SConstruct 2020-08-04 18:40:06.000000000 +0000 ++++ b/SConstruct 2020-12-27 05:47:40.748197656 +0000 +@@ -516,6 +516,7 @@ + 'CWRAPPERS_CONFIG_DIR', # pkgsrc + # Variables used in testing + 'WRITE_PAD', # So we can test WRITE_PAD values on the fly. ++ 'PYTHONDONTWRITEBYTECODE', + ) + + envs = {} diff --git a/science/gis/gpsd/pspec.xml b/science/gis/gpsd/pspec.xml new file mode 100644 index 0000000000..a574c8f51c --- /dev/null +++ b/science/gis/gpsd/pspec.xml @@ -0,0 +1,134 @@ + + + + + gpsd + https://gpsd.gitlab.io/gpsd/ + + PisiLinux Community + admins@pisilinux.org + + BSD + app + library + science.gis + GPS daemon and library to support serial/USB GPS devices. + + gpsd is a service daemon that monitor one or more GPSes attached to a host computer through serial or USB ports, making all data of the sensors available to be queried on TCP port 2947 of the host computer. + + + http://download-mirror.savannah.gnu.org/releases/gpsd/gpsd-3.21.tar.xz + + + scons + xmlto + dbus-devel + libusb-devel + libxslt-devel + python3-devel + ncurses-devel + bluez-libs-devel + python3-pyserial + + + pylibdir_no_prefix_replace.patch + use_pythondontwritebytecode_environment_variable.patch + + + + + gpsd + + dbus + libgcc + libusb + ncurses + bluez-libs + python3-pyserial + + + /etc/conf.d + /usr/bin + /usr/sbin + /lib/udev/gpsd.hotplug + /usr/lib + /lib/udev/rules.d + /usr/share/man + /usr/share/gpsd/doc + + + gpsd.sysconfig + + + System.Service + + + + + gpsd-clients + + gpsd + dbus + libusb + ncurses + bluez-libs + python3-pyserial + + Various text based and graphical clients for gpsd. + + /usr/bin/cgps + /usr/bin/gpscat + /usr/bin/gpsdecode + /usr/bin/gpspipe + /usr/bin/gpxlogger + /usr/bin/lcdgps + /usr/bin/xgps + /usr/bin/xgpsspeed + /usr/share/man/man1/gps.1* + /usr/share/man/man1/cgps* + /usr/share/man/man1/gpscat* + /usr/share/man/man1/gpsdecode* + /usr/share/man/man1/gpspipe* + /usr/share/man/man1/gpxlogger* + /usr/share/man/man1/cgpxlogger* + /usr/share/man/man1/lcdgps* + /usr/share/man/man1/xgps* + /usr/share/applications + /usr/share/gpsd/icons + /usr/share/pixmaps + + + data/gpsd-logo.png + data/xgps.desktop + data/xgpsspeed.desktop + + + + + gpsd-devel + Development files for gpsd. + + gpsd + + + /usr/bin/gpsfake + /usr/lib/python*/site-packages/gps/fake.py + /usr/include + /usr/lib/pkgconfig + /usr/share/man/man3 + /usr/share/man/man5 + /usr/share/man/man1/gpsfake.1 + + + + + + 2020-12-27 + 3.21 + First build. + fury + wascheme@tuta.io + + + + From 66c4449747339b390594f2d1ce8d4d2ab4da1f30 Mon Sep 17 00:00:00 2001 From: 4fury-c3440d8 Date: Sat, 2 Jan 2021 14:28:32 +0000 Subject: [PATCH 2/2] florb -- map viewer and gpx editor. --- network/misc/florb/actions.py | 34 + ...low_startup_with_missing_config_file.patch | 31 + network/misc/florb/files/florb.desktop.in | 11 + .../files/no_build_about_resources.patch | 130 ++++ .../files/support_building_with_cmake.patch | 613 ++++++++++++++++++ network/misc/florb/pspec.xml | 76 +++ 6 files changed, 895 insertions(+) create mode 100644 network/misc/florb/actions.py create mode 100644 network/misc/florb/files/allow_startup_with_missing_config_file.patch create mode 100644 network/misc/florb/files/florb.desktop.in create mode 100644 network/misc/florb/files/no_build_about_resources.patch create mode 100644 network/misc/florb/files/support_building_with_cmake.patch create mode 100644 network/misc/florb/pspec.xml diff --git a/network/misc/florb/actions.py b/network/misc/florb/actions.py new file mode 100644 index 0000000000..c987000b27 --- /dev/null +++ b/network/misc/florb/actions.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file https://www.gnu.org/licenses/gpl-3.0.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import cmaketools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +j = "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr -L \ + " + +def setup(): + pisitools.flags.add("-pthread -lXpm") + pisitools.unlinkDir("src/i18n/de_DE") + shelltools.makedirs("build") + shelltools.cd("build") + cmaketools.configure(j, sourceDir = '..') + +def build(): + shelltools.cd("build") + cmaketools.make() + +def install(): + pisitools.dobin("build/src/florb") + pisitools.dopixmaps("src/res/florb.png") + shelltools.chmod("src/res/florb.svg", mode = 0644) + pisitools.insinto("/usr/share/icons/hicolor/scalable/apps", "src/res/florb.svg") + +# pisitools.dodoc("LICENSE.txt", "README.txt") + diff --git a/network/misc/florb/files/allow_startup_with_missing_config_file.patch b/network/misc/florb/files/allow_startup_with_missing_config_file.patch new file mode 100644 index 0000000000..8d6cf1f48b --- /dev/null +++ b/network/misc/florb/files/allow_startup_with_missing_config_file.patch @@ -0,0 +1,31 @@ +From ab015e4f1c31bd9769b0b7c8b447ff0c9c680e2c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Claes=20N=C3=A4st=C3=A9n?= +Date: Mon, 31 Aug 2020 21:49:57 +0200 +Subject: [PATCH] Allow startup with missing config file + +Initial startup without a config file fails with a yaml-cpp exception, +use an empty node instead of crashing. +--- + src/settings.cpp | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/settings.cpp b/src/settings.cpp +index 1a8e679..a1d93d2 100644 +--- a/src/settings.cpp ++++ b/src/settings.cpp +@@ -7,7 +7,14 @@ florb::settings::settings() + m_cfgfile = florb::utils::appdir() + florb::utils::pathsep() + "config"; + florb::utils::mkdir(florb::utils::appdir()); + +- m_rootnode = YAML::LoadFile(m_cfgfile); ++ if (florb::utils::exists(m_cfgfile)) ++ { ++ m_rootnode = YAML::LoadFile(m_cfgfile); ++ } ++ else ++ { ++ m_rootnode = YAML::Node(); ++ } + defaults(m_cfgfile); + } + diff --git a/network/misc/florb/files/florb.desktop.in b/network/misc/florb/files/florb.desktop.in new file mode 100644 index 0000000000..aeca008307 --- /dev/null +++ b/network/misc/florb/files/florb.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Icon=florb +NoDisplay=false +Exec=florb +Name=florb +GenericName=A simple map viewer and GPX editor +Comment=florb is a really simple map viewer and GPX editor written in C++ using the FLTK UI toolkit +Categories=Network;Maps; diff --git a/network/misc/florb/files/no_build_about_resources.patch b/network/misc/florb/files/no_build_about_resources.patch new file mode 100644 index 0000000000..2f0f20a344 --- /dev/null +++ b/network/misc/florb/files/no_build_about_resources.patch @@ -0,0 +1,130 @@ +--- a/src/dlg_ui_ex.cpp 2019-07-16 16:54:55.000000000 +0000 ++++ b/src/dlg_ui_ex.cpp 2020-12-19 18:28:04.920908321 +0000 +@@ -13,16 +13,16 @@ + #include "fluid/dlg_ui.hpp" + #include "version.hpp" + +-extern "C" +-{ +- extern char _binary_LICENSE_res_start; +- extern char _binary_LICENSE_res_end; +- extern char _binary_LICENSE_res_size; +- +- extern char _binary_KEYS_res_start; +- extern char _binary_KEYS_res_end; +- extern char _binary_KEYS_res_size; +-} ++//extern "C" ++//{ ++// extern char _binary_LICENSE_res_start; ++// extern char _binary_LICENSE_res_end; ++// extern char _binary_LICENSE_res_size; ++ ++// extern char _binary_KEYS_res_start; ++// extern char _binary_KEYS_res_end; ++// extern char _binary_KEYS_res_size; ++//} + + static dlg_ui *ui; + +@@ -188,8 +188,8 @@ + m_menuitem_gpsd_lockcursor->label(_("Lock to cursor")); + // Help + m_menuitem_help->label(_("Help")); +- m_menuitem_help_about->label(_("About")); +- m_menuitem_help_usage->label(_("Usage")); ++// m_menuitem_help_about->label(_("About")); ++// m_menuitem_help_usage->label(_("Usage")); + + // Populate the Basemap selector + update_choice_map_ex(); +@@ -492,38 +492,38 @@ + m_dlg_search->show(); + } + +-void dlg_ui::about_ex() +-{ ++//void dlg_ui::about_ex() ++//{ + // Show about dialog +- if (!m_dlg_txtdisp) +- m_dlg_txtdisp = new dlg_txtdisp; +- +- std::string v(std::string(_("Version: ")) + std::string(FLORB_PROGSTR)); +- std::string l(&_binary_LICENSE_res_start, (size_t)&_binary_LICENSE_res_size); +- +- m_dlg_txtdisp->title(_("About / License")); +- m_dlg_txtdisp->clear(); +- m_dlg_txtdisp->append(v); +- m_dlg_txtdisp->append("\n\n"); +- m_dlg_txtdisp->append(florb::utils::str_split(l, "\n\n"), "\n\n", true); +- +- m_dlg_txtdisp->show(); +-} +-void dlg_ui::usage_ex() +-{ ++// if (!m_dlg_txtdisp) ++// m_dlg_txtdisp = new dlg_txtdisp; ++// ++// std::string v(std::string(_("Version: ")) + std::string(FLORB_PROGSTR)); ++// std::string l(&_binary_LICENSE_res_start, (size_t)&_binary_LICENSE_res_size); ++// ++// m_dlg_txtdisp->title(_("About / License")); ++// m_dlg_txtdisp->clear(); ++// m_dlg_txtdisp->append(v); ++// m_dlg_txtdisp->append("\n\n"); ++// m_dlg_txtdisp->append(florb::utils::str_split(l, "\n\n"), "\n\n", true); ++// ++// m_dlg_txtdisp->show(); ++//} ++//void dlg_ui::usage_ex() ++//{ + // Show about dialog +- if (!m_dlg_txtdisp) +- m_dlg_txtdisp = new dlg_txtdisp; +- +- std::string u(&_binary_KEYS_res_start, (size_t)&_binary_KEYS_res_size); +- +- m_dlg_txtdisp->title(_("Usage")); +- m_dlg_txtdisp->clear(); +- m_dlg_txtdisp->append(florb::utils::str_split(u, "\n\n"), "\n\n", true); +- +- m_dlg_txtdisp->show(); +-} +- ++// if (!m_dlg_txtdisp) ++// m_dlg_txtdisp = new dlg_txtdisp; ++// ++// std::string u(&_binary_KEYS_res_start, (size_t)&_binary_KEYS_res_size); ++// ++// m_dlg_txtdisp->title(_("Usage")); ++// m_dlg_txtdisp->clear(); ++// m_dlg_txtdisp->append(florb::utils::str_split(u, "\n\n"), "\n\n", true); ++// ++// m_dlg_txtdisp->show(); ++//} ++// + + void dlg_ui::cb_btn_loadtrack_ex(Fl_Widget *widget) + { +@@ -709,13 +709,13 @@ + } + + // Help submenu +- else if (mit == m_menuitem_help_about) { +- about_ex(); +- } +- else if (mit == m_menuitem_help_usage) { +- usage_ex(); +- } +- ++// else if (mit == m_menuitem_help_about) { ++// about_ex(); ++// } ++// else if (mit == m_menuitem_help_usage) { ++// usage_ex(); ++// } ++// + m_wgtmap->take_focus(); + } + diff --git a/network/misc/florb/files/support_building_with_cmake.patch b/network/misc/florb/files/support_building_with_cmake.patch new file mode 100644 index 0000000000..3089e56196 --- /dev/null +++ b/network/misc/florb/files/support_building_with_cmake.patch @@ -0,0 +1,613 @@ +From cb0eb27e06d93f315f8cea8b7657b6cae58226a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Claes=20N=C3=A4st=C3=A9n?= +Date: Wed, 2 Sep 2020 08:29:56 +0200 +Subject: [PATCH] Support building with CMake + +Preparing for OS X support with a build system that is available in +homebrew and helps with abstracting platform differences. +Correct link libararies are missing and missing resource compilation. + +libgps not supported at all on Windows (if such a port is to be +made in the future) and unavailable in homebrew. Allow compilation +without it as florb is very usable without it. +--- + CMake/config.h.in | 6 ++ + CMakeLists.txt | 36 +++++++++ + src/CMakeLists.txt | 100 +++++++++++++++++++++++++ + src/OMakefile | 19 ++--- + src/dlg_bulkdl_ex.cpp | 2 +- + src/dlg_editselection_ex.cpp | 2 +- + src/dlg_eleprofile_ex.cpp | 2 +- + src/dlg_garmindl_ex.cpp | 2 +- + src/dlg_garminul_ex.cpp | 2 +- + src/dlg_search_ex.cpp | 2 +- + src/dlg_settings_ex.cpp | 14 +++- + src/dlg_tileserver_ex.cpp | 2 +- + src/dlg_txtdisp_ex.cpp | 2 +- + src/dlg_ui_ex.cpp | 6 +- + src/fluid/dlg_ui.fl | 20 ++--- + src/gpsdclient.cpp | 7 +- + src/gpsdclient.hpp | 6 ++ + src/i18n/CMakeLists.txt | 1 + + src/i18n/{de_DE/florb.po => de_DE.po} | 0 + src/i18n/de_DE/florb.mo | Bin 10279 -> 0 bytes + src/mkversionhpp.sh | 25 +++++-- + src/res/audio-input-microphone-ina.png | Bin 0 -> 1315 bytes + src/utils.cpp | 2 + + 23 files changed, 217 insertions(+), 41 deletions(-) + create mode 100644 CMake/config.h.in + create mode 100644 CMakeLists.txt + create mode 100644 src/CMakeLists.txt + create mode 100644 src/i18n/CMakeLists.txt + rename src/i18n/{de_DE/florb.po => de_DE.po} (100%) + delete mode 100644 src/i18n/de_DE/florb.mo + create mode 100644 src/res/audio-input-microphone-ina.png + +diff --git a/CMake/config.h.in b/CMake/config.h.in +new file mode 100644 +index 0000000..eb28c3f +--- /dev/null ++++ b/CMake/config.h.in +@@ -0,0 +1,6 @@ ++#ifndef _CONFIG_H_ ++#define _CONFIG_H_ ++ ++#cmakedefine HAVE_LIBGPS ++ ++#endif // _CONFIG_H_ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..39afa50 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,36 @@ ++cmake_minimum_required(VERSION 3.10) ++ ++project(florb) ++ ++set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD_REQUIRED ON) ++ ++set(OpenGL_GL_PREFERENCE GLVND) ++ ++include(FindPkgConfig) ++ ++find_package(Boost REQUIRED COMPONENTS system filesystem thread) ++find_package(CURL REQUIRED) ++find_package(FLTK REQUIRED) ++find_package(Gettext REQUIRED) ++find_package(Intl REQUIRED) ++find_package(TinyXML2) ++if (TinyXML2_FOUND) ++ set(TinyXML2_LIBRARIES tinyxml2::tinyxml2) ++else (Tinyxml2_FOUND) ++ pkg_check_modules(TinyXML2 REQUIRED tinyxml2) ++endif (NOT TinyXML2_FOUND) ++find_package(yaml-cpp REQUIRED) ++ ++# optional packages ++find_package(libgps) ++if (libgps_FOUND) ++ set(HAVE_LIBGPS 1) ++else (libgps_FOUND) ++ pkg_check_modules(libgps libgps) ++ if (libgps_FOUND) ++ set(HAVE_LIBGPS 1) ++ endif (libgps_FOUND) ++endif (libgps_FOUND) ++ ++add_subdirectory(src) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +new file mode 100644 +index 0000000..21ea513 +--- /dev/null ++++ b/src/CMakeLists.txt +@@ -0,0 +1,100 @@ ++set(CMAKE_EXPORT_COMPILE_COMMANDS ON) ++ ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLOCALEDIR=\\\"${CMAKE_INSTALL_PREFIX}/share/local\\\"") ++ ++configure_file(${CMAKE_SOURCE_DIR}/CMake/config.h.in ++ ${CMAKE_CURRENT_BINARY_DIR}/config.h) ++ ++add_custom_target(version ALL) ++ ++add_custom_command(TARGET version ++ PRE_BUILD ++ COMMAND ${CMAKE_SOURCE_DIR}/src/mkversionhpp.sh ++ COMMENT "Generating version.hpp") ++ ++set(Ui_FLUID ++ fluid/dlg_bulkdl.fl ++ fluid/dlg_editselection.fl ++ fluid/dlg_eleprofile.fl ++ fluid/dlg_garmindl.fl ++ fluid/dlg_garminul.fl ++ fluid/dlg_search.fl ++ fluid/dlg_settings.fl ++ fluid/dlg_tileserver.fl ++ fluid/dlg_txtdisp.fl ++ fluid/dlg_ui.fl) ++ ++set(Ui_SOURCES ++ dlg_bulkdl_ex.cpp ++ dlg_editselection_ex.cpp ++ dlg_eleprofile_ex.cpp ++ dlg_garmindl_ex.cpp ++ dlg_garminul_ex.cpp ++ dlg_search_ex.cpp ++ dlg_settings_ex.cpp ++ dlg_tileserver_ex.cpp ++ dlg_txtdisp_ex.cpp ++ dlg_ui_ex.cpp) ++ ++set(Ui_INCLUDE_DIRS ++ ${PROJECT_SOURCE_DIR}/src ++ ${Boost_INCLUDE_DIRS} ++ ${CURL_INCLUDE_DIRS} ++ ${FLTK_INCLUDE_DIRS} ++ ${Intl_INCLUDE_DIRS} ++ ${TinyXML2_INCLUDE_DIRS}) ++ ++fltk_wrap_ui(Ui ${Ui_FLUID}) ++add_library(Ui ${Ui_SOURCES} ${Ui_FLTK_UI_SRCS}) ++add_dependencies(Ui version) ++target_include_directories(Ui PUBLIC ${Ui_INCLUDE_DIRS}) ++ ++set(florb_SOURCES ++ areaselectlayer.cpp ++ cache.cpp ++ downloader.cpp ++ event.cpp ++ gfx.cpp ++ gpsdclient.cpp ++ gpsdlayer.cpp ++ layer.cpp ++ markerlayer.cpp ++ osmlayer.cpp ++ scalelayer.cpp ++ settings.cpp ++ shell.cpp ++ tracklayer.cpp ++ unit.cpp ++ utils.cpp ++ viewport.cpp ++ wgt_eleprofile.cpp ++ wgt_map.cpp) ++ ++set(florb_INCLUDE_DIRS ++ ${Boost_INCLUDE_DIRS} ++ ${CURL_INCLUDE_DIRS} ++ ${FLTK_INCLUDE_DIRS} ++ ${Intl_INCLUDE_DIRS} ++ ${TinyXML2_INCLUDE_DIRS}) ++ ++add_executable(florb ${florb_SOURCES}) ++add_dependencies(florb Ui version) ++ ++target_include_directories(florb PUBLIC ${florb_INCLUDE_DIRS}) ++ ++link_directories(florb PRIVATE ++ ${Boost_LIBRARY_DIRS} ++ ${CURL_LIBRARY_DIRS}) ++ ++target_link_libraries(florb PRIVATE Ui) ++target_link_libraries(florb PRIVATE ${FLTK_LIBRARIES}) ++target_link_libraries(florb PRIVATE ${Boost_LIBRARIES}) ++target_link_libraries(florb PRIVATE ${TinyXML2_LIBRARIES}) ++target_link_libraries(florb PRIVATE yaml-cpp) ++target_link_libraries(florb PRIVATE ${CURL_LIBRARIES}) ++target_link_libraries(florb PRIVATE ${Intl_LIBRARIES}) ++target_link_libraries(florb PRIVATE ${libgps_LIBRARIES}) ++ ++add_subdirectory(i18n) ++ ++install(TARGETS florb DESTINATION bin) +diff --git a/src/OMakefile b/src/OMakefile +index 8eb6ede..7fa8a13 100644 +--- a/src/OMakefile ++++ b/src/OMakefile +@@ -59,10 +59,7 @@ OBJS_CPP = $(rootname $(find . -name *.cpp)) + OBJS_RES = $(rootname $(find . -name *.res)) + OBJS = $(set $(OBJS_FLUID) $(OBJS_CPP) $(OBJS_RES)) + +-# Find all translations +-TRANSLATIONS = +- foreach(d => ..., $(find ./i18n/ -regex [a-z]{2\,2}_[A-Z]{2\,2})) +- value $(d) ++TRANSLATIONS[] += de_DE + + # (Re-)generate version string (version.hpp) from repository information if present + version.hpp: :exists: ../.git/HEAD :exists: ../.git/index gittags.txt :value: $(shell ./gittags.sh) version.txt ./mkversionhpp.sh +@@ -70,7 +67,7 @@ version.hpp: :exists: ../.git/HEAD :exists: ../.git/index gittags.txt :value: $( + + # Rule for generating CPP code from fluid sources + %.cpp: %.fl +- fluid -c -o $@ -h $(replacesuffixes .cpp, .hpp, $@) $< ++ fluid -c -o $@ -h $(replacesuffixes .cpp, .h, $@) $< + + # Rule for generating binary resources + %.o: %.res +@@ -97,7 +94,7 @@ install: + #install ../LICENSE.txt $(RESOURCEDIR) + foreach(t => ..., $(basename $(TRANSLATIONS))) + mkdir -p $(LOCALEDIR)/$(t)/LC_MESSAGES/ +- install ./i18n/$(t)/florb.mo $(LOCALEDIR)/$(t)/LC_MESSAGES/ ++ install ./i18n/$(t).mo $(LOCALEDIR)/$(t)/LC_MESSAGES/ + + # clean target + clean: +@@ -110,12 +107,12 @@ i18nupdate: + txt2po -P -i $(t) -o $(t).pot + msgcat -o i18n/all.pot $(addsuffix .res.pot, $(OBJS_RES)) i18n/$(PROGRAM).pot + foreach(t => ..., $(basename $(TRANSLATIONS))) +- if $(file-exists ./i18n/$(t)/$(PROGRAM).po) +- msgmerge -U ./i18n/$(t)/$(PROGRAM).po i18n/all.pot ++ if $(file-exists ./i18n/$(t).po) ++ msgmerge -U ./i18n/$(t).po i18n/all.pot + else +- msginit --no-translator -l $(t).utf8 -o ./i18n/$(t)/$(PROGRAM).po -i i18n/all.pot +- ++ msginit --no-translator -l $(t).utf8 -o ./i18n/$(t).po -i i18n/all.pot ++ + # compile translations + i18ncompile: + foreach(t => ..., $(basename $(TRANSLATIONS))) +- msgfmt -c -o ./i18n/$(t)/florb.mo ./i18n/$(t)/$(PROGRAM).po ++ msgfmt -c -o ./i18n/$(t).mo ./i18n/$(t).po +diff --git a/src/dlg_bulkdl_ex.cpp b/src/dlg_bulkdl_ex.cpp +index e60fbf1..b02e1cc 100644 +--- a/src/dlg_bulkdl_ex.cpp ++++ b/src/dlg_bulkdl_ex.cpp +@@ -4,7 +4,7 @@ + #include + #include "settings.hpp" + #include "utils.hpp" +-#include "fluid/dlg_bulkdl.hpp" ++#include "dlg_bulkdl.h" + + void dlg_bulkdl::create_ex() + { +diff --git a/src/dlg_editselection_ex.cpp b/src/dlg_editselection_ex.cpp +index 8ee9902..75b2d47 100644 +--- a/src/dlg_editselection_ex.cpp ++++ b/src/dlg_editselection_ex.cpp +@@ -1,7 +1,7 @@ + #include + #include "settings.hpp" + #include "unit.hpp" +-#include "fluid/dlg_editselection.hpp" ++#include "dlg_editselection.h" + + void dlg_editselection::create_ex() + { +diff --git a/src/dlg_eleprofile_ex.cpp b/src/dlg_eleprofile_ex.cpp +index 12971e8..7c485e0 100644 +--- a/src/dlg_eleprofile_ex.cpp ++++ b/src/dlg_eleprofile_ex.cpp +@@ -1,6 +1,6 @@ + #include "utils.hpp" + #include "unit.hpp" +-#include "fluid/dlg_eleprofile.hpp" ++#include "dlg_eleprofile.h" + + void dlg_eleprofile::create_ex() + { +diff --git a/src/dlg_garmindl_ex.cpp b/src/dlg_garmindl_ex.cpp +index a898bdd..8357b5d 100644 +--- a/src/dlg_garmindl_ex.cpp ++++ b/src/dlg_garmindl_ex.cpp +@@ -3,7 +3,7 @@ + #include + #include "utils.hpp" + #include "shell.hpp" +-#include "fluid/dlg_garmindl.hpp" ++#include "dlg_garmindl.h" + + void dlg_garmindl::create_ex() + { +diff --git a/src/dlg_garminul_ex.cpp b/src/dlg_garminul_ex.cpp +index 1d05341..4bed5ac 100644 +--- a/src/dlg_garminul_ex.cpp ++++ b/src/dlg_garminul_ex.cpp +@@ -3,7 +3,7 @@ + #include + #include "utils.hpp" + #include "shell.hpp" +-#include "fluid/dlg_garminul.hpp" ++#include "dlg_garminul.h" + + void dlg_garminul::create_ex() + { +diff --git a/src/dlg_search_ex.cpp b/src/dlg_search_ex.cpp +index 6e00773..907c86a 100644 +--- a/src/dlg_search_ex.cpp ++++ b/src/dlg_search_ex.cpp +@@ -4,7 +4,7 @@ + #include + #include + #include "utils.hpp" +-#include "fluid/dlg_search.hpp" ++#include "dlg_search.h" + + void dlg_search::create_ex() + { +diff --git a/src/dlg_settings_ex.cpp b/src/dlg_settings_ex.cpp +index 5dca6ce..2b740be 100644 +--- a/src/dlg_settings_ex.cpp ++++ b/src/dlg_settings_ex.cpp +@@ -1,3 +1,5 @@ ++#include "config.h" ++ + #include + #include + #include +@@ -5,8 +7,8 @@ + #include "settings.hpp" + #include "utils.hpp" + #include "unit.hpp" +-#include "fluid/dlg_settings.hpp" +-#include "fluid/dlg_tileserver.hpp" ++#include "dlg_settings.h" ++#include "dlg_tileserver.h" + + void dlg_settings::create_ex() + { +@@ -231,7 +233,13 @@ void dlg_settings::tab_gpsd_setup_ex() + m_input_server->value(m_cfggpsd.host().c_str()); + m_input_port->value(m_cfggpsd.port().c_str()); + +- bool en = m_cfggpsd.enabled(); ++ bool en; ++#ifdef HAVE_LIBGPS ++ en = m_cfggpsd.enabled(); ++#else // ! HAVE_LIBGPS ++ en = false; ++ m_chkbtn_enable->deactivate(); ++#endif // HAVE_LIBGPS + + if (en) + { +diff --git a/src/dlg_tileserver_ex.cpp b/src/dlg_tileserver_ex.cpp +index 003c3e5..b398193 100644 +--- a/src/dlg_tileserver_ex.cpp ++++ b/src/dlg_tileserver_ex.cpp +@@ -1,6 +1,6 @@ + #include "settings.hpp" + #include "utils.hpp" +-#include "fluid/dlg_tileserver.hpp" ++#include "dlg_tileserver.h" + #include + + void dlg_tileserver::create_ex() +diff --git a/src/dlg_txtdisp_ex.cpp b/src/dlg_txtdisp_ex.cpp +index c500cbd..d3f28d9 100644 +--- a/src/dlg_txtdisp_ex.cpp ++++ b/src/dlg_txtdisp_ex.cpp +@@ -3,7 +3,7 @@ + #include + #include + #include "utils.hpp" +-#include "fluid/dlg_txtdisp.hpp" ++#include "dlg_txtdisp.h" + + void dlg_txtdisp::create_ex() + { +diff --git a/src/dlg_ui_ex.cpp b/src/dlg_ui_ex.cpp +index ff2967b..6461b83 100644 +--- a/src/dlg_ui_ex.cpp ++++ b/src/dlg_ui_ex.cpp +@@ -10,7 +10,7 @@ + #include "gpsdclient.hpp" + #include "utils.hpp" + #include "unit.hpp" +-#include "fluid/dlg_ui.hpp" ++#include "dlg_ui.h" + #include "version.hpp" + + extern "C" +@@ -186,6 +186,10 @@ void dlg_ui::create_ex(void) + m_menuitem_gpsd_gotocursor->label(_("Go to cursor")); + m_menuitem_gpsd_recordtrack->label(_("Record track")); + m_menuitem_gpsd_lockcursor->label(_("Lock to cursor")); ++#ifndef HAVE_LIBGPS ++ m_menuitem_gpsd->deactivate(); ++ m_btn_recordtrack->deactivate(); ++#endif // HAVE_LIBGPS + // Help + m_menuitem_help->label(_("Help")); + m_menuitem_help_about->label(_("About")); +diff --git a/src/fluid/dlg_ui.fl b/src/fluid/dlg_ui.fl +index 80e4b20..2aedbfd 100644 +--- a/src/fluid/dlg_ui.fl ++++ b/src/fluid/dlg_ui.fl +@@ -11,7 +11,7 @@ decl {\#include } {private global + decl {\#include } {private global + } + +-decl {\#include "dlg_ui.hpp"} {private global ++decl {\#include "dlg_ui.h"} {private global + } + + decl {\#include "wgt_map.hpp"} {public global +@@ -20,28 +20,28 @@ decl {\#include "wgt_map.hpp"} {public global + decl {\#include "event.hpp"} {public global + } + +-decl {\#include "dlg_search.hpp"} {public global ++decl {\#include "dlg_search.h"} {public global + } + +-decl {\#include "dlg_garminul.hpp"} {public global ++decl {\#include "dlg_garminul.h"} {public global + } + +-decl {\#include "dlg_garmindl.hpp"} {public global ++decl {\#include "dlg_garmindl.h"} {public global + } + +-decl {\#include "dlg_editselection.hpp"} {public global ++decl {\#include "dlg_editselection.h"} {public global + } + +-decl {\#include "dlg_settings.hpp"} {public global ++decl {\#include "dlg_settings.h"} {public global + } + +-decl {\#include "dlg_txtdisp.hpp"} {public global ++decl {\#include "dlg_txtdisp.h"} {public global + } + +-decl {\#include "dlg_bulkdl.hpp"} {public global ++decl {\#include "dlg_bulkdl.h"} {public global + } + +-decl {\#include "dlg_eleprofile.hpp"} {public global ++decl {\#include "dlg_eleprofile.h"} {public global + } + + decl {int main_ex(int argc, char* argv[]);} {private global +@@ -396,7 +396,7 @@ ui->cb_choice_overlay_ex(widget);} {} + Fl_Button m_btn_recordtrack { + user_data this + callback cb_btn_recordtrack +- private tooltip {Record track} image {../res/audio-input-microphone.png} xywh {229 29 25 25} type Toggle box NO_BOX down_box THIN_DOWN_BOX ++ private tooltip {Record track} image {../res/audio-input-microphone.png} deimage {../res/audio-input-microphone-ina.png} xywh {229 29 25 25} type Toggle box NO_BOX down_box THIN_DOWN_BOX + } + Fl_Box {} { + private xywh {254 29 5 25} box FLAT_BOX +diff --git a/src/gpsdclient.cpp b/src/gpsdclient.cpp +index 3dd542e..f975457 100644 +--- a/src/gpsdclient.cpp ++++ b/src/gpsdclient.cpp +@@ -1,3 +1,5 @@ ++#include "config.h" ++ + #include "gpsdclient.hpp" + #include "utils.hpp" + +@@ -141,6 +143,7 @@ void florb::gpsdclient::fire_event_gpsd(void) + + void florb::gpsdclient::worker(void) + { ++#ifdef HAVE_LIBGPS + int rc; + for (;;) + { +@@ -200,6 +203,7 @@ void florb::gpsdclient::worker(void) + gps_stream(&m_gpsdata, WATCH_DISABLE, NULL); + gps_close(&m_gpsdata); + } ++#endif // HAVE_LIBGPS + + // Update connection status + connected(false); +@@ -209,6 +213,7 @@ void florb::gpsdclient::worker(void) + bool florb::gpsdclient::handle_set() + { + bool ret = false; ++#ifdef HAVE_LIBGPS + + for (;;) { + +@@ -255,7 +260,7 @@ bool florb::gpsdclient::handle_set() + + break; + } +- ++#endif // HAVE_LIBGPS + return ret; + } + +diff --git a/src/gpsdclient.hpp b/src/gpsdclient.hpp +index 1256ca4..1d2cf6a 100644 +--- a/src/gpsdclient.hpp ++++ b/src/gpsdclient.hpp +@@ -1,10 +1,14 @@ + #ifndef GPSDCLIENT_HPP + #define GPSDCLIENT_HPP + ++#include "config.h" ++ + #include + #include + #include ++#ifdef HAVE_LIBGPS + #include ++#endif // HAVE_LIBGPS + #include "event.hpp" + #include "point.hpp" + +@@ -43,7 +47,9 @@ namespace florb + + void fire_event_gpsd(void); + ++#ifdef HAVE_LIBGPS + struct gps_data_t m_gpsdata; ++#endif // HAVE_LIBGPS + boost::interprocess::interprocess_mutex m_mutex; + + std::string m_host; +diff --git a/src/i18n/CMakeLists.txt b/src/i18n/CMakeLists.txt +new file mode 100644 +index 0000000..673bffe +--- /dev/null ++++ b/src/i18n/CMakeLists.txt +@@ -0,0 +1 @@ ++gettext_create_translations(florb.pot ALL de_DE.po) +diff --git a/src/i18n/de_DE/florb.po b/src/i18n/de_DE.po +similarity index 100% +rename from src/i18n/de_DE/florb.po +rename to src/i18n/de_DE.po +diff --git a/src/mkversionhpp.sh b/src/mkversionhpp.sh +index 3562cd1..6a8f81c 100755 +--- a/src/mkversionhpp.sh ++++ b/src/mkversionhpp.sh +@@ -1,7 +1,11 @@ + #!/bin/sh + + # Default version if we can't take it from git +-FLORB_V="v1.0" ++if [ -e version.txt ]; then ++ FLORB_V=`cat version.txt` ++else ++ FLORB_V="v1.0" ++fi + + # Check whether we have git installed, and do nothing if not + which git > /dev/null 2>&1 +@@ -21,11 +25,18 @@ if [ $? -eq 0 ]; then + + fi + +-echo "#ifndef VERSION_HPP" > version.hpp +-echo "#define VERSION_HPP" >> version.hpp ++echo "#ifndef VERSION_HPP" > version.hpp.tmp ++echo "#define VERSION_HPP" >> version.hpp.tmp ++ ++echo "#define FLORB_VERSION \"$FLORB_V\"" >> version.hpp.tmp ++echo "#define FLORB_PROGSTR \"florb $FLORB_V\"" >> version.hpp.tmp ++echo "#define FLORB_USERAGENT \"florb/$FLORB_V\"" >> version.hpp.tmp + +-echo "#define FLORB_VERSION \"$FLORB_V\"" >> version.hpp +-echo "#define FLORB_PROGSTR \"florb $FLORB_V\"" >> version.hpp +-echo "#define FLORB_USERAGENT \"florb/$FLORB_V\"" >> version.hpp ++echo "#endif //VERSION_HPP" >> version.hpp.tmp + +-echo "#endif //VERSION_HPP" >> version.hpp ++diff version.hpp.tmp version.hpp >/dev/null 2>&1 ++if [ $? -eq 0 ]; then ++ rm version.hpp.tmp ++else ++ mv version.hpp.tmp version.hpp ++fi +diff --git a/src/utils.cpp b/src/utils.cpp +index aa5f9cc..3e631c4 100644 +--- a/src/utils.cpp ++++ b/src/utils.cpp +@@ -1,3 +1,5 @@ ++#include "config.h" ++ + #include + #include + #include diff --git a/network/misc/florb/pspec.xml b/network/misc/florb/pspec.xml new file mode 100644 index 0000000000..44b6a9ac3f --- /dev/null +++ b/network/misc/florb/pspec.xml @@ -0,0 +1,76 @@ + + + + + florb + http://florb.shugaa.de/ + + fury + wascheme@tuta.io + + MIT + app:gui + network.misc + A simple map viewer and GPX editor. + + florb is a really simple map viewer and GPX editor written in C++ using the FLTK UI toolkit. florb makes it easy to create and edit tracks for planning short and extended trips into the wild green. Or anywhere else for that matter. + + + https://github.com/shugaa/florb/archive/85d2be7d851f83db8a289fd2018832aec295d526.zip + + + https://github.com/pekdon/florb/raw/cmake_support/src/res/audio-input-microphone-ina.png + + + cmake + yaml-cpp + curl-devel + mesa-devel + fltk-devel + gpsd-devel + boost-devel + libX11-devel + libXpm-devel + libXres-devel + tinyxml2-devel + libxkbfile-devel + libxkbcommon-devel + + + support_building_with_cmake.patch + allow_startup_with_missing_config_file.patch + no_build_about_resources.patch + + + + + florb + + fltk + curl + gpsd + libgcc + tinyxml2 + + + /usr/bin + /usr/share + + + + + florb.desktop.in + + + + + + 2020-12-19 + 1.1 + First build from git (include patches from @pekdon). + fury + wascheme@tuta.io + + + +