From 94bbe7db22675e67386fe046eaa3d3d9d58e233a Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Mon, 18 Sep 2017 20:25:02 +0200 Subject: bluez4: remove, unused and probably vulnerable --- pkgs/os-specific/linux/bluez/bluez5.nix | 91 -------------------------------- pkgs/os-specific/linux/bluez/default.nix | 86 +++++++++++++++++++++--------- pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 63 insertions(+), 118 deletions(-) delete mode 100644 pkgs/os-specific/linux/bluez/bluez5.nix (limited to 'pkgs') diff --git a/pkgs/os-specific/linux/bluez/bluez5.nix b/pkgs/os-specific/linux/bluez/bluez5.nix deleted file mode 100644 index f0a59f36e43..00000000000 --- a/pkgs/os-specific/linux/bluez/bluez5.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib, - pythonPackages, readline, libsndfile, udev, libical, - systemd, enableWiimote ? false }: - -assert stdenv.isLinux; - -stdenv.mkDerivation rec { - name = "bluez-5.47"; - - src = fetchurl { - url = "mirror://kernel/linux/bluetooth/${name}.tar.xz"; - sha256 = "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg"; - }; - - pythonPath = with pythonPackages; - [ dbus pygobject2 pygobject3 recursivePthLoader ]; - - buildInputs = - [ pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython - readline libsndfile udev libical - # Disables GStreamer; not clear what it gains us other than a - # zillion extra dependencies. - # gstreamer gst-plugins-base - ]; - - outputs = [ "out" "dev" "test" ]; - - patches = [ ./bluez-5.37-obexd_without_systemd-1.patch ]; - - preConfigure = '' - substituteInPlace tools/hid2hci.rules --replace /sbin/udevadm ${systemd}/bin/udevadm - substituteInPlace tools/hid2hci.rules --replace "hid2hci " "$out/lib/udev/hid2hci " - ''; - - configureFlags = [ - "--localstatedir=/var" - "--enable-library" - "--enable-cups" - "--enable-pie" - "--with-dbusconfdir=$(out)/etc" - "--with-dbussystembusdir=$(out)/share/dbus-1/system-services" - "--with-dbussessionbusdir=$(out)/share/dbus-1/services" - "--with-systemdsystemunitdir=$(out)/etc/systemd/system" - "--with-systemduserunitdir=$(out)/etc/systemd/user" - "--with-udevdir=$(out)/lib/udev" - ] ++ - stdenv.lib.optional enableWiimote [ "--enable-wiimote" ]; - - # Work around `make install' trying to create /var/lib/bluetooth. - installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth"; - - makeFlags = "rulesdir=$(out)/lib/udev/rules.d"; - - # FIXME: Move these into a separate package to prevent Bluez from - # depending on Python etc. - postInstall = '' - mkdir -p $test/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 $out/bin/bluez-$a - done - popd - wrapPythonProgramsIn $test/test "$test/test $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 - ''; - - enableParallelBuilding = true; - - meta = with stdenv.lib; { - homepage = http://www.bluez.org/; - repositories.git = https://git.kernel.org/pub/scm/bluetooth/bluez.git; - description = "Bluetooth support for Linux"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix index 20b8d01db2d..f0a59f36e43 100644 --- a/pkgs/os-specific/linux/bluez/default.nix +++ b/pkgs/os-specific/linux/bluez/default.nix @@ -1,53 +1,91 @@ -{ stdenv, fetchurl, pkgconfig, dbus, glib, libusb, alsaLib, pythonPackages, makeWrapper -, readline, libsndfile }: +{ stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib, + pythonPackages, readline, libsndfile, udev, libical, + systemd, enableWiimote ? false }: assert stdenv.isLinux; -let - inherit (pythonPackages) python; - pythonpath = "${pythonPackages.dbus-python}/lib/${python.libPrefix}/site-packages:" - + "${pythonPackages.pygobject2}/lib/${python.libPrefix}/site-packages"; -in stdenv.mkDerivation rec { - name = "bluez-4.101"; - +stdenv.mkDerivation rec { + name = "bluez-5.47"; + src = fetchurl { - url = "mirror://kernel/linux/bluetooth/${name}.tar.gz"; - sha256 = "11vldy255zkmmpj0g0a1m6dy9bzsmyd7vxy02cdfdw79ml888wsr"; + url = "mirror://kernel/linux/bluetooth/${name}.tar.xz"; + sha256 = "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg"; }; + pythonPath = with pythonPackages; + [ dbus pygobject2 pygobject3 recursivePthLoader ]; + buildInputs = - [ pkgconfig dbus glib libusb alsaLib python makeWrapper - readline libsndfile + [ pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython + readline libsndfile udev libical # Disables GStreamer; not clear what it gains us other than a # zillion extra dependencies. - # gstreamer gst-plugins-base + # gstreamer gst-plugins-base ]; + outputs = [ "out" "dev" "test" ]; + + patches = [ ./bluez-5.37-obexd_without_systemd-1.patch ]; + + preConfigure = '' + substituteInPlace tools/hid2hci.rules --replace /sbin/udevadm ${systemd}/bin/udevadm + substituteInPlace tools/hid2hci.rules --replace "hid2hci " "$out/lib/udev/hid2hci " + ''; + configureFlags = [ "--localstatedir=/var" + "--enable-library" "--enable-cups" - "--with-systemdunitdir=$(out)/etc/systemd/system" - ]; + "--enable-pie" + "--with-dbusconfdir=$(out)/etc" + "--with-dbussystembusdir=$(out)/share/dbus-1/system-services" + "--with-dbussessionbusdir=$(out)/share/dbus-1/services" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-systemduserunitdir=$(out)/etc/systemd/user" + "--with-udevdir=$(out)/lib/udev" + ] ++ + stdenv.lib.optional enableWiimote [ "--enable-wiimote" ]; # Work around `make install' trying to create /var/lib/bluetooth. installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth"; makeFlags = "rulesdir=$(out)/lib/udev/rules.d"; - /* !!! Move these into a separate package to prevent Bluez from - depending on Python etc. */ + # FIXME: Move these into a separate package to prevent Bluez from + # depending on Python etc. postInstall = '' - pushd test - for a in simple-agent test-adapter test-device test-input; do - cp $a $out/bin/bluez-$a - wrapProgram $out/bin/bluez-$a --prefix PYTHONPATH : ${pythonpath} + mkdir -p $test/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 $out/bin/bluez-$a done popd + wrapPythonProgramsIn $test/test "$test/test $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 ''; - meta = { + enableParallelBuilding = true; + + meta = with stdenv.lib; { homepage = http://www.bluez.org/; + repositories.git = https://git.kernel.org/pub/scm/bluetooth/bluez.git; description = "Bluetooth support for Linux"; - platforms = stdenv.lib.platforms.linux; + platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42d7cde5225..06f577bd929 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11924,9 +11924,7 @@ with pkgs; blktrace = callPackage ../os-specific/linux/blktrace { }; - bluez5 = callPackage ../os-specific/linux/bluez/bluez5.nix { }; - - bluez4 = callPackage ../os-specific/linux/bluez { }; + bluez5 = callPackage ../os-specific/linux/bluez { }; # Needed for LibreOffice bluez5_28 = lowPrio (callPackage ../os-specific/linux/bluez/bluez5_28.nix { }); -- cgit 1.4.1