-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/master' into large-path-warning
- Loading branch information
Showing
435 changed files
with
6,095 additions
and
2,776 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
external-sources=true | ||
source-path=SCRIPTDIR |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
cff-version: 1.2.0 | ||
title: Nix | ||
message: >- | ||
If you use this software, please cite it using the | ||
metadata from this file. | ||
type: software | ||
authors: | ||
- given-names: Eelco | ||
family-names: Dolstra | ||
email: [email protected] | ||
- name: The Nix contributors | ||
website: 'https://github.com/NixOS/nix' | ||
references: | ||
- title: The Purely Functional Software Deployment Model | ||
authors: | ||
- family-names: Dolstra | ||
given-names: Eelco | ||
year: 2006 | ||
type: thesis | ||
thesis-type: PhD thesis | ||
isbn: 90-393-4130-3 | ||
url: https://dspace.library.uu.nl/handle/1874/7540 | ||
database-provider: Utrecht University Repository | ||
institution: | ||
name: Utrecht University | ||
keywords: | ||
- configuration management | ||
- software deployment | ||
- purely functional | ||
- component-based software engineering | ||
repository-code: 'https://github.com/NixOS/nix' | ||
url: 'https://nixos.org/' | ||
abstract: >- | ||
Nix, a purely functional package manager, is a powerful | ||
package manager for Linux and other Unix systems that | ||
makes package management reliable and reproducible. | ||
keywords: | ||
- reproducibility | ||
- open-source | ||
- c++ | ||
- functional | ||
license: LGPL-2.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
{ inputs | ||
, binaryTarball | ||
, forAllCrossSystems | ||
, forAllSystems | ||
, lib | ||
, linux64BitSystems | ||
, nixpkgsFor | ||
, self | ||
}: | ||
let | ||
inherit (inputs) nixpkgs nixpkgs-regression; | ||
inherit (lib) fileset; | ||
|
||
installScriptFor = tarballs: | ||
nixpkgsFor.x86_64-linux.native.callPackage ../scripts/installer.nix { | ||
inherit tarballs; | ||
}; | ||
|
||
testNixVersions = pkgs: client: daemon: | ||
pkgs.callPackage ../package.nix { | ||
pname = | ||
"nix-tests" | ||
+ lib.optionalString | ||
(lib.versionAtLeast daemon.version "2.4pre20211005" && | ||
lib.versionAtLeast client.version "2.4pre20211005") | ||
"-${client.version}-against-${daemon.version}"; | ||
|
||
inherit fileset; | ||
|
||
test-client = client; | ||
test-daemon = daemon; | ||
|
||
doBuild = false; | ||
}; | ||
in | ||
{ | ||
# Binary package for various platforms. | ||
build = forAllSystems (system: self.packages.${system}.nix); | ||
|
||
shellInputs = forAllSystems (system: self.devShells.${system}.default.inputDerivation); | ||
|
||
buildStatic = lib.genAttrs linux64BitSystems (system: self.packages.${system}.nix-static); | ||
|
||
buildCross = forAllCrossSystems (crossSystem: | ||
lib.genAttrs [ "x86_64-linux" ] (system: self.packages.${system}."nix-${crossSystem}")); | ||
|
||
buildNoGc = forAllSystems (system: | ||
self.packages.${system}.nix.override { enableGC = false; } | ||
); | ||
|
||
buildNoTests = forAllSystems (system: | ||
self.packages.${system}.nix.override { | ||
doCheck = false; | ||
doInstallCheck = false; | ||
installUnitTests = false; | ||
} | ||
); | ||
|
||
# Toggles some settings for better coverage. Windows needs these | ||
# library combinations, and Debian build Nix with GNU readline too. | ||
buildReadlineNoMarkdown = forAllSystems (system: | ||
self.packages.${system}.nix.override { | ||
enableMarkdown = false; | ||
readlineFlavor = "readline"; | ||
} | ||
); | ||
|
||
# Perl bindings for various platforms. | ||
perlBindings = forAllSystems (system: nixpkgsFor.${system}.native.nix.perl-bindings); | ||
|
||
# Binary tarball for various platforms, containing a Nix store | ||
# with the closure of 'nix' package, and the second half of | ||
# the installation script. | ||
binaryTarball = forAllSystems (system: binaryTarball nixpkgsFor.${system}.native.nix nixpkgsFor.${system}.native); | ||
|
||
binaryTarballCross = lib.genAttrs [ "x86_64-linux" ] (system: | ||
forAllCrossSystems (crossSystem: | ||
binaryTarball | ||
self.packages.${system}."nix-${crossSystem}" | ||
nixpkgsFor.${system}.cross.${crossSystem})); | ||
|
||
# The first half of the installation script. This is uploaded | ||
# to https://nixos.org/nix/install. It downloads the binary | ||
# tarball for the user's system and calls the second half of the | ||
# installation script. | ||
installerScript = installScriptFor [ | ||
# Native | ||
self.hydraJobs.binaryTarball."x86_64-linux" | ||
self.hydraJobs.binaryTarball."i686-linux" | ||
self.hydraJobs.binaryTarball."aarch64-linux" | ||
self.hydraJobs.binaryTarball."x86_64-darwin" | ||
self.hydraJobs.binaryTarball."aarch64-darwin" | ||
# Cross | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."armv6l-unknown-linux-gnueabihf" | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."armv7l-unknown-linux-gnueabihf" | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."riscv64-unknown-linux-gnu" | ||
]; | ||
installerScriptForGHA = installScriptFor [ | ||
# Native | ||
self.hydraJobs.binaryTarball."x86_64-linux" | ||
self.hydraJobs.binaryTarball."x86_64-darwin" | ||
# Cross | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."armv6l-unknown-linux-gnueabihf" | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."armv7l-unknown-linux-gnueabihf" | ||
self.hydraJobs.binaryTarballCross."x86_64-linux"."riscv64-unknown-linux-gnu" | ||
]; | ||
|
||
# docker image with Nix inside | ||
dockerImage = lib.genAttrs linux64BitSystems (system: self.packages.${system}.dockerImage); | ||
|
||
# Line coverage analysis. | ||
coverage = nixpkgsFor.x86_64-linux.native.nix.override { | ||
pname = "nix-coverage"; | ||
withCoverageChecks = true; | ||
}; | ||
|
||
# API docs for Nix's unstable internal C++ interfaces. | ||
internal-api-docs = nixpkgsFor.x86_64-linux.native.callPackage ../package.nix { | ||
inherit fileset; | ||
doBuild = false; | ||
enableInternalAPIDocs = true; | ||
}; | ||
|
||
# API docs for Nix's C bindings. | ||
external-api-docs = nixpkgsFor.x86_64-linux.native.callPackage ../package.nix { | ||
inherit fileset; | ||
doBuild = false; | ||
enableExternalAPIDocs = true; | ||
}; | ||
|
||
# System tests. | ||
tests = import ../tests/nixos { inherit lib nixpkgs nixpkgsFor; } // { | ||
|
||
# Make sure that nix-env still produces the exact same result | ||
# on a particular version of Nixpkgs. | ||
evalNixpkgs = | ||
let | ||
inherit (nixpkgsFor.x86_64-linux.native) runCommand nix; | ||
in | ||
runCommand "eval-nixos" { buildInputs = [ nix ]; } | ||
'' | ||
type -p nix-env | ||
# Note: we're filtering out nixos-install-tools because https://github.com/NixOS/nixpkgs/pull/153594#issuecomment-1020530593. | ||
( | ||
set -x | ||
time nix-env --store dummy:// -f ${nixpkgs-regression} -qaP --drv-path | sort | grep -v nixos-install-tools > packages | ||
[[ $(sha1sum < packages | cut -c1-40) = e01b031fc9785a572a38be6bc473957e3b6faad7 ]] | ||
) | ||
mkdir $out | ||
''; | ||
|
||
nixpkgsLibTests = | ||
forAllSystems (system: | ||
import (nixpkgs + "/lib/tests/release.nix") | ||
{ | ||
pkgs = nixpkgsFor.${system}.native; | ||
nixVersions = [ self.packages.${system}.nix ]; | ||
} | ||
); | ||
}; | ||
|
||
metrics.nixpkgs = import "${nixpkgs-regression}/pkgs/top-level/metrics.nix" { | ||
pkgs = nixpkgsFor.x86_64-linux.native; | ||
nixpkgs = nixpkgs-regression; | ||
}; | ||
|
||
installTests = forAllSystems (system: | ||
let pkgs = nixpkgsFor.${system}.native; in | ||
pkgs.runCommand "install-tests" | ||
{ | ||
againstSelf = testNixVersions pkgs pkgs.nix pkgs.pkgs.nix; | ||
againstCurrentUnstable = | ||
# FIXME: temporarily disable this on macOS because of #3605. | ||
if system == "x86_64-linux" | ||
then testNixVersions pkgs pkgs.nix pkgs.nixUnstable | ||
else null; | ||
# Disabled because the latest stable version doesn't handle | ||
# `NIX_DAEMON_SOCKET_PATH` which is required for the tests to work | ||
# againstLatestStable = testNixVersions pkgs pkgs.nix pkgs.nixStable; | ||
} "touch $out"); | ||
|
||
installerTests = import ../tests/installer { | ||
binaryTarballs = self.hydraJobs.binaryTarball; | ||
inherit nixpkgsFor; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.