nixpkgs/pkgs/applications/misc/viking/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

75 lines
2.5 KiB
Nix

{ fetchurl, fetchpatch, lib, stdenv, makeWrapper
, pkgconfig, intltool, gettext, gtk2, expat, curl
, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
, docbook_xml_dtd_412, gexiv2, gpsbabel, expect
, withMapnik ? false, mapnik
, withMBTiles ? true, sqlite
, withOAuth ? true, liboauth
, withMd5Hash ? true, nettle
, withGeoClue ? true, geoclue2 }:
stdenv.mkDerivation rec {
pname = "viking";
version = "1.8";
src = fetchurl {
url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
sha256 = "1a0g0fbj4q5s9p8fv0mqvxws10q3naj81l72sz30vvqpbz6vqp45";
};
patches = [
# Fix build without mapnik and sqlite https://github.com/viking-gps/viking/pull/79
(fetchpatch {
url = "https://github.com/viking-gps/viking/commit/995feefcb97bdb1590ed018224cf47ce197fe0c1.patch";
sha256 = "1xb0b76kg690fag9mw3yfj5k766jmqp1sm8q4f29n1h3nz5g8izd";
})
];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2
] ++ stdenv.lib.optional withMapnik mapnik
++ stdenv.lib.optional withGeoClue geoclue2
++ stdenv.lib.optional withMd5Hash nettle
++ stdenv.lib.optional withOAuth liboauth
++ stdenv.lib.optional withMBTiles sqlite;
configureFlags = [
"--disable-scrollkeeper"
(stdenv.lib.enableFeature withMapnik "mapnik")
(stdenv.lib.enableFeature withGeoClue "geoclue")
(stdenv.lib.enableFeature withMd5Hash "nettle")
(stdenv.lib.enableFeature withOAuth "oauth")
(stdenv.lib.enableFeature withMBTiles "mbtiles")
];
preBuild = ''
sed -i help/Makefile \
-e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
sed -i help/Makefile -e 's|--postvalid||g'
'';
doCheck = true;
postInstall = ''
wrapProgram $out/bin/viking \
--prefix PATH : "${gpsbabel}/bin" \
--prefix PATH : "${expect}/bin"
'';
meta = with lib; {
description = "GPS data editor and analyzer";
longDescription = ''
Viking is a free/open source program to manage GPS data. You
can import and plot tracks and waypoints, show Openstreetmaps
and/or Terraserver maps under it, download geocaches for an area
on the map, make new tracks and waypoints, see real-time GPS
position, etc.
'';
homepage = "https://sourceforge.net/projects/viking/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pSub sikmir ];
platforms = with platforms; linux;
};
}