From dce1f58e63342945dfedaf1fb1752ef422caad13 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 31 Oct 2023 15:53:43 +0000 Subject: [PATCH] nimdow: build with lockfile --- pkgs/by-name/ni/nimdow/lock.json | 52 +++++++++++++++++++ .../ni/nimdow/package.nix} | 25 +++++---- pkgs/top-level/all-packages.nix | 2 - pkgs/top-level/nim-overrides.nix | 6 +++ 4 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/ni/nimdow/lock.json rename pkgs/{applications/window-managers/nimdow/default.nix => by-name/ni/nimdow/package.nix} (65%) diff --git a/pkgs/by-name/ni/nimdow/lock.json b/pkgs/by-name/ni/nimdow/lock.json new file mode 100644 index 000000000000..942e739e0863 --- /dev/null +++ b/pkgs/by-name/ni/nimdow/lock.json @@ -0,0 +1,52 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "nimtest" + ], + "path": "/nix/store/5nnqszvrqdmk7pkh5v8kq1i4q056jcss-source", + "ref": "v0.1.2", + "rev": "17bd3a0f794106428b8592c69832bf48c97b23e2", + "sha256": "15bv4vdg55zlbl9drwcp5lqfhfwdgzqlrz5pnfjg321r26rh2q3b", + "srcDir": "src", + "url": "https://github.com/avahe-kellenberger/nimtest/archive/17bd3a0f794106428b8592c69832bf48c97b23e2.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "parsetoml" + ], + "path": "/nix/store/nrgl7ks2x3svv6pkdxzr97d6jbd3zhlr-source", + "ref": "v0.7.1", + "rev": "6e5e16179fa2db60f2f37d8b1af4128aaa9c8aaf", + "sha256": "0lsgzbjlgd0h9859yn864y9h9h1v4f5jjk81yvfnlkc9zbwb5kfa", + "srcDir": "src", + "url": "https://github.com/NimParsers/parsetoml/archive/6e5e16179fa2db60f2f37d8b1af4128aaa9c8aaf.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "safeseq" + ], + "path": "/nix/store/k04c398bln6yffvajfk8hci47d703cr1-source", + "ref": "v1.0.0", + "rev": "ee71e961a66db64387e1437ca550d0c8218b099c", + "sha256": "01vlih133p3fgfnbiy1i3cq8kipgkpkal0z6jxy975yvz96gcb15", + "srcDir": "src", + "url": "https://github.com/avahe-kellenberger/safeseq/archive/ee71e961a66db64387e1437ca550d0c8218b099c.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "x11" + ], + "path": "/nix/store/8qaywzr8nzsiddjba77nhf75hzmxx0d9-source", + "ref": "1.2", + "rev": "29aca5e519ebf5d833f63a6a2769e62ec7bfb83a", + "sha256": "16npqgmi2qawjxaddj9ax15rfpdc7sqc37i2r5vg23lyr6znq4wc", + "srcDir": "", + "url": "https://github.com/nim-lang/x11/archive/29aca5e519ebf5d833f63a6a2769e62ec7bfb83a.tar.gz" + } + ] +} diff --git a/pkgs/applications/window-managers/nimdow/default.nix b/pkgs/by-name/ni/nimdow/package.nix similarity index 65% rename from pkgs/applications/window-managers/nimdow/default.nix rename to pkgs/by-name/ni/nimdow/package.nix index 47370d884cdc..a77fb05298b7 100644 --- a/pkgs/applications/window-managers/nimdow/default.nix +++ b/pkgs/by-name/ni/nimdow/package.nix @@ -1,18 +1,20 @@ -{ lib, fetchFromGitHub, nimPackages, libX11, libXft, libXinerama }: -nimPackages.buildNimPackage rec { +{ lib, buildNimPackage, fetchFromGitHub, testers }: + +buildNimPackage (finalAttrs: { pname = "nimdow"; version = "0.7.37"; + requiredNimVersion = 1; + src = fetchFromGitHub { owner = "avahe-kellenberger"; - repo = pname; - rev = "v${version}"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; hash = "sha256-930wDS0UW65QzpUHHOuM25oi/OhFmG0Q7N05ftu7XlI="; }; - - buildInputs = with nimPackages; [ parsetoml x11 safeseq safeset libX11 libXft libXinerama ]; + lockFile = ./lock.json; postInstall = '' install -D config.default.toml $out/share/nimdow/config.default.toml @@ -23,15 +25,16 @@ nimPackages.buildNimPackage rec { substituteInPlace src/nimdowpkg/config/configloader.nim --replace "/usr/share/nimdow" "$out/share/nimdow" ''; - - - doCheck = true; + passthru.tests.version = testers.testVersion { + package = finalAttrs.finalPackage; + version = "v${finalAttrs.version}"; + }; meta = with lib; - src.meta // { + finalAttrs.src.meta // { description = "Nim based tiling window manager"; license = [ licenses.gpl2 ]; maintainers = [ maintainers.marcusramberg ]; mainProgram = "nimdow"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c990cb4f18f7..106ef5b89edd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34390,8 +34390,6 @@ with pkgs; nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { }; - nimdow = callPackage ../applications/window-managers/nimdow { }; - nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { }; normcap = callPackage ../applications/graphics/normcap { }; diff --git a/pkgs/top-level/nim-overrides.nix b/pkgs/top-level/nim-overrides.nix index 792f9e9676f0..7b3b18333c3a 100644 --- a/pkgs/top-level/nim-overrides.nix +++ b/pkgs/top-level/nim-overrides.nix @@ -4,6 +4,7 @@ , libsass , openssl , SDL2 +, xorg }: # The following is list of overrides that take three arguments each: @@ -31,6 +32,11 @@ buildInputs = buildInputs ++ [ SDL2 ]; }; + x11 = lockAttrs: finalAttrs: + { buildInputs ? [ ], ... }: { + buildInputs = buildInputs ++ (with xorg; [ libX11 libXft libXinerama ]); + }; + zippy = lockAttrs: finalAttrs: { nimFlags ? [ ], ... }: { nimFlags = nimFlags ++ lib.optionals stdenv.hostPlatform.isx86_64 [