diff --git a/pkgs/misc/jackaudio/git.nix b/pkgs/misc/jackaudio/git.nix new file mode 100644 index 00000000000..fb47128595e --- /dev/null +++ b/pkgs/misc/jackaudio/git.nix @@ -0,0 +1,78 @@ +{ stdenv, fetchFromGitHub, pkgconfig, python, makeWrapper +, bash, libsamplerate, libsndfile, readline + +# Optional Dependencies +, dbus ? null, pythonDBus ? null, libffado ? null, alsaLib ? null +, libopus ? null + +# Extra options +, prefix ? "" +}: + +with stdenv.lib; +let + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + + libOnly = prefix == "lib"; + + optDbus = shouldUsePkg dbus; + optPythonDBus = if libOnly then null else shouldUsePkg pythonDBus; + 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 = "2015-09-03"; + + src = fetchFromGitHub { + owner = "jackaudio"; + repo = "jack2"; + rev = "2e8c5502c692a25f1c0213f3f7eeba1f4434da3c"; + sha256 = "0r1xdshm251yqb748r5l5f6xpznhwlqyyxkky7vgx5m2q51qb0a1"; + }; + + nativeBuildInputs = [ pkgconfig python makeWrapper ]; + buildInputs = [ + python + + libsamplerate libsndfile readline + + optDbus optPythonDBus optLibffado optAlsaLib optLibopus + ]; + + patchPhase = '' + substituteInPlace svnversion_regenerate.sh --replace /bin/bash ${bash}/bin/bash + ''; + + configurePhase = '' + python waf configure --prefix=$out \ + ${optionalString (optDbus != null) "--dbus"} \ + --classic \ + --profile \ + ${optionalString (optLibffado != null) "--firewire"} \ + ${optionalString (optAlsaLib != null) "--alsa"} \ + --autostart=${if (optDbus != null) then "dbus" else "classic"} \ + ''; + + buildPhase = '' + python waf build + ''; + + installPhase = '' + python waf install + '' + (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 wkennington ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9cce7bb3258..aa2695cbdea 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14902,6 +14902,7 @@ let libopus = libopus.override { withCustomModes = true; }; }; libjack2 = jack2Full.override { prefix = "lib"; }; + libjack2-git = callPackage ../misc/jackaudio/git.nix { }; keynav = callPackage ../tools/X11/keynav { };