65 lines
1.7 KiB
Nix
65 lines
1.7 KiB
Nix
{ stdenv, fetchFromGitHub, perl, python, sqlite, gpsbabel
|
|
, withWebKit ? false }:
|
|
|
|
let
|
|
|
|
# Pytrainer needs a matplotlib with GTK backend. Also ensure we are
|
|
# using the pygtk with glade support as needed by pytrainer.
|
|
matplotlibGtk = python.pkgs.matplotlib.override {
|
|
enableGtk2 = true;
|
|
pygtk = python.pkgs.pyGtkGlade;
|
|
};
|
|
|
|
in
|
|
|
|
python.pkgs.buildPythonApplication rec {
|
|
name = "pytrainer-${version}";
|
|
version = "1.12.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pytrainer";
|
|
repo = "pytrainer";
|
|
rev = "v${version}";
|
|
sha256 = "0rzf8kks96qzlknh6g3b9pjq04j7qk6rmz58scp7sck8xz9rjbwx";
|
|
};
|
|
|
|
namePrefix = "";
|
|
|
|
patches = [
|
|
# The test fails in the UTC timezone and C locale.
|
|
./fix-test-tz.patch
|
|
|
|
# The existing use of pywebkitgtk shows raw HTML text instead of
|
|
# map. This patch solves the problems by showing the file from a
|
|
# string, which allows setting an explicit MIME type.
|
|
./pytrainer-webkit.patch
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace ./setup.py \
|
|
--replace "'mysqlclient'," ""
|
|
'';
|
|
|
|
propagatedBuildInputs = with python.pkgs; [
|
|
dateutil lxml matplotlibGtk pyGtkGlade sqlalchemy sqlalchemy_migrate psycopg2
|
|
] ++ stdenv.lib.optional withWebKit [ pywebkitgtk ];
|
|
|
|
buildInputs = [ perl gpsbabel sqlite ];
|
|
|
|
# This package contains no binaries to patch or strip.
|
|
dontPatchELF = true;
|
|
dontStrip = true;
|
|
|
|
checkPhase = ''
|
|
${python.interpreter} -m unittest discover
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = https://github.com/pytrainer/pytrainer/wiki;
|
|
description = "Application for logging and graphing sporting excursions";
|
|
maintainers = [ maintainers.rycee ];
|
|
license = licenses.gpl2Plus;
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|