Revert version 5.48

This commit is contained in:
VictorR2007 2020-02-22 15:42:38 +03:00
parent 3f366dff73
commit 9a8454a98d
11 changed files with 258 additions and 181 deletions

View file

@ -0,0 +1,59 @@
http://www.spinics.net/lists/linux-bluetooth/msg38490.html
From 3027cb7141fb65cf3eeda69c688db8c4045e2d3f Mon Sep 17 00:00:00 2001
From: Giovanni Campagna <gcampagna-cNUdlRotFMnNLxjTenLetw@public.gmane.org>
Date: Sat, 12 Oct 2013 17:45:25 +0200
Subject: [PATCH] Allow using obexd without systemd in the user session
Not all sessions run systemd --user (actually, the majority
doesn't), so the dbus daemon must be able to spawn obexd
directly, and to do so it needs the full path of the daemon.
---
Makefile.obexd | 4 ++--
obexd/src/org.bluez.obex.service | 4 ----
obexd/src/org.bluez.obex.service.in | 4 ++++
3 files changed, 6 insertions(+), 6 deletions(-)
delete mode 100644 obexd/src/org.bluez.obex.service
create mode 100644 obexd/src/org.bluez.obex.service.in
diff --git a/Makefile.obexd b/Makefile.obexd
index 3760867..142e7c3 100644
--- a/Makefile.obexd
+++ b/Makefile.obexd
@@ -2,12 +2,12 @@
if SYSTEMD
systemduserunitdir = @SYSTEMD_USERUNITDIR@
systemduserunit_DATA = obexd/src/obex.service
+endif
dbussessionbusdir = @DBUS_SESSIONBUSDIR@
dbussessionbus_DATA = obexd/src/org.bluez.obex.service
-endif
-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service
+EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in
obex_plugindir = $(libdir)/obex/plugins
diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service
deleted file mode 100644
index a538088..0000000
--- a/obexd/src/org.bluez.obex.service
+++ /dev/null
@@ -1,4 +0,0 @@
-[D-BUS Service]
-Name=org.bluez.obex
-Exec=/bin/false
-SystemdService=dbus-org.bluez.obex.service
diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in
new file mode 100644
index 0000000..9c815f2
--- /dev/null
+++ b/obexd/src/org.bluez.obex.service.in
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.bluez.obex
+Exec=@libexecdir@/obexd
+SystemdService=dbus-org.bluez.obex.service
--
1.8.3.1

View file

@ -9,11 +9,11 @@ relative paths aren't used by the agent.
obexd/src/manager.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index cec8a39..f18896e 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -651,14 +651,14 @@ static void agent_reply(DBusPendingCall *call, void *user_data)
Index: bluez/obexd/src/manager.c
===================================================================
--- bluez.orig/obexd/src/manager.c
+++ bluez/obexd/src/manager.c
@@ -653,14 +653,14 @@ static void agent_reply(DBusPendingCall
DBUS_TYPE_STRING, &name,
DBUS_TYPE_INVALID)) {
/* Splits folder and name */
@ -33,6 +33,3 @@ index cec8a39..f18896e 100644
}
}
--
1.8.4.2

View file

@ -4,6 +4,7 @@ Date: Thu, 10 Jan 2013 09:18:43 +0100
Subject: [PATCH] work around Logitech diNovo Edge keyboard firmware issue
https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/269851
https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1688663
---
tools/hid2hci.rules | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
@ -20,7 +21,7 @@ index db6bb03..7db4572 100644
+KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[3bc]", \
+ RUN+="hid2hci --method=logitech-hid --devpath=%p"
+# Logitech, Inc. diNovo Edge Keyboard
+KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c714", \
+KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c7[01]4", \
RUN+="hid2hci --method=logitech-hid --devpath=%p"
ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"

View file

