diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1b3ed8207b09..645938338b63 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3639,6 +3639,11 @@ githubId = 200617; name = "Ben Sima"; }; + bstanderline = { + name = "bstanderline"; + github = "bstanderline"; + githubId = 153822813; + }; btlvr = { email = "btlvr@protonmail.com"; github = "btlvr"; @@ -17378,6 +17383,12 @@ githubId = 7191115; name = "Nova Leary"; }; + novmar = { + email = "novotny@marnov.cz"; + github = "novmar"; + githubId = 26750149; + name = "Marcel Novotny"; + }; novoxd = { email = "radnovox@gmail.com"; github = "novoxd"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 3746a1440746..dd74d1f080ac 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -597,6 +597,7 @@ with lib.maintainers; jitsi = { members = [ cleeyv + novmar ryantm lassulus yayayayaka diff --git a/nixos/modules/services/web-apps/agorakit.nix b/nixos/modules/services/web-apps/agorakit.nix index 583f68ee5881..b7c86d7585dd 100644 --- a/nixos/modules/services/web-apps/agorakit.nix +++ b/nixos/modules/services/web-apps/agorakit.nix @@ -13,6 +13,7 @@ let user = cfg.user; group = cfg.group; + php = lib.getExe pkgs.php82; # shell script for local administration artisan = pkgs.writeScriptBin "agorakit" '' @@ -25,7 +26,7 @@ let exec "$@" fi } - sudo ${lib.getExe pkgs.php} artisan "$@" + sudo ${php} artisan "$@" ''; tlsEnabled = cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME; @@ -447,9 +448,9 @@ in fi # migrate & seed db - ${pkgs.php}/bin/php artisan key:generate --force - ${pkgs.php}/bin/php artisan migrate --force - ${pkgs.php}/bin/php artisan config:cache + ${php} artisan key:generate --force + ${php} artisan migrate --force + ${php} artisan config:cache ''; }; diff --git a/nixos/modules/services/web-apps/calibre-web.nix b/nixos/modules/services/web-apps/calibre-web.nix index 8f61a8ac9e97..217adb801236 100644 --- a/nixos/modules/services/web-apps/calibre-web.nix +++ b/nixos/modules/services/web-apps/calibre-web.nix @@ -4,7 +4,7 @@ let cfg = config.services.calibre-web; dataDir = if lib.hasPrefix "/" cfg.dataDir then cfg.dataDir else "/var/lib/${cfg.dataDir}"; - inherit (lib) concatStringsSep mkEnableOption mkIf mkOption optional optionalString types; + inherit (lib) concatStringsSep mkEnableOption mkIf mkOption optional optionals optionalString types; in { options = { @@ -129,7 +129,10 @@ in "config_reverse_proxy_login_header_name = '${cfg.options.reverseProxyAuth.header}'" ] ++ optional (cfg.options.calibreLibrary != null) "config_calibre_dir = '${cfg.options.calibreLibrary}'" - ++ optional cfg.options.enableBookConversion "config_converterpath = '${pkgs.calibre}/bin/ebook-convert'" + ++ optionals cfg.options.enableBookConversion [ + "config_converterpath = '${pkgs.calibre}/bin/ebook-convert'" + "config_binariesdir = '${pkgs.calibre}/bin/'" + ] ++ optional cfg.options.enableKepubify "config_kepubifypath = '${pkgs.kepubify}/bin/kepubify'" ); in diff --git a/nixos/modules/services/web-apps/dolibarr.nix b/nixos/modules/services/web-apps/dolibarr.nix index 136720ef67b4..877490652989 100644 --- a/nixos/modules/services/web-apps/dolibarr.nix +++ b/nixos/modules/services/web-apps/dolibarr.nix @@ -312,7 +312,7 @@ in systemd.services."phpfpm-dolibarr".after = mkIf cfg.database.createLocally [ "mysql.service" ]; services.phpfpm.pools.dolibarr = { inherit (cfg) user group; - phpPackage = pkgs.php.buildEnv { + phpPackage = pkgs.php83.buildEnv { extensions = { enabled, all }: enabled ++ [ all.calendar ]; # recommended by dolibarr web application extraConfig = '' @@ -339,13 +339,17 @@ in description = "dolibarr configuration file management via NixOS"; wantedBy = [ "multi-user.target" ]; - script = '' - # extract the 'main instance unique id' secret that the dolibarr installer generated for us, store it in a file for use by our own NixOS generated configuration file - ${pkgs.php}/bin/php -r "include '${cfg.stateDir}/conf.php'; file_put_contents('${cfg.stateDir}/dolibarr_main_instance_unique_id', \$dolibarr_main_instance_unique_id);" + script = + let + php = lib.getExe config.services.phpfpm.pools.dolibarr.phpPackage; + in + '' + # extract the 'main instance unique id' secret that the dolibarr installer generated for us, store it in a file for use by our own NixOS generated configuration file + ${php} -r "include '${cfg.stateDir}/conf.php'; file_put_contents('${cfg.stateDir}/dolibarr_main_instance_unique_id', \$dolibarr_main_instance_unique_id);" - # replace configuration file generated by installer with the NixOS generated configuration file - install -m 440 ${mkConfigFile "conf.php" cfg.settings} '${cfg.stateDir}/conf.php' - ''; + # replace configuration file generated by installer with the NixOS generated configuration file + install -m 440 ${mkConfigFile "conf.php" cfg.settings} '${cfg.stateDir}/conf.php' + ''; serviceConfig = { Type = "oneshot"; diff --git a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix index 680257d23b21..880ae5f55994 100644 --- a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix +++ b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix @@ -192,7 +192,7 @@ in ) ); }; - phpPackage = pkgs.php.withExtensions ({ enabled, all }: [ all.imagick ] ++ enabled); + phpPackage = pkgs.php83.withExtensions ({ enabled, all }: [ all.imagick ] ++ enabled); phpOptions = '' date.timezone = "${cfg.timezone}" ''; diff --git a/nixos/modules/services/web-apps/monica.nix b/nixos/modules/services/web-apps/monica.nix index 16263e70c2e8..00bb9bb7de2d 100644 --- a/nixos/modules/services/web-apps/monica.nix +++ b/nixos/modules/services/web-apps/monica.nix @@ -15,6 +15,8 @@ with lib; let user = cfg.user; group = cfg.group; + php = lib.getExe pkgs.php83; + # shell script for local administration artisan = pkgs.writeScriptBin "monica" '' #! ${pkgs.runtimeShell} @@ -26,7 +28,7 @@ with lib; let exec "$@" fi } - sudo ${pkgs.php}/bin/php artisan "$@" + sudo ${php} artisan "$@" ''; tlsEnabled = cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME; @@ -419,8 +421,8 @@ in { fi # migrate & seed db - ${pkgs.php}/bin/php artisan key:generate --force - ${pkgs.php}/bin/php artisan setup:production -v --force + ${php} artisan key:generate --force + ${php} artisan setup:production -v --force ''; }; @@ -432,7 +434,7 @@ in { Type = "oneshot"; User = user; WorkingDirectory = "${monica}"; - ExecStart = "${pkgs.php}/bin/php ${monica}/artisan schedule:run -v"; + ExecStart = "${php} ${monica}/artisan schedule:run -v"; }; }; @@ -465,4 +467,3 @@ in { }; }; } - diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index ed436dad32e0..8c5c45dbfc44 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -130,10 +130,17 @@ let --quiet \ ${command} elif [[ "$USER" != nextcloud ]]; then - exec /run/wrappers/bin/sudo \ - --preserve-env=CREDENTIALS_DIRECTORY \ - --user=nextcloud \ - ${command} + if [[ -x /run/wrappers/bin/sudo ]]; then + exec /run/wrappers/bin/sudo \ + --preserve-env=CREDENTIALS_DIRECTORY \ + --user=nextcloud \ + ${command} + else + exec ${lib.getExe' pkgs.util-linux "runuser"} \ + --whitelist-environment=CREDENTIALS_DIRECTORY \ + --user=nextcloud \ + ${command} + fi else exec ${command} fi diff --git a/nixos/modules/services/web-apps/rutorrent.nix b/nixos/modules/services/web-apps/rutorrent.nix index be2af96ae05b..d1c3c2eafe38 100644 --- a/nixos/modules/services/web-apps/rutorrent.nix +++ b/nixos/modules/services/web-apps/rutorrent.nix @@ -211,7 +211,7 @@ in $throttleMaxSpeed = 327625*1024; $pathToExternals = array( - "php" => "${pkgs.php}/bin/php", // Something like /usr/bin/php. If empty, will be found in PATH. + "php" => "${pkgs.php82}/bin/php", // Something like /usr/bin/php. If empty, will be found in PATH. "curl" => "${pkgs.curl}/bin/curl", // Something like /usr/bin/curl. If empty, will be found in PATH. "gzip" => "${pkgs.gzip}/bin/gzip", // Something like /usr/bin/gzip. If empty, will be found in PATH. "id" => "${pkgs.coreutils}/bin/id", // Something like /usr/bin/id. If empty, will be found in PATH. diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index da00f686ce31..7bf0d937207f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -342,7 +342,7 @@ in { documentation = pkgs.callPackage ../modules/misc/documentation/test.nix { inherit nixosLib; }; doh-proxy-rust = handleTest ./doh-proxy-rust.nix {}; dokuwiki = runTest ./dokuwiki.nix; - dolibarr = handleTest ./dolibarr.nix {}; + dolibarr = runTest ./dolibarr.nix; domination = handleTest ./domination.nix {}; dovecot = handleTest ./dovecot.nix {}; drawterm = discoverTests (import ./drawterm.nix); @@ -557,7 +557,7 @@ in { hub = handleTest ./git/hub.nix {}; hydra = handleTest ./hydra {}; i3wm = handleTest ./i3wm.nix {}; - icingaweb2 = handleTest ./icingaweb2.nix {}; + icingaweb2 = runTest ./icingaweb2.nix; ifm = handleTest ./ifm.nix {}; iftop = handleTest ./iftop.nix {}; immich = handleTest ./web-apps/immich.nix {}; @@ -725,7 +725,7 @@ in { mollysocket = handleTest ./mollysocket.nix { }; monado = handleTest ./monado.nix {}; monetdb = handleTest ./monetdb.nix {}; - monica = handleTest ./web-apps/monica.nix {}; + monica = runTest ./web-apps/monica.nix; mongodb = runTest ./mongodb.nix; mongodb-ce = runTest ({ config, ... }: { imports = [ ./mongodb.nix ]; @@ -797,15 +797,15 @@ in { nfs3 = handleTest ./nfs { version = 3; }; nfs4 = handleTest ./nfs { version = 4; }; nghttpx = handleTest ./nghttpx.nix {}; - nginx = handleTest ./nginx.nix {}; - nginx-auth = handleTest ./nginx-auth.nix {}; - nginx-etag = handleTest ./nginx-etag.nix {}; - nginx-etag-compression = handleTest ./nginx-etag-compression.nix {}; - nginx-globalredirect = handleTest ./nginx-globalredirect.nix {}; + nginx = runTest ./nginx.nix; + nginx-auth = runTest ./nginx-auth.nix; + nginx-etag = runTest ./nginx-etag.nix; + nginx-etag-compression = runTest ./nginx-etag-compression.nix; + nginx-globalredirect = runTest ./nginx-globalredirect.nix; nginx-http3 = handleTest ./nginx-http3.nix {}; - nginx-mime = handleTest ./nginx-mime.nix {}; - nginx-modsecurity = handleTest ./nginx-modsecurity.nix {}; - nginx-moreheaders = handleTest ./nginx-moreheaders.nix {}; + nginx-mime = runTest ./nginx-mime.nix; + nginx-modsecurity = runTest ./nginx-modsecurity.nix; + nginx-moreheaders = runTest ./nginx-moreheaders.nix; nginx-njs = handleTest ./nginx-njs.nix {}; nginx-proxyprotocol = handleTest ./nginx-proxyprotocol {}; nginx-pubhtml = handleTest ./nginx-pubhtml.nix {}; @@ -1258,7 +1258,7 @@ in { umurmur = handleTest ./umurmur.nix {}; unbound = handleTest ./unbound.nix {}; unifi = handleTest ./unifi.nix {}; - unit-php = handleTest ./web-servers/unit-php.nix {}; + unit-php = runTest ./web-servers/unit-php.nix; unit-perl = handleTest ./web-servers/unit-perl.nix {}; upnp.iptables = handleTest ./upnp.nix { useNftables = false; }; upnp.nftables = handleTest ./upnp.nix { useNftables = true; }; @@ -1307,7 +1307,7 @@ in { weblate = handleTest ./web-apps/weblate.nix {}; whisparr = handleTest ./whisparr.nix {}; whoogle-search = handleTest ./whoogle-search.nix {}; - wiki-js = handleTest ./wiki-js.nix {}; + wiki-js = runTest ./wiki-js.nix; wine = handleTest ./wine.nix {}; wireguard = handleTest ./wireguard {}; wg-access-server = handleTest ./wg-access-server.nix {}; @@ -1315,7 +1315,7 @@ in { wmderland = handleTest ./wmderland.nix {}; workout-tracker = handleTest ./workout-tracker.nix {}; wpa_supplicant = import ./wpa_supplicant.nix { inherit pkgs runTest; }; - wordpress = handleTest ./wordpress.nix {}; + wordpress = runTest ./wordpress.nix; wrappers = handleTest ./wrappers.nix {}; writefreely = handleTest ./web-apps/writefreely.nix {}; wstunnel = runTest ./wstunnel.nix; diff --git a/nixos/tests/dolibarr.nix b/nixos/tests/dolibarr.nix index 5d7098f763f5..5a67a4a66e77 100644 --- a/nixos/tests/dolibarr.nix +++ b/nixos/tests/dolibarr.nix @@ -1,62 +1,60 @@ -import ./make-test-python.nix ( - { pkgs, lib, ... }: - { - name = "dolibarr"; - meta.maintainers = [ ]; +{ ... }: +{ + name = "dolibarr"; + meta.maintainers = [ ]; - nodes.machine = - { ... }: - { - services.dolibarr = { - enable = true; - domain = "localhost"; - nginx = { - forceSSL = false; - enableACME = false; - }; + nodes.machine = + { ... }: + { + services.dolibarr = { + enable = true; + domain = "localhost"; + nginx = { + forceSSL = false; + enableACME = false; }; - - networking.firewall.allowedTCPPorts = [ 80 ]; }; - testScript = '' - from html.parser import HTMLParser - start_all() + networking.firewall.allowedTCPPorts = [ 80 ]; + }; - csrf_token = None - class TokenParser(HTMLParser): - def handle_starttag(self, tag, attrs): - attrs = dict(attrs) # attrs is an assoc list originally - if tag == 'input' and attrs.get('name') == 'token': - csrf_token = attrs.get('value') - print(f'[+] Caught CSRF token: {csrf_token}') - def handle_endtag(self, tag): pass - def handle_data(self, data): pass + testScript = '' + from html.parser import HTMLParser + start_all() - machine.wait_for_unit("phpfpm-dolibarr.service") - machine.wait_for_unit("nginx.service") - machine.wait_for_open_port(80) - # Sanity checks on URLs. - # machine.succeed("curl -fL http://localhost/index.php") - # machine.succeed("curl -fL http://localhost/") - # Perform installation. - machine.succeed('curl -fL -X POST http://localhost/install/check.php -F selectlang=auto') - machine.succeed('curl -fL -X POST http://localhost/install/fileconf.php -F selectlang=auto') - # First time is to write the configuration file correctly. - machine.succeed('curl -fL -X POST http://localhost/install/step1.php -F "testpost=ok" -F "action=set" -F "selectlang=auto"') - # Now, we have a proper conf.php in $stateDir. - assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") - machine.succeed('curl -fL -X POST http://localhost/install/step2.php --data "testpost=ok&action=set&dolibarr_main_db_character_set=utf8&dolibarr_main_db_collation=utf8_unicode_ci&selectlang=auto"') - machine.succeed('curl -fL -X POST http://localhost/install/step4.php --data "testpost=ok&action=set&selectlang=auto"') - machine.succeed('curl -fL -X POST http://localhost/install/step5.php --data "testpost=ok&action=set&login=root&pass=hunter2&pass_verif=hunter2&selectlang=auto"') - # Now, we have installed the machine, let's verify we still have the right configuration. - assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") - # We do not want any redirect now as we have installed the machine. - machine.succeed('curl -f -X GET http://localhost') - # Test authentication to the webservice. - parser = TokenParser() - parser.feed(machine.succeed('curl -f -X GET http://localhost/index.php?mainmenu=login&username=root')) - machine.succeed(f'curl -f -X POST http://localhost/index.php?mainmenu=login&token={csrf_token}&username=root&password=hunter2') - ''; - } -) + csrf_token = None + class TokenParser(HTMLParser): + def handle_starttag(self, tag, attrs): + attrs = dict(attrs) # attrs is an assoc list originally + if tag == 'input' and attrs.get('name') == 'token': + csrf_token = attrs.get('value') + print(f'[+] Caught CSRF token: {csrf_token}') + def handle_endtag(self, tag): pass + def handle_data(self, data): pass + + machine.wait_for_unit("phpfpm-dolibarr.service") + machine.wait_for_unit("nginx.service") + machine.wait_for_open_port(80) + # Sanity checks on URLs. + # machine.succeed("curl -fL http://localhost/index.php") + # machine.succeed("curl -fL http://localhost/") + # Perform installation. + machine.succeed('curl -fL -X POST http://localhost/install/check.php -F selectlang=auto') + machine.succeed('curl -fL -X POST http://localhost/install/fileconf.php -F selectlang=auto') + # First time is to write the configuration file correctly. + machine.succeed('curl -fL -X POST http://localhost/install/step1.php -F "testpost=ok" -F "action=set" -F "selectlang=auto"') + # Now, we have a proper conf.php in $stateDir. + assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") + machine.succeed('curl -fL -X POST http://localhost/install/step2.php --data "testpost=ok&action=set&dolibarr_main_db_character_set=utf8&dolibarr_main_db_collation=utf8_unicode_ci&selectlang=auto"') + machine.succeed('curl -fL -X POST http://localhost/install/step4.php --data "testpost=ok&action=set&selectlang=auto"') + machine.succeed('curl -fL -X POST http://localhost/install/step5.php --data "testpost=ok&action=set&login=root&pass=hunter2&pass_verif=hunter2&selectlang=auto"') + # Now, we have installed the machine, let's verify we still have the right configuration. + assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") + # We do not want any redirect now as we have installed the machine. + machine.succeed('curl -f -X GET http://localhost') + # Test authentication to the webservice. + parser = TokenParser() + parser.feed(machine.succeed('curl -f -X GET http://localhost/index.php?mainmenu=login&username=root')) + machine.succeed(f'curl -f -X POST http://localhost/index.php?mainmenu=login&token={csrf_token}&username=root&password=hunter2') + ''; +} diff --git a/nixos/tests/icingaweb2.nix b/nixos/tests/icingaweb2.nix index 2039fbcb2bcd..08fc4f262c08 100644 --- a/nixos/tests/icingaweb2.nix +++ b/nixos/tests/icingaweb2.nix @@ -1,76 +1,74 @@ -import ./make-test-python.nix ( - { pkgs, ... }: - { - name = "icingaweb2"; - meta = { - maintainers = pkgs.lib.teams.helsinki-systems.members; - }; +{ pkgs, ... }: +{ + name = "icingaweb2"; + meta = { + maintainers = pkgs.lib.teams.helsinki-systems.members; + }; - nodes = { - icingaweb2 = - { config, pkgs, ... }: - { - services.icingaweb2 = { - enable = true; + nodes = { + icingaweb2 = + { config, pkgs, ... }: + { + services.icingaweb2 = { + enable = true; - modulePackages = with pkgs.icingaweb2Modules; { - particles = theme-particles; - spring = theme-spring; + modulePackages = with pkgs.icingaweb2Modules; { + particles = theme-particles; + spring = theme-spring; + }; + + modules = { + doc.enable = true; + migrate.enable = true; + setup.enable = true; + test.enable = true; + translation.enable = true; + }; + + generalConfig = { + global = { + module_path = "${pkgs.icingaweb2}/modules"; }; + }; - modules = { - doc.enable = true; - migrate.enable = true; - setup.enable = true; - test.enable = true; - translation.enable = true; + authentications = { + icingaweb = { + backend = "external"; }; + }; - generalConfig = { - global = { - module_path = "${pkgs.icingaweb2}/modules"; - }; + groupBackends = { + icingaweb = { + backend = "db"; + resource = "icingaweb_db"; }; + }; - authentications = { - icingaweb = { - backend = "external"; - }; + resources = { + # Not used, so no DB server needed + icingaweb_db = { + type = "db"; + db = "mysql"; + host = "localhost"; + username = "icingaweb2"; + password = "icingaweb2"; + dbname = "icingaweb2"; }; + }; - groupBackends = { - icingaweb = { - backend = "db"; - resource = "icingaweb_db"; - }; - }; - - resources = { - # Not used, so no DB server needed - icingaweb_db = { - type = "db"; - db = "mysql"; - host = "localhost"; - username = "icingaweb2"; - password = "icingaweb2"; - dbname = "icingaweb2"; - }; - }; - - roles = { - Administrators = { - users = "*"; - permissions = "*"; - }; + roles = { + Administrators = { + users = "*"; + permissions = "*"; }; }; }; - }; + }; + }; - testScript = '' - start_all() - icingaweb2.wait_for_unit("multi-user.target") - icingaweb2.succeed("curl -sSf http://icingaweb2/authentication/login") - ''; - } -) + testScript = '' + start_all() + icingaweb2.wait_for_unit("multi-user.target") + icingaweb2.succeed("curl -sSf http://icingaweb2/authentication/login") + ''; +} diff --git a/nixos/tests/nginx-auth.nix b/nixos/tests/nginx-auth.nix index eb04b2571941..1042eee2e0ab 100644 --- a/nixos/tests/nginx-auth.nix +++ b/nixos/tests/nginx-auth.nix @@ -1,54 +1,52 @@ -import ./make-test-python.nix ( - { pkgs, ... }: - { - name = "nginx-auth"; +{ pkgs, ... }: +{ + name = "nginx-auth"; - nodes = { - webserver = - { pkgs, lib, ... }: - { - services.nginx = - let - root = pkgs.runCommand "testdir" { } '' - mkdir "$out" - echo hello world > "$out/index.html" - ''; - in - { - enable = true; + nodes = { + webserver = + { pkgs, lib, ... }: + { + services.nginx = + let + root = pkgs.runCommand "testdir" { } '' + mkdir "$out" + echo hello world > "$out/index.html" + ''; + in + { + enable = true; - virtualHosts.lockedroot = { - inherit root; - basicAuth.alice = "pwofa"; - }; + virtualHosts.lockedroot = { + inherit root; + basicAuth.alice = "pwofa"; + }; - virtualHosts.lockedsubdir = { - inherit root; - locations."/sublocation/" = { - alias = "${root}/"; - basicAuth.bob = "pwofb"; - }; + virtualHosts.lockedsubdir = { + inherit root; + locations."/sublocation/" = { + alias = "${root}/"; + basicAuth.bob = "pwofb"; }; }; - }; - }; + }; + }; + }; - testScript = '' - webserver.wait_for_unit("nginx") - webserver.wait_for_open_port(80) + testScript = '' + webserver.wait_for_unit("nginx") + webserver.wait_for_open_port(80) - webserver.fail("curl --fail --resolve lockedroot:80:127.0.0.1 http://lockedroot") - webserver.succeed( - "curl --fail --resolve lockedroot:80:127.0.0.1 http://alice:pwofa@lockedroot" - ) + webserver.fail("curl --fail --resolve lockedroot:80:127.0.0.1 http://lockedroot") + webserver.succeed( + "curl --fail --resolve lockedroot:80:127.0.0.1 http://alice:pwofa@lockedroot" + ) - webserver.succeed("curl --fail --resolve lockedsubdir:80:127.0.0.1 http://lockedsubdir") - webserver.fail( - "curl --fail --resolve lockedsubdir:80:127.0.0.1 http://lockedsubdir/sublocation/index.html" - ) - webserver.succeed( - "curl --fail --resolve lockedsubdir:80:127.0.0.1 http://bob:pwofb@lockedsubdir/sublocation/index.html" - ) - ''; - } -) + webserver.succeed("curl --fail --resolve lockedsubdir:80:127.0.0.1 http://lockedsubdir") + webserver.fail( + "curl --fail --resolve lockedsubdir:80:127.0.0.1 http://lockedsubdir/sublocation/index.html" + ) + webserver.succeed( + "curl --fail --resolve lockedsubdir:80:127.0.0.1 http://bob:pwofb@lockedsubdir/sublocation/index.html" + ) + ''; +} diff --git a/nixos/tests/nginx-etag-compression.nix b/nixos/tests/nginx-etag-compression.nix index b012c8b1c15c..a194c6fd26b4 100644 --- a/nixos/tests/nginx-etag-compression.nix +++ b/nixos/tests/nginx-etag-compression.nix @@ -1,4 +1,5 @@ -import ./make-test-python.nix { +{ ... }: +{ name = "nginx-etag-compression"; nodes.machine = diff --git a/nixos/tests/nginx-etag.nix b/nixos/tests/nginx-etag.nix index e1154466d796..88aaefd0e476 100644 --- a/nixos/tests/nginx-etag.nix +++ b/nixos/tests/nginx-etag.nix @@ -1,4 +1,5 @@ -import ./make-test-python.nix { +{ ... }: +{ name = "nginx-etag"; nodes = { @@ -85,7 +86,7 @@ import ./make-test-python.nix { testScript = { nodes, ... }: let - inherit (nodes.server.config.system.build) toplevel; + inherit (nodes.server.system.build) toplevel; newSystem = "${toplevel}/specialisation/pass-checks"; in '' diff --git a/nixos/tests/nginx-globalredirect.nix b/nixos/tests/nginx-globalredirect.nix index 42dda6ccaab5..ba1c0623593b 100644 --- a/nixos/tests/nginx-globalredirect.nix +++ b/nixos/tests/nginx-globalredirect.nix @@ -1,29 +1,27 @@ -import ./make-test-python.nix ( - { pkgs, ... }: - { - name = "nginx-globalredirect"; +{ ... }: +{ + name = "nginx-globalredirect"; - nodes = { - webserver = - { pkgs, lib, ... }: - { - services.nginx = { - enable = true; - virtualHosts.localhost = { - globalRedirect = "other.example.com"; - # Add an exception - locations."/noredirect".return = "200 'foo'"; - }; + nodes = { + webserver = + { pkgs, lib, ... }: + { + services.nginx = { + enable = true; + virtualHosts.localhost = { + globalRedirect = "other.example.com"; + # Add an exception + locations."/noredirect".return = "200 'foo'"; }; }; - }; + }; + }; - testScript = '' - webserver.wait_for_unit("nginx") - webserver.wait_for_open_port(80) + testScript = '' + webserver.wait_for_unit("nginx") + webserver.wait_for_open_port(80) - webserver.succeed("curl --fail -si http://localhost/alf | grep '^Location:.*/alf'") - webserver.fail("curl --fail -si http://localhost/noredirect | grep '^Location:'") - ''; - } -) + webserver.succeed("curl --fail -si http://localhost/alf | grep '^Location:.*/alf'") + webserver.fail("curl --fail -si http://localhost/noredirect | grep '^Location:'") + ''; +} diff --git a/nixos/tests/nginx-mime.nix b/nixos/tests/nginx-mime.nix index 157b9f13f142..9752fc01370b 100644 --- a/nixos/tests/nginx-mime.nix +++ b/nixos/tests/nginx-mime.nix @@ -1,26 +1,24 @@ -import ./make-test-python.nix ( - { lib, pkgs, ... }: - { - name = "nginx-mime"; - meta.maintainers = with pkgs.lib.maintainers; [ izorkin ]; +{ lib, pkgs, ... }: +{ + name = "nginx-mime"; + meta.maintainers = with pkgs.lib.maintainers; [ izorkin ]; - nodes = { - server = - { pkgs, ... }: - { - services.nginx = { - enable = true; - virtualHosts."localhost" = { }; - }; + nodes = { + server = + { pkgs, ... }: + { + services.nginx = { + enable = true; + virtualHosts."localhost" = { }; }; - }; + }; + }; - testScript = '' - server.start() - server.wait_for_unit("nginx") - # Check optimal size of types_hash - server.fail("journalctl --unit nginx --grep 'could not build optimal types_hash'") - server.shutdown() - ''; - } -) + testScript = '' + server.start() + server.wait_for_unit("nginx") + # Check optimal size of types_hash + server.fail("journalctl --unit nginx --grep 'could not build optimal types_hash'") + server.shutdown() + ''; +} diff --git a/nixos/tests/nginx-modsecurity.nix b/nixos/tests/nginx-modsecurity.nix index 892180f1cf73..f6aa58b79859 100644 --- a/nixos/tests/nginx-modsecurity.nix +++ b/nixos/tests/nginx-modsecurity.nix @@ -1,51 +1,49 @@ -import ./make-test-python.nix ( - { pkgs, lib, ... }: - { - name = "nginx-modsecurity"; +{ ... }: +{ + name = "nginx-modsecurity"; - nodes.machine = - { - config, - lib, - pkgs, - ... - }: - { - services.nginx = { - enable = true; - additionalModules = [ pkgs.nginxModules.modsecurity ]; - virtualHosts.localhost = - let - modsecurity_conf = pkgs.writeText "modsecurity.conf" '' - SecRuleEngine On - SecDefaultAction "phase:1,log,auditlog,deny,status:403" - SecDefaultAction "phase:2,log,auditlog,deny,status:403" - SecRule REQUEST_METHOD "HEAD" "id:100, phase:1, block" - SecRule REQUEST_FILENAME "secret.html" "id:101, phase:2, block" - ''; - testroot = pkgs.runCommand "testroot" { } '' - mkdir -p $out - echo "Hello World!" > $out/index.html - echo "s3cret" > $out/secret.html - ''; - in - { - root = testroot; - extraConfig = '' - modsecurity on; - modsecurity_rules_file ${modsecurity_conf}; - ''; - }; - }; + nodes.machine = + { + config, + lib, + pkgs, + ... + }: + { + services.nginx = { + enable = true; + additionalModules = [ pkgs.nginxModules.modsecurity ]; + virtualHosts.localhost = + let + modsecurity_conf = pkgs.writeText "modsecurity.conf" '' + SecRuleEngine On + SecDefaultAction "phase:1,log,auditlog,deny,status:403" + SecDefaultAction "phase:2,log,auditlog,deny,status:403" + SecRule REQUEST_METHOD "HEAD" "id:100, phase:1, block" + SecRule REQUEST_FILENAME "secret.html" "id:101, phase:2, block" + ''; + testroot = pkgs.runCommand "testroot" { } '' + mkdir -p $out + echo "Hello World!" > $out/index.html + echo "s3cret" > $out/secret.html + ''; + in + { + root = testroot; + extraConfig = '' + modsecurity on; + modsecurity_rules_file ${modsecurity_conf}; + ''; + }; }; - testScript = '' - machine.wait_for_unit("nginx") + }; + testScript = '' + machine.wait_for_unit("nginx") - response = machine.wait_until_succeeds("curl -fvvv -s http://127.0.0.1/") - assert "Hello World!" in response + response = machine.wait_until_succeeds("curl -fvvv -s http://127.0.0.1/") + assert "Hello World!" in response - machine.fail("curl -fvvv -X HEAD -s http://127.0.0.1/") - machine.fail("curl -fvvv -s http://127.0.0.1/secret.html") - ''; - } -) + machine.fail("curl -fvvv -X HEAD -s http://127.0.0.1/") + machine.fail("curl -fvvv -s http://127.0.0.1/secret.html") + ''; +} diff --git a/nixos/tests/nginx-moreheaders.nix b/nixos/tests/nginx-moreheaders.nix index 34bbb211dc9d..446f0ed179e2 100644 --- a/nixos/tests/nginx-moreheaders.nix +++ b/nixos/tests/nginx-moreheaders.nix @@ -1,4 +1,5 @@ -import ./make-test-python.nix { +{ ... }: +{ name = "nginx-more-headers"; nodes = { diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix index 8b1f921ec520..476824e3a9ec 100644 --- a/nixos/tests/nginx.nix +++ b/nixos/tests/nginx.nix @@ -4,134 +4,150 @@ # 2. whether the ETag header is properly generated whenever we're serving # files in Nix store paths # 3. nginx doesn't restart on configuration changes (only reloads) -import ./make-test-python.nix ({ pkgs, ... }: { +{ pkgs, ... }: +{ name = "nginx"; meta = with pkgs.lib.maintainers; { - maintainers = [ mbbx6spp danbst ]; + maintainers = [ + mbbx6spp + danbst + ]; }; nodes = { - webserver = { pkgs, lib, ... }: { - services.nginx.enable = true; - services.nginx.commonHttpConfig = '' - log_format ceeformat '@cee: {"status":"$status",' - '"request_time":$request_time,' - '"upstream_response_time":$upstream_response_time,' - '"pipe":"$pipe","bytes_sent":$bytes_sent,' - '"connection":"$connection",' - '"remote_addr":"$remote_addr",' - '"host":"$host",' - '"timestamp":"$time_iso8601",' - '"request":"$request",' - '"http_referer":"$http_referer",' - '"upstream_addr":"$upstream_addr"}'; - ''; - services.nginx.virtualHosts."0.my.test" = { - extraConfig = '' - access_log syslog:server=unix:/dev/log,facility=user,tag=mytag,severity=info ceeformat; - location /favicon.ico { allow all; access_log off; log_not_found off; } + webserver = + { pkgs, lib, ... }: + { + services.nginx.enable = true; + services.nginx.commonHttpConfig = '' + log_format ceeformat '@cee: {"status":"$status",' + '"request_time":$request_time,' + '"upstream_response_time":$upstream_response_time,' + '"pipe":"$pipe","bytes_sent":$bytes_sent,' + '"connection":"$connection",' + '"remote_addr":"$remote_addr",' + '"host":"$host",' + '"timestamp":"$time_iso8601",' + '"request":"$request",' + '"http_referer":"$http_referer",' + '"upstream_addr":"$upstream_addr"}'; ''; - }; + services.nginx.virtualHosts."0.my.test" = { + extraConfig = '' + access_log syslog:server=unix:/dev/log,facility=user,tag=mytag,severity=info ceeformat; + location /favicon.ico { allow all; access_log off; log_not_found off; } + ''; + }; - services.nginx.virtualHosts.localhost = { - root = pkgs.runCommand "testdir" {} '' - mkdir "$out" - echo hello world > "$out/index.html" - ''; - }; - - services.nginx.enableReload = true; - - specialisation.etagSystem.configuration = { services.nginx.virtualHosts.localhost = { - root = lib.mkForce (pkgs.runCommand "testdir2" {} '' + root = pkgs.runCommand "testdir" { } '' mkdir "$out" - echo content changed > "$out/index.html" - ''); + echo hello world > "$out/index.html" + ''; + }; + + services.nginx.enableReload = true; + + specialisation.etagSystem.configuration = { + services.nginx.virtualHosts.localhost = { + root = lib.mkForce ( + pkgs.runCommand "testdir2" { } '' + mkdir "$out" + echo content changed > "$out/index.html" + '' + ); + }; + }; + + specialisation.justReloadSystem.configuration = { + services.nginx.virtualHosts."1.my.test".listen = [ + { + addr = "127.0.0.1"; + port = 8080; + } + ]; + }; + + specialisation.reloadRestartSystem.configuration = { + services.nginx.package = pkgs.nginxMainline; + }; + + specialisation.reloadWithErrorsSystem.configuration = { + services.nginx.package = pkgs.nginxMainline; + services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; }; }; - - specialisation.justReloadSystem.configuration = { - services.nginx.virtualHosts."1.my.test".listen = [ { addr = "127.0.0.1"; port = 8080; }]; - }; - - specialisation.reloadRestartSystem.configuration = { - services.nginx.package = pkgs.nginxMainline; - }; - - specialisation.reloadWithErrorsSystem.configuration = { - services.nginx.package = pkgs.nginxMainline; - services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; - }; - }; }; - testScript = { nodes, ... }: let - etagSystem = "${nodes.webserver.system.build.toplevel}/specialisation/etagSystem"; - justReloadSystem = "${nodes.webserver.system.build.toplevel}/specialisation/justReloadSystem"; - reloadRestartSystem = "${nodes.webserver.system.build.toplevel}/specialisation/reloadRestartSystem"; - reloadWithErrorsSystem = "${nodes.webserver.system.build.toplevel}/specialisation/reloadWithErrorsSystem"; - in '' - url = "http://localhost/index.html" + testScript = + { nodes, ... }: + let + etagSystem = "${nodes.webserver.system.build.toplevel}/specialisation/etagSystem"; + justReloadSystem = "${nodes.webserver.system.build.toplevel}/specialisation/justReloadSystem"; + reloadRestartSystem = "${nodes.webserver.system.build.toplevel}/specialisation/reloadRestartSystem"; + reloadWithErrorsSystem = "${nodes.webserver.system.build.toplevel}/specialisation/reloadWithErrorsSystem"; + in + '' + url = "http://localhost/index.html" - def check_etag(): - etag = webserver.succeed( - f'curl -v {url} 2>&1 | sed -n -e "s/^< etag: *//ip"' - ).rstrip() - http_code = webserver.succeed( - f"curl -w '%{{http_code}}' --head --fail -H 'If-None-Match: {etag}' {url}" - ) - assert http_code.split("\n")[-1] == "304" + def check_etag(): + etag = webserver.succeed( + f'curl -v {url} 2>&1 | sed -n -e "s/^< etag: *//ip"' + ).rstrip() + http_code = webserver.succeed( + f"curl -w '%{{http_code}}' --head --fail -H 'If-None-Match: {etag}' {url}" + ) + assert http_code.split("\n")[-1] == "304" - return etag + return etag - def wait_for_nginx_on_port(port): - webserver.wait_for_unit("nginx") - webserver.wait_for_open_port(port) + def wait_for_nginx_on_port(port): + webserver.wait_for_unit("nginx") + webserver.wait_for_open_port(port) - # nginx can be ready before multi-user.target, in which case switching to - # a different configuration might not realize it needs to restart nginx. - webserver.wait_for_unit("multi-user.target") + # nginx can be ready before multi-user.target, in which case switching to + # a different configuration might not realize it needs to restart nginx. + webserver.wait_for_unit("multi-user.target") - wait_for_nginx_on_port(80) + wait_for_nginx_on_port(80) - with subtest("check ETag if serving Nix store paths"): - old_etag = check_etag() - webserver.succeed( - "${etagSystem}/bin/switch-to-configuration test >&2" - ) - wait_for_nginx_on_port(80) - new_etag = check_etag() - assert old_etag != new_etag + with subtest("check ETag if serving Nix store paths"): + old_etag = check_etag() + webserver.succeed( + "${etagSystem}/bin/switch-to-configuration test >&2" + ) + wait_for_nginx_on_port(80) + new_etag = check_etag() + assert old_etag != new_etag - with subtest("config is reloaded on nixos-rebuild switch"): - webserver.succeed( - "${justReloadSystem}/bin/switch-to-configuration test >&2" - ) - wait_for_nginx_on_port(8080) - webserver.fail("journalctl -u nginx | grep -q -i stopped") - webserver.succeed("journalctl -u nginx | grep -q -i reloaded") + with subtest("config is reloaded on nixos-rebuild switch"): + webserver.succeed( + "${justReloadSystem}/bin/switch-to-configuration test >&2" + ) + wait_for_nginx_on_port(8080) + webserver.fail("journalctl -u nginx | grep -q -i stopped") + webserver.succeed("journalctl -u nginx | grep -q -i reloaded") - with subtest("restart when nginx package changes"): - webserver.succeed( - "${reloadRestartSystem}/bin/switch-to-configuration test >&2" - ) - wait_for_nginx_on_port(80) - webserver.succeed("journalctl -u nginx | grep -q -i stopped") + with subtest("restart when nginx package changes"): + webserver.succeed( + "${reloadRestartSystem}/bin/switch-to-configuration test >&2" + ) + wait_for_nginx_on_port(80) + webserver.succeed("journalctl -u nginx | grep -q -i stopped") - with subtest("nixos-rebuild --switch should fail when there are configuration errors"): - webserver.fail( - "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2" - ) - webserver.succeed("[[ $(systemctl is-failed nginx-config-reload) == failed ]]") - webserver.succeed("[[ $(systemctl is-failed nginx) == active ]]") - # just to make sure operation is idempotent. During development I had a situation - # when first time it shows error, but stops showing it on subsequent rebuilds - webserver.fail( - "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2" - ) - ''; -}) + with subtest("nixos-rebuild --switch should fail when there are configuration errors"): + webserver.fail( + "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2" + ) + webserver.succeed("[[ $(systemctl is-failed nginx-config-reload) == failed ]]") + webserver.succeed("[[ $(systemctl is-failed nginx) == active ]]") + # just to make sure operation is idempotent. During development I had a situation + # when first time it shows error, but stops showing it on subsequent rebuilds + webserver.fail( + "${reloadWithErrorsSystem}/bin/switch-to-configuration test >&2" + ) + ''; +} diff --git a/nixos/tests/web-apps/monica.nix b/nixos/tests/web-apps/monica.nix index bb770828d5f7..9b1995d393d3 100644 --- a/nixos/tests/web-apps/monica.nix +++ b/nixos/tests/web-apps/monica.nix @@ -1,37 +1,35 @@ -import ../make-test-python.nix ( - { pkgs, ... }: - let - cert = pkgs.runCommand "selfSignedCerts" { nativeBuildInputs = [ pkgs.openssl ]; } '' - openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=localhost' -days 36500 - mkdir -p $out - cp key.pem cert.pem $out - ''; - in - { - name = "monica"; +{ pkgs, ... }: +let + cert = pkgs.runCommand "selfSignedCerts" { nativeBuildInputs = [ pkgs.openssl ]; } '' + openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=localhost' -days 36500 + mkdir -p $out + cp key.pem cert.pem $out + ''; +in +{ + name = "monica"; - nodes = { - machine = - { pkgs, ... }: - { - services.monica = { - enable = true; - hostname = "localhost"; - appKeyFile = "${pkgs.writeText "keyfile" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}"; - nginx = { - forceSSL = true; - sslCertificate = "${cert}/cert.pem"; - sslCertificateKey = "${cert}/key.pem"; - }; + nodes = { + machine = + { pkgs, ... }: + { + services.monica = { + enable = true; + hostname = "localhost"; + appKeyFile = "${pkgs.writeText "keyfile" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}"; + nginx = { + forceSSL = true; + sslCertificate = "${cert}/cert.pem"; + sslCertificateKey = "${cert}/key.pem"; }; }; - }; + }; + }; - testScript = '' - start_all() - machine.wait_for_unit("monica-setup.service") - machine.wait_for_open_port(443) - machine.succeed("curl -k --fail https://localhost", timeout=10) - ''; - } -) + testScript = '' + start_all() + machine.wait_for_unit("monica-setup.service") + machine.wait_for_open_port(443) + machine.succeed("curl -k --fail https://localhost", timeout=10) + ''; +} diff --git a/nixos/tests/web-servers/unit-php.nix b/nixos/tests/web-servers/unit-php.nix index fcf0224639da..ae7503ad0ffa 100644 --- a/nixos/tests/web-servers/unit-php.nix +++ b/nixos/tests/web-servers/unit-php.nix @@ -1,62 +1,60 @@ -import ../make-test-python.nix ( - { pkgs, ... }: - let - testdir = pkgs.writeTextDir "www/info.php" " main" as long this commit is the branch HEAD @@ -79,7 +79,7 @@ rustPlatform.buildRustPackage { }; useFetchCargoVendor = true; - cargoHash = "sha256-mxbRqJ+ex9k1h6wOgjPHWfG8RA0vVRBAqsHtwSRI12Y="; + cargoHash = "sha256-m6lsXHf7SIgbIt8RyhUkJpd1/nJQMSNRS9uTJ6th9ng="; # set `HOME` to a temp dir for write access # Fix invalid option errors during linking (https://github.com/mozilla/nixpkgs-mozilla/commit/c72ff151a3e25f14182569679ed4cd22ef352328) diff --git a/pkgs/by-name/sn/snakefmt/package.nix b/pkgs/by-name/sn/snakefmt/package.nix index ba565b5c20b3..44735da75e42 100644 --- a/pkgs/by-name/sn/snakefmt/package.nix +++ b/pkgs/by-name/sn/snakefmt/package.nix @@ -8,14 +8,14 @@ python3.pkgs.buildPythonApplication rec { pname = "snakefmt"; - version = "0.10.2"; + version = "0.11.0"; pyproject = true; - disabled = python3.pythonOlder "3.8.1"; + disabled = python3.pythonOlder "3.11"; src = fetchPypi { inherit pname version; - hash = "sha256-QoalkDtm2n5SdjxegYTaTtyVETt1j0RIUogE+1T5t1o="; + hash = "sha256-r8O5LhA8/agP/35381f2zB2rdCJy7nY0K6NC8w5yHzA="; }; build-system = [ python3.pkgs.poetry-core ]; @@ -27,6 +27,8 @@ python3.pkgs.buildPythonApplication rec { toml ]; + pythonRelaxDeps = [ "black" ]; + pythonImportsCheck = [ "snakefmt" ]; nativeInstallCheckInputs = [ versionCheckHook ]; diff --git a/pkgs/by-name/st/steel/package.nix b/pkgs/by-name/st/steel/package.nix index 71eb5df05e8b..7b3289bfb5ed 100644 --- a/pkgs/by-name/st/steel/package.nix +++ b/pkgs/by-name/st/steel/package.nix @@ -20,13 +20,13 @@ }: rustPlatform.buildRustPackage { pname = "steel"; - version = "0.6.0-unstable-2025-03-17"; + version = "0.6.0-unstable-2025-03-28"; src = fetchFromGitHub { owner = "mattwparas"; repo = "steel"; - rev = "8482d947369230b3af45e8775b78dad2379f7a1a"; - hash = "sha256-/2j8olMZngr5tKmM0JfxM8oi+CYn05LY5406syq7jak="; + rev = "2f0fba8b16a3fbab083cedcf09974514b3a29d25"; + hash = "sha256-i/bmZFoC3fRocO1KeCPGB9K/0yEAcKlLh56N+r1V7CI="; }; useFetchCargoVendor = true; diff --git a/pkgs/by-name/ts/tsid/package.nix b/pkgs/by-name/ts/tsid/package.nix index 988e95a039ad..73746434696f 100644 --- a/pkgs/by-name/ts/tsid/package.nix +++ b/pkgs/by-name/ts/tsid/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "tsid"; - version = "1.7.1"; + version = "1.8.0"; src = fetchFromGitHub { owner = "stack-of-tasks"; repo = "tsid"; rev = "v${finalAttrs.version}"; - hash = "sha256-id6OCOX01o41Z5kqzwvjYa5uoQZtzhRaFBuOBhbLcTA="; + hash = "sha256-SS6JhU4fuZtTzv/EY31ixwwLOzmO/dN3H5HEMh/URTA="; }; cmakeFlags = [ diff --git a/pkgs/by-name/we/weaviate/package.nix b/pkgs/by-name/we/weaviate/package.nix index 54b39716769a..ef0e55faacb4 100644 --- a/pkgs/by-name/we/weaviate/package.nix +++ b/pkgs/by-name/we/weaviate/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "weaviate"; - version = "1.29.0"; + version = "1.29.1"; src = fetchFromGitHub { owner = "weaviate"; repo = "weaviate"; rev = "v${version}"; - hash = "sha256-tyztq4oXN9tPVSqQme8IG3dcba7ytblVW98jU6Nao5M="; + hash = "sha256-Akg0iY5M3X6ztKxhNEkhi03VnbNpNW7/Vcbv2KB6X54="; }; - vendorHash = "sha256-WfqYmqEjgZwQgFKW97oIEaBXTKqOOFKviuYTRyqVQP0="; + vendorHash = "sha256-U2ean49ESKmcQ3fTtd6y9MwfWPr6tolvgioyKbQsBmU="; subPackages = [ "cmd/weaviate-server" ]; diff --git a/pkgs/by-name/we/web-ext/package.nix b/pkgs/by-name/we/web-ext/package.nix index 41e6089a8422..401aff4d5867 100644 --- a/pkgs/by-name/we/web-ext/package.nix +++ b/pkgs/by-name/we/web-ext/package.nix @@ -8,16 +8,16 @@ buildNpmPackage rec { pname = "web-ext"; - version = "8.4.0"; + version = "8.5.0"; src = fetchFromGitHub { owner = "mozilla"; repo = "web-ext"; rev = version; - hash = "sha256-zPOXl/7v/yP1ggqSKruGli/FC8Vf7i4J3LZey4WC/Lc="; + hash = "sha256-RT/K/fYMys1RAvnusAMuHtfZ7gndYf3FPuHBYCklBpw="; }; - npmDepsHash = "sha256-tU/NTeMjUyw1ftXLTP3HpLQqfzTNVwgY3oKvuIZXPxw="; + npmDepsHash = "sha256-O8DmeT0wRNpuPU1K6kH97D9+mxOxCchAUrvOVPq4VPc="; npmBuildFlags = [ "--production" ]; diff --git a/pkgs/by-name/zw/zwave-js-server/package.nix b/pkgs/by-name/zw/zwave-js-server/package.nix index f40a1341d687..c0152506c7ad 100644 --- a/pkgs/by-name/zw/zwave-js-server/package.nix +++ b/pkgs/by-name/zw/zwave-js-server/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "zwave-js-server"; - version = "1.40.3"; + version = "3.0.0"; src = fetchFromGitHub { owner = "zwave-js"; repo = "zwave-js-server"; rev = version; - hash = "sha256-fk9UBtdbU9ZVoqCXXeeGpaiGhU9/pcR87NP1S86axSM="; + hash = "sha256-vY/afOza0ewOqlhbp6uMf/mw9nvQLN0lEFmHekxpJVA="; }; - npmDepsHash = "sha256-iSrgrgepUZzlBvwMe6lmFUW4i6DVx1Bq4I4UBph/oNA="; + npmDepsHash = "sha256-HgXFFA1aa25vRpw4ujj6aeIX75soDYv3TaM5bQOfEv4="; # For some reason the zwave-js dependency is in devDependencies npmFlags = [ "--include=dev" ]; diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix index 04eae0082f60..77891bd51268 100644 --- a/pkgs/development/beam-modules/elixir-ls/default.nix +++ b/pkgs/development/beam-modules/elixir-ls/default.nix @@ -11,12 +11,12 @@ let pname = "elixir-ls"; - version = "0.27.1"; + version = "0.27.2"; src = fetchFromGitHub { owner = "elixir-lsp"; repo = "elixir-ls"; rev = "v${version}"; - hash = "sha256-YSu9uN0n8x1833iqvskk/47JnoXJ2Y8RCRmA12YYgDc="; + hash = "sha256-y1QT+wRFc+++OVFJwEheqcDIwaKHlyjbhEjhLJ2rYaI="; }; in mixRelease { diff --git a/pkgs/development/compilers/elm/packages/node/node-composition.nix b/pkgs/development/compilers/elm/packages/node/node-composition.nix index f23ba8e11e71..e095e45b97db 100644 --- a/pkgs/development/compilers/elm/packages/node/node-composition.nix +++ b/pkgs/development/compilers/elm/packages/node/node-composition.nix @@ -13,7 +13,6 @@ let inherit (pkgs) stdenv lib - python2 runCommand writeTextFile writeShellScript diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix index b7f09b7ebb7b..789c698216c1 100644 --- a/pkgs/development/libraries/libwpe/fdo.nix +++ b/pkgs/development/libraries/libwpe/fdo.nix @@ -17,11 +17,11 @@ stdenv.mkDerivation rec { pname = "wpebackend-fdo"; - version = "1.14.3"; + version = "1.16.0"; src = fetchurl { url = "https://wpewebkit.org/releases/wpebackend-fdo-${version}.tar.xz"; - sha256 = "sha256-EBIYQllahQKR2z6C89sLmYTfB5Ai04bOQsK4UIFZ3Gw="; + sha256 = "sha256-vt3zISMtW9CBBsF528YA+M6I6zYgtKWaYykGO3j2RjU="; }; depsBuildBuild = [ diff --git a/pkgs/development/node-packages/composition.nix b/pkgs/development/node-packages/composition.nix index 659c43a1feec..6d49245bff5d 100644 --- a/pkgs/development/node-packages/composition.nix +++ b/pkgs/development/node-packages/composition.nix @@ -13,7 +13,6 @@ let inherit (pkgs) stdenv lib - python2 runCommand writeTextFile writeShellScript diff --git a/pkgs/development/node-packages/node-env.nix b/pkgs/development/node-packages/node-env.nix index 4123ca029664..b1ba5526816d 100644 --- a/pkgs/development/node-packages/node-env.nix +++ b/pkgs/development/node-packages/node-env.nix @@ -1,9 +1,9 @@ # This file originates from node2nix -{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: +{lib, stdenv, nodejs, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: let - python = if nodejs ? python then nodejs.python else python2; + inherit (nodejs) python; # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise tarWrapper = runCommand "tarWrapper" {} '' diff --git a/pkgs/development/python-modules/coiled/default.nix b/pkgs/development/python-modules/coiled/default.nix index fe11ef7dd8e5..e46e38f083cd 100644 --- a/pkgs/development/python-modules/coiled/default.nix +++ b/pkgs/development/python-modules/coiled/default.nix @@ -39,12 +39,12 @@ buildPythonPackage rec { pname = "coiled"; - version = "1.86.0"; + version = "1.90.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-umwAG7+ykCWLqgyQzWdrYUuslyWWP1/uKlsSci50qR4="; + hash = "sha256-5u33FbSB86jR9KIAhR24J0wSz9kRCaOJ0ituEzULHH8="; }; build-system = [ @@ -79,15 +79,12 @@ buildPythonPackage rec { wheel ]; - pythonImportsCheck = [ - "coiled" - ]; + pythonImportsCheck = [ "coiled" ]; nativeCheckInputs = [ versionCheckHook ]; - - versionCheckProgramArg = [ "--version" ]; + versionCheckProgramArg = "--version"; meta = { description = "Python client for coiled.io dask clusters"; diff --git a/pkgs/development/python-modules/evernote/default.nix b/pkgs/development/python-modules/evernote/default.nix deleted file mode 100644 index 9d9b9cc9ad02..000000000000 --- a/pkgs/development/python-modules/evernote/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - isPy27, - oauth2, -}: - -buildPythonPackage rec { - pname = "evernote"; - version = "1.25.3"; - format = "setuptools"; - disabled = !isPy27; # some dependencies do not work with py3 - - src = fetchPypi { - inherit pname version; - sha256 = "796847e0b7517e729041c5187fa1665c3f6fc0491cb4d71fb95a62c4f22e64eb"; - }; - - propagatedBuildInputs = [ oauth2 ]; - - meta = with lib; { - description = "Evernote SDK for Python"; - homepage = "https://dev.evernote.com"; - license = licenses.asl20; - maintainers = with maintainers; [ hbunke ]; - }; -} diff --git a/pkgs/development/python-modules/geeknote/default.nix b/pkgs/development/python-modules/geeknote/default.nix deleted file mode 100644 index 1aeeabd92f29..000000000000 --- a/pkgs/development/python-modules/geeknote/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - isPy27, - thrift, - beautifulsoup4, - markdown2, - sqlalchemy, - html2text, - evernote, -}: - -buildPythonPackage { - version = "2015-05-11"; - format = "setuptools"; - pname = "geeknote"; - disabled = !isPy27; - - src = fetchFromGitHub { - owner = "VitaliyRodnenko"; - repo = "geeknote"; - rev = "8489a87d044e164edb321ba9acca8d4631de3dca"; - sha256 = "0l16v4xnyqnsf84b1pma0jmdyxvmfwcv3sm8slrv3zv7zpmcm3lf"; - }; - - /* - build with tests fails with "Can not create application dirictory : - /homeless-shelter/.geeknotebuilder". - */ - doCheck = false; - - propagatedBuildInputs = [ - thrift - beautifulsoup4 - markdown2 - sqlalchemy - html2text - evernote - ]; - - meta = with lib; { - description = "Work with Evernote from command line"; - homepage = "http://www.geeknote.me"; - license = licenses.gpl1Only; - maintainers = with maintainers; [ hbunke ]; - }; -} diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix index 5f7d42c2d116..9e068f6edc42 100644 --- a/pkgs/development/python-modules/google-cloud-speech/default.nix +++ b/pkgs/development/python-modules/google-cloud-speech/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "google-cloud-speech"; - version = "2.31.0"; + version = "2.31.1"; pyproject = true; disabled = pythonOlder "3.7"; @@ -22,7 +22,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_cloud_speech"; inherit version; - hash = "sha256-15mMJqlF9Ykzxg4tOAPtBZPrQWusnUOBwDBZ0QJy7wM="; + hash = "sha256-/fDTUMBke1ZpRUAr2K7vK3r9pnq7UgbrTbTtQfkjtA8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/modestmaps/default.nix b/pkgs/development/python-modules/modestmaps/default.nix deleted file mode 100644 index 24c4ef2b0bcd..000000000000 --- a/pkgs/development/python-modules/modestmaps/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - pillow, - isPy27, -}: - -buildPythonPackage rec { - pname = "modestmaps"; - version = "1.4.7"; - disabled = !isPy27; - - src = fetchPypi { - pname = "ModestMaps"; - inherit version; - sha256 = "698442a170f02923f8ea55f18526b56c17178162e44304f896a8a5fd65ab4457"; - }; - - propagatedBuildInputs = [ pillow ]; - - meta = with lib; { - description = "Library for building interactive maps"; - homepage = "http://modestmaps.com"; - license = licenses.bsd3; - }; -} diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix index a41b34aa4b5b..80d0a894a9c8 100644 --- a/pkgs/development/python-modules/nipype/default.nix +++ b/pkgs/development/python-modules/nipype/default.nix @@ -41,13 +41,13 @@ buildPythonPackage rec { pname = "nipype"; - version = "1.9.2"; + version = "1.10.0"; disabled = pythonOlder "3.7"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-pQO9QbZY8ITRBCUv1yjvdfGhmYAm/quYsWOZiWVOA0M="; + hash = "sha256-GeXWzvpwmXGY94vGZe9NPTy1MyW1uYpy5Rrvra9rPg4="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pychart/default.nix b/pkgs/development/python-modules/pychart/default.nix deleted file mode 100644 index c6fa67c0912e..000000000000 --- a/pkgs/development/python-modules/pychart/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - isPy27, -}: - -buildPythonPackage rec { - pname = "pychart"; - version = "1.39"; - format = "setuptools"; - - disabled = !isPy27; - - src = fetchPypi { - inherit pname version; - sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e"; - }; - - meta = with lib; { - description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts"; - homepage = "https://pypi.python.org/pypi/PyChart"; - license = licenses.gpl2; - }; -} diff --git a/pkgs/development/python-modules/pygnmi/default.nix b/pkgs/development/python-modules/pygnmi/default.nix index cedae6dd3efb..d47cc165ebd7 100644 --- a/pkgs/development/python-modules/pygnmi/default.nix +++ b/pkgs/development/python-modules/pygnmi/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pygnmi"; - version = "0.8.14"; + version = "0.8.15"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "akarneliuk"; repo = "pygnmi"; tag = "v${version}"; - sha256 = "sha256-ncp/OwELy/QOvGhLUZW2qTQZsckWI4CGrlEAZ20RtQI="; + sha256 = "sha256-2QPUyPGTtXlO6A05mmb/jofRidXfKq0xvH7lv1f9OQk="; }; propagatedBuildInputs = [ @@ -43,7 +43,7 @@ buildPythonPackage rec { description = "Pure Python gNMI client to manage network functions and collect telemetry"; mainProgram = "pygnmicli"; homepage = "https://github.com/akarneliuk/pygnmi"; - changelog = "https://github.com/akarneliuk/pygnmi/releases/tag/v${version}"; + changelog = "https://github.com/akarneliuk/pygnmi/releases/tag/${src.tag}"; license = licenses.bsd3; maintainers = [ ]; }; diff --git a/pkgs/development/python-modules/python-wifi/default.nix b/pkgs/development/python-modules/python-wifi/default.nix deleted file mode 100644 index 2dfd18079c72..000000000000 --- a/pkgs/development/python-modules/python-wifi/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - isPy27, -}: - -buildPythonPackage rec { - pname = "python-wifi"; - version = "0.6.1"; - format = "setuptools"; - disabled = !isPy27; - - src = fetchPypi { - inherit pname version; - extension = "tar.bz2"; - sha256 = "149c3dznb63d82143cz5hqdim0mqjysz6p3yk0zv271vq3xnmzvv"; - }; - - meta = with lib; { - description = "Read & write wireless card capabilities using the Linux Wireless Extensions"; - homepage = "http://pythonwifi.tuxfamily.org/"; - # From the README: "pythonwifi is licensed under LGPLv2+, however, the - # examples (e.g. iwconfig.py and iwlist.py) are licensed under GPLv2+." - license = with licenses; [ - lgpl2Plus - gpl2Plus - ]; - }; -} diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index 4a15f13f0ab3..42cf1421611d 100644 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -28,14 +28,14 @@ buildPythonPackage rec { pname = "streamlit"; - version = "1.42.2"; + version = "1.43.2"; pyproject = true; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-YgJtvctIJ5CTP2WLCW191Y+nDaicHwb7w2WLkdzU2rI="; + hash = "sha256-86+ir2N9ABVMakxWDS/eJW19yMwfMqU88gVwwJZ4Qbw="; }; build-system = [ diff --git a/pkgs/development/python-modules/tilestache/default.nix b/pkgs/development/python-modules/tilestache/default.nix deleted file mode 100644 index 23fe0e26ea7c..000000000000 --- a/pkgs/development/python-modules/tilestache/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - modestmaps, - pillow, - pycairo, - python-mapnik, - simplejson, - werkzeug, - isPy27, -}: - -buildPythonPackage rec { - pname = "tilestache"; - version = "1.51.14"; - format = "setuptools"; - disabled = !isPy27; - - src = fetchPypi { - pname = "TileStache"; - inherit version; - sha256 = "1qjrabl6qr7i6yj6v647ck92abcyklb0vmb6h6kj7x8v2cj5xbvk"; - }; - - propagatedBuildInputs = [ - modestmaps - pillow - pycairo - python-mapnik - simplejson - werkzeug - ]; - - meta = with lib; { - description = "Tile server for rendered geographic data"; - homepage = "http://tilestache.org"; - license = licenses.bsd3; - }; -} diff --git a/pkgs/misc/base16-builder/node-packages.nix b/pkgs/misc/base16-builder/node-packages.nix index b4bd9d9d41d2..1d201f032168 100644 --- a/pkgs/misc/base16-builder/node-packages.nix +++ b/pkgs/misc/base16-builder/node-packages.nix @@ -6,7 +6,7 @@ let nodeEnv = import ../../development/node-packages/node-env.nix { - inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; + inherit (pkgs) stdenv lib runCommand writeTextFile writeShellScript; inherit pkgs nodejs; libtool = if pkgs.stdenv.hostPlatform.isDarwin then pkgs.cctools or pkgs.darwin.cctools else null; }; diff --git a/pkgs/servers/http/couchdb/3.nix b/pkgs/servers/http/couchdb/3.nix index 0b65c8e45d5d..88b9a7b5d5db 100644 --- a/pkgs/servers/http/couchdb/3.nix +++ b/pkgs/servers/http/couchdb/3.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "couchdb"; - version = "3.4.2"; + version = "3.4.3"; src = fetchurl { url = "mirror://apache/couchdb/source/${version}/apache-${pname}-${version}.tar.gz"; - hash = "sha256-0n/yoTNWAAKWqYq4hMrz0XWSfPIXJ5Y/+Q+rOnR1RM8="; + hash = "sha256-A1dRG2/tcOPmT051ql18wgAMsPJk7zAXArGBZCf3LyA="; }; postPatch = '' diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix index a5c2bb76037c..2f8e7ba21470 100644 --- a/pkgs/servers/http/nginx/modules.nix +++ b/pkgs/servers/http/nginx/modules.nix @@ -1,5 +1,6 @@ { lib , config +, nixosTests , fetchFromGitHub , fetchFromGitLab , fetchhg @@ -509,8 +510,8 @@ let self = { src = fetchFromGitHub { owner = "nginx"; repo = "njs"; - rev = "0.8.7"; - hash = "sha256-VEXzP+cN5hnDeniccwY7GIi4x460rnWO/o7ja3DyRCc="; + rev = "0.8.9"; + hash = "sha256-TalS9EJP+vB1o3BKaTvXXnudjKhNOcob3kDAyeKej3c="; }; # njs module sources have to be writable during nginx build, so we copy them @@ -520,17 +521,19 @@ let self = { mkdir -p "$(dirname "$NJS_SOURCE_DIR")" cp --recursive "${src}" "$NJS_SOURCE_DIR" chmod -R u+rwX,go+rX "$NJS_SOURCE_DIR" - export configureFlags="''${configureFlags/"${src}"/"$NJS_SOURCE_DIR/nginx"}" + export configureFlags="''${configureFlags/"${src}"/"$NJS_SOURCE_DIR/nginx"} --with-ld-opt='-lz'" unset NJS_SOURCE_DIR ''; - inputs = [ which ]; + inputs = [ which zlib ]; + + passthru.tests = nixosTests.nginx-njs; meta = with lib; { description = "Subset of the JavaScript language that allows extending nginx functionality"; homepage = "https://nginx.org/en/docs/njs/"; license = with licenses; [ bsd2 ]; - maintainers = [ ]; + maintainers = with maintainers; [ jvanbruegge ]; }; }; diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix index 8a948d00c94c..d36faa6e523e 100644 --- a/pkgs/servers/icingaweb2/default.nix +++ b/pkgs/servers/icingaweb2/default.nix @@ -3,7 +3,7 @@ lib, fetchFromGitHub, makeWrapper, - php, + php83, nixosTests, }: @@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec { cp -ra application bin etc library modules public $out cp -ra doc $out/share - wrapProgram $out/bin/icingacli --prefix PATH : "${lib.makeBinPath [ php ]}" + wrapProgram $out/bin/icingacli --prefix PATH : "${lib.makeBinPath [ php83 ]}" ''; passthru.tests = { inherit (nixosTests) icingaweb2; }; diff --git a/pkgs/servers/monitoring/prometheus/pihole-exporter.nix b/pkgs/servers/monitoring/prometheus/pihole-exporter.nix index 58f8d21f5824..60dea11316c7 100644 --- a/pkgs/servers/monitoring/prometheus/pihole-exporter.nix +++ b/pkgs/servers/monitoring/prometheus/pihole-exporter.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "pihole-exporter"; - version = "1.0.0"; + version = "1.0.1"; src = fetchFromGitHub { owner = "eko"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Sum27hjs0Jvi1UWGeQcR8z9zmZ/I40uBFpKeHgHfFrA="; + sha256 = "sha256-7gomafTMK8rk+QFw3Vm8KUgNFqiUDILeTwNFa7vdgAw="; }; - vendorHash = "sha256-7f/upTF3/w40wWGdcw0h3kOPlo8ZeyRna6FapnF2X0s="; + vendorHash = "sha256-GB/wVB97aV+CV9Xtv0EofQQR+qOmtwrBFBogU+2S+Po="; meta = with lib; { description = "Prometheus exporter for PI-Hole's Raspberry PI ad blocker"; diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix index 02b6fb71734b..ae6e5618167d 100644 --- a/pkgs/servers/monitoring/zabbix/agent.nix +++ b/pkgs/servers/monitoring/zabbix/agent.nix @@ -48,6 +48,7 @@ import ./versions.nix ( license = if (lib.versions.major version >= "7") then lib.licenses.agpl3Only else lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ + bstanderline mmahut psyanticy ]; diff --git a/pkgs/servers/monitoring/zabbix/agent2.nix b/pkgs/servers/monitoring/zabbix/agent2.nix index 0d9fda84b234..b1bf7cd6f22f 100644 --- a/pkgs/servers/monitoring/zabbix/agent2.nix +++ b/pkgs/servers/monitoring/zabbix/agent2.nix @@ -83,7 +83,10 @@ import ./versions.nix ( homepage = "https://www.zabbix.com/"; license = if (lib.versions.major version >= "7") then lib.licenses.agpl3Only else lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ aanderse ]; + maintainers = with lib.maintainers; [ + aanderse + bstanderline + ]; platforms = lib.platforms.unix; }; } diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix index 2c0b946e7f34..65cc2c024e1a 100644 --- a/pkgs/servers/monitoring/zabbix/proxy.nix +++ b/pkgs/servers/monitoring/zabbix/proxy.nix @@ -120,7 +120,10 @@ import ./versions.nix ( homepage = "https://www.zabbix.com/"; license = if (lib.versions.major version >= "7") then lib.licenses.agpl3Only else lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ mmahut ]; + maintainers = with lib.maintainers; [ + bstanderline + mmahut + ]; platforms = lib.platforms.linux; }; } diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix index 7da47f1501d9..03cfae182aa4 100644 --- a/pkgs/servers/monitoring/zabbix/server.nix +++ b/pkgs/servers/monitoring/zabbix/server.nix @@ -126,6 +126,7 @@ import ./versions.nix ( license = if (lib.versions.major version >= "7") then lib.licenses.agpl3Only else lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ + bstanderline mmahut psyanticy ]; diff --git a/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix index 36c8ff67ad31..46b1bc0323f4 100644 --- a/pkgs/servers/monitoring/zabbix/versions.nix +++ b/pkgs/servers/monitoring/zabbix/versions.nix @@ -1,7 +1,7 @@ generic: { v70 = generic { - version = "7.0.10"; - hash = "sha256-7tY+06QNva7EgTnBVu1SbbYLUIXbSlzJWpG08ISyGUg="; + version = "7.0.11"; + hash = "sha256-r9VNy3bRuFvJAL+ZQEbKjCAS3+AvetnWAwFjLxFVuGU="; vendorHash = null; }; v64 = generic { diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix index a77cfe3b7dd6..7cbefe782637 100644 --- a/pkgs/servers/monitoring/zabbix/web.nix +++ b/pkgs/servers/monitoring/zabbix/web.nix @@ -33,7 +33,10 @@ import ./versions.nix ( homepage = "https://www.zabbix.com/"; license = if (lib.versions.major version >= "7") then lib.licenses.agpl3Only else lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ mmahut ]; + maintainers = with lib.maintainers; [ + bstanderline + mmahut + ]; platforms = lib.platforms.linux; }; } diff --git a/pkgs/servers/mx-puppet-discord/node-composition.nix b/pkgs/servers/mx-puppet-discord/node-composition.nix index 12460bea17a1..e7922d509acb 100644 --- a/pkgs/servers/mx-puppet-discord/node-composition.nix +++ b/pkgs/servers/mx-puppet-discord/node-composition.nix @@ -13,7 +13,6 @@ let inherit (pkgs) stdenv lib - python2 runCommand writeTextFile writeShellScript diff --git a/pkgs/servers/web-apps/ethercalc/node-packages.nix b/pkgs/servers/web-apps/ethercalc/node-packages.nix index 1042cdba2cb6..0d1f60098bb6 100644 --- a/pkgs/servers/web-apps/ethercalc/node-packages.nix +++ b/pkgs/servers/web-apps/ethercalc/node-packages.nix @@ -13,7 +13,6 @@ let inherit (pkgs) stdenv lib - python2 runCommand writeTextFile writeShellScript diff --git a/pkgs/tools/security/onlykey/onlykey.nix b/pkgs/tools/security/onlykey/onlykey.nix index 05d8f84ddebb..1814e4887f8c 100644 --- a/pkgs/tools/security/onlykey/onlykey.nix +++ b/pkgs/tools/security/onlykey/onlykey.nix @@ -13,7 +13,6 @@ let inherit (pkgs) stdenv lib - python2 runCommand writeTextFile writeShellScript diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 79d2b29f970d..dd3de5da4ec4 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -471,6 +471,7 @@ mapAliases { fastnlo = throw "'fastnlo' has been renamed to/replaced by 'fastnlo-toolkit'"; # Converted to throw 2024-10-17 fastnlo_toolkit = fastnlo-toolkit; # Added 2024-01-03 fcitx5-catppuccin = catppuccin-fcitx5; # Added 2024-06-19 + fdr = throw "fdr has been removed, as it cannot be built from source and depends on Python 2.x"; # Added 2025-03-19 inherit (luaPackages) fennel; # Added 2022-09-24 ferdi = throw "'ferdi' has been removed, upstream does not exist anymore and the package is insecure"; # Added 2024-08-22 fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H"; # preserve diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9e75cbca21a2..63b373c88f10 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12914,8 +12914,6 @@ with pkgs; evolution = callPackage ../applications/networking/mailreaders/evolution/evolution { }; evolutionWithPlugins = callPackage ../applications/networking/mailreaders/evolution/evolution/wrapper.nix { plugins = [ evolution evolution-ews ]; }; - fdr = libsForQt5.callPackage ../applications/science/programming/fdr { }; - fetchmail = callPackage ../applications/misc/fetchmail { }; fetchmail_7 = callPackage ../applications/misc/fetchmail/v7.nix { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 316da20d8088..f9ea9b9d9d02 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -210,6 +210,7 @@ mapAliases ({ et_xmlfile = et-xmlfile; # added 2023-10-16 etebase-server = throw "pkgs.python3.etebase-server has been removed, use pkgs.etebase-server"; # added 2024-07-16 ev3dev2 = python-ev3dev2; # added 2023-06-19 + evernote = throw "evernote is intended for use with Python 2.X"; eyeD3 = eyed3; # added 2024-01-03 Fabric = fabric; # addedd 2023-02-19 face_recognition = face-recognition; # added 2022-10-15 @@ -264,6 +265,7 @@ mapAliases ({ gbulb = throw "gbulb has been removed as it is unmaintained and no longer compatible with PyGObject 3.50."; # added 2024-10-14 gcs-oauth2-boto-plugin = throw "gcs-oauth2-boto-plugin was removed as it depends on the removed boto package"; # Added 2024-09-22 gdtoolkit = throw "gdtoolkit has been promoted to a top-level attribute name: `pkgs.gdtoolkit`"; # added 2023-02-15 + geeknote = throw "geeknote depends on the Python2-only library evernote"; # Added 2025-03-22 GeoIP = geoip; # added 2023-02-19 gigalixir = throw "gigalixir has been promoted to a top-level attribute name: `pkgs.gigalixir`"; # Added 2022-10-02 gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14 @@ -390,6 +392,7 @@ mapAliases ({ mitmproxy-wireguard = throw "mitmproxy-wireguard has been removed because it was replaced by upstream with mitmproxy-rs"; # added 2023-11-06 mkdocs-awesome-pages-plugin = mkdocs-awesome-nav; # added 2025-03-10 mkdocs-minify = mkdocs-minify-plugin; # added 2023-11-28 + modestmaps = throw "modestmaps is unmaintained and was never enabled for anything except Python27"; # Added 2025-03-23 mox = throw "mox was removed because it is unmaintained"; # added 2023-02-21 mox3 = throw "mox3 was removed because it is unmaintained"; # added 2024-08-30 mrkd = throw "mrkd has been promoted to a top-level attribute name: `pkgs.mrkd`"; # added 2023-08-01 @@ -491,6 +494,7 @@ mapAliases ({ pyalmond = throw "pyalmond has been removed, since its API endpoints have been shutdown"; # added 2023-02-02 pyblake2 = throw "pyblake2 is deprecated in favor of hashlib"; # added 2023-04-23 pyblock = throw "pyblock has been removed, since it is abandoned and broken"; # added 2023-06-20 + pychart = throw "pychart does not support Python3"; # added 2025-03-23 pycontracts = throw "pycontracts has been removed, since upstream is no longer active and it is broken on modern Python versions."; # added 2024-08-09 pydns = py3dns; # added 2024-10-25 pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01 @@ -594,6 +598,7 @@ mapAliases ({ python-Levenshtein = levenshtein; python-pushover = throw "python-pushover has been removed, since it is unmaintained and is broken"; # added 2023-07-03 python-subunit = subunit; # added 2021-09-10 + python-wifi = throw "python-wifi does not support Python3"; pytest_xdist = pytest-xdist; # added 2021-01-04 python_simple_hipchat = python-simple-hipchat; # added 2021-07-21 pytoml = throw "pytoml has been removed because it is unmaintained and is superseded by toml"; # Added 2023-04-11 @@ -711,6 +716,7 @@ mapAliases ({ tensorflow-estimator_2 = tensorflow-estimator; # added 2021-11-25 tensorflow-tensorboard = tensorboard; # added 2022-03-06 tensorflow-tensorboard_2 = tensorflow-tensorboard; # added 2021-11-25 + tilestache = throw "tilestache is unmaintained and Python3 compatibility is unknown"; # Added 2025-03-23 Theano = theano; # added 2023-02-19 TheanoWithCuda = theanoWithCuda; # added 2023-02-19 TheanoWithoutCuda = theanoWithoutCuda; # added 2023-02-19 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7b973dcbacd0..7aaf06856b21 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4530,8 +4530,6 @@ self: super: with self; { events = callPackage ../development/python-modules/events { }; - evernote = callPackage ../development/python-modules/evernote { }; - evohome-async = callPackage ../development/python-modules/evohome-async { }; evolutionhttp = callPackage ../development/python-modules/evolutionhttp { }; @@ -5345,8 +5343,6 @@ self: super: with self; { } ); - geeknote = callPackage ../development/python-modules/geeknote { }; - gehomesdk = callPackage ../development/python-modules/gehomesdk { }; gekitchen = callPackage ../development/python-modules/gekitchen { }; @@ -8895,8 +8891,6 @@ self: super: with self; { moderngl-window = callPackage ../development/python-modules/moderngl-window { }; - modestmaps = callPackage ../development/python-modules/modestmaps { }; - mohawk = callPackage ../development/python-modules/mohawk { }; molbar = callPackage ../development/python-modules/molbar { }; @@ -11843,8 +11837,6 @@ self: super: with self; { pychannels = callPackage ../development/python-modules/pychannels { }; - pychart = callPackage ../development/python-modules/pychart { }; - pychm = callPackage ../development/python-modules/pychm { }; pychromecast = callPackage ../development/python-modules/pychromecast { }; @@ -14116,8 +14108,6 @@ self: super: with self; { python-whois = callPackage ../development/python-modules/python-whois { }; - python-wifi = callPackage ../development/python-modules/python-wifi { }; - python-wink = callPackage ../development/python-modules/python-wink { }; python-xapp = callPackage ../development/python-modules/python-xapp { @@ -17113,8 +17103,6 @@ self: super: with self; { tiler = callPackage ../development/python-modules/tiler { }; - tilestache = callPackage ../development/python-modules/tilestache { }; - tilt-ble = callPackage ../development/python-modules/tilt-ble { }; time-machine = callPackage ../development/python-modules/time-machine { };