···3030 })
3131 ({ options, ... }: {
3232 key = "nodes.nix-pkgs";
3333- config = mkIf (!options.nixpkgs.pkgs.isDefined) {
3434- # Ensure we do not use aliases. Ideally this is only set
3535- # when the test framework is used by Nixpkgs NixOS tests.
3636- nixpkgs.config.allowAliases = false;
3737- # TODO: switch to nixpkgs.hostPlatform and make sure containers-imperative test still evaluates.
3838- nixpkgs.system = hostPkgs.stdenv.hostPlatform.system;
3939- };
3333+ config = optionalAttrs (!config.node.pkgsReadOnly) (
3434+ mkIf (!options.nixpkgs.pkgs.isDefined) {
3535+ # Ensure we do not use aliases. Ideally this is only set
3636+ # when the test framework is used by Nixpkgs NixOS tests.
3737+ nixpkgs.config.allowAliases = false;
3838+ # TODO: switch to nixpkgs.hostPlatform and make sure containers-imperative test still evaluates.
3939+ nixpkgs.system = hostPkgs.stdenv.hostPlatform.system;
4040+ }
4141+ );
4042 })
4143 testModuleArgs.config.extraBaseModules
4244 ];
···2727 in {
2828 name = "mongodb";
2929 meta = with pkgs.lib.maintainers; {
3030- maintainers = [ bluescreen303 offline cstrahan rvl phile314 ];
3030+ maintainers = [ bluescreen303 offline rvl phile314 ];
3131 };
32323333 nodes = {
+1-1
nixos/tests/osquery.nix
···3636 machine.succeed("echo 'SELECT address FROM etc_hosts LIMIT 1;' | osqueryi | tee /dev/console | grep -q '127.0.0.1'")
37373838 # osquery binaries respect configuration from the Nix config option.
3939- machine.succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"utc\";' | osqueryi | tee /dev/console | grep -q ${boolToString utc}")
3939+ machine.succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"utc\";' | osqueryi | tee /dev/console | grep -q ${lib.boolToString utc}")
40404141 # osquery binaries respect configuration from the Nix flags option.
4242 machine.succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"config_refresh\";' | osqueryi | tee /dev/console | grep -q ${config_refresh}")
+9-9
nixos/tests/sftpgo.nix
···17171818 # Returns an attributeset of users who are not system users.
1919 normalUsers = config:
2020- filterAttrs (name: user: user.isNormalUser) config.users.users;
2020+ lib.filterAttrs (name: user: user.isNormalUser) config.users.users;
21212222 # Returns true if a user is a member of the given group
2323 isMemberOf =
···2626 groupName:
2727 # users.users attrset
2828 user:
2929- any (x: x == user.name) config.users.groups.${groupName}.members;
2929+ lib.any (x: x == user.name) config.users.groups.${groupName}.members;
30303131 # Generates a valid SFTPGo user configuration for a given user
3232 # Will be converted to JSON and loaded on application startup.
···5252 # inside the dataprovider they will be automatically created.
5353 # You have to create the folder on the filesystem yourself
5454 virtual_folders =
5555- lib.optional (lib.isMemberOf config sharedFolderName user) {
5555+ lib.optional (isMemberOf config sharedFolderName user) {
5656 name = sharedFolderName;
5757 mapped_path = "${config.services.sftpgo.dataDir}/${sharedFolderName}";
5858 virtual_path = "/${sharedFolderName}";
···6363 lib.recursiveUpdate {
6464 "/" = [ "list" ]; # read-only top level directory
6565 "/private" = [ "*" ]; # private subdirectory, not shared with others
6666- } (lib.optionalAttrs (lib.isMemberOf config "shared" user) {
6666+ } (lib.optionalAttrs (isMemberOf config "shared" user) {
6767 "/shared" = [ "*" ];
6868 });
6969···8989 # of users and folders to import to SFTPGo.
9090 loadDataJson = config: pkgs.writeText "users-and-folders.json" (builtins.toJSON {
9191 users =
9292- lib.mapAttrsToList (name: user: lib.generateUserAttrSet config user) (normalUsers config);
9292+ lib.mapAttrsToList (name: user: generateUserAttrSet config user) (normalUsers config);
93939494 folders = [
9595 {
···144144{
145145 name = "sftpgo";
146146147147- meta.maintainers = with maintainers; [ yayayayaka ];
147147+ meta.maintainers = with lib.maintainers; [ yayayayaka ];
148148149149 nodes = {
150150 server = { nodes, ... }: {
···228228 # Created shared folder directories
229229 "d ${statePath}/${sharedFolderName} 2770 ${sftpgoUser} ${sharedFolderName} -"
230230 ]
231231- ++ mapAttrsToList (name: user:
231231+ ++ lib.mapAttrsToList (name: user:
232232 # Create private user directories
233233 ''
234234 d ${statePath}/users/${user.name} 0700 ${sftpgoUser} ${sftpgoGroup} -
···273273 networking.firewall.allowedTCPPorts = [ 22 80 ];
274274 services.sftpgo = {
275275 settings = {
276276- sftpd.bindings = mkForce [{
276276+ sftpd.bindings = lib.mkForce [{
277277 address = "";
278278 port = 22;
279279 }];
280280281281- httpd.bindings = mkForce [{
281281+ httpd.bindings = lib.mkForce [{
282282 address = "";
283283 port = 80;
284284 }];
···3939 export HOME=$(mktemp -d)
4040 '';
41414242+ # Tests currently fail on darwin because of a test in nsc which
4343+ # expects command output to contain a specific path. However
4444+ # the test strips table formatting from the command output in a naive way
4545+ # that removes all the table characters, including '-'.
4646+ # The nix build directory looks something like:
4747+ # /private/tmp/nix-build-nsc-2.8.1.drv-0/nsc_test2000598938/keys
4848+ # Then the `-` are removed from the path unintentionally and the test fails.
4949+ # This should be fixed upstream to avoid mangling the path when
5050+ # removing the table decorations from the command output.
5151+ doCheck = !stdenv.isDarwin;
5252+4253 meta = {
4354 description = "A tool for creating NATS account and user access configurations";
4455 homepage = "https://github.com/nats-io/nsc";
4556 license = with lib.licenses; [ asl20 ];
4657 maintainers = with lib.maintainers; [ cbrewster ];
4758 mainProgram = "nsc";
4848- broken = stdenv.isDarwin;
4959 };
5060}
···55555656 ### A ###
57575858+ a4term = a4; # Added 2023-10-06
5859 airfield = throw "airfield has been removed due to being unmaintained"; # Added 2023-05-19
5960 alertmanager-bot = throw "alertmanager-bot is broken and has been archived by upstream" ; # Added 2023-07-28
6061 alsaLib = alsa-lib; # Added 2021-06-09