%define major 3 %define libname %mklibname %{name} %{major} %define devname %mklibname %{name} -d Summary: Official Linux Bluetooth protocol stack Name: bluez Version: 5.50 Release: 5 License: GPLv2+ Group: Communications Url: http://www.bluez.org/ Source0: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.xz Source1: pand.conf Source2: dund.conf Source3: hidd.conf Source4: rfcomm.conf Source5: 97-bluetooth.rules Source10: bluez-uinput.modules ## Ubuntu patches Patch0: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch # Non-upstream Patch1: bluez-5.50-allow-using-obexd-without-systemd-in-the-user-sessio.patch Patch2: 0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch BuildRequires: bison BuildRequires: flex BuildRequires: cups-devel BuildRequires: elfutils-devel BuildRequires: readline-devel BuildRequires: sbc-devel BuildRequires: speexdsp-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(libcap-ng) BuildRequires: pkgconfig(libical) BuildRequires: pkgconfig(libusb) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(udev) >= 186 Requires(pre): rpm-helper Suggests: obex-data-server Obsoletes: bluez-alsa < 5.0 Obsoletes: bluez-gstreamer < 5.0 %description These are the official Bluetooth communication libraries for Linux. %files %{_bindir}/ciptool %{_bindir}/bccmd %{_bindir}/bluemoon %{_bindir}/bluetoothctl %{_bindir}/btattach %{_bindir}/btmon %{_bindir}/hciattach %{_bindir}/hciconfig %{_bindir}/hcidump %{_bindir}/hcitool %{_bindir}/hex2hcd %{_bindir}/l2ping %{_bindir}/mpris-proxy %{_bindir}/rfcomm %{_bindir}/sdptool %{_libexecdir}/bluetooth/bluetoothd %{_libexecdir}/bluetooth/obexd %{_unitdir}/bluetooth-logger.service %{_unitdir}/bluetooth.service %{_unitdir}/dbus-org.bluez.service %{_userunitdir}/obex.service %{_mandir}/man1/bccmd.1* %{_mandir}/man1/btattach.1* %{_mandir}/man1/ciptool.1* %{_mandir}/man1/hciattach.1* %{_mandir}/man1/hciconfig.1* %{_mandir}/man1/hcitool.1* %{_mandir}/man1/hcidump.1* %{_mandir}/man1/l2ping.1* %{_mandir}/man1/rctest.1* %{_mandir}/man1/rfcomm.1* %{_mandir}/man1/sdptool.1* %{_mandir}/man8/* %config(noreplace) %{_sysconfdir}/sysconfig/* %config(noreplace) %{_sysconfdir}/dbus-1/system.d/*.conf %config(noreplace) %{_sysconfdir}/bluetooth %{_datadir}/dbus-1/system-services/org.bluez.service %{_datadir}/dbus-1/services/org.bluez.obex.service %{_localstatedir}/lib/bluetooth %dir %{_libdir}/bluetooth %{_libdir}/bluetooth/btmon-logger %dir %{_libdir}/bluetooth/plugins %{_libdir}/bluetooth/plugins/audio.a2dp.default.so %{_libdir}/bluetooth/plugins/audio.sco.default.so %{_libdir}/bluetooth/plugins/bluetooth.default.so %{_libdir}/bluetooth/plugins/sixaxis.so %{_udevrulesdir}/97-bluetooth.rules %post %_post_service bluetooth %postun %_preun_service bluetooth #---------------------------------------------------------------------------- %package cups Summary: CUPS printer backend for Bluetooth printers Group: System/Servers Requires: cups %description cups This package contains the CUPS backend for Bluetooth printers. %files cups %{_libdir}/cups/backend/bluetooth #---------------------------------------------------------------------------- %package -n %{libname} Summary: Official Linux Bluetooth protocol stack Group: System/Libraries %description -n %{libname} These are the official Bluetooth communication libraries for Linux. %files -n %{libname} %{_libdir}/libbluetooth.so.%{major}* #---------------------------------------------------------------------------- %package -n %{devname} Summary: Headers for developing programs that will use %{name} Group: Development/C++ Requires: %{libname} = %{EVRD} Provides: %{name}-devel = %{EVRD} %description -n %{devname} This package contains the headers that programmers will need to develop applications which will use libraries from %{name}. %files -n %{devname} %doc AUTHORS ChangeLog README %dir %{_includedir}/bluetooth %{_includedir}/bluetooth/*.h %{_libdir}/*.so %{_libdir}/pkgconfig/bluez.pc #---------------------------------------------------------------------------- %package hid2hci Summary: Put HID proxying bluetooth HCI's into HCI mode Group: Communications Requires(post): udev %description hid2hci Most allinone PC's and bluetooth keyboard / mouse sets which include a bluetooth dongle, ship with a so called HID proxying bluetooth HCI. The HID proxying makes the keyboard / mouse show up as regular USB HID devices (after connecting using the connect button on the device + keyboard), which makes them work without requiring any manual configuration. The bluez-hid2hci package contains the hid2hci utility and udev rules to automatically switch supported Bluetooth devices into regular HCI mode. Install this package if you want to use the bluetooth function of the HCI with other bluetooth devices like for example a mobile phone. Note that after installing this package you will first need to pair your bluetooth keyboard and mouse with the bluetooth adapter before you can use them again. Since you cannot use your bluetooth keyboard and mouse until they are paired, this will require the use of a regular (wired) USB keyboard and mouse. %files hid2hci /lib/udev/hid2hci %{_mandir}/man1/hid2hci.1* /lib/udev/rules.d/97-hid2hci.rules %post hid2hci %{_bindir}/udevadm trigger --subsystem-match=usb #---------------------------------------------------------------------------- %package test Summary: Tools for testing of various Bluetooth-functions Group: System/Servers Requires: python-dbus Requires: python-gobject %description test Contains a few tools for testing various bluetooth functions. The BLUETOOTH trademarks are owned by Bluetooth SIG, Inc., U.S.A. %files test %{_bindir}/simple-agent %{_bindir}/l2test %{_bindir}/rctest %{_bindir}/test-* #---------------------------------------------------------------------------- %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 libtoolize -f -c autoreconf -fi %build %configure2_5x \ --prefix=/usr \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --enable-sixaxis \ --enable-udev \ --enable-backtrace \ --enable-battery \ --enable-deprecated \ --enable-deviceinfo \ --enable-testing \ --enable-library \ --enable-usb \ --enable-threads \ --enable-tools \ --enable-monitor \ --enable-obex \ --enable-client \ --enable-systemd \ --with-systemdsystemunitdir=%{_unitdir} \ --with-systemduserunitdir=%{_userunitdir} \ --with-udevdir=/lib/udev \ --enable-datafiles \ --enable-experimental \ --enable-nfc \ --enable-sap \ --enable-android \ --enable-midi \ --enable-logger \ --enable-network \ --enable-input \ --enable-health %make %install %makeinstall_std rulesdir=%{_sysconfdir}/udev/rules.d udevdir=/lib/udev mkdir -p %{buildroot}%{_sysconfdir}/bluetooth echo "1234" > %{buildroot}%{_sysconfdir}/bluetooth/pin chmod 600 %{buildroot}%{_sysconfdir}/bluetooth/pin install -m644 %{SOURCE1} -D %{buildroot}%{_sysconfdir}/sysconfig/pand install -m644 %{SOURCE2} -D %{buildroot}%{_sysconfdir}/sysconfig/dund install -m644 %{SOURCE3} -D %{buildroot}%{_sysconfdir}/sysconfig/hidd install -m644 %{SOURCE4} -D %{buildroot}%{_sysconfdir}/sysconfig/rfcomm cp test/test-* %{buildroot}%{_bindir} cp test/simple-agent %{buildroot}%{_bindir}/simple-agent rm %{buildroot}%{_sysconfdir}/udev/rules.d/*.rules install -p -m644 tools/hid2hci.rules -D %{buildroot}/lib/udev/rules.d/97-hid2hci.rules install -m644 %{SOURCE5} -D %{buildroot}%{_udevrulesdir}/97-bluetooth.rules sed s,"/usr/bin/bluetoothd","%{_libexecdir}/bluetooth/bluetoothd",g -i %{buildroot}%{_udevrulesdir}/97-bluetooth.rules #install more config files install -m0644 profiles/network/network.conf %{buildroot}%{_sysconfdir}/bluetooth/ install -m0644 src/main.conf %{buildroot}%{_sysconfdir}/bluetooth/ install -m0644 profiles/input/input.conf %{buildroot}%{_sysconfdir}/bluetooth/ install -d -m0755 %{buildroot}%{_localstatedir}/lib/bluetooth ln -s bluetooth.service %{buildroot}%{_unitdir}/dbus-org.bluez.service sed 's|#AutoEnable=false|AutoEnable=true|' -i %{buildroot}%{_sysconfdir}/bluetooth/main.conf