lmms: 1.2.2 -> 1.2.2-unstable-2026-04-21
LMMS 1.2.2 is 6 years old and the software has undergone many changes since then, unfortunately however, no branches or tags are being made as the software progresses so we stay as close to git as possible. Co-authored-by: Alexandre Cavalheiro S. Tiago da Silva <contact@thewizard.link>
This commit is contained in:
co-authored by
Alexandre Cavalheiro S. Tiago da Silva
parent
d44d5d5252
commit
a37c00f048
@@ -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
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -9885,12 +9885,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