diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e6db1ed91f82..7a5a6b616b34 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -12777,6 +12777,12 @@ github = "jonocodes"; githubId = 1310468; }; + joostn = { + name = "Joost Nieuwenhuijse"; + email = "joost@newhouse.nl"; + github = "joostn"; + githubId = 1309157; + }; jopejoe1 = { email = "nixpkgs@missing.ninja"; matrix = "@jopejoe1:matrix.org"; diff --git a/pkgs/by-name/sf/sfizz-ui/package.nix b/pkgs/by-name/sf/sfizz-ui/package.nix new file mode 100644 index 000000000000..68b30ee36caa --- /dev/null +++ b/pkgs/by-name/sf/sfizz-ui/package.nix @@ -0,0 +1,104 @@ +{ + lib, + stdenv, + fetchFromGitHub, + libjack2, + libsndfile, + xorg, + freetype, + libxkbcommon, + cairo, + glib, + zenity, + flac, + libogg, + libvorbis, + libopus, + cmake, + pango, + pkg-config, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "sfizz-ui"; + version = "1.2.3"; + + src = fetchFromGitHub { + owner = "sfztools"; + repo = "sfizz-ui"; + rev = finalAttrs.version; + # Upstream requires submodules: + # VST3_SDK, vstgui4, sfzt_auwrapper and sfizz + fetchSubmodules = true; + hash = "sha256-Rf1i+tu91bqzO1wWJi7mw2BvbX9K0mDNPqsTUoqPd4U="; + }; + + buildInputs = [ + cairo + flac + freetype + glib + libjack2 + libogg + libopus + libsndfile + libvorbis + libxkbcommon + pango + xorg.libX11 + xorg.libXau + xorg.libxcb + xorg.libXdmcp + xorg.xcbutil + xorg.xcbutilcursor + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + zenity + ]; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + cmakeFlags = [ + (lib.cmakeBool "SFIZZ_TESTS" true) + ]; + + doCheck = true; + + postPatch = '' + # Hard code zenity path (1/2): + substituteInPlace plugins/editor/src/editor/NativeHelpers.cpp \ + --replace-fail \ + 'auto glibPath = g_find_program_in_path("zenity");' \ + 'auto glibPath = g_strdup("${lib.getExe zenity}");' + + # Hard code zenity path (2/2): + substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \ + --replace-fail \ + 'zenitypath = "zenity"' \ + 'zenitypath = "${lib.getExe zenity}"' + + # Fix compilation error in GCC 14: + # https://github.com/sfztools/vstgui/pull/5 + # https://github.com/steinbergmedia/vstgui/issues/324 + # This has been upstreamed into master, remove when we switch to a newer upstream version. + substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/finally.h \ + --replace-fail \ + "other.invoke (false);" \ + "other.invoke = false;" + ''; + + meta = { + description = "SFZ based sampler, providing AU / LV2 / PD / VST3 plugins using the sfizz library"; + homepage = "https://github.com/sfztools/sfizz-ui/"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ + joostn + magnetophon + ]; + platforms = lib.platforms.linux; + }; +})