From fd88829700b3ce6bb7b4ef84b6433f2eb92f3b08 Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Sun, 2 Nov 2025 22:40:18 +0700 Subject: [PATCH 1/6] surge-XT: no with lib; in meta --- pkgs/by-name/su/surge-XT/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index 3cc5357ef96c..d490517f1f12 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -71,12 +71,12 @@ stdenv.mkDerivation rec { export XDG_DOCUMENTS_DIR=$(mktemp -d) ''; - meta = with lib; { + meta = { description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)"; homepage = "https://surge-synthesizer.github.io"; - license = licenses.gpl3; + license = lib.licenses.gpl3; platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ magnetophon orivej ]; From 8d9b570065f021c4f3ec71458168ac28b67bde17 Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Sun, 2 Nov 2025 22:49:08 +0700 Subject: [PATCH 2/6] surge-XT: add mrtnvgr to maintainers --- pkgs/by-name/su/surge-XT/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index d490517f1f12..f4f36c8c1e67 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -79,6 +79,7 @@ stdenv.mkDerivation rec { maintainers = with lib.maintainers; [ magnetophon orivej + mrtnvgr ]; }; } From b47d697f73b22a072ed07e81b60418578024bbc2 Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Sun, 2 Nov 2025 22:50:06 +0700 Subject: [PATCH 3/6] surge-XT: use finalAttrs pattern --- pkgs/by-name/su/surge-XT/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index f4f36c8c1e67..30545719a680 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -15,14 +15,14 @@ libXrandr, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "surge-XT"; version = "1.3.4"; src = fetchFromGitHub { owner = "surge-synthesizer"; repo = "surge"; - tag = "release_xt_${version}"; + tag = "release_xt_${finalAttrs.version}"; fetchSubmodules = true; hash = "sha256-4b0H3ZioiXFc4KCeQReobwQZJBl6Ep2/8JlRIwvq/hQ="; }; @@ -82,4 +82,4 @@ stdenv.mkDerivation rec { mrtnvgr ]; }; -} +}) From eafc20d2b9a6963c6a52c79c4f1654525717b61d Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Mon, 3 Nov 2025 10:50:28 +0700 Subject: [PATCH 4/6] surge-XT: fix build with cmake >= 4 --- pkgs/by-name/su/surge-XT/package.nix | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index 30545719a680..a6e6b2445b17 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -27,6 +27,17 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-4b0H3ZioiXFc4KCeQReobwQZJBl6Ep2/8JlRIwvq/hQ="; }; + postPatch = '' + # see https://github.com/NixOS/nixpkgs/pull/149487#issuecomment-991747333 + export XDG_DOCUMENTS_DIR=$(mktemp -d) + + # Required for CMake 4 + # NOTE: libsamplerate is no longer used in Surge-XT, remove on package update + substituteInPlace libs/libsamplerate/CMakeLists.txt --replace-fail \ + 'cmake_minimum_required(VERSION 3.1..3.18)' \ + 'cmake_minimum_required(VERSION 4.0)' + ''; + nativeBuildInputs = [ cmake pkg-config @@ -50,11 +61,6 @@ stdenv.mkDerivation (finalAttrs: { "-DSURGE_BUILD_LV2=TRUE" ]; - CXXFLAGS = [ - # GCC 13: error: 'uint32_t' has not been declared - "-include cstdint" - ]; - # JUCE dlopen's these at runtime, crashes without them NIX_LDFLAGS = ( toString [ @@ -66,11 +72,6 @@ stdenv.mkDerivation (finalAttrs: { ] ); - # see https://github.com/NixOS/nixpkgs/pull/149487#issuecomment-991747333 - postPatch = '' - export XDG_DOCUMENTS_DIR=$(mktemp -d) - ''; - meta = { description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)"; homepage = "https://surge-synthesizer.github.io"; From f976571e0d0afbece056f0a8d00b2779d514bc42 Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Mon, 3 Nov 2025 10:51:25 +0700 Subject: [PATCH 5/6] surge-XT: add build options --- pkgs/by-name/su/surge-XT/clap-option.diff | 21 +++++++++++++++++++++ pkgs/by-name/su/surge-XT/package.nix | 20 +++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 pkgs/by-name/su/surge-XT/clap-option.diff diff --git a/pkgs/by-name/su/surge-XT/clap-option.diff b/pkgs/by-name/su/surge-XT/clap-option.diff new file mode 100644 index 000000000000..e01502c4d9f8 --- /dev/null +++ b/pkgs/by-name/su/surge-XT/clap-option.diff @@ -0,0 +1,21 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 31bee8d5..834ee6f6 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -12,6 +12,8 @@ if (NOT SURGE_COMPILE_BLOCK_SIZE) + set(SURGE_COMPILE_BLOCK_SIZE 32) + endif() + ++option(SURGE_BUILD_CLAP "Build Surge as a CLAP" ON) ++ + set(SURGE_JUCE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../libs/JUCE" CACHE STRING "Path to JUCE library source tree") + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +@@ -29,7 +31,6 @@ if(${CMAKE_VERSION} VERSION_LESS 3.21) + set(SURGE_BUILD_CLAP FALSE) + else() + message(STATUS "CMake version ${CMAKE_VERSION} allows CLAP build") +- set(SURGE_BUILD_CLAP TRUE) + endif() + + if(SURGE_BUILD_CLAP) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index a6e6b2445b17..b2958349ad5b 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -13,6 +13,11 @@ libXext, libXinerama, libXrandr, + + buildVST3 ? true, + buildLV2 ? true, + buildCLAP ? true, + buildStandalone ? true, }: stdenv.mkDerivation (finalAttrs: { @@ -27,6 +32,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-4b0H3ZioiXFc4KCeQReobwQZJBl6Ep2/8JlRIwvq/hQ="; }; + patches = [ + # NOTE: merged in upstream, remove on package update + # (https://github.com/surge-synthesizer/surge/pull/8202) + ./clap-option.diff + ]; + postPatch = '' # see https://github.com/NixOS/nixpkgs/pull/149487#issuecomment-991747333 export XDG_DOCUMENTS_DIR=$(mktemp -d) @@ -47,18 +58,21 @@ stdenv.mkDerivation (finalAttrs: { alsa-lib freetype libjack2 - lv2 libX11 libXcursor libXext libXinerama libXrandr - ]; + ] + ++ lib.optionals buildLV2 [ lv2 ]; enableParallelBuilding = true; cmakeFlags = [ - "-DSURGE_BUILD_LV2=TRUE" + (lib.cmakeBool "SURGE_SKIP_STANDALONE" (!buildStandalone)) + (lib.cmakeBool "SURGE_SKIP_VST3" (!buildVST3)) + (lib.cmakeBool "SURGE_SKIP_LV2" buildLV2) + (lib.cmakeBool "SURGE_BUILD_CLAP" buildCLAP) ]; # JUCE dlopen's these at runtime, crashes without them From 67e64ebc5d7a91e116a810e54d322d4fcfdf9db7 Mon Sep 17 00:00:00 2001 From: mrtnvgr Date: Mon, 3 Nov 2025 10:52:22 +0700 Subject: [PATCH 6/6] surge-XT: add updateScript --- pkgs/by-name/su/surge-XT/package.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/su/surge-XT/package.nix b/pkgs/by-name/su/surge-XT/package.nix index b2958349ad5b..bed5df8bc456 100644 --- a/pkgs/by-name/su/surge-XT/package.nix +++ b/pkgs/by-name/su/surge-XT/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchFromGitHub, + gitUpdater, cmake, pkg-config, alsa-lib, @@ -27,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "surge-synthesizer"; repo = "surge"; - tag = "release_xt_${finalAttrs.version}"; + tag = "${finalAttrs.finalPackage.passthru.rev-prefix}${finalAttrs.version}"; fetchSubmodules = true; hash = "sha256-4b0H3ZioiXFc4KCeQReobwQZJBl6Ep2/8JlRIwvq/hQ="; }; @@ -86,6 +87,13 @@ stdenv.mkDerivation (finalAttrs: { ] ); + passthru = { + rev-prefix = "release_xt_"; + updateScript = gitUpdater { + inherit (finalAttrs.finalPackage.passthru) rev-prefix; + }; + }; + meta = { description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)"; homepage = "https://surge-synthesizer.github.io";