forked from mirrors/nixpkgs
b5c1deca8a
He prefers to contribute to his own nixpkgs fork triton. Since he is still marked as maintainer in many packages this leaves the wrong impression he still maintains those.
81 lines
2.7 KiB
Nix
81 lines
2.7 KiB
Nix
{ stdenv, fetchFromGitHub, pkgconfig, python2Packages, makeWrapper
|
|
, bash, libsamplerate, libsndfile, readline, eigen, celt
|
|
, wafHook
|
|
# Darwin Dependencies
|
|
, aften, AudioToolbox, CoreAudio, CoreFoundation
|
|
|
|
# Optional Dependencies
|
|
, dbus ? null, libffado ? null, alsaLib ? null
|
|
, libopus ? null
|
|
|
|
# Extra options
|
|
, prefix ? ""
|
|
}:
|
|
|
|
with stdenv.lib;
|
|
let
|
|
inherit (python2Packages) python dbus-python;
|
|
shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms then pkg else null;
|
|
|
|
libOnly = prefix == "lib";
|
|
|
|
optDbus = if stdenv.isDarwin then null else shouldUsePkg dbus;
|
|
optPythonDBus = if libOnly then null else shouldUsePkg dbus-python;
|
|
optLibffado = if libOnly then null else shouldUsePkg libffado;
|
|
optAlsaLib = if libOnly then null else shouldUsePkg alsaLib;
|
|
optLibopus = shouldUsePkg libopus;
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
name = "${prefix}jack2-${version}";
|
|
version = "1.9.12";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "jackaudio";
|
|
repo = "jack2";
|
|
rev = "v${version}";
|
|
sha256 = "0ynpyn0l77m94b50g7ysl795nvam3ra65wx5zb46nxspgbf6wnkh";
|
|
};
|
|
|
|
nativeBuildInputs = [ pkgconfig python makeWrapper wafHook ];
|
|
buildInputs = [ libsamplerate libsndfile readline eigen celt
|
|
optDbus optPythonDBus optLibffado optAlsaLib optLibopus
|
|
] ++ optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ];
|
|
|
|
# CoreFoundation 10.10 doesn't include CFNotificationCenter.h yet.
|
|
patches = optionals stdenv.isDarwin [ ./darwin-cf.patch ];
|
|
|
|
prePatch = ''
|
|
substituteInPlace svnversion_regenerate.sh \
|
|
--replace /bin/bash ${bash}/bin/bash
|
|
'';
|
|
|
|
# It looks like one of the frameworks depends on <CoreFoundation/CFAttributedString.h>
|
|
# since frameworks are impure we also have to use the impure CoreFoundation here.
|
|
# FIXME: remove when CoreFoundation is updated to 10.11
|
|
preConfigure = optionalString stdenv.isDarwin ''
|
|
export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
|
|
'';
|
|
|
|
configureFlags = [
|
|
"--classic"
|
|
"--autostart=${if (optDbus != null) then "dbus" else "classic"}"
|
|
] ++ optional (optDbus != null) "--dbus"
|
|
++ optional (optLibffado != null) "--firewire"
|
|
++ optional (optAlsaLib != null) "--alsa";
|
|
|
|
postInstall = (if libOnly then ''
|
|
rm -rf $out/{bin,share}
|
|
rm -rf $out/lib/{jack,libjacknet*,libjackserver*}
|
|
'' else ''
|
|
wrapProgram $out/bin/jack_control --set PYTHONPATH $PYTHONPATH
|
|
'');
|
|
|
|
meta = {
|
|
description = "JACK audio connection kit, version 2 with jackdbus";
|
|
homepage = http://jackaudio.org;
|
|
license = licenses.gpl2Plus;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [ goibhniu ];
|
|
};
|
|
}
|