diff options
author | seth <getchoo@tuta.io> | 2024-06-11 20:18:15 -0400 |
---|---|---|
committer | seth <getchoo@tuta.io> | 2024-06-11 20:21:38 -0400 |
commit | 13bc7f0011692f40b0674441d29c20a3acc9c03f (patch) | |
tree | c014645f492a7f3a8566e825231cf4106e0cc530 /pkgs/by-name/li | |
parent | 1a60294334e59ea0ecfc0e70a20468630404ac4c (diff) |
libopus: migrate to by-name
Diffstat (limited to 'pkgs/by-name/li')
-rw-r--r-- | pkgs/by-name/li/libopus/package.nix | 79 | ||||
-rw-r--r-- | pkgs/by-name/li/libopus/test-timeout.patch | 9 |
2 files changed, 88 insertions, 0 deletions
diff --git a/pkgs/by-name/li/libopus/package.nix b/pkgs/by-name/li/libopus/package.nix new file mode 100644 index 0000000000000..a841d1cfa903d --- /dev/null +++ b/pkgs/by-name/li/libopus/package.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchurl +, gitUpdater +, meson +, python3 +, ninja +, fixedPoint ? false +, withCustomModes ? true +, withIntrinsics ? stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isx86 +, withAsm ? false + +# tests +, ffmpeg-headless +, testers +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libopus"; + version = "1.5.2"; + + src = fetchurl { + url = "https://downloads.xiph.org/releases/opus/opus-${finalAttrs.version}.tar.gz"; + hash = "sha256-ZcHS94ufL7IAgsOMvkfJUa1YOTRYduRpQWEu6H+afOE="; + }; + + patches = [ + # Some tests time out easily on slower machines + ./test-timeout.patch + ]; + + postPatch = '' + patchShebangs meson/ + ''; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + meson + python3 + ninja + ]; + + mesonFlags = [ + (lib.mesonBool "fixed-point" fixedPoint) + (lib.mesonBool "custom-modes" withCustomModes) + (lib.mesonEnable "intrinsics" withIntrinsics) + (lib.mesonEnable "rtcd" (withIntrinsics || withAsm)) + (lib.mesonEnable "asm" withAsm) + (lib.mesonEnable "docs" false) + ]; + + doCheck = !stdenv.isi686 && !stdenv.isAarch32; # test_unit_LPC_inv_pred_gain fails + + passthru = { + updateScript = gitUpdater { + url = "https://gitlab.xiph.org/xiph/opus.git"; + rev-prefix = "v"; + }; + + tests = { + inherit ffmpeg-headless; + + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "opus" ]; + }; + }; + }; + + meta = with lib; { + description = "Open, royalty-free, highly versatile audio codec"; + homepage = "https://opus-codec.org/"; + changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${finalAttrs.version}"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = [ ]; + }; +}) diff --git a/pkgs/by-name/li/libopus/test-timeout.patch b/pkgs/by-name/li/libopus/test-timeout.patch new file mode 100644 index 0000000000000..76025e648d8f5 --- /dev/null +++ b/pkgs/by-name/li/libopus/test-timeout.patch @@ -0,0 +1,9 @@ +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -1,6 +1,5 @@ + # Tests that link to libopus + opus_tests = [ +- ['test_opus_api'], + ['test_opus_decode', [], 120], + ['test_opus_encode', 'opus_encode_regressions.c', 240], + ['test_opus_extensions', [], 120], |