Merge pull request #84470 from jtojnar/ardour-cleanup

ardour: clean up the expression
This commit is contained in:
Jan Tojnar 2020-04-13 20:10:27 +02:00 committed by GitHub
commit cc57640aeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 220 additions and 48 deletions

View File

@ -1,14 +1,51 @@
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen { stdenv
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2 , fetchgit
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg , alsaLib
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile , aubio
, libusb, libuuid, libxml2, libxslt, lilv, lrdf, lv2, makeWrapper , boost
, perl, pkgconfig, python2, rubberband, serd, sord, sratom , cairomm
, taglib, vamp-plugin-sdk, dbus, fftw, pango, suil, libarchive , curl
, wafHook }: , doxygen
, fftwSinglePrec
, flac
, glibc
, glibmm
, graphviz
, gtkmm2
, libjack2
, liblo
, libogg
, libsamplerate
, libsigcxx
, libsndfile
, libusb1
, fluidsynth_1
, hidapi
, libltc
, qm-dsp
, libxml2
, lilv
, lrdf
, lv2
, makeWrapper
, perl
, pkg-config
, itstool
, python2
, rubberband
, serd
, sord
, sratom
, taglib
, vamp-plugin-sdk
, dbus
, fftw
, pango
, suil
, libarchive
, wafHook
}:
let let
# Ardour git repo uses a mix of annotated and lightweight tags. Annotated # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
# tags are used for MAJOR.MINOR versioning, and lightweight tags are used # 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 # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
@ -18,10 +55,7 @@ let
# Version to build. # Version to build.
tag = "5.12"; tag = "5.12";
in stdenv.mkDerivation rec {
in
stdenv.mkDerivation rec {
name = "ardour-${tag}"; name = "ardour-${tag}";
src = fetchgit { src = fetchgit {
@ -30,46 +64,84 @@ stdenv.mkDerivation rec {
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
}; };
nativeBuildInputs = [ wafHook ]; nativeBuildInputs = [
buildInputs = wafHook
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac makeWrapper
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo pkg-config
libmad libogg librdf_raptor librdf_rasqal libsamplerate itstool
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lrdf lv2 doxygen
makeWrapper pango perl pkgconfig python2 rubberband serd sord graphviz # for dot
sratom suil taglib vamp-plugin-sdk libarchive perl
python2
]; ];
# ardour's wscript has a "tarball" target but that required the git revision buildInputs = [
# be available. Since this is an unzipped tarball fetched from github we alsaLib
# have to do that ourself. aubio
patchPhase = '' boost
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc cairomm
sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript curl
patchShebangs ./tools/ 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 = [ wafConfigureFlags = [
"--optimize" "--optimize"
"--docs" "--docs"
"--use-external-libs"
"--freedesktop"
"--with-backends=jack,alsa,dummy" "--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 = '' postInstall = ''
# Install desktop file # wscript does not install these for some reason
mkdir -p "$out/share/applications" install -vDm 644 "build/gtk2_ardour/ardour.xml" \
cat > "$out/share/applications/ardour.desktop" << EOF -t "$out/share/mime/packages"
[Desktop Entry] install -vDm 644 "build/gtk2_ardour/ardour5.desktop" \
Name=Ardour 5 -t "$out/share/applications"
GenericName=Digital Audio Workstation for size in 16 22 32 48 256 512; do
Comment=Multitrack harddisk recorder install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
Exec=$out/bin/ardour5 "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour5.png"
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png done
Terminal=false install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
Type=Application
X-MultipleArgs=false
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
EOF
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,53 @@
{ stdenv
, fetchFromGitHub
, fetchpatch
, kissfft
}:
stdenv.mkDerivation rec {
pname = "qm-dsp";
version = "1.7.1";
src = fetchFromGitHub {
owner = "c4dm";
repo = pname;
rev = "v${version}";
sha256 = "e1PtCIzp7zIz+KKRxEGlAXTNqZ35vPgQ4opJKHIPa+4=";
};
patches = [
# Make installable
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-install.patch";
sha256 = "7JDg9yOECWG7Ql5lIoC4L++R1gUlKfztvED5Ey4YLxw=";
})
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/qm-dsp/raw/6eb385e2f970c4150f9c8eba73b558318475ed15/f/qm-dsp-flags.patch";
sha256 = "2HRSbSFxC8DPXOgcflyBYeJI3NwO/1CFmyRdvYo09og=";
postFetch = ''
sed -i 's~/Makefile~/build/linux/Makefile.linux32~g' "$out"
'';
})
];
buildInputs = [
kissfft
];
makefile = "build/linux/Makefile.linux32";
makeFlags = [
"PREFIX=${placeholder "out"}"
"LIBDIR=${placeholder "out"}/lib"
];
NIX_CFLAGS_COMPILE = "-I${kissfft}/include/kissfft";
meta = with stdenv.lib; {
description = "A C++ library of functions for DSP and Music Informatics purposes";
homepage = "https://code.soundsoftware.ac.uk/projects/qm-dsp";
license = licenses.gpl2Plus;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,45 @@
{ stdenv
, fetchFromGitHub
, fetchpatch
}:
stdenv.mkDerivation rec {
pname = "kissfft";
version = "131";
src = fetchFromGitHub {
owner = "mborgerding";
repo = pname;
rev = "v${version}";
sha256 = "4lmRyBzW4H5wXb0EpgAp/hbaE2SslB6rAJyyLLbCtSs=";
};
patches = [
# Allow installation into our prefix
# Fix installation on Darwin
# Create necessary directories
# Make datatype configurable
(fetchpatch {
url = "https://github.com/mborgerding/kissfft/pull/38.patch";
sha256 = "Rsrob1M+lxwEag6SV5FqaTeyiJaOpspZxVtkeihX4TI=";
})
# Install headers as well
(fetchpatch {
url = "https://github.com/mborgerding/kissfft/commit/71df949992d2dbbe15ce707cf56c3fa1e43b1080.patch";
sha256 = "9ap6ZWyioBiut9UQM3v6W1Uv+iP3Kmt27xWhIfWfBI4=";
})
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"DATATYPE=double"
];
meta = with stdenv.lib; {
description = "A mixed-radix Fast Fourier Transform based up on the KISS principle";
homepage = "https://github.com/mborgerding/kissfft";
license = licenses.bsd3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
};
}

View File

@ -14198,6 +14198,8 @@ in
readosm = callPackage ../development/libraries/readosm { }; readosm = callPackage ../development/libraries/readosm { };
kissfft = callPackage ../development/libraries/kissfft { };
lambdabot = callPackage ../development/tools/haskell/lambdabot { lambdabot = callPackage ../development/tools/haskell/lambdabot {
haskellLib = haskell.lib; haskellLib = haskell.lib;
}; };
@ -14226,6 +14228,8 @@ in
lvtk = callPackage ../development/libraries/audio/lvtk { }; lvtk = callPackage ../development/libraries/audio/lvtk { };
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
qradiolink = callPackage ../applications/radio/qradiolink { }; qradiolink = callPackage ../applications/radio/qradiolink { };
qrupdate = callPackage ../development/libraries/qrupdate { }; qrupdate = callPackage ../development/libraries/qrupdate { };
@ -18415,9 +18419,7 @@ in
aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { }; aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
ardour = callPackage ../applications/audio/ardour { ardour = callPackage ../applications/audio/ardour { };
inherit (gnome2) libgnomecanvas libgnomecanvasmm;
};
arelle = with python3Packages; toPythonApplication arelle; arelle = with python3Packages; toPythonApplication arelle;