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
|
||||
retrieving revision 1.2
|
||||
diff -u -p -r1.2 oui.c
|
||||
--- common/oui.c 13 Jan 2007 17:48:12 -0000 1.2
|
||||
+++ common/oui.c 25 Jan 2008 12:16:58 -0000
|
||||
--- src/oui.c 13 Jan 2007 17:48:12 -0000 1.2
|
||||
+++ src/oui.c 25 Jan 2008 12:16:58 -0000
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/* 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
|
||||
# http://thread.gmane.org/gmane.linux.bluez.kernel/2396
|
||||
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
|
||||
URL: http://www.bluez.org/
|
||||
@ -134,7 +132,6 @@ This includes hidd, dund and pand.
|
||||
%patch3 -p1 -b .wacom
|
||||
%patch4 -p1 -b .socket-mobile
|
||||
%patch5 -p1 -b .cable-pairing
|
||||
%patch6 -p1 -b .newer-cups
|
||||
|
||||
%build
|
||||
libtoolize -f -c
|
||||
|
Loading…
Reference in New Issue
Block a user