From ab4cc47ed211612fdfe9cf857aa760bf8fcbf0d5 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 23 2020 21:56:07 +0000 Subject: import bluez-5.50-3.el8 --- diff --git a/.bluez.metadata b/.bluez.metadata new file mode 100644 index 0000000..2dce898 --- /dev/null +++ b/.bluez.metadata @@ -0,0 +1 @@ +a59289c91ccb7fac248e916838d4e66d7936151e SOURCES/bluez-5.50.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..50d3db5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bluez-5.50.tar.xz diff --git a/SOURCES/0001-adapter-Don-t-refresh-adv_manager-for-non-LE-devices.patch b/SOURCES/0001-adapter-Don-t-refresh-adv_manager-for-non-LE-devices.patch new file mode 100644 index 0000000..46842c8 --- /dev/null +++ b/SOURCES/0001-adapter-Don-t-refresh-adv_manager-for-non-LE-devices.patch @@ -0,0 +1,51 @@ +From 2c3bba7b38be03834162e34069156f1fd49f0528 Mon Sep 17 00:00:00 2001 +From: "antoine.belvire@laposte.net" +Date: Tue, 27 Mar 2018 20:30:26 +0200 +Subject: [PATCH] adapter: Don't refresh adv_manager for non-LE devices + +btd_adv_manager_refresh is called upon MGMT_SETTING_DISCOVERABLE setting change +but as only LE adapters have an adv_manager, this leads to segmentation fault +for non-LE devices: + +0 btd_adv_manager_refresh (manager=0x0) at src/advertising.c:1176 +1 0x0000556fe45fcb02 in settings_changed (settings=, + adapter=0x556fe53f7c70) at src/adapter.c:543 +2 new_settings_callback (index=, length=, + param=, user_data=0x556fe53f7c70) at src/adapter.c:573 +3 0x0000556fe462c278 in request_complete (mgmt=mgmt@entry=0x556fe53f20c0, + status=, opcode=opcode@entry=7, index=index@entry=0, + length=length@entry=4, param=0x556fe53eb5f9) at src/shared/mgmt.c:261 +4 0x0000556fe462cd9d in can_read_data (io=, + user_data=0x556fe53f20c0) at src/shared/mgmt.c:353 +5 0x0000556fe46396e3 in watch_callback (channel=, + cond=, user_data=) + at src/shared/io-glib.c:170 +6 0x00007fe351c980e5 in g_main_context_dispatch () + from /usr/lib64/libglib-2.0.so.0 +7 0x00007fe351c984b0 in ?? () from /usr/lib64/libglib-2.0.so.0 +8 0x00007fe351c987c2 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0 +9 0x0000556fe45abc75 in main (argc=, argv=) + at src/main.c:770 + +This commit prevents the call to btd_adv_manager_refresh for non-LE devices. +--- + src/adapter.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/adapter.c b/src/adapter.c +index 6b9222bcf..daccfdc19 100644 +--- a/src/adapter.c ++++ b/src/adapter.c +@@ -540,7 +540,8 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings) + g_dbus_emit_property_changed(dbus_conn, adapter->path, + ADAPTER_INTERFACE, "Discoverable"); + store_adapter_info(adapter); +- btd_adv_manager_refresh(adapter->adv_manager); ++ if (adapter->supported_settings & MGMT_SETTING_LE) ++ btd_adv_manager_refresh(adapter->adv_manager); + } + + if (changed_mask & MGMT_SETTING_BONDABLE) { +-- +2.17.0 + diff --git a/SOURCES/0001-build-Always-define-confdir-and-statedir.patch b/SOURCES/0001-build-Always-define-confdir-and-statedir.patch new file mode 100644 index 0000000..6e0c8ca --- /dev/null +++ b/SOURCES/0001-build-Always-define-confdir-and-statedir.patch @@ -0,0 +1,35 @@ +From 69d2e7bebb79f500179298c6c51fafbc217df6c8 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 20 Sep 2017 12:49:10 +0200 +Subject: [PATCH 1/4] build: Always define confdir and statedir + +As we will need those paths to lock down on them. +--- + Makefile.am | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 555f301ca..1c38d94e5 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -30,14 +30,14 @@ include_HEADERS = + AM_CFLAGS = $(WARNING_CFLAGS) $(MISC_CFLAGS) + AM_LDFLAGS = $(MISC_LDFLAGS) + ++confdir = $(sysconfdir)/bluetooth ++statedir = $(localstatedir)/lib/bluetooth ++ + if DATAFILES + dbusdir = @DBUS_CONFDIR@/dbus-1/system.d + dbus_DATA = src/bluetooth.conf + +-confdir = $(sysconfdir)/bluetooth + conf_DATA = +- +-statedir = $(localstatedir)/lib/bluetooth + state_DATA = + endif + +-- +2.14.1 + diff --git a/SOURCES/0001-build-Enable-BIND_NOW.patch b/SOURCES/0001-build-Enable-BIND_NOW.patch new file mode 100644 index 0000000..b7c7e57 --- /dev/null +++ b/SOURCES/0001-build-Enable-BIND_NOW.patch @@ -0,0 +1,31 @@ +From e45c8fdcb3d7cdb654f6819c02d1bbb5b40b6116 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Thu, 7 Nov 2013 09:23:35 +0100 +Subject: [PATCH 1/4] build: Enable BIND_NOW + +Partial RELRO means that the object is GNU_RELRO but not BIND_NOW. This +reduces the effectiveness of RELRO. bluez triggers this because it +enables PIE during the build, and rpmdiff takes this as an indicator +that the best possible hardening is desired. + +https://bugzilla.redhat.com/show_bug.cgi?id=983161 +--- + acinclude.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index bc39c6d73..efce2f3cb 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -50,7 +50,7 @@ AC_DEFUN([MISC_FLAGS], [ + if (test "${enableval}" = "yes" && + test "${ac_cv_prog_cc_pie}" = "yes"); then + misc_cflags="$misc_cflags -fPIC" +- misc_ldflags="$misc_ldflags -pie" ++ misc_ldflags="$misc_ldflags -pie -Wl,-z,now" + fi + ]) + if (test "$enable_coverage" = "yes"); then +-- +2.14.1 + 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..1242069 --- /dev/null +++ b/SOURCES/0001-core-Add-AlwaysPairable-to-main.conf.patch @@ -0,0 +1,151 @@ +From 4aa826664dd5d6e784162c2393149ecb01550fb1 Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Wed, 18 Dec 2019 19:31:49 +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. +--- + src/adapter.c | 16 +++++++++++++++- + src/agent.h | 7 +++++++ + src/device.c | 2 -- + src/hcid.h | 1 + + src/main.c | 11 +++++++++++ + src/main.conf | 5 +++++ + 6 files changed, 39 insertions(+), 3 deletions(-) + +diff --git a/src/adapter.c b/src/adapter.c +index af340fd6e..720621f47 100644 +--- a/src/adapter.c ++++ b/src/adapter.c +@@ -7754,6 +7754,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; + +@@ -8682,7 +8695,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 4f1af7012..0d7907a69 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 2c2b89d9c..ba250578a 100644 +--- a/src/hcid.h ++++ b/src/hcid.h +@@ -38,6 +38,7 @@ typedef enum { + struct main_opts { + char *name; + uint32_t class; ++ gboolean pairable; + uint32_t pairto; + uint32_t discovto; + uint8_t privacy; +diff --git a/src/main.c b/src/main.c +index 7e6af42cd..156406343 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -81,6 +81,7 @@ static const char *supported_options[] = { + "Name", + "Class", + "DiscoverableTimeout", ++ "AlwaysPairable" + "PairableTimeout", + "DeviceID", + "ReverseServiceDiscovery", +@@ -287,6 +288,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 cbae32ec5..0d480d183 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-hostname-Fix-BlueZ-5.XX-adapter-name-on-startup.patch b/SOURCES/0001-hostname-Fix-BlueZ-5.XX-adapter-name-on-startup.patch new file mode 100644 index 0000000..4caffdb --- /dev/null +++ b/SOURCES/0001-hostname-Fix-BlueZ-5.XX-adapter-name-on-startup.patch @@ -0,0 +1,38 @@ +From cba55944f76ad0f01bb7c8976fd6699f058c68cd Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 20 Sep 2017 14:42:14 +0200 +Subject: [PATCH] hostname: Fix "BlueZ 5.XX" adapter name on startup + +The hostname plugin listens to property changes from systemd-hostnamed +but doesn't fetch initial values. This means that unless the +PrettyHostname or StaticHostname changes, the default adapter will be +called "BlueZ 5.XX" matching the version number. + +This is the case since the hostname plugin replaced the adaptername +plugin in 2012. + +Fetch the initial values for PrettyHostname, StaticHostname and +Chassis when the plugin is initiated, so as to make the values +available for adapter setup. +--- + plugins/hostname.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/plugins/hostname.c b/plugins/hostname.c +index f876d0afb..db9187378 100644 +--- a/plugins/hostname.c ++++ b/plugins/hostname.c +@@ -307,6 +307,10 @@ static int hostname_init(void) + hostname_proxy = NULL; + g_dbus_client_unref(hostname_client); + hostname_client = NULL; ++ } else { ++ g_dbus_proxy_refresh_property(hostname_proxy, "PrettyHostname"); ++ g_dbus_proxy_refresh_property(hostname_proxy, "StaticHostname"); ++ g_dbus_proxy_refresh_property(hostname_proxy, "Chassis"); + } + + return err; +-- +2.14.1 + 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..f79d3ad --- /dev/null +++ b/SOURCES/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch @@ -0,0 +1,38 @@ +From 90b72b787a6ae6b9b0bf8ece238e108e8607a433 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Sat, 9 Nov 2013 18:13:43 +0100 +Subject: [PATCH 1/2] 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 f84384ae4..285c07c37 100644 +--- a/obexd/src/manager.c ++++ b/obexd/src/manager.c +@@ -650,14 +650,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); + } + } + +-- +2.14.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..abe2dc0 --- /dev/null +++ b/SOURCES/0002-agent-Make-the-first-agent-to-register-the-default.patch @@ -0,0 +1,61 @@ +From 997fd427eab3770d11f3d0c9f04629a6cefc22b4 Mon Sep 17 00:00:00 2001 +From: Gopal Tiwari +Date: Wed, 18 Dec 2019 19:33:33 +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. +--- + 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-systemd-Add-PrivateTmp-and-NoNewPrivileges-options.patch b/SOURCES/0002-systemd-Add-PrivateTmp-and-NoNewPrivileges-options.patch new file mode 100644 index 0000000..cd9f69e --- /dev/null +++ b/SOURCES/0002-systemd-Add-PrivateTmp-and-NoNewPrivileges-options.patch @@ -0,0 +1,38 @@ +From 4570164f0c90603bd07eb9e7c07e17bbafb5b5da Mon Sep 17 00:00:00 2001 +From: Craig Andrews +Date: Wed, 13 Sep 2017 15:23:09 +0200 +Subject: [PATCH 2/4] systemd: Add PrivateTmp and NoNewPrivileges options + +PrivateTmp makes bluetoothd's /tmp and /var/tmp be inside a different +namespace. This is useful to secure access to temporary files of the +process. + +NoNewPrivileges ensures that service process and all its children +can never gain new privileges through execve(), lowering the risk of +possible privilege escalations. +--- + src/bluetooth.service.in | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in +index f799f65f0..a6f3030f9 100644 +--- a/src/bluetooth.service.in ++++ b/src/bluetooth.service.in +@@ -12,8 +12,14 @@ NotifyAccess=main + #Restart=on-failure + CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE + LimitNPROC=1 ++ ++# Filesystem lockdown + ProtectHome=true + ProtectSystem=full ++PrivateTmp=true ++ ++# Privilege escalation ++NoNewPrivileges=true + + [Install] + WantedBy=bluetooth.target +-- +2.14.1 + diff --git a/SOURCES/0003-systemd-Add-more-filesystem-lockdown.patch b/SOURCES/0003-systemd-Add-more-filesystem-lockdown.patch new file mode 100644 index 0000000..6d14e2e --- /dev/null +++ b/SOURCES/0003-systemd-Add-more-filesystem-lockdown.patch @@ -0,0 +1,43 @@ +From 73a9c0902e7c97adf96e735407a75033152c04a9 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 13 Sep 2017 15:37:11 +0200 +Subject: [PATCH 3/4] systemd: Add more filesystem lockdown + +We can only access the configuration file as read-only and read-write +to the Bluetooth cache directory and sub-directories. +--- + Makefile.am | 2 ++ + src/bluetooth.service.in | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 1c38d94e5..13ccf9079 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -478,6 +478,8 @@ MAINTAINERCLEANFILES = Makefile.in \ + + SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ + $(SED) -e 's,@libexecdir\@,$(libexecdir),g' \ ++ -e 's,@statedir\@,$(statedir),g' \ ++ -e 's,@confdir\@,$(confdir),g' \ + < $< > $@ + + %.service: %.service.in Makefile +diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in +index a6f3030f9..7e55b5043 100644 +--- a/src/bluetooth.service.in ++++ b/src/bluetooth.service.in +@@ -17,6 +17,10 @@ LimitNPROC=1 + ProtectHome=true + ProtectSystem=full + PrivateTmp=true ++ProtectKernelTunables=true ++ProtectControlGroups=true ++ReadWritePaths=@statedir@ ++ReadOnlyPaths=@confdir@ + + # Privilege escalation + NoNewPrivileges=true +-- +2.14.1 + diff --git a/SOURCES/0003-tools-csr_usb-Fix-compilation-failure.patch b/SOURCES/0003-tools-csr_usb-Fix-compilation-failure.patch new file mode 100644 index 0000000..1113fe7 --- /dev/null +++ b/SOURCES/0003-tools-csr_usb-Fix-compilation-failure.patch @@ -0,0 +1,41 @@ +From 07a12a6685ea57be18f39e349dbc42e4af3744ed Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Tue, 5 Sep 2017 10:32:15 +0200 +Subject: [PATCH 3/4] tools/csr_usb: Fix compilation failure + +GCC's "format-nonliteral" security check is enabled as an error in +recent versions of Fedora. Given the reduced scope of use, mark the +error as ignorable through pragma. + +tools/csr_usb.c: In function 'read_value': +tools/csr_usb.c:82:2: error: format not a string literal, argument types not checked [-Werror=format-nonliteral] + n = fscanf(file, format, &value); + ^ +--- + tools/csr_usb.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/tools/csr_usb.c b/tools/csr_usb.c +index a1d7324f7..33e9968a2 100644 +--- a/tools/csr_usb.c ++++ b/tools/csr_usb.c +@@ -67,6 +67,8 @@ struct usbfs_bulktransfer { + #define USBFS_IOCTL_CLAIMINTF _IOR('U', 15, unsigned int) + #define USBFS_IOCTL_RELEASEINTF _IOR('U', 16, unsigned int) + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + static int read_value(const char *name, const char *attr, const char *format) + { + char path[PATH_MAX]; +@@ -88,6 +90,7 @@ static int read_value(const char *name, const char *attr, const char *format) + fclose(file); + return value; + } ++#pragma GCC diagnostic pop + + static char *check_device(const char *name) + { +-- +2.14.1 + diff --git a/SOURCES/0004-systemd-More-lockdown.patch b/SOURCES/0004-systemd-More-lockdown.patch new file mode 100644 index 0000000..3ad3e14 --- /dev/null +++ b/SOURCES/0004-systemd-More-lockdown.patch @@ -0,0 +1,34 @@ +From 171d812218883281fed57b57fafd5c18eac441ac Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 13 Sep 2017 15:38:26 +0200 +Subject: [PATCH 4/4] systemd: More lockdown + +bluetoothd does not need to execute mapped memory, or real-time +access, so block those. +--- + src/bluetooth.service.in | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in +index 7e55b5043..e8267b338 100644 +--- a/src/bluetooth.service.in ++++ b/src/bluetooth.service.in +@@ -22,9 +22,15 @@ ProtectControlGroups=true + ReadWritePaths=@statedir@ + ReadOnlyPaths=@confdir@ + ++# Execute Mappings ++MemoryDenyWriteExecute=true ++ + # Privilege escalation + NoNewPrivileges=true + ++# Real-time ++RestrictRealtime=true ++ + [Install] + WantedBy=bluetooth.target + Alias=dbus-org.bluez.service +-- +2.14.1 + diff --git a/SOURCES/69-btattach-bcm.rules b/SOURCES/69-btattach-bcm.rules new file mode 100644 index 0000000..dfe8d1e --- /dev/null +++ b/SOURCES/69-btattach-bcm.rules @@ -0,0 +1,33 @@ +# Some devices have a bluetooth HCI connected to an uart, these needs to be +# setup by calling btattach. The systemd btattach-bcm.service takes care of +# this. These udev rules hardware-activate that service when necessary. +# +# For now this only suports ACPI enumerated Broadcom BT HCIs. +# This has been tested on Bay and Cherry Trail devices with both ACPI and +# PCI enumerated UARTs. + +# Note we check for the platform device not for the acpi device, because +# some DSDTs list multiple bluetooth adapters, but only some (or none) +# are enabled. Only enabled adapters get a platform device created. +ACTION!="add", GOTO="btattach_bcm_rules_end" +SUBSYSTEM!="platform", GOTO="btattach_bcm_rules_end" + +KERNEL=="BCM2E1A:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E39:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E3A:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E3D:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E3F:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E40:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E54:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E55:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E64:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E65:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E67:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E71:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E7B:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E7C:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E7E:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E95:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" +KERNEL=="BCM2E96:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service" + +LABEL="btattach_bcm_rules_end" 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/SOURCES/btattach-bcm-service.sh b/SOURCES/btattach-bcm-service.sh new file mode 100644 index 0000000..c7f8b17 --- /dev/null +++ b/SOURCES/btattach-bcm-service.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Simple shell script to wait for the tty for an uart using BT HCI to show up +# and then invoke btattach with the right parameters, this is intended to be +# invoked from a hardware-activated systemd service +# +# For now this only suports ACPI enumerated Broadcom BT HCIs. +# This has been tested on Bay and Cherry Trail devices with both ACPI and +# PCI enumerated UARTs. +# +# Note the kernel bt developers are working on solving this entirely in the +# kernel, so it is not worth the trouble to write something better then this. + +BT_DEV="/sys/bus/platform/devices/$1" +BT_DEV="$(readlink -f $BT_DEV)" +UART_DEV="$(dirname $BT_DEV)" + +# Stupid GPD-pocket has USB BT with id 0000:0000, but still claims to have +# an uart attached bt +if [ "$1" = "BCM2E7E:00" ] && lsusb | grep -q "ID 0000:0000"; then + exit 0 +fi + +while [ ! -d "$UART_DEV/tty" ]; do + sleep .2 +done + +TTY="$(ls $UART_DEV/tty)" + +exec btattach --bredr "/dev/$TTY" -P bcm diff --git a/SOURCES/btattach-bcm@.service b/SOURCES/btattach-bcm@.service new file mode 100644 index 0000000..1e7c7db --- /dev/null +++ b/SOURCES/btattach-bcm@.service @@ -0,0 +1,6 @@ +[Unit] +Description=btattach for Broadcom devices + +[Service] +Type=simple +ExecStart=/usr/libexec/bluetooth/btattach-bcm-service.sh %I diff --git a/SPECS/bluez.spec b/SPECS/bluez.spec new file mode 100644 index 0000000..f13c731 --- /dev/null +++ b/SPECS/bluez.spec @@ -0,0 +1,1073 @@ +Name: bluez +Summary: Bluetooth utilities +Version: 5.50 +Release: 3%{?dist} +License: GPLv2+ +URL: http://www.bluez.org/ + +Source0: http://www.kernel.org/pub/linux/bluetooth/bluez-%{version}.tar.xz +Source1: bluez.gitignore + +# Scripts for automatically btattach-ing serial ports connected to Broadcom HCIs +# as found on some Atom based x86 hardware +Source2: 69-btattach-bcm.rules +Source3: btattach-bcm@.service +Source4: btattach-bcm-service.sh + +# https://github.com/hadess/bluez/commits/build-fixes-5.46 +Patch1: 0001-build-Enable-BIND_NOW.patch +Patch2: 0003-tools-csr_usb-Fix-compilation-failure.patch + +# https://github.com/hadess/bluez/commits/obex-5.46 +Patch3: 0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch + +# https://github.com/hadess/bluez/commits/hostname-plugin-5.47 +Patch4: 0001-hostname-Fix-BlueZ-5.XX-adapter-name-on-startup.patch + +# https://github.com/hadess/bluez/commits/systemd-hardening +Patch20: 0001-build-Always-define-confdir-and-statedir.patch +Patch21: 0002-systemd-Add-PrivateTmp-and-NoNewPrivileges-options.patch +Patch22: 0003-systemd-Add-more-filesystem-lockdown.patch +Patch23: 0004-systemd-More-lockdown.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1567622 +Patch24: 0001-adapter-Don-t-refresh-adv_manager-for-non-LE-devices.patch + +Patch25: 0001-core-Add-AlwaysPairable-to-main.conf.patch +Patch26: 0002-agent-Make-the-first-agent-to-register-the-default.patch + +BuildRequires: git-core +BuildRequires: dbus-devel >= 1.6 +BuildRequires: glib2-devel +BuildRequires: libical-devel +BuildRequires: readline-devel +# For bluetooth mesh +BuildRequires: json-c-devel +# For cable pairing +BuildRequires: systemd-devel +# For printing +BuildRequires: cups-devel +# For autoreconf +BuildRequires: libtool automake autoconf + +Requires: dbus >= 1.6 + +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%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 + +%package libs-devel +Summary: Development libraries for Bluetooth applications +Requires: bluez-libs%{?_isa} = %{version}-%{release} + +%package cups +Summary: CUPS printer backend for Bluetooth printers +Requires: bluez%{?_isa} = %{version}-%{release} +Requires: cups + +%package hid2hci +Summary: Put HID proxying bluetooth HCI's into HCI mode +Requires: bluez%{?_isa} = %{version}-%{release} + +%package obexd +Summary: Object Exchange daemon for sharing content +Requires: bluez%{?_isa} = %{version}-%{release} +Requires: bluez-libs%{?_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. + +%description obexd +Object Exchange daemon for sharing files, contacts etc over bluetooth + +%prep +%autosetup -S git + +%build +libtoolize -f +autoreconf -f -i +%configure --enable-tools --enable-library --enable-deprecated \ + --enable-sixaxis --enable-cups --enable-nfc \ + --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}/%{_udevrulesdir}/97-hid2hci.rules + +install -d -m0755 $RPM_BUILD_ROOT/%{_localstatedir}/lib/bluetooth + +mkdir -p $RPM_BUILD_ROOT/%{_libdir}/bluetooth/ + +#copy bluetooth config file and setup auto enable +install -D -p -m0644 src/main.conf ${RPM_BUILD_ROOT}/etc/bluetooth/main.conf +sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' ${RPM_BUILD_ROOT}/%{_sysconfdir}/bluetooth/main.conf + +#serial port connected Broadcom HCIs scripts +install -D -p -m0644 %{SOURCE2} ${RPM_BUILD_ROOT}/%{_udevrulesdir}/ +install -D -p -m0644 %{SOURCE3} ${RPM_BUILD_ROOT}/%{_unitdir}/ +install -D -p -m0755 %{SOURCE4} ${RPM_BUILD_ROOT}/%{_libexecdir}/bluetooth/ + +%check +make check + +%ldconfig_scriptlets libs + +%post +%systemd_post bluetooth.service + +%preun +%systemd_preun bluetooth.service + +%postun +%systemd_postun_with_restart bluetooth.service + +%post hid2hci +/sbin/udevadm trigger --subsystem-match=usb + +%post obexd +%systemd_user_post obex.service + +%preun obexd +%systemd_user_preun obex.service + +%files +%{!?_licensedir:%global license %%doc} +%license COPYING +%doc AUTHORS ChangeLog +%config %{_sysconfdir}/dbus-1/system.d/bluetooth.conf +%config %{_sysconfdir}/bluetooth/main.conf +%{_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/btattach-bcm-service.sh +%{_libdir}/bluetooth/ +%{_localstatedir}/lib/bluetooth +%{_datadir}/dbus-1/system-services/org.bluez.service +%{_unitdir}/bluetooth.service +%{_unitdir}/btattach-bcm@.service +%{_udevrulesdir}/69-btattach-bcm.rules + +%files libs +%{!?_licensedir:%global license %%doc} +%license COPYING +%{_libdir}/libbluetooth.so.* + +%files libs-devel +%doc doc/*txt +%{_libdir}/libbluetooth.so +%{_includedir}/bluetooth +%{_libdir}/pkgconfig/bluez.pc + +%files cups +%_cups_serverbin/backend/bluetooth + +%files hid2hci +/usr/lib/udev/hid2hci +%{_mandir}/man1/hid2hci.1* +%{_udevrulesdir}/97-hid2hci.rules + +%files obexd +%{_libexecdir}/bluetooth/obexd +%{_datadir}/dbus-1/services/org.bluez.obex.service +%{_userunitdir}/obex.service + +%changelog + +* Mon Jan 13 2020 Gopal Tiwari - 5.50-3 ++ bluez-5.50-3 +- Bump the version + +* Mon Jan 13 2020 Gopal Tiwari - 5.50-2 ++ bluez-5.50-2 +- Fixing CVE-2018-10910 (#1606373) + +* Fri Sep 7 2018 Gopal Tiwari - 5.50-1 ++ bluez-5.50-1 +- Update to 5.50 (#1504689) + +* Fri Aug 24 2018 Gopal Tiwari - 5.49-6 ++ bluez-5.49-6 +- Disabling Mesh Networking for crypto issue while code reviewing. + +* Tue Aug 14 2018 Gopal Tiwari - 5.49-5 ++ bluez-5.49-5 +- Fix accessing NULL adv_manager (#1602779) + +* Fri Apr 20 2018 Bastien Nocera - 5.49-3 ++ bluez-5.49-3 +- Fix crash on non-LE adapters (#1567622) + +* Tue Mar 27 2018 Björn Esser - 5.49-2 +- Rebuilt for libjson-c.so.4 (json-c v0.13.1) on fc28 + +* Tue Mar 20 2018 Peter Robinson 5.49-1 +- Update to 5.49 + +* Tue Mar 06 2018 Björn Esser - 5.48-5 +- Rebuilt for libjson-c.so.4 (json-c v0.13.1) + +* Fri Feb 09 2018 Bastien Nocera - 5.48-4 +- Fix PulseAudio interaction on resume (#1534857) + +* Wed Feb 07 2018 Fedora Release Engineering - 5.48-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 5.48-2 +- Switch to %%ldconfig_scriptlets + +* Thu Dec 28 2017 Pete Walter - 5.48-1 +- Update to 5.48 + +* Sun Dec 10 2017 Björn Esser - 5.47-7 +- Rebuilt for libjson-c.so.3 + +* Fri Nov 10 2017 Leigh Scott - 5.47-6 +- Rebuild for libical 3.x + +* Fri Oct 27 2017 Don Zickus - 5.47-5 +- Enable unit tests (Marek Kasik) +- Resolves: #1502677 + +* Tue Oct 10 2017 Bastien Nocera - 5.47-4 ++ bluez-5.47-4 +- Fix invalid paths in service file (#1499518) + +* Wed Sep 20 2017 Bastien Nocera - 5.47-3 ++ bluez-5.47-3 +- Fix adapter name not picking up PrettyHostname + +* Wed Sep 20 2017 Bastien Nocera - 5.47-2 ++ bluez-5.47-2 +- Lockdown Bluetooth systemd service + +* Thu Sep 14 2017 Peter Robinson 5.47-1 +- New upstream 5.47 bugfix release +- Initial support for Bluetooth LE mesh +- Blueooth 5 fixes and improvements + +* Mon Sep 11 2017 Don Zickus - 5.46-6 +- sdpd heap fixes +Resolves: rhbz#1490911 + +* Thu Sep 07 2017 Hans de Goede - 5.46-5 +- Add scripts to automatically btattach serial-port / uart connected + Broadcom HCIs found on some Atom based x86 hardware + +* Mon Sep 04 2017 Bastien Nocera - 5.46-4 ++ bluez-5.46-4 +- Patches cleanup +- Add DualShock4 cable pairing support +- BIND_NOW support for RELRO +- iCade autopairing support + +* Wed Aug 02 2017 Fedora Release Engineering - 5.46-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 5.46-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Peter Robinson 4.46-1 +- Update to 5.46 + +* Tue May 16 2017 Peter Robinson 5.45-1 +- Update to 5.45 +- Minor spec cleanups +- Include api docs in devel package + +* Sun Mar 12 2017 Peter Robinson 5.44-1 +- Update to 5.44 +- Enable deprecated option to keep all usual tools +- Ship btattach tool +- Minor spec cleanups + +* Fri Feb 10 2017 Fedora Release Engineering - 5.43-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Feb 3 2017 Don Zickus 5.43-3 +- Configure systemctl settings for bluez-obexd correctly +- Resolves rhbz#1259827 + +* Thu Jan 12 2017 Igor Gnatenko - 5.43-2 +- Rebuild for readline 7.x + +* Mon Oct 31 2016 Don Zickus 5.43-1 +- Update to 5.43 + +* Tue Oct 25 2016 Don Zickus 5.42-2 +- Fix OBEX connections + +* Wed Oct 19 2016 Peter Robinson 5.42-1 +- Update to 5.42 + +* Mon Aug 1 2016 Don Zickus 5.41-1 +- Update to 5.41 + +* Thu Jul 7 2016 Don Zickus 5.40-2 +- obexd fixes to prevent crashes +- add /etc/bluetooth/main.conf config file +- set 'AutoEnable=true' in /etc/bluetooth/main.conf file + +* Tue May 31 2016 Peter Robinson 5.40-1 +- Update to 5.40 bugfix relesae + +* Fri Apr 15 2016 David Tardon - 5.39-2 +- rebuild for ICU 57.1 + +* Tue Apr 12 2016 Peter Robinson 5.39-1 +- Update to 5.39 bugfix relesae + +* Sun Apr 3 2016 Peter Robinson 5.38-1 +- Update to 5.38 + +* Wed Feb 03 2016 Fedora Release Engineering - 5.37-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Jan 18 2016 David Tardon - 5.37-2 +- rebuild for libical 2.0.0 + +* Tue Dec 29 2015 Peter Robinson 5.37-1 +- Update to 5.37 + +* Fri Nov 13 2015 Peter Robinson 5.36-1 +- Update to 5.36 + +* Fri Oct 30 2015 Peter Robinson 5.35-2 +- Split obexd out into a sub package + +* Mon Oct 5 2015 Peter Robinson 5.35-1 +- Update to 5.35 + +* Tue Sep 8 2015 Peter Robinson 5.34-1 +- Update to 5.34 + +* Fri Jul 31 2015 Peter Robinson 5.33-1 +- Update to 5.33 + +* Wed Jul 8 2015 Peter Robinson 5.32-1 +- Update to 5.32 + +* Mon Jun 22 2015 Peter Robinson 5.31-1 +- Update to 5.31 + +* Wed Jun 17 2015 Fedora Release Engineering - 5.30-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Lubomir Rintel - 5.30-2 +- Fix NAP connections (rh #1230461) + +* Wed Apr 29 2015 Peter Robinson - 5.30-1 +- Update to 5.30 +- Use %%license + +* Sun Mar 29 2015 David Tardon - 5.29-2 +- fix header file + +* Wed Mar 25 2015 Don Zickus 5.29-1 +- Update to 5.29 + +* Wed Mar 11 2015 Bastien Nocera 5.28-1 +- Update to 5.28 + +* Thu Nov 20 2014 Bastien Nocera 5.25-1 +- Update to 5.25 + +* Thu Oct 30 2014 Eric Smith 5.23-2 +- Install gatttool and mpris-proxy + +* Tue Sep 23 2014 Bastien Nocera 5.23-1 +- Update to 5.23 + +* Fri Aug 15 2014 Fedora Release Engineering - 5.18-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 5.18-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 14 2014 Bastien Nocera 5.18-1 +- Update to 5.18 + +* Wed Mar 26 2014 Bastien Nocera 5.17-1 +- Update to 5.17 + +* Thu Mar 13 2014 Bastien Nocera 5.16-1 +- Update to 5.16 + +* Wed Jan 29 2014 Bastien Nocera 5.14-1 +- Update to 5.14 + +* Mon Jan 06 2014 Bastien Nocera 5.13-1 +- Update to 5.13 +- Enable sixaxis plugin by default + +* Thu Dec 12 2013 Bastien Nocera 5.12-2 +- This update fixes Sixaxis PS3 joypad detection + +* Wed Dec 11 2013 Bastien Nocera 5.12-1 +- Update to 5.12 +- Sixaxis PS3 joypad support is now upstream + +* Tue Dec 10 2013 Bastien Nocera 5.11-2 +- Add crasher fixes (rhbz #1027365) + +* Mon Nov 18 2013 Bastien Nocera 5.11-1 +- Update to 5.11 + +* Tue Nov 12 2013 Bastien Nocera 5.10-4 +- Default to the XDG cache dir for receiving files + +* Mon Oct 21 2013 Bastien Nocera 5.10-3 +- Remove a few obsolete BRs and deps, thanks to Marcel Holtmann + +* Mon Oct 21 2013 Bastien Nocera 5.10-2 +- Add non-upstreamable patch to make bluetooth-sendto work again + +* Thu Oct 17 2013 Bastien Nocera 5.10-1 +- Update to 5.10 + +* Fri Sep 20 2013 Kalev Lember 5.9-4 +- Obsolete blueman-nautilus as well + +* Fri Sep 20 2013 Kalev Lember 5.9-3 +- Obsolete blueman and obex-data-server + +* Fri Sep 20 2013 Bastien Nocera 5.9-2 +- Fix problem unsetting discoverable + +* Fri Sep 20 2013 Bastien Nocera 5.9-1 +- Update to 5.9 + +* Fri Aug 16 2013 Kalev Lember - 5.8-2 +- Don't pull in -libs for the other subpackages +- Remove a stray .la file + +* Sat Aug 10 2013 Kalev Lember - 5.8-1 +- Update to 5.8 +- Hardened build +- Use systemd rpm macros + +* Sat Aug 10 2013 Kalev Lember - 5.5-1 +- Update to 5.5, based on earlier work from + https://bugzilla.redhat.com/show_bug.cgi?id=974145 + +* Sat Aug 03 2013 Fedora Release Engineering - 4.101-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 23 2013 Bastien Nocera 4.101-9 +- Fix trust setting in Sixaxis devices + +* Wed Jun 26 2013 Bastien Nocera 4.101-8 +- Another pass at fixing A2DP support (#964031) + +* 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