diff --git a/.bluez.metadata b/.bluez.metadata new file mode 100644 index 0000000..aae403a --- /dev/null +++ b/.bluez.metadata @@ -0,0 +1 @@ +60776c3d6eb2c160d20b2de12f2af63ee8508f0a SOURCES/bluez-5.44.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2aa648c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bluez-5.44.tar.xz diff --git a/SOURCES/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch b/SOURCES/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch new file mode 100644 index 0000000..1ea3e6f --- /dev/null +++ b/SOURCES/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch @@ -0,0 +1,58 @@ +From 3027cb7141fb65cf3eeda69c688db8c4045e2d3f Mon Sep 17 00:00:00 2001 +From: Giovanni Campagna +Date: Sat, 12 Oct 2013 17:45:25 +0200 +Subject: [PATCH] Allow using obexd without systemd in the user session + +Not all sessions run systemd --user (actually, the majority +doesn't), so the dbus daemon must be able to spawn obexd +directly, and to do so it needs the full path of the daemon. +--- + Makefile.obexd | 4 ++-- + obexd/src/org.bluez.obex.service | 4 ---- + obexd/src/org.bluez.obex.service.in | 4 ++++ + 3 files changed, 6 insertions(+), 6 deletions(-) + delete mode 100644 obexd/src/org.bluez.obex.service + create mode 100644 obexd/src/org.bluez.obex.service.in + +diff --git a/Makefile.obexd b/Makefile.obexd +index 3760867..142e7c3 100644 +--- a/Makefile.obexd ++++ b/Makefile.obexd +@@ -2,12 +2,12 @@ + if SYSTEMD + systemduserunitdir = @SYSTEMD_USERUNITDIR@ + systemduserunit_DATA = obexd/src/obex.service ++endif + + dbussessionbusdir = @DBUS_SESSIONBUSDIR@ + dbussessionbus_DATA = obexd/src/org.bluez.obex.service +-endif + +-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service ++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in + + obex_plugindir = $(libdir)/obex/plugins + +diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service +deleted file mode 100644 +index a538088..0000000 +--- a/obexd/src/org.bluez.obex.service ++++ /dev/null +@@ -1,4 +0,0 @@ +-[D-BUS Service] +-Name=org.bluez.obex +-Exec=/bin/false +-SystemdService=dbus-org.bluez.obex.service +diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in +new file mode 100644 +index 0000000..9c815f2 +--- /dev/null ++++ b/obexd/src/org.bluez.obex.service.in +@@ -0,0 +1,4 @@ ++[D-BUS Service] ++Name=org.bluez.obex ++Exec=@libexecdir@/obexd ++SystemdService=dbus-org.bluez.obex.service +-- +1.8.3.1 + diff --git a/SOURCES/0001-Out-of-bounds-heap-read-in-service_search_attr_req-f.patch b/SOURCES/0001-Out-of-bounds-heap-read-in-service_search_attr_req-f.patch new file mode 100644 index 0000000..cb71522 --- /dev/null +++ b/SOURCES/0001-Out-of-bounds-heap-read-in-service_search_attr_req-f.patch @@ -0,0 +1,55 @@ +From 6821472c7509c54c5b1ef4744af8f6eab9be4aa7 Mon Sep 17 00:00:00 2001 +From: Fedora Bluez maintainers +Date: Mon, 11 Sep 2017 11:19:18 -0400 +Subject: [PATCH] Out of bounds heap read in service_search_attr_req function +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When a long response is returned to a specific search attribute request, a +continuation state is returned to allow reception of additional fragments, via +additional requests that contain the last continuation state sent. However, the +incoming “cstate” that requests additional fragments isn’t validated properly, +and thus an out-of-bounds read of the response buffer (pResponse) can be +achieved, leading to information disclosure of the heap. +--- + src/sdpd-request.c | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/src/sdpd-request.c b/src/sdpd-request.c +index 1eefdce..ddeea7f 100644 +--- a/src/sdpd-request.c ++++ b/src/sdpd-request.c +@@ -918,15 +918,20 @@ static int service_search_attr_req(sdp_req_t *req, sdp_buf_t *buf) + /* continuation State exists -> get from cache */ + sdp_buf_t *pCache = sdp_get_cached_rsp(cstate); + if (pCache) { +- uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); +- pResponse = pCache->data; +- memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); +- buf->data_size += sent; +- cstate->cStateValue.maxBytesSent += sent; +- if (cstate->cStateValue.maxBytesSent == pCache->data_size) +- cstate_size = sdp_set_cstate_pdu(buf, NULL); +- else +- cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ if (cstate->cStateValue.maxBytesSent >= pCache->data_size) { ++ status = SDP_INVALID_CSTATE; ++ SDPDBG("Got bad cstate with invalid size"); ++ } else { ++ uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent); ++ pResponse = pCache->data; ++ memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent); ++ buf->data_size += sent; ++ cstate->cStateValue.maxBytesSent += sent; ++ if (cstate->cStateValue.maxBytesSent == pCache->data_size) ++ cstate_size = sdp_set_cstate_pdu(buf, NULL); ++ else ++ cstate_size = sdp_set_cstate_pdu(buf, cstate); ++ } + } else { + status = SDP_INVALID_CSTATE; + SDPDBG("Non-null continuation state, but null cache buffer"); +-- +2.13.5 + diff --git a/SOURCES/0001-core-Add-AlwaysPairable-to-main.conf.patch b/SOURCES/0001-core-Add-AlwaysPairable-to-main.conf.patch new file mode 100644 index 0000000..affa8d8 --- /dev/null +++ b/SOURCES/0001-core-Add-AlwaysPairable-to-main.conf.patch @@ -0,0 +1,145 @@ +From 370c254b22b98787b38732f47cf499f7a57289e2 Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Tue, 23 Jul 2019 18:04:27 +0530 +Subject: [PATCH BlueZ 1/2] core: Add AlwaysPairable to main.conf + +commit 1880b299086659844889cdaf687133aca5eaf102 +Author: Luiz Augusto von Dentz +Date: Fri Jul 27 11:14:04 2018 +0300 + + core: Add AlwaysPairable to main.conf + + This adds a new option called AlwaysPairable to main.conf, it can be + used to enable Adapter.Pairable even in case there is no Agent + available. + + Since that could be consider a security problem to allow pairing + without user's consent the option defaults to false. + +Signed-off-by: Gopal Tiwari +--- + src/adapter.c | 16 +++++++++++++++- + src/agent.h | 7 +++++++ + src/device.c | 2 -- + src/hcid.h | 1 + + src/main.c | 10 ++++++++++ + src/main.conf | 5 +++++ + 6 files changed, 38 insertions(+), 3 deletions(-) + +diff --git a/src/adapter.c b/src/adapter.c +index 3dac7d649..d412bc58e 100644 +--- a/src/adapter.c ++++ b/src/adapter.c +@@ -7334,6 +7334,19 @@ int adapter_set_io_capability(struct btd_adapter *adapter, uint8_t io_cap) + { + struct mgmt_cp_set_io_capability cp; + ++ if (!main_opts.pairable) { ++ if (io_cap == IO_CAPABILITY_INVALID) { ++ if (adapter->current_settings & MGMT_SETTING_BONDABLE) ++ set_mode(adapter, MGMT_OP_SET_BONDABLE, 0x00); ++ ++ return 0; ++ } ++ ++ if (!(adapter->current_settings & MGMT_SETTING_BONDABLE)) ++ set_mode(adapter, MGMT_OP_SET_BONDABLE, 0x01); ++ } else if (io_cap == IO_CAPABILITY_INVALID) ++ io_cap = IO_CAPABILITY_NOINPUTNOOUTPUT; ++ + memset(&cp, 0, sizeof(cp)); + cp.io_capability = io_cap; + +@@ -8259,7 +8272,8 @@ static void read_info_complete(uint8_t status, uint16_t length, + + set_name(adapter, btd_adapter_get_name(adapter)); + +- if (!(adapter->current_settings & MGMT_SETTING_BONDABLE)) ++ if (main_opts.pairable && ++ !(adapter->current_settings & MGMT_SETTING_BONDABLE)) + set_mode(adapter, MGMT_OP_SET_BONDABLE, 0x01); + + if (!kernel_conn_control) +diff --git a/src/agent.h b/src/agent.h +index 1e4692036..f14d14325 100644 +--- a/src/agent.h ++++ b/src/agent.h +@@ -22,6 +22,13 @@ + * + */ + ++#define IO_CAPABILITY_DISPLAYONLY 0x00 ++#define IO_CAPABILITY_DISPLAYYESNO 0x01 ++#define IO_CAPABILITY_KEYBOARDONLY 0x02 ++#define IO_CAPABILITY_NOINPUTNOOUTPUT 0x03 ++#define IO_CAPABILITY_KEYBOARDDISPLAY 0x04 ++#define IO_CAPABILITY_INVALID 0xFF ++ + struct agent; + + typedef void (*agent_cb) (struct agent *agent, DBusError *err, +diff --git a/src/device.c b/src/device.c +index 8693eb826..43cd758d4 100644 +--- a/src/device.c ++++ b/src/device.c +@@ -75,8 +75,6 @@ + #include "attrib-server.h" + #include "eir.h" + +-#define IO_CAPABILITY_NOINPUTNOOUTPUT 0x03 +- + #define DISCONNECT_TIMER 2 + #define DISCOVERY_TIMER 1 + #define INVALID_FLAGS 0xff +diff --git a/src/hcid.h b/src/hcid.h +index 0b785ee9b..335ddeabf 100644 +--- a/src/hcid.h ++++ b/src/hcid.h +@@ -32,6 +32,7 @@ typedef enum { + struct main_opts { + char *name; + uint32_t class; ++ gboolean pairable; + uint16_t autoto; + uint32_t pairto; + uint32_t discovto; +diff --git a/src/main.c b/src/main.c +index bcc1e6fae..2d03ed459 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -236,6 +236,16 @@ static void parse_config(GKeyFile *config) + main_opts.discovto = val; + } + ++ boolean = g_key_file_get_boolean(config, "General", ++ "AlwaysPairable", &err); ++ if (err) { ++ DBG("%s", err->message); ++ g_clear_error(&err); ++ } else { ++ DBG("pairable=%s", boolean ? "true" : "false"); ++ main_opts.pairable = boolean; ++ } ++ + val = g_key_file_get_integer(config, "General", + "PairableTimeout", &err); + if (err) { +diff --git a/src/main.conf b/src/main.conf +index a6492761b..c1ae35f11 100644 +--- a/src/main.conf ++++ b/src/main.conf +@@ -13,6 +13,11 @@ + # 0 = disable timer, i.e. stay discoverable forever + #DiscoverableTimeout = 0 + ++# Always allow pairing even if there are no agent registered ++# Possible values: true, false ++# Default: false ++#AlwaysPairable = false ++ + # How long to stay in pairable mode before going back to non-discoverable + # The value is in seconds. Default is 0. + # 0 = disable timer, i.e. stay pairable forever +-- +2.17.2 + diff --git a/SOURCES/0001-device-Fix-crashing-when-connecting-ATT-over-BR-EDR.patch b/SOURCES/0001-device-Fix-crashing-when-connecting-ATT-over-BR-EDR.patch new file mode 100644 index 0000000..828848b --- /dev/null +++ b/SOURCES/0001-device-Fix-crashing-when-connecting-ATT-over-BR-EDR.patch @@ -0,0 +1,74 @@ +From d32e2a336b76cd84ff3fa770a69d7d1f9d0e2e75 Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Thu, 25 Apr 2019 19:37:20 +0530 +Subject: [PATCH BlueZ] device: Fix crashing when connecting ATT over + BR/EDR + +commit 006213cf4d231ce66de273e96619474bd516359b +Author: Luiz Augusto von Dentz +Date: Fri Jul 7 10:35:11 2017 +0300 + + device: Fix crashing when connecting ATT over BR/EDR +--- + src/device.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/device.c b/src/device.c +index 8693eb826..4d2a59522 100644 +--- a/src/device.c ++++ b/src/device.c +@@ -136,6 +136,7 @@ struct authentication_req { + struct browse_req { + DBusMessage *msg; + struct btd_device *device; ++ uint8_t bdaddr_type; + GSList *match_uuids; + GSList *profiles_added; + sdp_list_t *records; +@@ -2154,6 +2155,9 @@ static void browse_request_complete(struct browse_req *req, uint8_t bdaddr_type, + struct btd_device *dev = req->device; + DBusMessage *reply = NULL; + ++ if (req->bdaddr_type != bdaddr_type) ++ return; ++ + if (!req->msg) + goto done; + +@@ -4955,6 +4959,7 @@ int device_connect_le(struct btd_device *dev) + } + + static struct browse_req *browse_request_new(struct btd_device *device, ++ uint8_t bdaddr_type, + DBusMessage *msg) + { + struct browse_req *req; +@@ -4964,6 +4969,7 @@ static struct browse_req *browse_request_new(struct btd_device *device, + + req = g_new0(struct browse_req, 1); + req->device = device; ++ req->bdaddr_type = bdaddr_type; + + device->browse = req; + +@@ -4989,7 +4995,7 @@ static int device_browse_gatt(struct btd_device *device, DBusMessage *msg) + struct btd_adapter *adapter = device->adapter; + struct browse_req *req; + +- req = browse_request_new(device, msg); ++ req = browse_request_new(device, device->bdaddr_type, msg); + if (!req) + return -EBUSY; + +@@ -5062,7 +5068,7 @@ static int device_browse_sdp(struct btd_device *device, DBusMessage *msg) + uuid_t uuid; + int err; + +- req = browse_request_new(device, msg); ++ req = browse_request_new(device, BDADDR_BREDR, msg); + if (!req) + return -EBUSY; + +-- +2.17.2 + diff --git a/SOURCES/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch b/SOURCES/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch new file mode 100644 index 0000000..004a389 --- /dev/null +++ b/SOURCES/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch @@ -0,0 +1,38 @@ +From f7861d27fbcbc519f57d8496aa9486f487908821 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Sat, 9 Nov 2013 18:13:43 +0100 +Subject: [PATCH 1/5] obex: Use GLib helper function to manipulate paths + +Instead of trying to do it by hand. This also makes sure that +relative paths aren't used by the agent. +--- + obexd/src/manager.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/obexd/src/manager.c b/obexd/src/manager.c +index cec8a39..f18896e 100644 +--- a/obexd/src/manager.c ++++ b/obexd/src/manager.c +@@ -651,14 +651,14 @@ static void agent_reply(DBusPendingCall *call, void *user_data) + DBUS_TYPE_STRING, &name, + DBUS_TYPE_INVALID)) { + /* Splits folder and name */ +- const char *slash = strrchr(name, '/'); ++ gboolean is_relative = !g_path_is_absolute(name); + DBG("Agent replied with %s", name); +- if (!slash) { +- agent->new_name = g_strdup(name); ++ if (is_relative) { ++ agent->new_name = g_path_get_basename(name); + agent->new_folder = NULL; + } else { +- agent->new_name = g_strdup(slash + 1); +- agent->new_folder = g_strndup(name, slash - name); ++ agent->new_name = g_path_get_basename(name); ++ agent->new_folder = g_path_get_dirname(name); + } + } + +-- +1.8.4.2 + diff --git a/SOURCES/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch b/SOURCES/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch new file mode 100644 index 0000000..e583320 --- /dev/null +++ b/SOURCES/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch @@ -0,0 +1,29 @@ +From aa73bf5039dfd2cf0a52dd6fd22501d955cc1a00 Mon Sep 17 00:00:00 2001 +From: Tommy +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 +--- + tools/hid2hci.rules | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +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" + + # Logitech devices +-KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \ ++KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[3bc]", \ ++ RUN+="hid2hci --method=logitech-hid --devpath=%p" ++# Logitech, Inc. diNovo Edge Keyboard ++KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c714", \ + RUN+="hid2hci --method=logitech-hid --devpath=%p" + + ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end" +-- +1.8.0.1 + diff --git a/SOURCES/0002-agent-Make-the-first-agent-to-register-the-default.patch b/SOURCES/0002-agent-Make-the-first-agent-to-register-the-default.patch new file mode 100644 index 0000000..c7adba4 --- /dev/null +++ b/SOURCES/0002-agent-Make-the-first-agent-to-register-the-default.patch @@ -0,0 +1,63 @@ +From 15bcb7be08286c6c59044b4201ad1408dbe93a7e Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Tue, 23 Jul 2019 18:12:20 +0530 +Subject: [PATCH BlueZ 2/2] agent: Make the first agent to register the + default + +commit 9213ff7642a33aa481e3c61989ad60f7985b9984 +Author: Luiz Augusto von Dentz +Date: Fri Jul 27 11:01:04 2018 +0300 + + agent: Make the first agent to register the default + + This simplifies the handling of default agent and enforce the IO + capabilities to be set whenever there is an agent available in the + system. + +Signed-off-by: Gopal Tiwari +--- + src/agent.c | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +diff --git a/src/agent.c b/src/agent.c +index ff44d5755..183e2f190 100644 +--- a/src/agent.c ++++ b/src/agent.c +@@ -50,13 +50,6 @@ + #include "agent.h" + #include "shared/queue.h" + +-#define IO_CAPABILITY_DISPLAYONLY 0x00 +-#define IO_CAPABILITY_DISPLAYYESNO 0x01 +-#define IO_CAPABILITY_KEYBOARDONLY 0x02 +-#define IO_CAPABILITY_NOINPUTNOOUTPUT 0x03 +-#define IO_CAPABILITY_KEYBOARDDISPLAY 0x04 +-#define IO_CAPABILITY_INVALID 0xFF +- + #define REQUEST_TIMEOUT (60 * 1000) /* 60 seconds */ + #define AGENT_INTERFACE "org.bluez.Agent1" + +@@ -150,7 +143,7 @@ static void set_io_cap(struct btd_adapter *adapter, gpointer user_data) + if (agent) + io_cap = agent->capability; + else +- io_cap = IO_CAPABILITY_NOINPUTNOOUTPUT; ++ io_cap = IO_CAPABILITY_INVALID; + + adapter_set_io_capability(adapter, io_cap); + } +@@ -294,6 +287,11 @@ static struct agent *agent_create( const char *name, const char *path, + name, agent_disconnect, + agent, NULL); + ++ if (queue_isempty(default_agents)) ++ add_default_agent(agent); ++ else ++ queue_push_tail(default_agents, agent); ++ + return agent_ref(agent); + } + +-- +2.17.2 + diff --git a/SOURCES/0002-autopair-Don-t-handle-the-iCade.patch b/SOURCES/0002-autopair-Don-t-handle-the-iCade.patch new file mode 100644 index 0000000..68751ae --- /dev/null +++ b/SOURCES/0002-autopair-Don-t-handle-the-iCade.patch @@ -0,0 +1,47 @@ +From c16ae7041c7511d8d1ed8441f696716fa6a9117e Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Tue, 19 Nov 2013 14:11:39 +0100 +Subject: [PATCH 2/5] autopair: Don't handle the iCade + +We can't easily enter digits other than 1 through 4 (inclusive) +so leave it up to the agent to figure out a good passcode +for the iCade. + +Note that we can not use the VID/PID of the device, as it is not +yet known at that point. +--- + plugins/autopair.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/plugins/autopair.c b/plugins/autopair.c +index 8c98c12..5d2f6f7 100644 +--- a/plugins/autopair.c ++++ b/plugins/autopair.c +@@ -57,13 +57,23 @@ static ssize_t autopair_pincb(struct btd_adapter *adapter, + { + char addr[18]; + char pinstr[7]; ++ char name[25]; + uint32_t class; + + ba2str(device_get_address(device), addr); + + class = btd_device_get_class(device); + +- DBG("device %s 0x%x", addr, class); ++ device_get_name(device, name, sizeof(name)); ++ name[sizeof(name) - 1] = 0; ++ ++ DBG("device %s (%s) 0x%x", addr, name, class); ++ ++ g_message ("vendor 0x%X product: 0x%X", btd_device_get_vendor (device), btd_device_get_product (device)); ++ ++ /* The iCade shouldn't use random PINs like normal keyboards */ ++ if (name != NULL && strstr(name, "iCade") != NULL) ++ return 0; + + /* This is a class-based pincode guesser. Ignore devices with an + * unknown class. +-- +1.8.4.2 + diff --git a/SOURCES/0002-device-Fix-crash-when-connecting-ATT-with-BR-EDR-onl.patch b/SOURCES/0002-device-Fix-crash-when-connecting-ATT-with-BR-EDR-onl.patch new file mode 100644 index 0000000..993f775 --- /dev/null +++ b/SOURCES/0002-device-Fix-crash-when-connecting-ATT-with-BR-EDR-onl.patch @@ -0,0 +1,158 @@ +From 164997007447ffbf011934e84e21040f5e3eeff4 Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Thu, 25 Apr 2019 19:39:41 +0530 +Subject: [PATCH BlueZ] device: Fix crash when connecting ATT with BR/EDR + only device + +commit 5252296b725ef159992be5372f60721bd9adca48 +Author: Luiz Augusto von Dentz +Date: Wed Aug 9 14:14:23 2017 +0300 + + device: Fix crash when connecting ATT with BR/EDR only device +--- + src/device.c | 38 +++++++++++++++++++++++--------------- + 1 file changed, 23 insertions(+), 15 deletions(-) + +diff --git a/src/device.c b/src/device.c +index 4d2a59522..54bef1bd3 100644 +--- a/src/device.c ++++ b/src/device.c +@@ -133,10 +133,15 @@ struct authentication_req { + gboolean secure; + }; + ++enum { ++ BROWSE_SDP, ++ BROWSE_GATT ++}; ++ + struct browse_req { + DBusMessage *msg; + struct btd_device *device; +- uint8_t bdaddr_type; ++ uint8_t type; + GSList *match_uuids; + GSList *profiles_added; + sdp_list_t *records; +@@ -2149,13 +2154,13 @@ static void store_gatt_db(struct btd_device *device) + } + + +-static void browse_request_complete(struct browse_req *req, uint8_t bdaddr_type, +- int err) ++static void browse_request_complete(struct browse_req *req, uint8_t type, ++ uint8_t bdaddr_type, int err) + { + struct btd_device *dev = req->device; + DBusMessage *reply = NULL; + +- if (req->bdaddr_type != bdaddr_type) ++ if (req->type != type) + return; + + if (!req->msg) +@@ -2209,8 +2214,8 @@ static void device_set_svc_refreshed(struct btd_device *device, bool value) + DEVICE_INTERFACE, "ServicesResolved"); + } + +-static void device_svc_resolved(struct btd_device *dev, uint8_t bdaddr_type, +- int err) ++static void device_svc_resolved(struct btd_device *dev, uint8_t browse_type, ++ uint8_t bdaddr_type, int err) + { + struct bearer_state *state = get_state(dev, bdaddr_type); + struct browse_req *req = dev->browse; +@@ -2258,7 +2263,7 @@ static void device_svc_resolved(struct btd_device *dev, uint8_t bdaddr_type, + return; + + dev->browse = NULL; +- browse_request_complete(req, bdaddr_type, err); ++ browse_request_complete(req, browse_type, bdaddr_type, err); + } + + static struct bonding_req *bonding_request_new(DBusMessage *msg, +@@ -4517,7 +4522,7 @@ static void search_cb(sdp_list_t *recs, int err, gpointer user_data) + DEVICE_INTERFACE, "UUIDs"); + + send_reply: +- device_svc_resolved(device, BDADDR_BREDR, err); ++ device_svc_resolved(device, BROWSE_SDP, BDADDR_BREDR, err); + } + + static void browse_cb(sdp_list_t *recs, int err, gpointer user_data) +@@ -4642,7 +4647,8 @@ static void gatt_client_ready_cb(bool success, uint8_t att_ecode, + DBG("status: %s, error: %u", success ? "success" : "failed", att_ecode); + + if (!success) { +- device_svc_resolved(device, device->bdaddr_type, -EIO); ++ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type, ++ -EIO); + return; + } + +@@ -4650,7 +4656,7 @@ static void gatt_client_ready_cb(bool success, uint8_t att_ecode, + + btd_gatt_client_ready(device->client_dbus); + +- device_svc_resolved(device, device->bdaddr_type, 0); ++ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type, 0); + + store_gatt_db(device); + } +@@ -4855,6 +4861,7 @@ static void att_connect_cb(GIOChannel *io, GError *gerr, gpointer user_data) + + if (device->browse) { + browse_request_complete(device->browse, ++ BROWSE_GATT, + device->bdaddr_type, + -ECONNABORTED); + device->browse = NULL; +@@ -4959,7 +4966,7 @@ int device_connect_le(struct btd_device *dev) + } + + static struct browse_req *browse_request_new(struct btd_device *device, +- uint8_t bdaddr_type, ++ uint8_t type, + DBusMessage *msg) + { + struct browse_req *req; +@@ -4969,7 +4976,7 @@ static struct browse_req *browse_request_new(struct btd_device *device, + + req = g_new0(struct browse_req, 1); + req->device = device; +- req->bdaddr_type = bdaddr_type; ++ req->type = type; + + device->browse = req; + +@@ -4995,7 +5002,7 @@ static int device_browse_gatt(struct btd_device *device, DBusMessage *msg) + struct btd_adapter *adapter = device->adapter; + struct browse_req *req; + +- req = browse_request_new(device, device->bdaddr_type, msg); ++ req = browse_request_new(device, BROWSE_GATT, msg); + if (!req) + return -EBUSY; + +@@ -5011,7 +5018,8 @@ static int device_browse_gatt(struct btd_device *device, DBusMessage *msg) + * Services have already been discovered, so signal this browse + * request as resolved. + */ +- device_svc_resolved(device, device->bdaddr_type, 0); ++ device_svc_resolved(device, BROWSE_GATT, device->bdaddr_type, ++ 0); + return 0; + } + +@@ -5068,7 +5076,7 @@ static int device_browse_sdp(struct btd_device *device, DBusMessage *msg) + uuid_t uuid; + int err; + +- req = browse_request_new(device, BDADDR_BREDR, msg); ++ req = browse_request_new(device, BROWSE_SDP, msg); + if (!req) + return -EBUSY; + +-- +2.17.2 + diff --git a/SOURCES/0004-agent-Assert-possible-infinite-loop.patch b/SOURCES/0004-agent-Assert-possible-infinite-loop.patch new file mode 100644 index 0000000..2746e0c --- /dev/null +++ b/SOURCES/0004-agent-Assert-possible-infinite-loop.patch @@ -0,0 +1,25 @@ +From 67e5477687a2753d3f7b300bcfdc74464d8ad41f Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Mon, 9 Dec 2013 18:04:56 +0100 +Subject: [PATCH 4/5] agent: Assert possible infinite loop + +--- + src/agent.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/agent.c b/src/agent.c +index bcba969..b292881 100644 +--- a/src/agent.c ++++ b/src/agent.c +@@ -203,6 +203,8 @@ void agent_unref(struct agent *agent) + if (agent->ref > 0) + return; + ++ g_assert (agent->ref == 0); ++ + if (agent->request) { + DBusError err; + agent_pincode_cb pincode_cb; +-- +1.8.4.2 + diff --git a/SOURCES/bluez.gitignore b/SOURCES/bluez.gitignore new file mode 100644 index 0000000..137d2e5 --- /dev/null +++ b/SOURCES/bluez.gitignore @@ -0,0 +1,100 @@ +*.o +*.a +*.lo +*.la +*.so +.deps +.libs +.dirstamp +Makefile +Makefile.in +aclocal.m4 +config.guess +config.h +config.h.in +config.log +config.status +config.sub +configure +depcomp +compile +install-sh +libtool +ltmain.sh +missing +stamp-h1 +autom4te.cache + +ylwrap +lexer.c +parser.h +parser.c + +bluez.pc +lib/bluetooth +src/builtin.h +src/bluetoothd +audio/telephony.c +sap/sap.c +scripts/bluetooth.rules +scripts/97-bluetooth.rules +scripts/97-bluetooth-hid2hci.rules + +sbc/sbcdec +sbc/sbcenc +sbc/sbcinfo +sbc/sbctester + +attrib/gatttool +tools/avctrl +tools/avinfo +tools/bccmd +tools/ciptool +tools/dfubabel +tools/dfutool +tools/hciattach +tools/hciconfig +tools/hcieventmask +tools/hcisecfilter +tools/hcitool +tools/hid2hci +tools/rfcomm +tools/l2ping +tools/ppporc +tools/sdptool +cups/bluetooth +test/agent +test/bdaddr +test/hciemu +test/attest +test/hstest +test/avtest +test/l2test +test/rctest +test/scotest +test/gaptest +test/sdptest +test/lmptest +test/ipctest +test/btiotest +test/test-textfile +test/uuidtest +test/mpris-player +compat/dund +compat/hidd +compat/pand +unit/test-eir +mgmt/btmgmt +monitor/btmon +emulator/btvirt + +doc/*.bak +doc/*.stamp +doc/bluez.* +doc/bluez-*.txt +doc/*.sgml +doc/version.xml +doc/xml +doc/html +src/bluetoothd.8 +src/bluetooth.service diff --git a/SPECS/bluez.spec b/SPECS/bluez.spec new file mode 100644 index 0000000..33158b8 --- /dev/null +++ b/SPECS/bluez.spec @@ -0,0 +1,850 @@ +Summary: Bluetooth utilities +Name: bluez +Version: 5.44 +Release: 6%{?dist} +License: GPLv2+ +Group: Applications/System +URL: http://www.bluez.org/ + +Source0: http://www.kernel.org/pub/linux/bluetooth/bluez-%{version}.tar.xz +Source1: bluez.gitignore + +## Ubuntu patches +Patch2: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch +# Non-upstream +Patch3: 0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch +Patch4: 0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch +Patch5: 0002-autopair-Don-t-handle-the-iCade.patch +Patch7: 0004-agent-Assert-possible-infinite-loop.patch +Patch8: 0001-Out-of-bounds-heap-read-in-service_search_attr_req-f.patch +#Upstream +Patch9: 0001-device-Fix-crashing-when-connecting-ATT-over-BR-EDR.patch +Patch10: 0002-device-Fix-crash-when-connecting-ATT-with-BR-EDR-onl.patch +Patch11: 0001-core-Add-AlwaysPairable-to-main.conf.patch +Patch12: 0002-agent-Make-the-first-agent-to-register-the-default.patch + +%global _hardened_build 1 + +BuildRequires: git +BuildRequires: dbus-devel >= 0.90 +BuildRequires: glib2-devel +BuildRequires: libical-devel >= 1.0.1 +BuildRequires: readline-devel +# For cable pairing +BuildRequires: systemd-devel +# For cups +BuildRequires: cups-devel + +# For rebuild +BuildRequires: libtool autoconf automake + +Requires: dbus >= 0.60 + +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +Provides: bluez-obexd + +# Dropped in Fedora 20: +Obsoletes: bluez-alsa < 5.0 +Obsoletes: bluez-compat < 5.0 +Obsoletes: bluez-gstreamer < 5.0 + +# Other bluetooth-releated packages that haven't gotten ported to BlueZ 5 +Obsoletes: blueman < 1.23-9 +Obsoletes: blueman-nautilus < 1.23-9 +Obsoletes: obex-data-server < 1:0.4.6-8 + +%description +Utilities for use in Bluetooth applications: + - hcitool + - hciattach + - hciconfig + - bluetoothd + - l2ping + - rfcomm + - sdptool + - bccmd + - bluetoothctl + - btmon + - hcidump + - l2test + - rctest + - gatttool + - start scripts (Red Hat) + - pcmcia configuration files + +The BLUETOOTH trademarks are owned by Bluetooth SIG, Inc., U.S.A. + +%package libs +Summary: Libraries for use in Bluetooth applications +Group: System Environment/Libraries + +%package libs-devel +Summary: Development libraries for Bluetooth applications +Group: Development/Libraries +Requires: bluez-libs%{?_isa} = %{version}-%{release} + +%package cups +Summary: CUPS printer backend for Bluetooth printers +Group: System Environment/Daemons +Requires: bluez%{?_isa} = %{version}-%{release} +Requires: cups + +%package hid2hci +Summary: Put HID proxying bluetooth HCI's into HCI mode +Group: System Environment/Daemons +Requires: bluez%{?_isa} = %{version}-%{release} + +%description cups +This package contains the CUPS backend + +%description libs +Libraries for use in Bluetooth applications. + +%description libs-devel +bluez-libs-devel contains development libraries and headers for +use in Bluetooth applications. + +%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. + +%prep +%setup -q +git init +if [ -z "$GIT_COMMITTER_NAME" ]; then + git config user.email "bluez-owner@fedoraproject.org" + git config user.name "Fedora Bluez maintainers" +fi +cp %{SOURCE1} .gitignore +git add . +git commit -a -q -m "%{version} baseline." + +git am -p1 %{patches} < /dev/null + +%build +libtoolize -f -c +autoreconf -f -i +%configure --enable-cups --enable-tools --enable-library \ + --enable-sixaxis --enable-pie --enable-deprecated \ + --with-systemdsystemunitdir=%{_unitdir} \ + --with-systemduserunitdir=%{_userunitdir} +make %{?_smp_mflags} V=1 + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +# "make install" fails to install gatttool, necessary for Bluetooth Low Energy +# Red Hat Bugzilla bug #1141909 +# Debian bug #720486 +install -m0755 attrib/gatttool $RPM_BUILD_ROOT%{_bindir} + +# Remove autocrap and libtool droppings +find $RPM_BUILD_ROOT -name '*.la' -delete + +# 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 + install -D -m0755 ${RPM_BUILD_ROOT}/usr/lib64/cups/backend/bluetooth ${RPM_BUILD_ROOT}%_cups_serverbin/backend/bluetooth + rm -rf ${RPM_BUILD_ROOT}%{_libdir}/cups +fi + +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 $RPM_BUILD_ROOT/%{_localstatedir}/lib/bluetooth + +mkdir -p $RPM_BUILD_ROOT/%{_libdir}/bluetooth/ + +#copy bluetooth config file +install -D -p -m0644 src/main.conf ${RPM_BUILD_ROOT}/etc/bluetooth/main.conf +sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=false/' ${RPM_BUILD_ROOT}/%{_sysconfdir}/bluetooth/main.conf + +%post libs -p /sbin/ldconfig + +%postun libs -p /sbin/ldconfig + +%post +%systemd_post bluetooth.service +%systemd_user_post obex.service + +%preun +%systemd_preun bluetooth.service +%systemd_user_preun obex.service + +%postun +%systemd_postun_with_restart bluetooth.service + +%post hid2hci +/sbin/udevadm trigger --subsystem-match=usb + +%files +%doc AUTHORS COPYING ChangeLog README +%{_bindir}/btattach +%{_bindir}/ciptool +%{_bindir}/hcitool +%{_bindir}/l2ping +%{_bindir}/rfcomm +%{_bindir}/sdptool +%{_bindir}/bccmd +%{_bindir}/bluetoothctl +%{_bindir}/bluemoon +%{_bindir}/btmon +%{_bindir}/hciattach +%{_bindir}/hciconfig +%{_bindir}/hcidump +%{_bindir}/l2test +%{_bindir}/hex2hcd +%{_bindir}/mpris-proxy +%{_bindir}/gatttool +%{_bindir}/rctest +%{_mandir}/man1/btattach.1.gz +%{_mandir}/man1/ciptool.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/* +%{_libexecdir}/bluetooth/bluetoothd +%{_libexecdir}/bluetooth/obexd +%exclude %{_mandir}/man1/hid2hci.1* +%config %{_sysconfdir}/dbus-1/system.d/bluetooth.conf +%{_libdir}/bluetooth/ +%{_localstatedir}/lib/bluetooth +%{_datadir}/dbus-1/system-services/org.bluez.service +%{_datadir}/dbus-1/services/org.bluez.obex.service +%{_unitdir}/bluetooth.service +%{_userunitdir}/obex.service +%config %{_sysconfdir}/bluetooth/main.conf + +%files libs +%doc COPYING +%{_libdir}/libbluetooth.so.* + +%files libs-devel +%{_libdir}/libbluetooth.so +%dir %{_includedir}/bluetooth +%{_includedir}/bluetooth/* +%{_libdir}/pkgconfig/bluez.pc + +%files cups +%_cups_serverbin/backend/bluetooth + +%files hid2hci +/usr/lib/udev/hid2hci +%{_mandir}/man1/hid2hci.1* +/lib/udev/rules.d/97-hid2hci.rules + +%changelog + +* Wed Jul 24 2019 Gopal Tiwari 5.44-6 +- fixing CVE-2018-10910. +Resolves: #1609340 + +* Thu Apr 25 2019 Gopal Tiwari 5.44-5 +- fixing crash with SIGSEGV when pairing with headset +Resolves: #1667100 + +* Mon Sep 11 2017 Don Zickus 5.44-4 +- forgot to bump rev +Resolves: #1490011 + +* Mon Sep 11 2017 Don Zickus 5.44-3 +- sdpd heap fix +Resolves: #1490011 + +* Mon Mar 27 2017 David Arcari 5.44-2 +- added missing updates for sources and .gitignore +Resolves: #1434581, #1401501 + +* Tue Mar 21 2017 David Arcari 5.44-1 +- Update to 5.44 +- Ship btattach tool +- Configure systemctl settings for bluez-obex correctly +- Add Provides: bluez-obexd +Resolves: #1434581, #1401501 + +* Fri Aug 5 2016 Don Zickus 5.41-1 +- Update to 5.41 +- obexd fixes to prevent crashes +- add /etc/bluetooth/main.conf config file +Resolves: #1313363, #1336476, #1338895 + +* Wed May 18 2016 Don Zickus 5.39-1 +- Update to 5.39 +Resolves: #1263638 #1296616 + +* Fri Jul 10 2015 Bastien Nocera 5.23-4 +- Build with --enable-fpie as well +Resolves: #1174545 + +* Wed Jul 08 2015 Bastien Nocera 5.23-3 +- Enable hardened build +Resolves: #1174545 + +* Wed Jul 08 2015 Milan Crha 5.23-2 +- Rebuild against updated libical +- Related: #1209787 + +* Thu Mar 19 2015 Richard Hughes 5.23-1 +- Update to 5.23 +- Resolves: #1174545 + +* Fri Jan 24 2014 Daniel Mach - 4.101-13 +- Mass rebuild 2014-01-24 + +* Tue Jan 07 2014 Bastien Nocera 4.101-12 +- Explicitely disable the GStreamer plugins compilation +Resolves: #1046328 + +* Fri Dec 27 2013 Daniel Mach - 4.101-11 +- Mass rebuild 2013-12-27 + +* Thu Nov 21 2013 Bastien Nocera 4.101-10 +- Really disable the socket interface for A2DP +Resolves: #969385 + +* Thu Nov 07 2013 Bastien Nocera 4.101-9 +- Add linker flags to BIND_NOW +Resolves: #983161 + +* Mon Jul 22 2013 Bastien Nocera 4.101-8 +- Remove GStreamer plugins, they're already in GStreamer 1.0 + +* Tue Jun 25 2013 Bastien Nocera 4.101-7 +- Remove socket interface enablement for A2DP (#964031) + +* Mon Jan 28 2013 Peter Robinson 4.101-6 +- Add -vif to autoreconf to fix build issues + +* Thu Jan 10 2013 Bastien Nocera 4.101-5 +- Use git to manage distro patches +- Add numerous upstream and downstream patches (#892929) + +* Wed Nov 21 2012 Bastien Nocera 4.101-4 +- Clean up requires and build requires +- Use CUPS macro (#772236) +- Enable audio socket so a2dp works in PulseAudio again (#874015) +- Fix hid2hci not working with recent kernels (#877998) + +* Wed Aug 15 2012 Bastien Nocera 4.101-3 +- Enable pairing Wiimote support (#847481) + +* Wed Jul 18 2012 Fedora Release Engineering - 4.101-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jun 17 2012 Bastien Nocera 4.100-2 +- Add PS3 BD Remote patches (power saving) + +* Thu Jun 14 2012 Bastien Nocera 4.100-1 +- Update to 4.100 + +* Fri Jun 1 2012 Peter Robinson - 4.99-2 +- Add patch for udev change to fix FTBFS on rawhide +- Drop sbc patch as fixed in gcc 4.7 final + +* Tue Mar 06 2012 Bastien Nocera 4.99-1 +- Update to 4.99 + +* Tue Feb 28 2012 Petr Pisar - 4.98-3 +- Make headers compilable with g++ 4.7 (bug #791292) + +* Fri Feb 24 2012 Peter Robinson 4.98-2 +- Add mmx patch to fix build of sbc component +- clean up spec, drop ancient obsoletes + +* Fri Jan 13 2012 Bastien Nocera 4.98-1 +- Update to 4.98 + +* Thu Jan 12 2012 Fedora Release Engineering - 4.97-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Dec 30 2011 Bastien Nocera 4.97-1 +- Update to 4.97 + +* Mon Sep 5 2011 Hans de Goede 4.96-3 +- Put hid2hci into its own (optional) subpackage, so that people who + just want to use their HID proxying HCI with the keyboard and mouse + it came with, will have things working out of the box. +- Put udev rules in /lib/udev, where package installed udev rules belong + +* Mon Aug 29 2011 Hans de Goede 4.96-2 +- hid2hci was recently removed from udev and added to bluez in 4.93, + udev in Fedora-16 no longer has hid2hci -> enable it in our bluez builds. + This fixes bluetooth not working on machines where the bluetooth hci + initially shows up as a hid device, such as with many Dell laptops. + +* Mon Aug 01 2011 Bastien Nocera 4.96-1 +- Update to 4.96 + +* Tue Jul 05 2011 Bastien Nocera 4.95-1 +- Update to 4.95 + +* Tue Jun 28 2011 Lennart Poettering - 4.94-4 +- Enable bluetoothd on all upgrades from 4.87-6 and older, in order to fix up broken F15 installations + +* Thu Jun 23 2011 Bastien Nocera 4.94-3 +- Update patches to apply correctly +- First compilable version with hostnamed support + +* Mon Jun 20 2011 Lennart Poettering - 4.94-2 +- Enable bluetoothd by default +- Follow-up on https://bugzilla.redhat.com/show_bug.cgi?id=694519 also fixing upgrades + +* Wed Jun 01 2011 Bastien Nocera 4.94-1 +- Update to 4.94 + +* Wed May 25 2011 Bastien Nocera 4.93-1 +- Update to 4.93 + +* Thu Apr 7 2011 Lennart Poettering - 4.90-2 +- Update systemd patch to make it possible to disable bluez + +* Thu Mar 17 2011 Bastien Nocera 4.90-1 +- Update to 4.90 + +* Mon Feb 21 2011 Bastien Nocera 4.89-1 +- Update to 4.89 + +* Mon Feb 14 2011 Bastien Nocera 4.88-1 +- Update to 4.88 + +* Mon Feb 07 2011 Fedora Release Engineering - 4.87-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Bastien Nocera 4.87-1 +- Update to 4.87 + +* Thu Jan 20 2011 Bastien Nocera 4.86-1 +- Update to 4.86 + +* Thu Jan 13 2011 Bastien Nocera 4.85-1 +- Update to 4.85 + +* Sun Dec 19 2010 Bastien Nocera 4.82-1 +- Update to 4.82 + +* Wed Dec 01 2010 Bastien Nocera 4.81-1 +- Update to 4.81 + +* Mon Nov 22 2010 Bastien Nocera 4.80-1 +- Update to 4.80 + +* Tue Nov 09 2010 Bastien Nocera 4.79-1 +- Update to 4.79 + +* Sat Nov 06 2010 Bastien Nocera 4.78-1 +- Update to 4.78 + +* Wed Oct 27 2010 Bastien Nocera 4.77-1 +- Update to 4.77 + +* Sat Oct 16 2010 Bastien Nocera 4.76-1 +- Update to 4.76 + +* Tue Oct 05 2010 Bastien Nocera 4.74-1 +- Update to 4.74 + +* Mon Oct 04 2010 Bastien Nocera 4.73-1 +- Update to 4.73 + +* Wed Sep 29 2010 jkeating - 4.72-2 +- Rebuilt for gcc bug 634757 + +* Wed Sep 22 2010 Bastien Nocera 4.72-1 +- Update to 4.72 + +* Fri Sep 17 2010 Bill Nottingham 4.71-4 +- sync release number (but not package) with F-14 + +* Tue Sep 14 2010 Bastien Nocera 4.71-3 +- systemd hookup and cleanups from Lennart + +* Thu Sep 09 2010 Bastien Nocera 4.71-1 +- Update to 4.71 + +* Thu Aug 26 2010 Bastien Nocera 4.70-1 +- Update to 4.70 + +* Sat Jul 31 2010 Orcan Ogetbil 4.69-4 +- Re-add Requires: dbus-bluez-pin-helper, since blueman is now in + +* Sat Jul 31 2010 Orcan Ogetbil 4.69-3 +- Comment out Requires: dbus-bluez-pin-helper for bootstrapping. Otherwise + it drags in the old blueman, built against python-2.6 +* Fri Jul 23 2010 Bastien Nocera 4.69-2 +- Don't allow installing bluez-compat on its own + +* Fri Jul 16 2010 Bastien Nocera 4.69-1 +- Update to 4.69 + +* Sun Jul 11 2010 Dan Horák 4.66-3 +- don't require the pin helper on s390(x) now, we can disable the whole + bluetooth stack in the future + +* Mon Jun 21 2010 Bastien Nocera 4.66-2 +- Move hidd, pand and dund man pages to the -compat + sub-package (#593578) + +* Mon Jun 14 2010 Bastien Nocera 4.66-1 +- Update to 4.66 + +* Mon May 24 2010 Bastien Nocera 4.65-1 +- Update to 4.65 + +* Thu Apr 29 2010 Bastien Nocera 4.64-1 +- Update to 4.64 + +* Mon Apr 12 2010 Bastien Nocera 4.63-3 +- And actually apply the aforementioned patch + +* Mon Apr 12 2010 Bastien Nocera 4.63-2 +- Fix pairing and using mice, due to recent BtIO changes + +* Fri Mar 26 2010 Bastien Nocera 4.63-1 +- Update to 4.63 + +* Mon Mar 08 2010 Bastien Nocera 4.62-1 +- Update to 4.62 + +* Mon Feb 15 2010 Bastien Nocera 4.61-1 +- Update to 4.61 +- Remove Wacom tablet enabler, now in the kernel +- Fix linking with new DSO rules (#564799) + +* Mon Feb 15 2010 Bastien Nocera 4.60-2 +- Fix typo in init script (#558993) + +* Sun Jan 10 2010 Bastien Nocera 4.60-1 +- Update to 4.60 + +* Fri Dec 25 2009 Bastien Nocera 4.59-1 +- Update to 4.59 + +* Mon Nov 16 2009 Bastien Nocera 4.58-1 +- Update to 4.58 + +* Mon Nov 02 2009 Bastien Nocera 4.57-2 +- Move the rfcomm.conf to the compat package, otherwise + the comments at the top of it are confusing + +* Sat Oct 31 2009 Bastien Nocera 4.57-1 +- Update to 4.57 + +* Sat Oct 10 2009 Bastien Nocera 4.56-1 +- Update to 4.56 + +* Fri Oct 09 2009 Bastien Nocera 4.55-2 +- Update cable pairing plugin to use libudev + +* Mon Oct 05 2009 Bastien Nocera 4.55-1 +- Update to 4.55 +- Add libcap-ng support to drop capabilities (#517660) + +* Thu Sep 24 2009 Bastien Nocera 4.54-1 +- Update to 4.54 + +* Wed Sep 16 2009 Bastien Nocera 4.53-2 +- Update cable plugin for gudev changes + +* Thu Sep 10 2009 Bastien Nocera 4.53-1 +- Update to 4.53 + +* Fri Sep 04 2009 Bastien Nocera 4.52-1 +- Update to 4.52 + +* Thu Sep 03 2009 Bastien Nocera 4.51-1 +- Update to 4.51 + +* Tue Sep 01 2009 Bastien Nocera 4.50-2 +- Remove obsoleted patches +- Add another CUPS backend patch +- Update cable pairing patch for new build system + +* Tue Sep 01 2009 Bastien Nocera 4.50-1 +- Update to 4.50 + +* Tue Aug 25 2009 Karsten Hopp 4.47-6 +- don't buildrequire libusb1 on s390* + +* Tue Aug 11 2009 Bastien Nocera 4.47-5 +- More upstream CUPS fixes + +* Tue Aug 11 2009 Bastien Nocera 4.47-4 +- Fix cups discovery the first time we discover a device + +* Mon Aug 10 2009 Ville Skyttä - 4.47-3 +- Use bzipped upstream tarball. + +* Wed Aug 05 2009 Bastien Nocera 4.47-2 +- Remove hid2hci calls, they're in udev now +- Work-around udev bug, bluetoothd wasn't getting enabled + on coldplug + +* Sun Aug 02 2009 Bastien Nocera 4.47-1 +- Update to 4.47 + +* Wed Jul 29 2009 Bastien Nocera 4.46-3 +- Add rfkill plugin to restore the state of the adapters + after coming back from a blocked adapter + +* Fri Jul 24 2009 Fedora Release Engineering - 4.46-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sun Jul 19 2009 Bastien Nocera 4.46-1 +- Update to 4.46 + +* Wed Jul 08 2009 Bastien Nocera 4.45-1 +- Update to 4.45 + +* Tue Jul 07 2009 Bastien Nocera 4.44-1 +- Update to 4.44 + +* Fri Jul 03 2009 Bastien Nocera 4.43-2 +- Up the required udev requires so bluetoothd gets started + on boot when an adapter is present + +* Fri Jul 03 2009 Bastien Nocera 4.43-1 +- Update to 4.43 + +* Sun Jun 21 2009 Bastien Nocera 4.42-2 +- Update to 4.42 + +* Thu Jun 11 2009 Bastien Nocera 4.41-2 +- Switch to on-demand start/stop using udev + +* Mon Jun 08 2009 Bastien Nocera 4.41-1 +- Update to 4.41 + +* Fri Jun 05 2009 Bastien Nocera 4.40-2 +- Add patch to allow Sixaxis pairing + +* Tue May 19 2009 Bastien Nocera 4.40-1 +- Update to 4.40 + +* Sat May 09 2009 Bastien Nocera 4.39-1 +- Update to 4.39 + +* Tue May 05 2009 Petr Lautrbach 4.38-3 +- Start/stop the bluetooth service via udev (#484345) + +* Tue May 05 2009 Bastien Nocera 4.38-2 +- Add patch to activate the Socket Mobile CF kit (#498756) + +* Mon May 04 2009 Bastien Nocera 4.38-1 +- Update to 4.38 + +* Wed Apr 29 2009 Bastien Nocera 4.37-2 +- Split off dund, pand, hidd, and rfcomm helper into a compat package + (#477890, #473892) + +* Thu Apr 23 2009 - Bastien Nocera - 4.37-1 +- Update to 4.37 + +* Fri Apr 17 2009 - Bastien Nocera - 4.36-1 +- Update to 4.36 + +* Sat Apr 11 2009 - Bastien Nocera - 4.35-1 +- Update to 4.35 + +* Fri Apr 03 2009 - Bastien Nocera - 4.34-3 +- Avoid disconnecting audio devices straight after they're connected + +* Fri Apr 03 2009 - Bastien Nocera - 4.34-2 +- Don't crash when audio devices are registered and the adapter + is removed + +* Sun Mar 29 2009 - Bastien Nocera - 4.34-1 +- Update to 4.34 + +* Tue Mar 24 2009 - Bastien Nocera - 4.33-11 +- Fix a possible crasher + +* Mon Mar 16 2009 - Bastien Nocera - 4.33-1 +- Update to 4.33 + +* Sat Mar 14 2009 - Bastien Nocera - 4.32-10 +- Fix a couple of warnings in the CUPS/BlueZ 4.x patch + +* Fri Mar 13 2009 - Bastien Nocera - 4.32-9 +- Switch Wacom Bluetooth tablet to mode 2 + +* Mon Mar 09 2009 - Bastien Nocera - 4.32-8 +- Port CUPS backend to BlueZ 4.x + +* Mon Mar 09 2009 - Bastien Nocera - 4.32-7 +- A (slightly) different fix for parsing to XML when it contains a NULL + +* Mon Mar 09 2009 - Bastien Nocera - 4.32-6 +- Fix sdp_copy_record(), so records are properly exported through D-Bus + +* Fri Mar 06 2009 - Bastien Nocera - 4.32-5 +- Fix SDP parsing to XML when it contains NULLs + +* Thu Mar 05 2009 - Bastien Nocera - 4.32-4 +- Work-around broken devices that export their names in ISO-8859-1 + (#450081) + +* Thu Mar 05 2009 - Bastien Nocera - 4.32-3 +- Fix permissions on the udev rules (#479348) + +* Wed Mar 04 2009 - Bastien Nocera - 4.32-2 +- Own /usr/lib*/bluetooth and children (#474632) + +* Mon Mar 2 2009 Lennart Poettering - 4.32-1 +- Update to 4.32 + +* Thu Feb 26 2009 Lennart Poettering - 4.31-1 +- Update to 4.31 + +* Mon Feb 23 2009 Fedora Release Engineering - 4.30-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 23 2009 - Bastien Nocera - 4.30-2 +- Fix the cups backend being a libtool stub + +* Thu Feb 12 2009 - Bastien Nocera - 4.30-1 +- Update to 4.30 + +* Thu Feb 12 2009 Karsten Hopp 4.29-3 +- disable 0001-Add-icon-for-other-audio-device.patch, already upstream + +* Thu Feb 12 2009 Karsten Hopp 4.29-2 +- bluez builds fine on s390(x) and the packages are required to build + other packages, drop ExcludeArch + +* Mon Feb 09 2009 - Bastien Nocera - 4.29-1 +- Update to 4.29 + +* Mon Feb 02 2009 - Bastien Nocera - 4.28-1 +- Update to 4.28 + +* Mon Jan 19 2009 - Bastien Nocera - 4.27-1 +- Update to 4.27 + +* Fri Jan 09 2009 - Bastien Nocera - 4.26-1 +- Update to 4.26 + +* Sat Jan 03 2009 - Bastien Nocera - 4.25-1 +- Update to 4.25 + +* Tue Dec 09 2008 - Bastien Nocera - 4.22-2 +- Fix D-Bus configuration for latest D-Bus (#475069) + +* Mon Dec 08 2008 - Bastien Nocera - 4.22-1 +- Update to 4.22 + +* Mon Dec 01 2008 - Bastien Nocera - 4.21-1 +- Update to 4.21 + +* Fri Nov 21 2008 - Bastien Nocera - 4.19-1 +- Update to 4.19 + +* Mon Nov 17 2008 - Bastien Nocera - 4.18-1 +- Update to 4.18 + +* Mon Oct 27 2008 - Bastien Nocera - 4.17-2 +- Own /var/lib/bluetooth (#468717) + +* Sun Oct 26 2008 - Bastien Nocera - 4.17-1 +- Update to 4.17 + +* Tue Oct 21 2008 - Bastien Nocera - 4.16-1 +- Update to 4.16 + +* Mon Oct 20 2008 - Bastien Nocera - 4.15-1 +- Update to 4.15 + +* Fri Oct 17 2008 - Bastien Nocera - 4.14-2 +- Add script to autoload uinput on startup, so the PS3 remote + works out-of-the-box + +* Fri Oct 17 2008 - Bastien Nocera - 4.14-1 +- Update to 4.14 + +* Tue Oct 14 2008 - Bastien Nocera - 4.13-3 +- Update udev rules (#246840) + +* Mon Oct 13 2008 - Bastien Nocera - 4.13-2 +- Fix PS3 BD remote input event generation + +* Fri Oct 10 2008 - Bastien Nocera - 4.13-1 +- Update to 4.13 + +* Mon Oct 06 2008 - Bastien Nocera - 4.12-1 +- Update to 4.12 + +* Sat Oct 04 2008 - Bastien Nocera - 4.11-1 +- Update to 4.11 + +* Fri Oct 03 2008 - Bastien Nocera - 4.10-1 +- Update to 4.10 + +* Mon Sep 29 2008 - Bastien Nocera - 4.9-1 +- Update to 4.9 + +* Mon Sep 29 2008 - Bastien Nocera - 4.8-1 +- Update to 4.8 + +* Fri Sep 26 2008 - Bastien Nocera - 4.7-1 +- Update to 4.7 + +* Wed Sep 24 2008 - Bastien Nocera - 4.6-4 +- Fix patch application + +* Wed Sep 24 2008 - Bastien Nocera - 4.6-3 +- Add fuzz + +* Wed Sep 24 2008 - Bastien Nocera - 4.6-2 +- Fix possible crasher on resume from suspend + +* Sun Sep 14 2008 - David Woodhouse - 4.6-1 +- Update to 4.6 + +* Fri Sep 12 2008 - David Woodhouse - 4.5-4 +- SDP browse fixes + +* Fri Sep 12 2008 - David Woodhouse - 4.5-3 +- Bluez-alsa needs to provide/obsolete bluez-utils-alsa +- Use versioned Obsoletes: + +* Fri Sep 12 2008 - David Woodhouse - 4.5-2 +- Change main utils package name to 'bluez'; likewise its subpackages +- Remove references to obsolete initscripts (hidd,pand,dund) + +* Fri Sep 12 2008 - Bastien Nocera - 4.5-1 +- Update to 4.5 +- Fix initscript to actually start bluetoothd by hand +- Add chkconfig information to the initscript + +* Tue Sep 09 2008 - David Woodhouse - 4.4-2 +- Fix rpmlint problems +- Fix input device handling + +* Tue Sep 09 2008 - Bastien Nocera - 4.4-1 +- Update to 4.4 +- Update source address, and remove unneeded deps (thanks Marcel) + +* Mon Aug 11 2008 - Bastien Nocera - 4.1-1 +- Initial build