From a2eb81e9b3a0aaee001f0950465e5d6145b6e04a Mon Sep 17 00:00:00 2001 From: root Date: Mon, 6 Aug 2012 16:25:12 +0400 Subject: [PATCH] test patches from ubuntu --- 03-Fix-return-code-of-hid2hci.patch | 55 +++++++++++++++++++++++++++++ 04-Fix-disabled-after-resume.patch | 14 ++++++++ bluez.spec | 6 +++- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 03-Fix-return-code-of-hid2hci.patch create mode 100644 04-Fix-disabled-after-resume.patch diff --git a/03-Fix-return-code-of-hid2hci.patch b/03-Fix-return-code-of-hid2hci.patch new file mode 100644 index 0000000..aada910 --- /dev/null +++ b/03-Fix-return-code-of-hid2hci.patch @@ -0,0 +1,55 @@ +diff -Nur bluez-4.93.orig/tools/hid2hci.c bluez-4.93/tools/hid2hci.c +--- bluez-4.93.orig/tools/hid2hci.c 2011-05-03 12:20:36.000000000 +0400 ++++ bluez-4.93/tools/hid2hci.c 2012-08-06 16:23:21.211963738 +0400 +@@ -240,7 +240,7 @@ + enum mode mode = HCI; + const char *devpath = NULL; + int err = -1; +- int rc = 1; ++ int rc = 0; + + for (;;) { + int option; +@@ -288,13 +288,16 @@ + } + + udev = udev_new(); +- if (udev == NULL) +- goto exit; ++ if (udev == NULL) { ++ rc = errno; ++ goto exit; ++ } + + snprintf(syspath, sizeof(syspath), "%s/%s", udev_get_sys_path(udev), devpath); + udev_dev = udev_device_new_from_syspath(udev, syspath); + if (udev_dev == NULL) { + fprintf(stderr, "error: could not find '%s'\n", devpath); ++ rc = errno; + goto exit; + } + +@@ -312,6 +315,7 @@ + dev = udev_device_get_parent_with_subsystem_devtype(dev, "usb", "usb_device"); + if (dev == NULL) { + fprintf(stderr, "error: could not find usb_device for '%s'\n", devpath); ++ rc = errno; + goto exit; + } + } +@@ -320,6 +324,7 @@ + if (handle == NULL) { + fprintf(stderr, "error: unable to handle '%s'\n", + udev_device_get_syspath(dev)); ++ rc = errno; + goto exit; + } + err = usb_switch(handle, mode); +@@ -331,6 +336,7 @@ + device = udev_device_get_devnode(udev_dev); + if (device == NULL) { + fprintf(stderr, "error: could not find hiddev device node\n"); ++ rc = errno; + goto exit; + } + err = hid_switch_logitech(device); diff --git a/04-Fix-disabled-after-resume.patch b/04-Fix-disabled-after-resume.patch new file mode 100644 index 0000000..26990c3 --- /dev/null +++ b/04-Fix-disabled-after-resume.patch @@ -0,0 +1,14 @@ +diff -Nur bluez-4.93.orig/plugins/hciops.c bluez-4.93/plugins/hciops.c +--- bluez-4.93.orig/plugins/hciops.c 2011-05-03 12:20:36.000000000 +0400 ++++ bluez-4.93/plugins/hciops.c 2012-08-06 16:14:37.216366594 +0400 +@@ -2571,8 +2571,8 @@ + hci_send_cmd(dev->sk, OGF_HOST_CTL, OCF_READ_STORED_LINK_KEY, + READ_STORED_LINK_KEY_CP_SIZE, &cp); + +- if (!dev->pending) +- init_adapter(index); ++ DBG("dev->pending=%d", dev->pending); ++ init_adapter(index); + } + + static void init_pending(int index) diff --git a/bluez.spec b/bluez.spec index df38bfa..b8361eb 100644 --- a/bluez.spec +++ b/bluez.spec @@ -7,7 +7,7 @@ Name: bluez Summary: Official Linux Bluetooth protocol stack Version: 4.93 -Release: %mkrel 2 +Release: %mkrel 3 License: GPLv2+ Group: Communications BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot @@ -29,6 +29,8 @@ Source9: rfcomm.conf Patch100: bluez-4.79-fail_udev_event_on_error.patch # (bor) based on http://article.gmane.org/gmane.linux.bluez.kernel/6479 Patch101: bluez-4.93-systemd_support.patch +Patch102: 03-Fix-return-code-of-hid2hci.patch +Patch103: 04-Fix-disabled-after-resume.patch BuildRequires: dbus-devel BuildRequires: flex @@ -208,6 +210,8 @@ applications which will use libraries from %{name}. %setup -q -n %name-%{version} %patch100 -p1 -b .fail_event %patch101 -p1 -b .systemd +%patch102 -p1 +%patch103 -p1 %build