diff options
Diffstat (limited to 'nixpkgs/pkgs/test')
20 files changed, 215 insertions, 61 deletions
diff --git a/nixpkgs/pkgs/test/default.nix b/nixpkgs/pkgs/test/default.nix index 05d8ee61e9a5..4cc9ecc0db3e 100644 --- a/nixpkgs/pkgs/test/default.nix +++ b/nixpkgs/pkgs/test/default.nix @@ -8,7 +8,7 @@ with pkgs; llvmTests = let pkgSets = lib.pipe pkgNames [ (filter (lib.hasPrefix "llvmPackages")) - (filter (n: n != "llvmPackages_rocm")) + (filter (n: n != "rocmPackages.llvm")) (filter (n: n != "llvmPackages_latest")) (filter (n: n != "llvmPackages_git")) ]; @@ -104,6 +104,7 @@ with pkgs; cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; + fetchFromBittorrent = callPackages ../build-support/fetchbittorrent/tests.nix { }; fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.lock b/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.lock index 3859d2b6e97c..aa4459c7cff8 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.lock +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.lock @@ -243,6 +243,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -267,9 +277,9 @@ dependencies = [ "lazy_static", "regex", "rnix", - "rowan", "serde", "serde_json", + "temp-env", "tempfile", ] @@ -280,6 +290,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] name = "proc-macro2" version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -383,6 +416,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] name = "serde" version = "1.0.186" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -414,6 +453,12 @@ dependencies = [ ] [[package]] +name = "smallvec" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" + +[[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -431,6 +476,15 @@ dependencies = [ ] [[package]] +name = "temp-env" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e010429b1f3ea1311190c658c7570100f03c1dab05c16cfab774181c648d656a" +dependencies = [ + "parking_lot", +] + +[[package]] name = "tempfile" version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.toml b/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.toml index 003aab6d5842..70b44d048200 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.toml +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/Cargo.toml @@ -5,7 +5,6 @@ edition = "2021" [dependencies] rnix = "0.11.0" -rowan = "0.15.0" regex = "1.9.3" clap = { version = "4.3.23", features = ["derive"] } serde_json = "1.0.105" @@ -14,3 +13,6 @@ serde = { version = "1.0.185", features = ["derive"] } anyhow = "1.0" lazy_static = "1.4.0" colored = "2.0.4" + +[dev-dependencies] +temp-env = "0.3.5" diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/README.md b/nixpkgs/pkgs/test/nixpkgs-check-by-name/README.md index 4dd694acd2f0..2d2db9a58bc5 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/README.md +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/README.md @@ -11,6 +11,13 @@ This API may be changed over time if the CI workflow making use of it is adjuste - Command line: `nixpkgs-check-by-name <NIXPKGS>` - Arguments: - `<NIXPKGS>`: The path to the Nixpkgs to check + - `--version <VERSION>`: The version of the checks to perform. + + Possible values: + - `v0` (default) + - `v1` + + See [validation](#validity-checks) for the differences. - Exit code: - `0`: If the [validation](#validity-checks) is successful - `1`: If the [validation](#validity-checks) is not successful @@ -35,6 +42,7 @@ These checks are performed by this tool: ### Nix evaluation checks - `pkgs.${name}` is defined as `callPackage pkgs/by-name/${shard}/${name}/package.nix args` for some `args`. + - **Only after --version v1**: If `pkgs.${name}` is not auto-called from `pkgs/by-name`, `args` must not be empty - `pkgs.lib.isDerivation pkgs.${name}` is `true`. ## Development diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/default.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/default.nix index cb8a672bc990..0d4e2fcc48a7 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/default.nix +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/default.nix @@ -26,8 +26,8 @@ let export NIX_STATE_DIR=$TEST_ROOT/var/nix export NIX_STORE_DIR=$TEST_ROOT/store - # cargo tests run in parallel by default, which would then run into - # https://github.com/NixOS/nix/issues/2706 unless the store is initialised first + # Ensure that even if tests run in parallel, we don't get an error + # We'd run into https://github.com/NixOS/nix/issues/2706 unless the store is initialised first nix-store --init ''; postCheck = '' diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.nix index 7c0ae755215a..bf9f19d8e460 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.nix +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.nix @@ -18,19 +18,42 @@ let callPackage = fn: args: let result = super.callPackage fn args; + variantInfo._attributeVariant = { + # These names are used by the deserializer on the Rust side + CallPackage.path = + if builtins.isPath fn then + toString fn + else + null; + CallPackage.empty_arg = + args == { }; + }; in if builtins.isAttrs result then # If this was the last overlay to be applied, we could just only return the `_callPackagePath`, # but that's not the case because stdenv has another overlays on top of user-provided ones. # So to not break the stdenv build we need to return the mostly proper result here - result // { - _callPackagePath = fn; - } + result // variantInfo else # It's very rare that callPackage doesn't return an attribute set, but it can occur. - { - _callPackagePath = fn; + variantInfo; + + _internalCallByNamePackageFile = file: + let + result = super._internalCallByNamePackageFile file; + variantInfo._attributeVariant = { + # This name is used by the deserializer on the Rust side + AutoCalled = null; }; + in + if builtins.isAttrs result then + # If this was the last overlay to be applied, we could just only return the `_callPackagePath`, + # but that's not the case because stdenv has another overlays on top of user-provided ones. + # So to not break the stdenv build we need to return the mostly proper result here + result // variantInfo + else + # It's very rare that callPackage doesn't return an attribute set, but it can occur. + variantInfo; }; pkgs = import nixpkgsPath { @@ -39,14 +62,14 @@ let overlays = [ callPackageOverlay ]; }; - attrInfo = attr: { + attrInfo = attr: + let + value = pkgs.${attr}; + in + { # These names are used by the deserializer on the Rust side - call_package_path = - if pkgs.${attr} ? _callPackagePath && builtins.isPath pkgs.${attr}._callPackagePath then - toString pkgs.${attr}._callPackagePath - else - null; - is_derivation = pkgs.lib.isDerivation pkgs.${attr}; + variant = value._attributeVariant or { Other = null; }; + is_derivation = pkgs.lib.isDerivation value; }; attrInfos = builtins.listToAttrs (map (name: { diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.rs b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.rs index 17e22495b22a..26836501c97a 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.rs +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/eval.rs @@ -1,5 +1,6 @@ use crate::structure; use crate::utils::ErrorWriter; +use crate::Version; use std::path::Path; use anyhow::Context; @@ -13,16 +14,34 @@ use tempfile::NamedTempFile; /// Attribute set of this structure is returned by eval.nix #[derive(Deserialize)] struct AttributeInfo { - call_package_path: Option<PathBuf>, + variant: AttributeVariant, is_derivation: bool, } +#[derive(Deserialize)] +enum AttributeVariant { + /// The attribute is auto-called as pkgs.callPackage using pkgs/by-name, + /// and it is not overridden by a definition in all-packages.nix + AutoCalled, + /// The attribute is defined as a pkgs.callPackage <path> <args>, + /// and overridden by all-packages.nix + CallPackage { + /// The <path> argument or None if it's not a path + path: Option<PathBuf>, + /// true if <args> is { } + empty_arg: bool, + }, + /// The attribute is not defined as pkgs.callPackage + Other, +} + const EXPR: &str = include_str!("eval.nix"); /// Check that the Nixpkgs attribute values corresponding to the packages in pkgs/by-name are /// of the form `callPackage <package_file> { ... }`. /// See the `eval.nix` file for how this is achieved on the Nix side pub fn check_values<W: io::Write>( + version: Version, error_writer: &mut ErrorWriter<W>, nixpkgs: &structure::Nixpkgs, eval_accessible_paths: Vec<&Path>, @@ -97,16 +116,29 @@ pub fn check_values<W: io::Write>( let absolute_package_file = nixpkgs.path.join(&relative_package_file); if let Some(attribute_info) = actual_files.get(package_name) { - let is_expected_file = - if let Some(call_package_path) = &attribute_info.call_package_path { - absolute_package_file == *call_package_path - } else { - false - }; + let valid = match &attribute_info.variant { + AttributeVariant::AutoCalled => true, + AttributeVariant::CallPackage { path, empty_arg } => { + let correct_file = if let Some(call_package_path) = path { + absolute_package_file == *call_package_path + } else { + false + }; + // Only check for the argument to be non-empty if the version is V1 or + // higher + let non_empty = if version >= Version::V1 { + !empty_arg + } else { + true + }; + correct_file && non_empty + } + AttributeVariant::Other => false, + }; - if !is_expected_file { + if !valid { error_writer.write(&format!( - "pkgs.{package_name}: This attribute is not defined as `pkgs.callPackage {} {{ ... }}`.", + "pkgs.{package_name}: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage {} {{ ... }}` with a non-empty second argument.", relative_package_file.display() ))?; continue; diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/main.rs b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/main.rs index 751b5dbd0240..5d28077ae4ae 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/main.rs +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/src/main.rs @@ -4,7 +4,7 @@ mod structure; mod utils; use anyhow::Context; -use clap::Parser; +use clap::{Parser, ValueEnum}; use colored::Colorize; use std::io; use std::path::{Path, PathBuf}; @@ -15,14 +15,28 @@ use utils::ErrorWriter; /// Program to check the validity of pkgs/by-name #[derive(Parser, Debug)] #[command(about)] -struct Args { +pub struct Args { /// Path to nixpkgs nixpkgs: PathBuf, + /// The version of the checks + /// Increasing this may cause failures for a Nixpkgs that succeeded before + /// TODO: Remove default once Nixpkgs CI passes this argument + #[arg(long, value_enum, default_value_t = Version::V0)] + version: Version, +} + +/// The version of the checks +#[derive(Debug, Clone, PartialEq, PartialOrd, ValueEnum)] +pub enum Version { + /// Initial version + V0, + /// Empty argument check + V1, } fn main() -> ExitCode { let args = Args::parse(); - match check_nixpkgs(&args.nixpkgs, vec![], &mut io::stderr()) { + match check_nixpkgs(&args.nixpkgs, args.version, vec![], &mut io::stderr()) { Ok(true) => { eprintln!("{}", "Validated successfully".green()); ExitCode::SUCCESS @@ -53,6 +67,7 @@ fn main() -> ExitCode { /// - `Ok(true)` if the structure is valid, nothing will have been written to `error_writer`. pub fn check_nixpkgs<W: io::Write>( nixpkgs_path: &Path, + version: Version, eval_accessible_paths: Vec<&Path>, error_writer: &mut W, ) -> anyhow::Result<bool> { @@ -75,7 +90,7 @@ pub fn check_nixpkgs<W: io::Write>( if error_writer.empty { // Only if we could successfully parse the structure, we do the semantic checks - eval::check_values(&mut error_writer, &nixpkgs, eval_accessible_paths)?; + eval::check_values(version, &mut error_writer, &nixpkgs, eval_accessible_paths)?; references::check_references(&mut error_writer, &nixpkgs)?; } } @@ -86,11 +101,11 @@ pub fn check_nixpkgs<W: io::Write>( mod tests { use crate::check_nixpkgs; use crate::structure; + use crate::Version; use anyhow::Context; - use std::env; use std::fs; use std::path::Path; - use tempfile::{tempdir, tempdir_in}; + use tempfile::{tempdir_in, TempDir}; #[test] fn tests_dir() -> anyhow::Result<()> { @@ -111,6 +126,13 @@ mod tests { Ok(()) } + // tempfile::tempdir needs to be wrapped in temp_env lock + // because it accesses TMPDIR environment variable. + fn tempdir() -> anyhow::Result<TempDir> { + let empty_list: [(&str, Option<&str>); 0] = []; + Ok(temp_env::with_vars(empty_list, tempfile::tempdir)?) + } + // We cannot check case-conflicting files into Nixpkgs (the channel would fail to // build), so we generate the case-conflicting file instead. #[test] @@ -157,34 +179,21 @@ mod tests { std::os::unix::fs::symlink("actual", temp_root.path().join("symlinked"))?; let tmpdir = temp_root.path().join("symlinked"); - // Then set TMPDIR to the symlinked directory - // Make sure to persist the old value so we can undo this later - let old_tmpdir = env::var("TMPDIR").ok(); - env::set_var("TMPDIR", &tmpdir); - - // Then run a simple test with this symlinked temporary directory - // This should be successful - test_nixpkgs("symlinked_tmpdir", Path::new("tests/success"), "")?; - - // Undo the env variable change - if let Some(old) = old_tmpdir { - env::set_var("TMPDIR", old); - } else { - env::remove_var("TMPDIR"); - } - - Ok(()) + temp_env::with_var("TMPDIR", Some(&tmpdir), || { + test_nixpkgs("symlinked_tmpdir", Path::new("tests/success"), "") + }) } fn test_nixpkgs(name: &str, path: &Path, expected_errors: &str) -> anyhow::Result<()> { let extra_nix_path = Path::new("tests/mock-nixpkgs.nix"); // We don't want coloring to mess up the tests - env::set_var("NO_COLOR", "1"); - - let mut writer = vec![]; - check_nixpkgs(&path, vec![&extra_nix_path], &mut writer) - .context(format!("Failed test case {name}"))?; + let writer = temp_env::with_var("NO_COLOR", Some("1"), || -> anyhow::Result<_> { + let mut writer = vec![]; + check_nixpkgs(&path, Version::V1, vec![&extra_nix_path], &mut writer) + .context(format!("Failed test case {name}"))?; + Ok(writer) + })?; let actual_errors = String::from_utf8_lossy(&writer); diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix index 50ad67617542..01bb27a48038 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/mock-nixpkgs.nix @@ -75,9 +75,14 @@ let # Turns autoCalledPackageFiles into an overlay that `callPackage`'s all of them autoCalledPackages = self: super: - builtins.mapAttrs (name: file: - self.callPackage file { } - ) autoCalledPackageFiles; + { + # Needed to be able to detect empty arguments in all-packages.nix + # See a more detailed description in pkgs/top-level/by-name-overlay.nix + _internalCallByNamePackageFile = file: self.callPackage file { }; + } + // builtins.mapAttrs + (name: self._internalCallByNamePackageFile) + autoCalledPackageFiles; # A list optionally containing the `all-packages.nix` file from the test case as an overlay optionalAllPackagesOverlay = diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/expected b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/expected index 1c6377d8aef0..51479e22d26f 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/expected +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-different-file/expected @@ -1 +1 @@ -pkgs.nonDerivation: This attribute is not defined as `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }`. +pkgs.nonDerivation: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }` with a non-empty second argument. diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/all-packages.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/all-packages.nix new file mode 100644 index 000000000000..d369dd7228dc --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/all-packages.nix @@ -0,0 +1,3 @@ +self: super: { + nonDerivation = self.callPackage ./pkgs/by-name/no/nonDerivation/package.nix { }; +} diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/expected b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/expected new file mode 100644 index 000000000000..51479e22d26f --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/expected @@ -0,0 +1 @@ +pkgs.nonDerivation: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }` with a non-empty second argument. diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/pkgs/by-name/no/nonDerivation/package.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/pkgs/by-name/no/nonDerivation/package.nix new file mode 100644 index 000000000000..a1b92efbbadb --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-empty-arg/pkgs/by-name/no/nonDerivation/package.nix @@ -0,0 +1 @@ +{ someDrv }: someDrv diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/expected b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/expected index 1c6377d8aef0..51479e22d26f 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/expected +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-call-package/expected @@ -1 +1 @@ -pkgs.nonDerivation: This attribute is not defined as `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }`. +pkgs.nonDerivation: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }` with a non-empty second argument. diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/expected b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/expected index 1c6377d8aef0..51479e22d26f 100644 --- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/expected +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-no-file/expected @@ -1 +1 @@ -pkgs.nonDerivation: This attribute is not defined as `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }`. +pkgs.nonDerivation: This attribute is manually defined (most likely in pkgs/top-level/all-packages.nix), which is only allowed if the definition is of the form `pkgs.callPackage pkgs/by-name/no/nonDerivation/package.nix { ... }` with a non-empty second argument. diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/all-packages.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/all-packages.nix new file mode 100644 index 000000000000..6b323756ae41 --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/all-packages.nix @@ -0,0 +1,5 @@ +self: super: { + foo = self.callPackage ./pkgs/by-name/fo/foo/package.nix { + enableBar = true; + }; +} diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix new file mode 100644 index 000000000000..af25d1450122 --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/default.nix @@ -0,0 +1 @@ +import ../mock-nixpkgs.nix { root = ./.; } diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/pkgs/by-name/fo/foo/package.nix b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/pkgs/by-name/fo/foo/package.nix new file mode 100644 index 000000000000..c811a7215a28 --- /dev/null +++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/tests/override-success/pkgs/by-name/fo/foo/package.nix @@ -0,0 +1,8 @@ +{ + someDrv, + enableBar ? false, +}: +if enableBar then + someDrv +else + {} diff --git a/nixpkgs/pkgs/test/vim/default.nix b/nixpkgs/pkgs/test/vim/default.nix index 4d8e59a306a8..33e1e551d4f9 100644 --- a/nixpkgs/pkgs/test/vim/default.nix +++ b/nixpkgs/pkgs/test/vim/default.nix @@ -3,7 +3,7 @@ , pkgs }: let - inherit (vimUtils) buildVimPluginFrom2Nix; + inherit (vimUtils) buildVimPlugin; packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; |