Use git to manage distro patches

- Add numerous upstream and downstream patches (#892929)
This commit is contained in:
Bastien Nocera 2013-01-10 09:23:48 +01:00
parent ac2b84bdf8
commit 16acc96f47
11 changed files with 525 additions and 10 deletions

View File

@ -1,3 +1,13 @@
From 9c6f914530c3873e88b55e3f7c18ce2b8b533e20 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 10 Jan 2013 09:14:33 +0100
Subject: [PATCH] Activate the Socket Mobile CF kit
https://bugzilla.redhat.com/show_bug.cgi?id=498756
---
scripts/bluetooth-serial.rules | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scripts/bluetooth-serial.rules b/scripts/bluetooth-serial.rules
index 072335f..f6284ff 100644
--- a/scripts/bluetooth-serial.rules
@ -10,3 +20,6 @@ index 072335f..f6284ff 100644
+# SocketMobile CF Connection Kit
+SUBSYSTEM=="tty", SUBSYSTEMS=="pcmcia", ATTRS{prod_id1}=="Socket", ATTRS{prod_id2}=="CF+ Personal Network Card Rev 2.5", ENV{HCIOPTS}="socket", RUN+="bluetooth_serial"
+
--
1.8.0.1

View File

@ -1,3 +1,13 @@
From dcbeaaa74020031741ad3727e651cdd2d00c773f Mon Sep 17 00:00:00 2001
From: Luke Hutchison <luke.hutch@gmail.com>
Date: Thu, 10 Jan 2013 09:13:19 +0100
Subject: [PATCH] Allow PulseAudio to connect by default
https://bugzilla.redhat.com/show_bug.cgi?id=874015#c0
---
audio/audio.conf | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/audio/audio.conf b/audio/audio.conf
index fd6092a..9a80e63 100644
--- a/audio/audio.conf
@ -13,3 +23,6 @@ index fd6092a..9a80e63 100644
# Switch to master role for incoming connections (defaults to true)
#Master=true
--
1.8.0.1

View File

@ -0,0 +1,46 @@
From 0b5f5d0be6a1c9aa2d63e72e6a979f46cfbcc866 Mon Sep 17 00:00:00 2001
From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
Date: Thu, 10 Jan 2013 09:20:22 +0100
Subject: [PATCH] Enable the Gateway and Source audio profiles by default.
Those can be disabled by the user in /etc/bluetooth/audio.conf if
necessary.
https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/948613
---
audio/a2dp.c | 2 +-
audio/manager.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/audio/a2dp.c b/audio/a2dp.c
index 404be53..6c0ab26 100644
--- a/audio/a2dp.c
+++ b/audio/a2dp.c
@@ -1444,7 +1444,7 @@ int a2dp_register(DBusConnection *conn, const bdaddr_t *src, GKeyFile *config)
{
int sbc_srcs = 0, sbc_sinks = 0;
int mpeg12_srcs = 0, mpeg12_sinks = 0;
- gboolean source = TRUE, sink = FALSE, socket = FALSE;
+ gboolean source = TRUE, sink = TRUE, socket = TRUE;
gboolean delay_reporting = FALSE;
char *str;
GError *err = NULL;
diff --git a/audio/manager.c b/audio/manager.c
index d442d1d..99e03bb 100644
--- a/audio/manager.c
+++ b/audio/manager.c
@@ -110,9 +110,9 @@ static GSList *devices = NULL;
static struct enabled_interfaces enabled = {
.hfp = TRUE,
.headset = TRUE,
- .gateway = FALSE,
+ .gateway = TRUE,
.sink = TRUE,
- .source = FALSE,
+ .source = TRUE,
.control = TRUE,
.socket = FALSE,
.media = TRUE,
--
1.8.0.1

View File

@ -0,0 +1,84 @@
From a66a557038c0e3d21bc4f14090efb497558a12be Mon Sep 17 00:00:00 2001
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Date: Tue, 26 Jun 2012 18:11:25 -0300
Subject: [PATCH] Fix GDBus flags after conversion to macros
Commit "aa3b9016bf444b60e1b7e1804dfc323a23a93c5a Convert GDBus methods
to use macro helpers" converted the previous tables to use the new
macros but some flags were lost.
---
attrib/client.c | 2 +-
audio/control.c | 2 +-
audio/headset.c | 2 +-
audio/transport.c | 2 +-
src/manager.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/attrib/client.c b/attrib/client.c
index 8d119df..b3e3abe 100644
--- a/attrib/client.c
+++ b/attrib/client.c
@@ -519,7 +519,7 @@ static const GDBusMethodTable char_methods[] = {
{ GDBUS_METHOD("GetProperties",
NULL, GDBUS_ARGS({ "properties", "a{sv}" }),
get_properties) },
- { GDBUS_METHOD("SetProperty",
+ { GDBUS_ASYNC_METHOD("SetProperty",
GDBUS_ARGS({ "name", "s" }, { "value", "v" }), NULL,
set_property) },
{ }
diff --git a/audio/control.c b/audio/control.c
index c5a6a58..187f838 100644
--- a/audio/control.c
+++ b/audio/control.c
@@ -198,7 +198,7 @@ static DBusMessage *control_get_properties(DBusConnection *conn,
}
static const GDBusMethodTable control_methods[] = {
- { GDBUS_ASYNC_METHOD("IsConnected",
+ { GDBUS_DEPRECATED_METHOD("IsConnected",
NULL, GDBUS_ARGS({ "connected", "b" }),
control_is_connected) },
{ GDBUS_METHOD("GetProperties",
diff --git a/audio/headset.c b/audio/headset.c
index 729e4dc..b9c6265 100644
--- a/audio/headset.c
+++ b/audio/headset.c
@@ -2094,7 +2094,7 @@ static const GDBusMethodTable headset_methods[] = {
static const GDBusSignalTable headset_signals[] = {
{ GDBUS_DEPRECATED_SIGNAL("Connected", NULL) },
{ GDBUS_DEPRECATED_SIGNAL("Disconnected", NULL) },
- { GDBUS_DEPRECATED_SIGNAL("AnswerRequested", NULL) },
+ { GDBUS_SIGNAL("AnswerRequested", NULL) },
{ GDBUS_DEPRECATED_SIGNAL("Stopped", NULL) },
{ GDBUS_DEPRECATED_SIGNAL("Playing", NULL) },
{ GDBUS_DEPRECATED_SIGNAL("SpeakerGainChanged",
diff --git a/audio/transport.c b/audio/transport.c
index b015625..832ad2a 100644
--- a/audio/transport.c
+++ b/audio/transport.c
@@ -959,7 +959,7 @@ static const GDBusMethodTable transport_methods[] = {
{ GDBUS_ASYNC_METHOD("Release",
GDBUS_ARGS({ "access_type", "s" }), NULL,
release ) },
- { GDBUS_ASYNC_METHOD("SetProperty",
+ { GDBUS_METHOD("SetProperty",
GDBUS_ARGS({ "name", "s" }, { "value", "v" }),
NULL, set_property) },
{ },
diff --git a/src/manager.c b/src/manager.c
index 385354d..7061f64 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -207,7 +207,7 @@ static const GDBusMethodTable manager_methods[] = {
GDBUS_ARGS({ "pattern", "s" }),
GDBUS_ARGS({ "adapter", "o" }),
find_adapter) },
- { GDBUS_ASYNC_METHOD("ListAdapters",
+ { GDBUS_DEPRECATED_METHOD("ListAdapters",
NULL, GDBUS_ARGS({ "adapters", "ao" }),
list_adapters) },
{ }
--
1.8.0.1

View File

@ -0,0 +1,51 @@
From 2f92669697152848f2fae584d45fde5d80ea6eb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Dalleau?=
<frederic.dalleau@linux.intel.com>
Date: Fri, 22 Jun 2012 16:11:25 +0200
Subject: [PATCH] audio: Permit concurrent use of AG and HF roles
If a device supports both HF and AG roles, then if a SCO connection
related to AG profile happens, the connection is rejected because HF is
not connected. One consequence is pulseaudio failing to load bluetooth
module.
---
audio/main.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/audio/main.c b/audio/main.c
index 5c751af..a48c8b8 100644
--- a/audio/main.c
+++ b/audio/main.c
@@ -102,7 +102,7 @@ static void sco_server_cb(GIOChannel *chan, GError *err, gpointer data)
if (device->headset) {
if (headset_get_state(device) < HEADSET_STATE_CONNECTED) {
DBG("Refusing SCO from non-connected headset");
- goto drop;
+ goto gateway;
}
if (!headset_get_hfp_active(device)) {
@@ -115,7 +115,11 @@ static void sco_server_cb(GIOChannel *chan, GError *err, gpointer data)
goto drop;
headset_set_state(device, HEADSET_STATE_PLAYING);
- } else if (device->gateway) {
+ goto connect;
+ }
+
+gateway:
+ if (device->gateway) {
if (!gateway_is_connected(device)) {
DBG("Refusing SCO from non-connected AG");
goto drop;
@@ -126,6 +130,7 @@ static void sco_server_cb(GIOChannel *chan, GError *err, gpointer data)
} else
goto drop;
+connect:
sk = g_io_channel_unix_get_fd(chan);
fcntl(sk, F_SETFL, 0);
--
1.8.0.1

View File

@ -0,0 +1,101 @@
From ea793cb9f744cd2942b66385118161b880de958a Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Tue, 19 Jun 2012 12:44:43 +0300
Subject: [PATCH] input: Fix not adding watches when io channel is connected
This can leave dangling pointers in case one of the channel is never
connected which cause -EALREADY to be returned by
input_device_set_channel next time the device attempts to connect.
For the same reason the code path when acting as client now add the
watch as soon as the connection completes instead when both channels
are connected.
---
input/device.c | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/input/device.c b/input/device.c
index 0e3f4a9..09a9a39 100644
--- a/input/device.c
+++ b/input/device.c
@@ -387,6 +387,11 @@ static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond, gpointer data
struct input_conn *iconn = data;
struct input_device *idev = iconn->idev;
gboolean connected = FALSE;
+ char address[18];
+
+ ba2str(&iconn->idev->dst, address);
+
+ DBG("Device %s disconnected", address);
/* Checking for ctrl_watch avoids a double g_io_channel_shutdown since
* it's likely that ctrl_watch_cb has been queued for dispatching in
@@ -415,6 +420,11 @@ static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond, gpointer data
static gboolean ctrl_watch_cb(GIOChannel *chan, GIOCondition cond, gpointer data)
{
struct input_conn *iconn = data;
+ char address[18];
+
+ ba2str(&iconn->idev->dst, address);
+
+ DBG("Device %s disconnected", address);
/* Checking for intr_watch avoids a double g_io_channel_shutdown since
* it's likely that intr_watch_cb has been queued for dispatching in
@@ -811,13 +821,6 @@ static int input_device_connected(struct input_device *idev,
if (err < 0)
return err;
- iconn->intr_watch = g_io_add_watch(iconn->intr_io,
- G_IO_HUP | G_IO_ERR | G_IO_NVAL,
- intr_watch_cb, iconn);
- iconn->ctrl_watch = g_io_add_watch(iconn->ctrl_io,
- G_IO_HUP | G_IO_ERR | G_IO_NVAL,
- ctrl_watch_cb, iconn);
-
connected = TRUE;
emit_property_changed(idev->conn, idev->path, INPUT_DEVICE_INTERFACE,
"Connected", DBUS_TYPE_BOOLEAN, &connected);
@@ -854,6 +857,10 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
dbus_message_unref(iconn->pending_connect);
iconn->pending_connect = NULL;
+ iconn->intr_watch = g_io_add_watch(iconn->intr_io,
+ G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+ intr_watch_cb, iconn);
+
return;
failed:
@@ -913,6 +920,10 @@ static void control_connect_cb(GIOChannel *chan, GError *conn_err,
iconn->intr_io = io;
+ iconn->ctrl_watch = g_io_add_watch(iconn->ctrl_io,
+ G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+ ctrl_watch_cb, iconn);
+
return;
failed:
@@ -1272,11 +1283,17 @@ int input_device_set_channel(const bdaddr_t *src, const bdaddr_t *dst, int psm,
if (iconn->ctrl_io)
return -EALREADY;
iconn->ctrl_io = g_io_channel_ref(io);
+ iconn->ctrl_watch = g_io_add_watch(iconn->ctrl_io,
+ G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+ ctrl_watch_cb, iconn);
break;
case L2CAP_PSM_HIDP_INTR:
if (iconn->intr_io)
return -EALREADY;
iconn->intr_io = g_io_channel_ref(io);
+ iconn->intr_watch = g_io_add_watch(iconn->intr_io,
+ G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+ intr_watch_cb, iconn);
break;
}
--
1.8.0.1

View File

@ -0,0 +1,34 @@
From b57c64f1aa5c51dd785f2572636b8c41ada06d72 Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Tue, 30 Aug 2011 15:10:46 +0200
Subject: [PATCH] network: NULL dereference fix
Variable ifindex dereferenced on line 242 before null check on line 249.
---
network/common.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/network/common.c b/network/common.c
index 4704072..a223685 100644
--- a/network/common.c
+++ b/network/common.c
@@ -240,13 +240,15 @@ int bnep_if_down(const char *devname)
int bnep_add_to_bridge(const char *devname, const char *bridge)
{
- int ifindex = if_nametoindex(devname);
+ int ifindex;
struct ifreq ifr;
int sk, err;
if (!devname || !bridge)
return -EINVAL;
+ ifindex = if_nametoindex(devname);
+
sk = socket(AF_INET, SOCK_STREAM, 0);
if (sk < 0)
return -1;
--
1.8.0.1

View File

@ -0,0 +1,27 @@
From 57170b311f1468330f4a9961dc0b3ac45f97bc13 Mon Sep 17 00:00:00 2001
From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Date: Sat, 30 Jun 2012 00:39:05 -0300
Subject: [PATCH] network: fix network Connect() method parameters
---
network/connection.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/network/connection.c b/network/connection.c
index 544ec3a..59423a9 100644
--- a/network/connection.c
+++ b/network/connection.c
@@ -554,7 +554,9 @@ static void path_unregister(void *data)
static const GDBusMethodTable connection_methods[] = {
{ GDBUS_ASYNC_METHOD("Connect",
- NULL, NULL, connection_connect) },
+ GDBUS_ARGS({"uuid", "s"}),
+ GDBUS_ARGS({"interface", "s"}),
+ connection_connect) },
{ GDBUS_METHOD("Disconnect",
NULL, NULL, connection_disconnect) },
{ GDBUS_METHOD("GetProperties",
--
1.8.0.1

View File

@ -0,0 +1,29 @@
From 3aca31788655582f3029b3c88ad6f468c4de07a2 Mon Sep 17 00:00:00 2001
From: Tommy <mesilliac@gmail.com>
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
---
scripts/bluetooth-hid2hci.rules | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/bluetooth-hid2hci.rules b/scripts/bluetooth-hid2hci.rules
index 0687c8a..2a571e5 100644
--- a/scripts/bluetooth-hid2hci.rules
+++ b/scripts/bluetooth-hid2hci.rules
@@ -11,7 +11,10 @@ ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProt
RUN+="hid2hci --method=dell --devpath=%p", ENV{HID2HCI_SWITCH}="1"
# Logitech devices
-KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \
+KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[3bc]", \
+ RUN+="hid2hci --method=logitech-hid --devpath=%p"
+# Logitech, Inc. diNovo Edge Keyboard
+KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c714", \
RUN+="hid2hci --method=logitech-hid --devpath=%p"
ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
--
1.8.0.1

100
bluez.gitignore Normal file
View File

@ -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

View File

@ -1,12 +1,13 @@
Summary: Bluetooth utilities
Name: bluez
Version: 4.101
Release: 4%{?dist}
Release: 5%{?dist}
License: GPLv2+
Group: Applications/System
URL: http://www.bluez.org/
Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz
Source1: bluez.gitignore
Source3: dund.init
Source4: dund.conf
Source5: pand.init
@ -15,17 +16,26 @@ Source7: rfcomm.init
Source8: bluez-uinput.modules
# https://bugzilla.redhat.com/show_bug.cgi?id=874015#c0
Patch0: bluez-4.101-allow-a2dp-with-pulseaudio.patch
Patch0: 0001-Allow-PulseAudio-to-connect-by-default.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=877998
Patch1: 0001-hid2hci-change-subsystem-in-udev-rule-from-usb-to-us.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=498756
Patch4: bluez-socket-mobile-cf-connection-kit.patch
Patch4: 0001-Activate-the-Socket-Mobile-CF-kit.patch
# http://thread.gmane.org/gmane.linux.bluez.kernel/2396
Patch5: 0001-Add-sixaxis-cable-pairing-plugin.patch
# PS3 BD Remote patches
Patch6: 0001-input-Add-helper-function-to-request-disconnect.patch
Patch7: 0002-fakehid-Disconnect-from-PS3-remote-after-10-mins.patch
Patch8: 0003-fakehid-Use-the-same-constant-as-declared.patch
# Upstream patches
Patch9: 0001-audio-Permit-concurrent-use-of-AG-and-HF-roles.patch
Patch10: 0001-Fix-GDBus-flags-after-conversion-to-macros.patch
Patch11: 0001-input-Fix-not-adding-watches-when-io-channel-is-conn.patch
Patch12: 0001-network-fix-network-Connect-method-parameters.patch
Patch13: 0001-network-NULL-dereference-fix.patch
# Ubuntu patches
Patch14: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
Patch15: 0001-Enable-the-Gateway-and-Source-audio-profiles-by-defa.patch
BuildRequires: flex
BuildRequires: dbus-devel >= 0.90
@ -149,13 +159,16 @@ and mouse.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch4 -p1 -b .socket-mobile
%patch5 -p1 -b .cable-pairing
%patch6 -p1
%patch7 -p1
%patch8 -p1
git init
if [ -z "$GIT_COMMITTER_NAME" ]; then
git config user.email "bluez-owner@fedoraproject.org"
git config user.name "Fedora Bluez maintainers"
fi
cp %{SOURCE1} .gitignore
git add .
git commit -a -q -m "%{version} baseline."
git am -p1 %{patches} < /dev/null
%build
libtoolize -f -c
@ -323,6 +336,10 @@ fi
%exclude /usr/lib/udev/rules.d/97-bluetooth-hid2hci.rules
%changelog
* Thu Jan 10 2013 Bastien Nocera <bnocera@redhat.com> 4.101-5
- Use git to manage distro patches
- Add numerous upstream and downstream patches (#892929)
* Wed Nov 21 2012 Bastien Nocera <bnocera@redhat.com> 4.101-4
- Clean up requires and build requires
- Use CUPS macro (#772236)