stdenv: fix documentation for stripAllFlags and stripDebugFlags (#352127)
[NixPkgs.git] / pkgs / by-name / bl / bluez-alsa / package.nix
blob8b144b85c7817e7e0440ae1a996a855cc70b592a
2   lib,
3   stdenv,
4   aacSupport ? true,
5   alsa-lib,
6   autoreconfHook,
7   bluez,
8   dbus,
9   fdk_aac,
10   fetchFromGitHub,
11   gitUpdater,
12   glib,
13   libbsd,
14   ncurses,
15   pkg-config,
16   readline,
17   sbc,
20 stdenv.mkDerivation (finalAttrs: {
21   pname = "bluez-alsa";
22   version = "4.1.1";
24   src = fetchFromGitHub {
25     owner = "Arkq";
26     repo = "bluez-alsa";
27     rev = "v${finalAttrs.version}";
28     hash = "sha256-oGaYiSkOhqfjUl+mHTs3gqFcxli3cgkRtT6tbjy3ht0=";
29   };
31   nativeBuildInputs = [
32     autoreconfHook
33     pkg-config
34   ];
36   buildInputs =
37     [
38       alsa-lib
39       bluez
40       glib
41       sbc
42       dbus
43       readline
44       libbsd
45       ncurses
46     ]
47     ++ lib.optionals aacSupport [
48       fdk_aac
49     ];
51   configureFlags = [
52     (lib.enableFeature aacSupport "aac")
53     (lib.enableFeature true "hcitop")
54     (lib.enableFeature true "rfcomm")
55     (lib.withFeatureAs true "alsaplugindir" "${placeholder "out"}/lib/alsa-lib")
56     (lib.withFeatureAs true "dbusconfdir" "${placeholder "out"}/share/dbus-1/system.d")
57   ];
59   passthru.updateScript = gitUpdater { };
61   meta = {
62     homepage = "https://github.com/Arkq/bluez-alsa";
63     description = "Bluez 5 Bluetooth Audio ALSA Backend";
64     longDescription = ''
65       Bluez-ALSA (BlueALSA) is an ALSA backend for Bluez 5 audio interface.
66       Bluez-ALSA registers all Bluetooth devices with audio profiles in Bluez
67       under a virtual ALSA PCM device called `bluealsa` that supports both
68       playback and capture.
70       Some backstory: Bluez 5 removed built-in support for ALSA in favor of a
71       generic interface for 3rd party appliations. Thereafter, PulseAudio
72       implemented a backend for that interface and became the only way to get
73       Bluetooth audio with Bluez 5. Users prefering ALSA stayed on Bluez 4.
74       However, Bluez 4 eventually became deprecated.
76       This package is a rebirth of a direct interface between ALSA and Bluez 5,
77       that, unlike PulseAudio, provides KISS near-metal-like experience. It is
78       not possible to run BluezALSA and PulseAudio Bluetooth at the same time
79       due to limitations in Bluez, but it is possible to run PulseAudio over
80       BluezALSA if you disable `bluetooth-discover` and `bluez5-discover`
81       modules in PA and configure it to play/capture sound over `bluealsa` PCM.
82     '';
83     license = with lib.licenses; [ mit ];
84     mainProgram = "bluealsa";
85     maintainers = with lib.maintainers; [ oxij ];
86     platforms = lib.platforms.linux;
87   };
89 # TODO: aptxSupport