[bug#77069] gnu: Add apulse.

Message ID 9c0d589567233208b07c6cba030fda5aa83d408c.1742215393.git.janneke@gnu.org
State New
Headers
Series [bug#77069] gnu: Add apulse. |

Commit Message

Janneke Nieuwenhuizen March 17, 2025, 12:43 p.m. UTC
  * gnu/packages/pulseaudio.scm (apulse): New variable.

Change-Id: I3ff6c9b42896d0ae6bfa708a6d8568034e876b7c
---
 gnu/packages/pulseaudio.scm | 38 +++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)


base-commit: 98be320183579b3d09cf4059e86a9781485628b4
  

Patch

diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 855ccf5da7e..7315bef579a 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -16,6 +16,7 @@ 
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -522,3 +523,40 @@  (define-public noisetorch
 input to torch the sound of your mechanical keyboard, computer fans, trains
 and the likes.")
     (license l:gpl3)))
+
+(define-public apulse
+  (package
+    (name "apulse")
+    (version "0.1.13")
+    (home-page "https://github.com/i-rinat/apulse")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1p6fh6ah5v3qz7dxhcsixx38bxg44ypbim4m03bxk3ls5i9xslmn"))))
+    (arguments
+     (list #:tests? #f                  ;no tests
+           #:configure-flags
+           ;; Ensure the RUNPATH contains the .../lib/apulse directory.
+           #~(list (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/apulse:"))))
+    (native-inputs (list pkg-config))
+    (inputs (list alsa-lib glib))
+    (build-system cmake-build-system)
+    (synopsis "PulseAudio emulation for ALSA")
+    (description " Apulse provides an alternative partial implementation of
+the PulseAudio API.  It consists of a loader script and a number of shared
+libraries with the same names as from original PulseAudio, so applications
+could dynamically load them and think they are talking to PulseAudio.
+
+Internally, no separate sound mixing daemon is used.  Instead, apulse relies
+on ALSA's dmix, dsnoop, and plug plugins to handle multiple sound sources and
+capture streams running at the same time.  dmix plugin muxes multiple playback
+streams; dsnoop plugin allow multiple applications to capture from a single
+microphone; and plug plugin transparently converts audio between various
+sample formats, sample rates and channel numbers.")
+    (license l:expat)))