nur-packages

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

commit 87b4284ef0149e12ea7995dc6ef8c44786d4b158
parent 6bfab4ed2675f5de6ac05ef48bb838079ff82afb
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date:   Mon, 18 Aug 2025 01:31:47 +0400

Add cassini

Diffstat:
Mpkgs/default.nix | 1+
Apkgs/geospatial/cassini/default.nix | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkgs/geospatial/cassini/skia-externals.json | 37+++++++++++++++++++++++++++++++++++++
3 files changed, 121 insertions(+), 0 deletions(-)

diff --git a/pkgs/default.nix b/pkgs/default.nix @@ -192,6 +192,7 @@ lib.makeScope newScope ( arcgis2geojson = callPackage ./geospatial/arcgis2geojson { }; bbox = callPackage ./geospatial/bbox { }; + cassini = callPackage ./geospatial/cassini { }; c2cwsgiutils = callPackage ./geospatial/c2cwsgiutils { }; cmocean = callPackage ./geospatial/cmocean { }; cogdumper = callPackage ./geospatial/cogdumper { }; diff --git a/pkgs/geospatial/cassini/default.nix b/pkgs/geospatial/cassini/default.nix @@ -0,0 +1,83 @@ +{ + lib, + stdenv, + cctools, + fetchFromGitHub, + fetchgit, + gn, + linkFarm, + ninja, + python3, + removeReferencesTo, + runCommand, + rustPlatform, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "cassini"; + version = "0.13.0"; + + src = fetchFromGitHub { + owner = "NicoRio42"; + repo = "cassini"; + tag = finalAttrs.version; + hash = "sha256-up4JCejl+/0t/8F4tG1DaX3aNz6anD2kDb2aO5DdnIE="; + }; + + cargoHash = "sha256-JLHHkad0kXY5yFITGnB+g2RIGLnIJmx3cwPnt7idVM8="; + + nativeBuildInputs = [ + python3 # skia + removeReferencesTo + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + cctools.libtool + ]; + + buildInputs = [ + rustPlatform.bindgenHook + ]; + + postFixup = '' + # library skia embeds the path to its sources + remove-references-to -t "$SKIA_SOURCE_DIR" \ + $out/bin/cassini + ''; + + env = { + SKIA_SOURCE_DIR = + let + repo = fetchFromGitHub { + owner = "rust-skia"; + repo = "skia"; + # see rust-skia:skia-bindings/Cargo.toml#package.metadata skia + rev = "refs/tags/m126-0.74.2"; + hash = "sha256-4l6ekAJy+pG27hBGT6A6LLRwbsyKinJf6PP6mMHwaAs="; + }; + # The externals for skia are taken from skia/DEPS + # Reduced to only what's necessary + externals = linkFarm "skia-externals" ( + lib.mapAttrsToList (name: value: { + inherit name; + path = fetchgit value; + }) (lib.importJSON ./skia-externals.json) + ); + in + runCommand "source" { } '' + cp -R ${repo} $out + chmod -R +w $out + ln -s ${externals} $out/third_party/externals + ''; + SKIA_GN_COMMAND = lib.getExe gn; + SKIA_NINJA_COMMAND = lib.getExe ninja; + }; + + disallowedReferences = [ finalAttrs.env.SKIA_SOURCE_DIR ]; + + meta = { + description = "A software that generates highly accurate topographic maps from LiDAR and Shapefile data"; + homepage = "https://cassini-map.com"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.sikmir ]; + }; +}) diff --git a/pkgs/geospatial/cassini/skia-externals.json b/pkgs/geospatial/cassini/skia-externals.json @@ -0,0 +1,37 @@ +{ + "expat": { + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git", + "rev": "441f98d02deafd9b090aea568282b28f66a50e36", + "sha256": "sha256-FXTDGAK03jc2wvazhRKqtsFRKZUYS/9HLpZNp4JfZJI=" + }, + "libjpeg-turbo": { + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git", + "rev": "ed683925e4897a84b3bffc5c1414c85b97a129a3", + "sha256": "sha256-DYJP3phe4OzCtRN2pMc07ITTWR8MuIlOWWg9PBsQAVw=" + }, + "icu": { + "url": "https://chromium.googlesource.com/chromium/deps/icu.git", + "rev": "364118a1d9da24bb5b770ac3d762ac144d6da5a4", + "sha256": "sha256-frsmwYMiFixEULsE91x5+p98DvkyC0s0fNupqjoRnvg=" + }, + "zlib": { + "url": "https://chromium.googlesource.com/chromium/src/third_party/zlib", + "rev": "646b7f569718921d7d4b5b8e22572ff6c76f2596", + "sha256": "sha256-jNj6SuTZ5/a7crtYhxW3Q/TlfRMNMfYIVxDlr7bYdzQ=" + }, + "harfbuzz": { + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git", + "rev": "b74a7ecc93e283d059df51ee4f46961a782bcdb8", + "sha256": "sha256-/ZYsusWvLzBk5fym3ndVVEplyAdWFf7d4twBvwQVioY=" + }, + "wuffs": { + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "sha256": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=" + }, + "libpng": { + "url": "https://skia.googlesource.com/third_party/libpng.git", + "rev": "ed217e3e601d8e462f7fd1e04bed43ac42212429", + "sha256": "sha256-Mo1M8TuVaoSIb7Hy2u6zgjZ1DKgpmgNmGRP6dGg/aTs=" + } +}