about summary refs log tree commit diff
path: root/pkgs/by-name/li
diff options
context:
space:
mode:
authorseth <getchoo@tuta.io>2024-06-11 20:18:15 -0400
committerseth <getchoo@tuta.io>2024-06-11 20:21:38 -0400
commit13bc7f0011692f40b0674441d29c20a3acc9c03f (patch)
treec014645f492a7f3a8566e825231cf4106e0cc530 /pkgs/by-name/li
parent1a60294334e59ea0ecfc0e70a20468630404ac4c (diff)
libopus: migrate to by-name
Diffstat (limited to 'pkgs/by-name/li')
-rw-r--r--pkgs/by-name/li/libopus/package.nix79
-rw-r--r--pkgs/by-name/li/libopus/test-timeout.patch9
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],