diff --git a/pkgs/development/libraries/gstreamer/rs/default.nix b/pkgs/development/libraries/gstreamer/rs/default.nix index c80c40b1d3f4..06a6a2fef42c 100644 --- a/pkgs/development/libraries/gstreamer/rs/default.nix +++ b/pkgs/development/libraries/gstreamer/rs/default.nix @@ -157,7 +157,7 @@ assert lib.assertMsg (invalidPlugins == [ ]) stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-rs"; - version = "0.13.3"; + version = "0.13.5"; outputs = [ "out" @@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "gstreamer"; repo = "gst-plugins-rs"; rev = finalAttrs.version; - hash = "sha256-G6JdZXBNiZfbu6EBTOsJ4Id+BvPhIToZmHHi7zuapnE="; + hash = "sha256-5jR/YLCBeFnB0+O2OOCLBEKwikiQ5e+SbOeQCijnd8Q="; # TODO: temporary workaround for case-insensitivity problems with color-name crate - https://github.com/annymosse/color-name/pull/2 postFetch = '' sedSearch="$(cat <<\EOF | sed -ze 's/\n/\\n/g' @@ -191,13 +191,25 @@ stdenv.mkDerivation (finalAttrs: { ''; }; - cargoDeps = - with finalAttrs; - rustPlatform.fetchCargoVendor { - inherit src; - name = "${pname}-${version}"; - hash = "sha256-NFB9kNmCF3SnOgpSd7SSihma+Ooqwxtrym9Il4A+uQY="; - }; + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) src patches; + name = "gst-plugins-rs-${finalAttrs.version}"; + hash = "sha256-ErQ5Um0e7bWhzDErEN9vmSsKTpTAm4MA5PZ7lworVKU="; + }; + + patches = [ + # Disable uriplaylistbin test that requires network access. + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/676 + # TODO: Remove in 0.14, it has been replaced by a different fix: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2140 + ./ignore-network-tests.patch + + # Fix reqwest tests failing due to broken TLS lookup in native-tls dependency. + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/675 + # Cannot be upstreamed due to MSRV bump in native-tls: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2142 + ./reqwest-init-tls.patch + ]; strictDeps = true; @@ -257,6 +269,11 @@ stdenv.mkDerivation (finalAttrs: { mesonCheckFlags = [ "--verbose" ]; + preCheck = '' + # Fontconfig error: No writable cache directories + export XDG_CACHE_HOME=$(mktemp -d) + ''; + doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf; installCheckPhase = '' diff --git a/pkgs/development/libraries/gstreamer/rs/ignore-network-tests.patch b/pkgs/development/libraries/gstreamer/rs/ignore-network-tests.patch new file mode 100644 index 000000000000..22bcce3f2e37 --- /dev/null +++ b/pkgs/development/libraries/gstreamer/rs/ignore-network-tests.patch @@ -0,0 +1,12 @@ +diff --git a/utils/uriplaylistbin/tests/uriplaylistbin.rs b/utils/uriplaylistbin/tests/uriplaylistbin.rs +index dfd1c9ce..8ed24949 100644 +--- a/utils/uriplaylistbin/tests/uriplaylistbin.rs ++++ b/utils/uriplaylistbin/tests/uriplaylistbin.rs +@@ -534,6 +534,7 @@ fn infinite_to_finite() { + assert_eq!(current_uri_index, 0); + } + ++#[ignore = "Requires network access"] + #[test] + /// cache HTTP playlist items + fn cache() { diff --git a/pkgs/development/libraries/gstreamer/rs/reqwest-init-tls.patch b/pkgs/development/libraries/gstreamer/rs/reqwest-init-tls.patch new file mode 100644 index 000000000000..24764673bec0 --- /dev/null +++ b/pkgs/development/libraries/gstreamer/rs/reqwest-init-tls.patch @@ -0,0 +1,85 @@ +The reqwest tests fail due to reqwest Client initialization. +Bisected the issue to https://github.com/sfackler/rust-native-tls/compare/v0.2.12...v0.2.13 bump +in https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/commit/6d5d9753f4a28be350dc657c08a9ecc7f13b922a +the upcoming version of native-tls fixes that so let’s bump to that. +https://github.com/sfackler/rust-native-tls/compare/v0.2.13...v0.2.14 + +diff --git a/Cargo.lock b/Cargo.lock +index 244256cd..24f0c607 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -1700,7 +1700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" + dependencies = [ + "libc", +- "windows-sys 0.59.0", ++ "windows-sys 0.52.0", + ] + + [[package]] +@@ -2149,7 +2149,7 @@ dependencies = [ + "gobject-sys", + "libc", + "system-deps 7.0.3", +- "windows-sys 0.59.0", ++ "windows-sys 0.52.0", + ] + + [[package]] +@@ -4407,7 +4407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" + dependencies = [ + "cfg-if", +- "windows-targets 0.52.6", ++ "windows-targets 0.48.5", + ] + + [[package]] +@@ -4791,9 +4791,9 @@ dependencies = [ + + [[package]] + name = "native-tls" +-version = "0.2.13" ++version = "0.2.14" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" ++checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" + dependencies = [ + "libc", + "log", +@@ -5572,7 +5572,7 @@ dependencies = [ + "once_cell", + "socket2", + "tracing", +- "windows-sys 0.59.0", ++ "windows-sys 0.52.0", + ] + + [[package]] +@@ -6017,7 +6017,7 @@ dependencies = [ + "errno", + "libc", + "linux-raw-sys", +- "windows-sys 0.59.0", ++ "windows-sys 0.52.0", + ] + + [[package]] +@@ -6702,7 +6702,7 @@ dependencies = [ + "getrandom 0.3.1", + "once_cell", + "rustix", +- "windows-sys 0.59.0", ++ "windows-sys 0.52.0", + ] + + [[package]] +@@ -7523,7 +7523,7 @@ version = "0.1.9" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" + dependencies = [ +- "windows-sys 0.59.0", ++ "windows-sys 0.48.0", + ] + + [[package]]