diff options
author | Jan Malakhovski <oxij@oxij.org> | 2018-02-16 22:57:00 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2018-02-17 17:51:07 +0000 |
commit | 2f4eb68241f3d9bb04102dc1c6cfa1ceb0bf8ba0 (patch) | |
tree | 3b76fb23fef75e1bea3ddfcd452b9c7ee9c8214f /pkgs | |
parent | 771d635f0ef5559549fe245e1df619f160751f6c (diff) |
libpressureaudio: init at `apulse.version`
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/misc/apulse/pressureaudio.nix | 82 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/misc/apulse/pressureaudio.nix b/pkgs/misc/apulse/pressureaudio.nix new file mode 100644 index 000000000000..255fca842a73 --- /dev/null +++ b/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 ]; + + configurePhase = ":"; + + 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 = "libpulseaudio without any sound daemons over pure ALSA"; + longDescription = '' + apulse (${apulse.meta.homepage}) implements most of libpulseaudio + 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 libpulseaudio. + + pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse + with everything you need to replace libpulseaudio completely. + + This derivation is a reimplementation of pressureaudio in pure + nix. + + You can simply override libpulseaudio with this and most + packages would just work. + ''; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e5a97490add..2757411679b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -489,6 +489,8 @@ with pkgs; apulse = callPackage ../misc/apulse { }; + libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix { }; + archivemount = callPackage ../tools/filesystems/archivemount { }; arandr = callPackage ../tools/X11/arandr { }; |