rebuilt with debug package and specfile fixes [release 0.2.3-3mamba;Sat Jul 17 2021]
This commit is contained in:
parent
3fbbd443be
commit
f448079929
288
libgnomecups-0.2.3-cups-1.6.patch
Normal file
288
libgnomecups-0.2.3-cups-1.6.patch
Normal 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
|
||||
|
21
libgnomecups-0.2.3-libglib-2.68.3.patch
Normal file
21
libgnomecups-0.2.3-libglib-2.68.3.patch
Normal 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
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user