Sync from SUSE:SLFO:Main bluez revision 89d47f2b9f4c2299108dae2948932ca5
This commit is contained in:
parent
54808e9c76
commit
f5c41b830c
@ -8,11 +8,11 @@ Subject: [PATCH] bcm43xx: The UART speed must be reset after the firmware
|
|||||||
tools/hciattach_bcm43xx.c | 6 ++----
|
tools/hciattach_bcm43xx.c | 6 ++----
|
||||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
Index: bluez-5.60/tools/hciattach_bcm43xx.c
|
Index: bluez-5.71/tools/hciattach_bcm43xx.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- bluez-5.60.orig/tools/hciattach_bcm43xx.c
|
--- bluez-5.71.orig/tools/hciattach_bcm43xx.c
|
||||||
+++ bluez-5.60/tools/hciattach_bcm43xx.c
|
+++ bluez-5.71/tools/hciattach_bcm43xx.c
|
||||||
@@ -354,11 +354,8 @@ int bcm43xx_init(int fd, int def_speed,
|
@@ -350,11 +350,8 @@ int bcm43xx_init(int fd, int def_speed,
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
|
if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
|
||||||
@ -25,7 +25,7 @@ Index: bluez-5.60/tools/hciattach_bcm43xx.c
|
|||||||
if (bcm43xx_load_firmware(fd, fw_path))
|
if (bcm43xx_load_firmware(fd, fw_path))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -368,6 +365,7 @@ int bcm43xx_init(int fd, int def_speed,
|
@@ -364,6 +361,7 @@ int bcm43xx_init(int fd, int def_speed,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,310 +0,0 @@
|
|||||||
From 3a9c637010f8dc1ba3e8382abe01065761d4f5bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
|
|
||||||
Date: Tue, 10 Oct 2023 12:38:29 -0700
|
|
||||||
Subject: [PATCH] input: Fix .device_probe failing if SDP record is not found
|
|
||||||
|
|
||||||
Due to changes introduced by 67a26abe53bf
|
|
||||||
("profile: Add probe_on_discover flag") profiles may get probed when
|
|
||||||
their profile UUID are discovered, rather than resolved, which means
|
|
||||||
the SDP record may not be available.
|
|
||||||
|
|
||||||
Fixes: https://github.com/bluez/bluez/issues/614
|
|
||||||
---
|
|
||||||
profiles/input/device.c | 182 +++++++++++++++++++---------------------
|
|
||||||
1 file changed, 84 insertions(+), 98 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/profiles/input/device.c b/profiles/input/device.c
|
|
||||||
index e2ac6ea60..4a50ea992 100644
|
|
||||||
--- a/profiles/input/device.c
|
|
||||||
+++ b/profiles/input/device.c
|
|
||||||
@@ -60,7 +60,7 @@ struct input_device {
|
|
||||||
char *path;
|
|
||||||
bdaddr_t src;
|
|
||||||
bdaddr_t dst;
|
|
||||||
- uint32_t handle;
|
|
||||||
+ const sdp_record_t *rec;
|
|
||||||
GIOChannel *ctrl_io;
|
|
||||||
GIOChannel *intr_io;
|
|
||||||
guint ctrl_watch;
|
|
||||||
@@ -754,7 +754,8 @@ static void epox_endian_quirk(unsigned char *data, int size)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req)
|
|
||||||
+static int create_hid_dev_name(const sdp_record_t *rec,
|
|
||||||
+ struct hidp_connadd_req *req)
|
|
||||||
{
|
|
||||||
char sdesc[sizeof(req->name) / 2];
|
|
||||||
|
|
||||||
@@ -776,7 +777,7 @@ static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req)
|
|
||||||
|
|
||||||
/* See HID profile specification v1.0, "7.11.6 HIDDescriptorList" for details
|
|
||||||
* on the attribute format. */
|
|
||||||
-static int extract_hid_desc_data(sdp_record_t *rec,
|
|
||||||
+static int extract_hid_desc_data(const sdp_record_t *rec,
|
|
||||||
struct hidp_connadd_req *req)
|
|
||||||
{
|
|
||||||
sdp_data_t *d;
|
|
||||||
@@ -817,36 +818,40 @@ invalid_desc:
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int extract_hid_record(sdp_record_t *rec, struct hidp_connadd_req *req)
|
|
||||||
+static int extract_hid_record(struct input_device *idev,
|
|
||||||
+ struct hidp_connadd_req *req)
|
|
||||||
{
|
|
||||||
sdp_data_t *pdlist;
|
|
||||||
uint8_t attr_val;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
- err = create_hid_dev_name(rec, req);
|
|
||||||
+ if (!idev->rec)
|
|
||||||
+ return -ENOENT;
|
|
||||||
+
|
|
||||||
+ err = create_hid_dev_name(idev->rec, req);
|
|
||||||
if (err < 0)
|
|
||||||
DBG("No valid Service Name or Service Description found");
|
|
||||||
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_PARSER_VERSION);
|
|
||||||
+ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_PARSER_VERSION);
|
|
||||||
req->parser = pdlist ? pdlist->val.uint16 : 0x0100;
|
|
||||||
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_DEVICE_SUBCLASS);
|
|
||||||
+ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_DEVICE_SUBCLASS);
|
|
||||||
req->subclass = pdlist ? pdlist->val.uint8 : 0;
|
|
||||||
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
|
|
||||||
+ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_COUNTRY_CODE);
|
|
||||||
req->country = pdlist ? pdlist->val.uint8 : 0;
|
|
||||||
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_VIRTUAL_CABLE);
|
|
||||||
+ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_VIRTUAL_CABLE);
|
|
||||||
attr_val = pdlist ? pdlist->val.uint8 : 0;
|
|
||||||
if (attr_val)
|
|
||||||
req->flags |= (1 << HIDP_VIRTUAL_CABLE_UNPLUG);
|
|
||||||
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_BOOT_DEVICE);
|
|
||||||
+ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_BOOT_DEVICE);
|
|
||||||
attr_val = pdlist ? pdlist->val.uint8 : 0;
|
|
||||||
if (attr_val)
|
|
||||||
req->flags |= (1 << HIDP_BOOT_PROTOCOL_MODE);
|
|
||||||
|
|
||||||
- err = extract_hid_desc_data(rec, req);
|
|
||||||
+ err = extract_hid_desc_data(idev->rec, req);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
@@ -1035,11 +1040,6 @@ static gboolean encrypt_notify(GIOChannel *io, GIOCondition condition,
|
|
||||||
static int hidp_add_connection(struct input_device *idev)
|
|
||||||
{
|
|
||||||
struct hidp_connadd_req *req;
|
|
||||||
- sdp_record_t *rec;
|
|
||||||
- char src_addr[18], dst_addr[18];
|
|
||||||
- char filename[PATH_MAX];
|
|
||||||
- GKeyFile *key_file;
|
|
||||||
- char handle[11], *str;
|
|
||||||
GError *gerr = NULL;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
@@ -1049,33 +1049,7 @@ static int hidp_add_connection(struct input_device *idev)
|
|
||||||
req->flags = 0;
|
|
||||||
req->idle_to = idle_timeout;
|
|
||||||
|
|
||||||
- ba2str(&idev->src, src_addr);
|
|
||||||
- ba2str(&idev->dst, dst_addr);
|
|
||||||
-
|
|
||||||
- snprintf(filename, PATH_MAX, STORAGEDIR "/%s/cache/%s", src_addr,
|
|
||||||
- dst_addr);
|
|
||||||
- sprintf(handle, "0x%8.8X", idev->handle);
|
|
||||||
-
|
|
||||||
- key_file = g_key_file_new();
|
|
||||||
- if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) {
|
|
||||||
- error("Unable to load key file from %s: (%s)", filename,
|
|
||||||
- gerr->message);
|
|
||||||
- g_clear_error(&gerr);
|
|
||||||
- }
|
|
||||||
- str = g_key_file_get_string(key_file, "ServiceRecords", handle, NULL);
|
|
||||||
- g_key_file_free(key_file);
|
|
||||||
-
|
|
||||||
- if (!str) {
|
|
||||||
- error("Rejected connection from unknown device %s", dst_addr);
|
|
||||||
- err = -EPERM;
|
|
||||||
- goto cleanup;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- rec = record_from_string(str);
|
|
||||||
- g_free(str);
|
|
||||||
-
|
|
||||||
- err = extract_hid_record(rec, req);
|
|
||||||
- sdp_record_free(rec);
|
|
||||||
+ err = extract_hid_record(idev, req);
|
|
||||||
if (err < 0) {
|
|
||||||
error("Could not parse HID SDP record: %s (%d)", strerror(-err),
|
|
||||||
-err);
|
|
||||||
@@ -1091,7 +1065,7 @@ static int hidp_add_connection(struct input_device *idev)
|
|
||||||
|
|
||||||
/* Make sure the device is bonded if required */
|
|
||||||
if (classic_bonded_only && !input_device_bonded(idev)) {
|
|
||||||
- error("Rejected connection from !bonded device %s", dst_addr);
|
|
||||||
+ error("Rejected connection from !bonded device %s", idev->path);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1161,6 +1135,68 @@ static int connection_disconnect(struct input_device *idev, uint32_t flags)
|
|
||||||
return ioctl_disconnect(idev, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static bool is_device_sdp_disable(const sdp_record_t *rec)
|
|
||||||
+{
|
|
||||||
+ sdp_data_t *data;
|
|
||||||
+
|
|
||||||
+ data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE);
|
|
||||||
+
|
|
||||||
+ return data && data->val.uint8;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate,
|
|
||||||
+ bool normally_connectable)
|
|
||||||
+{
|
|
||||||
+ if (!reconnect_initiate && !normally_connectable)
|
|
||||||
+ return RECONNECT_NONE;
|
|
||||||
+ else if (!reconnect_initiate && normally_connectable)
|
|
||||||
+ return RECONNECT_HOST;
|
|
||||||
+ else if (reconnect_initiate && !normally_connectable)
|
|
||||||
+ return RECONNECT_DEVICE;
|
|
||||||
+ else /* (reconnect_initiate && normally_connectable) */
|
|
||||||
+ return RECONNECT_ANY;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void extract_hid_props(struct input_device *idev,
|
|
||||||
+ const sdp_record_t *rec)
|
|
||||||
+{
|
|
||||||
+ /* Extract HID connectability */
|
|
||||||
+ bool reconnect_initiate, normally_connectable;
|
|
||||||
+ sdp_data_t *pdlist;
|
|
||||||
+
|
|
||||||
+ /* HIDNormallyConnectable is optional and assumed FALSE if not
|
|
||||||
+ * present.
|
|
||||||
+ */
|
|
||||||
+ pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE);
|
|
||||||
+ reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE;
|
|
||||||
+
|
|
||||||
+ pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE);
|
|
||||||
+ normally_connectable = pdlist ? pdlist->val.uint8 : FALSE;
|
|
||||||
+
|
|
||||||
+ /* Update local values */
|
|
||||||
+ idev->reconnect_mode =
|
|
||||||
+ hid_reconnection_mode(reconnect_initiate, normally_connectable);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void input_device_update_rec(struct input_device *idev)
|
|
||||||
+{
|
|
||||||
+ struct btd_profile *p = btd_service_get_profile(idev->service);
|
|
||||||
+ const sdp_record_t *rec;
|
|
||||||
+
|
|
||||||
+ rec = btd_device_get_record(idev->device, p->remote_uuid);
|
|
||||||
+ if (!rec || idev->rec == rec)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ idev->rec = rec;
|
|
||||||
+ idev->disable_sdp = is_device_sdp_disable(rec);
|
|
||||||
+
|
|
||||||
+ /* Initialize device properties */
|
|
||||||
+ extract_hid_props(idev, rec);
|
|
||||||
+
|
|
||||||
+ if (idev->disable_sdp)
|
|
||||||
+ device_set_refresh_discovery(idev->device, false);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int input_device_connected(struct input_device *idev)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
@@ -1168,6 +1204,9 @@ static int input_device_connected(struct input_device *idev)
|
|
||||||
if (idev->intr_io == NULL || idev->ctrl_io == NULL)
|
|
||||||
return -ENOTCONN;
|
|
||||||
|
|
||||||
+ /* Attempt to update SDP record if it had changed */
|
|
||||||
+ input_device_update_rec(idev);
|
|
||||||
+
|
|
||||||
err = hidp_add_connection(idev);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
@@ -1411,74 +1450,21 @@ int input_device_disconnect(struct btd_service *service)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static bool is_device_sdp_disable(const sdp_record_t *rec)
|
|
||||||
-{
|
|
||||||
- sdp_data_t *data;
|
|
||||||
-
|
|
||||||
- data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE);
|
|
||||||
-
|
|
||||||
- return data && data->val.uint8;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate,
|
|
||||||
- bool normally_connectable)
|
|
||||||
-{
|
|
||||||
- if (!reconnect_initiate && !normally_connectable)
|
|
||||||
- return RECONNECT_NONE;
|
|
||||||
- else if (!reconnect_initiate && normally_connectable)
|
|
||||||
- return RECONNECT_HOST;
|
|
||||||
- else if (reconnect_initiate && !normally_connectable)
|
|
||||||
- return RECONNECT_DEVICE;
|
|
||||||
- else /* (reconnect_initiate && normally_connectable) */
|
|
||||||
- return RECONNECT_ANY;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void extract_hid_props(struct input_device *idev,
|
|
||||||
- const sdp_record_t *rec)
|
|
||||||
-{
|
|
||||||
- /* Extract HID connectability */
|
|
||||||
- bool reconnect_initiate, normally_connectable;
|
|
||||||
- sdp_data_t *pdlist;
|
|
||||||
-
|
|
||||||
- /* HIDNormallyConnectable is optional and assumed FALSE
|
|
||||||
- * if not present. */
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE);
|
|
||||||
- reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE;
|
|
||||||
-
|
|
||||||
- pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE);
|
|
||||||
- normally_connectable = pdlist ? pdlist->val.uint8 : FALSE;
|
|
||||||
-
|
|
||||||
- /* Update local values */
|
|
||||||
- idev->reconnect_mode =
|
|
||||||
- hid_reconnection_mode(reconnect_initiate, normally_connectable);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static struct input_device *input_device_new(struct btd_service *service)
|
|
||||||
{
|
|
||||||
struct btd_device *device = btd_service_get_device(service);
|
|
||||||
- struct btd_profile *p = btd_service_get_profile(service);
|
|
||||||
const char *path = device_get_path(device);
|
|
||||||
- const sdp_record_t *rec = btd_device_get_record(device, p->remote_uuid);
|
|
||||||
struct btd_adapter *adapter = device_get_adapter(device);
|
|
||||||
struct input_device *idev;
|
|
||||||
|
|
||||||
- if (!rec)
|
|
||||||
- return NULL;
|
|
||||||
-
|
|
||||||
idev = g_new0(struct input_device, 1);
|
|
||||||
bacpy(&idev->src, btd_adapter_get_address(adapter));
|
|
||||||
bacpy(&idev->dst, device_get_address(device));
|
|
||||||
idev->service = btd_service_ref(service);
|
|
||||||
idev->device = btd_device_ref(device);
|
|
||||||
idev->path = g_strdup(path);
|
|
||||||
- idev->handle = rec->handle;
|
|
||||||
- idev->disable_sdp = is_device_sdp_disable(rec);
|
|
||||||
-
|
|
||||||
- /* Initialize device properties */
|
|
||||||
- extract_hid_props(idev, rec);
|
|
||||||
|
|
||||||
- if (idev->disable_sdp)
|
|
||||||
- device_set_refresh_discovery(device, false);
|
|
||||||
+ input_device_update_rec(idev);
|
|
||||||
|
|
||||||
return idev;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.42.0
|
|
||||||
|
|
BIN
bluez-5.70.tar.xz
(Stored with Git LFS)
BIN
bluez-5.70.tar.xz
(Stored with Git LFS)
Binary file not shown.
BIN
bluez-5.77.tar.xz
(Stored with Git LFS)
Normal file
BIN
bluez-5.77.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,26 +0,0 @@
|
|||||||
Index: bluez-5.65/Makefile.in
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/Makefile.in
|
|
||||||
+++ bluez-5.65/Makefile.in
|
|
||||||
@@ -3871,7 +3871,7 @@ unit_tests = $(am__append_55) unit/test-
|
|
||||||
@DEPRECATED_TRUE@@READLINE_TRUE@attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
|
|
||||||
@DEPRECATED_TRUE@@READLINE_TRUE@ src/libshared-glib.la $(GLIB_LIBS) -lreadline
|
|
||||||
|
|
||||||
-@CUPS_TRUE@cupsdir = $(libdir)/cups/backend
|
|
||||||
+@CUPS_TRUE@cupsdir = $(prefix)/lib/cups/backend
|
|
||||||
@CUPS_TRUE@profiles_cups_bluetooth_SOURCES = profiles/cups/main.c \
|
|
||||||
@CUPS_TRUE@ profiles/cups/cups.h \
|
|
||||||
@CUPS_TRUE@ profiles/cups/sdp.c \
|
|
||||||
Index: bluez-5.65/Makefile.tools
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/Makefile.tools
|
|
||||||
+++ bluez-5.65/Makefile.tools
|
|
||||||
@@ -499,7 +499,7 @@ endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CUPS
|
|
||||||
-cupsdir = $(libdir)/cups/backend
|
|
||||||
+cupsdir = $(prefix)/lib/cups/backend
|
|
||||||
|
|
||||||
cups_PROGRAMS = profiles/cups/bluetooth
|
|
||||||
|
|
@ -1,8 +1,17 @@
|
|||||||
Index: bluez-5.65/Makefile.am
|
Index: bluez-5.71/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- bluez-5.65.orig/Makefile.am
|
--- bluez-5.71.orig/Makefile.am
|
||||||
+++ bluez-5.65/Makefile.am
|
+++ bluez-5.71/Makefile.am
|
||||||
@@ -572,7 +574,7 @@ unit_test_midi_LDADD = src/libshared-gli
|
@@ -679,7 +679,7 @@ unit_test_bass_SOURCES = unit/test-bass.
|
||||||
|
unit_test_bass_LDADD = src/libshared-glib.la \
|
||||||
|
lib/libbluetooth-internal.la $(GLIB_LIBS)
|
||||||
|
|
||||||
|
-unit_tests += unit/test-vcp
|
||||||
|
+# unit_tests += unit/test-vcp
|
||||||
|
|
||||||
|
unit_test_vcp_SOURCES = unit/test-vcp.c $(btio_sources)
|
||||||
|
unit_test_vcp_LDADD = src/libshared-glib.la \
|
||||||
|
@@ -696,7 +696,7 @@ unit_test_midi_LDADD = src/libshared-gli
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if MESH
|
if MESH
|
||||||
|
22
bluez-no-cups-devel-buildreq.patch
Normal file
22
bluez-no-cups-devel-buildreq.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Subject: avoid cups-devel buildrequires
|
||||||
|
Author: Stefan Seyfried <seife+obs@b1-sytems.com>
|
||||||
|
Date: 2024-08-15
|
||||||
|
|
||||||
|
The only thing required from cups-devel during build is the cups_serverbin
|
||||||
|
variable. Unfortunately, pulling in cups-devel creates a huge dependency
|
||||||
|
loop.
|
||||||
|
To avoid this, just hardcode the cups_serverbin value for now.
|
||||||
|
|
||||||
|
Index: b/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -252,7 +252,7 @@ AC_ARG_ENABLE(cups, AS_HELP_STRING([--di
|
||||||
|
AM_CONDITIONAL(CUPS, test "${enable_cups}" != "no")
|
||||||
|
if (test "${enable_cups}" != "no"); then
|
||||||
|
AC_MSG_CHECKING([cups directory])
|
||||||
|
- cups_serverbin=`$PKG_CONFIG cups --variable=cups_serverbin`
|
||||||
|
+ cups_serverbin="/usr/lib/cups"
|
||||||
|
AC_MSG_RESULT([${cups_serverbin}])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(CUPS_SERVERBIN, test "${cups_serverbin}" != "")
|
@ -1,601 +0,0 @@
|
|||||||
Index: bluez-5.65/test/bluezutils.py
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/bluezutils.py
|
|
||||||
+++ bluez-5.65/test/bluezutils.py
|
|
||||||
@@ -17,7 +17,7 @@ def find_adapter(pattern=None):
|
|
||||||
|
|
||||||
def find_adapter_in_objects(objects, pattern=None):
|
|
||||||
bus = dbus.SystemBus()
|
|
||||||
- for path, ifaces in objects.items():
|
|
||||||
+ for path, ifaces in list(objects.items()):
|
|
||||||
adapter = ifaces.get(ADAPTER_INTERFACE)
|
|
||||||
if adapter is None:
|
|
||||||
continue
|
|
||||||
@@ -37,7 +37,7 @@ def find_device_in_objects(objects, devi
|
|
||||||
if adapter_pattern:
|
|
||||||
adapter = find_adapter_in_objects(objects, adapter_pattern)
|
|
||||||
path_prefix = adapter.object_path
|
|
||||||
- for path, ifaces in objects.items():
|
|
||||||
+ for path, ifaces in list(objects.items()):
|
|
||||||
device = ifaces.get(DEVICE_INTERFACE)
|
|
||||||
if device is None:
|
|
||||||
continue
|
|
||||||
Index: bluez-5.65/test/example-advertisement
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/example-advertisement
|
|
||||||
+++ bluez-5.65/test/example-advertisement
|
|
||||||
@@ -164,7 +164,7 @@ def find_adapter(bus):
|
|
||||||
DBUS_OM_IFACE)
|
|
||||||
objects = remote_om.GetManagedObjects()
|
|
||||||
|
|
||||||
- for o, props in objects.items():
|
|
||||||
+ for o, props in list(objects.items()):
|
|
||||||
if LE_ADVERTISING_MANAGER_IFACE in props:
|
|
||||||
return o
|
|
||||||
|
|
||||||
Index: bluez-5.65/test/example-gatt-client
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/example-gatt-client
|
|
||||||
+++ bluez-5.65/test/example-gatt-client
|
|
||||||
@@ -33,7 +33,7 @@ hr_ctrl_pt_chrc = None
|
|
||||||
|
|
||||||
|
|
||||||
def generic_error_cb(error):
|
|
||||||
- print('D-Bus call failed: ' + str(error))
|
|
||||||
+ print(('D-Bus call failed: ' + str(error)))
|
|
||||||
mainloop.quit()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -69,10 +69,10 @@ def sensor_contact_val_to_str(val):
|
|
||||||
|
|
||||||
def body_sensor_val_cb(value):
|
|
||||||
if len(value) != 1:
|
|
||||||
- print('Invalid body sensor location value: ' + repr(value))
|
|
||||||
+ print(('Invalid body sensor location value: ' + repr(value)))
|
|
||||||
return
|
|
||||||
|
|
||||||
- print('Body sensor location value: ' + body_sensor_val_to_str(value[0]))
|
|
||||||
+ print(('Body sensor location value: ' + body_sensor_val_to_str(value[0])))
|
|
||||||
|
|
||||||
|
|
||||||
def hr_msrmt_start_notify_cb():
|
|
||||||
@@ -104,12 +104,12 @@ def hr_msrmt_changed_cb(iface, changed_p
|
|
||||||
hr_msrmt = value[1] | (value[2] << 8)
|
|
||||||
next_ind = 3
|
|
||||||
|
|
||||||
- print('\tHR: ' + str(int(hr_msrmt)))
|
|
||||||
- print('\tSensor Contact status: ' +
|
|
||||||
- sensor_contact_val_to_str(sc_status))
|
|
||||||
+ print(('\tHR: ' + str(int(hr_msrmt))))
|
|
||||||
+ print(('\tSensor Contact status: ' +
|
|
||||||
+ sensor_contact_val_to_str(sc_status)))
|
|
||||||
|
|
||||||
if ee_status:
|
|
||||||
- print('\tEnergy Expended: ' + str(int(value[next_ind])))
|
|
||||||
+ print(('\tEnergy Expended: ' + str(int(value[next_ind]))))
|
|
||||||
|
|
||||||
|
|
||||||
def start_client():
|
|
||||||
@@ -147,7 +147,7 @@ def process_chrc(chrc_path):
|
|
||||||
global hr_ctrl_pt_chrc
|
|
||||||
hr_ctrl_pt_chrc = (chrc, chrc_props)
|
|
||||||
else:
|
|
||||||
- print('Unrecognized characteristic: ' + uuid)
|
|
||||||
+ print(('Unrecognized characteristic: ' + uuid))
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@ def process_hr_service(service_path, chr
|
|
||||||
if uuid != HR_SVC_UUID:
|
|
||||||
return False
|
|
||||||
|
|
||||||
- print('Heart Rate Service found: ' + service_path)
|
|
||||||
+ print(('Heart Rate Service found: ' + service_path))
|
|
||||||
|
|
||||||
# Process the characteristics.
|
|
||||||
for chrc_path in chrc_paths:
|
|
||||||
@@ -199,14 +199,14 @@ def main():
|
|
||||||
chrcs = []
|
|
||||||
|
|
||||||
# List characteristics found
|
|
||||||
- for path, interfaces in objects.items():
|
|
||||||
- if GATT_CHRC_IFACE not in interfaces.keys():
|
|
||||||
+ for path, interfaces in list(objects.items()):
|
|
||||||
+ if GATT_CHRC_IFACE not in list(interfaces.keys()):
|
|
||||||
continue
|
|
||||||
chrcs.append(path)
|
|
||||||
|
|
||||||
# List sevices found
|
|
||||||
- for path, interfaces in objects.items():
|
|
||||||
- if GATT_SERVICE_IFACE not in interfaces.keys():
|
|
||||||
+ for path, interfaces in list(objects.items()):
|
|
||||||
+ if GATT_SERVICE_IFACE not in list(interfaces.keys()):
|
|
||||||
continue
|
|
||||||
|
|
||||||
chrc_paths = [d for d in chrcs if d.startswith(path + "/")]
|
|
||||||
Index: bluez-5.65/test/example-gatt-server
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/example-gatt-server
|
|
||||||
+++ bluez-5.65/test/example-gatt-server
|
|
||||||
@@ -293,7 +293,7 @@ class HeartRateMeasurementChrc(Character
|
|
||||||
min(0xffff, self.service.energy_expended + 1)
|
|
||||||
self.hr_ee_count += 1
|
|
||||||
|
|
||||||
- print('Updating value: ' + repr(value))
|
|
||||||
+ print(('Updating value: ' + repr(value)))
|
|
||||||
|
|
||||||
self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, [])
|
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ class HeartRateControlPointChrc(Characte
|
|
||||||
raise InvalidValueLengthException()
|
|
||||||
|
|
||||||
byte = value[0]
|
|
||||||
- print('Control Point value: ' + repr(byte))
|
|
||||||
+ print(('Control Point value: ' + repr(byte)))
|
|
||||||
|
|
||||||
if byte != 1:
|
|
||||||
raise FailedException("0x80")
|
|
||||||
@@ -408,12 +408,12 @@ class BatteryLevelCharacteristic(Charact
|
|
||||||
self.battery_lvl -= 2
|
|
||||||
if self.battery_lvl < 0:
|
|
||||||
self.battery_lvl = 0
|
|
||||||
- print('Battery Level drained: ' + repr(self.battery_lvl))
|
|
||||||
+ print(('Battery Level drained: ' + repr(self.battery_lvl)))
|
|
||||||
self.notify_battery_level()
|
|
||||||
return True
|
|
||||||
|
|
||||||
def ReadValue(self, options):
|
|
||||||
- print('Battery Level read: ' + repr(self.battery_lvl))
|
|
||||||
+ print(('Battery Level read: ' + repr(self.battery_lvl)))
|
|
||||||
return [dbus.Byte(self.battery_lvl)]
|
|
||||||
|
|
||||||
def StartNotify(self):
|
|
||||||
@@ -466,11 +466,11 @@ class TestCharacteristic(Characteristic)
|
|
||||||
CharacteristicUserDescriptionDescriptor(bus, 1, self))
|
|
||||||
|
|
||||||
def ReadValue(self, options):
|
|
||||||
- print('TestCharacteristic Read: ' + repr(self.value))
|
|
||||||
+ print(('TestCharacteristic Read: ' + repr(self.value)))
|
|
||||||
return self.value
|
|
||||||
|
|
||||||
def WriteValue(self, value, options):
|
|
||||||
- print('TestCharacteristic Write: ' + repr(value))
|
|
||||||
+ print(('TestCharacteristic Write: ' + repr(value)))
|
|
||||||
self.value = value
|
|
||||||
|
|
||||||
|
|
||||||
@@ -538,11 +538,11 @@ class TestEncryptCharacteristic(Characte
|
|
||||||
CharacteristicUserDescriptionDescriptor(bus, 3, self))
|
|
||||||
|
|
||||||
def ReadValue(self, options):
|
|
||||||
- print('TestEncryptCharacteristic Read: ' + repr(self.value))
|
|
||||||
+ print(('TestEncryptCharacteristic Read: ' + repr(self.value)))
|
|
||||||
return self.value
|
|
||||||
|
|
||||||
def WriteValue(self, value, options):
|
|
||||||
- print('TestEncryptCharacteristic Write: ' + repr(value))
|
|
||||||
+ print(('TestEncryptCharacteristic Write: ' + repr(value)))
|
|
||||||
self.value = value
|
|
||||||
|
|
||||||
class TestEncryptDescriptor(Descriptor):
|
|
||||||
@@ -584,11 +584,11 @@ class TestSecureCharacteristic(Character
|
|
||||||
CharacteristicUserDescriptionDescriptor(bus, 3, self))
|
|
||||||
|
|
||||||
def ReadValue(self, options):
|
|
||||||
- print('TestSecureCharacteristic Read: ' + repr(self.value))
|
|
||||||
+ print(('TestSecureCharacteristic Read: ' + repr(self.value)))
|
|
||||||
return self.value
|
|
||||||
|
|
||||||
def WriteValue(self, value, options):
|
|
||||||
- print('TestSecureCharacteristic Write: ' + repr(value))
|
|
||||||
+ print(('TestSecureCharacteristic Write: ' + repr(value)))
|
|
||||||
self.value = value
|
|
||||||
|
|
||||||
|
|
||||||
@@ -616,7 +616,7 @@ def register_app_cb():
|
|
||||||
|
|
||||||
|
|
||||||
def register_app_error_cb(error):
|
|
||||||
- print('Failed to register application: ' + str(error))
|
|
||||||
+ print(('Failed to register application: ' + str(error)))
|
|
||||||
mainloop.quit()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -625,8 +625,8 @@ def find_adapter(bus):
|
|
||||||
DBUS_OM_IFACE)
|
|
||||||
objects = remote_om.GetManagedObjects()
|
|
||||||
|
|
||||||
- for o, props in objects.items():
|
|
||||||
- if GATT_MANAGER_IFACE in props.keys():
|
|
||||||
+ for o, props in list(objects.items()):
|
|
||||||
+ if GATT_MANAGER_IFACE in list(props.keys()):
|
|
||||||
return o
|
|
||||||
|
|
||||||
return None
|
|
||||||
Index: bluez-5.65/test/list-devices
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/list-devices
|
|
||||||
+++ bluez-5.65/test/list-devices
|
|
||||||
@@ -33,16 +33,16 @@ def extract_uuids(uuid_list):
|
|
||||||
objects = manager.GetManagedObjects()
|
|
||||||
|
|
||||||
all_devices = (str(path) for path, interfaces in objects.items() if
|
|
||||||
- "org.bluez.Device1" in interfaces.keys())
|
|
||||||
+ "org.bluez.Device1" in list(interfaces.keys()))
|
|
||||||
|
|
||||||
for path, interfaces in objects.items():
|
|
||||||
- if "org.bluez.Adapter1" not in interfaces.keys():
|
|
||||||
+ if "org.bluez.Adapter1" not in list(interfaces.keys()):
|
|
||||||
continue
|
|
||||||
|
|
||||||
print("[ " + path + " ]")
|
|
||||||
|
|
||||||
properties = interfaces["org.bluez.Adapter1"]
|
|
||||||
- for key in properties.keys():
|
|
||||||
+ for key in list(properties.keys()):
|
|
||||||
value = properties[key]
|
|
||||||
if (key == "UUIDs"):
|
|
||||||
list = extract_uuids(value)
|
|
||||||
@@ -58,7 +58,7 @@ for path, interfaces in objects.items():
|
|
||||||
dev = objects[dev_path]
|
|
||||||
properties = dev["org.bluez.Device1"]
|
|
||||||
|
|
||||||
- for key in properties.keys():
|
|
||||||
+ for key in list(properties.keys()):
|
|
||||||
value = properties[key]
|
|
||||||
if (key == "UUIDs"):
|
|
||||||
list = extract_uuids(value)
|
|
||||||
Index: bluez-5.65/test/pbap-client
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/pbap-client
|
|
||||||
+++ bluez-5.65/test/pbap-client
|
|
||||||
@@ -135,11 +135,11 @@ if __name__ == '__main__':
|
|
||||||
print(header)
|
|
||||||
for line in lines:
|
|
||||||
print(line),
|
|
||||||
- print
|
|
||||||
+ print()
|
|
||||||
|
|
||||||
def test_paths(paths):
|
|
||||||
if len(paths) == 0:
|
|
||||||
- print
|
|
||||||
+ print()
|
|
||||||
print("FINISHED")
|
|
||||||
mainloop.quit()
|
|
||||||
return
|
|
||||||
Index: bluez-5.65/test/sap_client.py
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/sap_client.py
|
|
||||||
+++ bluez-5.65/test/sap_client.py
|
|
||||||
@@ -165,7 +165,7 @@ class SAPParam_ConnectionStatus(SAPParam
|
|
||||||
|
|
||||||
def __validate(self):
|
|
||||||
if self.value is not None and self.value not in (0x00, 0x01, 0x02, 0x03, 0x04):
|
|
||||||
- print "Warning. ConnectionStatus value in reserved range (0x%x)" % self.value
|
|
||||||
+ print("Warning. ConnectionStatus value in reserved range (0x%x)" % self.value)
|
|
||||||
|
|
||||||
def deserialize(self, buf):
|
|
||||||
ret = SAPParam.deserialize(self, buf)
|
|
||||||
@@ -183,7 +183,7 @@ class SAPParam_ResultCode(SAPParam):
|
|
||||||
|
|
||||||
def __validate(self):
|
|
||||||
if self.value is not None and self.value not in (0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07):
|
|
||||||
- print "Warning. ResultCode value in reserved range (0x%x)" % self.value
|
|
||||||
+ print("Warning. ResultCode value in reserved range (0x%x)" % self.value)
|
|
||||||
|
|
||||||
def deserialize(self, buf):
|
|
||||||
ret = SAPParam.deserialize(self, buf)
|
|
||||||
@@ -201,7 +201,7 @@ class SAPParam_DisconnectionType(SAPPara
|
|
||||||
|
|
||||||
def __validate(self):
|
|
||||||
if self.value is not None and self.value not in (0x00, 0x01):
|
|
||||||
- print "Warning. DisconnectionType value in reserved range (0x%x)" % self.value
|
|
||||||
+ print("Warning. DisconnectionType value in reserved range (0x%x)" % self.value)
|
|
||||||
|
|
||||||
def deserialize(self, buf):
|
|
||||||
ret = SAPParam.deserialize(self, buf)
|
|
||||||
@@ -227,7 +227,7 @@ class SAPParam_StatusChange(SAPParam):
|
|
||||||
|
|
||||||
def __validate(self):
|
|
||||||
if self.value is not None and self.value not in (0x00, 0x01, 0x02, 0x03, 0x04, 0x05):
|
|
||||||
- print "Warning. StatusChange value in reserved range (0x%x)" % self.value
|
|
||||||
+ print("Warning. StatusChange value in reserved range (0x%x)" % self.value)
|
|
||||||
|
|
||||||
def deserialize(self, buf):
|
|
||||||
ret = SAPParam.deserialize(self, buf)
|
|
||||||
@@ -245,7 +245,7 @@ class SAPParam_TransportProtocol(SAPPara
|
|
||||||
|
|
||||||
def __validate(self):
|
|
||||||
if self.value is not None and self.value not in (0x00, 0x01):
|
|
||||||
- print "Warning. TransportProtoco value in reserved range (0x%x)" % self.value
|
|
||||||
+ print("Warning. TransportProtoco value in reserved range (0x%x)" % self.value)
|
|
||||||
|
|
||||||
def deserialize(self, buf):
|
|
||||||
ret = SAPParam.deserialize(self, buf)
|
|
||||||
@@ -728,7 +728,7 @@ class SAPClient:
|
|
||||||
self.port = first_match["port"]
|
|
||||||
self.host = first_match["host"]
|
|
||||||
|
|
||||||
- print "SAP Service found on %s(%s)" % first_match["name"] % self.host
|
|
||||||
+ print("SAP Service found on %s(%s)" % first_match["name"] % self.host)
|
|
||||||
|
|
||||||
def __connectRFCOMM(self):
|
|
||||||
self.sock=BluetoothSocket( RFCOMM )
|
|
||||||
@@ -739,19 +739,19 @@ class SAPClient:
|
|
||||||
def __sendMsg(self, msg):
|
|
||||||
if isinstance(msg, SAPMessage):
|
|
||||||
s = msg.serialize()
|
|
||||||
- print "\tTX: " + msg.getContent()
|
|
||||||
+ print("\tTX: " + msg.getContent())
|
|
||||||
return self.sock.send(s.tostring())
|
|
||||||
|
|
||||||
def __rcvMsg(self, msg):
|
|
||||||
if isinstance(msg, SAPMessage):
|
|
||||||
- print "\tRX Wait: %s(id = 0x%.2x)" % (msg.name, msg.id)
|
|
||||||
+ print("\tRX Wait: %s(id = 0x%.2x)" % (msg.name, msg.id))
|
|
||||||
data = self.sock.recv(self.bufsize)
|
|
||||||
if data:
|
|
||||||
if msg.deserialize(array('B',data)):
|
|
||||||
- print "\tRX: len(%d) %s" % (len(data), msg.getContent())
|
|
||||||
+ print("\tRX: len(%d) %s" % (len(data), msg.getContent()))
|
|
||||||
return msg
|
|
||||||
else:
|
|
||||||
- print "msg: %s" % array('B',data)
|
|
||||||
+ print("msg: %s" % array('B',data))
|
|
||||||
raise BluetoothError ("Message deserialization failed.")
|
|
||||||
else:
|
|
||||||
raise BluetoothError ("Timeout. No data received.")
|
|
||||||
@@ -797,8 +797,8 @@ class SAPClient:
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_disconnectByClient(self, timeout=0):
|
|
||||||
@@ -808,8 +808,8 @@ class SAPClient:
|
|
||||||
time.sleep(timeout) # let srv to close rfcomm
|
|
||||||
self.__disconnectRFCOMM()
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_disconnectByServer(self, timeout=0):
|
|
||||||
@@ -823,8 +823,8 @@ class SAPClient:
|
|
||||||
|
|
||||||
return self.proc_disconnectByClient(timeout)
|
|
||||||
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_transferAPDU(self, apdu = "Sample APDU command"):
|
|
||||||
@@ -832,8 +832,8 @@ class SAPClient:
|
|
||||||
self.__sendMsg(SAPMessage_TRANSFER_APDU_REQ(apdu))
|
|
||||||
params = self.__rcvMsg(SAPMessage_TRANSFER_APDU_RESP()).getParams()
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_transferATR(self):
|
|
||||||
@@ -841,8 +841,8 @@ class SAPClient:
|
|
||||||
self.__sendMsg(SAPMessage_TRANSFER_ATR_REQ())
|
|
||||||
params = self.__rcvMsg(SAPMessage_TRANSFER_ATR_RESP()).getParams()
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_powerSimOff(self):
|
|
||||||
@@ -850,8 +850,8 @@ class SAPClient:
|
|
||||||
self.__sendMsg(SAPMessage_POWER_SIM_OFF_REQ())
|
|
||||||
params = self.__rcvMsg(SAPMessage_POWER_SIM_OFF_RESP()).getParams()
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_powerSimOn(self):
|
|
||||||
@@ -862,8 +862,8 @@ class SAPClient:
|
|
||||||
return self.proc_transferATR()
|
|
||||||
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_resetSim(self):
|
|
||||||
@@ -874,23 +874,23 @@ class SAPClient:
|
|
||||||
return self.proc_transferATR()
|
|
||||||
|
|
||||||
return True
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_reportStatus(self):
|
|
||||||
try:
|
|
||||||
params = self.__rcvMsg(SAPMessage_STATUS_IND()).getParams()
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_transferCardReaderStatus(self):
|
|
||||||
try:
|
|
||||||
self.__sendMsg(SAPMessage_TRANSFER_CARD_READER_STATUS_REQ())
|
|
||||||
params = self.__rcvMsg(SAPMessage_TRANSFER_CARD_READER_STATUS_RESP()).getParams()
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_errorResponse(self):
|
|
||||||
@@ -899,8 +899,8 @@ class SAPClient:
|
|
||||||
self.__sendMsg(SAPMessage_CONNECT_REQ())
|
|
||||||
|
|
||||||
params = self.__rcvMsg(SAPMessage_ERROR_RESP()).getParams()
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
def proc_setTransportProtocol(self, protocol = 0):
|
|
||||||
@@ -922,8 +922,8 @@ class SAPClient:
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
- except BluetoothError , e:
|
|
||||||
- print "Error. " +str(e)
|
|
||||||
+ except BluetoothError as e:
|
|
||||||
+ print("Error. " +str(e))
|
|
||||||
return False
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
Index: bluez-5.65/test/simple-agent
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/simple-agent
|
|
||||||
+++ bluez-5.65/test/simple-agent
|
|
||||||
@@ -24,9 +24,9 @@ dev_path = None
|
|
||||||
|
|
||||||
def ask(prompt):
|
|
||||||
try:
|
|
||||||
- return raw_input(prompt)
|
|
||||||
- except:
|
|
||||||
return input(prompt)
|
|
||||||
+ except:
|
|
||||||
+ return eval(input(prompt))
|
|
||||||
|
|
||||||
def set_trusted(path):
|
|
||||||
props = dbus.Interface(bus.get_object("org.bluez", path),
|
|
||||||
Index: bluez-5.65/test/simple-player
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/simple-player
|
|
||||||
+++ bluez-5.65/test/simple-player
|
|
||||||
@@ -119,7 +119,7 @@ class InputHandler:
|
|
||||||
return True
|
|
||||||
|
|
||||||
try:
|
|
||||||
- exec "self.player.%s" % s
|
|
||||||
+ exec("self.player.%s" % s)
|
|
||||||
except Exception as e:
|
|
||||||
print(e)
|
|
||||||
pass
|
|
||||||
Index: bluez-5.65/test/test-adapter
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/test-adapter
|
|
||||||
+++ bluez-5.65/test/test-adapter
|
|
||||||
@@ -69,7 +69,7 @@ if (args[0] == "list"):
|
|
||||||
|
|
||||||
props = interfaces["org.bluez.Adapter1"]
|
|
||||||
|
|
||||||
- for (key, value) in props.items():
|
|
||||||
+ for (key, value) in list(props.items()):
|
|
||||||
if (key == "Class"):
|
|
||||||
print(" %s = 0x%06x" % (key, value))
|
|
||||||
else:
|
|
||||||
Index: bluez-5.65/test/test-discovery
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/test-discovery
|
|
||||||
+++ bluez-5.65/test/test-discovery
|
|
||||||
@@ -39,10 +39,10 @@ def print_compact(address, properties):
|
|
||||||
def print_normal(address, properties):
|
|
||||||
print("[ " + address + " ]")
|
|
||||||
|
|
||||||
- for key in properties.keys():
|
|
||||||
+ for key in list(properties.keys()):
|
|
||||||
value = properties[key]
|
|
||||||
if type(value) is dbus.String:
|
|
||||||
- value = unicode(value).encode('ascii', 'replace')
|
|
||||||
+ value = str(value).encode('ascii', 'replace')
|
|
||||||
if (key == "Class"):
|
|
||||||
print(" %s = 0x%06x" % (key, value))
|
|
||||||
else:
|
|
||||||
@@ -71,7 +71,7 @@ def interfaces_added(path, interfaces):
|
|
||||||
|
|
||||||
if compact and skip_dev(dev, properties):
|
|
||||||
return
|
|
||||||
- devices[path] = dict(devices[path].items() + properties.items())
|
|
||||||
+ devices[path] = dict(list(devices[path].items()) + list(properties.items()))
|
|
||||||
else:
|
|
||||||
devices[path] = properties
|
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ def properties_changed(interface, change
|
|
||||||
|
|
||||||
if compact and skip_dev(dev, changed):
|
|
||||||
return
|
|
||||||
- devices[path] = dict(devices[path].items() + changed.items())
|
|
||||||
+ devices[path] = dict(list(devices[path].items()) + list(changed.items()))
|
|
||||||
else:
|
|
||||||
devices[path] = changed
|
|
||||||
|
|
||||||
Index: bluez-5.65/test/test-hfp
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/test-hfp
|
|
||||||
+++ bluez-5.65/test/test-hfp
|
|
||||||
@@ -186,7 +186,7 @@ class HfpProfile(dbus.service.Object):
|
|
||||||
version = 0x0105
|
|
||||||
features = 0
|
|
||||||
print("NewConnection(%s, %d)" % (path, fd))
|
|
||||||
- for key in properties.keys():
|
|
||||||
+ for key in list(properties.keys()):
|
|
||||||
if key == "Version":
|
|
||||||
version = properties[key]
|
|
||||||
elif key == "Features":
|
|
||||||
Index: bluez-5.65/test/test-profile
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/test-profile
|
|
||||||
+++ bluez-5.65/test/test-profile
|
|
||||||
@@ -34,7 +34,7 @@ class Profile(dbus.service.Object):
|
|
||||||
def NewConnection(self, path, fd, properties):
|
|
||||||
self.fd = fd.take()
|
|
||||||
print("NewConnection(%s, %d)" % (path, self.fd))
|
|
||||||
- for key in properties.keys():
|
|
||||||
+ for key in list(properties.keys()):
|
|
||||||
if key == "Version" or key == "Features":
|
|
||||||
print(" %s = 0x%04x" % (key, properties[key]))
|
|
||||||
else:
|
|
||||||
Index: bluez-5.65/test/map-client
|
|
||||||
===================================================================
|
|
||||||
--- bluez-5.65.orig/test/map-client
|
|
||||||
+++ bluez-5.65/test/map-client
|
|
||||||
@@ -27,7 +27,7 @@ def unwrap(x):
|
|
||||||
printed. Taken from d-feet """
|
|
||||||
|
|
||||||
if isinstance(x, list):
|
|
||||||
- return map(unwrap, x)
|
|
||||||
+ return list(map(unwrap, x))
|
|
||||||
|
|
||||||
if isinstance(x, tuple):
|
|
||||||
return tuple(map(unwrap, x))
|
|
||||||
@@ -35,7 +35,7 @@ def unwrap(x):
|
|
||||||
if isinstance(x, dict):
|
|
||||||
return dict([(unwrap(k), unwrap(v)) for k, v in x.items()])
|
|
||||||
|
|
||||||
- for t in [unicode, str, long, int, float, bool]:
|
|
||||||
+ for t in [str, str, int, int, float, bool]:
|
|
||||||
if isinstance(x, t):
|
|
||||||
return t(x)
|
|
||||||
|
|
@ -1,3 +1,93 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 15 06:51:24 UTC 2024 - Stefan Seyfried <seife+obs@b1-systems.com>
|
||||||
|
|
||||||
|
- add bluez-no-cups-devel-buildreq.patch to avoid cups-devel
|
||||||
|
buildrequires which results in an excessive build loop
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 5 12:12:11 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 5.77:
|
||||||
|
* Fix issue with storing and handling connection parameters.
|
||||||
|
* Fix issue with handling device that are marked as temporary.
|
||||||
|
* Fix issue with HID and special handling for non-keyboards.
|
||||||
|
* Fix issue with BR/EDR not support when discoverable is off.
|
||||||
|
* Add support for initial implementation of ASHA profile.
|
||||||
|
* Fix issue with broadcast channel location and stream
|
||||||
|
capabilities.
|
||||||
|
* Fix issue with handling BIS management and synchronization.
|
||||||
|
* Fix issue with handling Extended Advertising.
|
||||||
|
* Fix issue with UserspaceHID and replay structures.
|
||||||
|
* Add support for providing PPCP characteristic.
|
||||||
|
* Fix issue with build system and header inclusion.
|
||||||
|
* Fix issue with not enabling Wideband Speech when available.
|
||||||
|
* Fix issue with UserspaceHID and Bluetooth Classic devices.
|
||||||
|
* Fix issue with checking for services being connected.
|
||||||
|
* Fix issue with GATT client connection creation.
|
||||||
|
* Fix issue with OBEX and small file transfers.
|
||||||
|
* Fix issue with handling pairing with Apple AirPods.
|
||||||
|
* Fix issue with BAP and setting up broadcast source.
|
||||||
|
* Fix issue with BAP and register all endpoints.
|
||||||
|
* Fix issue with BAP and missing metadata property.
|
||||||
|
* Fix issue with BAP and not handling out of order responses.
|
||||||
|
* Fix issue with BAP and attempting to set device as
|
||||||
|
connectable.
|
||||||
|
* Add support for CCP plugin for call control profile.
|
||||||
|
* Fix issue with BAP and handling stream IO linking.
|
||||||
|
* Fix issue with BAP and setup of multiple streams per
|
||||||
|
endpoint.
|
||||||
|
* Fix issue with AVDTP and potential incorrect transaction
|
||||||
|
label.
|
||||||
|
* Fix issue with A2DP and handling crash on suspend.
|
||||||
|
* Fix issue with GATT database and an invalid pointer.
|
||||||
|
* Add support for AICS service.
|
||||||
|
- drop bluez-test-2to3.diff, bluez-cups-libexec.patch:
|
||||||
|
upstream has different solutions for ages, use those instead
|
||||||
|
- drop fix-link-key-address-type.patch,
|
||||||
|
fix-a2dp-suspend-crash.patch: upstream
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 5 00:03:24 UTC 2024 - Chang <calad0i.fill@outlook.com>
|
||||||
|
|
||||||
|
- add fix-a2dp-suspend-crash.patch (Issue #701 in upstream)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 11 09:15:31 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Fix python3 shebang from test files (bsc#1212476)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 28 08:07:28 UTC 2024 - Yifan Jiang <yfjiang@suse.com>
|
||||||
|
|
||||||
|
- Add necessary Supplements (gnome-bluetooth, blueman, bluedevil5)
|
||||||
|
to bluez-obexd, so that file transfer features of the applications
|
||||||
|
can be used by default (bsc#1209153).
|
||||||
|
- Update the description of bluez-obexd.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 3 17:35:25 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- add fix-link-key-address-type.patch - thanks to
|
||||||
|
pallaswept for identifying the right patch for the pairing
|
||||||
|
regression
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 20 23:28:42 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 5.71:
|
||||||
|
* Fix issue with not registering CSIS service.
|
||||||
|
* Fix issue with registering pairing callbacks.
|
||||||
|
* Fix issue with corruption during discovery filter parsing.
|
||||||
|
|
||||||
|
- drop CVE-2023-45866.patch,
|
||||||
|
Fix-.device_probe-failing-if-SDP-record-is-not.patch: upstream
|
||||||
|
- update bluez-disable-broken-tests.diff: disable failing vcp test
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 13 09:34:20 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- add CVE-2023-45866.patch (CVE-2023-45866, bsc#1217877)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 6 21:20:03 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
Mon Nov 6 21:20:03 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
51
bluez.spec
51
bluez.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package bluez
|
# spec file for package bluez
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 SUSE LLC
|
# Copyright (c) 2024 SUSE LLC
|
||||||
# Copyright (c) 2010-2020 B1 Systems GmbH, Vohburg, Germany
|
# Copyright (c) 2010-2020 B1 Systems GmbH, Vohburg, Germany
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -35,12 +35,12 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: bluez
|
Name: bluez
|
||||||
Version: 5.70
|
Version: 5.77
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Bluetooth Stack for Linux
|
Summary: Bluetooth Stack for Linux
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: Hardware/Mobile
|
Group: Hardware/Mobile
|
||||||
URL: http://www.bluez.org
|
URL: https://www.bluez.org
|
||||||
Source: https://www.kernel.org/pub/linux/bluetooth/bluez-%{version}.tar.xz
|
Source: https://www.kernel.org/pub/linux/bluetooth/bluez-%{version}.tar.xz
|
||||||
# we still want debuginfo
|
# we still want debuginfo
|
||||||
#KEEP NOSOURCE DEBUGINFO
|
#KEEP NOSOURCE DEBUGINFO
|
||||||
@ -50,16 +50,12 @@ Source9: bluez.changes.sle
|
|||||||
# fix some logitech HID devices, bnc#681049, bnc#850478 --seife+obs@b1-systems.com
|
# fix some logitech HID devices, bnc#681049, bnc#850478 --seife+obs@b1-systems.com
|
||||||
Patch1: bluez-5.11-logitech-hid2hci.patch
|
Patch1: bluez-5.11-logitech-hid2hci.patch
|
||||||
Patch2: bluez-sdp-unix-path.patch
|
Patch2: bluez-sdp-unix-path.patch
|
||||||
# PATCH-FIX-UPSTREAM: find the cups dir in libexec not in libdir
|
# avoid cups-devel buildrequires --seife+obs@b1-systems.com
|
||||||
Patch3: bluez-cups-libexec.patch
|
Patch3: bluez-no-cups-devel-buildreq.patch
|
||||||
# workaround for broken tests (reported upstream but not yet fixed)
|
# workaround for broken tests (reported upstream but not yet fixed)
|
||||||
Patch4: bluez-disable-broken-tests.diff
|
Patch4: bluez-disable-broken-tests.diff
|
||||||
# PATCH-FIX-UPSTREAM: fix regression in pairing gamepads -- https://github.com/bluez/bluez/issues/614
|
|
||||||
Patch5: Fix-.device_probe-failing-if-SDP-record-is-not.patch
|
|
||||||
# disable tests for bypass boo#1078285
|
# disable tests for bypass boo#1078285
|
||||||
Patch12: disable_some_obex_tests.patch
|
Patch12: disable_some_obex_tests.patch
|
||||||
# get rid of python2. WARNING: this is autogenerated by 2to3 and might not work
|
|
||||||
Patch13: bluez-test-2to3.diff
|
|
||||||
# bsc#1013708 CVE-2016-9797
|
# bsc#1013708 CVE-2016-9797
|
||||||
Patch14: hcidump-Add-assoc-dump-function-assoc-date-length-ch.patch
|
Patch14: hcidump-Add-assoc-dump-function-assoc-date-length-ch.patch
|
||||||
# bsc#1015171 CVE-2016-9917
|
# bsc#1015171 CVE-2016-9917
|
||||||
@ -85,6 +81,8 @@ BuildRequires: readline-devel
|
|||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
BuildRequires: pkgconfig(alsa)
|
BuildRequires: pkgconfig(alsa)
|
||||||
BuildRequires: pkgconfig(check)
|
BuildRequires: pkgconfig(check)
|
||||||
|
## we use bluez-no-cups-devel-buildreq.patch instead to avoid a build loop
|
||||||
|
# BuildRequires: pkgconfig(cups)
|
||||||
BuildRequires: pkgconfig(dbus-1) >= 1.6
|
BuildRequires: pkgconfig(dbus-1) >= 1.6
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.28
|
BuildRequires: pkgconfig(glib-2.0) >= 2.28
|
||||||
BuildRequires: pkgconfig(libcap-ng)
|
BuildRequires: pkgconfig(libcap-ng)
|
||||||
@ -94,6 +92,7 @@ BuildRequires: pkgconfig(sndfile)
|
|||||||
BuildRequires: pkgconfig(udev)
|
BuildRequires: pkgconfig(udev)
|
||||||
# for rst2man
|
# for rst2man
|
||||||
BuildRequires: python3-docutils
|
BuildRequires: python3-docutils
|
||||||
|
BuildRequires: python3-Pygments
|
||||||
# libgio-2_0-0 has a runtime dependency on shared-mime-info, which is not
|
# libgio-2_0-0 has a runtime dependency on shared-mime-info, which is not
|
||||||
# required for building here, but causes a build loop
|
# required for building here, but causes a build loop
|
||||||
#!BuildIgnore: shared-mime-info
|
#!BuildIgnore: shared-mime-info
|
||||||
@ -204,13 +203,18 @@ to use the modern tools instead.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package obexd
|
%package obexd
|
||||||
Summary: Object Exchange daemon for sharing content
|
Summary: Object Exchange daemon for sharing binary objects
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: Hardware/Mobile
|
Group: Hardware/Mobile
|
||||||
Requires: bluez = %{version}
|
Requires: bluez = %{version}
|
||||||
|
Supplements: bluedevil5
|
||||||
|
Supplements: blueman
|
||||||
|
Supplements: gnome-bluetooth
|
||||||
|
|
||||||
%description obexd
|
%description obexd
|
||||||
Object Exchange daemon for sharing content.
|
This is an object exchange daemon for binary objects transferring between
|
||||||
|
devices. obexd is necessary to install for sharing files, contacts
|
||||||
|
etc. through bluetooth.
|
||||||
|
|
||||||
%package zsh-completion
|
%package zsh-completion
|
||||||
Summary: Zsh completion for bluez
|
Summary: Zsh completion for bluez
|
||||||
@ -231,8 +235,8 @@ cp -a doc/*.txt dbus-apis/
|
|||||||
# for auto-enable subpackage
|
# for auto-enable subpackage
|
||||||
sed -i '/^#AutoEnable=false/aAutoEnable=true' src/main.conf
|
sed -i '/^#AutoEnable=false/aAutoEnable=true' src/main.conf
|
||||||
|
|
||||||
# 2to3 does not fix the #! line
|
# Fix shebangs in test files
|
||||||
sed -i '1s#/usr/bin/python$#/usr/bin/python3#' test/*
|
%{?python3_fix_shebang_path:%python3_fix_shebang_path test/*}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if 0%{?suse_version} < 1550
|
%if 0%{?suse_version} < 1550
|
||||||
@ -303,9 +307,6 @@ install --mode 0644 -D src/main.conf %{buildroot}/%{_sysconfdir}/bluetooth/main.
|
|||||||
cd %{buildroot}%{_libdir}/bluez/test
|
cd %{buildroot}%{_libdir}/bluez/test
|
||||||
chmod 0644 *.py *.xml *.dtd
|
chmod 0644 *.py *.xml *.dtd
|
||||||
|
|
||||||
# fix python shebang
|
|
||||||
sed -i -e '1s/env p/p/' %{buildroot}%{_libdir}/bluez/test/{example-gatt-{client,server},test-mesh}
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
|
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
|
||||||
cp %{SOURCE9} %{buildroot}%{_defaultdocdir}/%{name}
|
cp %{SOURCE9} %{buildroot}%{_defaultdocdir}/%{name}
|
||||||
%if %{with mesh}
|
%if %{with mesh}
|
||||||
@ -390,9 +391,6 @@ done
|
|||||||
%{_bindir}/hex2hcd
|
%{_bindir}/hex2hcd
|
||||||
%{_bindir}/isotest
|
%{_bindir}/isotest
|
||||||
%{_bindir}/mpris-proxy
|
%{_bindir}/mpris-proxy
|
||||||
%dir %{_libdir}/bluetooth
|
|
||||||
%dir %{_libdir}/bluetooth/plugins
|
|
||||||
%{_libdir}/bluetooth/plugins/sixaxis.so
|
|
||||||
%dir %{_libexecdir}/bluetooth
|
%dir %{_libexecdir}/bluetooth
|
||||||
%{_libexecdir}/bluetooth/bluetoothd
|
%{_libexecdir}/bluetooth/bluetoothd
|
||||||
%if %{with mesh}
|
%if %{with mesh}
|
||||||
@ -414,9 +412,18 @@ done
|
|||||||
%{_mandir}/man1/hid2hci.1%{?ext_man}
|
%{_mandir}/man1/hid2hci.1%{?ext_man}
|
||||||
%{_mandir}/man1/l2ping.1%{?ext_man}
|
%{_mandir}/man1/l2ping.1%{?ext_man}
|
||||||
%{_mandir}/man1/rctest.1%{?ext_man}
|
%{_mandir}/man1/rctest.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl.1%{?ext_man}
|
||||||
%{_mandir}/man1/bluetoothctl-mgmt.1%{?ext_man}
|
%{_mandir}/man1/bluetoothctl-mgmt.1%{?ext_man}
|
||||||
%{_mandir}/man1/bluetoothctl-monitor.1%{?ext_man}
|
%{_mandir}/man1/bluetoothctl-monitor.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-admin.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-advertise.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-endpoint.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-gatt.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-player.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-scan.1%{?ext_man}
|
||||||
|
%{_mandir}/man1/bluetoothctl-transport.1%{?ext_man}
|
||||||
%{_mandir}/man1/btmgmt.1%{?ext_man}
|
%{_mandir}/man1/btmgmt.1%{?ext_man}
|
||||||
|
%{_mandir}/man5/org.bluez.*.5%{?ext_man}
|
||||||
%{_datadir}/dbus-1/system.d/bluetooth.conf
|
%{_datadir}/dbus-1/system.d/bluetooth.conf
|
||||||
# not packaged, boo#1151518
|
# not packaged, boo#1151518
|
||||||
###%%{_datadir}/dbus-1/system.d/bluetooth-mesh.conf
|
###%%{_datadir}/dbus-1/system.d/bluetooth-mesh.conf
|
||||||
@ -430,11 +437,15 @@ done
|
|||||||
%{_datadir}/dbus-1/system-services/org.bluez.service
|
%{_datadir}/dbus-1/system-services/org.bluez.service
|
||||||
# not packaged, boo#1151518
|
# not packaged, boo#1151518
|
||||||
###%%{_datadir}/dbus-1/system-services/org.bluez.mesh.service
|
###%%{_datadir}/dbus-1/system-services/org.bluez.mesh.service
|
||||||
|
%{_sysconfdir}/bluetooth/input.conf
|
||||||
|
%{_sysconfdir}/bluetooth/mesh-main.conf
|
||||||
|
%{_sysconfdir}/bluetooth/network.conf
|
||||||
|
|
||||||
%files obexd
|
%files obexd
|
||||||
%{_libexecdir}/bluetooth/obexd
|
%{_libexecdir}/bluetooth/obexd
|
||||||
%{_datadir}/dbus-1/services/org.bluez.obex.service
|
%{_datadir}/dbus-1/services/org.bluez.obex.service
|
||||||
%{_userunitdir}/obex.service
|
%{_userunitdir}/obex.service
|
||||||
|
%{_userunitdir}/dbus-org.bluez.obex.service
|
||||||
|
|
||||||
%if %{with bluez_deprecated}
|
%if %{with bluez_deprecated}
|
||||||
%files deprecated
|
%files deprecated
|
||||||
@ -453,6 +464,7 @@ done
|
|||||||
%{_mandir}/man1/sdptool.1%{?ext_man}
|
%{_mandir}/man1/sdptool.1%{?ext_man}
|
||||||
%{_mandir}/man1/ciptool.1%{?ext_man}
|
%{_mandir}/man1/ciptool.1%{?ext_man}
|
||||||
%{_mandir}/man1/rfcomm.1%{?ext_man}
|
%{_mandir}/man1/rfcomm.1%{?ext_man}
|
||||||
|
%{_mandir}/man7/rfcomm.7%{?ext_man}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
@ -478,6 +490,7 @@ done
|
|||||||
%{_bindir}/btgatt-client
|
%{_bindir}/btgatt-client
|
||||||
%dir %{_libdir}/bluez
|
%dir %{_libdir}/bluez
|
||||||
%{_libdir}/bluez/test
|
%{_libdir}/bluez/test
|
||||||
|
%{_mandir}/man7/l2cap.7%{?ext_man}
|
||||||
|
|
||||||
%files auto-enable-devices
|
%files auto-enable-devices
|
||||||
%dir %{_sysconfdir}/bluetooth
|
%dir %{_sysconfdir}/bluetooth
|
||||||
|
@ -11,11 +11,11 @@ Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
|
|||||||
Makefile.am | 4 ++--
|
Makefile.am | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
Index: bluez-5.65/Makefile.am
|
Index: bluez-5.71/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- bluez-5.65.orig/Makefile.am
|
--- bluez-5.71.orig/Makefile.am
|
||||||
+++ bluez-5.65/Makefile.am
|
+++ bluez-5.71/Makefile.am
|
||||||
@@ -502,8 +502,8 @@ unit_test_gdbus_client_LDADD = gdbus/lib
|
@@ -602,8 +602,8 @@ unit_test_gdbus_client_LDADD = gdbus/lib
|
||||||
src/libshared-glib.la $(GLIB_LIBS) $(DBUS_LIBS)
|
src/libshared-glib.la $(GLIB_LIBS) $(DBUS_LIBS)
|
||||||
|
|
||||||
if OBEX
|
if OBEX
|
||||||
|
Loading…
Reference in New Issue
Block a user