nur-packages

My NUR packages
git clone git://git.sikmir.ru/nur-packages
Log | Files | Refs | README | LICENSE

package.nix (2121B)


      1 {
      2   lib,
      3   fetchFromGitHub,
      4   python312Packages,
      5   s2sphere,
      6   unstableGitUpdater,
      7 }:
      8 
      9 python312Packages.buildPythonApplication {
     10   pname = "gpxtrackposter";
     11   version = "0-unstable-2024-06-02";
     12   pyproject = true;
     13 
     14   src = fetchFromGitHub {
     15     owner = "flopp";
     16     repo = "GpxTrackPoster";
     17     rev = "1ca04e9f2fb4a5ee33e2fb0863e6169ecb2c99a0";
     18     hash = "sha256-0Bdls3Pe1K/3QSK9vsfcIxr3arB4/PZ+IsQO5Pk180E=";
     19   };
     20 
     21   patches = [
     22     ./fix-localedir.patch
     23   ];
     24 
     25   postPatch = ''
     26     substituteInPlace gpxtrackposter/poster.py \
     27       --replace-fail "self.translate(\"ATHLETE\")" "\"\""
     28 
     29     # https://github.com/flopp/GpxTrackPoster/issues/115
     30     substituteInPlace gpxtrackposter/track.py \
     31       --replace-fail "from stravalib.model import Activity" "from stravalib.model import DetailedActivity"
     32 
     33     # https://github.com/flopp/GpxTrackPoster/issues/102
     34     substituteInPlace gpxtrackposter/timezone_adjuster.py \
     35       --replace-fail "__init__(self)" "__new__(cls)" \
     36       --replace-fail "TimezoneAdjuster._timezonefinder" "cls._timezonefinder"
     37 
     38     substituteInPlace gpxtrackposter/cli.py \
     39       --subst-var out
     40   '';
     41 
     42   build-system = with python312Packages; [ setuptools ];
     43 
     44   dependencies = with python312Packages; [
     45     appdirs
     46     colour
     47     geopy
     48     gpxpy
     49     pint
     50     pytz
     51     s2sphere
     52     svgwrite
     53     stravalib
     54     polyline
     55     timezonefinder
     56     setuptools
     57   ];
     58 
     59   pythonRelaxDeps = [ "stravalib" ];
     60 
     61   nativeCheckInputs = with python312Packages; [
     62     pytestCheckHook
     63     (pytest-mock.overrideAttrs (old: rec {
     64       pname = "pytest-mock";
     65       version = "3.3.1";
     66       src = fetchPypi {
     67         inherit pname version;
     68         hash = "sha256-pNbTcynkqJPnfZ/6ieg43StF1dwJmYTPA8cDrIQRu4I=";
     69       };
     70     }))
     71   ];
     72 
     73   doCheck = false;
     74 
     75   postInstall = "rm -fr $out/requirements*.txt";
     76 
     77   passthru.updateScript = unstableGitUpdater { };
     78 
     79   meta = {
     80     description = "Create a visually appealing poster from your GPX tracks";
     81     homepage = "https://github.com/flopp/GpxTrackPoster";
     82     license = lib.licenses.mit;
     83     maintainers = [ lib.maintainers.sikmir ];
     84     mainProgram = "create_poster";
     85   };
     86 }