diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
commit | c4625b175f8200f643fd6e11010932ea44c78433 (patch) | |
tree | bce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/os-specific/linux/bluez/default.nix | |
parent | 49f735974dd103039ddc4cb576bb76555164a9e7 (diff) | |
parent | d661aa56a8843e991261510c1bb28fdc2f6975ae (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.nix | 122 |
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"; + }; +} |