@ -1,25 +0,0 @@
From 67e5477687a2753d3f7b300bcfdc74464d8ad41f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 9 Dec 2013 18:04:56 +0100
Subject: [PATCH 4/5] agent: Assert possible infinite loop
---
src/agent.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/agent.c b/src/agent.c
index bcba969..b292881 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -203,6 +203,8 @@ void agent_unref(struct agent *agent)
if (agent->ref > 0)
return;
+ g_assert (agent->ref == 0);
+
if (agent->request) {
DBusError err;
agent_pincode_cb pincode_cb;
--
1.8.4.2

21
bluetooth.conf.patch Normal file
View file

@ -0,0 +1,21 @@
Description: Add permission to bluetooth control for user into bluetooth
Forwarded: not-needed
Origin: vendor
Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Index: bluez/src/bluetooth.conf
===================================================================
--- bluez.orig/src/bluetooth.conf
+++ bluez/src/bluetooth.conf
@@ -21,6 +21,11 @@
<allow send_interface="org.freedesktop.DBus.Properties"/>
</policy>
+ <!-- allow users of bluetooth group to communicate -->
+ <policy group="bluetooth">
+ <allow send_destination="org.bluez"/>
+ </policy>
+
<policy at_console="true">
<allow send_destination="org.bluez"/>
</policy>

View file

@ -1,38 +0,0 @@
From 488fd81a0f9cb193a733ac03fba0a80c145868c9 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Tue, 20 Oct 2015 12:24:45 +0200
Subject: systemd: Check if bluetooth is supported in the kernel
When running a kernel without bluetooth support, bluetooth.service fails to
start with
bluetoothd[1640]: Failed to access management interface
bluetoothd[1640]: Adapter handling initialization failed
systemd[1]: bluetooth.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Bluetooth service.
This causes an unnecessary "degraded" state and more importantly breaks package
installation when the bluez package auto-starts the daemon.
Add a condition to only start the service if /sys/class/bluetooth exists.
https://launchpad.net/bugs/1506774
---
src/bluetooth.service.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in
index 35e9457..83e4732 100644
--- a/src/bluetooth.service.in
+++ b/src/bluetooth.service.in
@@ -1,6 +1,7 @@
[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
+ConditionPathIsDirectory=/sys/class/bluetooth
[Service]
Type=dbus
--
cgit v0.11.2

View file

@ -1,34 +0,0 @@
diff -urN bluez-5.51/Makefile.obexd bluez-5.51-patched/Makefile.obexd
--- bluez-5.51/Makefile.obexd 2019-09-19 21:51:02.000000000 +0300
+++ bluez-5.51-patched/Makefile.obexd 2019-09-27 13:42:04.437366618 +0300
@@ -1,12 +1,12 @@
if SYSTEMD
systemduserunitdir = $(SYSTEMD_USERUNITDIR)
systemduserunit_DATA = obexd/src/obex.service
+endif
dbussessionbusdir = $(DBUS_SESSIONBUSDIR)
dbussessionbus_DATA = obexd/src/org.bluez.obex.service
-endif
-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service
+EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in
if OBEX
diff -urN bluez-5.51/obexd/src/org.bluez.obex.service bluez-5.51-patched/obexd/src/org.bluez.obex.service
--- bluez-5.51/obexd/src/org.bluez.obex.service 2012-12-24 21:46:55.000000000 +0400
+++ bluez-5.51-patched/obexd/src/org.bluez.obex.service 1970-01-01 03:00:00.000000000 +0300
@@ -1,4 +0,0 @@
-[D-BUS Service]
-Name=org.bluez.obex
-Exec=/bin/false
-SystemdService=dbus-org.bluez.obex.service
diff -urN bluez-5.51/obexd/src/org.bluez.obex.service.in bluez-5.51-patched/obexd/src/org.bluez.obex.service.in
--- bluez-5.51/obexd/src/org.bluez.obex.service.in 1970-01-01 03:00:00.000000000 +0300
+++ bluez-5.51-patched/obexd/src/org.bluez.obex.service.in 2019-09-27 13:43:58.700696733 +0300
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.bluez.obex
+Exec=@libexecdir@/obexd
+SystemdService=dbus-org.bluez.obex.service

View file

@ -4,35 +4,31 @@
Summary: Official Linux Bluetooth protocol stack
Name: bluez
Version: 5.51
Version: 5.48
Release: 1
Epoch: 1
License: GPLv2+
Group: Communications
Url: http://www.bluez.org/
Source0: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.xz
Source1: pand.conf
Source2: dund.conf
Source3: hidd.conf
Source4: rfcomm.conf
Source6: pand.conf
Source7: dund.conf
Source8: hidd.conf
Source9: rfcomm.conf
Source5: 97-bluetooth.rules
Source10: bluez-uinput.modules
# Revert this commit, it leads to huge delay on boot in Plasma 5
Patch0: bluez-5.36-systemd-conditional.patch
## Ubuntu patches
Patch1: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
# Non-upstream
Patch2: bluez-5.51-allow-using-obexd-without-systemd-in-the-user-sessio.patch
Patch0: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
Patch1: bluetooth.conf.patch
Patch2: 0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
Patch3: 0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
Patch4: 0004-agent-Assert-possible-infinite-loop.patch
Patch4: change_path_of_hogsuspend.patch
Patch5: fix-lp1750308-upstream-commit-1bf03369.patch
Patch6: fix_build_with_5.2-rc2_kernel_headers.patch
BuildRequires: bison
BuildRequires: flex
BuildRequires: cups-devel
BuildRequires: elfutils-devel
BuildRequires: readline-devel
BuildRequires: sbc-devel
BuildRequires: speexdsp-devel
BuildRequires: json-c-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(glib-2.0)
@ -43,7 +39,6 @@ BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(udev) >= 186
Requires(pre): rpm-helper
Recommends: obex-data-server
Obsoletes: bluez-alsa < 5.0
Obsoletes: bluez-gstreamer < 5.0
@ -63,40 +58,33 @@ These are the official Bluetooth communication libraries for Linux.
%{_bindir}/hcitool
%{_bindir}/hex2hcd
%{_bindir}/l2ping
%{_bindir}/meshctl
%{_bindir}/mpris-proxy
%{_bindir}/rfcomm
%{_bindir}/sdptool
%{_libexecdir}/bluetooth/bluetoothd
%{_libexecdir}/bluetooth/obexd
%{_unitdir}/bluetooth-logger.service
%{_unitdir}/bluetooth-mesh.service
%{_unitdir}/bluetooth.service
%{_unitdir}/dbus-org.bluez.service
%{_userunitdir}/obex.service
%{_mandir}/man1/bccmd.1*
%{_mandir}/man1/btattach.1*
%{_mandir}/man1/ciptool.1*
%{_mandir}/man1/hciattach.1*
%{_mandir}/man1/hciconfig.1*
%{_mandir}/man1/hcitool.1*
%{_mandir}/man1/hcidump.1*
%{_mandir}/man1/l2ping.1*
%{_mandir}/man1/rctest.1*
%{_mandir}/man1/rfcomm.1*
%{_mandir}/man1/sdptool.1*
%{_mandir}/man1/ciptool.1.*
%{_mandir}/man1/btattach.1.*
%{_mandir}/man1/hcitool.1.*
%{_mandir}/man1/rfcomm.1.*
%{_mandir}/man1/sdptool.1.*
%{_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/*
%config(noreplace) %{_sysconfdir}/sysconfig/*
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/*.conf
%config(noreplace) %{_sysconfdir}/bluetooth
%{_datadir}/dbus-1/system-services/org.bluez.service
%{_datadir}/dbus-1/system-services/org.bluez.mesh.service
%{_datadir}/dbus-1/services/org.bluez.obex.service
%{_datadir}/zsh/site-functions/_bluetoothctl
%{_localstatedir}/lib/bluetooth
%dir %{_libdir}/bluetooth
%{_libdir}/bluetooth/btmon-logger
%{_libdir}/bluetooth/bluetooth-meshd
%dir %{_libdir}/bluetooth/plugins
%{_libdir}/bluetooth/plugins/sixaxis.so
%{_udevrulesdir}/97-bluetooth.rules
@ -118,7 +106,7 @@ Requires: cups
This package contains the CUPS backend for Bluetooth printers.
%files cups
%{_libdir}/cups/backend/bluetooth
%{_prefix}/lib/cups/backend/bluetooth
#----------------------------------------------------------------------------
@ -130,7 +118,7 @@ Group: System/Libraries
These are the official Bluetooth communication libraries for Linux.
%files -n %{libname}
%{_libdir}/libbluetooth.so.%{major}*
/%{_lib}/libbluetooth.so.%{major}*
#----------------------------------------------------------------------------
@ -207,48 +195,37 @@ BLUETOOTH trademarks are owned by Bluetooth SIG, Inc., U.S.A.
%prep
%setup -q
%patch0 -p1 -R
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
libtoolize -f -c
autoreconf -fi
%patch5 -p1
%patch6 -p1
%build
%configure \
--prefix=/usr \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-sixaxis \
--enable-udev \
--enable-backtrace \
--enable-battery \
--enable-deprecated \
--enable-deviceinfo \
--enable-testing \
--enable-library \
--enable-usb \
--enable-threads \
--enable-tools \
--enable-monitor \
--enable-obex \
--enable-client \
--enable-systemd \
--enable-mesh \
--enable-btpclient \
autoreconf -vfi
%configure2_5x \
--with-systemdsystemunitdir=%{_unitdir} \
--with-systemduserunitdir=%{_userunitdir} \
--with-udevdir=/lib/udev \
--enable-usb \
--enable-tools \
--enable-cups \
--enable-datafiles \
--enable-debug \
--enable-library \
--enable-monitor \
--enable-udev \
--enable-obex \
--enable-client \
--enable-systemd \
--enable-threads \
--enable-sixaxis \
--enable-experimental \
--enable-nfc \
--enable-sap \
--enable-logger \
--enable-network \
--enable-input \
--enable-health
--enable-deprecated \
--enable-testing \
--enable-phonebook-ebook
%make
@ -260,10 +237,20 @@ echo "1234" > %{buildroot}%{_sysconfdir}/bluetooth/pin
chmod 600 %{buildroot}%{_sysconfdir}/bluetooth/pin
install -m644 %{SOURCE1} -D %{buildroot}%{_sysconfdir}/sysconfig/pand
install -m644 %{SOURCE2} -D %{buildroot}%{_sysconfdir}/sysconfig/dund
install -m644 %{SOURCE3} -D %{buildroot}%{_sysconfdir}/sysconfig/hidd
install -m644 %{SOURCE4} -D %{buildroot}%{_sysconfdir}/sysconfig/rfcomm
install -m644 %{SOURCE6} -D %{buildroot}%{_sysconfdir}/sysconfig/pand
install -m644 %{SOURCE7} -D %{buildroot}%{_sysconfdir}/sysconfig/dund
install -m644 %{SOURCE8} -D %{buildroot}%{_sysconfdir}/sysconfig/hidd
install -m644 %{SOURCE9} -D %{buildroot}%{_sysconfdir}/sysconfig/rfcomm
mkdir -p %{buildroot}/%{_lib}
mv %{buildroot}%{_libdir}/libbluetooth.so.%{major}* %{buildroot}/%{_lib}
ln -srf %{buildroot}/%{_lib}/libbluetooth.so.%{major}.*.* %{buildroot}%{_libdir}/libbluetooth.so
# Remove the cups backend from libdir, and install it in /usr/lib whatever the install
%if "%{_lib}" == "lib64"
install -d %{buildroot}%{_prefix}/lib
mv %{buildroot}%{_libdir}/cups %{buildroot}%{_prefix}/lib/cups
%endif
cp test/test-* %{buildroot}%{_bindir}
cp test/simple-agent %{buildroot}%{_bindir}/simple-agent
@ -281,5 +268,3 @@ install -m0644 profiles/input/input.conf %{buildroot}%{_sysconfdir}/bluetooth/
install -d -m0755 %{buildroot}%{_localstatedir}/lib/bluetooth
ln -s bluetooth.service %{buildroot}%{_unitdir}/dbus-org.bluez.service
sed 's|#AutoEnable=false|AutoEnable=true|' -i %{buildroot}%{_sysconfdir}/bluetooth/main.conf

View file

@ -0,0 +1,17 @@
Description: Move path of hogsuspend to /run.
Forwarded: not-needed
Origin: vendor
Bug-Debian: http://bugs.debian.org/759188
Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
--- a/profiles/input/suspend-dummy.c 2014-08-26 12:00:40.006495551 +0900
+++ b/profiles/input/suspend-dummy.c 2014-08-26 12:01:37.658496141 +0900
@@ -40,7 +40,7 @@
#include "src/log.h"
#include "suspend.h"
-#define HOG_SUSPEND_FIFO "/tmp/hogsuspend"
+#define HOG_SUSPEND_FIFO "/run/hogsuspend"
static suspend_event suspend_cb = NULL;
static resume_event resume_cb = NULL;

View file

@ -0,0 +1,37 @@
From 1bf0336942fd093a0f8fa890eb026e1dc379f35f Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Tue, 20 Feb 2018 11:11:26 +0200
Subject: [PATCH] shared/io: Don't process HUP cond before others
When a HUP happens there maybe data left to be processed so the
disconnect handler shall be called last.
---
src/shared/io-glib.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/shared/io-glib.c b/src/shared/io-glib.c
index 6687a6b28..d62de4e10 100644
--- a/src/shared/io-glib.c
+++ b/src/shared/io-glib.c
@@ -179,6 +179,7 @@ static struct io_watch *watch_new(struct io *io, GIOCondition cond,
io_destroy_func_t destroy)
{
struct io_watch *watch;
+ int prio;
watch = g_try_new0(struct io_watch, 1);
if (!watch)
@@ -189,7 +190,9 @@ static struct io_watch *watch_new(struct io *io, GIOCondition cond,
watch->destroy = destroy;
watch->user_data = user_data;
- watch->id = g_io_add_watch_full(io->channel, G_PRIORITY_DEFAULT,
+ prio = cond == G_IO_HUP ? G_PRIORITY_DEFAULT_IDLE : G_PRIORITY_DEFAULT;
+
+ watch->id = g_io_add_watch_full(io->channel, prio,
cond | G_IO_ERR | G_IO_NVAL,
watch_callback, watch,
watch_destroy);
--
2.15.1

View file

@ -0,0 +1,57 @@
The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name
to fix the build.
---
tools/l2test.c | 6 +++++-
tools/rctest.c | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/tools/l2test.c b/tools/l2test.c
index e755ac881..e787c2ce2 100644
--- a/tools/l2test.c
+++ b/tools/l2test.c
@@ -55,6 +55,10 @@
#define BREDR_DEFAULT_PSM 0x1011
#define LE_DEFAULT_PSM 0x0080
+#ifndef SIOCGSTAMP_OLD
+#define SIOCGSTAMP_OLD SIOCGSTAMP
+#endif
+
/* Test modes */
enum {
SEND,
@@ -907,7 +911,7 @@ static void recv_mode(int sk)
if (timestamp) {
struct timeval tv;
- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
timestamp = 0;
memset(ts, 0, sizeof(ts));
} else {
diff --git a/tools/rctest.c b/tools/rctest.c
index 94490f462..bc8ed875d 100644
--- a/tools/rctest.c
+++ b/tools/rctest.c
@@ -50,6 +50,10 @@
#include "src/shared/util.h"
+#ifndef SIOCGSTAMP_OLD
+#define SIOCGSTAMP_OLD SIOCGSTAMP
+#endif
+
/* Test modes */
enum {
SEND,
@@ -505,7 +509,7 @@ static void recv_mode(int sk)
if (timestamp) {
struct timeval tv;
- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
timestamp = 0;
memset(ts, 0, sizeof(ts));
} else {
--
2.21.0