[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