diff options
30 files changed, 381 insertions, 172 deletions
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix index c33a92580d4cd..6ea0cfe615b10 100644 --- a/nixos/modules/security/acme.nix +++ b/nixos/modules/security/acme.nix @@ -235,7 +235,7 @@ let # https://github.com/NixOS/nixpkgs/pull/81371#issuecomment-605526099 wantedBy = optionals (!config.boot.isContainer) [ "multi-user.target" ]; - path = with pkgs; [ lego coreutils diffutils ]; + path = with pkgs; [ lego coreutils diffutils openssl ]; serviceConfig = commonServiceConfig // { Group = data.group; @@ -274,6 +274,34 @@ let script = '' set -euxo pipefail + # This reimplements the expiration date check, but without querying + # the acme server first. By doing this offline, we avoid errors + # when the network or DNS are unavailable, which can happen during + # nixos-rebuild switch. + is_expiration_skippable() { + pem=$1 + + # This function relies on set -e to exit early if any of the + # conditions or programs fail. + + [[ -e $pem ]] + + expiration_line="$( + set -euxo pipefail + openssl x509 -noout -enddate <$pem \ + | grep notAfter \ + | sed -e 's/^notAfter=//' + )" + [[ -n "$expiration_line" ]] + + expiration_date="$(date -d "$expiration_line" +%s)" + now="$(date +%s)" + expiration_s=$[expiration_date - now] + expiration_days=$[expiration_s / (3600 * 24)] # rounds down + + [[ $expiration_days -gt ${toString cfg.validMinDays} ]] + } + ${optionalString (data.webroot != null) '' # Ensure the webroot exists mkdir -p '${data.webroot}/.well-known/acme-challenge' @@ -288,8 +316,14 @@ let # When domains are updated, there's no need to do a full # Lego run, but it's likely renew won't work if days is too low. if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then - lego ${renewOpts} --days ${toString cfg.validMinDays} + if is_expiration_skippable out/full.pem; then + echo 1>&2 "nixos-acme: skipping renewal because expiration isn't within the coming ${toString cfg.validMinDays} days" + else + echo 1>&2 "nixos-acme: renewing now, because certificate expires within the configured ${toString cfg.validMinDays} days" + lego ${renewOpts} --days ${toString cfg.validMinDays} + fi else + echo 1>&2 "certificate domain(s) have changed; will renew now" # Any number > 90 works, but this one is over 9000 ;-) lego ${renewOpts} --days 9001 fi diff --git a/nixos/modules/services/desktops/pipewire/README.md b/nixos/modules/services/desktops/pipewire/README.md new file mode 100644 index 0000000000000..87288a81cfe1a --- /dev/null +++ b/nixos/modules/services/desktops/pipewire/README.md @@ -0,0 +1,6 @@ +# Updating + +1. Update the version & hash in pkgs/development/libraries/pipewire/default.nix +2. run `nix build -f /path/to/nixpkgs/checkout pipewire pipewire.mediaSession` +3. copy all JSON files from result/etc/pipewire and result-mediaSession/etc/pipewire/media-session.d to this directory +4. add new files to the module config and passthru tests diff --git a/nixos/modules/services/desktops/pipewire/client-rt.conf.json b/nixos/modules/services/desktops/pipewire/client-rt.conf.json index d294927b4f642..284d8c394a611 100644 --- a/nixos/modules/services/desktops/pipewire/client-rt.conf.json +++ b/nixos/modules/services/desktops/pipewire/client-rt.conf.json @@ -6,21 +6,34 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "filter.properties": {}, "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/client.conf.json b/nixos/modules/services/desktops/pipewire/client.conf.json index 224938abbbcf7..71294a0e78a2d 100644 --- a/nixos/modules/services/desktops/pipewire/client.conf.json +++ b/nixos/modules/services/desktops/pipewire/client.conf.json @@ -6,14 +6,26 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + "context.modules": [ + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "filter.properties": {}, "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/jack.conf.json b/nixos/modules/services/desktops/pipewire/jack.conf.json index 2de04036b312d..a6bd34917851b 100644 --- a/nixos/modules/services/desktops/pipewire/jack.conf.json +++ b/nixos/modules/services/desktops/pipewire/jack.conf.json @@ -5,17 +5,24 @@ "context.spa-libs": { "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-metadata": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-metadata" + } + ], "jack.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixos/modules/services/desktops/pipewire/media-session.conf.json index 4b2505ff8164c..62e59935dbe5e 100644 --- a/nixos/modules/services/desktops/pipewire/media-session.conf.json +++ b/nixos/modules/services/desktops/pipewire/media-session.conf.json @@ -6,21 +6,34 @@ "api.v4l2.*": "v4l2/libspa-v4l2", "api.libcamera.*": "libcamera/libspa-libcamera" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-session-manager": null - }, + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-session-manager" + } + ], "session.modules": { "default": [ "flatpak", diff --git a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix index b41ea349fb8db..539a4cf446940 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix +++ b/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix @@ -9,21 +9,12 @@ let && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.pipewire != null; - prioritizeNativeProtocol = { - "context.modules" = { - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - }; - }; - # Use upstream config files passed through spa-json-dump as the base # Patched here as necessary for them to work with this module defaults = { alsa-monitor = (builtins.fromJSON (builtins.readFile ./alsa-monitor.conf.json)); bluez-monitor = (builtins.fromJSON (builtins.readFile ./bluez-monitor.conf.json)); - media-session = recursiveUpdate (builtins.fromJSON (builtins.readFile ./media-session.conf.json)) prioritizeNativeProtocol; + media-session = (builtins.fromJSON (builtins.readFile ./media-session.conf.json)); v4l2-monitor = (builtins.fromJSON (builtins.readFile ./v4l2-monitor.conf.json)); }; # Helpers for generating the pipewire JSON config file diff --git a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json index da08bcea2c90b..3e776fe75a2cd 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json @@ -4,25 +4,35 @@ "audio.convert.*": "audioconvert/libspa-audioconvert", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-client-node": null, - "libpipewire-module-adapter": null, - "libpipewire-module-metadata": null, - "libpipewire-module-protocol-pulse": { + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-protocol-pulse", "args": { "server.address": [ "unix:native" ] } } - }, + ], "stream.properties": {} } diff --git a/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixos/modules/services/desktops/pipewire/pipewire.conf.json index 59e2afca09396..bae87dd663773 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.conf.json +++ b/nixos/modules/services/desktops/pipewire/pipewire.conf.json @@ -14,42 +14,66 @@ "api.jack.*": "jack/libspa-jack", "support.*": "support/libspa-support" }, - "context.modules": { - "libpipewire-module-rtkit": { + "context.modules": [ + { + "name": "libpipewire-module-rtkit", "args": {}, "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-protocol-native": null, - "libpipewire-module-profiler": null, - "libpipewire-module-metadata": null, - "libpipewire-module-spa-device-factory": null, - "libpipewire-module-spa-node-factory": null, - "libpipewire-module-client-node": null, - "libpipewire-module-client-device": null, - "libpipewire-module-portal": { + { + "name": "libpipewire-module-protocol-native" + }, + { + "name": "libpipewire-module-profiler" + }, + { + "name": "libpipewire-module-metadata" + }, + { + "name": "libpipewire-module-spa-device-factory" + }, + { + "name": "libpipewire-module-spa-node-factory" + }, + { + "name": "libpipewire-module-client-node" + }, + { + "name": "libpipewire-module-client-device" + }, + { + "name": "libpipewire-module-portal", "flags": [ "ifexists", "nofail" ] }, - "libpipewire-module-access": { + { + "name": "libpipewire-module-access", "args": {} }, - "libpipewire-module-adapter": null, - "libpipewire-module-link-factory": null, - "libpipewire-module-session-manager": null - }, - "context.objects": { - "spa-node-factory": { + { + "name": "libpipewire-module-adapter" + }, + { + "name": "libpipewire-module-link-factory" + }, + { + "name": "libpipewire-module-session-manager" + } + ], + "context.objects": [ + { + "factory": "spa-node-factory", "args": { "factory.name": "support.node.driver", "node.name": "Dummy-Driver", "priority.driver": 8000 } } - }, - "context.exec": {} + ], + "context.exec": [] } diff --git a/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixos/modules/services/desktops/pipewire/pipewire.nix index 2577e77c4a1ff..7cf19706a6333 100644 --- a/nixos/modules/services/desktops/pipewire/pipewire.nix +++ b/nixos/modules/services/desktops/pipewire/pipewire.nix @@ -18,45 +18,15 @@ let ln -s "${cfg.package.jack}/lib" "$out/lib/pipewire" ''; - prioritizeNativeProtocol = { - "context.modules" = { - # Most other modules depend on this, so put it first - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - }; - }; - - fixDaemonModulePriorities = { - "context.modules" = { - # Most other modules depend on thism so put it first - "libpipewire-module-protocol-native" = { - _priority = -100; - _content = null; - }; - # Needs to be before libpipewire-module-access - "libpipewire-module-portal" = { - _priority = -50; - _content = { - flags = [ - "ifexists" - "nofail" - ]; - }; - }; - }; - }; - # Use upstream config files passed through spa-json-dump as the base # Patched here as necessary for them to work with this module defaults = { - client = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client.conf.json)) prioritizeNativeProtocol; - client-rt = recursiveUpdate (builtins.fromJSON (builtins.readFile ./client-rt.conf.json)) prioritizeNativeProtocol; - jack = recursiveUpdate (builtins.fromJSON (builtins.readFile ./jack.conf.json)) prioritizeNativeProtocol; + client = builtins.fromJSON (builtins.readFile ./client.conf.json); + client-rt = builtins.fromJSON (builtins.readFile ./client-rt.conf.json); + jack = builtins.fromJSON (builtins.readFile ./jack.conf.json); # Remove session manager invocation from the upstream generated file, it points to the wrong path - pipewire = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire.conf.json)) fixDaemonModulePriorities; - pipewire-pulse = recursiveUpdate (builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json)) prioritizeNativeProtocol; + pipewire = builtins.fromJSON (builtins.readFile ./pipewire.conf.json); + pipewire-pulse = builtins.fromJSON (builtins.readFile ./pipewire-pulse.conf.json); }; # Helpers for generating the pipewire JSON config file diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 997edf77ba99f..148d0221998fb 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -118,8 +118,9 @@ in [network] cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"] - ${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) '' [engine] + init_path = "${pkgs.catatonit}/bin/catatonit" + ${lib.optionalString (cfg.ociSeccompBpfHook.enable) '' hooks_dir = [ "${config.boot.kernelPackages.oci-seccomp-bpf-hook}", ] diff --git a/nixos/tests/podman.nix b/nixos/tests/podman.nix index 4985ff60365c9..6078a936edeab 100644 --- a/nixos/tests/podman.nix +++ b/nixos/tests/podman.nix @@ -96,6 +96,15 @@ import ./make-test-python.nix ( podman.succeed(su_cmd("podman ps | grep sleeping")) podman.succeed(su_cmd("podman stop sleeping")) podman.succeed(su_cmd("podman rm sleeping")) + + with subtest("Run container with init"): + podman.succeed( + "tar cv -C ${pkgs.pkgsStatic.busybox} . | podman import - busybox" + ) + pid = podman.succeed("podman run --rm busybox readlink /proc/self").strip() + assert pid == "1" + pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip() + assert pid == "2" ''; } ) diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix new file mode 100644 index 0000000000000..c44db31f50cbb --- /dev/null +++ b/pkgs/applications/virtualization/catatonit/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }: + +stdenv.mkDerivation rec { + pname = "catatonit"; + version = "0.1.5"; + + src = fetchFromGitHub { + owner = "openSUSE"; + repo = pname; + rev = "v${version}"; + sha256 = "ciJ1MI7jr5P2PgxIykQ+BiwNUO8lQHGt0+U8CNbc5bI="; + }; + + patches = [ + # Fix compilation with musl + (fetchpatch { + url = "https://github.com/openSUSE/catatonit/commit/75014b1c3099245b7d0f44f24d7f6dc4888a45fd.patch"; + sha256 = "sha256-9VMNUT1U90ocjvE7EXYfLxuodDwTXXHYg89qqa5Jq0g="; + }) + ]; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; + + doInstallCheck = true; + installCheckPhase = '' + readelf -d $out/bin/catatonit | grep 'There is no dynamic section in this file.' + ''; + + passthru.tests = { inherit (nixosTests) podman; }; + + meta = with lib; { + description = "A container init that is so simple it's effectively brain-dead"; + homepage = "https://github.com/openSUSE/catatonit"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ erosennin ] ++ teams.podman.members; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index e0c72d628a300..01b3e995f5e4b 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -171,11 +171,11 @@ let priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` }; } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { - crossVersion = "1.3.5"; # Jan 24, 2021 + crossVersion = "e53999d0c340769792ba18d749751b0df3d1d177"; # Mar 21, 2021 perl-cross-src = fetchurl { url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz"; - sha256 = "1sa2f8s1hc604g5y98w6m6y5q43s9jiyrpnp4b34zkfx1qs3w6l4"; + sha256 = "14vcpwjhq667yh0cs7ism70df8l7068vn4a0ww59hdjyj7yc84i6"; }; depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; @@ -211,7 +211,7 @@ in { perldevel = common { perl = pkgs.perldevel; buildPerl = buildPackages.perldevel; - version = "5.33.6"; - sha256 = "1fx6b2q7wzd0xwy7qkmkvd5bdm09d3zfnynrb6afl9ghd8ww56fv"; + version = "5.33.8"; + sha256 = "1zr6sdsfcmk86n3f8j65x07xkv29v0pi8bwc986ahmjx7x92xzgl"; }; } diff --git a/pkgs/development/interpreters/rakudo/zef.nix b/pkgs/development/interpreters/rakudo/zef.nix index 42e82cd3a51be..61008f242b912 100644 --- a/pkgs/development/interpreters/rakudo/zef.nix +++ b/pkgs/development/interpreters/rakudo/zef.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "zef"; - version = "0.11.4"; + version = "0.11.5"; src = fetchFromGitHub { owner = "ugexe"; repo = "zef"; rev = "v${version}"; - sha256 = "sha256-wccVMEUAfTWs/8hnrT7nrxfYPHyNl+lXt+KUDkyplto="; + sha256 = "sha256-LLUAwqky/q9KvFltrcff5U2BSLvOk/BbDSj07QlePSg="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix index 540e152655f63..ccfafd36a8a33 100644 --- a/pkgs/development/libraries/audio/rtmidi/default.nix +++ b/pkgs/development/libraries/audio/rtmidi/default.nix @@ -37,14 +37,16 @@ stdenv.mkDerivation rec { url = "https://github.com/thestk/rtmidi/pull/230/commits/7a32e23e3f6cb43c0d2d58443ce205d438e76f44.patch"; sha256 = "06im8mb05wah6bnkadw2gpkhmilxb8p84pxqr50b205cchpq304w"; }) + (fetchpatch { + name = "RtMidi-Adjust-public-header-installs-to-match-autotools.patch"; + url = "https://github.com/thestk/rtmidi/pull/230/commits/892fe5492f0e787484fa4a37027b08c265ce001f.patch"; + sha256 = "0ca9m42xa3gmycimzvzvl67wa266xq9pfp1b4v555rh2fp52kbcj"; + }) ]; postPatch = '' substituteInPlace rtmidi.pc.in \ --replace 'Requires:' 'Requires.private:' - substituteInPlace CMakeLists.txt \ - --replace 'PUBLIC_HEADER RtMidi.h' 'PUBLIC_HEADER "RtMidi.h;rtmidi_c.h"' \ - --replace 'PUBLIC_HEADER DESTINATION $''\{CMAKE_INSTALL_INCLUDEDIR}' 'PUBLIC_HEADER DESTINATION $''\{CMAKE_INSTALL_INCLUDEDIR}/rtmidi' ''; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch index ce1085f37f7f7..a4fb8b41e7a17 100644 --- a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch +++ b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch @@ -1,19 +1,19 @@ diff --git a/meson_options.txt b/meson_options.txt -index a6c8af72..8e5c3d73 100644 +index e2a1e028..310029f2 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -10,6 +10,9 @@ option('media-session', description: 'Build and install pipewire-media-session', - type: 'boolean', - value: true) + type: 'feature', + value: 'auto') +option('media-session-prefix', + description: 'Install directory for pipewire-media-session and its support files', + type: 'string') option('man', description: 'Build manpages', - type: 'boolean', + type: 'feature', diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build -index 4a70b0b0..84c9a19e 100644 +index 5c4d1af0..7296220f 100644 --- a/src/daemon/systemd/user/meson.build +++ b/src/daemon/systemd/user/meson.build @@ -10,7 +10,7 @@ install_data( diff --git a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch index 2a92711626bf4..cb695fa398ca3 100644 --- a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch +++ b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch @@ -1,29 +1,29 @@ diff --git a/meson.build b/meson.build -index ffee41b4..bab6f019 100644 +index 97d4d939..b17358e5 100644 --- a/meson.build +++ b/meson.build -@@ -318,8 +318,8 @@ alsa_dep = (get_option('pipewire-alsa') - ? dependency('alsa', version : '>=1.1.7') - : dependency('', required: false)) - +@@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd' + + alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa')) + -installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name) -installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name) +installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name) +installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name) - installed_tests_enabled = get_option('installed_tests') + installed_tests_enabled = not get_option('installed_tests').disabled() installed_tests_template = files('template.test.in') - + diff --git a/meson_options.txt b/meson_options.txt -index f03033c3..32df6c53 100644 +index fba0d647..8c6106cd 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -18,6 +18,9 @@ option('installed_tests', +@@ -26,6 +26,9 @@ option('installed_tests', description: 'Install manual and automated test executables', - type: 'boolean', - value: false) + type: 'feature', + value: 'disabled') +option('installed_test_prefix', + description: 'Prefix for installed tests', + type: 'string') option('gstreamer', description: 'Build GStreamer plugins', - type: 'boolean', + type: 'feature', diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 5c5578abc8df6..955a4d9da6e3f 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -39,11 +39,11 @@ let fontDirectories = []; }; - mesonBool = b: if b then "true" else "false"; + mesonEnable = b: if b then "enabled" else "disabled"; self = stdenv.mkDerivation rec { pname = "pipewire"; - version = "0.3.23"; + version = "0.3.24"; outputs = [ "out" @@ -61,7 +61,7 @@ let owner = "pipewire"; repo = "pipewire"; rev = version; - hash = "sha256:1HMUrE1NBmrdBRMKX3LRlXaCEH3wqP2jGtW8Rp9oyQA="; + hash = "sha256:PcY20FTtUtJYAwCscEs+HfkdwDksYPFZIVTVORP1ooI="; }; patches = [ @@ -103,22 +103,23 @@ let ++ lib.optionals bluezSupport [ bluez libopenaptx ldacbt sbc fdk_aac ]; mesonFlags = [ - "-Ddocs=true" - "-Dman=false" # we don't have xmltoman - "-Dexamples=${mesonBool withMediaSession}" # only needed for `pipewire-media-session` + "-Ddocs=enabled" + "-Dman=disabled" # we don't have xmltoman + "-Dexamples=${mesonEnable withMediaSession}" # only needed for `pipewire-media-session` "-Dudevrulesdir=lib/udev/rules.d" - "-Dinstalled_tests=true" + "-Dinstalled_tests=enabled" "-Dinstalled_test_prefix=${placeholder "installedTests"}" "-Dpipewire_pulse_prefix=${placeholder "pulse"}" "-Dmedia-session-prefix=${placeholder "mediaSession"}" "-Dlibjack-path=${placeholder "jack"}/lib" - "-Dgstreamer=${mesonBool gstreamerSupport}" - "-Dffmpeg=${mesonBool ffmpegSupport}" - "-Dbluez5=${mesonBool bluezSupport}" - "-Dbluez5-backend-hsp-native=${mesonBool nativeHspSupport}" - "-Dbluez5-backend-hfp-native=${mesonBool nativeHfpSupport}" - "-Dbluez5-backend-ofono=${mesonBool ofonoSupport}" - "-Dbluez5-backend-hsphfpd=${mesonBool hsphfpdSupport}" + "-Dlibcamera=disabled" + "-Dgstreamer=${mesonEnable gstreamerSupport}" + "-Dffmpeg=${mesonEnable ffmpegSupport}" + "-Dbluez5=${mesonEnable bluezSupport}" + "-Dbluez5-backend-hsp-native=${mesonEnable nativeHspSupport}" + "-Dbluez5-backend-hfp-native=${mesonEnable nativeHfpSupport}" + "-Dbluez5-backend-ofono=${mesonEnable ofonoSupport}" + "-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}" "-Dpipewire_config_dir=/etc/pipewire" ]; diff --git a/pkgs/development/ocaml-modules/faraday/async.nix b/pkgs/development/ocaml-modules/faraday/async.nix new file mode 100644 index 0000000000000..666eb684925ce --- /dev/null +++ b/pkgs/development/ocaml-modules/faraday/async.nix @@ -0,0 +1,14 @@ +{ buildDunePackage, faraday, core, async }: + +buildDunePackage rec { + pname = "faraday-async"; + inherit (faraday) version src useDune2; + + minimumOCamlVersion = "4.08"; + + propagatedBuildInputs = [ faraday core async ]; + + meta = faraday.meta // { + description = "Async support for Faraday"; + }; +} diff --git a/pkgs/development/ocaml-modules/faraday/lwt-unix.nix b/pkgs/development/ocaml-modules/faraday/lwt-unix.nix new file mode 100644 index 0000000000000..23914de265753 --- /dev/null +++ b/pkgs/development/ocaml-modules/faraday/lwt-unix.nix @@ -0,0 +1,12 @@ +{ buildDunePackage, faraday, faraday-lwt, lwt }: + +buildDunePackage rec { + pname = "faraday-lwt-unix"; + inherit (faraday) version src useDune2 minimumOCamlVersion; + + propagatedBuildInputs = [ lwt faraday-lwt ]; + + meta = faraday.meta // { + description = "Lwt + Unix support for Faraday"; + }; +} diff --git a/pkgs/development/ocaml-modules/faraday/lwt.nix b/pkgs/development/ocaml-modules/faraday/lwt.nix new file mode 100644 index 0000000000000..7fe7319575c5c --- /dev/null +++ b/pkgs/development/ocaml-modules/faraday/lwt.nix @@ -0,0 +1,12 @@ +{ buildDunePackage, faraday, lwt }: + +buildDunePackage rec { + pname = "faraday-lwt"; + inherit (faraday) version src useDune2 minimumOCamlVersion; + + propagatedBuildInputs = [ faraday lwt ]; + + meta = faraday.meta // { + description = "Lwt support for Faraday"; + }; +} diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix index 3a72b5c31021e..a663b6e21dd48 100644 --- a/pkgs/development/python-modules/tatsu/default.nix +++ b/pkgs/development/python-modules/tatsu/default.nix @@ -1,31 +1,26 @@ { lib, buildPythonPackage, fetchFromGitHub, pythonOlder -, colorama, mypy, pyyaml, regex -, dataclasses, typing -, pytestrunner, pytest-mypy +, colorama, regex +, pytestrunner, pytestCheckHook, pytest-mypy }: buildPythonPackage rec { - pname = "TatSu"; - version = "5.5.0"; + pname = "tatsu"; + version = "5.6.0"; src = fetchFromGitHub { owner = "neogeny"; - repo = pname; + repo = "TatSu"; rev = "v${version}"; - sha256 = "07bmdnwh99p60cgzhlb8s5vwi5v4r5zi8shymxnnarannkc66hzn"; + sha256 = "sha256-kC2MxMebS4TQEZBgTmYRBWaWSF36rVS3bXIsQgRrF0Y="; }; disabled = pythonOlder "3.8"; nativeBuildInputs = [ pytestrunner ]; - propagatedBuildInputs = [ colorama mypy pyyaml regex ] - ++ lib.optionals (pythonOlder "3.7") [ dataclasses ] - ++ lib.optionals (pythonOlder "3.5") [ typing ]; - checkInputs = [ pytest-mypy ]; + propagatedBuildInputs = [ colorama regex ]; + checkInputs = [ pytestCheckHook pytest-mypy ]; - checkPhase = '' - pytest test/ - ''; + pythonImportsCheck = [ "tatsu" ]; meta = with lib; { description = "Generates Python parsers from grammars in a variation of EBNF"; diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix index 0c6c9dbad0859..bbee2768a54c3 100644 --- a/pkgs/development/tools/analysis/flow/default.nix +++ b/pkgs/development/tools/analysis/flow/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "flow"; - version = "0.146.0"; + version = "0.147.0"; src = fetchFromGitHub { owner = "facebook"; repo = "flow"; rev = "refs/tags/v${version}"; - sha256 = "0kxws51hri0b4z7k05li6vg1arcdc7i5jzfibi0iplsfyy14159q"; + sha256 = "sha256-3U8BOYUHl1YiOnxAIV2V6Ib+LZ0DydtSfwAxN2Hj09g="; }; installPhase = '' @@ -25,7 +25,6 @@ stdenv.mkDerivation rec { changelog = "https://github.com/facebook/flow/releases/tag/v${version}"; license = licenses.mit; platforms = ocamlPackages.ocaml.meta.platforms; - broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556 maintainers = with maintainers; [ marsam puffnfresh ]; }; } diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix index ad886e0c3c6ec..eeffee057d4a5 100644 --- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix +++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix @@ -1,16 +1,16 @@ { lib, buildGoPackage, fetchFromGitLab, fetchurl }: let - version = "13.9.0"; + version = "13.10.0"; # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64 docker_x86_64 = fetchurl { url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz"; - sha256 = "0zgnp6l0p1i7x6lppd24nfb6kqa8mw7rnr2p5gmwbmjv9i9zkycs"; + sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv"; }; docker_arm = fetchurl { url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz"; - sha256 = "06b5p9ygcnrjrisp6bcgw9s3j2zlycp8jsri259bjf7rrfbwpkma"; + sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8"; }; in buildGoPackage rec { @@ -30,7 +30,7 @@ buildGoPackage rec { owner = "gitlab-org"; repo = "gitlab-runner"; rev = "v${version}"; - sha256 = "0wzqrfjg43wnf9lr34jn3ydlxi7vsnqs55pm5igba592q8ykfbxk"; + sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx"; }; patches = [ ./fix-shell-path.patch ]; diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix index bb5f8a4c9cd68..69e55463cc679 100644 --- a/pkgs/development/tools/coursier/default.nix +++ b/pkgs/development/tools/coursier/default.nix @@ -2,7 +2,7 @@ , coreutils, git, gnused, nix, nixfmt }: let - version = "2.0.14"; + version = "2.0.15"; zshCompletion = fetchurl { url = @@ -19,7 +19,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier"; - sha256 = "sha256-mGVOg+I42O3VYj7RStEOfZajS9RZo9hLWKap6UdjJCE="; + sha256 = "sha256-XfTW8GNoPsNXamy0K9Ai3SSzBSyS1dNNCeWsbD8xCQI="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/misc/scimark/default.nix b/pkgs/misc/scimark/default.nix new file mode 100644 index 0000000000000..7558c676ba52c --- /dev/null +++ b/pkgs/misc/scimark/default.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, fetchurl +, unzip +}: + +stdenv.mkDerivation rec { + pname = "scimark"; + version = "4c"; + + src = fetchurl { + url = "https://math.nist.gov/scimark2/${pname}${version}.zip"; + hash = "sha256-kcg5vKYp0B7+bC/CmFMO/tMwxf9q6nvuFv0vRSy3MbE="; + }; + + nativeBuildInputs = [ + unzip + ]; + + dontConfigure = true; + + installPhase = '' + install -d $out/bin/ + install scimark4 $out/bin/ + ''; + + meta = with lib; { + homepage = "https://math.nist.gov/scimark2/index.html"; + description = "Scientific and numerical computing benchmark (ANSI C version)"; + license = licenses.publicDomain; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.all; + }; +} +# TODO [ AndersonTorres ]: Java version diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix index 80afcb5cd9f48..58f7da84fc001 100644 --- a/pkgs/tools/misc/disfetch/default.nix +++ b/pkgs/tools/misc/disfetch/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "disfetch"; - version = "1.20"; + version = "1.21"; src = fetchFromGitHub { owner = "llathasa-veleth"; repo = "disfetch"; rev = version; - sha256 = "sha256-P5Sq8ld6pPACHn7iOJ9Uk+zR8ZLxHVvnRyFfkfGGv6I="; + sha256 = "sha256-AAfpv1paEnHu1S2B8yC0hyYOj5deKTkCyLGvp6Roz64="; }; dontBuild = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6990a193ff020..5c46cf63bfa99 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -197,6 +197,8 @@ in inherit (python3Packages) sphinx; }; + catatonit = callPackage ../applications/virtualization/catatonit { }; + cen64 = callPackage ../misc/emulators/cen64 { }; cereal = callPackage ../development/libraries/cereal { }; @@ -7919,6 +7921,8 @@ in pulseSupport = config.pulseaudio or false; }; + scimark = callPackage ../misc/scimark { }; + screen = callPackage ../tools/misc/screen { inherit (darwin.apple_sdk.libs) utmp; }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 6a8d29e42b2b6..9606cd4872087 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -345,6 +345,12 @@ let faraday = callPackage ../development/ocaml-modules/faraday { }; + faraday-async = callPackage ../development/ocaml-modules/faraday/async.nix { }; + + faraday-lwt = callPackage ../development/ocaml-modules/faraday/lwt.nix { }; + + faraday-lwt-unix = callPackage ../development/ocaml-modules/faraday/lwt-unix.nix { }; + farfadet = callPackage ../development/ocaml-modules/farfadet { }; fdkaac = callPackage ../development/ocaml-modules/fdkaac { }; |