aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix122
1 files changed, 122 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
new file mode 100644
index 000000000000..401ab39bca36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
@@ -0,0 +1,122 @@
+{ stdenv
+, lib
+, fetchurl
+, alsaLib
+, dbus
+, glib
+, json_c
+, libical
+, pkgconfig
+, python3
+, readline
+, systemd
+, udev
+}: let
+ pythonPath = with python3.pkgs; [
+ dbus-python
+ pygobject3
+ recursivePthLoader
+ ];
+in stdenv.mkDerivation rec {
+ pname = "bluez";
+ version = "5.54";
+
+ src = fetchurl {
+ url = "mirror://kernel/linux/bluetooth/${pname}-${version}.tar.xz";
+ sha256 = "1p2ncvjz6alr9n3l5wvq2arqgc7xjs6dqyar1l9jp0z8cfgapkb8";
+ };
+
+ buildInputs = [
+ alsaLib
+ dbus
+ glib
+ json_c
+ libical
+ python3
+ readline
+ udev
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ python3.pkgs.wrapPython
+ ];
+
+ outputs = [ "out" "dev" ] ++ lib.optional doCheck "test";
+
+ postPatch = ''
+ substituteInPlace tools/hid2hci.rules \
+ --replace /sbin/udevadm ${systemd}/bin/udevadm \
+ --replace "hid2hci " "$out/lib/udev/hid2hci "
+ '';
+
+ configureFlags = [
+ "--localstatedir=/var"
+ "--enable-library"
+ "--enable-cups"
+ "--enable-pie"
+ "--with-dbusconfdir=${placeholder "out"}/share"
+ "--with-dbussystembusdir=${placeholder "out"}/share/dbus-1/system-services"
+ "--with-dbussessionbusdir=${placeholder "out"}/share/dbus-1/services"
+ "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
+ "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
+ "--with-udevdir=${placeholder "out"}/lib/udev"
+ "--enable-health"
+ "--enable-mesh"
+ "--enable-midi"
+ "--enable-nfc"
+ "--enable-sap"
+ "--enable-sixaxis"
+ "--enable-wiimote"
+ ];
+
+ # Work around `make install' trying to create /var/lib/bluetooth.
+ installFlags = [ "statedir=$(TMPDIR)/var/lib/bluetooth" ];
+
+ makeFlags = [ "rulesdir=${placeholder "out"}/lib/udev/rules.d" ];
+
+ doCheck = stdenv.hostPlatform.isx86_64;
+
+ postInstall = lib.optionalString doCheck ''
+ mkdir -p $test/{bin,test}
+ cp -a test $test
+ pushd $test/test
+ for a in \
+ simple-agent \
+ test-adapter \
+ test-device \
+ test-thermometer \
+ list-devices \
+ monitor-bluetooth \
+ ; do
+ ln -s ../test/$a $test/bin/bluez-$a
+ done
+ popd
+ wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}"
+ '' + ''
+ # for bluez4 compatibility for NixOS
+ mkdir $out/sbin
+ ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
+ ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
+
+ # Add extra configuration
+ mkdir $out/etc/bluetooth
+ ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
+
+ # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez
+ for files in `find tools/ -type f -perm -755`; do
+ filename=$(basename $files)
+ install -Dm755 tools/$filename $out/bin/$filename
+ done
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Bluetooth support for Linux";
+ homepage = "http://www.bluez.org/";
+ license = with licenses; [ gpl2 lgpl21 ];
+ platforms = platforms.linux;
+ repositories.git = "https://git.kernel.org/pub/scm/bluetooth/bluez.git";
+ };
+}