diff --git a/lib/licenses.nix b/lib/licenses.nix index 333d32ded..88606f968 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -721,10 +721,9 @@ lib.mapAttrs mkLicense ({ fullName = "ISC License"; }; - # Proprietary binaries; free to redistribute without modification. databricks = { - fullName = "Databricks Proprietary License"; - url = "https://pypi.org/project/databricks-connect"; + fullName = "Databricks License"; + url = "https://www.databricks.com/legal/db-license"; free = false; }; diff --git a/lib/modules.nix b/lib/modules.nix index ef0be5b27..381480a1a 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -861,7 +861,7 @@ let else # (nixos-option detects this specific error message and gives it special # handling. If changed here, please change it there too.) - throw "The option `${showOption loc}' is used but not defined."; + throw "The option `${showOption loc}' was accessed but has no value defined. Try setting the option."; isDefined = defsFinal != []; diff --git a/lib/strings.nix b/lib/strings.nix index 54a5b9c67..ffde541c6 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -408,7 +408,6 @@ rec { start ? false, end ? false, }: - s: let # Define our own whitespace character class instead of using # `[:space:]`, which is not well-defined. @@ -425,12 +424,14 @@ rec { "(.*[^${chars}])[${chars}]*" else "(.*)"; - + in + s: + let # If the string was empty or entirely whitespace, # then the regex may not match and `res` will be `null`. res = match regex s; in - optionalString (res != null) (head res); + optionalString (res != null) (head res); /** Construct a Unix-style, colon-separated search path consisting of diff --git a/lib/systems/default.nix b/lib/systems/default.nix index cee09791b..955bfa73e 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -376,6 +376,7 @@ let "armv7l" = "armv7"; "armv6l" = "arm"; "armv5tel" = "armv5te"; + "riscv32" = "riscv32gc"; "riscv64" = "riscv64gc"; }.${cpu.name} or cpu.name; vendor_ = final.rust.platform.vendor; diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 09547b2e0..a14fe8cb3 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -312,7 +312,7 @@ checkConfigOutput '^".*Hello.*"$' options.namedPackage.description ./declare-mkP checkConfigOutput '^"hello"$' config.pathPackage.pname ./declare-mkPackageOption.nix checkConfigOutput '^"pkgs\.hello\.override \{ stdenv = pkgs\.clangStdenv; \}"$' options.packageWithExample.example.text ./declare-mkPackageOption.nix checkConfigOutput '^".*Example extra description\..*"$' options.packageWithExtraDescription.description ./declare-mkPackageOption.nix -checkConfigError 'The option .undefinedPackage. is used but not defined' config.undefinedPackage ./declare-mkPackageOption.nix +checkConfigError 'The option .undefinedPackage. was accessed but has no value defined. Try setting the option.' config.undefinedPackage ./declare-mkPackageOption.nix checkConfigOutput '^null$' config.nullablePackage ./declare-mkPackageOption.nix checkConfigOutput '^"null or package"$' options.nullablePackageWithDefault.type.description ./declare-mkPackageOption.nix checkConfigOutput '^"myPkgs\.hello"$' options.packageWithPkgsText.defaultText.text ./declare-mkPackageOption.nix @@ -410,7 +410,7 @@ checkConfigOutput '^null$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep- checkConfigOutput '^"24"$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix # Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix -checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix +checkConfigError 'The option .* was accessed but has no value defined. Try setting the option.' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix checkConfigOutput '^"24"$' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix # submodules in freeformTypes should have their locations annotated checkConfigOutput '/freeform-submodules.nix"$' config.fooDeclarations.0 ./freeform-submodules.nix @@ -469,8 +469,8 @@ checkConfigOutput "{}" config.attrs.a ./emptyValues.nix checkConfigOutput "null" config.null.a ./emptyValues.nix checkConfigOutput "{}" config.submodule.a ./emptyValues.nix # These types don't have empty values -checkConfigError 'The option .int.a. is used but not defined' config.int.a ./emptyValues.nix -checkConfigError 'The option .nonEmptyList.a. is used but not defined' config.nonEmptyList.a ./emptyValues.nix +checkConfigError 'The option .int.a. was accessed but has no value defined. Try setting the option.' config.int.a ./emptyValues.nix +checkConfigError 'The option .nonEmptyList.a. was accessed but has no value defined. Try setting the option.' config.nonEmptyList.a ./emptyValues.nix # types.unique # requires a single definition