diff --git a/pkgs/applications/misc/gpsbabel/clang-4.patch b/pkgs/applications/misc/gpsbabel/clang-4.patch new file mode 100644 index 000000000000..6bd19ae60440 --- /dev/null +++ b/pkgs/applications/misc/gpsbabel/clang-4.patch @@ -0,0 +1,22 @@ +diff --git a/bushnell.cc b/bushnell.cc +index 8fa844d..40707c4 100644 +--- a/bushnell.cc ++++ b/bushnell.cc +@@ -135,7 +135,7 @@ bushnell_get_icon_from_name(QString name) + name = "Waypoint"; + } + +- for (t = bushnell_icons; t->icon > 0; t++) { ++ for (t = bushnell_icons; t->icon != 0; t++) { + if (0 == name.compare(t->icon, Qt::CaseInsensitive)) { + return t->symbol; + } +@@ -147,7 +147,7 @@ static const char* + bushnell_get_name_from_symbol(signed int s) + { + icon_mapping_t* t; +- for (t = bushnell_icons; t->icon > 0; t++) { ++ for (t = bushnell_icons; t->icon != 0; t++) { + if (s == t->symbol) { + return t->icon; + } diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix index 6c248bc4dfa5..ace89cd8a21b 100644 --- a/pkgs/applications/misc/gpsbabel/default.nix +++ b/pkgs/applications/misc/gpsbabel/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, zlib, qt4, which }: +{ lib, stdenv, fetchurl, fetchpatch, zlib, qt4, which, IOKit }: stdenv.mkDerivation rec { name = "gpsbabel-${version}"; @@ -12,13 +12,15 @@ stdenv.mkDerivation rec { }; patches = [ + ./clang-4.patch (fetchpatch { url = https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip; sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr"; }) ]; - buildInputs = [ zlib qt4 which ]; + buildInputs = [ zlib qt4 which ] + ++ lib.optionals stdenv.isDarwin [ IOKit ]; /* FIXME: Building the documentation, with "make doc", requires this: @@ -40,11 +42,11 @@ stdenv.mkDerivation rec { patchShebangs testo substituteInPlace testo \ --replace "-x /usr/bin/hexdump" "" - '' + ( + '' # The raymarine and gtm tests fail on i686 despite -ffloat-store. - if stdenv.isi686 then "rm -v testo.d/raymarine.test testo.d/gtm.test;" - else "" - ); + + lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;" + # The gtm, kml and tomtom asc tests fail on darwin, see PR #23572. + + lib.optionalString stdenv.isDarwin "rm -v testo.d/gtm.test testo.d/kml.test testo.d/tomtom_asc.test"; meta = with stdenv.lib; { description = "Convert, upload and download data from GPS and Map programs"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 181d036f9aef..5b0359a92391 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13985,7 +13985,9 @@ with pkgs; gosmore = callPackage ../applications/misc/gosmore { }; - gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel { }; + gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel { + inherit (darwin) IOKit; + }; gpscorrelate = callPackage ../applications/misc/gpscorrelate { };