Merge pull request #84470 from jtojnar/ardour-cleanup
ardour: clean up the expression
This commit is contained in:
commit
cc57640aeb
4 changed files with 220 additions and 48 deletions
|
@ -1,14 +1,51 @@
|
|||
{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen
|
||||
, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
|
||||
, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg
|
||||
, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
|
||||
, libusb, libuuid, libxml2, libxslt, lilv, lrdf, lv2, makeWrapper
|
||||
, perl, pkgconfig, python2, rubberband, serd, sord, sratom
|
||||
, taglib, vamp-plugin-sdk, dbus, fftw, pango, suil, libarchive
|
||||
, wafHook }:
|
||||
|
||||
{ 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
|
||||
, makeWrapper
|
||||
, 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
|
||||
|
@ -18,10 +55,7 @@ let
|
|||
|
||||
# Version to build.
|
||||
tag = "5.12";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "ardour-${tag}";
|
||||
|
||||
src = fetchgit {
|
||||
|
@ -30,46 +64,84 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wafHook ];
|
||||
buildInputs =
|
||||
[ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac
|
||||
glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
|
||||
libmad libogg librdf_raptor librdf_rasqal libsamplerate
|
||||
libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lrdf lv2
|
||||
makeWrapper pango perl pkgconfig python2 rubberband serd sord
|
||||
sratom suil taglib vamp-plugin-sdk libarchive
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
wafHook
|
||||
makeWrapper
|
||||
pkg-config
|
||||
itstool
|
||||
doxygen
|
||||
graphviz # for dot
|
||||
perl
|
||||
python2
|
||||
];
|
||||
|
||||
# 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/
|
||||
'';
|
||||
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 = ''
|
||||
# Install desktop file
|
||||
mkdir -p "$out/share/applications"
|
||||
cat > "$out/share/applications/ardour.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Name=Ardour 5
|
||||
GenericName=Digital Audio Workstation
|
||||
Comment=Multitrack harddisk recorder
|
||||
Exec=$out/bin/ardour5
|
||||
Icon=$out/share/ardour5/resources/Ardour-icon_256px.png
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-MultipleArgs=false
|
||||
Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
|
||||
EOF
|
||||
# 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; {
|
||||
|
|
53
pkgs/development/libraries/audio/qm-dsp/default.nix
Normal file
53
pkgs/development/libraries/audio/qm-dsp/default.nix
Normal 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;
|
||||
};
|
||||
}
|
45
pkgs/development/libraries/kissfft/default.nix
Normal file
45
pkgs/development/libraries/kissfft/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -14198,6 +14198,8 @@ in
|
|||
|
||||
readosm = callPackage ../development/libraries/readosm { };
|
||||
|
||||
kissfft = callPackage ../development/libraries/kissfft { };
|
||||
|
||||
lambdabot = callPackage ../development/tools/haskell/lambdabot {
|
||||
haskellLib = haskell.lib;
|
||||
};
|
||||
|
@ -14226,6 +14228,8 @@ in
|
|||
|
||||
lvtk = callPackage ../development/libraries/audio/lvtk { };
|
||||
|
||||
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
|
||||
|
||||
qradiolink = callPackage ../applications/radio/qradiolink { };
|
||||
|
||||
qrupdate = callPackage ../development/libraries/qrupdate { };
|
||||
|
@ -18415,9 +18419,7 @@ in
|
|||
|
||||
aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
|
||||
|
||||
ardour = callPackage ../applications/audio/ardour {
|
||||
inherit (gnome2) libgnomecanvas libgnomecanvasmm;
|
||||
};
|
||||
ardour = callPackage ../applications/audio/ardour { };
|
||||
|
||||
arelle = with python3Packages; toPythonApplication arelle;
|
||||
|
||||
|
|
Loading…
Reference in a new issue