Update patches
This commit is contained in:
parent
dbcd72ff74
commit
799ca69a2a
@ -1,140 +0,0 @@
|
|||||||
From fdf7b75f5fc8a9726db6756bcddff6aa74b42ba0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Till Kamppeter <till.kamppeter@gmail.com>
|
|
||||||
Date: Thu, 27 Aug 2009 09:07:49 +0200
|
|
||||||
Subject: [PATCH] Make discovery mode of bluetooth CUPS backend work with CUPS 1.4.0
|
|
||||||
|
|
||||||
The new CUPS 1.4.x does device discovery only for a given time frame
|
|
||||||
requested by the client (printer setup tool, "lpinfo" command). CUPS's
|
|
||||||
default for CUPS-1.3.x-ish requests without timeout specification
|
|
||||||
seems to be 10 seconds. CUPS starts all backends at once in the
|
|
||||||
beginning (in parallel) and kills every backend which remains running
|
|
||||||
at the end of the timeout. It accepts output from the backends
|
|
||||||
whenever it occurs not only when the backend finishes, so a backend
|
|
||||||
can search for printers infinitely long if it outputs every found
|
|
||||||
device immediately. Then all printers found during CUPS' timeout are
|
|
||||||
taken into account.
|
|
||||||
|
|
||||||
The bluetooth backend of 4.48 asks the Bluetooth daemon for printers
|
|
||||||
and collects results for 10 seconds and after that it outputs
|
|
||||||
them. This takes a total of 10.5 sec and so CUPS kills the backend
|
|
||||||
right before it answers (at least with the 10-second default timeout),
|
|
||||||
resulting in Bluetooth printers never being discovered by CUPS.
|
|
||||||
|
|
||||||
This change fixes it by making each new printer added to the list
|
|
||||||
being output immediately. Note that the list structure cannot be
|
|
||||||
removed from cups/main.c as otherwise we would get duplicate
|
|
||||||
listings. Also important is the addition of unbuffered output on
|
|
||||||
stdout.
|
|
||||||
---
|
|
||||||
ChangeLog | 2 +
|
|
||||||
cups/main.c | 63 +++++++++++++++++++++++-----------------------------------
|
|
||||||
2 files changed, 27 insertions(+), 38 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ChangeLog b/ChangeLog
|
|
||||||
index d06f494..6c170f6 100644
|
|
||||||
--- a/ChangeLog
|
|
||||||
+++ b/ChangeLog
|
|
||||||
@@ -1,3 +1,5 @@
|
|
||||||
+ver 4.51:
|
|
||||||
+ Make discovery mode of bluetooth CUPS backend work with CUPS 1.4.0.
|
|
||||||
ver 4.50:
|
|
||||||
Fix issue with missing manual pages in distribution.
|
|
||||||
Fix issue with the configuration and state directories.
|
|
||||||
diff --git a/cups/main.c b/cups/main.c
|
|
||||||
index da757b0..1bbc78c 100644
|
|
||||||
--- a/cups/main.c
|
|
||||||
+++ b/cups/main.c
|
|
||||||
@@ -185,6 +185,27 @@ static char *device_get_ieee1284_id(const char *adapter, const char *device)
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void print_printer_details(const char *name, const char *bdaddr, const char *id)
|
|
||||||
+{
|
|
||||||
+ char *uri, *escaped;
|
|
||||||
+
|
|
||||||
+ escaped = g_strdelimit(g_strdup(name), "\"", '\'');
|
|
||||||
+ uri = g_strdup_printf("bluetooth://%c%c%c%c%c%c%c%c%c%c%c%c",
|
|
||||||
+ bdaddr[0], bdaddr[1],
|
|
||||||
+ bdaddr[3], bdaddr[4],
|
|
||||||
+ bdaddr[6], bdaddr[7],
|
|
||||||
+ bdaddr[9], bdaddr[10],
|
|
||||||
+ bdaddr[12], bdaddr[13],
|
|
||||||
+ bdaddr[15], bdaddr[16]);
|
|
||||||
+ printf("direct %s \"%s\" \"%s (Bluetooth)\"", uri, escaped, escaped);
|
|
||||||
+ if (id != NULL)
|
|
||||||
+ printf(" \"%s\"\n", id);
|
|
||||||
+ else
|
|
||||||
+ printf("\n");
|
|
||||||
+ g_free(escaped);
|
|
||||||
+ g_free(uri);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void add_device_to_list(const char *name, const char *bdaddr, const char *id)
|
|
||||||
{
|
|
||||||
struct cups_device *device;
|
|
||||||
@@ -212,27 +233,7 @@ static void add_device_to_list(const char *name, const char *bdaddr, const char
|
|
||||||
device->id = g_strdup(id);
|
|
||||||
|
|
||||||
device_list = g_slist_prepend(device_list, device);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void print_printer_details(const char *name, const char *bdaddr, const char *id)
|
|
||||||
-{
|
|
||||||
- char *uri, *escaped;
|
|
||||||
-
|
|
||||||
- escaped = g_strdelimit(g_strdup(name), "\"", '\'');
|
|
||||||
- uri = g_strdup_printf("bluetooth://%c%c%c%c%c%c%c%c%c%c%c%c",
|
|
||||||
- bdaddr[0], bdaddr[1],
|
|
||||||
- bdaddr[3], bdaddr[4],
|
|
||||||
- bdaddr[6], bdaddr[7],
|
|
||||||
- bdaddr[9], bdaddr[10],
|
|
||||||
- bdaddr[12], bdaddr[13],
|
|
||||||
- bdaddr[15], bdaddr[16]);
|
|
||||||
- printf("direct %s \"%s\" \"%s (Bluetooth)\"", uri, escaped, escaped);
|
|
||||||
- if (id != NULL)
|
|
||||||
- printf(" \"%s\"\n", id);
|
|
||||||
- else
|
|
||||||
- printf("\n");
|
|
||||||
- g_free(escaped);
|
|
||||||
- g_free(uri);
|
|
||||||
+ print_printer_details(device->name, device->bdaddr, device->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean parse_device_properties(DBusMessageIter *reply_iter, char **name, char **bdaddr)
|
|
||||||
@@ -384,23 +385,6 @@ static void remote_device_found(const char *adapter, const char *bdaddr, const c
|
|
||||||
|
|
||||||
static void discovery_completed(void)
|
|
||||||
{
|
|
||||||
- GSList *l;
|
|
||||||
-
|
|
||||||
- for (l = device_list; l != NULL; l = l->next) {
|
|
||||||
- struct cups_device *device = (struct cups_device *) l->data;
|
|
||||||
-
|
|
||||||
- if (device->name == NULL)
|
|
||||||
- device->name = g_strdelimit(g_strdup(device->bdaddr), ":", '-');
|
|
||||||
- /* Give another try to getting an ID for the device */
|
|
||||||
- if (device->id == NULL)
|
|
||||||
- remote_device_found(NULL, device->bdaddr, device->name);
|
|
||||||
- print_printer_details(device->name, device->bdaddr, device->id);
|
|
||||||
- g_free(device->name);
|
|
||||||
- g_free(device->bdaddr);
|
|
||||||
- g_free(device->id);
|
|
||||||
- g_free(device);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
g_slist_free(device_list);
|
|
||||||
device_list = NULL;
|
|
||||||
|
|
||||||
@@ -638,6 +622,9 @@ int main(int argc, char *argv[])
|
|
||||||
/* Make sure status messages are not buffered */
|
|
||||||
setbuf(stderr, NULL);
|
|
||||||
|
|
||||||
+ /* Make sure output is not buffered */
|
|
||||||
+ setbuf(stdout, NULL);
|
|
||||||
+
|
|
||||||
/* Ignore SIGPIPE signals */
|
|
||||||
#ifdef HAVE_SIGSET
|
|
||||||
sigset(SIGPIPE, SIG_IGN);
|
|
||||||
--
|
|
||||||
1.6.3.3
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
Index: common/oui.c
|
Index: src/oui.c
|
||||||
===================================================================
|
===================================================================
|
||||||
RCS file: /cvsroot/bluez/utils/common/oui.c,v
|
RCS file: /cvsroot/bluez/utils/common/oui.c,v
|
||||||
retrieving revision 1.2
|
retrieving revision 1.2
|
||||||
diff -u -p -r1.2 oui.c
|
diff -u -p -r1.2 oui.c
|
||||||
--- common/oui.c 13 Jan 2007 17:48:12 -0000 1.2
|
--- src/oui.c 13 Jan 2007 17:48:12 -0000 1.2
|
||||||
+++ common/oui.c 25 Jan 2008 12:16:58 -0000
|
+++ src/oui.c 25 Jan 2008 12:16:58 -0000
|
||||||
@@ -38,7 +38,7 @@
|
@@ -38,7 +38,7 @@
|
||||||
|
|
||||||
/* http://standards.ieee.org/regauth/oui/oui.txt */
|
/* http://standards.ieee.org/regauth/oui/oui.txt */
|
||||||
|
@ -23,8 +23,6 @@ Patch3: bluez-activate-wacom-mode2.patch
|
|||||||
Patch4: bluez-socket-mobile-cf-connection-kit.patch
|
Patch4: bluez-socket-mobile-cf-connection-kit.patch
|
||||||
# http://thread.gmane.org/gmane.linux.bluez.kernel/2396
|
# http://thread.gmane.org/gmane.linux.bluez.kernel/2396
|
||||||
Patch5: 0001-Add-sixaxis-cable-pairing-plugin.patch
|
Patch5: 0001-Add-sixaxis-cable-pairing-plugin.patch
|
||||||
# http://thread.gmane.org/gmane.linux.bluez.kernel/3264/focus=3286
|
|
||||||
Patch6: 0001-Make-discovery-mode-of-bluetooth-CUPS-backend-work-w.patch
|
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
URL: http://www.bluez.org/
|
URL: http://www.bluez.org/
|
||||||
@ -134,7 +132,6 @@ This includes hidd, dund and pand.
|
|||||||
%patch3 -p1 -b .wacom
|
%patch3 -p1 -b .wacom
|
||||||
%patch4 -p1 -b .socket-mobile
|
%patch4 -p1 -b .socket-mobile
|
||||||
%patch5 -p1 -b .cable-pairing
|
%patch5 -p1 -b .cable-pairing
|
||||||
%patch6 -p1 -b .newer-cups
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
libtoolize -f -c
|
libtoolize -f -c
|
||||||
|
Loading…
Reference in New Issue
Block a user