[arch-commits] Commit in bluez/trunk (PKGBUILD fix-apple-keyboard.patch)
Andrea Scarpino
andrea at archlinux.org
Thu Nov 18 21:08:52 UTC 2010
Date: Thursday, November 18, 2010 @ 16:08:51
Author: andrea
Revision: 99856
upgpkg: bluez 4.79-2
fix Apple keyboards (FS#21696)
Added:
bluez/trunk/fix-apple-keyboard.patch
Modified:
bluez/trunk/PKGBUILD
--------------------------+
PKGBUILD | 12 +++++-
fix-apple-keyboard.patch | 79 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 88 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-11-18 20:54:25 UTC (rev 99855)
+++ PKGBUILD 2010-11-18 21:08:51 UTC (rev 99856)
@@ -4,7 +4,7 @@
pkgname=bluez
pkgver=4.79
-pkgrel=1
+pkgrel=2
pkgdesc="Libraries and tools for the Bluetooth protocol stack"
url="http://www.bluez.org/"
arch=('i686' 'x86_64')
@@ -26,13 +26,19 @@
etc/conf.d/bluetooth)
source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.bz2"
'bluetooth.conf.d'
- 'rc.bluetooth')
+ 'rc.bluetooth'
+ 'fix-apple-keyboard.patch')
md5sums=('2f96efd23e15acaeebf5f0085b19582d'
'8f60a5eb9d84b9c64c478d63e1c24b10'
- 'ca4c39eb4bb201bd2eacad01492cd735')
+ 'ca4c39eb4bb201bd2eacad01492cd735'
+ 'a1b9182ff8454e752dedc1159053df32')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Already fixed upstream
+ patch -Np1 -i ${srcdir}/fix-apple-keyboard.patch
+
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
Added: fix-apple-keyboard.patch
===================================================================
--- fix-apple-keyboard.patch (rev 0)
+++ fix-apple-keyboard.patch 2010-11-18 21:08:51 UTC (rev 99856)
@@ -0,0 +1,79 @@
+diff --git a/plugins/hciops.c b/plugins/hciops.c
+index 9d25558..8feb392 100644
+--- a/plugins/hciops.c
++++ b/plugins/hciops.c
+@@ -338,31 +338,37 @@ static int hciops_encrypt_link(int index, bdaddr_t *dst, bt_hci_result_t cb,
+ uint32_t link_mode;
+ uint16_t handle;
+
++ dd = hci_open_dev(index);
++ if (dd < 0)
++ return -errno;
++
+ cr = g_malloc0(sizeof(*cr) + sizeof(struct hci_conn_info));
+ cr->type = ACL_LINK;
+ bacpy(&cr->bdaddr, dst);
+
+- err = ioctl(SK(index), HCIGETCONNINFO, cr);
++ err = ioctl(dd, HCIGETCONNINFO, cr);
+ link_mode = cr->conn_info->link_mode;
+ handle = cr->conn_info->handle;
+ g_free(cr);
+
+- if (err < 0)
+- return -errno;
++ if (err < 0) {
++ err = -errno;
++ goto fail;
++ }
+
+- if (link_mode & HCI_LM_ENCRYPT)
+- return -EALREADY;
++ if (link_mode & HCI_LM_ENCRYPT) {
++ err = -EALREADY;
++ goto fail;
++ }
+
+ memset(&cp, 0, sizeof(cp));
+ cp.handle = htobs(handle);
+
+- if (hci_send_cmd(SK(index), OGF_LINK_CTL, OCF_AUTH_REQUESTED,
+- AUTH_REQUESTED_CP_SIZE, &cp) < 0)
+- return -errno;
+-
+- dd = dup(SK(index));
+- if (dd < 0)
+- return -errno;
++ if (hci_send_cmd(dd, OGF_LINK_CTL, OCF_AUTH_REQUESTED,
++ AUTH_REQUESTED_CP_SIZE, &cp) < 0) {
++ err = -errno;
++ goto fail;
++ }
+
+ cmd = g_new0(struct hci_cmd_data, 1);
+ cmd->handle = handle;
+@@ -379,11 +385,10 @@ static int hciops_encrypt_link(int index, bdaddr_t *dst, bt_hci_result_t cb,
+ if (setsockopt(dd, SOL_HCI, HCI_FILTER, &nf, sizeof(nf)) < 0) {
+ err = -errno;
+ g_free(cmd);
+- close(dd);
+- return -err;
++ goto fail;
+ }
+
+- io = g_io_channel_unix_new(dup(SK(index)));
++ io = g_io_channel_unix_new(dd);
+ g_io_channel_set_close_on_unref(io, FALSE);
+ g_io_add_watch_full(io, G_PRIORITY_DEFAULT,
+ G_IO_HUP | G_IO_ERR | G_IO_NVAL | G_IO_IN,
+@@ -391,6 +396,10 @@ static int hciops_encrypt_link(int index, bdaddr_t *dst, bt_hci_result_t cb,
+ g_io_channel_unref(io);
+
+ return 0;
++
++fail:
++ close(dd);
++ return err;
+ }
+
+ /* End async HCI command handling */
More information about the arch-commits
mailing list