···507507 compareLists compare [ "a" ] []
508508 => 1
509509 compareLists compare [ "a" "b" ] [ "a" "c" ]
510510- => 1
510510+ => -1
511511 */
512512 compareLists = cmp: a: b:
513513 if a == []
+10
maintainers/team-list.nix
···355355 shortName = "Linux Kernel";
356356 };
357357358358+ lumiguide = {
359359+ # Verify additions by approval of an already existing member of the team.
360360+ members = [
361361+ roelvandijk
362362+ lucus16
363363+ ];
364364+ scope = "Group registration for LumiGuide employees who collectively maintain packages.";
365365+ shortName = "Lumiguide employees";
366366+ };
367367+358368 lumina = {
359369 members = [
360370 romildo
-5
nixos/lib/eval-config.nix
···5050 # they way through, but has the last priority behind everything else.
5151 nixpkgs.system = lib.mkDefault system;
52525353- # Stash the value of the `system` argument. When using `nesting.children`
5454- # we want to have the same default value behavior (immediately above)
5555- # without any interference from the user's configuration.
5656- nixpkgs.initialSystem = system;
5757-5853 _module.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_);
5954 };
6055 };
+1-8
nixos/modules/misc/nixpkgs.nix
···6767 imports = [
6868 ./assertions.nix
6969 ./meta.nix
7070+ (mkRemovedOptionModule [ "nixpkgs" "initialSystem" ] "The NixOS options `nesting.clone` and `nesting.children` have been deleted, and replaced with named specialisation. Therefore `nixpgks.initialSystem` has no effect anymore.")
7071 ];
71727273 options.nixpkgs = {
···217218218219 Ignored when <code>nixpkgs.localSystem</code> is set.
219220 Ignored when <code>nixpkgs.pkgs</code> is set.
220220- '';
221221- };
222222-223223- initialSystem = mkOption {
224224- type = types.str;
225225- internal = true;
226226- description = ''
227227- Preserved value of <literal>system</literal> passed to <literal>eval-config.nix</literal>.
228221 '';
229222 };
230223 };
+80
nixos/modules/services/monitoring/grafana.nix
···1414 PATHS_PLUGINS = if builtins.isNull cfg.declarativePlugins then "${cfg.dataDir}/plugins" else declarativePlugins;
1515 PATHS_LOGS = "${cfg.dataDir}/log";
16161717+ SERVER_SERVE_FROM_SUBPATH = boolToString cfg.server.serveFromSubPath;
1718 SERVER_PROTOCOL = cfg.protocol;
1819 SERVER_HTTP_ADDR = cfg.addr;
1920 SERVER_HTTP_PORT = cfg.port;
···4142 USERS_AUTO_ASSIGN_ORG = boolToString cfg.users.autoAssignOrg;
4243 USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole;
43444545+ AUTH_DISABLE_LOGIN_FORM = boolToString cfg.auth.disableLoginForm;
4646+4447 AUTH_ANONYMOUS_ENABLED = boolToString cfg.auth.anonymous.enable;
4548 AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
4649 AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
5050+5151+ AUTH_AZUREAD_NAME = "Azure AD";
5252+ AUTH_AZUREAD_ENABLED = boolToString cfg.auth.azuread.enable;
5353+ AUTH_AZUREAD_ALLOW_SIGN_UP = boolToString cfg.auth.azuread.allowSignUp;
5454+ AUTH_AZUREAD_CLIENT_ID = cfg.auth.azuread.clientId;
5555+ AUTH_AZUREAD_SCOPES = "openid email profile";
5656+ AUTH_AZUREAD_AUTH_URL = "https://login.microsoftonline.com/${cfg.auth.azuread.tenantId}/oauth2/v2.0/authorize";
5757+ AUTH_AZUREAD_TOKEN_URL = "https://login.microsoftonline.com/${cfg.auth.azuread.tenantId}/oauth2/v2.0/token";
5858+ AUTH_AZUREAD_ALLOWED_DOMAINS = cfg.auth.azuread.allowedDomains;
5959+ AUTH_AZUREAD_ALLOWED_GROUPS = cfg.auth.azuread.allowedGroups;
6060+ AUTH_AZUREAD_ROLE_ATTRIBUTE_STRICT = false;
6161+4762 AUTH_GOOGLE_ENABLED = boolToString cfg.auth.google.enable;
4863 AUTH_GOOGLE_ALLOW_SIGN_UP = boolToString cfg.auth.google.allowSignUp;
4964 AUTH_GOOGLE_CLIENT_ID = cfg.auth.google.clientId;
···484499 };
485500 };
486501502502+ server = {
503503+ serveFromSubPath = mkOption {
504504+ description = "Serve Grafana from subpath specified in rootUrl setting";
505505+ default = false;
506506+ type = types.bool;
507507+ };
508508+ };
509509+487510 smtp = {
488511 enable = mkEnableOption "smtp";
489512 host = mkOption {
···546569 };
547570548571 auth = {
572572+ disableLoginForm = mkOption {
573573+ description = "Set to true to disable (hide) the login form, useful if you use OAuth";
574574+ default = false;
575575+ type = types.bool;
576576+ };
577577+549578 anonymous = {
550579 enable = mkOption {
551580 description = "Whether to allow anonymous access.";
···563592 type = types.str;
564593 };
565594 };
595595+ azuread = {
596596+ enable = mkOption {
597597+ description = "Whether to allow Azure AD OAuth.";
598598+ default = false;
599599+ type = types.bool;
600600+ };
601601+ allowSignUp = mkOption {
602602+ description = "Whether to allow sign up with Azure AD OAuth.";
603603+ default = false;
604604+ type = types.bool;
605605+ };
606606+ clientId = mkOption {
607607+ description = "Azure AD OAuth client ID.";
608608+ default = "";
609609+ type = types.str;
610610+ };
611611+ clientSecretFile = mkOption {
612612+ description = "Azure AD OAuth client secret.";
613613+ default = null;
614614+ type = types.nullOr types.path;
615615+ };
616616+ tenantId = mkOption {
617617+ description = ''
618618+ Tenant id used to create auth and token url. Default to "common"
619619+ , let user sign in with any tenant.
620620+ '';
621621+ default = "common";
622622+ type = types.str;
623623+ };
624624+ allowedDomains = mkOption {
625625+ description = ''
626626+ To limit access to authenticated users who are members of one or more groups,
627627+ set allowedGroups to a comma- or space-separated list of group object IDs.
628628+ You can find object IDs for a specific group on the Azure portal.
629629+ '';
630630+ default = "";
631631+ type = types.str;
632632+ };
633633+ allowedGroups = mkOption {
634634+ description = ''
635635+ Limits access to users who belong to specific domains.
636636+ Separate domains with space or comma.
637637+ '';
638638+ default = "";
639639+ type = types.str;
640640+ };
641641+ };
566642 google = {
567643 enable = mkOption {
568644 description = "Whether to allow Google OAuth2.";
···652728 set -o errexit -o pipefail -o nounset -o errtrace
653729 shopt -s inherit_errexit
654730731731+ ${optionalString (cfg.auth.azuread.clientSecretFile != null) ''
732732+ GF_AUTH_AZUREAD_CLIENT_SECRET="$(<${escapeShellArg cfg.auth.azuread.clientSecretFile})"
733733+ export GF_AUTH_AZUREAD_CLIENT_SECRET
734734+ ''}
655735 ${optionalString (cfg.auth.google.clientSecretFile != null) ''
656736 GF_AUTH_GOOGLE_CLIENT_SECRET="$(<${escapeShellArg cfg.auth.google.clientSecretFile})"
657737 export GF_AUTH_GOOGLE_CLIENT_SECRET
+1-1
nixos/tests/gitolite.nix
···107107 with subtest("gitolite server starts"):
108108 server.wait_for_unit("gitolite-init.service")
109109 server.wait_for_unit("sshd.service")
110110- client.succeed("ssh gitolite@server info")
110110+ client.succeed("ssh -n gitolite@server info")
111111112112 with subtest("admin can clone and configure gitolite-admin.git"):
113113 client.succeed(
···11+# How to update
22+33+1. `./fetchrepo.sh`
44+2. `./mkrepo.sh`
55+3. Check the `repo.json` diff for new stable versions of `tools`, `platform-tools`, `build-tools`, `emulator` and/or `ndk`
66+4. Update the relevant argument defaults in `compose-android-packages.nix`
···9191 "-Dalsa=${if !libOnly then "enabled" else "disabled"}"
9292 "-Dasyncns=${if !libOnly then "enabled" else "disabled"}"
9393 "-Davahi=${if zeroconfSupport then "enabled" else "disabled"}"
9494- "-Dbluez5=${if !libOnly then "enabled" else "disabled"}"
9494+ "-Dbluez5=${if !libOnly && bluetoothSupport then "enabled" else "disabled"}"
9595 # advanced bluetooth audio codecs are provided by gstreamer
9696 "-Dbluez5-gstreamer=${if (!libOnly && bluetoothSupport && advancedBluetoothCodecs) then "enabled" else "disabled"}"
9797 "-Ddatabase=simple"
+4
pkgs/servers/search/meilisearch/default.nix
···55, Security
66, DiskArbitration
77, Foundation
88+, nixosTests
89}:
9101011let version = "0.23.1";
···2526 ];
2627 cargoSha256 = "sha256-dz+1IQZRSeMEagI2dnOtR3A8prg4UZ2Om0pd1BUhuhE=";
2728 buildInputs = lib.optionals stdenv.isDarwin [ Security DiskArbitration Foundation ];
2929+ passthru.tests = {
3030+ meilisearch = nixosTests.meilisearch;
3131+ };
2832 meta = with lib; {
2933 broken = stdenv.isDarwin;
3034 description = "Powerful, fast, and an easy to use search engine ";
+18-14
pkgs/shells/nushell/default.nix
···1313, Security
1414, nghttp2
1515, libgit2
1616+, cargo-edit
1617, withExtraFeatures ? true
1718, testers
1819, nushell
···2930 sha256 = "sha256-4thvUSOSvH/bv0aW7hGGQMvtXdS+yDfZzPRLZmPZQMQ=";
3031 };
31323232- cargoSha256 = "sha256-ALUp6sPcmnJy/A078umyKg8KBv23P0vv8mwoO9OU+DQ=";
3333+ cargoSha256 = "sha256-Vd8R9EsO52q840HqRzc37PirZZyTZr+Bnow5qHEacJ0=";
3434+ # Since 0.34, nu has an indirect dependency on `zstd-sys` (via `polars` and
3535+ # `parquet`, for dataframe support), which by default has an impure build
3636+ # (git submodule for the `zstd` C library). The `pkg-config` feature flag
3737+ # fixes this, but it's hard to invoke this in the right place, because of
3838+ # the indirect dependencies. So add a direct dependency on `zstd-sys` here
3939+ # at the top level, along with this feature flag, to ensure that when
4040+ # `zstd-sys` is transitively invoked, it triggers a pure build using the
4141+ # system `zstd` library provided above.
4242+ depsExtraArgs = { nativeBuildInputs = [ cargo-edit ]; };
4343+ # cargo add has been merged in to cargo so the above can be removed once 1.62.0 is available in nixpkgs
4444+ # https://github.com/rust-lang/cargo/pull/10472
4545+ cargoUpdateHook = ''
4646+ cargo add zstd-sys --features pkg-config --offline
4747+ # write the change to the lockfile
4848+ cargo update --package zstd-sys --offline
4949+ '';
33503451 nativeBuildInputs = [ pkg-config ]
3552 ++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ];
···4057 ++ lib.optionals (withExtraFeatures && stdenv.isDarwin) [ AppKit nghttp2 libgit2 ];
41584259 buildFeatures = lib.optional withExtraFeatures "extra";
4343-4444- # Since 0.34, nu has an indirect dependency on `zstd-sys` (via `polars` and
4545- # `parquet`, for dataframe support), which by default has an impure build
4646- # (git submodule for the `zstd` C library). The `pkg-config` feature flag
4747- # fixes this, but it's hard to invoke this in the right place, because of
4848- # the indirect dependencies. So add a direct dependency on `zstd-sys` here
4949- # at the top level, along with this feature flag, to ensure that when
5050- # `zstd-sys` is transitively invoked, it triggers a pure build using the
5151- # system `zstd` library provided above.
5252- #
5353- # (If this patch needs updating, in a nushell repo add the zstd-sys line to
5454- # Cargo.toml, then `cargo update --package zstd-sys` to update Cargo.lock.)
5555- cargoPatches = [ ./use-system-zstd-lib.diff ];
56605761 # TODO investigate why tests are broken on darwin
5862 # failures show that tests try to write to paths
-32
pkgs/shells/nushell/use-system-zstd-lib.diff
···11-diff --git a/Cargo.lock b/Cargo.lock
22-index 6cebf66d..b6e40cd9 100644
33---- a/Cargo.lock
44-+++ b/Cargo.lock
55-@@ -2443,6 +2443,7 @@ dependencies = [
66- "rstest",
77- "serial_test",
88- "tempfile",
99-+ "zstd-sys",
1010- ]
1111-1212- [[package]]
1313-@@ -5365,4 +5366,5 @@ checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b"
1414- dependencies = [
1515- "cc",
1616- "libc",
1717-+ "pkg-config",
1818- ]
1919-diff --git a/Cargo.toml b/Cargo.toml
2020-index 0791d462..d520d9ae 100644
2121---- a/Cargo.toml
2222-+++ b/Cargo.toml
2323-@@ -58,6 +58,9 @@ rayon = "1.5.1"
2424- reedline = { version = "0.6.0", features = ["bashisms"]}
2525- is_executable = "1.0.1"
2626-2727-+# Specify that the indirect dependency ztsd-sys should pick up the system zstd C library
2828-+zstd-sys = { version = "2", features = [ "pkg-config" ] }
2929-+
3030- [dev-dependencies]
3131- nu-test-support = { path="./crates/nu-test-support", version = "0.63.0" }
3232- tempfile = "3.2.0"
+5-3
pkgs/stdenv/darwin/make-bootstrap-tools.nix
···11{ pkgspath ? ../../.., test-pkgspath ? pkgspath
22-, system ? builtins.currentSystem, crossSystem ? null, bootstrapFiles ? null
22+, localSystem ? { system = builtins.currentSystem; }
33+, crossSystem ? null
44+, bootstrapFiles ? null
35}:
4657let cross = if crossSystem != null
···1113 in (import "${pkgspath}/pkgs/stdenv/darwin" args').stagesDarwin;
1214 }
1315 else {};
1414-in with import pkgspath ({ inherit system; } // cross // custom-bootstrap);
1616+in with import pkgspath ({ inherit localSystem; } // cross // custom-bootstrap);
15171618let
1719 llvmPackages = llvmPackages_11;
···364366 test-pkgs = import test-pkgspath {
365367 # if the bootstrap tools are for another platform, we should be testing
366368 # that platform.
367367- system = if crossSystem != null then crossSystem else system;
369369+ localSystem = if crossSystem != null then crossSystem else localSystem;
368370369371 stdenvStages = args: let
370372 args' = args // { inherit bootstrapLlvmVersion bootstrapFiles; };
···99 tempAllow pkgs.authy "2.1.0" [ "electron-9.4.4" ];
1010 };
1111 };
1212- # Allow with forgetting
1313- tempAllow = p: v: pa:
1414- lib.optionals (lib.assertMsg (p.version == v) "${p.name} is no longer at version ${v}, consider removing the tempAllow") pa;
1515- # For this test we don't _really_ care about the version though,
1616- # only about evaluation strictness
1717- tempAllowAlike = p: v: pa: builtins.seq v builtins.seq p.version pa;
1212+ # A simplification of `tempAllow` that doesn't check the version, but
1313+ # has the same strictness characteristics. Actually checking a version
1414+ # here would add undue maintenance.
1515+ #
1616+ # Original:
1717+ # tempAllow = p: v: pa:
1818+ # lib.optionals (lib.assertMsg (p.version == v) "${p.name} is no longer at version ${v}, consider removing the tempAllow") pa;
1919+ #
2020+ tempAllow = p: v: pa: builtins.seq v builtins.seq p.version pa;
18211922 in pkgs.hello;
2023