rebuilt with debug package and specfile fixes [release 0.2.3-3mamba;Sat Jul 17 2021]

This commit is contained in:
Silvan Calarco 2024-01-06 04:26:05 +01:00
parent 3fbbd443be
commit f448079929
3 changed files with 328 additions and 16 deletions

View File

@ -0,0 +1,288 @@
Imported from gentoo:
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/libgnomecups/files/libgnomecups-0.2.3-cups-1.6.patch
From ae783efde4fa69578651994505462f02b8639220 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 7 Aug 2012 06:53:09 -0400
Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions
CUPS 1.6 makes various structures private and introduces these ippGet
and ippSet functions for all of the fields in these structures.
http://www.cups.org/str.php?L3928
We define our own accessors when building against CUPS < 1.6.
Based on work by Jiri Popelka <jpopelka@redhat.com> at
https://bugzilla.gnome.org/show_bug.cgi?id=679759
---
libgnomecups/gnome-cups-printer.c | 48 +++++++++++++++++++++++++++++-------
libgnomecups/gnome-cups-queue.c | 43 +++++++++++++++++++++++++++------
libgnomecups/gnome-cups-request.c | 44 ++++++++++++++++++++++++++++-----
3 files changed, 110 insertions(+), 25 deletions(-)
diff --git a/libgnomecups/gnome-cups-printer.c b/libgnomecups/gnome-cups-printer.c
index c924af0..f5e1ef7 100644
--- a/libgnomecups/gnome-cups-printer.c
+++ b/libgnomecups/gnome-cups-printer.c
@@ -37,6 +37,34 @@
#define UPDATE_TIMEOUT 5000
+#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 ippGetName(attr) attr->name
+#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
+
+
struct _GnomeCupsPPDFile {
char name[1];
};
@@ -173,9 +201,9 @@ map_reasons (GnomeCupsPrinter *printer,
printer->details->state_reasons = NULL;
/* cf. RFC2911 4.4.12 */
- for (i = 0; i < attr->num_values; i++) {
+ for (i = 0; i < ippGetCount (attr); i++) {
const char *p;
- const char *keyword = attr->values [i].string.text;
+ const char *keyword = ippGetString (attr, i, NULL);
reason = g_new (GnomeCupsPrinterReason, 1);
@@ -224,8 +252,8 @@ gnome_cups_printer_get_info (GnomeCupsPrinter *printer)
return printer->details->info;
}
-#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if ((v) != attr->values[0].integer) { changed = TRUE; } (v) = attr->values[0].integer; }}
-#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if (!v || strcmp (v, attr->values[0].string.text)) { g_free (v); changed = TRUE; (v) = g_strdup (attr->values[0].string.text); }}}
+#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if ((v) != ippGetInteger (attr, 0)) { changed = TRUE; } (v) = ippGetInteger (attr, 0); }}
+#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if (!v || strcmp (v, ippGetString (attr, 0, NULL))) { g_free (v); changed = TRUE; (v) = g_strdup (ippGetString (attr, 0, NULL)); }}}
static void
attributes_update_cb (guint id,
@@ -243,14 +271,14 @@ attributes_update_cb (guint id,
changed = FALSE;
if (!error && response) {
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (!attr->name) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (!ippGetName (attr)) {
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !strcmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !strcmp (ippGetName (attr), "attributes-charset")) {
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "printer-state-reasons")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "printer-state-reasons")) {
map_reasons (printer, attr);
}
MAP_INT (printer->details->state, "printer-state");
@@ -570,7 +598,7 @@ get_default (void)
attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
if (attr) {
- name = g_strdup (attr->values[0].string.text);
+ name = g_strdup (ippGetString (attr, 0, NULL));
} else {
name = NULL;
}
@@ -698,7 +726,7 @@ get_printer_names (void)
attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
while (attr) {
ret = g_list_prepend (ret,
- g_strdup (attr->values[0].string.text));
+ g_strdup (ippGetString (attr, 0, NULL)));
attr = ippFindNextAttribute (response,
"printer-name",
diff --git a/libgnomecups/gnome-cups-queue.c b/libgnomecups/gnome-cups-queue.c
index 9f98ed9..298db42 100644
--- a/libgnomecups/gnome-cups-queue.c
+++ b/libgnomecups/gnome-cups-queue.c
@@ -15,6 +15,33 @@
#define UPDATE_TIMEOUT 3000
+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
+#define HAVE_CUPS_1_6 1
+#endif
+
+#ifndef HAVE_CUPS_1_6
+#define ippGetName(attr) attr->name
+#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
+
+
struct _GnomeCupsQueueDetails {
char *queue_name;
GList *jobs;
@@ -199,8 +226,8 @@ finish_job (GnomeCupsJob *job)
job->size = job->size * 1024;
}
-#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (attr->values[0].string.text);}}
-#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { (dest) = attr->values[0].integer; } }
+#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (ippGetString (attr, 0, NULL));}}
+#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { (dest) = ippGetInteger (attr, 0); } }
static void
get_jobs_cb (guint id,
@@ -231,8 +258,8 @@ get_jobs_cb (guint id,
if (response) {
job = g_new0 (GnomeCupsJob, 1);
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (attr->name == NULL) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (ippGetName (attr) == NULL) {
if (job->name) {
finish_job (job);
jobs = g_list_prepend (jobs, job);
@@ -244,7 +271,7 @@ get_jobs_cb (guint id,
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
continue;
}
@@ -355,8 +382,8 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
if (response) {
job = g_new0 (GnomeCupsJob, 1);
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (attr->name == NULL) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (ippGetName (attr) == NULL) {
if (job->name) {
finish_job (job);
} else {
@@ -366,7 +393,7 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
break;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
continue;
}
diff --git a/libgnomecups/gnome-cups-request.c b/libgnomecups/gnome-cups-request.c
index c94f623..13f0948 100644
--- a/libgnomecups/gnome-cups-request.c
+++ b/libgnomecups/gnome-cups-request.c
@@ -19,6 +19,36 @@
#define STOP_UNUSED_THREADS_TIMEOUT 60
#define CLOSE_UNUSED_CONNECTIONS_TIMEOUT 30
+#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 ippGetValueTag(attr) attr->value_tag
+#define ippGetName(attr) attr->name
+#define ippGetBoolean(attr, element) attr->values[element].boolean
+#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
+
+
typedef struct
{
GMutex *mutex;
@@ -276,14 +306,14 @@ dump_request (ipp_t const *req)
unsigned i;
ipp_attribute_t *attr;
- for (attr = req->attrs; attr != NULL; attr = attr->next) {
- g_print ("%s", attr->name);
- for (i = 0 ; i < attr->num_values ; i++) {
+ for (attr = ippFirstAttribute (req); attr != NULL; attr = ippNextAttribute (req)) {
+ g_print ("%s", ippGetName (attr));
+ for (i = 0 ; i < ippGetCount (attr) ; i++) {
g_print ("\t[%d] = ", i);
- switch (attr->value_tag & ~IPP_TAG_COPY) {
+ switch (ippGetValueTag (attr) & ~IPP_TAG_COPY) {
case IPP_TAG_INTEGER:
case IPP_TAG_ENUM:
- g_print ("%d\n", attr->values[i].integer);
+ g_print ("%d\n", ippGetInteger (attr, i));
break;
case IPP_TAG_STRING:
@@ -294,11 +324,11 @@ dump_request (ipp_t const *req)
case IPP_TAG_CHARSET:
case IPP_TAG_LANGUAGE:
case IPP_TAG_MIMETYPE:
- g_print ("'%s'\n", attr->values[i].string.text);
+ g_print ("'%s'\n", ippGetString (attr, i, NULL));
break;
case IPP_TAG_BOOLEAN:
- g_print ("%s\n", (int)attr->values[i].boolean ? "true" : "false");
+ g_print ("%s\n", (int)ippGetBoolean (attr, i) ? "true" : "false");
break;
default:
--
1.7.8.6

View File

@ -0,0 +1,21 @@
--- libgnomecups-0.2.3/libgnomecups/gnome-cups-init.h~ 2007-01-01 17:18:51.000000000 -0700
+++ libgnomecups-0.2.3/libgnomecups/gnome-cups-init.h 2011-12-23 11:43:00.091618914 -0700
@@ -1,8 +1,7 @@
#ifndef GNOME_CUPS_INIT
#define GNOME_CUPS_INIT
-#include <glib/gtypes.h>
-#include <glib/gmacros.h>
+#include <glib.h>
G_BEGIN_DECLS
--- libgnomecups-0.2.3/libgnomecups/gnome-cups-i18n.c~ 2007-01-01 17:18:51.000000000 -0700
+++ libgnomecups-0.2.3/libgnomecups/gnome-cups-i18n.c 2011-12-23 11:43:16.173868796 -0700
@@ -1,5 +1,5 @@
#include <config.h>
-#include <glib/gmacros.h>
+#include <glib.h>
#include "gnome-cups-i18n.h"
#ifdef ENABLE_NLS

View File

@ -1,35 +1,29 @@
%define gnomever 2.16.2
%define gnomemajver %(echo %gnomever | cut -d. -f 1-2)
%define pkgname libgnomecups
%define majversion %(echo %version | cut -d. -f 1-2)
Name: libgnomecups
Version: 0.2.3
Release: 2mamba
Release: 3mamba
Summary: CUPS printing system interface library for Gnome
Group: System/Libraries
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://www.gnome.org
URL: https://www.gnome.org/
Source: http://ftp.gnome.org/pub/GNOME/sources/%{pkgname}/%{majversion}/%{pkgname}-%{version}.tar.bz2
Patch0: libgnomecups-0.2.3-libglib-2.68.3.patch
Patch1: libgnomecups-0.2.3-cups-1.6.patch
License: LGPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libcups-devel
BuildRequires: libe2fs-devel
BuildRequires: libglib-devel
BuildRequires: libkrb5-devel
BuildRequires: libopenssl-devel
BuildRequires: libz-devel
## AUTOBUILDREQ-END
BuildRequires: pkgconfig
BuildRequires: intltool
BuildRequires: perl-XML-Parser
BuildRequires: gettext-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
CUPS printing system interface library for Gnome.
@ -41,10 +35,14 @@ Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description devel
CUPS printing system interface library for Gnome.
This package contains static libraries and header files need for development.
This package contains static libraries and header files needed for development.
%debug_package
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%build
%configure
@ -64,17 +62,22 @@ This package contains static libraries and header files need for development.
%files -f %{pkgname}.lang
%defattr(-,root,root)
%{_libdir}/*.so.*
%{_libdir}/libgnomecups-1.0.so.*
%files devel
%defattr(-,root,root)
%{_libdir}/*.la
%{_libdir}/*.a
%{_libdir}/*.so
%dir %{_includedir}/libgnomecups-1/
%dir %{_includedir}/libgnomecups-1/libgnomecups
%{_includedir}/libgnomecups-1/libgnomecups/*
%{_libdir}/libgnomecups-1.0.la
%{_libdir}/libgnomecups-1.0.a
%{_libdir}/libgnomecups-1.0.so
%{_libdir}/pkgconfig/libgnomecups-1.0.pc
%{_includedir}/libgnomecups-1/
%changelog
* Sat Jul 17 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 0.2.3-3mamba
- rebuilt with debug package and specfile fixes
* Thu Nov 11 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.2.3-2mamba
- rebuilt to remove requirement for libgnutls13