diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix index 4a8cd86b0b1..d7ca8a43179 100644 --- a/nixos/modules/services/hardware/bluetooth.nix +++ b/nixos/modules/services/hardware/bluetooth.nix @@ -3,8 +3,8 @@ with lib; let - bluez-bluetooth = pkgs.bluez; cfg = config.hardware.bluetooth; + bluez-bluetooth = cfg.package; in { @@ -21,6 +21,16 @@ in { description = "Whether to power up the default Bluetooth controller on boot."; }; + package = mkOption { + type = types.package; + default = pkgs.bluez; + defaultText = "pkgs.bluez"; + example = "pkgs.bluez.override { enableMidi = true; }"; + description = '' + Which BlueZ package to use. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix index a0c240dfd46..d4595d73d94 100644 --- a/pkgs/os-specific/linux/bluez/default.nix +++ b/pkgs/os-specific/linux/bluez/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib, pythonPackages, readline, udev, libical, - systemd, enableWiimote ? false }: + systemd, enableWiimote ? false, enableMidi ? false }: assert stdenv.isLinux; @@ -40,8 +40,8 @@ stdenv.mkDerivation rec { "--with-systemdsystemunitdir=$(out)/etc/systemd/system" "--with-systemduserunitdir=$(out)/etc/systemd/user" "--with-udevdir=$(out)/lib/udev" - ] ++ - stdenv.lib.optional enableWiimote [ "--enable-wiimote" ]; + ] ++ stdenv.lib.optional enableWiimote [ "--enable-wiimote" ] + ++ stdenv.lib.optional enableMidi [ "--enable-midi" ]; # Work around `make install' trying to create /var/lib/bluetooth. installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth";