~ruther/guix-local

924b96db0aecc9f0b0bcd21165b5d5ea47199e29 — Mathieu Othacehe 8 years ago 5365596
gnu: gpsbabel: Update to 1.5.4 and fix build.

* gnu/packages/patches/gpsbabel-minizip.patch: New file.
* gnu/packages/patches/gpsbabel-qstring.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/gps.scm (gpsbabel): Update to 1.5.4,
[source]: add two previous patches to fix build,
[snippet]: remove "gpsbabel" directory excursion,
[arguments]: ditto.
M gnu/local.mk => gnu/local.mk +2 -0
@@ 717,6 717,8 @@ dist_patch_DATA =						\
  %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
  %D%/packages/patches/gobject-introspection-cc.patch		\
  %D%/packages/patches/gobject-introspection-girepository.patch	\
  %D%/packages/patches/gpsbabel-minizip.patch     		\
  %D%/packages/patches/gpsbabel-qstring.patch     		\
  %D%/packages/patches/graphite2-ffloat-store.patch		\
  %D%/packages/patches/grep-gnulib-lock.patch                   \
  %D%/packages/patches/grep-timing-sensitive-test.patch		\

M gnu/packages/gps.scm => gnu/packages/gps.scm +10 -12
@@ 25,6 25,7 @@
  #:use-module (guix git-download)
  #:use-module (guix build-system gnu)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages)
  #:use-module (gnu packages base)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages compression)


@@ 38,7 39,7 @@
(define-public gpsbabel
  (package
    (name "gpsbabel")
    (version "1.5.2")
    (version "1.5.4")
    (source (origin
              (method url-fetch)
              ;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so


@@ 48,17 49,21 @@
                    version ".orig.tar.gz"))
              (sha256
               (base32
                "0xf7wmy2m29g2lm8lqc74yf8rf7sxfl3cfwbk7dpf0yf42pb0b6w"))
                "19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l"))
              (patches (search-patches
                        "gpsbabel-minizip.patch"
                        ;; XXX: Remove this patch on the next release.
                        "gpsbabel-qstring.patch"))
              (modules '((guix build utils)))
              (snippet
               '(begin
                  ;; Delete files under GPL-compatible licences but never used
                  ;; on GNU systems, rather than bloating the LICENSE field.
                  (with-directory-excursion "gpsbabel"
                    (delete-file "gui/serial_mac.cc")           ; Apple MIT
                    (delete-file "mingw/include/ddk/hidsdi.h")) ; public domain
                  (delete-file "gui/serial_mac.cc")           ; Apple MIT
                  (delete-file "mingw/include/ddk/hidsdi.h") ; public domain
                  #t))))
    (build-system gnu-build-system)
    ;; TODO: "make doc" requires Docbook & co.
    (arguments
     `(#:configure-flags
       '("--with-zlib=system"


@@ 66,13 71,6 @@
         ;; recent binutils:
         ;; https://codereview.qt-project.org/#/c/111787/
         "CXXFLAGS=-std=gnu++11 -fPIC")
       #:phases
       (modify-phases %standard-phases
        (add-before 'configure 'pre-configure
                    (lambda _
                      (chdir "gpsbabel"))))
                    ;; TODO: "make doc" requires Docbook & co.

       ;; On i686, 'raymarine.test' fails because of a rounding error:
       ;; <http://hydra.gnu.org/build/133040>.  As a workaround, disable tests
       ;; on these platforms.

A gnu/packages/patches/gpsbabel-minizip.patch => gnu/packages/patches/gpsbabel-minizip.patch +13 -0
@@ 0,0 1,13 @@
Patch taken from https://sources.debian.org/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip.

--- a/Makefile.in
+++ b/Makefile.in
@@ -120,7 +120,7 @@ LIBOBJS = queue.o route.o waypt.o filter
 	  src/core/usasciicodec.o\
 	  src/core/ziparchive.o \
 	  $(GARMIN) $(JEEPS) $(SHAPE) @ZLIB@ $(FMTS) $(FILTERS)
-OBJS = main.o globals.o $(LIBOBJS) @FILEINFO@
+OBJS = main.o globals.o $(MINIZIP) $(LIBOBJS) @FILEINFO@
 
 DEPFILES = $(OBJS:.o=.d)
 
\ No newline at end of file

A gnu/packages/patches/gpsbabel-qstring.patch => gnu/packages/patches/gpsbabel-qstring.patch +69 -0
@@ 0,0 1,69 @@
Extracted from following patch of gpsbabel:
https://github.com/gpsbabel/gpsbabel/commit/604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3

From 604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 Mon Sep 17 00:00:00 2001
From: Harel Mazor <harel.mazor@gmail.com>
Date: Tue, 24 Jan 2017 00:35:04 +0200
Subject: [PATCH] Added geojson read capablity, moved magic strings to
 constants, fixed windows compilation issues.

--- a/tef_xml.cc
+++ b/tef_xml.cc
@@ -72,11 +72,11 @@ tef_start(xg_string args, const QXmlStreamAttributes* attrv)
   bool valid = false;
 
   foreach(QXmlStreamAttribute attr, *attrv) {
-    if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) {
-      if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) {
+    if (attr.name().compare(QString("Comment"), Qt::CaseInsensitive) == 0) {
+      if (attr.value().compare(QString("TourExchangeFormat"), Qt::CaseInsensitive) == 0) {
         valid = true;
       }
-    } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("Version"), Qt::CaseInsensitive) == 0) {
       version = attr.value().toString().toDouble();
     }
   }
@@ -95,9 +95,9 @@ tef_header(xg_string args, const QXmlStreamAttributes* attrv)
 {
   route = route_head_alloc();
   foreach(QXmlStreamAttribute attr, *attrv) {
-    if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) {
+    if (attr.name().compare(QString("Name"), Qt::CaseInsensitive) == 0) {
       route->rte_name = attr.value().toString().trimmed();
-    } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("Software"), Qt::CaseInsensitive) == 0) {
       route->rte_desc = attr.value().toString().trimmed();
     }
   }
@@ -248,20 +248,20 @@ tef_item_start(xg_string args, const QXmlStreamAttributes* attrv)
     QString attrstr = attr.value().toString();
     QByteArray attrtext = attrstr.toUtf8();
 
-    if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) {
+    if (attr.name().compare(QString("SegDescription"), Qt::CaseInsensitive) == 0) {
       wpt_tmp->shortname = attrstr.trimmed();
-    } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("PointDescription"), Qt::CaseInsensitive) == 0) {
       wpt_tmp->description = attrstr.trimmed();
-    } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 &&
-               attr.value().compare("true", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("ViaStation"), Qt::CaseInsensitive) == 0 &&
+               attr.value().compare(QString("true"), Qt::CaseInsensitive) == 0) {
       wpt_tmp->wpt_flags.fmt_use = 1;  /* only a flag */
 
       /* new in TEF V2 */
-    } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("Instruction"), Qt::CaseInsensitive) == 0) {
       wpt_tmp->description = attrstr.trimmed();
-    } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("Altitude"), Qt::CaseInsensitive) == 0) {
       wpt_tmp->altitude = attrstr.toDouble();
-    } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) {
+    } else if (attr.name().compare(QString("TimeStamp"), Qt::CaseInsensitive) == 0) {
       /* nothing for the moment */
     }
   }
-- 
2.16.1