[PATCH] Add bluez-alsa.

  • Done
  • quality assurance status badge
Details
3 participants
  • Leo Famulari
  • Ludovic Courtès
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Ricardo Wurmus
Severity
normal

Debbugs page

Ricardo Wurmus wrote 7 years ago
(address . guix-patches@gnu.org)
87tvx63eix.fsf@elephly.net
This patch series adds bluez-alsa, an ALSA plugin for bluetooth playback
without pulseaudio.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
Ricardo Wurmus wrote 7 years ago
[PATCH 2/4] gnu: Add bctoolbox.
(address . 29561@debbugs.gnu.org)(name . Ricardo Wurmus)(address . rekado@elephly.net)
20171204114643.31690-2-rekado@elephly.net
* gnu/packages/telephony.scm (bctoolbox): New variable.
---
gnu/packages/telephony.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 5df5e9e4a..6fd40d617 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Francesco Frassinelli <fraph24@gmail.com>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages linux)
@@ -247,6 +249,29 @@ and a supporting cryptographic kernel.")
(home-page "https://github.com/cisco/libsrtp")
(license license:bsd-3)))
+(define-public bctoolbox
+ (package
+ (name "bctoolbox")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5"))))
+ (build-system gnu-build-system)
+ (arguments '(#:make-flags '("CFLAGS=-fPIC")))
+ (native-inputs
+ `(("cunit" ,cunit)))
+ (inputs
+ `(("mbedtls" ,mbedtls-apache)))
+ (home-page "https://www.linphone.org")
+ (synopsis "Utilities library for linphone software")
+ (description "BCtoolbox is a utilities library used by Belledonne
+Communications softwares like linphone.")
+ (license license:gpl2+)))
+
(define-public libiax2
(let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201"))
;; This is the commit used by the Ring Project.
--
2.15.0
Ricardo Wurmus wrote 7 years ago
[PATCH 4/4] gnu: Add bluez-alsa.
(address . 29561@debbugs.gnu.org)(name . Ricardo Wurmus)(address . rekado@elephly.net)
20171204114643.31690-4-rekado@elephly.net
* gnu/packages/audio.scm (bluez-alsa): New variable.
---
gnu/packages/audio.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (76 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8e0ad0a87..df7031f54 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -63,6 +63,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages libbsd)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages mp3) ;taglib
@@ -72,6 +73,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages vim) ;xxd
@@ -3028,6 +3030,53 @@ mixers.")
(define-public python2-pyalsaaudio
(package-with-python2 python-pyalsaaudio))
+(define-public bluez-alsa
+ (package
+ (name "bluez-alsa")
+ (version "1.2.0")
+ (source (origin
+ ;; The tarballs are mere snapshots and don't contain a
+ ;; bootstrapped build system.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Arkq/bluez-alsa.git")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'bootstrap
+ (lambda _
+ (zero? (system* "autoreconf" "-vif")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("bluez" ,bluez)
+ ("glib" ,glib)
+ ("libbsd" ,libbsd)
+ ("ncurses" ,ncurses)
+ ("ortp" ,ortp)
+ ("sbc" ,sbc)))
+ (home-page "https://github.com/Arkq/bluez-alsa")
+ (synopsis "Bluetooth ALSA backend")
+ (description "This project is a rebirth of a direct integration between
+Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed
+in favor of 3rd party audio applications. From now on, Bluez acts as a
+middleware between an audio application, which implements Bluetooth audio
+profile, and a Bluetooth audio device. BlueALSA registers all known Bluetooth
+audio profiles in Bluez, so in theory every Bluetooth device (with audio
+capabilities) can be connected. In order to access the audio stream, one has
+to connect to the ALSA PCM device called @code{bluealsa}. The device is based
+on the ALSA software PCM plugin.")
+ (license license:expat)))
+
(define-public snd
(package
(name "snd")
--
2.15.0
Ricardo Wurmus wrote 7 years ago
[PATCH 3/4] gnu: Add ortp.
(address . 29561@debbugs.gnu.org)(name . Ricardo Wurmus)(address . rekado@elephly.net)
20171204114643.31690-3-rekado@elephly.net
* gnu/packages/telephony.scm (ortp): New variable.
---
gnu/packages/telephony.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 6fd40d617..cf1ab93c3 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -272,6 +272,29 @@ and a supporting cryptographic kernel.")
Communications softwares like linphone.")
(license license:gpl2+)))
+(define-public ortp
+ (package
+ (name "ortp")
+ (version "0.27.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.savannah.nongnu.org/"
+ "releases/linphone/ortp/sources/ortp-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("bctoolbox" ,bctoolbox)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://linphone.org/")
+ (synopsis "Implementation of the Real-time transport protocol")
+ (description "oRTP is a library implementing the Real-time transport
+protocol (RFC 3550).")
+ (license license:lgpl2.1+)))
+
(define-public libiax2
(let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201"))
;; This is the commit used by the Ring Project.
--
2.15.0
Ricardo Wurmus wrote 7 years ago
[PATCH 1/4] gnu: mbedtls-apache: Build shared library.
(address . 29561@debbugs.gnu.org)(name . Ricardo Wurmus)(address . rekado@elephly.net)
20171204114643.31690-1-rekado@elephly.net
* gnu/packages/tls.scm (mbedtls-apache)[arguments]: Enable building of shared
library.
---
gnu/packages/tls.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (16 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 23b5cc993..d8cc1ccbc 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -815,6 +815,9 @@ then ported to the GNU / Linux environment.")
(base32
"11wnj34rfqxjggmdgf042i49lr6civgbqwv2p7p8bn6k2919vg4r"))))
(build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "-DUSE_SHARED_MBEDTLS_LIBRARY=ON")))
(native-inputs
`(("perl" ,perl)))
(synopsis "Small TLS library")
--
2.15.0
Leo Famulari wrote 7 years ago
Re: [bug#29561] [PATCH 4/4] gnu: Add bluez-alsa.
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 29561@debbugs.gnu.org)
20171204190931.GB28066@jasmine.lan
On Mon, Dec 04, 2017 at 12:46:43PM +0100, Ricardo Wurmus wrote:
Toggle quote (10 lines)
> * gnu/packages/audio.scm (bluez-alsa): New variable.

> + (build-system gnu-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (add-before 'configure 'bootstrap
> + (lambda _
> + (zero? (system* "autoreconf" "-vif")))))))

I know that we are to do these bootstrapping phases after the unpack
phase, rather than before the configure phase, as described here:


Otherwise these patches LGTM.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAlolnWsACgkQJkb6MLrK
fwh48hAAqs9p5oP4gYv5D0Iutnzuy7Sx/1NhpqrUehTghjkv/B2actrFKehWmL3q
171BgtgjiLkNOKZXz5FmP7LxevbHEOVIk5yG9o8w1Pd9P9PzLqEsmM3DpxQakRA3
Zn56ndQH469GbI6HROgMlSEQ7bvVyZgyTWHC7ks3MahgWlwMbOP3v3YkicMUp7mj
nl79CoR2Su+tnFvUv2+y/O8zUxzCNmlTev3qQwXPJ/b1ejAl7zeqJdpeMMSkt/sO
OUEMUcMeoMMw3ytuPGwvqK7gpaAoaCUKLufjLUwRp2K0UxP1Kp76obXGEez7IyIp
QVB2fwFmzmDuOCbAwI/vAWC9OdxyyuRjydvwiCLSwdIAcFv2xGZ8OUk/Y7Ihuhen
Zs5sw74v+C6BezaC26sbxiL+nhOEe9vAzE8ypOmdkt3DGFKOh7SOma2yaEyPS+tj
vDm7F9RJf/JSFlUup+tF7ecKdlnPZKepLlicYj7qF4N2smqXySgrFTFT0TFglVnI
3QBq9t+rWmZRbJA81+VZHix00BkBp2J7Cir11raoEOJ6J0RILNLzPQu4EZ7Vn3zY
rulpJNDWkxZMQPNHa0pKp2pSUNIEVCdQcI0GVr9rTOBjngc0cL6/Hzy1aWOGYB1J
5ldJX5Emhe6lTTZr3eKyA3IQ0RZCXUsvm/STJ1fTil5fI+kV5Kg=
=k594
-----END PGP SIGNATURE-----


Ricardo Wurmus wrote 7 years ago
(name . Leo Famulari)(address . leo@famulari.name)(address . 29561-done@debbugs.gnu.org)
87mv2y2rp4.fsf@elephly.net
Leo Famulari <leo@famulari.name> writes:

Toggle quote (16 lines)
> On Mon, Dec 04, 2017 at 12:46:43PM +0100, Ricardo Wurmus wrote:
>> * gnu/packages/audio.scm (bluez-alsa): New variable.
>
>> + (build-system gnu-build-system)
>> + (arguments
>> + `(#:phases
>> + (modify-phases %standard-phases
>> + (add-before 'configure 'bootstrap
>> + (lambda _
>> + (zero? (system* "autoreconf" "-vif")))))))
>
> I know that we are to do these bootstrapping phases after the unpack
> phase, rather than before the configure phase, as described here:
>
> https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00101.html

Ah, thanks for the reminder and for the review.
I’ll push these patches after making this correction.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
Closed
Ludovic Courtès wrote 7 years ago
Re: [bug#29561] [PATCH 2/4] gnu: Add bctoolbox.
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 29561@debbugs.gnu.org)
87o9n936rs.fsf@gnu.org
Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (2 lines)
> * gnu/packages/telephony.scm (bctoolbox): New variable.

[...]

Toggle quote (2 lines)
> + (synopsis "Utilities library for linphone software")

“Linphone” should be capitalized.

Also, I suspect it should be just “Linphone” or “the Linphone program”,
no?

Toggle quote (2 lines)
> + (description "BCtoolbox is a utilities library used by Belledonne
> +Communications softwares like linphone.")
^
Singular.

It would be nice to expound a bit, if possible.

Otherwise LGTM.

Thanks!

Ludo’.
Ludovic Courtès wrote 7 years ago
Re: [bug#29561] [PATCH 3/4] gnu: Add ortp.
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 29561@debbugs.gnu.org)
87k1xx36ow.fsf@gnu.org
Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (2 lines)
> * gnu/packages/telephony.scm (ortp): New variable.

[...]

Toggle quote (4 lines)
> + "releases/linphone/ortp/sources/ortp-"
> + version ".tar.gz"))

Should be mirror://savannah.

Toggle quote (5 lines)
> + (home-page "https://linphone.org/")
> + (synopsis "Implementation of the Real-time transport protocol")
> + (description "oRTP is a library implementing the Real-time transport
> +protocol (RFC 3550).")

Perhaps add something like “It is used by applications such as FOO and
BAR to broadcast stuff in real time.” :-)

Otherwise LGTM, thanks!

Ludo’.
?
Your comment

This issue is archived.

To comment on this conversation send an email to 29561@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 29561
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help