aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/misc/apulse
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-05 12:43:18 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-05 12:44:52 +0000
commitcf85056ba64caf3267d43255ef4a1243e9c8ee3b (patch)
tree3051519e9c8275b870aac43f80af875715c9d124 /nixpkgs/pkgs/misc/apulse
parent1148b1d122bc03e9a3665856c9b7bb96bd4e3994 (diff)
parent2436c27541b2f52deea3a4c1691216a02152e729 (diff)
Add 'nixpkgs/' from commit '2436c27541b2f52deea3a4c1691216a02152e729'
git-subtree-dir: nixpkgs git-subtree-mainline: 1148b1d122bc03e9a3665856c9b7bb96bd4e3994 git-subtree-split: 2436c27541b2f52deea3a4c1691216a02152e729
Diffstat (limited to 'nixpkgs/pkgs/misc/apulse')
-rw-r--r--nixpkgs/pkgs/misc/apulse/default.nix35
-rw-r--r--nixpkgs/pkgs/misc/apulse/pressureaudio.nix82
2 files changed, 117 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/apulse/default.nix b/nixpkgs/pkgs/misc/apulse/default.nix
new file mode 100644
index 00000000000..273e358184d
--- /dev/null
+++ b/nixpkgs/pkgs/misc/apulse/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib
+, tracingSupport ? true, logToStderr ? true }:
+
+let oz = x: if x then "1" else "0"; in
+
+stdenv.mkDerivation rec {
+ pname = "apulse";
+ version = "0.1.12";
+
+ src = fetchFromGitHub {
+ owner = "i-rinat";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0yk9vgb4aws8xnkhdhgpxp5c0rri8yq61yxk85j99j8ax806i3r8";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ alsaLib glib ];
+
+ cmakeFlags = [
+ "-DWITH_TRACE=${oz tracingSupport}"
+ "-DLOG_TO_STDERR=${oz logToStderr}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "PulseAudio emulation for ALSA";
+ homepage = "https://github.com/i-rinat/apulse";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.jagajaga ];
+ };
+}
diff --git a/nixpkgs/pkgs/misc/apulse/pressureaudio.nix b/nixpkgs/pkgs/misc/apulse/pressureaudio.nix
new file mode 100644
index 00000000000..710712fe508
--- /dev/null
+++ b/nixpkgs/pkgs/misc/apulse/pressureaudio.nix
@@ -0,0 +1,82 @@
+{ stdenv, apulse, libpulseaudio, pkgconfig, intltool, autoreconfHook }:
+
+stdenv.mkDerivation {
+ name = "libpressureaudio-${apulse.version}";
+
+ src = libpulseaudio.src;
+
+ nativeBuildInputs = [ pkgconfig intltool autoreconfHook ];
+
+ dontConfigure = true;
+
+ buildPhase = ":";
+
+ installPhase = ''
+ echo "Copying libraries from apulse."
+ mkdir -p $out/lib
+ ls ${apulse}/lib/apulse $out/lib
+ cp -a ${apulse}/lib/apulse/* $out/lib/
+
+ echo "Copying headers from pulseaudio."
+ mkdir -p $out/include/pulse
+ cp -a src/pulse/*.h $out/include/pulse
+
+ echo "Generating custom pkgconfig definitions."
+ mkdir -p $out/lib/pkgconfig
+ for a in libpulse.pc libpulse-simple.pc libpulse-mainloop-glib.pc ; do
+ cat > $out/lib/pkgconfig/$a << EOF
+ prefix=$out
+ libdir=$out/lib
+ includedir=$out/include
+
+ EOF
+ done
+
+ cat >> $out/lib/pkgconfig/libpulse.pc << EOF
+ Name: libpulse
+ Description: PulseAudio Client Interface
+ Version: ${libpulseaudio.version}-rebootstrapped
+ Libs: -L$out/lib -lpulse
+ Cflags: -I$out/include -D_REENTRANT
+ EOF
+
+ cat >> $out/lib/pkgconfig/libpulse-simple.pc << EOF
+ Name: libpulse-simple
+ Description: PulseAudio Simplified Synchronous Client Interface
+ Version: ${libpulseaudio.version}-rebootstrapped
+ Libs: -L$out/lib -lpulse-simple
+ Cflags: -I$out/include -D_REENTRANT
+ Requires: libpulse
+ EOF
+
+ cat >> $out/lib/pkgconfig/libpulse-mainloop-glib.pc << EOF
+ Name: libpulse-mainloop-glib
+ Description: PulseAudio GLib 2.0 Main Loop Wrapper
+ Version: ${libpulseaudio.version}-rebootstrapped
+ Libs: -L$out/lib -lpulse-mainloop-glib
+ Cflags: -I$out/include -D_REENTRANT
+ Requires: libpulse glib-2.0
+ EOF
+ '';
+
+ meta = apulse.meta // {
+ description = "libpulse without any sound daemons over pure ALSA";
+ longDescription = ''
+ apulse (${apulse.meta.homepage}) implements most of libpulse
+ API over pure ALSA in 5% LOC of the original PulseAudio.
+
+ But apulse is made to be used as a wrapper that substitutes its
+ replacement libs into LD_LIBRARY_PATH. The problem with that is
+ that you still have to link against the original libpulse.
+
+ pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse
+ with everything you need to replace libpulse completely.
+
+ This derivation is a reimplementation of pressureaudio in pure
+ nix.
+
+ You can simply override libpulse with this and most
+ packages would just work.
+ '';
+ };
+}