Merge pull request #174284 from sikmir/gpsbabel
This commit is contained in:
commit
52f1fd127e
26
pkgs/applications/misc/gpsbabel/debian-patches.nix
Normal file
26
pkgs/applications/misc/gpsbabel/debian-patches.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Generated by debian-patches.sh from debian-patches.txt
|
||||||
|
let
|
||||||
|
prefix = "https://sources.debian.org/data/main/g/gpsbabel/1.8.0+ds-4/debian/patches";
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{
|
||||||
|
url = "${prefix}/gpsbabelfe_disable_version_check";
|
||||||
|
sha256 = "1kk1iq4mbmldl1jjvd4bphr0165rgn2gpqdyyd1vq8v8wjx942sb";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${prefix}/gpsbabelfe_opt-in-for-usage-data-reporting";
|
||||||
|
sha256 = "0dr3jyn8sxx9vw3w11gir6jvshlda0ldmhlq4aq313xn6d1j8qv2";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${prefix}/gpsbabelfe_do-not-check-for-newer-version";
|
||||||
|
sha256 = "0kmmxcq1k9p84v9cjagda1cqcc9p7p48i104l3z6clc17zixwgai";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${prefix}/htmldoc-location";
|
||||||
|
sha256 = "0nk3gz3l0q68d7blzfkbkvr630xy8y7vlxalnzlbdigqcx7lk54f";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
url = "${prefix}/Disable-donation-nagging";
|
||||||
|
sha256 = "11j2ffa0hn5cy8xw98jndkf735ar39sf6rl28bn91pxd38xyaz5b";
|
||||||
|
}
|
||||||
|
]
|
6
pkgs/applications/misc/gpsbabel/debian-patches.txt
Normal file
6
pkgs/applications/misc/gpsbabel/debian-patches.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
gpsbabel/1.8.0+ds-4
|
||||||
|
gpsbabelfe_disable_version_check
|
||||||
|
gpsbabelfe_opt-in-for-usage-data-reporting
|
||||||
|
gpsbabelfe_do-not-check-for-newer-version
|
||||||
|
htmldoc-location
|
||||||
|
Disable-donation-nagging
|
|
@ -1,59 +1,99 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, libusb1, qtbase, zlib, IOKit, which, expat }:
|
{ lib, stdenv, fetchFromGitHub, fetchurl, pkg-config, which
|
||||||
|
, qtbase, qmake, qttools, qttranslations, wrapQtAppsHook
|
||||||
|
, libusb1, shapelib, zlib
|
||||||
|
, withGUI ? false, qtserialport
|
||||||
|
, withMapPreview ? (!stdenv.isDarwin), qtwebengine
|
||||||
|
, withDoc ? false, docbook_xml_dtd_45, docbook_xsl, expat, fop, libxml2, libxslt, perl
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gpsbabel";
|
pname = "gpsbabel";
|
||||||
version = "1.7.0";
|
version = "1.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gpsbabel";
|
owner = "gpsbabel";
|
||||||
repo = "gpsbabel";
|
repo = "gpsbabel";
|
||||||
rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}";
|
rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}";
|
||||||
sha256 = "010g0vd2f5knpq5p7qfnl31kv3r8m5sjdsafcinbj5gh02j2nzpy";
|
sha256 = "sha256-0w8LsO+HwqZF8SQmwd8bCKma9PCM0hAzXhzWR4DgAHs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = map fetchurl (import ./debian-patches.nix);
|
||||||
(fetchpatch {
|
|
||||||
url = "https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip";
|
postPatch = ''
|
||||||
sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr";
|
patchShebangs testo
|
||||||
})
|
'' + lib.optionalString withGUI ''
|
||||||
|
# See https://github.com/NixOS/nixpkgs/issues/86054
|
||||||
|
substituteInPlace gui/mainwindow.cc \
|
||||||
|
--replace 'QLibraryInfo::location(QLibraryInfo::TranslationsPath)' \
|
||||||
|
'QLatin1String("${qttranslations}/translations")'
|
||||||
|
'' + lib.optionalString withDoc ''
|
||||||
|
substituteInPlace gbversion.h.qmake.in \
|
||||||
|
--replace /usr/share/doc $doc/share/doc
|
||||||
|
|
||||||
|
substituteInPlace testo.d/serialization.test \
|
||||||
|
--replace /usr/share/doc $doc/share/doc
|
||||||
|
|
||||||
|
substituteInPlace xmldoc/gpsbabel_man.xml \
|
||||||
|
--replace /usr/share/doc $doc/share/doc
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" ] ++ lib.optional withDoc "doc";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkg-config qmake ]
|
||||||
|
++ lib.optionals withGUI [ qttools wrapQtAppsHook ]
|
||||||
|
++ lib.optionals withDoc [ docbook_xml_dtd_45 docbook_xsl expat fop libxml2 libxslt perl ];
|
||||||
|
|
||||||
|
buildInputs = [ libusb1 shapelib zlib ]
|
||||||
|
++ lib.optional withGUI qtserialport
|
||||||
|
++ lib.optional (withGUI && withMapPreview) qtwebengine;
|
||||||
|
|
||||||
|
checkInputs = [ libxml2 which ];
|
||||||
|
|
||||||
|
preConfigure = lib.optionalString withGUI ''
|
||||||
|
lrelease gui/*.ts gui/coretool/*.ts
|
||||||
|
'';
|
||||||
|
|
||||||
|
qmakeFlags = [
|
||||||
|
"WITH_LIBUSB=pkgconfig"
|
||||||
|
"WITH_SHAPELIB=pkgconfig"
|
||||||
|
"WITH_ZLIB=pkgconfig"
|
||||||
|
] ++ lib.optionals (withGUI && !withMapPreview) [
|
||||||
|
"CONFIG+=disable-mappreview"
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [ libusb1 qtbase zlib ]
|
makeFlags = lib.optional withGUI "gui"
|
||||||
++ lib.optionals stdenv.isDarwin [ IOKit ];
|
++ lib.optionals withDoc [ "gpsbabel.pdf" "gpsbabel.html" "gpsbabel.org" ];
|
||||||
|
|
||||||
checkInputs = [ expat.dev which ]; # Avoid ./testo.d/kml.test: line 74: which: command not found. Skipping KML validation phase.
|
# Floating point behavior on i686 causes nmea.test failures. Preventing
|
||||||
|
# extended precision fixes this problem.
|
||||||
|
NIX_CFLAGS_COMPILE = lib.optional stdenv.isi686 "-ffloat-store";
|
||||||
|
|
||||||
/* FIXME: Building the documentation, with "make doc", requires this:
|
doCheck = true;
|
||||||
|
|
||||||
[ libxml2 libxslt perl docbook_xml_dtd_412 docbook_xsl fop ]
|
|
||||||
|
|
||||||
But FOP isn't packaged yet. */
|
|
||||||
|
|
||||||
configureFlags = [ "--with-zlib=system" ]
|
|
||||||
# Floating point behavior on i686 causes test failures. Preventing
|
|
||||||
# extended precision fixes this problem.
|
|
||||||
++ lib.optionals stdenv.isi686 [
|
|
||||||
"CFLAGS=-ffloat-store" "CXXFLAGS=-ffloat-store"
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
dontWrapQtApps = true;
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
doCheck = true;
|
installPhase = ''
|
||||||
preCheck = ''
|
install -Dm755 gpsbabel -t $out/bin
|
||||||
patchShebangs testo
|
'' + lib.optionalString withGUI (if stdenv.isDarwin then ''
|
||||||
substituteInPlace testo \
|
mkdir -p $out/Applications
|
||||||
--replace "-x /usr/bin/hexdump" ""
|
mv gui/GPSBabelFE.app $out/Applications
|
||||||
|
install -Dm644 gui/*.qm gui/coretool/*.qm -t $out/Applications/GPSBabelFE.app/Contents/Resources/translations
|
||||||
|
ln -s $out/bin/gpsbabel $out/Applications/GPSBabelFE.app/Contents/MacOS
|
||||||
|
'' else ''
|
||||||
|
install -Dm755 gui/objects/gpsbabelfe -t $out/bin
|
||||||
|
install -Dm644 gui/gpsbabel.desktop -t $out/share/application
|
||||||
|
install -Dm644 gui/images/appicon.png $out/share/icons/hicolor/512x512/apps/gpsbabel.png
|
||||||
|
install -Dm644 gui/*.qm gui/coretool/*.qm -t $out/share/gpsbabel/translations
|
||||||
|
'') + lib.optionalString withDoc ''
|
||||||
|
install -Dm655 gpsbabel.{html,pdf} -t $doc/share/doc/gpsbabel
|
||||||
|
cp -r html $doc/share/doc/gpsbabel
|
||||||
|
'';
|
||||||
|
|
||||||
rm -v testo.d/alantrl.test
|
postFixup = lib.optionalString withGUI (if stdenv.isDarwin then ''
|
||||||
''
|
wrapQtApp "$out/Applications/GPSBabelFE.app/Contents/MacOS/GPSBabelFE"
|
||||||
# The raymarine and gtm tests fail on i686 despite -ffloat-store.
|
'' else ''
|
||||||
+ lib.optionalString stdenv.isi686 "rm -v testo.d/raymarine.test testo.d/gtm.test;"
|
wrapQtApp "$out/bin/gpsbabelfe"
|
||||||
# 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 testo.d/classic-2.test"
|
|
||||||
# The arc-project test fails on aarch64.
|
|
||||||
+ lib.optionalString stdenv.isAarch64 "rm -v testo.d/arc-project.test";
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
broken = stdenv.isDarwin;
|
broken = stdenv.isDarwin;
|
||||||
|
@ -76,8 +116,9 @@ stdenv.mkDerivation rec {
|
||||||
process data that may (or may not be) placed on a map, such as
|
process data that may (or may not be) placed on a map, such as
|
||||||
waypoints, tracks, and routes.
|
waypoints, tracks, and routes.
|
||||||
'';
|
'';
|
||||||
homepage = "http://www.gpsbabel.org/";
|
homepage = "https://www.gpsbabel.org/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = platforms.all;
|
platforms = platforms.unix;
|
||||||
|
maintainers = with maintainers; [ sikmir ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
{ lib, mkDerivation, qmake, qttools, qtwebkit, qttranslations, gpsbabel }:
|
|
||||||
|
|
||||||
mkDerivation {
|
|
||||||
pname = "gpsbabel-gui";
|
|
||||||
|
|
||||||
inherit (gpsbabel) src version;
|
|
||||||
|
|
||||||
sourceRoot = "source/gui";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake qttools ];
|
|
||||||
buildInputs = [ qtwebkit ];
|
|
||||||
|
|
||||||
dontWrapQtApps = true;
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace mainwindow.cc \
|
|
||||||
--replace "QApplication::applicationDirPath() + \"/" "\"" \
|
|
||||||
--replace "QApplication::applicationDirPath() + '/' + " "" \
|
|
||||||
--replace "translator.load(full_filename)" "translator.load(filename)" \
|
|
||||||
--replace "gpsbabelfe_%1.qm" "$out/share/gpsbabel/translations/gpsbabelfe_%1.qm" \
|
|
||||||
--replace "gpsbabel_%1.qm" "$out/share/gpsbabel/translations/gpsbabel_%1.qm" \
|
|
||||||
--replace "qt_%1.qm" "${qttranslations}/translations/qt_%1.qm"
|
|
||||||
substituteInPlace formatload.cc \
|
|
||||||
--replace "QApplication::applicationDirPath() + \"/" "\""
|
|
||||||
substituteInPlace gpsbabel.desktop \
|
|
||||||
--replace "gpsbabelfe-bin" "gpsbabelfe"
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
lrelease *.ts coretool/*.ts
|
|
||||||
'';
|
|
||||||
|
|
||||||
qtWrapperArgs = [
|
|
||||||
"--prefix PATH : ${lib.makeBinPath [ gpsbabel ]}"
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
install -Dm755 objects/gpsbabelfe -t $out/bin
|
|
||||||
install -Dm644 gpsbabel.desktop -t $out/share/applications
|
|
||||||
install -Dm644 images/appicon.png $out/share/icons/hicolor/512x512/apps/gpsbabel.png
|
|
||||||
install -Dm644 *.qm coretool/*.qm -t $out/share/gpsbabel/translations
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Qt-based GUI for gpsbabel";
|
|
||||||
homepage = "http://www.gpsbabel.org/";
|
|
||||||
license = licenses.gpl2;
|
|
||||||
maintainers = with maintainers; [ sikmir ];
|
|
||||||
platforms = with platforms; linux;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -26914,11 +26914,12 @@ with pkgs;
|
||||||
|
|
||||||
gosmore = callPackage ../applications/misc/gosmore { stdenv = gcc10StdenvCompat; };
|
gosmore = callPackage ../applications/misc/gosmore { stdenv = gcc10StdenvCompat; };
|
||||||
|
|
||||||
gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel {
|
gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel { };
|
||||||
inherit (darwin) IOKit;
|
|
||||||
};
|
|
||||||
|
|
||||||
gpsbabel-gui = libsForQt5.callPackage ../applications/misc/gpsbabel/gui.nix { };
|
gpsbabel-gui = gpsbabel.override {
|
||||||
|
withGUI = true;
|
||||||
|
withDoc = true;
|
||||||
|
};
|
||||||
|
|
||||||
gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
|
gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue