ardour: add ardour 6 and make it the default (#89175)
We leave Ardour 5 in, since Ardour 6 has a new latency compensation algorithm, so your mixes might end up sounding different in the new version. Co-Authored-By: Pavol Rusnak <pavol@rusnak.io>
This commit is contained in:
parent
903eb50f02
commit
3a77caa419
162
pkgs/applications/audio/ardour/5.nix
Normal file
162
pkgs/applications/audio/ardour/5.nix
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchgit
|
||||||
|
, alsaLib
|
||||||
|
, aubio
|
||||||
|
, boost
|
||||||
|
, cairomm
|
||||||
|
, curl
|
||||||
|
, doxygen
|
||||||
|
, fftwSinglePrec
|
||||||
|
, flac
|
||||||
|
, glibc
|
||||||
|
, glibmm
|
||||||
|
, graphviz
|
||||||
|
, gtkmm2
|
||||||
|
, libjack2
|
||||||
|
, liblo
|
||||||
|
, libogg
|
||||||
|
, libsamplerate
|
||||||
|
, libsigcxx
|
||||||
|
, libsndfile
|
||||||
|
, libusb1
|
||||||
|
, fluidsynth_1
|
||||||
|
, hidapi
|
||||||
|
, libltc
|
||||||
|
, qm-dsp
|
||||||
|
, libxml2
|
||||||
|
, lilv
|
||||||
|
, lrdf
|
||||||
|
, lv2
|
||||||
|
, perl
|
||||||
|
, pkg-config
|
||||||
|
, itstool
|
||||||
|
, python2
|
||||||
|
, rubberband
|
||||||
|
, serd
|
||||||
|
, sord
|
||||||
|
, sratom
|
||||||
|
, taglib
|
||||||
|
, vamp-plugin-sdk
|
||||||
|
, dbus
|
||||||
|
, fftw
|
||||||
|
, pango
|
||||||
|
, suil
|
||||||
|
, libarchive
|
||||||
|
, wafHook
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
||||||
|
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used
|
||||||
|
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the
|
||||||
|
# last annotated tag. A slightly different version string format is needed
|
||||||
|
# for the 'revision' info that is built into the binary; it is the format of
|
||||||
|
# "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
|
||||||
|
|
||||||
|
# Version to build.
|
||||||
|
tag = "5.12";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "ardour_5";
|
||||||
|
version = "5.12";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://git.ardour.org/ardour/ardour.git";
|
||||||
|
rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
|
||||||
|
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
wafHook
|
||||||
|
pkg-config
|
||||||
|
itstool
|
||||||
|
doxygen
|
||||||
|
graphviz # for dot
|
||||||
|
perl
|
||||||
|
python2
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
alsaLib
|
||||||
|
aubio
|
||||||
|
boost
|
||||||
|
cairomm
|
||||||
|
curl
|
||||||
|
dbus
|
||||||
|
fftw
|
||||||
|
fftwSinglePrec
|
||||||
|
flac
|
||||||
|
glibmm
|
||||||
|
gtkmm2
|
||||||
|
libjack2
|
||||||
|
liblo
|
||||||
|
libogg
|
||||||
|
libsamplerate
|
||||||
|
libsigcxx
|
||||||
|
libsndfile
|
||||||
|
libusb1
|
||||||
|
fluidsynth_1
|
||||||
|
hidapi
|
||||||
|
libltc
|
||||||
|
qm-dsp
|
||||||
|
libxml2
|
||||||
|
lilv
|
||||||
|
lrdf
|
||||||
|
lv2
|
||||||
|
pango
|
||||||
|
rubberband
|
||||||
|
serd
|
||||||
|
sord
|
||||||
|
sratom
|
||||||
|
suil
|
||||||
|
taglib
|
||||||
|
vamp-plugin-sdk
|
||||||
|
libarchive
|
||||||
|
];
|
||||||
|
|
||||||
|
wafConfigureFlags = [
|
||||||
|
"--optimize"
|
||||||
|
"--docs"
|
||||||
|
"--use-external-libs"
|
||||||
|
"--freedesktop"
|
||||||
|
"--with-backends=jack,alsa,dummy"
|
||||||
|
];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
|
||||||
|
|
||||||
|
# ardour's wscript has a "tarball" target but that required the git revision
|
||||||
|
# be available. Since this is an unzipped tarball fetched from github we
|
||||||
|
# have to do that ourself.
|
||||||
|
postPatch = ''
|
||||||
|
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
||||||
|
patchShebangs ./tools/
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# wscript does not install these for some reason
|
||||||
|
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
|
||||||
|
-t "$out/share/mime/packages"
|
||||||
|
install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
|
||||||
|
-t "$out/share/applications"
|
||||||
|
for size in 16 22 32 48 256 512; do
|
||||||
|
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
|
||||||
|
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
|
||||||
|
done
|
||||||
|
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Multi-track hard disk recording software";
|
||||||
|
longDescription = ''
|
||||||
|
Ardour is a digital audio workstation (DAW), You can use it to
|
||||||
|
record, edit and mix multi-track audio and midi. Produce your
|
||||||
|
own CDs. Mix video soundtracks. Experiment with new ideas about
|
||||||
|
music and sound.
|
||||||
|
|
||||||
|
Please consider supporting the ardour project financially:
|
||||||
|
https://community.ardour.org/donate
|
||||||
|
'';
|
||||||
|
homepage = "https://ardour.org/";
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ goibhniu fps ];
|
||||||
|
};
|
||||||
|
}
|
12
pkgs/applications/audio/ardour/as-flags.patch
Normal file
12
pkgs/applications/audio/ardour/as-flags.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- a/libs/ardour/wscript
|
||||||
|
+++ b/libs/ardour/wscript
|
||||||
|
@@ -379,8 +379,7 @@ def build(bld):
|
||||||
|
|
||||||
|
# remove '${DEFINES_ST:DEFINES}' from run_str.
|
||||||
|
# x86_64-w64-mingw32-as (mingw) -D flag is for debug messages
|
||||||
|
- if bld.env['build_target'] == 'mingw':
|
||||||
|
- class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
|
||||||
|
+ class asm(Task.classes['asm']): run_str = '${AS} ${ASFLAGS} ${ASMPATH_ST:INCPATHS} ${AS_SRC_F}${SRC} ${AS_TGT_F}${TGT}'
|
||||||
|
|
||||||
|
# operate on copy to avoid adding sources twice
|
||||||
|
sources = list(libardour_sources)
|
@ -4,75 +4,79 @@
|
|||||||
, aubio
|
, aubio
|
||||||
, boost
|
, boost
|
||||||
, cairomm
|
, cairomm
|
||||||
|
, cppunit
|
||||||
, curl
|
, curl
|
||||||
|
, dbus
|
||||||
, doxygen
|
, doxygen
|
||||||
|
, ffmpeg
|
||||||
|
, fftw
|
||||||
, fftwSinglePrec
|
, fftwSinglePrec
|
||||||
, flac
|
, flac
|
||||||
|
, fluidsynth
|
||||||
, glibc
|
, glibc
|
||||||
, glibmm
|
, glibmm
|
||||||
, graphviz
|
, graphviz
|
||||||
, gtkmm2
|
, gtkmm2
|
||||||
|
, hidapi
|
||||||
|
, itstool
|
||||||
|
, libarchive
|
||||||
, libjack2
|
, libjack2
|
||||||
, liblo
|
, liblo
|
||||||
|
, libltc
|
||||||
, libogg
|
, libogg
|
||||||
|
, libpulseaudio
|
||||||
|
, librdf_raptor
|
||||||
|
, librdf_rasqal
|
||||||
, libsamplerate
|
, libsamplerate
|
||||||
, libsigcxx
|
, libsigcxx
|
||||||
, libsndfile
|
, libsndfile
|
||||||
, libusb1
|
, libusb1
|
||||||
, fluidsynth_1
|
, libuv
|
||||||
, hidapi
|
, libwebsockets
|
||||||
, libltc
|
|
||||||
, qm-dsp
|
|
||||||
, libxml2
|
, libxml2
|
||||||
|
, libxslt
|
||||||
, lilv
|
, lilv
|
||||||
, lrdf
|
, lrdf
|
||||||
, lv2
|
, lv2
|
||||||
, makeWrapper
|
, pango
|
||||||
, perl
|
, perl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, itstool
|
, python3
|
||||||
, python2
|
, qm-dsp
|
||||||
|
, readline
|
||||||
, rubberband
|
, rubberband
|
||||||
, serd
|
, serd
|
||||||
, sord
|
, sord
|
||||||
, sratom
|
, sratom
|
||||||
|
, suil
|
||||||
, taglib
|
, taglib
|
||||||
, vamp-plugin-sdk
|
, vamp-plugin-sdk
|
||||||
, dbus
|
|
||||||
, fftw
|
|
||||||
, pango
|
|
||||||
, suil
|
|
||||||
, libarchive
|
|
||||||
, wafHook
|
, wafHook
|
||||||
}:
|
}:
|
||||||
let
|
stdenv.mkDerivation rec {
|
||||||
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated
|
pname = "ardour";
|
||||||
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used
|
version = "6.0";
|
||||||
# in-between; MAJOR.MINOR.REV where REV is the number of commits since the
|
|
||||||
# last annotated tag. A slightly different version string format is needed
|
|
||||||
# for the 'revision' info that is built into the binary; it is the format of
|
|
||||||
# "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
|
|
||||||
|
|
||||||
# Version to build.
|
|
||||||
tag = "5.12";
|
|
||||||
in stdenv.mkDerivation rec {
|
|
||||||
name = "ardour-${tag}";
|
|
||||||
|
|
||||||
|
# don't fetch releases from the GitHub mirror, they are broken
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "git://git.ardour.org/ardour/ardour.git";
|
url = "git://git.ardour.org/ardour/ardour.git";
|
||||||
rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
|
rev = version;
|
||||||
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
sha256 = "162jd96zahl05fdmjwvpdfjxbhd6ifbav6xqa0vv6rsdl4zk395q";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096
|
||||||
|
./as-flags.patch
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
wafHook
|
|
||||||
makeWrapper
|
|
||||||
pkg-config
|
|
||||||
itstool
|
|
||||||
doxygen
|
doxygen
|
||||||
graphviz # for dot
|
graphviz # for dot
|
||||||
|
itstool
|
||||||
perl
|
perl
|
||||||
python2
|
pkg-config
|
||||||
|
python3
|
||||||
|
wafHook
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
@ -80,29 +84,42 @@ in stdenv.mkDerivation rec {
|
|||||||
aubio
|
aubio
|
||||||
boost
|
boost
|
||||||
cairomm
|
cairomm
|
||||||
|
cppunit
|
||||||
curl
|
curl
|
||||||
dbus
|
dbus
|
||||||
|
ffmpeg
|
||||||
fftw
|
fftw
|
||||||
fftwSinglePrec
|
fftwSinglePrec
|
||||||
flac
|
flac
|
||||||
|
fluidsynth
|
||||||
glibmm
|
glibmm
|
||||||
gtkmm2
|
gtkmm2
|
||||||
|
hidapi
|
||||||
|
itstool
|
||||||
|
libarchive
|
||||||
libjack2
|
libjack2
|
||||||
liblo
|
liblo
|
||||||
|
libltc
|
||||||
libogg
|
libogg
|
||||||
|
libpulseaudio
|
||||||
|
librdf_raptor
|
||||||
|
librdf_rasqal
|
||||||
libsamplerate
|
libsamplerate
|
||||||
libsigcxx
|
libsigcxx
|
||||||
libsndfile
|
libsndfile
|
||||||
libusb1
|
libusb1
|
||||||
fluidsynth_1
|
libuv
|
||||||
hidapi
|
libwebsockets
|
||||||
libltc
|
|
||||||
qm-dsp
|
|
||||||
libxml2
|
libxml2
|
||||||
|
libxslt
|
||||||
lilv
|
lilv
|
||||||
lrdf
|
lrdf
|
||||||
lv2
|
lv2
|
||||||
pango
|
pango
|
||||||
|
perl
|
||||||
|
python3
|
||||||
|
qm-dsp
|
||||||
|
readline
|
||||||
rubberband
|
rubberband
|
||||||
serd
|
serd
|
||||||
sord
|
sord
|
||||||
@ -110,40 +127,47 @@ in stdenv.mkDerivation rec {
|
|||||||
suil
|
suil
|
||||||
taglib
|
taglib
|
||||||
vamp-plugin-sdk
|
vamp-plugin-sdk
|
||||||
libarchive
|
|
||||||
];
|
];
|
||||||
|
|
||||||
wafConfigureFlags = [
|
wafConfigureFlags = [
|
||||||
"--optimize"
|
"--cxx11"
|
||||||
"--docs"
|
"--docs"
|
||||||
"--use-external-libs"
|
|
||||||
"--freedesktop"
|
"--freedesktop"
|
||||||
"--with-backends=jack,alsa,dummy"
|
"--no-phone-home"
|
||||||
|
"--optimize"
|
||||||
|
"--ptformat"
|
||||||
|
"--qm-dsp-include=${qm-dsp}/include/qm-dsp"
|
||||||
|
"--run-tests"
|
||||||
|
"--test"
|
||||||
|
"--use-external-libs"
|
||||||
];
|
];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-I${qm-dsp}/include/qm-dsp";
|
# Ardour's wscript requires git revision and date to be available.
|
||||||
|
# Since they are not, let's generate the file manually.
|
||||||
# ardour's wscript has a "tarball" target but that required the git revision
|
|
||||||
# be available. Since this is an unzipped tarball fetched from github we
|
|
||||||
# have to do that ourself.
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = "${version}"; const char* date = ""; }\n' > libs/ardour/revision.cc
|
||||||
|
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
|
||||||
patchShebangs ./tools/
|
patchShebangs ./tools/
|
||||||
|
substituteInPlace libs/ardour/video_tools_paths.cc \
|
||||||
|
--replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg}/bin/ffmpeg");' \
|
||||||
|
--replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg}/bin/ffprobe");'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# wscript does not install these for some reason
|
# wscript does not install these for some reason
|
||||||
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
|
install -vDm 644 "build/gtk2_ardour/ardour.xml" \
|
||||||
-t "$out/share/mime/packages"
|
-t "$out/share/mime/packages"
|
||||||
install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
|
install -vDm 644 "build/gtk2_ardour/ardour6.desktop" \
|
||||||
-t "$out/share/applications"
|
-t "$out/share/applications"
|
||||||
for size in 16 22 32 48 256 512; do
|
for size in 16 22 32 48 256 512; do
|
||||||
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
|
install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
|
||||||
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
|
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
|
||||||
done
|
done
|
||||||
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
|
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
LINKFLAGS = "-lpthread";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Multi-track hard disk recording software";
|
description = "Multi-track hard disk recording software";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
@ -153,11 +177,11 @@ in stdenv.mkDerivation rec {
|
|||||||
music and sound.
|
music and sound.
|
||||||
|
|
||||||
Please consider supporting the ardour project financially:
|
Please consider supporting the ardour project financially:
|
||||||
https://community.ardour.org/node/8288
|
https://community.ardour.org/donate
|
||||||
'';
|
'';
|
||||||
homepage = "http://ardour.org/";
|
homepage = "https://ardour.org/";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ maintainers.goibhniu maintainers.fps ];
|
maintainers = with maintainers; [ goibhniu magnetophon ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18662,6 +18662,8 @@ in
|
|||||||
|
|
||||||
ardour = callPackage ../applications/audio/ardour { };
|
ardour = callPackage ../applications/audio/ardour { };
|
||||||
|
|
||||||
|
ardour_5 = lowPrio (callPackage ../applications/audio/ardour/5.nix { });
|
||||||
|
|
||||||
arelle = with python3Packages; toPythonApplication arelle;
|
arelle = with python3Packages; toPythonApplication arelle;
|
||||||
|
|
||||||
argo = callPackage ../applications/networking/cluster/argo { };
|
argo = callPackage ../applications/networking/cluster/argo { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user