Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / viking / default.nix
blobbe642790f386ad026657b6700ab907491e3a7731
1 { lib, stdenv, fetchurl, fetchpatch
2 , desktopToDarwinBundle
3 , docbook_xml_dtd_45, docbook_xsl, intltool, itstool, libxslt, pkg-config, wrapGAppsHook, yelp-tools
4 , curl, gdk-pixbuf, gtk3, json-glib, libxml2
5 , gpsbabel
6 , withGeoClue ? true, geoclue2
7 , withGeoTag ? true, gexiv2
8 , withMagic ? true, file
9 , withMapnik ? false, mapnik
10 , withMBTiles ? true, sqlite
11 , withMd5Hash ? true, nettle
12 , withOAuth ? true, liboauth
13 , withRealtimeGPSTracking ? (!stdenv.isDarwin), gpsd
16 stdenv.mkDerivation rec {
17   pname = "viking";
18   version = "1.10";
20   src = fetchurl {
21     url = "mirror://sourceforge/viking/viking-${version}.tar.bz2";
22     sha256 = "sha256-lFXIlfmLwT3iS9ayNM0PHV7NwbBotMvG62ZE9hJuRaw=";
23   };
25   patches = [
26     # Fix check_md5_hash.sh on macOS
27     (fetchpatch {
28       url = "https://github.com/viking-gps/viking/pull/184/commits/b0e110a3cfefea0f1874669525eb3a220dd29f9f.patch";
29       hash = "sha256-HdkcZMV570SXOQMIZZAti2HT0gIdF/EwQCVXBaOwpqs=";
30     })
31   ];
33   nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ]
34     ++ lib.optional stdenv.isDarwin desktopToDarwinBundle;
36   buildInputs = [ curl gdk-pixbuf gtk3 json-glib libxml2 ]
37     ++ lib.optional withGeoClue geoclue2
38     ++ lib.optional withGeoTag  gexiv2
39     ++ lib.optional withMagic   file
40     ++ lib.optional withMapnik  mapnik
41     ++ lib.optional withMBTiles sqlite
42     ++ lib.optional withMd5Hash nettle
43     ++ lib.optional withOAuth   liboauth
44     ++ lib.optional withRealtimeGPSTracking gpsd;
46   configureFlags = [
47     (lib.enableFeature withGeoClue "geoclue")
48     (lib.enableFeature withGeoTag  "geotag")
49     (lib.enableFeature withMagic   "magic")
50     (lib.enableFeature withMapnik  "mapnik")
51     (lib.enableFeature withMBTiles "mbtiles")
52     (lib.enableFeature withMd5Hash "nettle")
53     (lib.enableFeature withOAuth   "oauth")
54     (lib.enableFeature withRealtimeGPSTracking "realtime-gps-tracking")
55   ];
57   hardeningDisable = [ "format" ];
59   doCheck = true;
61   preFixup = ''
62     gappsWrapperArgs+=(
63       --prefix PATH : ${lib.makeBinPath [ gpsbabel ]}
64     )
65   '';
67   meta = with lib; {
68     description = "GPS data editor and analyzer";
69     longDescription = ''
70       Viking is a free/open source program to manage GPS data.  You
71       can import and plot tracks and waypoints, show Openstreetmaps
72       and/or Terraserver maps under it, download geocaches for an area
73       on the map, make new tracks and waypoints, see real-time GPS
74       position, etc.
75     '';
76     homepage = "https://sourceforge.net/projects/viking/";
77     license = licenses.gpl2Plus;
78     maintainers = with maintainers; [ pSub sikmir ];
79     platforms = with platforms; unix;
80   };