diff --git a/pkgs/by-name/ru/rubberband/package.nix b/pkgs/by-name/ru/rubberband/package.nix index eaae08daf40c..914d67991640 100644 --- a/pkgs/by-name/ru/rubberband/package.nix +++ b/pkgs/by-name/ru/rubberband/package.nix @@ -1,7 +1,7 @@ { lib, stdenv, - fetchurl, + fetchFromSourcehut, pkg-config, libsamplerate, libsndfile, @@ -12,15 +12,19 @@ ladspa-header, meson, ninja, + boost, }: stdenv.mkDerivation (finalAttrs: { pname = "rubberband"; version = "4.0.0"; - src = fetchurl { - url = "https://breakfastquay.com/files/releases/rubberband-${finalAttrs.version}.tar.bz2"; - hash = "sha256-rwUDE+5jvBizWy4GTl3OBbJ2qvbRqiuKgs7R/i+AKOk="; + src = fetchFromSourcehut { + vc = "hg"; + owner = "~breakfastquay"; + repo = "rubberband"; + tag = "v${finalAttrs.version}"; + hash = "sha256-TjW+Op750ZzPVD3c/ybyYGM0G65nK5JgMBr/MMsQ8kw="; }; patches = [ @@ -33,8 +37,11 @@ stdenv.mkDerivation (finalAttrs: { pkg-config meson ninja + ] + ++ lib.optionals (!stdenv.hostPlatform.isx86_32) [ jdk_headless ]; + buildInputs = [ libsamplerate libsndfile @@ -43,19 +50,30 @@ stdenv.mkDerivation (finalAttrs: { ladspa-header lv2 ]; - makeFlags = [ "AR:=$(AR)" ]; - # TODO: package boost-test, so we can run the test suite. (Currently it fails - # to find libboost_unit_test_framework.a.) - mesonFlags = [ "-Dtests=disabled" ]; - doCheck = false; + checkInputs = [ + boost + ]; + + mesonFlags = [ + (lib.mesonEnable "jni" (!stdenv.hostPlatform.isx86_32)) + (lib.mesonEnable "ladspa" true) + (lib.mesonEnable "lv2" true) + (lib.mesonEnable "vamp" true) + (lib.mesonEnable "cmdline" true) + (lib.mesonOption "fft" "fftw") + (lib.mesonOption "resampler" "libsamplerate") + (lib.mesonEnable "tests" finalAttrs.doCheck) + ]; + + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; meta = { description = "High quality software library for audio time-stretching and pitch-shifting"; homepage = "https://breakfastquay.com/rubberband/"; # commercial license available as well, see homepage. You'll get some more optimized routines license = lib.licenses.gpl2Plus; - maintainers = [ ]; + maintainers = [ lib.maintainers.jopejoe1 ]; platforms = lib.platforms.all; }; })