aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-04 04:01:54 +0100
committereldritch horrors <pennae@lix.systems>2024-03-04 04:36:42 +0100
commitfd1299cef399ec0c33e2b7416c63d78553dc3ced (patch)
tree08a99151470e625c961d44a81462504fbb4257ea /flake.nix
parent4517de00cb0a1cb096d163d9c422ac4f55e383ed (diff)
Merge pull request #9106 from Ericson2314/positive-source-filtering
Use positive source filtering for the standalone functional tests job and Perl bindings (cherry picked from commit 6b6bd9003062c86a49d4384381941cf57f269c45) Change-Id: I896be67654f893d543ed6beb5d0d0d6c6d36e027
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix73
1 files changed, 50 insertions, 23 deletions
diff --git a/flake.nix b/flake.nix
index 1d03f1a1f..bc14941fd 100644
--- a/flake.nix
+++ b/flake.nix
@@ -59,30 +59,42 @@
# that would interfere with repo semantics.
fileset.fileFilter (f: f.name != ".gitignore") ./.;
+ configureFiles = fileset.unions [
+ ./.version
+ ./bootstrap.sh
+ ./configure.ac
+ ./m4
+ # TODO: do we really need README.md? It doesn't seem used in the build.
+ ./README.md
+ ];
+
+ topLevelBuildFiles = fileset.unions [
+ ./local.mk
+ ./Makefile
+ ./Makefile.config.in
+ ./mk
+ ];
+
+ functionalTestFiles = fileset.unions [
+ ./tests/functional
+ ./tests/unit
+ (fileset.fileFilter (f: lib.strings.hasPrefix "nix-profile" f.name) ./scripts)
+ ];
+
nixSrc = fileset.toSource {
root = ./.;
fileset = fileset.intersect baseFiles (fileset.unions [
- ./.version
+ configureFiles
+ topLevelBuildFiles
./boehmgc-coroutine-sp-fallback.diff
- ./bootstrap.sh
- ./configure.ac
./doc
- ./local.mk
- ./m4
- ./Makefile
- ./Makefile.config.in
./misc
- ./mk
./precompiled-headers.h
./src
- ./tests/functional
- ./tests/unit
./unit-test-data
./COPYING
./scripts/local.mk
- (fileset.fileFilter (f: lib.strings.hasPrefix "nix-profile" f.name) ./scripts)
- # TODO: do we really need README.md? It doesn't seem used in the build.
- ./README.md
+ functionalTestFiles
]);
};
@@ -253,7 +265,6 @@
testNixVersions = pkgs: client: daemon: with commonDeps { inherit pkgs; }; with pkgs.lib; pkgs.stdenv.mkDerivation {
NIX_DAEMON_PACKAGE = daemon;
NIX_CLIENT_PACKAGE = client;
- HAVE_LOCAL_NIX_BUILD = false;
name =
"nix-tests"
+ optionalString
@@ -262,7 +273,14 @@
"-${client.version}-against-${daemon.version}";
inherit version;
- src = nixSrc;
+ src = fileset.toSource {
+ root = ./.;
+ fileset = fileset.intersect baseFiles (fileset.unions [
+ configureFiles
+ topLevelBuildFiles
+ functionalTestFiles
+ ]);
+ };
VERSION_SUFFIX = versionSuffix;
@@ -272,19 +290,20 @@
enableParallelBuilding = true;
- configureFlags = testConfigureFlags; # otherwise configure fails
+ configureFlags =
+ testConfigureFlags # otherwise configure fails
+ ++ [ "--disable-build" ];
+ dontBuild = true;
doInstallCheck = true;
- buildPhase = ''
- # Remove the source files to make sure that we're not accidentally rebuilding Nix
- rm src/**/*.cc
- '';
-
installPhase = ''
mkdir -p $out
'';
- installCheckPhase = "make installcheck -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES";
+ installCheckPhase = ''
+ mkdir -p src/nix-channel
+ make installcheck -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
+ '';
};
binaryTarball = nix: pkgs:
@@ -460,7 +479,15 @@
passthru.perl-bindings = with final; perl.pkgs.toPerlModule (currentStdenv.mkDerivation {
name = "nix-perl-${version}";
- src = self;
+ src = fileset.toSource {
+ root = ./.;
+ fileset = fileset.intersect baseFiles (fileset.unions [
+ ./perl
+ ./.version
+ ./m4
+ ./mk
+ ]);
+ };
nativeBuildInputs =
[ buildPackages.autoconf-archive