[bluez/rawhide/user/lkundrak/bluez-5.1-1] Update to 5.1

Lubomir Rintel lkundrak at fedoraproject.org
Sun Jan 13 11:09:21 UTC 2013


commit 3dc44cb7a580af5ee0478603fec7e679427b0ebf
Author: Lubomir Rintel <lkundrak at v3.sk>
Date:   Sun Jan 13 00:02:08 2013 +0100

    Update to 5.1

 .gitignore                                         |    1 +
 0001-Activate-the-Socket-Mobile-CF-kit.patch       |   25 -
 0001-Add-sixaxis-cable-pairing-plugin.patch        |  546 +-------------------
 0001-Allow-PulseAudio-to-connect-by-default.patch  |   16 +-
 ...Gateway-and-Source-audio-profiles-by-defa.patch |   46 --
 ...ix-GDBus-flags-after-conversion-to-macros.patch |   84 ---
 ...-Permit-concurrent-use-of-AG-and-HF-roles.patch |   51 --
 ...itute-systemd-unit-directories-if-overrid.patch |   38 ++
 ...nge-subsystem-in-udev-rule-from-usb-to-us.patch |   32 --
 ...Add-helper-function-to-request-disconnect.patch |   37 --
 ...ot-adding-watches-when-io-channel-is-conn.patch |  101 ----
 0001-network-NULL-dereference-fix.patch            |   34 --
 ...ork-fix-network-Connect-method-parameters.patch |   27 -
 ...-Logitech-diNovo-Edge-keyboard-firmware-i.patch |   16 +-
 ...-Disconnect-from-PS3-remote-after-10-mins.patch |  118 -----
 ...fakehid-Use-the-same-constant-as-declared.patch |   26 -
 bluez.spec                                         |  195 +++-----
 dund.conf                                          |    1 -
 dund.init                                          |   70 ---
 pand.conf                                          |    2 -
 pand.init                                          |   73 ---
 rfcomm.init                                        |   65 ---
 sources                                            |    2 +-
 23 files changed, 136 insertions(+), 1470 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index de4e737..1a41ffa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 /bluez-4.*.tar.gz
+/bluez-5.1.tar.xz
diff --git a/0001-Add-sixaxis-cable-pairing-plugin.patch b/0001-Add-sixaxis-cable-pairing-plugin.patch
index b20c9c8..c156374 100644
--- a/0001-Add-sixaxis-cable-pairing-plugin.patch
+++ b/0001-Add-sixaxis-cable-pairing-plugin.patch
@@ -1,4 +1,4 @@
-From 64f9449656dbbb718d53a54ed8e7904e289280ec Mon Sep 17 00:00:00 2001
+From a3123cb2b2741ce309573adbff5b87ea613e0717 Mon Sep 17 00:00:00 2001
 From: Bastien Nocera <hadess at hadess.net>
 Date: Fri, 30 Dec 2011 12:34:29 +0100
 Subject: [PATCH] Add sixaxis cable-pairing plugin
@@ -9,546 +9,42 @@ When a Sixaxis device is plugged in, events are filtered, and
 the device is selected, poked around to set the default Bluetooth
 address, and added to the database of the current default adapter.
 ---
- Makefile.am     |    9 +-
- acinclude.m4    |   16 +++
- configure.ac    |    1 +
- plugins/cable.c |  382 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/adapter.c   |   19 +++
- src/adapter.h   |    3 +
- 6 files changed, 428 insertions(+), 2 deletions(-)
- create mode 100644 plugins/cable.c
+ src/adapter.c |    7 +++++++
+ src/adapter.h |    3 +++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
 
