diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml index 32321deeddf9..e372c66410de 100644 --- a/nixos/doc/manual/development/writing-nixos-tests.xml +++ b/nixos/doc/manual/development/writing-nixos-tests.xml @@ -274,8 +274,29 @@ start_all() - Execute a shell command, raising an exception if the exit status is not - zero, otherwise returning the standard output. + Execute a shell command, raising an exception if the exit status + is not zero, otherwise returning the standard output. Commands + are run with set -euo pipefail set: + + + + If several commands are separated by ; + and one fails, the command as a whole will fail. + + + + + For pipelines, the last non-zero exit status will be + returned (if there is one, zero will be returned + otherwise). + + + + + Dereferencing unset variables fail the command. + + + diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 54abbb6e38e4..bdc2386f24c8 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -181,6 +181,15 @@ GNOME desktop environment was upgraded to 40, see the release notes for 40.0 and 3.38. The gnome3 attribute set has been renamed to gnome and so have been the NixOS options. + + + Enabling wireless networking now requires specifying at least one network + interface using . + This is to avoid a race condition with the card initialisation (see + issue + #101963 for more information). + + If you are using to assign diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py index e0e8b0fb71f4..ab739ce3222f 100644 --- a/nixos/lib/test-driver/test-driver.py +++ b/nixos/lib/test-driver/test-driver.py @@ -441,7 +441,7 @@ class Machine: def execute(self, command: str) -> Tuple[int, str]: self.connect() - out_command = "( {} ); echo '|!=EOF' $?\n".format(command) + out_command = "( set -euo pipefail; {} ); echo '|!=EOF' $?\n".format(command) self.shell.send(out_command.encode()) output = "" diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 8a0685c3d96b..d9308b37064a 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -40,8 +40,7 @@ in { default = []; example = [ "wlan0" "wlan1" ]; description = '' - The interfaces wpa_supplicant will use. If empty, it will - automatically use all wireless interfaces. + The interfaces wpa_supplicant will use. ''; }; @@ -220,7 +219,14 @@ in { }; config = mkIf cfg.enable { - assertions = flip mapAttrsToList cfg.networks (name: cfg: { + assertions = [ + { assertion = cfg.interfaces != []; + message = '' + No network interfaces for wpa_supplicant have been configured. + Please, specify at least one using networking.wireless.interfaces. + ''; + } + ] ++ flip mapAttrsToList cfg.networks (name: cfg: { assertion = with cfg; count (x: x != null) [ psk pskRaw auth ] <= 1; message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive''; }); @@ -255,20 +261,7 @@ in { then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead." fi iface_args="-s -u -D${cfg.driver} ${configStr}" - ${if ifaces == [] then '' - for i in $(cd /sys/class/net && echo *); do - DEVTYPE= - UEVENT_PATH=/sys/class/net/$i/uevent - if [ -e "$UEVENT_PATH" ]; then - source "$UEVENT_PATH" - if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then - args+="''${args:+ -N} -i$i $iface_args" - fi - fi - done - '' else '' - args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" - ''} + args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" exec wpa_supplicant $args ''; }; diff --git a/nixos/tests/calibre-web.nix b/nixos/tests/calibre-web.nix index 4f73b3311124..0af997317fcd 100644 --- a/nixos/tests/calibre-web.nix +++ b/nixos/tests/calibre-web.nix @@ -36,7 +36,7 @@ import ./make-test-python.nix ( default.wait_for_unit("calibre-web.service") default.wait_for_open_port(${toString defaultPort}) default.succeed( - "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep -q 'Basic Configuration'" + "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep 'Basic Configuration'" ) customized.succeed( @@ -46,7 +46,7 @@ import ./make-test-python.nix ( customized.wait_for_unit("calibre-web.service") customized.wait_for_open_port(${toString port}) customized.succeed( - "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep -q test-book" + "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep test-book" ) ''; } diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 831ef2fb77ad..4c3c26980aa2 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -23,15 +23,15 @@ import ./make-test-python.nix ({ pkgs, ... }: { with subtest("includeStorePath"): with subtest("assumption"): docker.succeed("${examples.helloOnRoot} | docker load") - docker.succeed("set -euo pipefail; docker run --rm hello | grep -i hello") + docker.succeed("docker run --rm hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("includeStorePath = false; breaks example"): docker.succeed("${examples.helloOnRootNoStore} | docker load") - docker.fail("set -euo pipefail; docker run --rm hello | grep -i hello") + docker.fail("docker run --rm hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("includeStorePath = false; works with mounted store"): docker.succeed("${examples.helloOnRootNoStore} | docker load") - docker.succeed("set -euo pipefail; docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello") + docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello") docker.succeed("docker image rm hello:latest") with subtest("Ensure Docker images use a stable date by default"): diff --git a/nixos/tests/doh-proxy-rust.nix b/nixos/tests/doh-proxy-rust.nix index ca150cafab50..23f8616849c3 100644 --- a/nixos/tests/doh-proxy-rust.nix +++ b/nixos/tests/doh-proxy-rust.nix @@ -38,6 +38,6 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: { machine.wait_for_unit("doh-proxy-rust.service") machine.wait_for_open_port(53) machine.wait_for_open_port(3000) - machine.succeed(f"curl --fail '{url}?dns={query}' | grep -qF {bin_ip}") + machine.succeed(f"curl --fail '{url}?dns={query}' | grep -F {bin_ip}") ''; }) diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix index fee350de65b5..71d39a647a5a 100644 --- a/nixos/tests/elk.nix +++ b/nixos/tests/elk.nix @@ -178,7 +178,7 @@ let one.systemctl("stop logstash") one.systemctl("start elasticsearch-curator") one.wait_until_succeeds( - '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep -q ^' + '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^' ) ''; }) {}; diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix index af2ab12bf4bd..696ebabb5806 100644 --- a/nixos/tests/gitlab.nix +++ b/nixos/tests/gitlab.nix @@ -102,7 +102,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; { # `doSetup` is is true. test = doSetup: '' gitlab.succeed( - "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in" + "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in" ) gitlab.succeed( "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2" diff --git a/nixos/tests/gocd-agent.nix b/nixos/tests/gocd-agent.nix index 75edf43ee295..686d0b971d30 100644 --- a/nixos/tests/gocd-agent.nix +++ b/nixos/tests/gocd-agent.nix @@ -42,7 +42,7 @@ import ./make-test-python.nix ({ pkgs, ...} : { "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid" ) agent.succeed( - "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep -q Idle" + "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep Idle" ) ''; }) diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix index 4ba091b893f4..174d664d8772 100644 --- a/nixos/tests/grafana.nix +++ b/nixos/tests/grafana.nix @@ -74,7 +74,7 @@ in { declarativePlugins.wait_for_unit("grafana.service") declarativePlugins.wait_for_open_port(3000) declarativePlugins.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep -q grafana-clock-panel" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep grafana-clock-panel" ) declarativePlugins.shutdown() @@ -82,7 +82,7 @@ in { sqlite.wait_for_unit("grafana.service") sqlite.wait_for_open_port(3000) sqlite.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) sqlite.shutdown() @@ -92,7 +92,7 @@ in { postgresql.wait_for_open_port(3000) postgresql.wait_for_open_port(5432) postgresql.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) postgresql.shutdown() @@ -102,7 +102,7 @@ in { mysql.wait_for_open_port(3000) mysql.wait_for_open_port(3306) mysql.succeed( - "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost" + "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost" ) mysql.shutdown() ''; diff --git a/nixos/tests/miniflux.nix b/nixos/tests/miniflux.nix index 797a2787d1aa..9a25a9e77cc9 100644 --- a/nixos/tests/miniflux.nix +++ b/nixos/tests/miniflux.nix @@ -48,23 +48,23 @@ with lib; default.wait_for_unit("miniflux.service") default.wait_for_open_port(${toString defaultPort}) - default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK") + default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK") default.succeed( - "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) withoutSudo.wait_for_unit("miniflux.service") withoutSudo.wait_for_open_port(${toString defaultPort}) - withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK") + withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK") withoutSudo.succeed( - "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) customized.wait_for_unit("miniflux.service") customized.wait_for_open_port(${toString port}) - customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK") + customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep OK") customized.succeed( - "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'" + "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep '\"is_admin\":true'" ) ''; }) diff --git a/nixos/tests/nginx-variants.nix b/nixos/tests/nginx-variants.nix index ca4655391bc5..a535030663bd 100644 --- a/nixos/tests/nginx-variants.nix +++ b/nixos/tests/nginx-variants.nix @@ -29,5 +29,5 @@ builtins.listToAttrs ( }; } ) - [ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ] + [ "nginxStable" "nginxMainline" "nginxShibboleth" "openresty" "tengine" ] ) diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix index 5686afcd043e..d9d073822a14 100644 --- a/nixos/tests/nginx.nix +++ b/nixos/tests/nginx.nix @@ -56,11 +56,11 @@ import ./make-test-python.nix ({ pkgs, ... }: { }; specialisation.reloadRestartSystem.configuration = { - services.nginx.package = pkgs.nginxUnstable; + services.nginx.package = pkgs.nginxMainline; }; specialisation.reloadWithErrorsSystem.configuration = { - services.nginx.package = pkgs.nginxUnstable; + services.nginx.package = pkgs.nginxMainline; services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;"; }; }; diff --git a/nixos/tests/pomerium.nix b/nixos/tests/pomerium.nix index 531b6212711f..7af828326448 100644 --- a/nixos/tests/pomerium.nix +++ b/nixos/tests/pomerium.nix @@ -88,15 +88,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { with subtest("no authentication required"): pomerium.succeed( - "curl --resolve my.website:80:127.0.0.1 http://my.website | grep -q 'hello world'" + "curl --resolve my.website:80:127.0.0.1 http://my.website | grep 'hello world'" ) with subtest("login required"): pomerium.succeed( - "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep -q pom-auth" + "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep pom-auth" ) pomerium.succeed( - "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep -q 'hello I am login page'" + "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep 'hello I am login page'" ) ''; }) diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index d13058dff4c3..17b71e82ed21 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -71,7 +71,7 @@ let wait_for_open_port(3551) wait_for_unit("prometheus-apcupsd-exporter.service") wait_for_open_port(9162) - succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'") + succeed("curl -sSf http://localhost:9162/metrics | grep 'apcupsd_info'") ''; }; @@ -85,7 +85,7 @@ let wait_for_unit("prometheus-artifactory-exporter.service") wait_for_open_port(9531) succeed( - "curl -sSf http://localhost:9531/metrics | grep -q 'artifactory_up'" + "curl -sSf http://localhost:9531/metrics | grep 'artifactory_up'" ) ''; }; @@ -106,7 +106,7 @@ let wait_for_unit("prometheus-bind-exporter.service") wait_for_open_port(9119) succeed( - "curl -sSf http://localhost:9119/metrics | grep -q 'bind_query_recursions_total 0'" + "curl -sSf http://localhost:9119/metrics | grep 'bind_query_recursions_total 0'" ) ''; }; @@ -135,7 +135,7 @@ let wait_for_unit("prometheus-bird-exporter.service") wait_for_open_port(9324) wait_until_succeeds( - "curl -sSf http://localhost:9324/metrics | grep -q 'MyObviousTestString'" + "curl -sSf http://localhost:9324/metrics | grep 'MyObviousTestString'" ) ''; }; @@ -154,7 +154,7 @@ let wait_for_unit("prometheus-bitcoin-exporter.service") wait_for_unit("bitcoind-default.service") wait_for_open_port(9332) - succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '") + succeed("curl -sSf http://localhost:9332/metrics | grep '^bitcoin_blocks '") ''; }; @@ -172,7 +172,7 @@ let wait_for_unit("prometheus-blackbox-exporter.service") wait_for_open_port(9115) succeed( - "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'" + "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep 'probe_success 1'" ) ''; }; @@ -204,7 +204,7 @@ let "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd" ) succeed( - "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" + "curl -sSf localhost:9103/metrics | grep 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" ) ''; }; @@ -220,7 +220,7 @@ let exporterTest = '' wait_for_unit("prometheus-dnsmasq-exporter.service") wait_for_open_port(9153) - succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'") + succeed("curl -sSf http://localhost:9153/metrics | grep 'dnsmasq_leases 0'") ''; }; @@ -235,7 +235,7 @@ let wait_for_unit("prometheus-domain-exporter.service") wait_for_open_port(9222) succeed( - "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep -q 'domain_probe_success 0'" + "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep 'domain_probe_success 0'" ) ''; }; @@ -254,7 +254,7 @@ let wait_for_unit("prometheus-dovecot-exporter.service") wait_for_open_port(9166) succeed( - "curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'" + "curl -sSf http://localhost:9166/metrics | grep 'dovecot_up{scope=\"global\"} 1'" ) ''; }; @@ -268,7 +268,7 @@ let wait_for_unit("prometheus-fritzbox-exporter.service") wait_for_open_port(9133) succeed( - "curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'" + "curl -sSf http://localhost:9133/metrics | grep 'fritzbox_exporter_collect_errors 0'" ) ''; }; @@ -290,9 +290,9 @@ let wait_for_unit("prometheus-jitsi-exporter.service") wait_for_open_port(9700) wait_until_succeeds( - 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"' + 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep "key=participants"' ) - succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'") + succeed("curl -sSf 'localhost:9700/metrics' | grep 'jitsi_participants 0'") ''; }; @@ -321,7 +321,7 @@ let wait_for_unit("prometheus-json-exporter.service") wait_for_open_port(7979) succeed( - "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep -q 'json_test_metric 1'" + "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep 'json_test_metric 1'" ) ''; }; @@ -426,7 +426,7 @@ let wait_for_unit("knot.service") wait_for_unit("prometheus-knot-exporter.service") wait_for_open_port(9433) - succeed("curl -sSf 'localhost:9433' | grep -q 'knot_server_zone_count 1.0'") + succeed("curl -sSf 'localhost:9433' | grep 'knot_server_zone_count 1.0'") ''; }; @@ -441,10 +441,10 @@ let wait_for_unit("prometheus-keylight-exporter.service") wait_for_open_port(9288) succeed( - "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'" + "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep '400'" ) succeed( - "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'" + "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep '500'" ) ''; }; @@ -489,7 +489,7 @@ let wait_for_open_port(10009) wait_for_unit("prometheus-lnd-exporter.service") wait_for_open_port(9092) - succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'") + succeed("curl -sSf localhost:9092/metrics | grep '^promhttp_metric_handler'") ''; }; @@ -531,7 +531,7 @@ let wait_for_unit("prometheus-mail-exporter.service") wait_for_open_port(9225) wait_until_succeeds( - "curl -sSf http://localhost:9225/metrics | grep -q 'mail_deliver_success{configname=\"testserver\"} 1'" + "curl -sSf http://localhost:9225/metrics | grep 'mail_deliver_success{configname=\"testserver\"} 1'" ) ''; }; @@ -571,7 +571,7 @@ let wait_for_unit("prometheus-mikrotik-exporter.service") wait_for_open_port(9436) succeed( - "curl -sSf http://localhost:9436/metrics | grep -q 'mikrotik_scrape_collector_success{device=\"router\"} 0'" + "curl -sSf http://localhost:9436/metrics | grep 'mikrotik_scrape_collector_success{device=\"router\"} 0'" ) ''; }; @@ -596,7 +596,7 @@ let wait_for_unit("prometheus-modemmanager-exporter.service") wait_for_open_port(9539) succeed( - "curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'" + "curl -sSf http://localhost:9539/metrics | grep 'modemmanager_info'" ) ''; }; @@ -634,7 +634,7 @@ let wait_for_unit("nginx.service") wait_for_unit("prometheus-nextcloud-exporter.service") wait_for_open_port(9205) - succeed("curl -sSf http://localhost:9205/metrics | grep -q 'nextcloud_up 1'") + succeed("curl -sSf http://localhost:9205/metrics | grep 'nextcloud_up 1'") ''; }; @@ -653,7 +653,7 @@ let wait_for_unit("nginx.service") wait_for_unit("prometheus-nginx-exporter.service") wait_for_open_port(9113) - succeed("curl -sSf http://localhost:9113/metrics | grep -q 'nginx_up 1'") + succeed("curl -sSf http://localhost:9113/metrics | grep 'nginx_up 1'") ''; }; @@ -708,12 +708,12 @@ let succeed("curl http://localhost") execute("sleep 1") succeed( - "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep -q 1" + "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep 1" ) succeed("curl http://localhost:81") execute("sleep 1") succeed( - "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep -q 1" + "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep 1" ) ''; }; @@ -726,7 +726,7 @@ let wait_for_unit("prometheus-node-exporter.service") wait_for_open_port(9100) succeed( - "curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'" + "curl -sSf http://localhost:9100/metrics | grep 'node_exporter_build_info{.\\+} 1'" ) ''; }; @@ -786,7 +786,7 @@ let wait_for_open_port(389) wait_for_open_port(9330) wait_until_succeeds( - "curl -sSf http://localhost:9330/metrics | grep -q 'openldap_scrape{result=\"ok\"} 1'" + "curl -sSf http://localhost:9330/metrics | grep 'openldap_scrape{result=\"ok\"} 1'" ) ''; }; @@ -812,7 +812,7 @@ let exporterTest = '' wait_for_unit("openvpn-test.service") wait_for_unit("prometheus-openvpn-exporter.service") - succeed("curl -sSf http://localhost:9176/metrics | grep -q 'openvpn_up{.*} 1'") + succeed("curl -sSf http://localhost:9176/metrics | grep 'openvpn_up{.*} 1'") ''; }; @@ -828,9 +828,9 @@ let wait_for_file("/var/lib/postfix/queue/public/showq") wait_for_open_port(9154) succeed( - "curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'" + "curl -sSf http://localhost:9154/metrics | grep 'postfix_smtpd_connects_total 0'" ) - succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_up{.*} 1'") + succeed("curl -sSf http://localhost:9154/metrics | grep 'postfix_up{.*} 1'") ''; }; @@ -847,20 +847,20 @@ let wait_for_open_port(9187) wait_for_unit("postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'" ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'") + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'") systemctl("stop postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -qv 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep -v 'pg_exporter_last_scrape_error 0'" ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 0'") + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 0'") systemctl("start postgresql.service") wait_for_unit("postgresql.service") succeed( - "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'" + "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'" ) - succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'") + succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'") ''; }; @@ -893,7 +893,7 @@ let wait_for_unit("prometheus-py-air-control-exporter.service") wait_for_open_port(9896) succeed( - "curl -sSf http://localhost:9896/metrics | grep -q 'py_air_control_sampling_error_total'" + "curl -sSf http://localhost:9896/metrics | grep 'py_air_control_sampling_error_total'" ) ''; }; @@ -908,7 +908,7 @@ let wait_for_unit("prometheus-redis-exporter.service") wait_for_open_port(6379) wait_for_open_port(9121) - wait_until_succeeds("curl -sSf localhost:9121/metrics | grep -q 'redis_up 1'") + wait_until_succeeds("curl -sSf localhost:9121/metrics | grep 'redis_up 1'") ''; }; @@ -926,7 +926,7 @@ let wait_for_open_port(11334) wait_for_open_port(7980) wait_until_succeeds( - "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'" + "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep 'rspamd_scanned{host=\"rspamd\"} 0'" ) ''; }; @@ -957,7 +957,7 @@ let wait_for_unit("prometheus-rtl_433-exporter.service") wait_for_open_port(9550) wait_until_succeeds( - "curl -sSf localhost:9550/metrics | grep -q '{}'".format( + "curl -sSf localhost:9550/metrics | grep '{}'".format( 'rtl_433_temperature_celsius{channel="3",id="55",location="",model="zopieux"} 18' ) ) @@ -973,12 +973,12 @@ let wait_for_unit("prometheus-smokeping-exporter.service") wait_for_open_port(9374) wait_until_succeeds( - "curl -sSf localhost:9374/metrics | grep '{}' | grep -qv ' 0$'".format( + "curl -sSf localhost:9374/metrics | grep '{}' | grep -v ' 0$'".format( 'smokeping_requests_total{host="127.0.0.1",ip="127.0.0.1"} ' ) ) wait_until_succeeds( - "curl -sSf localhost:9374/metrics | grep -q '{}'".format( + "curl -sSf localhost:9374/metrics | grep '{}'".format( 'smokeping_response_ttl{host="127.0.0.1",ip="127.0.0.1"}' ) ) @@ -996,7 +996,7 @@ let exporterTest = '' wait_for_unit("prometheus-snmp-exporter.service") wait_for_open_port(9116) - succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'") + succeed("curl -sSf localhost:9116/metrics | grep 'snmp_request_errors_total 0'") ''; }; @@ -1040,7 +1040,7 @@ let exporterTest = '' wait_for_unit("prometheus-sql-exporter.service") wait_for_open_port(9237) - succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep -q 2") + succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep 2") ''; }; @@ -1063,7 +1063,7 @@ let wait_for_open_port(80) wait_for_unit("prometheus-surfboard-exporter.service") wait_for_open_port(9239) - succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'") + succeed("curl -sSf localhost:9239/metrics | grep 'surfboard_up 1'") ''; }; @@ -1076,7 +1076,7 @@ let wait_for_unit("prometheus-systemd-exporter.service") wait_for_open_port(9558) succeed( - "curl -sSf localhost:9558/metrics | grep -q '{}'".format( + "curl -sSf localhost:9558/metrics | grep '{}'".format( 'systemd_unit_state{name="basic.target",state="active",type="target"} 1' ) ) @@ -1098,7 +1098,7 @@ let wait_for_open_port(9051) wait_for_unit("prometheus-tor-exporter.service") wait_for_open_port(9130) - succeed("curl -sSf localhost:9130/metrics | grep -q 'tor_version{.\\+} 1'") + succeed("curl -sSf localhost:9130/metrics | grep 'tor_version{.\\+} 1'") ''; }; @@ -1110,7 +1110,7 @@ let wait_for_unit("prometheus-unifi-poller-exporter.service") wait_for_open_port(9130) succeed( - "curl -sSf localhost:9130/metrics | grep -q 'unifipoller_build_info{.\\+} 1'" + "curl -sSf localhost:9130/metrics | grep 'unifipoller_build_info{.\\+} 1'" ) ''; }; @@ -1134,7 +1134,7 @@ let wait_for_unit("unbound.service") wait_for_unit("prometheus-unbound-exporter.service") wait_for_open_port(9167) - succeed("curl -sSf localhost:9167/metrics | grep -q 'unbound_up 1'") + succeed("curl -sSf localhost:9167/metrics | grep 'unbound_up 1'") ''; }; @@ -1163,7 +1163,7 @@ let wait_for_unit("prometheus-varnish-exporter.service") wait_for_open_port(6081) wait_for_open_port(9131) - succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'") + succeed("curl -sSf http://localhost:9131/metrics | grep 'varnish_up 1'") ''; }; diff --git a/nixos/tests/shiori.nix b/nixos/tests/shiori.nix index a5771262c6f2..418bee43c939 100644 --- a/nixos/tests/shiori.nix +++ b/nixos/tests/shiori.nix @@ -28,7 +28,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: machine.wait_for_unit("shiori.service") machine.wait_for_open_port(8080) machine.succeed("curl --fail http://localhost:8080/") - machine.succeed("curl --fail --location http://localhost:8080/ | grep -qi shiori") + machine.succeed("curl --fail --location http://localhost:8080/ | grep -i shiori") with subtest("login"): auth_json = machine.succeed( diff --git a/nixos/tests/wiki-js.nix b/nixos/tests/wiki-js.nix index 9aa87d15366b..783887d2dcaa 100644 --- a/nixos/tests/wiki-js.nix +++ b/nixos/tests/wiki-js.nix @@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { with subtest("Setup"): result = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d " + "curl -sSf localhost:3000/finalize -X POST -d " + "@${payloads.finalize} -H 'Content-Type: application/json' " + "| jq .ok | xargs echo" ) @@ -132,7 +132,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { with subtest("Base functionality"): auth = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/graphql -X POST " + "curl -sSf localhost:3000/graphql -X POST " + "-d @${payloads.login} -H 'Content-Type: application/json' " + "| jq '.[0].data.authentication.login.jwt' | xargs echo" ).strip() @@ -140,7 +140,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : { assert auth create = machine.succeed( - "set -o pipefail; curl -sSf localhost:3000/graphql -X POST " + "curl -sSf localhost:3000/graphql -X POST " + "-d @${payloads.content} -H 'Content-Type: application/json' " + f"-H 'Authorization: Bearer {auth}' " + "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo" diff --git a/nixos/tests/xandikos.nix b/nixos/tests/xandikos.nix index 48c770a3d168..69d78ee21e76 100644 --- a/nixos/tests/xandikos.nix +++ b/nixos/tests/xandikos.nix @@ -44,7 +44,7 @@ import ./make-test-python.nix ( xandikos_default.wait_for_open_port(8080) xandikos_default.succeed("curl --fail http://localhost:8080/") xandikos_default.succeed( - "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos" ) xandikos_client.wait_for_unit("network.target") xandikos_client.fail("curl --fail http://xandikos_default:8080/") @@ -55,15 +55,15 @@ import ./make-test-python.nix ( xandikos_proxy.wait_for_open_port(8080) xandikos_proxy.succeed("curl --fail http://localhost:8080/") xandikos_proxy.succeed( - "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos" ) xandikos_client.wait_for_unit("network.target") xandikos_client.fail("curl --fail http://xandikos_proxy:8080/") xandikos_client.succeed( - "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos" + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -i Xandikos" ) xandikos_client.succeed( - "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos" + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -i Xandikos" ) ''; } diff --git a/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix new file mode 100644 index 000000000000..658a18c05867 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "apheleia"; + version = "2021-05-23"; + + src = fetchFromGitHub { + owner = "raxod502"; + repo = "apheleia"; + rev = "f865c165dac606187a66b2b25a57d5099b452120"; + sha256 = "sha256-n37jJsNOGhSjUtQysG3NVIjjayhbOa52iTXBc8SyKXE="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Reformat buffer stably"; + homepage = "https://github.com/raxod502/apheleia"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix new file mode 100644 index 000000000000..74fc1a179219 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, emacs, emacsPackages, lib }: + +let + runtimeDeps = with emacsPackages; [ + evil + markdown-mode + ]; +in +stdenv.mkDerivation { + pname = "evil-markdown"; + version = "2020-06-01"; + + src = fetchFromGitHub { + owner = "Somelauw"; + repo = "evil-markdown"; + rev = "064fe9b4767470472356d20bdd08e2f30ebbc9ac"; + sha256 = "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY="; + }; + + buildInputs = [ + emacs + ] ++ runtimeDeps; + + propagatedUserEnvPkgs = runtimeDeps; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Vim-like keybindings for markdown-mode"; + homepage = "https://github.com/Somelauw/evil-markdown"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix new file mode 100644 index 000000000000..1b4da6340dc2 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "git-undo"; + version = "2019-10-13"; + + src = fetchFromGitHub { + owner = "jwiegley"; + repo = "git-undo-el"; + rev = "cf31e38e7889e6ade7d2d2b9f8719fd44f52feb5"; + sha256 = "sha256-cVkK9EF6qQyVV3uVqnBEjF8e9nEx/8ixnM8PvxqCyYE="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Revert region to most recent Git-historical version"; + homepage = "https://github.com/jwiegley/git-undo-el"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix b/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix new file mode 100644 index 000000000000..64cfbde98b77 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "isearch-plus"; + version = "2021-01-01"; + + src = fetchFromGitHub { + owner = "emacsmirror"; + repo = "isearch-plus"; + rev = "376a8f9f8a9666d7e61d125abcdb645847cb8619"; + sha256 = "sha256-Kd5vpu+mI1tJPcsu7EpnnBcPVdVAijkAeTz+bLB3WlQ="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Extensions to isearch"; + homepage = "https://www.emacswiki.org/emacs/download/isearch%2b.el"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix new file mode 100644 index 000000000000..0db28255f70c --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "isearch-prop"; + version = "2019-05-01"; + + src = fetchFromGitHub { + owner = "emacsmirror"; + repo = "isearch-prop"; + rev = "4a2765f835dd115d472142da05215c4c748809f4"; + sha256 = "sha256-A1Kt4nm7iRV9J5yaLupwiNL5g7ddZvQs79dggmqZ7Rk="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Search text- or overlay-property contexts"; + homepage = "https://www.emacswiki.org/emacs/download/isearch-prop.el"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 80cc7578b4fb..f862a1ae8a54 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -65,11 +65,15 @@ }; }; + apheleia = callPackage ./apheleia {}; + emacspeak = callPackage ./emacspeak {}; ess-R-object-popup = callPackage ./ess-R-object-popup { }; + evil-markdown = callPackage ./evil-markdown { }; + font-lock-plus = callPackage ./font-lock-plus { }; ghc-mod = melpaBuild { @@ -88,6 +92,8 @@ }; }; + git-undo = callPackage ./git-undo { }; + haskell-unicode-input-method = melpaBuild { pname = "emacs-haskell-unicode-input-method"; version = "20110905.2307"; @@ -111,6 +117,10 @@ helm-words = callPackage ./helm-words { }; + isearch-plus = callPackage ./isearch-plus { }; + + isearch-prop = callPackage ./isearch-prop { }; + jam-mode = callPackage ./jam-mode { }; llvm-mode = trivialBuild { @@ -177,6 +187,8 @@ }; + mu4e-patch = callPackage ./mu4e-patch { }; + org-mac-link = callPackage ./org-mac-link { }; @@ -206,6 +218,8 @@ tramp = callPackage ./tramp { }; + youtube-dl = callPackage ./youtube-dl { }; + zeitgeist = callPackage ./zeitgeist { }; # From old emacsPackages (pre emacsPackagesNg) diff --git a/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix b/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix new file mode 100644 index 000000000000..4a436339ebc4 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "mu4e-patch"; + version = "2019-05-09"; + + src = fetchFromGitHub { + owner = "seanfarley"; + repo = "mu4e-patch"; + rev = "522da46c1653b1cacc79cde91d6534da7ae9517d"; + sha256 = "sha256-1lV4dDuCdyCUXi/In2DzYJPEHuAc9Jfbz2ZecNZwn4I="; + }; + + buildInputs = [ + emacs + ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Colorize patch emails in mu4e"; + homepage = "https://github.com/seanfarley/mu4e-patch"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix new file mode 100644 index 000000000000..c99693463a64 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, emacs, lib }: + +stdenv.mkDerivation { + pname = "youtube-dl"; + version = "2018-10-12"; + + src = fetchFromGitHub { + owner = "skeeto"; + repo = "youtube-dl-emacs"; + rev = "af877b5bc4f01c04fccfa7d47a2c328926f20ef4"; + sha256 = "sha256-Etl95rcoRACDPjcTPQqYK2L+w8OZbOrTrRT0JadMdH4="; + }; + + buildInputs = [ emacs ]; + + buildPhase = '' + runHook preBuild + emacs -L . --batch -f batch-byte-compile *.el + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp + install *.el *.elc $out/share/emacs/site-lisp + runHook postInstall + ''; + + meta = { + description = "Emacs frontend to the youtube-dl utility"; + homepage = "https://github.com/skeeto/youtube-dl-emacs"; + license = lib.licenses.unlicense; + maintainers = with lib.maintainers; [ leungbk ]; + platforms = emacs.meta.platforms; + }; +} diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix index 5972843ab314..8d0e86b1a93b 100644 --- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix @@ -54,11 +54,11 @@ stdenv.mkDerivation rec { pname = "gnome-boxes"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "seKPLH+3a/T7uGLQ1S6BG5TL6f8W8GdAiWRWhpCILvg="; + sha256 = "hzN1mi2GpWNnWWpTSQRjO4HKqlxFpWNtsulZDHFK6Nk="; }; doCheck = true; diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix index 9c0b1f659768..da2e37e51fc4 100644 --- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix @@ -24,11 +24,11 @@ stdenv.mkDerivation rec { pname = "gnome-calendar"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "2M30n57uHDo8aZHDL4VjxKfE2w23ymPOUcyRjkM7M6U="; + sha256 = "njcB/UoOWJgA0iUgN3BkTzHVI0ZV9UqDqF/wVW3X6jM="; }; patches = [ diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix index 2818215a4ff9..0a07428b1b22 100644 --- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix +++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix @@ -29,11 +29,11 @@ stdenv.mkDerivation rec { pname = "gnome-maps"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-mAXUwFs6NpV0bTdisoFr/+bZ19VuF7y7nZ1B3C0CYxo="; + sha256 = "sha256-g+gVAFTQxLWmPJoJvyx9+YmuaQ7Kwb5r97ExKqpjm9Q="; }; doCheck = true; diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix index f286d384c4e8..0b4191b2266c 100644 --- a/pkgs/desktops/gnome/core/epiphany/default.nix +++ b/pkgs/desktops/gnome/core/epiphany/default.nix @@ -37,11 +37,11 @@ stdenv.mkDerivation rec { pname = "epiphany"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "1l0sb1xg16g4wg3z99xb0w2kbyczbn7q4mphs3w4lxq22xml4sk9"; + sha256 = "dRGeIgZWV89w7ytgPU9zg1VzvQNPHmGMD2YkeP1saDU="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix index 0ed3565d7f03..8781a2aa7fde 100644 --- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix +++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "evolution-data-server"; - version = "3.40.1"; + version = "3.40.2"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "08iykha7zhk21b3axsp3v1jfwda612v0m8rz8zlzppm5i8s5ziza"; + sha256 = "7IKVFjnzKlzs6AqLC5qj9mt9MY4+4sHDUjTy4r3opBg="; }; patches = [ diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix index 64cd214e8090..226b251ec46a 100644 --- a/pkgs/desktops/gnome/core/gnome-software/default.nix +++ b/pkgs/desktops/gnome/core/gnome-software/default.nix @@ -43,11 +43,11 @@ in stdenv.mkDerivation rec { pname = "gnome-software"; - version = "40.1"; + version = "40.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "16q2902swxsjdxb1nj335sv1bb76rvq4w6dn4yszkwf3s0fd86in"; + sha256 = "y9HdKguvw/U93kIAPEpKA3RsuNZNxdJ+uNvmc27nJ5Y="; }; patches = [ diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch new file mode 100644 index 000000000000..425dc2af01e7 --- /dev/null +++ b/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch @@ -0,0 +1,71 @@ +diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp +--- a/lib/sanitizer_common/sanitizer_mac.cpp ++++ b/lib/sanitizer_common/sanitizer_mac.cpp +@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) { + // Offset example: + // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4 + constexpr u16 GetOSMajorKernelOffset() { +- if (TARGET_OS_OSX) return 4; +- if (TARGET_OS_IOS || TARGET_OS_TV) return 6; +- if (TARGET_OS_WATCH) return 13; ++#if TARGET_OS_OSX ++ return 4; ++#endif ++#if TARGET_OS_IOS || TARGET_OS_TV ++ return 6; ++#endif ++#if TARGET_OS_WATCH ++ return 13; ++#endif + } + + using VersStr = char[64]; +@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) { + u16 os_major = kernel_major - offset; + + const char *format = "%d.0"; +- if (TARGET_OS_OSX) { +- if (os_major >= 16) { // macOS 11+ +- os_major -= 5; +- } else { // macOS 10.15 and below +- format = "10.%d"; +- } ++#if TARGET_OS_OSX ++ if (os_major >= 16) { // macOS 11+ ++ os_major -= 5; ++ } else { // macOS 10.15 and below ++ format = "10.%d"; + } ++#endif + return internal_snprintf(vers, sizeof(VersStr), format, os_major); + } + +@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) { + // Aligned versions example: + // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6 + static void MapToMacos(u16 *major, u16 *minor) { +- if (TARGET_OS_OSX) +- return; +- +- if (TARGET_OS_IOS || TARGET_OS_TV) ++#if !TARGET_OS_OSX ++#if TARGET_OS_IOS || TARGET_OS_TV + *major += 2; +- else if (TARGET_OS_WATCH) ++#elif TARGET_OS_WATCH + *major += 9; +- else ++#else + UNREACHABLE("unsupported platform"); ++#endif + + if (*major >= 16) { // macOS 11+ + *major -= 5; +@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) { + *minor = *major; + *major = 10; + } ++#endif + } + + static MacosVersion GetMacosAlignedVersionInternal() { diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix index 895af8f2f020..cde1317ca35d 100644 --- a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix @@ -59,6 +59,8 @@ stdenv.mkDerivation { # extra `/`. ./normalize-var.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch + # Prevent a compilation error on darwin + ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks diff --git a/pkgs/development/interpreters/erlang/R21.nix b/pkgs/development/interpreters/erlang/R21.nix index 3959c13e57bc..7706bd69fbf5 100644 --- a/pkgs/development/interpreters/erlang/R21.nix +++ b/pkgs/development/interpreters/erlang/R21.nix @@ -1,6 +1,6 @@ { mkDerivation }: mkDerivation { - version = "21.3.8.23"; - sha256 = "sha256-zIEXn2HuXeRKHfXmm0AAv9rEqqc4gIgaYek0hSUK5YU="; + version = "21.3.8.24"; + sha256 = "sha256-FNs+M4KFFKzfb4EG513HtyQ9eRRtxSPMpYq0bmRgY3g="; } diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix index 14e2c8878fd9..de7bf560d3ea 100644 --- a/pkgs/development/libraries/cpp-utilities/default.nix +++ b/pkgs/development/libraries/cpp-utilities/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "cpp-utilities"; - version = "5.10.3"; + version = "5.10.4"; src = fetchFromGitHub { owner = "Martchus"; repo = pname; rev = "v${version}"; - sha256 = "sha256-bEdDRvm5W12wJnW4xC+AcRLevZ0H7C625eknKzNrLLU="; + sha256 = "sha256-pZh/NbTzQR2kjMeauv1HcRn0hDBaCNRbaZ3+1qs5rxU="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/tools/go-toml/default.nix b/pkgs/development/tools/go-toml/default.nix index 355f468237c4..fee8d94f754b 100644 --- a/pkgs/development/tools/go-toml/default.nix +++ b/pkgs/development/tools/go-toml/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { pname = "go-toml"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "pelletier"; repo = pname; rev = "v${version}"; - sha256 = "sha256-O3gfQon8ktObLVED4A5sCSOw8K1NIXP3a5AsLq3Svb4="; + sha256 = "sha256-x740f6I+szhq4mEsed4bsXcC8PvzF6PKFJNJ9SKMGIE="; }; goPackagePath = "github.com/pelletier/go-toml"; diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix index 7038b7c1eb03..af33938c1a6f 100644 --- a/pkgs/development/tools/lazygit/default.nix +++ b/pkgs/development/tools/lazygit/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "lazygit"; - version = "0.28.1"; + version = "0.28.2"; src = fetchFromGitHub { owner = "jesseduffield"; repo = pname; rev = "v${version}"; - sha256 = "sha256-tan8ksSyMIeDL7oRAWd3Qtz/sKbhAAfY7IknfwjyvgQ="; + sha256 = "sha256-s5Ou0FhL9+2/xm7lKMG/3ya5P8idI0cgtJ28cV37pJQ="; }; vendorSha256 = null; diff --git a/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/pkgs/development/tools/parsing/tree-sitter/grammar.nix index 5ca381e6d2ff..93e1cb3804fb 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammar.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammar.nix @@ -1,5 +1,7 @@ { stdenv , tree-sitter +, libcxx +, lib }: # Build a parser grammar and put the resulting shared object in `$out/parser` @@ -27,6 +29,7 @@ stdenv.mkDerivation { "${source}/${location}" ; + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1"; buildInputs = [ tree-sitter ]; dontUnpack = true; diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix index ef9c7fbe4d64..b09dc523d1ac 100644 --- a/pkgs/games/stockfish/default.nix +++ b/pkgs/games/stockfish/default.nix @@ -12,13 +12,13 @@ let if stdenv.isi686 then "x86-32" else if stdenv.isAarch64 then "armv8" else "unknown"; - version = "12"; + version = "13"; - nnueFile = "nn-82215d0fd0df.nnue"; + nnueFile = "nn-62ef826d1a6d.nnue"; nnue = fetchurl { name = nnueFile; url = "https://tests.stockfishchess.org/api/nn/${nnueFile}"; - sha256 = "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2"; + sha256 = "0qsy9rr4zgxrpgwhwbi96z01a2560am2b00q2klbj4bd39nq5vv2"; }; in @@ -28,7 +28,7 @@ stdenv.mkDerivation { src = fetchurl { url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz"; - sha256 = "16980aicm5i6i9252239q4f9bcxg1gnqkv6nphrmpz4drg8i3v6i"; + sha256 = "0qhxp2w543psanzhzn8jhfafx8aip57v9nsvafbwa5xynchlgl8m"; }; # This addresses a linker issue with Darwin diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix index ae5805451140..40586f6be656 100644 --- a/pkgs/tools/misc/silicon/default.nix +++ b/pkgs/tools/misc/silicon/default.nix @@ -18,16 +18,16 @@ rustPlatform.buildRustPackage rec { pname = "silicon"; - version = "0.4.1"; + version = "0.4.2"; src = fetchFromGitHub { owner = "Aloxaf"; repo = "silicon"; rev = "v${version}"; - sha256 = "sha256-ci0gq4rOQHBmFPvhXZseIlwnqAWd06/qg/i/luhV79s="; + sha256 = "sha256-k+p8AEEL1BBJTmPc58QoIk7EOzu8QKdG00RQ58EN3bg="; }; - cargoSha256 = "sha256-sUPOf9er+BOMqDJ8C6+Xjjqj6NQUV2JTzGA4yUWtDWM="; + cargoSha256 = "sha256-vpegobS7lpRkt/oZePW9WggYeg0JXDte8fQP/bf7oAI="; buildInputs = [ llvmPackages.libclang expat freetype fira-code ] ++ lib.optionals stdenv.isLinux [ libxcb ]