lmms: 1.2.2 -> 1.2.2-unstable-2026-04-21 (#501041)
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
cmake,
|
||||
pkg-config,
|
||||
wrapQtAppsHook,
|
||||
alsa-lib ? null,
|
||||
carla ? null,
|
||||
fftwFloat,
|
||||
fltk_1_3,
|
||||
fluidsynth ? null,
|
||||
lame ? null,
|
||||
libgig ? null,
|
||||
libjack2 ? null,
|
||||
libpulseaudio ? null,
|
||||
libsamplerate,
|
||||
libsoundio ? null,
|
||||
libsndfile,
|
||||
libvorbis ? null,
|
||||
portaudio ? null,
|
||||
qtbase,
|
||||
qtx11extras,
|
||||
qttools,
|
||||
SDL ? null,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lmms";
|
||||
version = "1.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LMMS";
|
||||
repo = "lmms";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
qttools
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
carla
|
||||
alsa-lib
|
||||
fftwFloat
|
||||
fltk_1_3
|
||||
fluidsynth
|
||||
lame
|
||||
libgig
|
||||
libjack2
|
||||
libpulseaudio
|
||||
libsamplerate
|
||||
libsndfile
|
||||
libsoundio
|
||||
libvorbis
|
||||
portaudio
|
||||
qtbase
|
||||
qtx11extras
|
||||
SDL # TODO: switch to SDL2 in the next version
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/cf64acc45e3264c6923885867e2dbf8b7586a36b/trunk/lmms-carla-export.patch";
|
||||
sha256 = "sha256-wlSewo93DYBN2PvrcV58dC9kpoo9Y587eCeya5OX+j4=";
|
||||
})
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
# Update CMake minimum required version and policies
|
||||
substituteInPlace CMakeLists.txt --replace 'CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)' 'CMAKE_MINIMUM_REQUIRED(VERSION 3.10)'
|
||||
substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0026 OLD)' 'CMAKE_POLICY(SET CMP0026 NEW)'
|
||||
substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0050 OLD)' 'CMAKE_POLICY(SET CMP0050 NEW)'
|
||||
substituteInPlace CMakeLists.txt --replace 'GET_TARGET_PROPERTY(BIN2RES bin2res LOCATION)' 'SET(BIN2RES $<TARGET_FILE:bin2res>)'
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DWANT_QT5=ON"
|
||||
]
|
||||
++ lib.optionals (lib.versionOlder finalAttrs.version "11.4") [
|
||||
# Fix the build with CMake 4.
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "DAW similar to FL Studio (music production software)";
|
||||
mainProgram = "lmms";
|
||||
homepage = "https://lmms.io";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,8 @@
|
||||
{ lmms }:
|
||||
|
||||
lmms.override {
|
||||
withSoundio = true;
|
||||
withPortAudio = true;
|
||||
withSndio = true;
|
||||
withWine = true;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
From 9d05021c4e9370f7e1b8c7595a18ae2b98895a60 Mon Sep 17 00:00:00 2001
|
||||
From: "Alexandre Cavalheiro S. Tiago da Silva" <contact@thewizard.link>
|
||||
Date: Tue, 28 Jan 2025 18:36:47 -0300
|
||||
Subject: [PATCH] fix!: add unique string to FindWine for replacement in nixos
|
||||
|
||||
---
|
||||
cmake/modules/FindWine.cmake | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake
|
||||
index eeef8d9c2..c04ee4a35 100644
|
||||
--- a/cmake/modules/FindWine.cmake
|
||||
+++ b/cmake/modules/FindWine.cmake
|
||||
@@ -13,6 +13,13 @@
|
||||
# WINE_64_FLAGS - 64-bit linker flags
|
||||
#
|
||||
|
||||
+set(WINE_INCLUDE_DIR @WINE_LOCATION@/include)
|
||||
+set(WINE_BUILD @WINE_LOCATION@/bin/winebuild)
|
||||
+set(WINE_CXX @WINE_LOCATION@/bin/wineg++)
|
||||
+set(WINE_GCC @WINE_LOCATION@/bin/winegcc)
|
||||
+set(WINE_32_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/i386-unix)
|
||||
+set(WINE_64_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/x86_64-unix)
|
||||
+
|
||||
MACRO(_findwine_find_flags output expression result)
|
||||
STRING(REPLACE " " ";" WINEBUILD_FLAGS "${output}")
|
||||
FOREACH(FLAG ${WINEBUILD_FLAGS})
|
||||
@@ -32,6 +39,7 @@ ENDMACRO()
|
||||
|
||||
# Prefer newest wine first
|
||||
list(APPEND WINE_LOCATIONS
|
||||
+ @WINE_LOCATION@
|
||||
/opt/wine-staging
|
||||
/opt/wine-devel
|
||||
/opt/wine-stable
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
Use modern CMake imported target for libgig to ensure proper RPATH propagation.
|
||||
|
||||
The old-style link_directories()/link_libraries() pattern does not propagate
|
||||
library paths to the install RPATH, causing libgig.so to not be found at
|
||||
runtime when it is installed in a non-standard directory (e.g. lib/libgig/).
|
||||
|
||||
Using IMPORTED_TARGET with pkg_check_modules creates a PkgConfig::GIG target
|
||||
that carries include dirs, library paths, and link flags, and CMake correctly
|
||||
propagates these to the install RPATH via target_link_libraries().
|
||||
|
||||
Also set CMAKE_INSTALL_RPATH_USE_LINK_PATH in the GigPlayer scope, since the
|
||||
upstream code only sets it in src/CMakeLists.txt which does not apply to the
|
||||
sibling plugins/ directory.
|
||||
|
||||
diff -ruN a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -550,7 +550,7 @@
|
||||
|
||||
# check for libgig
|
||||
If(WANT_GIG)
|
||||
- PKG_CHECK_MODULES(GIG gig)
|
||||
+ PKG_CHECK_MODULES(GIG IMPORTED_TARGET gig)
|
||||
IF(GIG_FOUND)
|
||||
SET(LMMS_HAVE_GIG TRUE)
|
||||
SET(STATUS_GIG "OK")
|
||||
diff -ruN a/plugins/GigPlayer/CMakeLists.txt b/plugins/GigPlayer/CMakeLists.txt
|
||||
--- a/plugins/GigPlayer/CMakeLists.txt
|
||||
+++ b/plugins/GigPlayer/CMakeLists.txt
|
||||
@@ -1,17 +1,16 @@
|
||||
if(LMMS_HAVE_GIG)
|
||||
INCLUDE(BuildPlugin)
|
||||
- include_directories(SYSTEM ${GIG_INCLUDE_DIRS})
|
||||
SET(CMAKE_AUTOUIC ON)
|
||||
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
# Required for not crashing loading files with libgig
|
||||
add_compile_options("-fexceptions")
|
||||
|
||||
- link_directories(${GIG_LIBRARY_DIRS})
|
||||
- link_libraries(${GIG_LIBRARIES})
|
||||
build_plugin(gigplayer
|
||||
GigPlayer.cpp GigPlayer.h PatchesDialog.cpp PatchesDialog.h PatchesDialog.ui
|
||||
MOCFILES GigPlayer.h PatchesDialog.h
|
||||
EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png"
|
||||
)
|
||||
+ target_link_libraries(gigplayer PkgConfig::GIG)
|
||||
target_link_libraries(gigplayer SampleRate::samplerate)
|
||||
endif(LMMS_HAVE_GIG)
|
||||
@@ -0,0 +1,190 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
replaceVars,
|
||||
unstableGitUpdater,
|
||||
cmake,
|
||||
pkg-config,
|
||||
alsa-lib,
|
||||
carla,
|
||||
fftwFloat,
|
||||
fltk,
|
||||
fluidsynth,
|
||||
glibc_multi,
|
||||
lame,
|
||||
libgig,
|
||||
libjack2,
|
||||
libogg,
|
||||
libpulseaudio,
|
||||
libsForQt5,
|
||||
libsamplerate,
|
||||
libsoundio,
|
||||
libsndfile,
|
||||
libvorbis,
|
||||
lilv,
|
||||
lv2,
|
||||
perl5,
|
||||
perl5Packages,
|
||||
portaudio,
|
||||
qt5,
|
||||
sndio,
|
||||
SDL2,
|
||||
suil,
|
||||
wineWow64Packages,
|
||||
withALSA ? true,
|
||||
withPulseAudio ? true,
|
||||
withSoundio ? false,
|
||||
withPortAudio ? false,
|
||||
withSndio ? false,
|
||||
withJACK ? true,
|
||||
withSDL ? true,
|
||||
withOggVorbis ? true,
|
||||
withMP3Lame ? true,
|
||||
withSoundFont ? true,
|
||||
withZyn ? true,
|
||||
withSWH ? true,
|
||||
withSID ? true,
|
||||
withGIG ? true,
|
||||
withLV2 ? true,
|
||||
withVST ? true,
|
||||
withCarla ? true,
|
||||
withWine ? false,
|
||||
}:
|
||||
|
||||
let
|
||||
winePackages =
|
||||
if lib.isDerivation wineWow64Packages then wineWow64Packages else wineWow64Packages.minimal;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lmms";
|
||||
version = "1.2.2-unstable-2026-04-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LMMS";
|
||||
repo = "lmms";
|
||||
rev = "fc3dfda961a7923326d2b0d5747e5d8fd941af98";
|
||||
hash = "sha256-q8w1CgM2QnkCIOUJlv8r+2zMKl+brbNKoAkhDJEhaN0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
libsForQt5.qt5.qttools
|
||||
pkg-config
|
||||
qt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
fftwFloat
|
||||
libsForQt5.qt5.qtbase
|
||||
libsForQt5.qt5.qtsvg
|
||||
libsForQt5.qt5.qtx11extras
|
||||
libsamplerate
|
||||
libsndfile
|
||||
]
|
||||
++ lib.optionals withALSA [
|
||||
alsa-lib
|
||||
]
|
||||
++ lib.optionals withPulseAudio [
|
||||
libpulseaudio
|
||||
]
|
||||
++ lib.optionals withSoundio [
|
||||
libsoundio
|
||||
]
|
||||
++ lib.optionals withPortAudio [
|
||||
portaudio
|
||||
]
|
||||
++ lib.optionals withSndio [
|
||||
sndio
|
||||
]
|
||||
++ lib.optionals withJACK [
|
||||
libjack2
|
||||
]
|
||||
++ lib.optionals withSDL [
|
||||
SDL2
|
||||
]
|
||||
++ lib.optionals withOggVorbis [
|
||||
libogg
|
||||
libvorbis
|
||||
]
|
||||
++ lib.optionals withMP3Lame [
|
||||
lame
|
||||
]
|
||||
++ lib.optionals withSoundFont [
|
||||
fluidsynth
|
||||
]
|
||||
++ lib.optionals withZyn [
|
||||
fltk
|
||||
]
|
||||
++ lib.optionals (withSWH || withSID) [
|
||||
perl5
|
||||
perl5Packages.ListMoreUtils
|
||||
perl5Packages.XMLParser
|
||||
]
|
||||
++ lib.optionals withGIG [
|
||||
libgig
|
||||
]
|
||||
++ lib.optionals withLV2 [
|
||||
lilv
|
||||
lv2
|
||||
suil
|
||||
]
|
||||
++ lib.optionals withCarla [
|
||||
carla
|
||||
]
|
||||
++ lib.optionals withWine [
|
||||
glibc_multi
|
||||
winePackages
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Use modern CMake imported target for libgig so that its non-standard
|
||||
# library path (lib/libgig/) is properly propagated to the install RPATH.
|
||||
./0002-fix-gigplayer-linking.patch
|
||||
]
|
||||
++ lib.optionals withWine [
|
||||
(replaceVars ./0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch {
|
||||
WINE_LOCATION = winePackages;
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
# Fix the build with CMake 4.
|
||||
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
|
||||
(lib.cmakeBool "WANT_ALSA" withALSA)
|
||||
(lib.cmakeBool "WANT_PULSEAUDIO" withPulseAudio)
|
||||
(lib.cmakeBool "WANT_SOUNDIO" withSoundio)
|
||||
(lib.cmakeBool "WANT_PORTAUDIO" withPortAudio)
|
||||
(lib.cmakeBool "WANT_SNDIO" withSndio)
|
||||
(lib.cmakeBool "WANT_JACK" withJACK)
|
||||
(lib.cmakeBool "WANT_WEAKJACK" withJACK)
|
||||
(lib.cmakeBool "WANT_SDL" withSDL)
|
||||
(lib.cmakeBool "WANT_OGGVORBIS" withOggVorbis)
|
||||
(lib.cmakeBool "WANT_MP3LAME" withMP3Lame)
|
||||
(lib.cmakeBool "WANT_SF2" withSoundFont)
|
||||
(lib.cmakeBool "WANT_GIG" withGIG)
|
||||
(lib.cmakeBool "WANT_SID" withSID)
|
||||
(lib.cmakeBool "WANT_SWH" withSWH)
|
||||
(lib.cmakeBool "WANT_LV2" withLV2)
|
||||
(lib.cmakeBool "WANT_VST" withVST)
|
||||
(lib.cmakeBool "WANT_CARLA" withCarla)
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "DAW similar to FL Studio (music production software)";
|
||||
mainProgram = "lmms";
|
||||
homepage = "https://lmms.io";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [
|
||||
wizardlink
|
||||
jaredmontoya
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -9877,12 +9877,6 @@ with pkgs;
|
||||
withFonts = true;
|
||||
};
|
||||
|
||||
lmms = libsForQt5.callPackage ../applications/audio/lmms {
|
||||
lame = null;
|
||||
libsoundio = null;
|
||||
portaudio = null;
|
||||
};
|
||||
|
||||
luminanceHDR = callPackage ../applications/graphics/luminance-hdr {
|
||||
openexr = openexr_2;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user