2018-08-04 22:05:42 +01:00
|
|
|
{ stdenv
|
2020-02-26 07:05:56 +00:00
|
|
|
, a2jmidid
|
|
|
|
, coreutils
|
2019-11-10 07:41:14 +00:00
|
|
|
, lib
|
2020-02-26 07:05:56 +00:00
|
|
|
, libjack2
|
2019-12-29 20:01:34 +00:00
|
|
|
, fetchpatch
|
2018-11-25 19:14:34 +00:00
|
|
|
, fetchzip
|
2020-02-26 07:05:56 +00:00
|
|
|
, jack_capture
|
2018-08-04 22:05:42 +01:00
|
|
|
, pkgconfig
|
2020-02-26 16:54:08 +00:00
|
|
|
, pulseaudioFull
|
2018-08-04 22:05:42 +01:00
|
|
|
, qtbase
|
|
|
|
, makeWrapper
|
2020-02-26 07:05:56 +00:00
|
|
|
, mkDerivation
|
|
|
|
, python3
|
2018-08-04 22:05:42 +01:00
|
|
|
}:
|
2020-02-26 07:05:56 +00:00
|
|
|
#ladish missing, claudia can't work.
|
|
|
|
#pulseaudio needs fixes (patchShebangs .pa ...)
|
|
|
|
#desktop needs icons and exec fixing.
|
2018-08-04 22:05:42 +01:00
|
|
|
|
2020-02-26 07:05:56 +00:00
|
|
|
mkDerivation rec {
|
2019-12-08 03:13:27 +00:00
|
|
|
version = "0.9.1";
|
2018-11-04 23:32:52 +00:00
|
|
|
pname = "cadence";
|
2018-08-04 22:05:42 +01:00
|
|
|
|
2018-11-25 19:14:34 +00:00
|
|
|
src = fetchzip {
|
2018-08-04 22:05:42 +01:00
|
|
|
url = "https://github.com/falkTX/Cadence/archive/v${version}.tar.gz";
|
2019-12-08 03:13:27 +00:00
|
|
|
sha256 = "07z8grnnpkd0nf3y3r6qjlk1jlzrbhdrp9mnhrhhmws54p1bhl20";
|
2018-08-04 22:05:42 +01:00
|
|
|
};
|
|
|
|
|
2019-12-29 20:01:34 +00:00
|
|
|
patches = [
|
|
|
|
# Fix installation without DESTDIR
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://github.com/falkTX/Cadence/commit/1fd3275e7daf4b75f59ef1f85a9e2e93bd5c0731.patch";
|
|
|
|
sha256 = "0q791jsh8vmjg678dzhbp1ykq8xrrlxl1mbgs3g8if1ccj210vd8";
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2020-02-26 07:05:56 +00:00
|
|
|
postPatch = ''
|
|
|
|
libjackso=$(realpath ${lib.makeLibraryPath [libjack2]}/libjack.so.0);
|
|
|
|
substituteInPlace ./src/jacklib.py --replace libjack.so.0 $libjackso
|
|
|
|
substituteInPlace ./src/cadence.py --replace "/usr/bin/pulseaudio" \
|
2020-02-26 16:54:08 +00:00
|
|
|
"${lib.makeBinPath[pulseaudioFull]}/pulseaudio"
|
2020-02-26 07:05:56 +00:00
|
|
|
substituteInPlace ./c++/jackbridge/JackBridge.cpp --replace libjack.so.0 $libjackso
|
|
|
|
'';
|
|
|
|
|
2019-11-10 07:41:14 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
pkgconfig
|
|
|
|
];
|
2018-08-04 22:05:42 +01:00
|
|
|
|
2019-11-10 07:41:14 +00:00
|
|
|
buildInputs = [
|
|
|
|
qtbase
|
2020-02-26 07:05:56 +00:00
|
|
|
jack_capture
|
2020-02-26 16:54:08 +00:00
|
|
|
pulseaudioFull
|
2020-02-26 07:05:56 +00:00
|
|
|
((python3.withPackages (ps: with ps; [
|
|
|
|
pyqt5
|
|
|
|
dbus-python
|
|
|
|
])))
|
2019-11-10 07:41:14 +00:00
|
|
|
];
|
2018-08-04 22:05:42 +01:00
|
|
|
|
2019-11-10 07:41:14 +00:00
|
|
|
makeFlags = [
|
2019-12-29 20:01:34 +00:00
|
|
|
"PREFIX=${placeholder "out"}"
|
|
|
|
"SYSCONFDIR=${placeholder "out"}/etc"
|
2019-11-10 07:41:14 +00:00
|
|
|
];
|
2018-08-04 22:05:42 +01:00
|
|
|
|
2019-11-10 07:41:14 +00:00
|
|
|
dontWrapQtApps = true;
|
|
|
|
|
|
|
|
# Replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise.
|
2019-11-10 07:46:30 +00:00
|
|
|
preFixup = let
|
2019-11-10 07:41:14 +00:00
|
|
|
outRef = placeholder "out";
|
|
|
|
prefix = "${outRef}/share/cadence/src";
|
|
|
|
scriptAndSource = lib.mapAttrs' (script: source:
|
|
|
|
lib.nameValuePair ("${outRef}/bin/" + script) ("${prefix}/" + source)
|
|
|
|
) {
|
|
|
|
"cadence" = "cadence.py";
|
|
|
|
"claudia" = "claudia.py";
|
|
|
|
"catarina" = "catarina.py";
|
|
|
|
"catia" = "catia.py";
|
|
|
|
"cadence-jacksettings" = "jacksettings.py";
|
|
|
|
"cadence-aloop-daemon" = "cadence_aloop_daemon.py";
|
|
|
|
"cadence-logs" = "logs.py";
|
|
|
|
"cadence-render" = "render.py";
|
|
|
|
"claudia-launcher" = "claudia_launcher.py";
|
|
|
|
"cadence-session-start" = "cadence_session_start.py";
|
|
|
|
};
|
|
|
|
in lib.mapAttrsToList (script: source: ''
|
|
|
|
rm -f ${script}
|
2020-02-26 07:05:56 +00:00
|
|
|
makeQtWrapper ${source} ${script} \
|
2020-02-26 16:54:08 +00:00
|
|
|
--prefix PATH : "${lib.makeBinPath [
|
|
|
|
jack_capture # cadence-render
|
|
|
|
pulseaudioFull # cadence, cadence-session-start
|
|
|
|
]}"
|
2019-11-10 07:41:14 +00:00
|
|
|
'') scriptAndSource;
|
2018-08-04 22:05:42 +01:00
|
|
|
|
|
|
|
meta = {
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "https://github.com/falkTX/Cadence/";
|
2018-08-04 22:05:42 +01:00
|
|
|
description = "Collection of tools useful for audio production";
|
2018-11-25 19:14:34 +00:00
|
|
|
license = stdenv.lib.licenses.gpl2Plus;
|
2020-11-17 16:50:53 +00:00
|
|
|
maintainers = with stdenv.lib.maintainers; [ worldofpeace ];
|
2018-11-25 19:14:34 +00:00
|
|
|
platforms = [ "x86_64-linux" ];
|
2018-08-04 22:05:42 +01:00
|
|
|
};
|
|
|
|
}
|