Subject: [PATCH 1/1] gnu: Add marble-qt.

From: Wiktor Żelazny <[email-masked]>
Date: Wed, 14 Jul 2021 19:55:52 +0200

* gnu/packages/patches/marble-qt-add-qt-headers.patch: New patch.
* gnu/packages/geo.scm (marble-qt): New variable.
---
 gnu/packages/geo.scm                          |  42 +++-
 .../patches/marble-qt-add-qt-headers.patch    | 189 ++++++++++++++++++
 2 files changed, 230 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/marble-qt-add-qt-headers.patch

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 37be78edbf..37596d35b9 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018, 2019, 2020 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <[email-masked]>
-;;; Copyright © 2019 Wiktor Żelazny <[email-masked]>
+;;; Copyright © 2019, 2021 Wiktor Żelazny <[email-masked]>
 ;;; Copyright © 2019, 2020 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2020 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020 Christopher Baines <[email-masked]>
@@ -2414,3 +2414,43 @@ web services.  @code{geopy} makes it easy for Python developers to locate the
 coordinates of addresses, cities, countries, and landmarks across the globe
 using third-party geocoders and other data sources.")
     (license license:expat)))
+
+(define-public marble-qt
+  (let ((release "17.08")
+        (commit "fc7166eeef784732033c999ba605364f9c82d21c")
+        (revision "1"))
+    (package
+      (name "marble-qt")
+      (version (git-version release revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://anongit.kde.org/marble")
+               (commit commit)))
+         (sha256
+          (base32
+           "0m0sf3sddaib7vc5lhbmh7ziw07p1hahg02f65sgfylyl5f5kj92"))
+         (patches (search-patches
+                   "marble-qt-add-qt-headers.patch"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f ; libmarblewidget-qt5.so.28 not found
+         #:configure-flags
+         '("-DCMAKE_BUILD_TYPE=Release"
+           "-DWITH_KF5=FALSE")))
+      (native-inputs
+       `(("qttools" ,qttools)))
+      (inputs
+       `(("qtbase" ,qtbase-5)
+         ("qtsvg" ,qtsvg)
+         ("qtdeclarative" ,qtdeclarative)
+         ("qtwebkit" ,qtwebkit)
+         ("qtlocation" ,qtlocation)))
+      (home-page "https://marble.kde.org/")
+      (synopsis "Virtual globe and world atlas")
+      (description "Marble is similar to a desktop globe.  At closer scale it
+becomes a world atlas, while OpenStreetMap takes the user to street level.  It
+supports searching for places of interest, viewing Wikipedia articles, creating
+routes by drag and drop and more.")
+      (license license:gpl3))))
diff --git a/gnu/packages/patches/marble-qt-add-qt-headers.patch b/gnu/packages/patches/marble-qt-add-qt-headers.patch
new file mode 100644
index 0000000000..77c58317ad
--- /dev/null
+++ b/gnu/packages/patches/marble-qt-add-qt-headers.patch
@@ -0,0 +1,189 @@
+Adapted from Debian: https://salsa.debian.org/qt-kde-team/kde/marble/-/blob/debian/4%2517.08.3-3.1/debian/patches/qt5.11.patch
+Upstream status: Probably irrelevant, as this is an old version of this software.
+
+diff --git a/src/lib/marble/MergedLayerDecorator.cpp b/src/lib/marble/MergedLayerDecorator.cpp
+index 40f3ddb..bafff50 100644
+--- a/src/lib/marble/MergedLayerDecorator.cpp
++++ b/src/lib/marble/MergedLayerDecorator.cpp
+@@ -36,6 +36,7 @@
+ 
+ #include <QPointer>
+ #include <QPainter>
++#include <QPainterPath>
+ 
+ using namespace Marble;
+ 
+diff --git a/src/lib/marble/VisiblePlacemark.cpp b/src/lib/marble/VisiblePlacemark.cpp
+index cfe08af..1a84006 100644
+--- a/src/lib/marble/VisiblePlacemark.cpp
++++ b/src/lib/marble/VisiblePlacemark.cpp
+@@ -22,6 +22,7 @@
+ 
+ #include <QApplication>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QPalette>
+ #include <QPixmapCache>
+ 
+diff --git a/src/lib/marble/graphicsview/FrameGraphicsItem.cpp b/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
+index 8a90526..065f245 100644
+--- a/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
++++ b/src/lib/marble/graphicsview/FrameGraphicsItem.cpp
+@@ -18,6 +18,7 @@
+ // Qt
+ #include <QSizeF>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QPixmapCache>
+ #include <QMargins>
+ #include <qdrawutil.h>
+diff --git a/src/lib/marble/layers/GroundLayer.cpp b/src/lib/marble/layers/GroundLayer.cpp
+index 58d409f..df6d226 100644
+--- a/src/lib/marble/layers/GroundLayer.cpp
++++ b/src/lib/marble/layers/GroundLayer.cpp
+@@ -14,6 +14,9 @@
+ #include "ViewportParams.h"
+ #include "RenderState.h"
+ 
++#include <QPainter>
++#include <QPainterPath>
++
+ namespace Marble
+ {
+ 
+diff --git a/src/plugins/render/compass/CompassFloatItem.cpp b/src/plugins/render/compass/CompassFloatItem.cpp
+index d8dc021..66095cc 100644
+--- a/src/plugins/render/compass/CompassFloatItem.cpp
++++ b/src/plugins/render/compass/CompassFloatItem.cpp
+@@ -19,6 +19,7 @@
+ #include <QRect>
+ #include <QColor>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QPushButton>
+ #include <QSvgRenderer>
+ 
+diff --git a/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp b/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
+index a790c16..96f5bed 100644
+--- a/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
++++ b/src/plugins/render/elevationprofilefloatitem/ElevationProfileFloatItem.cpp
+@@ -31,6 +31,7 @@
+ #include <QContextMenuEvent>
+ #include <QRect>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QPushButton>
+ #include <QMenu>
+ #include <QMouseEvent>
+diff --git a/src/plugins/render/foursquare/FoursquareItem.cpp b/src/plugins/render/foursquare/FoursquareItem.cpp
+index d9e1f57..ef80472 100644
+--- a/src/plugins/render/foursquare/FoursquareItem.cpp
++++ b/src/plugins/render/foursquare/FoursquareItem.cpp
+@@ -13,6 +13,8 @@
+ #include "ViewportParams.h"
+ 
+ #include <QFontMetrics>
++#include <QPainter>
++#include <QPainterPath>
+  
+ namespace Marble
+ {
+diff --git a/src/plugins/render/gpsinfo/GpsInfo.cpp b/src/plugins/render/gpsinfo/GpsInfo.cpp
+index 522e907..20fd75a 100644
+--- a/src/plugins/render/gpsinfo/GpsInfo.cpp
++++ b/src/plugins/render/gpsinfo/GpsInfo.cpp
+@@ -21,6 +21,8 @@
+ #include "ViewportParams.h"
+ #include "GeoDataAccuracy.h"
+ 
++#include <QIcon>
++
+ namespace Marble
+ {
+ 
+diff --git a/src/plugins/render/license/License.cpp b/src/plugins/render/license/License.cpp
+index 511dfc0..9436083 100644
+--- a/src/plugins/render/license/License.cpp
++++ b/src/plugins/render/license/License.cpp
+@@ -23,6 +23,7 @@
+ #include <QCommonStyle>
+ #include <QContextMenuEvent>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QLabel>
+ #include <QMenu>
+ #include <QMouseEvent>
+diff --git a/src/plugins/render/notes/NotesItem.cpp b/src/plugins/render/notes/NotesItem.cpp
+index 9d0961f..0c9fe99 100644
+--- a/src/plugins/render/notes/NotesItem.cpp
++++ b/src/plugins/render/notes/NotesItem.cpp
+@@ -9,6 +9,7 @@
+ #include "MarbleDirs.h"
+ 
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QRect>
+ 
+ using namespace Marble;
+diff --git a/src/plugins/render/postalcode/PostalCodeItem.cpp b/src/plugins/render/postalcode/PostalCodeItem.cpp
+index 772c0b2..0ff7957 100644
+--- a/src/plugins/render/postalcode/PostalCodeItem.cpp
++++ b/src/plugins/render/postalcode/PostalCodeItem.cpp
+@@ -17,6 +17,7 @@
+ // Qt
+ #include <QFontMetrics>
+ #include <QPainter>
++#include <QPainterPath>
+ 
+ using namespace Marble;
+ 
+diff --git a/src/plugins/render/progress/ProgressFloatItem.cpp b/src/plugins/render/progress/ProgressFloatItem.cpp
+index a465857..6e2452c 100644
+--- a/src/plugins/render/progress/ProgressFloatItem.cpp
++++ b/src/plugins/render/progress/ProgressFloatItem.cpp
+@@ -22,6 +22,7 @@
+ #include <QColor>
+ #include <QPaintDevice>
+ #include <QPainter>
++#include <QPainterPath>
+ 
+ namespace Marble
+ {
+diff --git a/src/plugins/render/satellites/SatellitesPlugin.cpp b/src/plugins/render/satellites/SatellitesPlugin.cpp
+index 04d8321..0a43d24 100644
+--- a/src/plugins/render/satellites/SatellitesPlugin.cpp
++++ b/src/plugins/render/satellites/SatellitesPlugin.cpp
+@@ -25,6 +25,7 @@
+ 
+ #include "ui_SatellitesConfigDialog.h"
+ 
++#include <QAction>
+ #include <QUrl>
+ #include <QMouseEvent>
+ 
+diff --git a/src/plugins/render/speedometer/Speedometer.cpp b/src/plugins/render/speedometer/Speedometer.cpp
+index 6e9c532..f40a174 100644
+--- a/src/plugins/render/speedometer/Speedometer.cpp
++++ b/src/plugins/render/speedometer/Speedometer.cpp
+@@ -19,6 +19,8 @@
+ #include "MarbleGraphicsGridLayout.h"
+ #include "ViewportParams.h"
+ 
++#include <QIcon>
++
+ namespace Marble
+ {
+ 
+diff --git a/src/plugins/render/stars/StarsPlugin.cpp b/src/plugins/render/stars/StarsPlugin.cpp
+index 6599545..482680f 100644
+--- a/src/plugins/render/stars/StarsPlugin.cpp
++++ b/src/plugins/render/stars/StarsPlugin.cpp
+@@ -19,6 +19,8 @@
+ #include <QContextMenuEvent>
+ #include <QMenu>
+ #include <QColorDialog>
++#include <QPainter>
++#include <QPainterPath>
+ #include <qmath.h>
+ 
+ #include "MarbleClock.h"
-- 
2.32.0