diff options
author | Bart Brouns <bart@magnetophon.nl> | 2020-05-30 20:17:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-30 14:17:08 -0400 |
commit | 3a77caa41907e1124709c29398380e2b5772d615 (patch) | |
tree | b50e6c049162fcb8ba2db152fc8fb4e96f71e9c9 /pkgs/applications/audio/ardour | |
parent | 903eb50f027a9712d92b25233adbf0f406f70c75 (diff) |
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>
Diffstat (limited to 'pkgs/applications/audio/ardour')
-rw-r--r-- | pkgs/applications/audio/ardour/5.nix | 162 | ||||
-rw-r--r-- | pkgs/applications/audio/ardour/as-flags.patch | 12 | ||||
-rw-r--r-- | pkgs/applications/audio/ardour/default.nix | 124 |
3 files changed, 248 insertions, 50 deletions
diff --git a/pkgs/applications/audio/ardour/5.nix b/pkgs/applications/audio/ardour/5.nix new file mode 100644 index 0000000000000..86879e4e5bd82 --- /dev/null +++ b/pkgs/applications/audio/ardour/5.nix @@ -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 ]; + }; +} diff --git a/pkgs/applications/audio/ardour/as-flags.patch b/pkgs/applications/audio/ardour/as-flags.patch new file mode 100644 index 0000000000000..b8aab70ddca63 --- /dev/null +++ b/pkgs/applications/audio/ardour/as-flags.patch @@ -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) diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index fadfedf5384f4..c99545bb74f10 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -4,75 +4,79 @@ , aubio , boost , cairomm +, cppunit , curl +, dbus , doxygen +, ffmpeg +, fftw , fftwSinglePrec , flac +, fluidsynth , glibc , glibmm , graphviz , gtkmm2 +, hidapi +, itstool +, libarchive , libjack2 , liblo +, libltc , libogg +, libpulseaudio +, librdf_raptor +, librdf_rasqal , libsamplerate , libsigcxx , libsndfile , libusb1 -, fluidsynth_1 -, hidapi -, libltc -, qm-dsp +, libuv +, libwebsockets , libxml2 +, libxslt , lilv , lrdf , lv2 -, makeWrapper +, pango , perl , pkg-config -, itstool -, python2 +, python3 +, qm-dsp +, readline , rubberband , serd , sord , sratom +, suil , 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 { - name = "ardour-${tag}"; +stdenv.mkDerivation rec { + pname = "ardour"; + version = "6.0"; + # don't fetch releases from the GitHub mirror, they are broken src = fetchgit { url = "git://git.ardour.org/ardour/ardour.git"; - rev = "ae0dcdc0c5d13483271065c360e378202d20170a"; - sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; + rev = version; + sha256 = "162jd96zahl05fdmjwvpdfjxbhd6ifbav6xqa0vv6rsdl4zk395q"; }; + patches = [ + # AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096 + ./as-flags.patch + ]; + nativeBuildInputs = [ - wafHook - makeWrapper - pkg-config - itstool doxygen graphviz # for dot + itstool perl - python2 + pkg-config + python3 + wafHook ]; buildInputs = [ @@ -80,29 +84,42 @@ in stdenv.mkDerivation rec { aubio boost cairomm + cppunit curl dbus + ffmpeg fftw fftwSinglePrec flac + fluidsynth glibmm gtkmm2 + hidapi + itstool + libarchive libjack2 liblo + libltc libogg + libpulseaudio + librdf_raptor + librdf_rasqal libsamplerate libsigcxx libsndfile libusb1 - fluidsynth_1 - hidapi - libltc - qm-dsp + libuv + libwebsockets libxml2 + libxslt lilv lrdf lv2 pango + perl + python3 + qm-dsp + readline rubberband serd sord @@ -110,40 +127,47 @@ in stdenv.mkDerivation rec { suil taglib vamp-plugin-sdk - libarchive ]; wafConfigureFlags = [ - "--optimize" + "--cxx11" "--docs" - "--use-external-libs" "--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 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. + # Ardour's wscript requires git revision and date to be available. + # Since they are not, let's generate the file manually. 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/ + 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 = '' # 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" \ + install -vDm 644 "build/gtk2_ardour/ardour6.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" + "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png" done install -vDm 644 "ardour.1"* -t "$out/share/man/man1" ''; + LINKFLAGS = "-lpthread"; + meta = with stdenv.lib; { description = "Multi-track hard disk recording software"; longDescription = '' @@ -153,11 +177,11 @@ in stdenv.mkDerivation rec { music and sound. 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; platforms = platforms.linux; - maintainers = [ maintainers.goibhniu maintainers.fps ]; + maintainers = with maintainers; [ goibhniu magnetophon ]; }; } |