-diff --git a/Makefile.am b/Makefile.am
-index 53fcbe9..f831a72 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -238,6 +238,11 @@ builtin_sources += thermometer/main.c \
- endif
- 
- 
-+if CABLE
-+builtin_modules += cable
-+builtin_sources += plugins/cable.c
-+endif
-+
- builtin_modules += hciops mgmtops
- builtin_sources += plugins/hciops.c plugins/mgmtops.c
- 
-@@ -306,7 +311,7 @@ src_bluetoothd_SOURCES = $(gdbus_sources) $(builtin_sources) \
- 			src/event.h src/event.c \
- 			src/oob.h src/oob.c src/eir.h src/eir.c
- src_bluetoothd_LDADD = lib/libbluetooth-private.la @GLIB_LIBS@ @DBUS_LIBS@ \
--								-ldl -lrt
-+								@CABLE_LIBS@ -ldl -lrt
- src_bluetoothd_LDFLAGS = $(AM_LDFLAGS) -Wl,--export-dynamic \
- 				-Wl,--version-script=$(srcdir)/src/bluetooth.ver
- 
-@@ -428,7 +433,7 @@ EXTRA_DIST += doc/manager-api.txt \
- 
- AM_YFLAGS = -d
- 
--AM_CFLAGS += @DBUS_CFLAGS@ @GLIB_CFLAGS@
-+AM_CFLAGS += @DBUS_CFLAGS@ @GLIB_CFLAGS@ @CABLE_CFLAGS@
- 
- INCLUDES = -I$(builddir)/lib -I$(builddir)/src -I$(srcdir)/src \
- 			-I$(srcdir)/audio -I$(srcdir)/sbc -I$(srcdir)/gdbus \
-diff --git a/acinclude.m4 b/acinclude.m4
-index 6505ad3..3f59989 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -139,6 +139,12 @@ AC_DEFUN([AC_PATH_UDEV], [
- 	AC_SUBST(UDEV_LIBS)
- ])
- 
-+AC_DEFUN([AC_PATH_CABLE], [
-+	PKG_CHECK_MODULES(CABLE, libudev libusb-1.0, cable_found=yes, cable_found=no)
-+	AC_SUBST(CABLE_CFLAGS)
-+	AC_SUBST(CABLE_LIBS)
-+])
-+
- AC_DEFUN([AC_PATH_SNDFILE], [
- 	PKG_CHECK_MODULES(SNDFILE, sndfile, sndfile_found=yes, sndfile_found=no)
- 	AC_SUBST(SNDFILE_CFLAGS)
-@@ -176,6 +182,7 @@ AC_DEFUN([AC_ARG_BLUEZ], [
- 	sndfile_enable=${sndfile_found}
- 	hal_enable=no
- 	usb_enable=${usb_found}
-+	cable_enable=${cable_found}
- 	alsa_enable=${alsa_found}
- 	gstreamer_enable=${gstreamer_found}
- 	audio_enable=yes
-@@ -265,6 +272,10 @@ AC_DEFUN([AC_ARG_BLUEZ], [
- 		usb_enable=${enableval}
- 	])
- 
-+	AC_ARG_ENABLE(cable, AC_HELP_STRING([--enable-cable], [enable DeviceKit support]), [
-+		cable_enable=${enableval}
-+	])
-+
- 	AC_ARG_ENABLE(tools, AC_HELP_STRING([--enable-tools], [install Bluetooth utilities]), [
- 		tools_enable=${enableval}
- 	])
-@@ -366,6 +377,10 @@ AC_DEFUN([AC_ARG_BLUEZ], [
- 		AC_DEFINE(HAVE_LIBUSB, 1, [Define to 1 if you have USB library.])
- 	fi
- 
-+	if (test "${cable_enable}" = "yes" && test "${cable_found}" = "yes"); then
-+		AC_DEFINE(HAVE_CABLE, 1, [Define to 1 if you have libcable.])
-+	fi
-+
- 	AM_CONDITIONAL(SNDFILE, test "${sndfile_enable}" = "yes" && test "${sndfile_found}" = "yes")
- 	AM_CONDITIONAL(USB, test "${usb_enable}" = "yes" && test "${usb_found}" = "yes")
- 	AM_CONDITIONAL(SBC, test "${alsa_enable}" = "yes" || test "${gstreamer_enable}" = "yes" ||
-@@ -398,4 +413,5 @@ AC_DEFUN([AC_ARG_BLUEZ], [
- 	AM_CONDITIONAL(DBUSOOBPLUGIN, test "${dbusoob_enable}" = "yes")
- 	AM_CONDITIONAL(WIIMOTEPLUGIN, test "${wiimote_enable}" = "yes")
- 	AM_CONDITIONAL(GATTMODULES, test "${gatt_enable}" = "yes")
-+	AM_CONDITIONAL(CABLE, test "${cable_enable}" = "yes" && test "${cable_found}" = "yes")
- ])
-diff --git a/configure.ac b/configure.ac
-index 48b181e..45a4b15 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -46,6 +46,7 @@ AC_PATH_GSTREAMER
- AC_PATH_USB
- AC_PATH_UDEV
- AC_PATH_SNDFILE
-+AC_PATH_CABLE
- AC_PATH_OUI
- AC_PATH_READLINE
- AC_PATH_CHECK
-diff --git a/plugins/cable.c b/plugins/cable.c
-new file mode 100644
-index 0000000..fe758db
---- /dev/null
-+++ b/plugins/cable.c
-@@ -0,0 +1,382 @@
-+/*
-+ *
-+ *  BlueZ - Bluetooth protocol stack for Linux
-+ *
-+ *  Copyright (C) 2009  Bastien Nocera <hadess at hadess.net>
-+ *
-+ *
-+ *  This program is free software; you can redistribute it and/or modify
-+ *  it under the terms of the GNU General Public License as published by
-+ *  the Free Software Foundation; either version 2 of the License, or
-+ *  (at your option) any later version.
-+ *
-+ *  This program is distributed in the hope that it will be useful,
-+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *  GNU General Public License for more details.
-+ *
-+ *  You should have received a copy of the GNU General Public License
-+ *  along with this program; if not, write to the Free Software
-+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-+ *
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <glib.h>
-+#define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE 1
-+#include <libudev.h>
-+#include <dbus/dbus.h>
-+#include <bluetooth/bluetooth.h>
-+#include <bluetooth/sdp.h>
-+#include <libusb.h>
-+
-+#include "plugin.h"
-+#include "log.h"
-+
-+#include "adapter.h"
-+#include "manager.h"
-+#include "device.h"
-+
-+#include "storage.h"
-+#include "sdp_lib.h"
-+
-+/* Vendor and product ID for the Sixaxis PS3 controller */
-+#define VENDOR 0x054c
-+#define PRODUCT 0x0268
-+#define SIXAXIS_PNP_RECORD "3601920900000A000100000900013503191124090004350D35061901000900113503190011090006350909656E09006A0901000900093508350619112409010009000D350F350D350619010009001335031900110901002513576972656C65737320436F6E74726F6C6C65720901012513576972656C65737320436F6E74726F6C6C6572090102251B536F6E7920436F6D707574657220456E7465727461696E6D656E740902000901000902010901000902020800090203082109020428010902052801090206359A35980822259405010904A101A102850175089501150026FF00810375019513150025013500450105091901291381027501950D0600FF8103150026FF0005010901A10075089504350046FF0009300931093209358102C0050175089527090181027508953009019102750895300901B102C0A1028502750895300901B102C0A10285EE750895300901B102C0A10285EF750895300901B102C0C0090207350835060904090901000902082800090209280109020A280109020B09010009020C093E8009020D280009020E2800"
-+#define HID_UUID "00001124-0000-1000-8000-00805f9b34fb"
-+
-+static struct btd_device *create_cable_association(DBusConnection *conn,
-+						    struct btd_adapter *adapter,
-+						    const char *name,
-+						    const char *address,
-+						    guint32 vendor_id,
-+						    guint32 product_id,
-+						    const char *pnp_record)
-+{
-+	sdp_record_t *rec;
-+	struct btd_device *device;
-+	bdaddr_t src, dst;
-+	char srcaddr[18];
-+
-+	device = adapter_find_device(adapter, address);
-+	if (device == NULL) {
-+		device = device_create(conn, adapter, address, BDADDR_BREDR);
-+		if (device != NULL)
-+			adapter_create_device_for_device(conn, adapter, device);
-+	}
-+	if (device != NULL) {
-+		device_set_temporary(device, FALSE);
-+		device_set_name(device, name);
-+	}
-+
-+	str2ba(address, &dst);
-+	adapter_get_address(adapter, &src);
-+	ba2str(&src, srcaddr);
-+
-+	write_device_name(&dst, &src, (char *) name);
-+
-+	/* Store the device's SDP record */
-+	rec = record_from_string(pnp_record);
-+	store_record(srcaddr, address, rec);
-+	sdp_record_free(rec);
-+	/* Set the device id */
-+	store_device_id(srcaddr, address, 0xffff, vendor_id, product_id, 0);
-+	/* Don't write a profile, it will be updated when the device connects */
-+
-+	write_trust(srcaddr, address, "[all]", TRUE);
-+
-+	return device;
-+}
-+
-+static char *get_bdaddr(libusb_device_handle *devh, int itfnum)
-+{
-+	unsigned char msg[17];
-+	char *address;
-+	int res;
-+
-+	res = libusb_control_transfer(devh,
-+				      LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE,
-+				      0x01, 0x03f2, itfnum,
-+				      (void*) msg, sizeof(msg),
-+				      5000);
-+
-+	if (res < 0) {
-+		DBG("Getting the device Bluetooth address failed");
-+		return NULL;
-+	}
-+
-+	address = g_strdup_printf("%02X:%02X:%02X:%02X:%02X:%02X",
-+				  msg[4], msg[5], msg[6], msg[7], msg[8], msg[9]);
-+
-+	DBG("Device Bluetooth address: %s\n", address);
-+
-+	return address;
-+}
-+
-+static gboolean set_master_bdaddr(libusb_device_handle *devh, int itfnum, char *host)
-+{
-+	unsigned char msg[8];
-+	int mac[6];
-+	int res;
-+
-+	if (sscanf(host, "%X:%X:%X:%X:%X:%X",
-+		   &mac[0],&mac[1],&mac[2],&mac[3],&mac[4],&mac[5]) != 6) {
-+		return FALSE;
-+	}
-+
-+	msg[0] = 0x01;
-+	msg[1] = 0x00;
-+	msg[2] = mac[0];
-+	msg[3] = mac[1];
-+	msg[4] = mac[2];
-+	msg[5] = mac[3];
-+	msg[6] = mac[4];
-+	msg[7] = mac[5];
-+
-+	res = libusb_control_transfer(devh,
-+				      LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE,
-+				      0x09, 0x03f5, itfnum,
-+				      (void*) msg, sizeof(msg),
-+				      5000);
-+
-+	if (res < 0) {
-+		DBG("Setting the master Bluetooth address failed");
-+		return FALSE;
-+	}
-+
-+	return TRUE;
-+}
-+static void handle_usb_device(struct btd_adapter *adapter,
-+			      libusb_device *dev,
-+			      struct libusb_config_descriptor *cfg,
-+			      int itfnum,
-+			      const struct libusb_interface_descriptor *alt)
-+{
-+	DBusConnection *conn;
-+	libusb_device_handle *devh;
-+	char *device_bdaddr;
-+	char adapter_bdaddr[18];
-+	struct btd_device *device;
-+	bdaddr_t dst;
-+
-+	device_bdaddr = NULL;
-+	conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-+	if (conn == NULL) {
-+		DBG("Failed to get on the bus");
-+		return;
-+	}
-+
-+	if (libusb_open(dev, &devh) < 0) {
-+		DBG("Can't open device");
-+		goto bail;
-+	}
-+	libusb_detach_kernel_driver(devh, itfnum);
-+
-+	if (libusb_claim_interface(devh, itfnum) < 0) {
-+		DBG("Can't claim interface %d", itfnum);
-+		goto bail;
-+	}
-+
-+	device_bdaddr = get_bdaddr(devh, itfnum);
-+	if (device_bdaddr == NULL) {
-+		DBG("Failed to get the Bluetooth address from the device");
-+		goto bail;
-+	}
-+
-+	device = create_cable_association(conn,
-+					  adapter,
-+					  "PLAYSTATION(R)3 Controller",
-+					  device_bdaddr,
-+					  VENDOR, PRODUCT, SIXAXIS_PNP_RECORD);
-+	btd_device_add_uuid(device, HID_UUID);
-+
-+	adapter_get_address(adapter, &dst);
-+	ba2str(&dst, adapter_bdaddr);
-+	DBG("Adapter bdaddr %s", adapter_bdaddr);
-+
-+	if (set_master_bdaddr(devh, itfnum, adapter_bdaddr) == FALSE) {
-+		DBG("Failed to set the master Bluetooth address");
-+		goto bail;
-+	}
-+
-+bail:
-+	dbus_connection_unref(conn);
-+	g_free(device_bdaddr);
-+	libusb_release_interface(devh, itfnum);
-+	/* We ignore errors from the reattach, as there's nothing we
-+	 * can do about it */
-+	libusb_attach_kernel_driver(devh, itfnum);
-+	if (devh != NULL)
-+		libusb_close(devh);
-+}
-+
-+static void handle_device_plug(struct udev_device *udevice)
-+{
-+	struct btd_adapter *adapter;
-+	guint i;
-+
-+	libusb_device **list, *usbdev;
-+	ssize_t num_devices;
-+	struct libusb_device_descriptor desc;
-+	guint8 j;
-+
-+	if (g_strcmp0(udev_device_get_property_value(udevice, "ID_SERIAL"),
-+		      "Sony_PLAYSTATION_R_3_Controller") != 0)
-+		return;
-+	/* Don't look at events with an associated driver */
-+	if (udev_device_get_property_value(udevice, "ID_USB_DRIVER") != NULL)
-+		return;
-+
-+	DBG("Found Sixaxis device");
-+
-+	/* Look for the default adapter */
-+	adapter = manager_get_default_adapter();
-+	if (adapter == NULL)
-+		return;
-+
-+	/* Look for the USB device */
-+	libusb_init(NULL);
-+
-+	num_devices = libusb_get_device_list(NULL, &list);
-+	if (num_devices < 0) {
-+		DBG("libusb_get_device_list failed");
-+		return;
-+	}
-+
-+	usbdev = NULL;
-+	for (i = 0; i < num_devices; i++) {
-+		char *path;
-+
-+		path = g_strdup_printf("%s/%03d/%03d", "/dev/bus/usb",
-+				       libusb_get_bus_number(list[i]),
-+				       libusb_get_device_address(list[i]));
-+		if (g_strcmp0(path, udev_device_get_devnode(udevice)) == 0) {
-+			g_free(path);
-+			usbdev = libusb_ref_device(list[i]);
-+			break;
-+		}
-+		g_free(path);
-+	}
-+
-+	libusb_free_device_list(list, TRUE);
-+	if (usbdev == NULL) {
-+		DBG("Found a Sixaxis, but couldn't find it via libusb");
-+		goto out;
-+	}
-+
-+	if (libusb_get_device_descriptor(usbdev, &desc) < 0) {
-+		DBG("libusb_get_device_descriptor() failed");
-+		goto out;
-+	}
-+
-+	/* Look for the interface number that interests us */
-+	for (j = 0; j < desc.bNumConfigurations; j++) {
-+		struct libusb_config_descriptor *config;
-+		guint8 k;
-+
-+		if (libusb_get_config_descriptor(usbdev, j, &config) < 0) {
-+			DBG("Failed to get config descriptor %d", j);
-+			continue;
-+		}
-+
-+		for (k = 0; k < config->bNumInterfaces; k++) {
-+			const struct libusb_interface *itf = &config->interface[k];
-+			int l;
-+
-+			for (l = 0; l < itf->num_altsetting ; l++) {
-+				struct libusb_interface_descriptor alt;
-+
-+				alt = itf->altsetting[l];
-+				if (alt.bInterfaceClass == 3) {
-+					handle_usb_device(adapter, usbdev, config, l, &alt);
-+				}
-+			}
-+		}
-+	}
-+
-+out:
-+	if (usbdev != NULL)
-+		libusb_unref_device(usbdev);
-+	libusb_exit(NULL);
-+}
-+
-+static gboolean device_event_idle(struct udev_device *udevice)
-+{
-+	handle_device_plug(udevice);
-+	udev_device_unref(udevice);
-+	return FALSE;
-+}
-+
-+static struct udev *ctx = NULL;
-+static struct udev_monitor *monitor = NULL;
-+static guint watch_id = 0;
-+
-+static gboolean
-+monitor_event(GIOChannel *source,
-+	      GIOCondition condition,
-+	      gpointer data)
-+{
-+	struct udev_device *udevice;
-+
-+	udevice = udev_monitor_receive_device(monitor);
-+	if (udevice == NULL)
-+		goto out;
-+	if (g_strcmp0(udev_device_get_action(udevice), "add") != 0)
-+		goto out;
-+
-+	g_timeout_add_seconds(1, (GSourceFunc) device_event_idle, udevice);
-+
-+out:
-+	return TRUE;
-+}
-+
-+
-+static int cable_init(void)
-+{
-+	GIOChannel *channel;
-+
-+	DBG("Setup cable plugin");
-+
-+	ctx = udev_new();
-+	monitor = udev_monitor_new_from_netlink(ctx, "udev");
-+	if (monitor == NULL) {
-+		error ("Could not get udev monitor");
-+		return -1;
-+	}
-+
-+	/* Listen for newly connected usb device */
-+	udev_monitor_filter_add_match_subsystem_devtype(monitor,
-+							"usb", NULL);
-+	udev_monitor_enable_receiving(monitor);
-+
-+	channel = g_io_channel_unix_new(udev_monitor_get_fd(monitor));
-+	watch_id = g_io_add_watch(channel, G_IO_IN, monitor_event, NULL);
-+	g_io_channel_unref(channel);
-+
-+	return 0;
-+}
-+
-+static void cable_exit(void)
-+{
-+	DBG("Cleanup cable plugin");
-+
-+	if (watch_id != 0) {
-+		g_source_remove(watch_id);
-+		watch_id = 0;
-+	}
-+	if (monitor != NULL) {
-+		udev_monitor_unref(monitor);
-+		monitor = NULL;
-+	}
-+	if (ctx != NULL) {
-+		udev_unref(ctx);
-+		ctx = NULL;
-+	}
-+}
-+
-+BLUETOOTH_PLUGIN_DEFINE(cable, VERSION,
-+			BLUETOOTH_PLUGIN_PRIORITY_DEFAULT, cable_init, cable_exit)
 diff --git a/src/adapter.c b/src/adapter.c
-index 6e04faf..0488891 100644
+index 8675648..d921890 100644
 --- a/src/adapter.c
 +++ b/src/adapter.c
-@@ -952,6 +952,25 @@ static struct btd_device *adapter_create_device(DBusConnection *conn,
- 	return device;
+@@ -1206,6 +1206,13 @@ static void service_auth_cancel(struct service_auth *auth)
+ 	g_free(auth);
  }
  
-+void adapter_create_device_for_device(DBusConnection *conn,
-+				      struct btd_adapter *adapter,
++void adapter_create_device_for_device(struct btd_adapter *adapter,
 +				      struct btd_device *device)
 +{
-+	const char *path;
-+
 +	device_set_temporary(device, TRUE);
-+
 +	adapter->devices = g_slist_append(adapter->devices, device);
-+
-+	path = device_get_path(device);
-+	g_dbus_emit_signal(conn, adapter->path,
-+			ADAPTER_INTERFACE, "DeviceCreated",
-+			DBUS_TYPE_OBJECT_PATH, &path,
-+			DBUS_TYPE_INVALID);
-+
-+	adapter_update_devices(adapter);
 +}
 +
- void adapter_remove_device(DBusConnection *conn, struct btd_adapter *adapter,
- 						struct btd_device *device,
+ static void adapter_remove_device(struct btd_adapter *adapter,
+ 						struct btd_device *dev,
  						gboolean remove_storage)
 diff --git a/src/adapter.h b/src/adapter.h
-index b7ea62b..ac0aa2e 100644
+index 5c53b4a..dba4ed9 100644
 --- a/src/adapter.h
 +++ b/src/adapter.h
-@@ -114,6 +114,9 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
- 					uint8_t *data, uint8_t data_len);
- void adapter_emit_device_found(struct btd_adapter *adapter,
- 						struct remote_dev_info *dev);
-+void adapter_create_device_for_device(DBusConnection *conn,
-+				      struct btd_adapter *adapter,
-+				      struct btd_device *device);
- void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode);
+@@ -95,6 +95,9 @@ sdp_list_t *btd_adapter_get_services(struct btd_adapter *adapter);
+ 
+ struct btd_device *adapter_find_device(struct btd_adapter *adapter, const char *dest);
+ 
++void adapter_create_device_for_device(struct btd_adapter *adapter,
++					struct btd_device *device);
++
+ const char *adapter_get_path(struct btd_adapter *adapter);
+ const bdaddr_t *adapter_get_address(struct btd_adapter *adapter);
  int adapter_set_name(struct btd_adapter *adapter, const char *name);
- void adapter_name_changed(struct btd_adapter *adapter, const char *name);
 -- 
-1.7.10.2
+1.7.1
 
diff --git a/0001-Allow-PulseAudio-to-connect-by-default.patch b/0001-Allow-PulseAudio-to-connect-by-default.patch
index e957ae1..1298545 100644
--- a/0001-Allow-PulseAudio-to-connect-by-default.patch
+++ b/0001-Allow-PulseAudio-to-connect-by-default.patch
@@ -1,17 +1,17 @@
-From dcbeaaa74020031741ad3727e651cdd2d00c773f Mon Sep 17 00:00:00 2001
+From b4d4723f3b68a9bb9f5db8fa07ad5f471c3ca35f Mon Sep 17 00:00:00 2001
 From: Luke Hutchison <luke.hutch at gmail.com>
 Date: Thu, 10 Jan 2013 09:13:19 +0100
 Subject: [PATCH] Allow PulseAudio to connect by default
 
 https://bugzilla.redhat.com/show_bug.cgi?id=874015#c0
 ---
- audio/audio.conf | 4 ++++
- 1 file changed, 4 insertions(+)
+ profiles/audio/audio.conf |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
 
-diff --git a/audio/audio.conf b/audio/audio.conf
-index fd6092a..9a80e63 100644
---- a/audio/audio.conf
-+++ b/audio/audio.conf
+diff --git a/profiles/audio/audio.conf b/profiles/audio/audio.conf
+index f556610..d5222a0 100644
+--- a/profiles/audio/audio.conf
++++ b/profiles/audio/audio.conf
 @@ -4,6 +4,10 @@
  # particular interface
  [General]
@@ -24,5 +24,5 @@ index fd6092a..9a80e63 100644
  #Master=true
  
 -- 
-1.8.0.1
+1.7.1
 
diff --git a/0001-build-Substitute-systemd-unit-directories-if-overrid.patch b/0001-build-Substitute-systemd-unit-directories-if-overrid.patch
new file mode 100644
index 0000000..2a8223b
--- /dev/null
+++ b/0001-build-Substitute-systemd-unit-directories-if-overrid.patch
@@ -0,0 +1,38 @@
+From 69e0abcb5b284ee90e588e5b2af27cef754628cb Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak at v3.sk>
+Date: Sat, 12 Jan 2013 22:13:36 +0100
+Subject: [PATCH] build: Substitute systemd unit directories if overriden by user
+
+Otherwise --with-systemdsystemunitdir and --with-systemduserunitdir would be
+effectively ignored.
+---
+ configure.ac |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 09e9d4a..514aa5a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -202,8 +202,8 @@ if (test "${enable_systemd}" != "no" && test -z "${path_systemunitdir}"); then
+ 		AC_MSG_ERROR([systemd system unit directory is required])
+ 	fi
+ 	AC_MSG_RESULT([${path_systemunitdir}])
+-	AC_SUBST(SYSTEMD_SYSTEMUNITDIR, [${path_systemunitdir}])
+ fi
++AC_SUBST(SYSTEMD_SYSTEMUNITDIR, [${path_systemunitdir}])
+ 
+ AC_ARG_WITH([systemduserunitdir],
+ 			AC_HELP_STRING([--with-systemduserunitdir=DIR],
+@@ -216,8 +216,8 @@ if (test "${enable_systemd}" != "no" && test -z "${path_userunitdir}"); then
+ 		AC_MSG_ERROR([systemd user unit directory is required])
+ 	fi
+ 	AC_MSG_RESULT([${path_userunitdir}])
+-	AC_SUBST(SYSTEMD_USERUNITDIR, [${path_userunitdir}])
+ fi
++AC_SUBST(SYSTEMD_USERUNITDIR, [${path_userunitdir}])
+ 
+ AC_ARG_ENABLE(datafiles, AC_HELP_STRING([--disable-datafiles],
+ 			[do not install configuration and data files]),
+-- 
+1.7.1
+
diff --git a/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch b/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
index 447e951..5ddf885 100644
--- a/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
+++ b/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
@@ -1,17 +1,17 @@
-From 3aca31788655582f3029b3c88ad6f468c4de07a2 Mon Sep 17 00:00:00 2001
+From aa73bf5039dfd2cf0a52dd6fd22501d955cc1a00 Mon Sep 17 00:00:00 2001
 From: Tommy <mesilliac at gmail.com>
 Date: Thu, 10 Jan 2013 09:18:43 +0100
 Subject: [PATCH] work around Logitech diNovo Edge keyboard firmware issue
 
 https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/269851
 ---
- scripts/bluetooth-hid2hci.rules | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
+ tools/hid2hci.rules |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
 
-diff --git a/scripts/bluetooth-hid2hci.rules b/scripts/bluetooth-hid2hci.rules
-index 0687c8a..2a571e5 100644
---- a/scripts/bluetooth-hid2hci.rules
-+++ b/scripts/bluetooth-hid2hci.rules
+diff --git a/tools/hid2hci.rules b/tools/hid2hci.rules
+index db6bb03..7db4572 100644
+--- a/tools/hid2hci.rules
++++ b/tools/hid2hci.rules
 @@ -11,7 +11,10 @@ ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProt
    RUN+="hid2hci --method=dell --devpath=%p", ENV{HID2HCI_SWITCH}="1"
  
@@ -25,5 +25,5 @@ index 0687c8a..2a571e5 100644
  
  ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
 -- 
-1.8.0.1
+1.7.1
 
diff --git a/bluez.spec b/bluez.spec
index 2f12b7c..29a9ce2 100644
--- a/bluez.spec
+++ b/bluez.spec
@@ -1,50 +1,33 @@
 Summary: Bluetooth utilities
 Name: bluez
-Version: 4.101
-Release: 5%{?dist}
+Version: 5.1
+Release: 1%{?dist}
 License: GPLv2+
 Group: Applications/System
 URL: http://www.bluez.org/
 
-Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz
+Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.xz
 Source1: bluez.gitignore
-Source3: dund.init
-Source4: dund.conf
-Source5: pand.init
-Source6: pand.conf
-Source7: rfcomm.init
 Source8: bluez-uinput.modules
 
-# https://bugzilla.redhat.com/show_bug.cgi?id=874015#c0
+## https://bugzilla.redhat.com/show_bug.cgi?id=874015#c0
 Patch0: 0001-Allow-PulseAudio-to-connect-by-default.patch
-# https://bugzilla.redhat.com/show_bug.cgi?id=877998
-Patch1: 0001-hid2hci-change-subsystem-in-udev-rule-from-usb-to-us.patch
-# https://bugzilla.redhat.com/show_bug.cgi?id=498756
-Patch4: 0001-Activate-the-Socket-Mobile-CF-kit.patch
-# http://thread.gmane.org/gmane.linux.bluez.kernel/2396
-Patch5: 0001-Add-sixaxis-cable-pairing-plugin.patch
-# PS3 BD Remote patches
-Patch6: 0001-input-Add-helper-function-to-request-disconnect.patch
-Patch7: 0002-fakehid-Disconnect-from-PS3-remote-after-10-mins.patch
-Patch8: 0003-fakehid-Use-the-same-constant-as-declared.patch
-# Upstream patches
-Patch9: 0001-audio-Permit-concurrent-use-of-AG-and-HF-roles.patch
-Patch10: 0001-Fix-GDBus-flags-after-conversion-to-macros.patch
-Patch11: 0001-input-Fix-not-adding-watches-when-io-channel-is-conn.patch
-Patch12: 0001-network-fix-network-Connect-method-parameters.patch
-Patch13: 0001-network-NULL-dereference-fix.patch
-# Ubuntu patches
-Patch14: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
-Patch15: 0001-Enable-the-Gateway-and-Source-audio-profiles-by-defa.patch
+Patch1: 0001-Add-sixaxis-cable-pairing-plugin.patch
+
+# http://marc.info/?l=linux-bluetooth&m=135807431503335&w=2
+Patch2: 0001-build-Substitute-systemd-unit-directories-if-overrid.patch
+
+## Ubuntu patches
+Patch3: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
 
 BuildRequires: git
 BuildRequires: flex
 BuildRequires: dbus-devel >= 0.90
-BuildRequires: libusb-devel, glib2-devel, alsa-lib-devel
-BuildRequires: gstreamer-plugins-base-devel, gstreamer-devel
-BuildRequires: libsndfile-devel
+BuildRequires: libusb-devel, glib2-devel
+#BuildRequires: libsndfile-devel
 BuildRequires: libcap-ng-devel
 BuildRequires: readline-devel
+BuildRequires: libical-devel
 # For cable pairing
 BuildRequires: systemd-devel
 # For cups
@@ -60,12 +43,13 @@ Requires: bluez-libs = %{version}-%{release}
 Requires: systemd
 Requires: dbus >= 0.60
 Requires: hwdata >= 0.215
-%ifnarch s390 s390x
-Requires: dbus-bluez-pin-helper
-%endif
 Requires(preun): /bin/systemctl
 Requires(post): /bin/systemctl
 
+Obsoletes: bluez-gstreamer < %{version}-%{release}
+Obsoletes: bluez-alsa < %{version}-%{release}
+Obsoletes: bluez-compat < %{version}-%{release}
+
 %description
 Utilities for use in Bluetooth applications:
 	- hcitool
@@ -73,6 +57,14 @@ Utilities for use in Bluetooth applications:
 	- hciconfig
 	- bluetoothd
 	- l2ping
+	- rfcomm
+	- sdptool
+	- bccmd
+	- bluetoothctl
+	- btmon
+	- hcidump
+	- l2test
+	- rctest
 	- start scripts (Red Hat)
 	- pcmcia configuration files
 
@@ -94,24 +86,6 @@ Group: System Environment/Daemons
 Requires: bluez-libs = %{version}-%{release}
 Requires: cups
 
-%package gstreamer
-Summary: GStreamer support for SBC audio format
-Group: System Environment/Daemons
-Requires: bluez-libs = %{version}-%{release}
-
-%package alsa
-Summary: ALSA support for Bluetooth audio devices
-Group: System Environment/Daemons
-Requires: bluez-libs = %{version}-%{release}
-
-%package compat
-Summary: Compatibility utilities for Bluetooth devices
-Group: System Environment/Daemons
-Requires: bluez-libs = %{version}-%{release}
-Requires: bluez = %{version}-%{release}
-Requires(preun): /sbin/chkconfig, /sbin/service
-Requires(post): /sbin/chkconfig, /sbin/service
-
 %package hid2hci
 Summary: Put HID proxying bluetooth HCI's into HCI mode
 Group: System Environment/Daemons
@@ -121,12 +95,6 @@ Requires: bluez = %{version}-%{release}
 %description cups
 This package contains the CUPS backend
 
-%description gstreamer
-This package contains gstreamer plugins for the Bluetooth SBC audio format
-
-%description alsa
-This package contains ALSA support for Bluetooth audio devices
-
 %description libs
 Libraries for use in Bluetooth applications.
 
@@ -134,10 +102,6 @@ Libraries for use in Bluetooth applications.
 bluez-libs-devel contains development libraries and headers for
 use in Bluetooth applications.
 
-%description compat
-This package contains compatibility utilities for Bluetooth devices.
-This includes hidd, dund and pand.
-
 %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.
@@ -174,24 +138,16 @@ git am -p1 %{patches} < /dev/null
 %build
 libtoolize -f -c
 autoreconf
-%configure --enable-cups --enable-dfutool --enable-tools --enable-bccmd --enable-gstreamer --enable-hidd --enable-pand --enable-dund --enable-hid2hci --with-ouifile=/usr/share/hwdata/oui.txt --with-systemdsystemunitdir=/lib/systemd/system --enable-wiimote
+%configure --enable-cups --enable-tools --enable-library \
+	--with-systemdsystemunitdir=/lib/systemd/system \
+	--with-systemduserunitdir=/lib/systemd/user
 make V=1
 
 %install
 make install DESTDIR=$RPM_BUILD_ROOT
 /sbin/ldconfig -n $RPM_BUILD_ROOT/%{_libdir}
 # Remove autocrap and libtool droppings
-rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la				\
-	$RPM_BUILD_ROOT/%{_libdir}/alsa-lib/*.la		\
-	$RPM_BUILD_ROOT/%{_libdir}/bluetooth/plugins/*.la	\
-	$RPM_BUILD_ROOT/%{_libdir}/gstreamer-0.10/*.la
-
-for a in dund pand rfcomm ; do
-	install -D -m0755 $RPM_SOURCE_DIR/$a.init $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/$a
-	if [ -e $RPM_SOURCE_DIR/$a.conf ] ; then
-		install -D -m0644 $RPM_SOURCE_DIR/$a.conf $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/$a
-	fi
-done
+rm $RPM_BUILD_ROOT/%{_libdir}/*.la
 
 # Remove the cups backend from libdir, and install it in /usr/lib whatever the install
 if test -d ${RPM_BUILD_ROOT}/usr/lib64/cups ; then
@@ -199,10 +155,8 @@ if test -d ${RPM_BUILD_ROOT}/usr/lib64/cups ; then
 	rm -rf ${RPM_BUILD_ROOT}%{_libdir}/cups
 fi
 
-rm -f ${RPM_BUILD_ROOT}/%{_sysconfdir}/udev/*.rules ${RPM_BUILD_ROOT}/lib/udev/rules.d/*.rules
-install -D -p -m0644 scripts/bluetooth-serial.rules ${RPM_BUILD_ROOT}/lib/udev/rules.d/97-bluetooth-serial.rules
-install -D -p -m0644 scripts/bluetooth-hid2hci.rules ${RPM_BUILD_ROOT}/lib/udev/rules.d/97-bluetooth-hid2hci.rules
-install -D -m0755 scripts/bluetooth_serial ${RPM_BUILD_ROOT}/lib/udev/bluetooth_serial
+rm -f ${RPM_BUILD_ROOT}/%{_sysconfdir}/udev/*.rules ${RPM_BUILD_ROOT}/usr/lib/udev/rules.d/*.rules
+install -D -p -m0644 tools/hid2hci.rules ${RPM_BUILD_ROOT}/lib/udev/rules.d/97-hid2hci.rules
 
 install -D -m0755 %{SOURCE8} $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/modules/bluez-uinput.modules
 
@@ -210,7 +164,8 @@ install -d -m0755 $RPM_BUILD_ROOT/%{_localstatedir}/lib/bluetooth
 
 mkdir -p $RPM_BUILD_ROOT/%{_libdir}/bluetooth/
 
-install -D -p -m0644 audio/audio.conf ${RPM_BUILD_ROOT}/etc/bluetooth/
+install -d -m0755 ${RPM_BUILD_ROOT}/etc/bluetooth/
+install -D -p -m0644 profiles/audio/audio.conf ${RPM_BUILD_ROOT}/etc/bluetooth/
 
 %post libs -p /sbin/ldconfig
 
@@ -236,58 +191,48 @@ fi
 %triggerun -- bluez < 4.94-4
 /bin/systemctl --no-reload enable bluetooth.service >/dev/null 2>&1 || :
 
-%post compat
-/sbin/chkconfig --add dund
-/sbin/chkconfig --add pand
-/sbin/chkconfig --add rfcomm
-if [ "$1" -ge "1" ]; then
-	/sbin/service dund condrestart >/dev/null 2>&1 || :
-	/sbin/service pand condrestart >/dev/null 2>&1 || :
-	/sbin/service rfcomm condrestart >/dev/null 2>&1 || :
-fi
-exit 0
-
-%preun compat
-if [ "$1" = "0" ]; then
-	/sbin/service dund stop >/dev/null 2>&1 || :
-	/sbin/service pand stop >/dev/null 2>&1 || :
-	/sbin/service rfcomm stop >/dev/null 2>&1 || :
-	/sbin/chkconfig --del dund
-	/sbin/chkconfig --del pand
-	/sbin/chkconfig --del rfcomm
-fi
-
 %post hid2hci
 /sbin/udevadm trigger --subsystem-match=usb
 
 %files
 %defattr(-,root,root,-)
 %{_bindir}/ciptool
-%{_bindir}/dfutool
 %{_bindir}/hcitool
 %{_bindir}/l2ping
 %{_bindir}/rfcomm
 %{_bindir}/sdptool
-%{_bindir}/gatttool
-%{_sbindir}/*
+%{_bindir}/bccmd
+%{_bindir}/bluetoothctl
+%{_bindir}/btmon
+%{_bindir}/hciattach
+%{_bindir}/hciconfig
+%{_bindir}/hcidump
+%{_bindir}/l2test
+%{_bindir}/rctest
 %{_mandir}/man1/ciptool.1.gz
-%{_mandir}/man1/dfutool.1.gz
 %{_mandir}/man1/hcitool.1.gz
 %{_mandir}/man1/rfcomm.1.gz
 %{_mandir}/man1/sdptool.1.gz
+%{_mandir}/man1/bccmd.1.*
+%{_mandir}/man1/hciattach.1.*
+%{_mandir}/man1/hciconfig.1.*
+%{_mandir}/man1/hcidump.1.*
+%{_mandir}/man1/l2ping.1.*
+%{_mandir}/man1/rctest.1.*
 %{_mandir}/man8/*
-%exclude %{_mandir}/man8/hid2hci.8*
 %dir %{_sysconfdir}/bluetooth/
-%config(noreplace) %{_sysconfdir}/bluetooth/main.conf
 %config(noreplace) %{_sysconfdir}/bluetooth/audio.conf
+%{_libexecdir}/bluetooth/bluetoothd
+%{_libexecdir}/bluetooth/obexd
+%exclude %{_mandir}/man1/hid2hci.1*
 %config(noreplace) %{_sysconfdir}/sysconfig/modules/bluez-uinput.modules
 %config %{_sysconfdir}/dbus-1/system.d/bluetooth.conf
 %{_libdir}/bluetooth/
-/lib/udev/bluetooth_serial
-/lib/udev/rules.d/97-bluetooth-serial.rules
 %{_localstatedir}/lib/bluetooth
 %{_datadir}/dbus-1/system-services/org.bluez.service
-/usr/lib/systemd/system/bluetooth.service
+%{_datadir}/dbus-1/services/org.bluez.obex.service
+/lib/systemd/system/bluetooth.service
+/lib/systemd/user/obex.service
 
 %files libs
 %defattr(-,root,root,-)
@@ -305,38 +250,16 @@ fi
 %defattr(-,root,root,-)
 %_cups_serverbin/backend/bluetooth
 
-%files gstreamer
-%defattr(-,root,root,-)
-%{_libdir}/gstreamer-*/*.so
-
-%files alsa
-%defattr(-,root,root,-)
-%{_libdir}/alsa-lib/*.so
-%{_datadir}/alsa/bluetooth.conf
-
-%files compat
-%defattr(-,root,root,-)
-%{_bindir}/dund
-%{_bindir}/pand
-%{_bindir}/hidd
-%config(noreplace) %{_sysconfdir}/bluetooth/rfcomm.conf
-%{_sysconfdir}/rc.d/init.d/dund
-%{_sysconfdir}/rc.d/init.d/rfcomm
-%{_sysconfdir}/rc.d/init.d/pand
-%config(noreplace) %{_sysconfdir}/sysconfig/dund
-%config(noreplace) %{_sysconfdir}/sysconfig/pand
-%{_mandir}/man1/dund.1.gz
-%{_mandir}/man1/hidd.1.gz
-%{_mandir}/man1/pand.1.gz
-
 %files hid2hci
 %defattr(-,root,root,-)
 /usr/lib/udev/hid2hci
-%{_mandir}/man8/hid2hci.8*
-/lib/udev/rules.d/97-bluetooth-hid2hci.rules
-%exclude /usr/lib/udev/rules.d/97-bluetooth-hid2hci.rules
+%{_mandir}/man1/hid2hci.1*
+/lib/udev/rules.d/97-hid2hci.rules
 
 %changelog
+* Sun Jan 13 2013 Lubomir Rintel <lkundrak at v3.sk> 5.1-1
+- Update to 5.1
+
 * Thu Jan 10 2013 Bastien Nocera <bnocera at redhat.com> 4.101-5
 - Use git to manage distro patches
 - Add numerous upstream and downstream patches (#892929)
diff --git a/sources b/sources
index 530d5c7..ae96aa5 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-fb42cb7038c380eb0e2fa208987c96ad  bluez-4.101.tar.gz
+4dafa523f776acf112f81aa216ff7509  bluez-5.1.tar.xz


More information about the scm-commits mailing list