From 73a03e3a18ab1b9d2330879e957c6f53d83ee2be Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Tue, 4 Oct 2016 20:15:18 +0200 Subject: [PATCH] ardour: 4.7 -> 5.4 --- pkgs/applications/audio/ardour/ardour4.nix | 86 ++++++++++++++++++++++ pkgs/applications/audio/ardour/default.nix | 27 +++---- pkgs/top-level/all-packages.nix | 9 ++- 3 files changed, 107 insertions(+), 15 deletions(-) create mode 100644 pkgs/applications/audio/ardour/ardour4.nix diff --git a/pkgs/applications/audio/ardour/ardour4.nix b/pkgs/applications/audio/ardour/ardour4.nix new file mode 100644 index 00000000000..f9d64ff6f63 --- /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, python, 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 python 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 = "python waf configure --optimize --docs --with-backends=jack,alsa --prefix=$out"; + + buildPhase = "python waf"; + + installPhase = '' + python 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 ]; + }; +} diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 7951076daa0..6adb3a0ed47 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -1,9 +1,10 @@ -{ stdenv, fetchFromGitHub, alsaLib, aubio, boost, cairomm, curl, doxygen, dbus, fftw +{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen , 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, python, rubberband, serd, sord-svn, sratom, suil, taglib, vampSDK }: +, libusb, libuuid, libxml2, libxslt, lilv-svn, lv2, makeWrapper +, perl, pkgconfig, python, rubberband, serd, sord-svn, sratom +, taglib, vampSDK, dbus, fftw, pango, suil, libarchive }: let @@ -15,18 +16,17 @@ let # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH. # Version to build. - tag = "4.7"; + tag = "5.4"; in stdenv.mkDerivation rec { name = "ardour-${tag}"; - src = fetchFromGitHub { - owner = "Ardour"; - repo = "ardour"; - rev = "d84a8222f2b6dab5028b2586f798535a8766670e"; - sha256 = "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l"; + src = fetchgit { + url = "git://git.ardour.org/ardour/ardour.git"; + rev = "bb3312c3bb9c6ed9b75ac6739a6ee720ddf86c86"; + sha256 = "1yrg0d86k9fqw7lmzjglilbadb4cjqxqkf6ii4bjs6rihj6b0qrf"; }; buildInputs = @@ -34,7 +34,8 @@ stdenv.mkDerivation rec { 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 python rubberband serd sord-svn sratom suil taglib vampSDK + makeWrapper pango perl pkgconfig python rubberband serd sord-svn + sratom suil taglib vampSDK libarchive ]; # ardour's wscript has a "tarball" target but that required the git revision @@ -57,11 +58,11 @@ stdenv.mkDerivation rec { mkdir -p "$out/share/applications" cat > "$out/share/applications/ardour.desktop" << EOF [Desktop Entry] - Name=Ardour 4 + Name=Ardour 5 GenericName=Digital Audio Workstation Comment=Multitrack harddisk recorder - Exec=$out/bin/ardour4 - Icon=$out/share/ardour4/icons/ardour_icon_256px.png + Exec=$out/bin/ardour5 + Icon=$out/share/ardour5/icons/ardour_icon_256px.png Terminal=false Type=Application X-MultipleArgs=false diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 836328a45e1..717ddaa72f4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11893,14 +11893,19 @@ in ao = callPackage ../applications/graphics/ao {}; - ardour = ardour4; + ardour = ardour5; ardour3 = callPackage ../applications/audio/ardour/ardour3.nix { inherit (gnome2) libgnomecanvas libgnomecanvasmm; inherit (vamp) vampSDK; }; - ardour4 = callPackage ../applications/audio/ardour { + ardour4 = callPackage ../applications/audio/ardour/ardour4.nix { + inherit (gnome2) libgnomecanvas libgnomecanvasmm; + inherit (vamp) vampSDK; + }; + + ardour5 = callPackage ../applications/audio/ardour { inherit (gnome2) libgnomecanvas libgnomecanvasmm; inherit (vamp) vampSDK; };