chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / sp / spade / package.nix
blobb312ce8683a4034a65b7a39882891a0e88866206
2   lib,
3   rustPlatform,
4   fetchFromGitLab,
5   stdenv,
6   _experimental-update-script-combinators,
7   nix-update-script,
8   nix-update,
9   writeScript,
10   git,
11   python312,
12   swim,
15 rustPlatform.buildRustPackage rec {
16   pname = "spade";
17   version = "0.10.0";
19   src = fetchFromGitLab {
20     owner = "spade-lang";
21     repo = "spade";
22     rev = "v${version}";
23     hash = "sha256-IAb9Vj5KwyXpARD2SIgYRXhz1ihwcgCTwx3zbgoN6dE=";
24     # only needed for vatch, which contains test data
25     fetchSubmodules = true;
26   };
28   cargoLock = {
29     lockFile = ./Cargo.lock;
30     outputHashes = {
31       "codespan-0.12.0" = "sha256-3F2006BR3hyhxcUTaQiOjzTEuRECKJKjIDyXonS/lrE=";
32     };
33   };
35   # TODO: somehow respect https://nixos.org/manual/nixpkgs/stable/#var-passthru-updateScript-commit
36   passthru.updateScript = _experimental-update-script-combinators.sequence [
37     # rust + gitlab + fetchgit is a rare combo
38     (writeScript "update-spade" ''
39       VERSION="$(
40         ${lib.getExe git} ls-remote --tags --sort -version:refname ${lib.escapeShellArg src.gitRepoUrl} \
41           | cut -f2 | grep ^refs/tags/v | cut -d/ -f3- | cut -c2- \
42           | sort --version-sort --reverse | head -n1
43       )"
44       exec ${lib.getExe nix-update} spade --version "$VERSION" "$@" --commit
45     '')
46     (nix-update-script {
47       extraArgs = [
48         "swim"
49         "--commit"
50       ];
51     })
52   ];
54   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ python312 ];
55   env.NIX_CFLAGS_LINK = lib.optionalString stdenv.hostPlatform.isDarwin "-L${python312}/lib/python3.12/config-3.12-darwin -lpython3.12";
57   passthru.tests = {
58     inherit swim;
59   };
61   meta = with lib; {
62     description = "Better hardware description language";
63     homepage = "https://gitlab.com/spade-lang/spade";
64     changelog = "https://gitlab.com/spade-lang/spade/-/blob/${src.rev}/CHANGELOG.md";
65     # compiler is eupl12, spade-lang stdlib is both asl20 and mit
66     license = with licenses; [
67       eupl12
68       asl20
69       mit
70     ];
71     maintainers = with maintainers; [ pbsds ];
72     mainProgram = "spade";
73   };