Author: krejzi
Date: 2012-08-15 08:43:35 -0600 (Wed, 15 Aug 2012)
New Revision: 2510
Added:
trunk/gnome-control-center/gnome-control-center-3.4.2-cups-1.patch
trunk/gnome-settings-daemon/gnome-settings-daemon-3.4.2-cups-1.patch
Log:
g-s-d and g-c-c CUPS fixes.
Added: trunk/gnome-control-center/gnome-control-center-3.4.2-cups-1.patch
===================================================================
--- trunk/gnome-control-center/gnome-control-center-3.4.2-cups-1.patch
(rev 0)
+++ trunk/gnome-control-center/gnome-control-center-3.4.2-cups-1.patch
2012-08-15 14:43:35 UTC (rev 2510)
@@ -0,0 +1,352 @@
+Submitted By: Armin K. <krejzi at email dot com>
+Date: 2012-08-15
+Initial Package Version: 3.4.2
+Upstream Status: Fixed upstream
+Origin: Upstream bugzilla
+Description: Fixes compiling with CUPS 1.6.0 and later
+
+--- gnome-control-center.orig/panels/printers/cc-printers-panel.c
2012-04-10 17:01:29.000000000 +0200
++++ gnome-control-center/panels/printers/cc-printers-panel.c 2012-08-15
16:40:20.554617709 +0200
+@@ -58,6 +58,16 @@
+
+ #define CUPS_STATUS_CHECK_INTERVAL 5
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetString(attr, element, language)
attr->values[element].string.text
++#endif
++
+ struct _CcPrintersPanelPrivate
+ {
+ GtkBuilder *builder;
+@@ -311,7 +321,7 @@
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ ipp_attribute_t *attr_username = NULL;
+ ipp_attribute_t *attr_printer_uri = NULL;
+@@ -319,12 +329,12 @@
+ attr_username = ippFindAttribute(response,
"job-originating-user-name", IPP_TAG_NAME);
+ attr_printer_uri = ippFindAttribute(response,
"job-printer-uri", IPP_TAG_URI);
+ if (attr_username && attr_printer_uri &&
+- g_strcmp0 (attr_username->values[0].string.text,
cupsUser ()) == 0 &&
+- g_strrstr (attr_printer_uri->values[0].string.text,
"/") != 0 &&
++ g_strcmp0 (ippGetString (attr_username, 0, NULL),
cupsUser ()) == 0 &&
++ g_strrstr (ippGetString (attr_printer_uri, 0, NULL),
"/") != 0 &&
+ priv->current_dest >= 0 &&
+ priv->current_dest < priv->num_dests &&
+ priv->dests != NULL &&
+- g_strcmp0 (g_strrstr
(attr_printer_uri->values[0].string.text, "/") + 1,
++ g_strcmp0 (g_strrstr (ippGetString (attr_printer_uri,
0, NULL), "/") + 1,
+ priv->dests[priv->current_dest].name) == 0)
+ actualize_jobs_list (self);
+ }
+@@ -2288,7 +2298,7 @@
+
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during printing of test page.");
+ ippDelete (response);
+ }
+--- gnome-control-center.orig/panels/printers/pp-new-printer-dialog.c
2012-04-16 14:54:29.000000000 +0200
++++ gnome-control-center/panels/printers/pp-new-printer-dialog.c
2012-08-15 16:40:20.557617778 +0200
+@@ -59,6 +59,14 @@
+
+ #define ALLOWED_CHARACTERS
"abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#endif
++
+ static void pp_new_printer_dialog_hide (PpNewPrinterDialog *pp);
+ static void actualize_devices_list (PpNewPrinterDialog *pp);
+
+@@ -1760,7 +1768,7 @@
+ _("Automatic
configuration"));
+ if (response)
+ {
+- if (response->state == IPP_ERROR)
++ if (ippGetState(response) == IPP_ERROR)
+ g_warning ("An error has occured during automatic
configuration of new printer.");
+ ippDelete (response);
+ }
+--- gnome-control-center.orig/panels/printers/pp-utils.c 2012-04-16
14:54:29.000000000 +0200
++++ gnome-control-center/panels/printers/pp-utils.c 2012-08-15
16:40:20.561617877 +0200
+@@ -35,6 +35,37 @@
+ #define SCP_PATH "/org/fedoraproject/Config/Printing"
+ #define SCP_IFACE "org.fedoraproject.Config.Printing"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetCount(attr) attr->num_values
++#define ippGetGroupTag(attr) attr->group_tag
++#define ippGetValueTag(attr) attr->value_tag
++#define ippGetName(attr) attr->name
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetInteger(attr, element) attr->values[element].integer
++#define ippGetString(attr, element, language)
attr->values[element].string.text
++
++static ipp_attribute_t *
++ippFirstAttribute(ipp_t *ipp)
++{
++ if (!ipp)
++ return (NULL);
++ return (ipp->current = ipp->attrs);
++}
++
++static ipp_attribute_t *
++ippNextAttribute(ipp_t *ipp)
++{
++ if (!ipp || !ipp->current)
++ return (NULL);
++ return (ipp->current = ipp->current->next);
++}
++#endif
++
++
+ gchar *
+ get_tag_value (const gchar *tag_string, const gchar *tag_name)
+ {
+@@ -935,12 +966,12 @@
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+- for (attr = response->attrs; attr != NULL; attr =
attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL;
attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag !=
IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) !=
IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -950,22 +981,22 @@
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag ==
IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) ==
IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name,
"ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") == 0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product") == 0
&&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
++ if (g_strcmp0 (ippGetName (attr), "ppd-device-id")
== 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = (gchar *) ippGetString (attr, 0,
NULL);
++ else if (g_strcmp0 (ippGetName (attr),
"ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr), "ppd-name")
== 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr),
"ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
+
+- attr = attr->next;
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1009,15 +1040,15 @@
+ response = cupsDoRequest (http, request, "/");
+
+ if (response &&
+- response->request.status.status_code <= IPP_OK_CONFLICT)
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ for (i = 0; equivalents && equivalents[i]; i++)
+ {
+ eq_normalized = normalize (equivalents[i]);
+- for (attr = response->attrs; attr != NULL; attr =
attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL;
attr = ippNextAttribute (response))
+ {
+- while (attr != NULL && attr->group_tag !=
IPP_TAG_PRINTER)
+- attr = attr->next;
++ while (attr != NULL && ippGetGroupTag (attr) !=
IPP_TAG_PRINTER)
++ attr = ippNextAttribute (response);
+
+ if (attr == NULL)
+ break;
+@@ -1027,22 +1058,22 @@
+ ppd_name = NULL;
+ ppd_product = NULL;
+
+- while (attr != NULL && attr->group_tag ==
IPP_TAG_PRINTER)
++ while (attr != NULL && ippGetGroupTag (attr) ==
IPP_TAG_PRINTER)
+ {
+- if (g_strcmp0 (attr->name, "ppd-device-id") ==
0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_device_id = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name,
"ppd-make-and-model") == 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_make_and_model =
attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-name") ==
0 &&
+- attr->value_tag == IPP_TAG_NAME)
+- ppd_name = attr->values[0].string.text;
+- else if (g_strcmp0 (attr->name, "ppd-product")
== 0 &&
+- attr->value_tag == IPP_TAG_TEXT)
+- ppd_product = attr->values[0].string.text;
++ if (g_strcmp0 (ippGetName (attr),
"ppd-device-id") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_device_id = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr),
"ppd-make-and-model") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_make_and_model = ippGetString (attr, 0,
NULL);
++ else if (g_strcmp0 (ippGetName (attr),
"ppd-name") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_NAME)
++ ppd_name = ippGetString (attr, 0, NULL);
++ else if (g_strcmp0 (ippGetName (attr),
"ppd-product") == 0 &&
++ ippGetValueTag (attr) == IPP_TAG_TEXT)
++ ppd_product = ippGetString (attr, 0, NULL);
+
+- attr = attr->next;
++ attr = ippNextAttribute (response);
+ }
+
+ if (ppd_device_id && ppd_name)
+@@ -1352,23 +1383,23 @@
+ ipp_attribute_t *attr = NULL;
+ ipp_attribute_t *allowed = NULL;
+
+- for (attr = response->attrs; attr != NULL; attr = attr->next)
++ for (attr = ippFirstAttribute (response); attr != NULL; attr =
ippNextAttribute (response))
+ {
+- if (attr->group_tag == IPP_TAG_PRINTER &&
+- attr->value_tag == IPP_TAG_NAME &&
+- !g_strcmp0 (attr->name, "requesting-user-name-allowed"))
++ if (ippGetGroupTag (attr) == IPP_TAG_PRINTER &&
++ ippGetValueTag (attr) == IPP_TAG_NAME &&
++ !g_strcmp0 (ippGetName (attr), "requesting-user-name-allowed"))
+ allowed = attr;
+ }
+
+- if (allowed && allowed->num_values > 0)
++ if (allowed && ippGetCount (allowed) > 0)
+ {
+ int i;
+
+- num_allowed_users = allowed->num_values;
++ num_allowed_users = ippGetCount (allowed);
+ users = g_new (gchar*, num_allowed_users);
+
+ for (i = 0; i < num_allowed_users; i ++)
+- users[i] = g_strdup (allowed->values[i].string.text);
++ users[i] = g_strdup (ippGetString (allowed, i, NULL));
+ }
+ ippDelete(response);
+ }
+@@ -1454,12 +1485,12 @@
+ "notify-lease-duration", lease_duration);
+ response = cupsDoRequest (http, request, "/");
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-lease-duration",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-lease-duration in response!\n");
+ else
+- if (attr->values[0].integer == lease_duration)
++ if (ippGetInteger (attr, 0) == lease_duration)
+ result = id;
+ }
+ }
+@@ -1481,12 +1512,12 @@
+ response = cupsDoRequest (http, request, "/");
+
+ if (response != NULL &&
+- response->request.status.status_code <= IPP_OK_CONFLICT) {
++ ippGetStatusCode (response) <= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response, "notify-subscription-id",
+ IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-subscription-id in response!\n");
+ else
+- result = attr->values[0].integer;
++ result = ippGetInteger (attr, 0);
+ }
+ }
+
+@@ -1655,38 +1686,38 @@
+
+ if (response)
+ {
+- if (response->request.status.status_code <= IPP_OK_CONFLICT)
++ if (ippGetStatusCode (response) <= IPP_OK_CONFLICT)
+ {
+ attr = ippFindAttribute (response, "printer-error-policy",
IPP_TAG_NAME);
+ if (attr)
+- error_policy = g_strdup (attr->values[0].string.text);
++ error_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response, "printer-op-policy",
IPP_TAG_NAME);
+ if (attr)
+- op_policy = g_strdup (attr->values[0].string.text);
++ op_policy = g_strdup (ippGetString (attr, 0, NULL));
+
+ attr = ippFindAttribute (response,
"requesting-user-name-allowed", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_allowed = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_allowed[i] = g_strdup (attr->values[i].string.text);
++ users_allowed = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_allowed[i] = g_strdup (ippGetString (attr, i,
NULL));
+ }
+
+ attr = ippFindAttribute (response,
"requesting-user-name-denied", IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- users_denied = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- users_denied[i] = g_strdup (attr->values[i].string.text);
++ users_denied = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ users_denied[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+
+ attr = ippFindAttribute (response, "member-names",
IPP_TAG_NAME);
+- if (attr && attr->num_values > 0)
++ if (attr && ippGetCount (attr) > 0)
+ {
+- member_names = g_new0 (gchar *, attr->num_values + 1);
+- for (i = 0; i < attr->num_values; i++)
+- member_names[i] = g_strdup (attr->values[i].string.text);
++ member_names = g_new0 (gchar *, ippGetCount (attr) + 1);
++ for (i = 0; i < ippGetCount (attr); i++)
++ member_names[i] = g_strdup (ippGetString (attr, i, NULL));
+ }
+ }
+ ippDelete (response);
Added: trunk/gnome-settings-daemon/gnome-settings-daemon-3.4.2-cups-1.patch
===================================================================
--- trunk/gnome-settings-daemon/gnome-settings-daemon-3.4.2-cups-1.patch
(rev 0)
+++ trunk/gnome-settings-daemon/gnome-settings-daemon-3.4.2-cups-1.patch
2012-08-15 14:43:35 UTC (rev 2510)
@@ -0,0 +1,80 @@
+Submitted By: Armin K. <krejzi at email dot com>
+Date: 2012-08-15
+Initial Package Version: 3.4.2
+Upstream Status: Fixed upstream
+Origin: Upstream bugzilla
+Description: Fixes compiling with CUPS 1.6.0 and later
+
+--- gnome-settings-daemon.orig/plugins/print-notifications/gsd-printer.c
2012-04-16 14:34:43.000000000 +0200
++++ gnome-settings-daemon/plugins/print-notifications/gsd-printer.c
2012-08-15 16:35:57.760278617 +0200
+@@ -63,6 +63,14 @@
+ #define GNOME_SESSION_PRESENCE_DBUS_PATH "/org/gnome/SessionManager/Presence"
+ #define GNOME_SESSION_PRESENCE_DBUS_IFACE "org.gnome.SessionManager.Presence"
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetState(ipp) ipp->state
++#endif
++
+ enum {
+ PRESENCE_STATUS_AVAILABLE = 0,
+ PRESENCE_STATUS_INVISIBLE,
+@@ -725,7 +733,7 @@
+ "AutoConfigure",
+ ("Automatic
configuration"));
+ if (response) {
+- if (response->state == IPP_ERROR)
++ if (ippGetState (response) == IPP_ERROR)
+ g_warning ("An error has occured during
automatic configuration of new printer.");
+ ippDelete (response);
+ }
+---
gnome-settings-daemon.orig/plugins/print-notifications/gsd-print-notifications-manager.c
2012-05-15 12:14:49.000000000 +0200
++++
gnome-settings-daemon/plugins/print-notifications/gsd-print-notifications-manager.c
2012-08-15 16:35:57.758278605 +0200
+@@ -52,6 +52,16 @@
+ #define CONNECTING_TIMEOUT 60
+ #define REASON_TIMEOUT 15000
+
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetStatusCode(ipp) ipp->request.status.status_code
++#define ippGetInteger(attr, element) attr->values[element].integer
++#define ippGetString(attr, element, language)
attr->values[element].string.text
++#endif
++
+ struct GsdPrintNotificationsManagerPrivate
+ {
+ GDBusProxy *cups_proxy;
+@@ -396,10 +406,10 @@
+ response = cupsDoRequest (http, request, "/");
+
+ if (response) {
+- if (response->request.status.status_code <=
IPP_OK_CONFLICT &&
++ if (ippGetStatusCode (response) <=
IPP_OK_CONFLICT &&
+ (attr = ippFindAttribute(response,
"job-originating-user-name",
+ IPP_TAG_NAME))) {
+- if (g_strcmp0
(attr->values[0].string.text, cupsUser ()) == 0)
++ if (g_strcmp0 (ippGetString (attr, 0,
NULL), cupsUser ()) == 0)
+ my_job = TRUE;
+ }
+ ippDelete(response);
+@@ -889,12 +899,12 @@
+ "notify-lease-duration",
SUBSCRIPTION_DURATION);
+ response = cupsDoRequest (http, request, "/");
+
+- if (response != NULL &&
response->request.status.status_code <= IPP_OK_CONFLICT) {
++ if (response != NULL && ippGetStatusCode (response)
<= IPP_OK_CONFLICT) {
+ if ((attr = ippFindAttribute (response,
"notify-subscription-id",
+
IPP_TAG_INTEGER)) == NULL)
+ g_debug ("No notify-subscription-id
in response!\n");
+ else
+- manager->priv->subscription_id =
attr->values[0].integer;
++ manager->priv->subscription_id =
ippGetInteger (attr, 0);
+ }
+
+ if (response)
--
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page