summaryrefslogtreecommitdiff
path: root/pkgs/applications/audio/ardour/ardour4.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/audio/ardour/ardour4.nix')
-rw-r--r--pkgs/applications/audio/ardour/ardour4.nix86
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/applications/audio/ardour/ardour4.nix b/pkgs/applications/audio/ardour/ardour4.nix
new file mode 100644
index 000000000000..b6123f40ee1d
--- /dev/null
+++ b/pkgs/applications/audio/ardour/ardour4.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, alsaLib, aubio, boost, cairomm, curl, doxygen, dbus, fftw
+, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
+, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
+, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
+, libusb, libuuid, libxml2, libxslt, lilv-svn, lv2, makeWrapper, pango
+, perl, pkgconfig, python2, rubberband, serd, sord-svn, sratom, suil, taglib, vampSDK }:
+
+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 = "4.7";
+
+in
+
+stdenv.mkDerivation rec {
+ name = "ardour-${tag}";
+
+ src = fetchFromGitHub {
+ owner = "Ardour";
+ repo = "ardour";
+ rev = "d84a8222f2b6dab5028b2586f798535a8766670e";
+ sha256 = "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l";
+ };
+
+ buildInputs =
+ [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac glibc
+ glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
+ libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
+ libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv-svn lv2
+ makeWrapper pango perl pkgconfig python2 rubberband serd sord-svn sratom suil taglib vampSDK
+ ];
+
+ # 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.
+ patchPhase = ''
+ printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
+ sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
+ patchShebangs ./tools/
+ '';
+
+ configurePhase = "${python2.interpreter} waf configure --optimize --docs --with-backends=jack,alsa --prefix=$out";
+
+ buildPhase = "${python2.interpreter} waf";
+
+ installPhase = ''
+ ${python2.interpreter} waf install
+ # Install desktop file
+ mkdir -p "$out/share/applications"
+ cat > "$out/share/applications/ardour.desktop" << EOF
+ [Desktop Entry]
+ Name=Ardour 4
+ GenericName=Digital Audio Workstation
+ Comment=Multitrack harddisk recorder
+ Exec=$out/bin/ardour4
+ Icon=$out/share/ardour4/icons/ardour_icon_256px.png
+ Terminal=false
+ Type=Application
+ X-MultipleArgs=false
+ Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
+ EOF
+ '';
+
+ 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/node/8288
+ '';
+ homepage = http://ardour.org/;
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.goibhniu maintainers.fps ];
+ };
+}