diff options
author | William Immendorf | 2020-02-27 19:37:26 -0600 |
---|---|---|
committer | William Immendorf | 2020-02-27 19:37:35 -0600 |
commit | 5331c36c218da0d24c1d12c5c9409a13db9d60e9 (patch) | |
tree | a355bf099aa5514afdacee9fe7de29ef914358d2 | |
parent | aee413f65ad05eb6e1a71d537480fc32892f7733 (diff) | |
download | aur-5331c36c218da0d24c1d12c5c9409a13db9d60e9.tar.gz |
3.80-3 - fix build with recent cups versions
CUPS removed the direct access that this package used for IPP commands -
this should get it working for just that little bit longer
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | fix_cups.patch | 353 |
3 files changed, 334 insertions, 31 deletions
@@ -1,7 +1,7 @@ pkgbase = cnijfilter-mg4200 pkgdesc = Canon IJ Printer Driver (for mg4200 series) pkgver = 3.80 - pkgrel = 2 + pkgrel = 3 url = http://support-au.canon.com.au/contents/AU/EN/0100469302.html arch = i686 arch = x86_64 @@ -15,7 +15,7 @@ pkgbase = cnijfilter-mg4200 source = fix_png.patch source = fix_configures.patch sha512sums = 95a16e3b4fc38ce0b7a12bd74466d97e726bc410b59bf6d1963fa52b16a8cc67f6a993a5ef945107201f860d8ac6734c462bc0bf6d2160d6c85c5f61aff040c1 - sha512sums = 659c526db1a28df0d63793b4f0a9dff69312b3607630b14ee393f1b13c65042a28d5082dee45d57af8dc50d6842eccf49c8588af48a4721b8d82eb09f0e03229 + sha512sums = 74388421036f25406fe03b784dc63223edebb09287ee5a333e31ffce941359e72ddff8068675e49db82220e56d16ec1151265a217cb98ca7363f0c83422903b4 sha512sums = aecf5a4375dfe2d3b56c4dba37e985c3d6ecde05eba91361c028ec7b2c393377f20e76e843b989b0c282e1969089bd02f8ccdda43397be4a8d6ad7e973c8152f sha512sums = dffa3149541585ac99e77c4b62e0e21980105854415fe502b3658d68a42bab248def1ad9729ca6c4868236bfdf91988e8fdbb2b71e0b784434255c21052c1244 @@ -1,4 +1,6 @@ -# Maintainer: Karol 'Kenji Takahashi' Woźniak @ kenji.sx +# Maintainer: Felix Golatofski (https://www.xdfr.de) +# Maintainer: William Immendorf (https://curus.xyz) +# Contributor: Karol 'Kenji Takahashi' Woźniak @ kenji.sx # Based on a cnijfilter-mg3200 package by morris555 # # [Printer Model Name] [Printer Model ID] @@ -17,7 +19,7 @@ _id=405 pkgname=cnijfilter-${_name} pkgver=3.80 -pkgrel=2 +pkgrel=3 _pkgver=3.80-1 pkgdesc="Canon IJ Printer Driver (for ${_name} series)" url="http://support-au.canon.com.au/contents/AU/EN/0100469302.html" @@ -29,7 +31,7 @@ source=(http://gdlp01.c-wss.com/gds/3/0100004693/01/cnijfilter-source-${_pkgver} fix_png.patch fix_configures.patch) sha512sums=('95a16e3b4fc38ce0b7a12bd74466d97e726bc410b59bf6d1963fa52b16a8cc67f6a993a5ef945107201f860d8ac6734c462bc0bf6d2160d6c85c5f61aff040c1' - '659c526db1a28df0d63793b4f0a9dff69312b3607630b14ee393f1b13c65042a28d5082dee45d57af8dc50d6842eccf49c8588af48a4721b8d82eb09f0e03229' + '74388421036f25406fe03b784dc63223edebb09287ee5a333e31ffce941359e72ddff8068675e49db82220e56d16ec1151265a217cb98ca7363f0c83422903b4' 'aecf5a4375dfe2d3b56c4dba37e985c3d6ecde05eba91361c028ec7b2c393377f20e76e843b989b0c282e1969089bd02f8ccdda43397be4a8d6ad7e973c8152f' 'dffa3149541585ac99e77c4b62e0e21980105854415fe502b3658d68a42bab248def1ad9729ca6c4868236bfdf91988e8fdbb2b71e0b784434255c21052c1244') diff --git a/fix_cups.patch b/fix_cups.patch index a8f9cbca40c3..929bec913bba 100644 --- a/fix_cups.patch +++ b/fix_cups.patch @@ -1,33 +1,334 @@ -diff -Naur a/backend/src/cnij_backend_common.c b/backend/src/cnij_backend_common.c ---- a/backend/src/cnij_backend_common.c 2010-02-23 04:57:49.000000000 +0100 -+++ b/backend/src/cnij_backend_common.c 2012-07-31 13:20:51.050057184 +0200 +diff '--color=auto' -Naur a/backend/src/cnij_backend_common.c b/backend/src/cnij_backend_common.c +--- a/backend/src/cnij_backend_common.c 2012-03-28 23:50:27.000000000 -0500 ++++ b/backend/src/cnij_backend_common.c 2020-02-13 20:07:23.272487206 -0600 @@ -38,6 +38,7 @@ // CUPS Header #include <cups/cups.h> #include <cups/ipp.h> +#include <cups/ppd.h> - + // Header file for CANON #include "cnij_backend_common.h" -diff -Naur a/cngpij/cngpij/bjcups.c b/cngpij/cngpij/bjcups.c ---- a/cngpij/cngpij/bjcups.c 2010-03-15 09:48:58.000000000 +0100 -+++ b/cngpij/cngpij/bjcups.c 2012-07-31 13:20:58.126523983 +0200 -@@ -21,6 +21,7 @@ - #include <config.h> - #endif // HAVE_CONFIG_H - -+#define _IPP_PRIVATE_STRUCTURES 1 - #include <cups/cups.h> - #include <cups/language.h> - #include <cups/ppd.h> -diff -Naur a/cngpijmon/src/bjcupsmon_cups.c b/cngpijmon/src/bjcupsmon_cups.c ---- a/cngpijmon/src/bjcupsmon_cups.c 2010-05-11 10:49:30.000000000 +0200 -+++ b/cngpijmon/src/bjcupsmon_cups.c 2012-07-31 13:20:58.129857221 +0200 -@@ -18,8 +18,9 @@ - */ - - /*** Includes ***/ -+#define _IPP_PRIVATE_STRUCTURES 1 - #include <cups/cups.h> - #include <cups/ppd.h> - #include <cups/language.h> +diff '--color=auto' -Naur a/cngpij/cngpij/bjcups.c b/cngpij/cngpij/bjcups.c +--- a/cngpij/cngpij/bjcups.c 2012-04-16 22:39:20.000000000 -0500 ++++ b/cngpij/cngpij/bjcups.c 2020-02-27 19:19:43.439595944 -0600 +@@ -698,8 +698,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = CUPS_GET_PRINTERS; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, CUPS_GET_PRINTERS); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -708,29 +708,29 @@ + ippAddString(pRequest, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, NULL); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + fputs("ERROR: IPP ERROR\n", stderr); + goto onErr; + } + else { +- pAttribute = pResponse->attrs; ++ pAttribute = ippFirstAttribute(pResponse); + + while (pAttribute != NULL) { +- while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_PRINTER) { +- pAttribute = pAttribute->next; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) != IPP_TAG_PRINTER) { ++ pAttribute = ippNextAttribute(pResponse); + } + if (pAttribute == NULL) { + break; + } + +- while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_PRINTER) { +- if (strcmp(pAttribute->name, "printer-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { +- pPrinter = pAttribute->values[0].string.text; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) == IPP_TAG_PRINTER) { ++ if (strcmp(ippGetName(pAttribute), "printer-name") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_NAME) { ++ pPrinter = ippGetString(pAttribute, 0, NULL); + } +- if (strcmp(pAttribute->name, "device-uri") == 0 && pAttribute->value_tag == IPP_TAG_URI) { +- pDUri = pAttribute->values[0].string.text; ++ if (strcmp(ippGetName(pAttribute), "device-uri") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_URI) { ++ pDUri = ippGetString(pAttribute, 0, NULL); + } +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + + if (strcasecmp(pDestName, pPrinter) == 0) { +@@ -739,7 +739,7 @@ + } + + if (pAttribute != NULL) +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + } + +diff '--color=auto' -Naur a/cngpijmon/src/bjcupsmon_cups.c b/cngpijmon/src/bjcupsmon_cups.c +--- a/cngpijmon/src/bjcupsmon_cups.c 2012-05-22 04:49:27.000000000 -0500 ++++ b/cngpijmon/src/bjcupsmon_cups.c 2020-02-27 19:13:14.074174222 -0600 +@@ -215,8 +215,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, IPP_GET_PRINTER_ATTRIBUTES); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -225,12 +225,12 @@ + ippAddString(pRequest, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, pURI); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + else { + if ((pAttribute = ippFindAttribute(pResponse, "printer-state", IPP_TAG_ENUM)) != NULL) { +- printerState = (ipp_state_t)pAttribute->values[0].integer; ++ printerState = (ipp_state_t)ippGetInteger(pAttribute, 0); + } + } + +@@ -288,8 +288,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, IPP_GET_PRINTER_ATTRIBUTES); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -298,7 +298,7 @@ + ippAddString(pRequest, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, printerURI); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + else { +@@ -310,7 +310,7 @@ + //} + pAttribute = ippFindAttribute(pResponse, "printer-state-message", IPP_TAG_TEXT); + if (pAttribute != NULL) { +- strncpy(pStatus, pAttribute->values[0].string.text, bufSize); ++ strncpy(pStatus, ippGetString(pAttribute, 0, NULL), bufSize); + } + } + ippDelete(pResponse); +@@ -369,8 +369,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = IPP_CANCEL_JOB; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, IPP_CANCEL_JOB); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -381,7 +381,7 @@ + ippAddString(pRequest, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser()); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/jobs/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + ippDelete(pResponse); +@@ -444,8 +444,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = IPP_GET_JOBS; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, IPP_GET_JOBS); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -456,31 +456,31 @@ + ippAddStrings(pRequest, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes",(int)(sizeof(jobattrs) / sizeof(jobattrs[0])), NULL, jobattrs); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + else { +- pAttribute = pResponse->attrs; ++ pAttribute = ippFirstAttribute(pResponse); + + while (pAttribute != NULL) { +- while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_JOB) { +- pAttribute = pAttribute->next; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) != IPP_TAG_JOB) { ++ pAttribute = ippNextAttribute(pResponse); + } + if (pAttribute == NULL) { + break; + } + +- while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_JOB) { +- if (strcmp(pAttribute->name, "job-id") == 0 && pAttribute->value_tag == IPP_TAG_INTEGER) { +- jobID = pAttribute->values[0].integer; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) == IPP_TAG_JOB) { ++ if (strcmp(ippGetName(pAttribute), "job-id") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_INTEGER) { ++ jobID = ippGetInteger(pAttribute, 0); + } +- if (strcmp(pAttribute->name, "job-state") == 0 && pAttribute->value_tag == IPP_TAG_ENUM) { +- jobState = (ipp_jstate_t)pAttribute->values[0].integer; ++ if (strcmp(ippGetName(pAttribute), "job-state") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_ENUM) { ++ jobState = (ipp_jstate_t)ippGetInteger(pAttribute, 0); + } +- if (strcmp(pAttribute->name, "job-originating-user-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { +- pJobUserName = pAttribute->values[0].string.text; ++ if (strcmp(ippGetName(pAttribute), "job-originating-user-name") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_NAME) { ++ pJobUserName = ippGetString(pAttribute, 0, NULL); + } +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + if (jobState == IPP_JOB_PROCESSING) { + if (pJobUserName != NULL) { +@@ -497,7 +497,7 @@ + } + + if (pAttribute != NULL) +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + } + +@@ -555,8 +555,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = CUPS_GET_PRINTERS; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, CUPS_GET_PRINTERS); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -565,28 +565,28 @@ + ippAddStrings(pRequest, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", sizeof(attributes) / sizeof(attributes[0]), NULL, attributes); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + else { +- pAttribute = pResponse->attrs; ++ pAttribute = ippFirstAttribute(pResponse); + + while (pAttribute != NULL) { +- while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_PRINTER) { +- pAttribute = pAttribute->next; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) != IPP_TAG_PRINTER) { ++ pAttribute = ippNextAttribute(pResponse); + } + if (pAttribute == NULL) { + break; + } + +- while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_PRINTER) { +- if (strcmp(pAttribute->name, "printer-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { +- pPrinter = pAttribute->values[0].string.text; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) == IPP_TAG_PRINTER) { ++ if (strcmp(ippGetName(pAttribute), "printer-name") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_NAME) { ++ pPrinter = ippGetString(pAttribute, 0, NULL); + } +- if (strcmp(pAttribute->name, "printer-uri-supported") == 0 && pAttribute->value_tag == IPP_TAG_URI) { +- pUri = pAttribute->values[0].string.text; ++ if (strcmp(ippGetName(pAttribute), "printer-uri-supported") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_URI) { ++ pUri = ippGetString(pAttribute, 0, NULL); + } +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + + // Tora 020418: Compare two printer names ignoring the character case. +@@ -603,7 +603,7 @@ + } + + if (pAttribute != NULL) +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + } + +@@ -658,8 +658,8 @@ + else { + pRequest = ippNew(); + +- pRequest->request.op.operation_id = CUPS_GET_PRINTERS; +- pRequest->request.op.request_id = 1; ++ ippSetOperation(pRequest, CUPS_GET_PRINTERS); ++ ippSetRequestId(pRequest, 1); + + pLanguage = bjcupsLangDefault(); // cupsLangDefault() -> bjcupsLangDefault() for cups-1.1.19 + +@@ -668,28 +668,28 @@ + ippAddString(pRequest, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, NULL); + + if ((pResponse = cupsDoRequest(pHTTP, pRequest, "/")) != NULL) { +- if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { ++ if (ippGetStatusCode(pResponse) > IPP_OK_CONFLICT) { + retVal = ID_ERR_CUPS_API_FAILED; + } + else { +- pAttribute = pResponse->attrs; ++ pAttribute = ippFirstAttribute(pResponse); + + while (pAttribute != NULL) { +- while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_PRINTER) { +- pAttribute = pAttribute->next; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) != IPP_TAG_PRINTER) { ++ pAttribute = ippNextAttribute(pResponse); + } + if (pAttribute == NULL) { + break; + } + +- while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_PRINTER) { +- if (strcmp(pAttribute->name, "printer-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { +- pPrinter = pAttribute->values[0].string.text; ++ while (pAttribute != NULL && ippGetGroupTag(pAttribute) == IPP_TAG_PRINTER) { ++ if (strcmp(ippGetName(pAttribute), "printer-name") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_NAME) { ++ pPrinter = ippGetString(pAttribute, 0, NULL); + } +- if (strcmp(pAttribute->name, "device-uri") == 0 && pAttribute->value_tag == IPP_TAG_URI) { +- pDUri = pAttribute->values[0].string.text; ++ if (strcmp(ippGetName(pAttribute), "device-uri") == 0 && ippGetValueTag(pAttribute) == IPP_TAG_URI) { ++ pDUri = ippGetString(pAttribute, 0, NULL); + } +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + + if (strcasecmp(pDestName, pPrinter) == 0) { +@@ -698,7 +698,7 @@ + } + + if (pAttribute != NULL) +- pAttribute = pAttribute->next; ++ pAttribute = ippNextAttribute(pResponse); + } + } + |