aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gps.scm9
-rw-r--r--gnu/packages/patches/gpsbabel-fix-i686-test.patch46
3 files changed, 49 insertions, 7 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 396baae4ab..1151d4642e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1114,6 +1114,7 @@ dist_patch_DATA = \
%D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
+ %D%/packages/patches/gpsbabel-fix-i686-test.patch \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 7ee1fc871d..4fa3bcef19 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -65,6 +65,7 @@
(sha256
(base32
"010g0vd2f5knpq5p7qfnl31kv3r8m5sjdsafcinbj5gh02j2nzpy"))
+ (patches (search-patches "gpsbabel-fix-i686-test.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -80,13 +81,7 @@
;; TODO: "make doc" requires Docbook & co.
(arguments
`(#:configure-flags
- '("--with-zlib=system")
- ;; On i686, 'raymarine.test' fails because of a rounding error:
- ;; <http://hydra.gnu.org/build/133040>. As a workaround, disable tests
- ;; on these platforms.
- ;; FIXME: On x86_64 with -std=gnu++11 tests also fail due to rounding
- ;; error.
- #:tests? #f))
+ '("--with-zlib=system")))
(inputs
`(("expat" ,expat)
("libusb" ,libusb)
diff --git a/gnu/packages/patches/gpsbabel-fix-i686-test.patch b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
new file mode 100644
index 0000000000..5ba0305113
--- /dev/null
+++ b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
@@ -0,0 +1,46 @@
+https://github.com/gpsbabel/gpsbabel/commit/465a74194d53acea5c8d74c5cf3cb2940546ec92.patch
+Can be removed next release
+
+From 465a74194d53acea5c8d74c5cf3cb2940546ec92 Mon Sep 17 00:00:00 2001
+From: tsteven4 <13596209+tsteven4@users.noreply.github.com>
+Date: Fri, 7 Aug 2020 11:29:22 -0600
+Subject: [PATCH] fix i386 regression error with engima. (#620)
+
+this was motivated by the test failure seen at
+https://buildd.debian.org/status/fetch.php?pkg=gpsbabel&arch=i386&ver=1.7.0%2Bds-4&stamp=1596794554&raw=0
+---
+ enigma.cc | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/enigma.cc b/enigma.cc
+index 850f27b4e..32fea92d6 100644
+--- a/enigma.cc
++++ b/enigma.cc
+@@ -21,9 +21,16 @@
+
+ */
+
++#include <cmath> // for fabs, lround
++#include <cstdint> // for int32_t, uint8_t, uint32_t
++#include <cstdlib> // for abs
++#include <cstring> // for strlen, memcpy, memset
++
++#include <QtCore/QString> // for QString
++
+ #include "defs.h"
+-#include <cmath>
+-#include <cstdlib>
++#include "gbfile.h" // for gbfclose, gbfopen_le, gbfread, gbfwrite, gbfile
++
+
+ #define MYNAME "Enigma binary route and waypoint file format"
+
+@@ -177,7 +184,7 @@ enigma_waypt_disp(const Waypoint* wpt)
+ le_write32(&ewpt.longitude, decToEnigmaPosition(wpt->longitude));
+ ewpt.waypoint_type = WTYPE_WAYPOINT;
+ if (wpt->altitude != unknown_alt) {
+- le_write32(&ewpt.data.wp_altitude, METERS_TO_FEET(wpt->altitude) + 1000);
++ le_write32(&ewpt.data.wp_altitude, lround(METERS_TO_FEET(wpt->altitude)) + 1000);
+ }
+ if (wpt->shortname != nullptr) {
+ ewpt.shortname_len = (uint8_t) min(6, strlen(CSTRc(wpt->shortname)));