diff --git a/pkgs/by-name/av/av1an-unwrapped/package.nix b/pkgs/by-name/av/av1an-unwrapped/package.nix index 977cda3facd7..548afa8bbcf4 100644 --- a/pkgs/by-name/av/av1an-unwrapped/package.nix +++ b/pkgs/by-name/av/av1an-unwrapped/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, ffmpeg_7, libaom, nasm, @@ -11,30 +10,21 @@ rav1e, rustPlatform, vapoursynth, + versionCheckHook, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "av1an-unwrapped"; - version = "0.4.4"; + version = "0.5.2"; src = fetchFromGitHub { owner = "rust-av"; - repo = "av1an"; - tag = finalAttrs.version; - hash = "sha256-YF+j349777pE+evvXWTo42DQn1CE0jlfKBEXUFTfcb8="; + repo = "Av1an"; + tag = "v${finalAttrs.version}"; + hash = "sha256-JwYnDl9ZSSE+dD+ZAxuN7ywqFN314Ib/9Flh52kL3do="; }; - cargoPatches = [ - # TODO: Remove in next version - # Avoids https://github.com/shssoichiro/ffmpeg-the-third/issues/63 - # https://github.com/master-of-zen/Av1an/pull/912 - (fetchpatch { - url = "https://github.com/rust-av/Av1an/commit/e6b29a5a624434eb0dc95b7e8aa31ccf624ccb9d.patch"; - hash = "sha256-nFE04hlTzApYafSzgl/XOUdchxEjKvxXy+SKr/d6+0Q="; - }) - ]; - - cargoHash = "sha256-PcxnWkruFH4d2FqS+y3PmyA70kSe9BKtmTdCnfKnfpU="; + cargoHash = "sha256-mxWYXujwp7tYAj9bM/ZhqbyISMjvX+AYG07otcB67pg="; nativeBuildInputs = [ nasm @@ -48,18 +38,36 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; nativeCheckInputs = [ - libaom + libaom.bin rav1e + versionCheckHook ]; - passthru = { - updateScript = nix-update-script { - extraArgs = [ - "--version-regex" - "'^(\\d*\\.\\d*\\.\\d*)$'" - ]; - }; - }; + # The encode_tests integration suite drives the full encode pipeline + # (external encoders, ffmpeg and vapoursynth source plugins at + # runtime) and only passes in upstream's prebuilt CI image, so limit + # the check phase to the unit tests. + cargoTestFlags = [ + "--workspace" + "--lib" + "--bins" + ]; + + # libvapoursynth-script spins up an embedded Python and runs + # `import vapoursynth`; without this the VSScript API fails to + # initialize during unit tests that exercise the vapoursynth code path. + preCheck = '' + export PYTHONPATH=${vapoursynth}/${vapoursynth.python3.sitePackages}''${PYTHONPATH:+:$PYTHONPATH} + ''; + + # These unit tests load blank_1080p.mkv via core.lsmas.LWLibavSource, + # which needs the L-SMASH Works plugin. + checkFlags = [ + "--skip=chunk::tests::apply_photon_noise_args_with_noise" + "--skip=scenes::tests::validate_zones_target_quality" + ]; + + passthru.updateScript = nix-update-script { }; meta = { description = "Cross-platform command-line encoding framework"; @@ -72,7 +80,5 @@ rustPlatform.buildRustPackage (finalAttrs: { license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ getchoo ]; mainProgram = "av1an"; - # symbol index out of range file '/private/tmp/nix-build-av1an-unwrapped-0.4.4.drv-0/rustcz0anL2/librav1e-ca440893f9248a14.rlib' for architecture x86_64 - broken = stdenv.hostPlatform.system == "x86_64-darwin"; }; })