diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-12-17 12:27:42 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-12-17 15:46:29 +0100 |
commit | 3689d431074c3bdc40646d593b273708d8792259 (patch) | |
tree | 4d5fa3920762f0f655e53ade5c272c827e86f82e | |
parent | 9f8a8aafa37624360df15c14472b071269810e38 (diff) | |
download | spectrum-3689d431074c3bdc40646d593b273708d8792259.tar spectrum-3689d431074c3bdc40646d593b273708d8792259.tar.gz spectrum-3689d431074c3bdc40646d593b273708d8792259.tar.bz2 spectrum-3689d431074c3bdc40646d593b273708d8792259.tar.lz spectrum-3689d431074c3bdc40646d593b273708d8792259.tar.xz spectrum-3689d431074c3bdc40646d593b273708d8792259.tar.zst spectrum-3689d431074c3bdc40646d593b273708d8792259.zip |
pkgs: use filesets for src
This will make it possible later to specify which directories actually need to be present to build a component, so changing a single file somewhere won't force rebuilds of every Spectrum component. Signed-off-by: Alyssa Ross <hi@alyssa.is>
-rw-r--r-- | Documentation/default.nix | 7 | ||||
-rw-r--r-- | host/initramfs/default.nix | 5 | ||||
-rw-r--r-- | host/rootfs/default.nix | 5 | ||||
-rw-r--r-- | host/start-vm/default.nix | 7 | ||||
-rw-r--r-- | img/app/default.nix | 5 | ||||
-rw-r--r-- | pkgs/default.nix | 26 | ||||
-rw-r--r-- | release/checks/doc-anchors.nix | 11 | ||||
-rw-r--r-- | release/checks/reuse.nix | 7 | ||||
-rw-r--r-- | release/checks/rustfmt.nix | 7 | ||||
-rw-r--r-- | release/checks/shellcheck.nix | 7 | ||||
-rw-r--r-- | release/checks/wayland/surface-notify/default.nix | 5 | ||||
-rw-r--r-- | release/live/default.nix | 5 | ||||
-rw-r--r-- | tools/lseek/default.nix | 5 | ||||
-rw-r--r-- | vm/sys/net/default.nix | 5 |
14 files changed, 76 insertions, 31 deletions
diff --git a/Documentation/default.nix b/Documentation/default.nix index 94d4741..b58b531 100644 --- a/Documentation/default.nix +++ b/Documentation/default.nix @@ -4,12 +4,15 @@ import ../lib/call-package.nix -({ callSpectrumPackage, src, stdenvNoCC, jekyll, drawio-headless }: +({ callSpectrumPackage, src, lib, stdenvNoCC, jekyll, drawio-headless }: stdenvNoCC.mkDerivation { name = "spectrum-docs"; - inherit src; + src = lib.fileset.toSource { + root = ../.; + fileset = src; + }; sourceRoot = "source/Documentation"; buildPhase = '' diff --git a/host/initramfs/default.nix b/host/initramfs/default.nix index 871a1de..f290595 100644 --- a/host/initramfs/default.nix +++ b/host/initramfs/default.nix @@ -78,7 +78,10 @@ in stdenvNoCC.mkDerivation { name = "initramfs"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/host/initramfs"; MICROCODE = microcode; diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix index 3176259..5bd2488 100644 --- a/host/rootfs/default.nix +++ b/host/rootfs/default.nix @@ -108,7 +108,10 @@ in stdenvNoCC.mkDerivation { name = "spectrum-rootfs"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/host/rootfs"; nativeBuildInputs = [ erofs-utils lseek s6-rc ]; diff --git a/host/start-vm/default.nix b/host/start-vm/default.nix index b776806..bd399b1 100644 --- a/host/start-vm/default.nix +++ b/host/start-vm/default.nix @@ -2,12 +2,15 @@ # SPDX-FileCopyrightText: 2022-2023 Alyssa Ross <hi@alyssa.is> import ../../lib/call-package.nix ( -{ src, stdenv, meson, ninja, rustc, clippy }: +{ src, lib, stdenv, meson, ninja, rustc, clippy }: stdenv.mkDerivation (finalAttrs: { name = "start-vm"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/host/start-vm"; nativeBuildInputs = [ meson ninja rustc ]; diff --git a/img/app/default.nix b/img/app/default.nix index fa282ab..57dcddb 100644 --- a/img/app/default.nix +++ b/img/app/default.nix @@ -78,7 +78,10 @@ in stdenvNoCC.mkDerivation { name = "spectrum-appvm"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/img/app"; nativeBuildInputs = [ erofs-utils jq lseek s6-rc util-linux ]; diff --git a/pkgs/default.nix b/pkgs/default.nix index 13ac843..1c9da7f 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -7,8 +7,7 @@ let config = import ../lib/config.nix args; pkgs = import ./overlaid.nix ({ elaboratedConfig = config; } // args); - inherit (pkgs.lib) - cleanSource cleanSourceWith hasSuffix makeScope optionalAttrs; + inherit (pkgs.lib) cleanSource fileset makeScope optionalAttrs; scope = self: let pkgs = self.callPackage ({ pkgs }: pkgs) {}; in { inherit config; @@ -26,15 +25,20 @@ let pkgsStatic = makeScope pkgs.pkgsStatic.newScope scope; - src = cleanSourceWith { - filter = path: type: - path != toString ../Documentation/_site && - path != toString ../Documentation/.jekyll-cache && - path != toString ../Documentation/diagrams/stack.svg && - (type == "regular" -> !hasSuffix ".nix" path) && - (type == "directory" -> builtins.baseNameOf path != "build"); - src = cleanSource ../.; - }; + src = fileset.difference + (fileset.intersection + (fileset.fileFilter ({ hasExt, ... }: !hasExt "nix") ../.) + (fileset.fromSource (cleanSource ../.))) + (fileset.unions (map fileset.maybeMissing [ + ../Documentation/.jekyll-cache + ../Documentation/_site + ../Documentation/diagrams/stack.svg + ../host/initramfs/build + ../host/rootfs/build + ../img/app/build + ../release/live/build + ../vm/sys/net/build + ])); }; in diff --git a/release/checks/doc-anchors.nix b/release/checks/doc-anchors.nix index f2e603e..afbd262 100644 --- a/release/checks/doc-anchors.nix +++ b/release/checks/doc-anchors.nix @@ -1,10 +1,15 @@ # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is> -import ../../lib/call-package.nix ({ src, runCommand }: +import ../../lib/call-package.nix ({ src, lib, runCommand }: -runCommand "spectrum-doc-anchors" {} '' - ! grep --color=always -r xref:http ${src} +runCommand "spectrum-doc-anchors" { + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; +} '' + ! grep --color=always -r xref:http $src touch $out '' ) (_: {}) diff --git a/release/checks/reuse.nix b/release/checks/reuse.nix index 17bd40f..2675ad2 100644 --- a/release/checks/reuse.nix +++ b/release/checks/reuse.nix @@ -1,10 +1,13 @@ # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is> -import ../../lib/call-package.nix ({ src, runCommand, reuse }: +import ../../lib/call-package.nix ({ src, lib, runCommand, reuse }: runCommand "spectrum-reuse" { - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; nativeBuildInputs = [ reuse ]; } '' reuse --root $src lint diff --git a/release/checks/rustfmt.nix b/release/checks/rustfmt.nix index a0de350..b674bce 100644 --- a/release/checks/rustfmt.nix +++ b/release/checks/rustfmt.nix @@ -1,10 +1,13 @@ # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2022 Unikie -import ../../lib/call-package.nix ({ src, runCommand, rustfmt }: +import ../../lib/call-package.nix ({ src, lib, runCommand, rustfmt }: runCommand "spectrum-rustfmt" { - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; nativeBuildInputs = [ rustfmt ]; } '' shopt -s globstar diff --git a/release/checks/shellcheck.nix b/release/checks/shellcheck.nix index 0a29f81..fa2fb72 100644 --- a/release/checks/shellcheck.nix +++ b/release/checks/shellcheck.nix @@ -1,10 +1,13 @@ # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2022 Unikie -import ../../lib/call-package.nix ({ src, runCommand, shellcheck }: +import ../../lib/call-package.nix ({ src, lib, runCommand, shellcheck }: runCommand "spectrum-shellcheck" { - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; nativeBuildInputs = [ shellcheck ]; } '' shopt -s globstar diff --git a/release/checks/wayland/surface-notify/default.nix b/release/checks/wayland/surface-notify/default.nix index 819aee6..f70fd5c 100644 --- a/release/checks/wayland/surface-notify/default.nix +++ b/release/checks/wayland/surface-notify/default.nix @@ -9,7 +9,10 @@ import ../../../../lib/call-package.nix ( stdenv.mkDerivation { name = "surface-notify"; - inherit src; + src = lib.fileset.toSource { + root = ../../../..; + fileset = src; + }; sourceRoot = "source/release/checks/wayland/surface-notify"; nativeBuildInputs = [ meson ninja pkg-config ]; diff --git a/release/live/default.nix b/release/live/default.nix index 8668272..ef311b0 100644 --- a/release/live/default.nix +++ b/release/live/default.nix @@ -21,7 +21,10 @@ in stdenvNoCC.mkDerivation { name = "spectrum-live.img"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/release/live"; nativeBuildInputs = [ cryptsetup dosfstools jq lseek mtools util-linux ]; diff --git a/tools/lseek/default.nix b/tools/lseek/default.nix index 97a5aa6..04b2cef 100644 --- a/tools/lseek/default.nix +++ b/tools/lseek/default.nix @@ -7,7 +7,10 @@ pkgsStatic.callPackage ({ lib, stdenv, clang-tools }: stdenv.mkDerivation (finalAttrs: { name = "lseek"; - inherit src; + src = lib.fileset.toSource { + root = ../..; + fileset = src; + }; sourceRoot = "source/tools/lseek"; makeFlags = [ "prefix=$(out)" ]; diff --git a/vm/sys/net/default.nix b/vm/sys/net/default.nix index 6a746a2..0e57cd8 100644 --- a/vm/sys/net/default.nix +++ b/vm/sys/net/default.nix @@ -86,7 +86,10 @@ in stdenvNoCC.mkDerivation { name = "spectrum-netvm"; - inherit src; + src = lib.fileset.toSource { + root = ../../..; + fileset = src; + }; sourceRoot = "source/vm/sys/net"; nativeBuildInputs = [ erofs-utils jq lseek s6-rc util-linux ]; |