2016-10-04 20:15:18 +02:00
|
|
|
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen
|
2016-09-11 23:24:51 +02:00
|
|
|
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
|
2014-03-16 11:32:56 +01:00
|
|
|
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
|
|
|
|
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
2016-11-01 02:00:07 +01:00
|
|
|
, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper
|
|
|
|
, perl, pkgconfig, python2, rubberband, serd, sord, sratom
|
2018-11-11 22:20:41 +01:00
|
|
|
, taglib, vampSDK, dbus, fftw, pango, suil, libarchive
|
|
|
|
, wafHook }:
|
2014-03-16 11:32:56 +01:00
|
|
|
|
|
|
|
let
|
2014-12-07 15:01:47 +01:00
|
|
|
|
|
|
|
# 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.
|
2017-10-04 19:04:31 +02:00
|
|
|
tag = "5.12";
|
2014-12-07 15:01:47 +01:00
|
|
|
|
2014-03-16 11:32:56 +01:00
|
|
|
in
|
2009-09-21 17:55:24 +02:00
|
|
|
|
2012-03-16 23:28:21 +01:00
|
|
|
stdenv.mkDerivation rec {
|
2014-03-16 11:32:56 +01:00
|
|
|
name = "ardour-${tag}";
|
2009-09-21 11:58:41 +02:00
|
|
|
|
2016-10-04 20:15:18 +02:00
|
|
|
src = fetchgit {
|
|
|
|
url = "git://git.ardour.org/ardour/ardour.git";
|
2017-10-04 19:04:31 +02:00
|
|
|
rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
|
|
|
|
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
2009-09-21 17:55:24 +02:00
|
|
|
};
|
2009-09-21 11:58:41 +02:00
|
|
|
|
2018-11-11 22:20:41 +01:00
|
|
|
nativeBuildInputs = [ wafHook ];
|
2015-08-09 18:37:08 +02:00
|
|
|
buildInputs =
|
2017-10-04 19:04:31 +02:00
|
|
|
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac
|
2016-09-11 23:24:51 +02:00
|
|
|
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
|
2014-03-16 11:32:56 +01:00
|
|
|
libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
|
2016-11-01 02:00:07 +01:00
|
|
|
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
|
|
|
|
makeWrapper pango perl pkgconfig python2 rubberband serd sord
|
2016-10-04 20:15:18 +02:00
|
|
|
sratom suil taglib vampSDK libarchive
|
2014-03-16 11:32:56 +01:00
|
|
|
];
|
2012-03-16 23:28:21 +01:00
|
|
|
|
2015-10-15 15:01:35 +02:00
|
|
|
# ardour's wscript has a "tarball" target but that required the git revision
|
2016-02-27 20:26:20 +01:00
|
|
|
# be available. Since this is an unzipped tarball fetched from github we
|
2015-10-15 15:01:35 +02:00
|
|
|
# have to do that ourself.
|
2014-03-16 11:32:56 +01:00
|
|
|
patchPhase = ''
|
2015-08-15 10:33:24 +02:00
|
|
|
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
|
2015-04-26 19:54:51 +02:00
|
|
|
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
|
2015-05-28 03:02:01 +02:00
|
|
|
patchShebangs ./tools/
|
2009-09-21 11:58:41 +02:00
|
|
|
'';
|
2013-03-02 21:17:30 +01:00
|
|
|
|
2018-11-11 22:20:41 +01:00
|
|
|
configureFlags = [
|
|
|
|
"--optimize"
|
|
|
|
"--docs"
|
|
|
|
"--with-backends=jack,alsa,dummy"
|
|
|
|
];
|
2014-07-29 18:27:38 +02:00
|
|
|
|
2018-11-11 22:20:41 +01:00
|
|
|
postInstall = ''
|
2014-07-29 18:27:38 +02:00
|
|
|
# Install desktop file
|
|
|
|
mkdir -p "$out/share/applications"
|
|
|
|
cat > "$out/share/applications/ardour.desktop" << EOF
|
|
|
|
[Desktop Entry]
|
2016-10-04 20:15:18 +02:00
|
|
|
Name=Ardour 5
|
2014-07-29 18:27:38 +02:00
|
|
|
GenericName=Digital Audio Workstation
|
|
|
|
Comment=Multitrack harddisk recorder
|
2016-10-04 20:15:18 +02:00
|
|
|
Exec=$out/bin/ardour5
|
2017-09-03 20:37:50 +02:00
|
|
|
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png
|
2014-07-29 18:27:38 +02:00
|
|
|
Terminal=false
|
|
|
|
Type=Application
|
|
|
|
X-MultipleArgs=false
|
|
|
|
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
|
|
|
|
EOF
|
2014-03-16 11:32:56 +01:00
|
|
|
'';
|
2009-09-21 11:58:41 +02:00
|
|
|
|
2014-03-16 11:32:56 +01:00
|
|
|
meta = with stdenv.lib; {
|
2010-02-11 15:31:49 +01:00
|
|
|
description = "Multi-track hard disk recording software";
|
2009-09-21 11:58:41 +02:00
|
|
|
longDescription = ''
|
2015-05-03 20:25:57 +02:00
|
|
|
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/node/8288
|
2009-09-21 11:58:41 +02:00
|
|
|
'';
|
|
|
|
homepage = http://ardour.org/;
|
2014-03-16 11:32:56 +01:00
|
|
|
license = licenses.gpl2;
|
|
|
|
platforms = platforms.linux;
|
2015-10-15 14:16:23 +02:00
|
|
|
maintainers = [ maintainers.goibhniu maintainers.fps ];
|
2009-09-21 11:58:41 +02:00
|
|
|
};
|
|
|
|
}
|