Package Details: cnijfilter-ip1800series 2.70-1

Git Clone URL: https://aur.archlinux.org/cnijfilter-ip1800series.git (read-only, click to copy)
Package Base: cnijfilter-ip1800series
Description: Canon IJ Printer Driver for Pixma IP1800 series multifunction
Upstream URL: https://www.canon-europe.com/support/consumer_products/products/printers/inkjet/pixma_ip_series/pixma_ip1800.aspx
Licenses: GPL2, custom, LGPL2
Conflicts: cnijfilter-ip1800-bin
Submitter: severach
Maintainer: severach
Last Packager: severach
Votes: 1
Popularity: 0.000155
First Submitted: 2018-02-05 06:11 (UTC)
Last Updated: 2018-07-05 18:33 (UTC)

Latest Comments

lilikoi commented on 2023-02-06 17:21 (UTC) (edited on 2023-02-06 17:27 (UTC) by lilikoi)

Instalar/Install driver Canon IP1800

https://aur.archlinux.org/packages/cnijfilter-common

https://aur.archlinux.org/packages/cnijfilter-ip1800series

https://aur.archlinux.org/packages/cnijfilter-ip1800-bin

Edit /etc/pacman.conf and enable multilib repo.

yay -S cnijfilter-ip1800series

Before or while installing cnijfilter-common and dependencies, edit PKGBUILD of lib32-libxml2.

WARNING: lib32-libxml is available as lib32-libxml2, so reference it properly!

vim ~/.cache/yay/lib32-libxml/PKGBUILD

Add flag export CFLAGS=-Wno-error to build() to avoid warnings being treated as errors.

Yay will install libxml from aur and then throw conflict error when trying to install lib32-libxml from AUR to build cnijfilter-ip1800series.

So you need to remove sudo pacman -Rns libxml and sudo pacman -U lib32-libxml-1.8.17-1-x86_64.pkg.tar.zst from aur lib32-libxml cache.

Still, cnijfilter-ip1800series will NOT BUILD! But it is important to have lib32-libxml installed properly.

One could try compiling yay -S cnijfilter-ip1800series , however that does not work on my system. Hopefully, I have got `cnijfilter-ip1800-bin' from when it was available from AUR (see footnote).

We must run yay -G cnijfilter-ip1800-bin , which creates a local directory cnijfilter-ip1800-bin. edit PKGBUILD and change libtiff3 to libtiff at the depends_i686 array.

Then, run makepkg -si at cnijfilter-ip1800-bin. after installing cnijfilter-ip1800-bin-2.70-1-x86_64.pkg.tar.zst, it is time to link libraries.

According to

https://blog.desdelinux.net/pt/como-instalar-a-impressora-canon-ip1800-no-archlinux/

sudo pacman -S cups ghostscript

==PREFER THE SERVICE INSTEAD OF SOCKET!==

systemctl enable cups.socket
systemctl start cups.socket

sudo pacman -S system-config-printer gsfonts foomatic-db-gutenprint-ppds gutenprint --asdeps

CUPS webconsole:

http://localhost:631/

Check usb printer is connected with:

$ lsusb
Bus 001 Device 020: ID 04a9:10c2 Canon, Inc. PIXMA iP1800 Printer

Check linked libraries:

$ ldd /usr/bin/cifip1800

Link not found libraries

$ sudo ln -s /usr/lib32/libtiff.so.6 /usr/lib32/libtiff.so.3
$ sudo ln -s /usr/lib/libtiff.so.6 /usr/lib/libtiff.so.3 #(NOT NECESSARY, PROBABLY)

Adittional Refs:

https://askubuntu.com/questions/44132/how-do-i-install-libtiff-so-3

The cnijfilter-ip1800-bin is available at my GitLab repo:

https://gitlab.com/mountaineerbr/etc/-/tree/main/cnijfilter-ip1800-bin

In general, it is needed to fix the name of dependency pkgs with the updated pkg references and fix missing libtiff lib links.

Hope this is useful for somebody, too!

salmonix commented on 2021-01-26 14:26 (UTC)

Error while compiling the package.

106 | return __builtinstrncpychk (dest, __src, __len, __bos (__dest)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mv -f .deps/bjcupsmon_main.Tpo .deps/bjcupsmon_main.Po gcc -DHAVE_CONFIG_H -I. -I.. -DUSE_LIB_GLASE -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_FORTIFY_SOURCE=2 -O2 -Wall -Wno-unused-result -m32 -MT bjcupsmon_cups.o -MD -MP -MF .deps/bjcupsmon_cups.Tpo -c -o bjcupsmon_cups.o bjcupsmon_cups.c bjcupsmon_cups.c: In function ‘getProductName’: bjcupsmon_cups.c:113:2: warning: ‘cupsGetPPD’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations] 113 | pPPDName = cupsGetPPD(pDestName); | ^~~~~~~~ In file included from bjcupsmon_cups.c:24: /usr/include/cups/ppd.h:358:20: note: declared here 358 | extern const char cupsGetPPD(const char name) _CUPS_DEPRECATED_1_6_MSG("Use cupsCopyDestInfo and friends instead."); | ^~~~~~~~~~ bjcupsmon_cups.c:115:3: warning: ‘ppdOpenFile’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations] 115 | if ((pPPD = ppdOpenFile(pPPDName)) != NULL) { | ^~ In file included from bjcupsmon_cups.c:24: /usr/include/cups/ppd.h:389:20: note: declared here 389 | extern ppd_file_t ppdOpenFile(const char filename) _CUPS_DEPRECATED_1_6_MSG("Use cupsCopyDestInfo and friends instead."); | ^~~~~~~~~~~ bjcupsmon_cups.c:120:4: warning: ‘ppdClose’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations] 120 | ppdClose(pPPD); | ^~~~~~~~ In file included from bjcupsmon_cups.c:24: /usr/include/cups/ppd.h:364:14: note: declared here 364 | extern void ppdClose(ppd_file_t ppd) _CUPS_DEPRECATED_1_6_MSG("Use cupsCopyDestInfo and friends instead."); | ^~~~~~~~ bjcupsmon_cups.c: In function ‘checkPrinterState’: bjcupsmon_cups.c:210:2: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations] 210 | if ((pHTTP = httpConnectEncrypt(pServerName, ippPort(), cupsEncryption())) == NULL) { | ^~ In file included from /usr/include/cups/ipp.h:18, from /usr/include/cups/cups.h:27, from bjcupsmon_cups.c:23: /usr/include/cups/http.h:458:17: note: declared here 458 | extern http_t httpConnectEncrypt(const char host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead."); | ^~~~~~~~~~~~~~~~~~ bjcupsmon_cups.c:216:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 216 | pRequest->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; | ^~ bjcupsmon_cups.c:217:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 217 | pRequest->request.op.request_id = 1; | ^~ bjcupsmon_cups.c:226:17: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 226 | if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { | ^~ bjcupsmon_cups.c:231:44: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 231 | printerState = (ipp_state_t)pAttribute->values[0].integer; | ^~ bjcupsmon_cups.c: In function ‘getPrinterStatus’: bjcupsmon_cups.c:283:3: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations] 283 | if ((pHTTP = httpConnectEncrypt(serverName, ippPort(), cupsEncryption())) == NULL) { | ^~ In file included from /usr/include/cups/ipp.h:18, from /usr/include/cups/cups.h:27, from bjcupsmon_cups.c:23: /usr/include/cups/http.h:458:17: note: declared here 458 | extern http_t httpConnectEncrypt(const char host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead."); | ^~~~~~~~~~~~~~~~~~ bjcupsmon_cups.c:289:12: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 289 | pRequest->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; | ^~ bjcupsmon_cups.c:290:12: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 290 | pRequest->request.op.request_id = 1; | ^~ bjcupsmon_cups.c:299:18: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 299 | if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { | ^~ bjcupsmon_cups.c:305:34: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 305 | strncpy(pStatus, pAttribute->values[0].string.text, bufSize); | ^~ bjcupsmon_cups.c: In function ‘removeJob’: bjcupsmon_cups.c:358:4: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations] 358 | if ((pHTTP = httpConnectEncrypt(serverName, ippPort(), cupsEncryption())) == NULL) { | ^~ In file included from /usr/include/cups/ipp.h:18, from /usr/include/cups/cups.h:27, from bjcupsmon_cups.c:23: /usr/include/cups/http.h:458:17: note: declared here 458 | extern http_t httpConnectEncrypt(const char host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead."); | ^~~~~~~~~~~~~~~~~~ bjcupsmon_cups.c:364:13: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 364 | pRequest->request.op.operation_id = IPP_CANCEL_JOB; | ^~ bjcupsmon_cups.c:365:13: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 365 | pRequest->request.op.request_id = 1; | ^~ bjcupsmon_cups.c:376:19: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 376 | if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { | ^~ bjcupsmon_cups.c: In function ‘getJobID’: bjcupsmon_cups.c:426:2: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations] 426 | if ((pHTTP = httpConnectEncrypt(pServerName, ippPort(), cupsEncryption())) == NULL) { | ^~ In file included from /usr/include/cups/ipp.h:18, from /usr/include/cups/cups.h:27, from bjcupsmon_cups.c:23: /usr/include/cups/http.h:458:17: note: declared here 458 | extern http_t httpConnectEncrypt(const char host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead."); | ^~~~~~~~~~~~~~~~~~ bjcupsmon_cups.c:432:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 432 | pRequest->request.op.operation_id = IPP_GET_JOBS; | ^~ bjcupsmon_cups.c:433:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 433 | pRequest->request.op.request_id = 1; | ^~ bjcupsmon_cups.c:442:17: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 442 | if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { | ^~ bjcupsmon_cups.c:446:27: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 446 | pAttribute = pResponse->attrs; | ^~ bjcupsmon_cups.c:449:45: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 449 | while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_JOB) { | ^~ bjcupsmon_cups.c:450:30: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 450 | pAttribute = pAttribute->next; | ^~ bjcupsmon_cups.c:456:45: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 456 | while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_JOB) { | ^~ bjcupsmon_cups.c:457:28: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 457 | if (strcmp(pAttribute->name, "job-id") == 0 && pAttribute->value_tag == IPP_TAG_INTEGER) { | ^~ bjcupsmon_cups.c:457:64: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 457 | if (strcmp(pAttribute->name, "job-id") == 0 && pAttribute->value_tag == IPP_TAG_INTEGER) { | ^~ bjcupsmon_cups.c:458:26: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 458 | jobID = pAttribute->values[0].integer; | ^~ bjcupsmon_cups.c:460:28: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 460 | if (strcmp(pAttribute->name, "job-state") == 0 && pAttribute->value_tag == IPP_TAG_ENUM) { | ^~ bjcupsmon_cups.c:460:67: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 460 | if (strcmp(pAttribute->name, "job-state") == 0 && pAttribute->value_tag == IPP_TAG_ENUM) { | ^~ bjcupsmon_cups.c:461:43: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 461 | jobState = (ipp_jstate_t)pAttribute->values[0].integer; | ^~ bjcupsmon_cups.c:463:28: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 463 | if (strcmp(pAttribute->name, "job-originating-user-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { | ^~ bjcupsmon_cups.c:463:83: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 463 | if (strcmp(pAttribute->name, "job-originating-user-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { | ^~ bjcupsmon_cups.c:464:33: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 464 | pJobUserName = pAttribute->values[0].string.text; | ^~ bjcupsmon_cups.c:466:30: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 466 | pAttribute = pAttribute->next; | ^~ bjcupsmon_cups.c:483:30: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 483 | pAttribute = pAttribute->next; | ^~ bjcupsmon_cups.c: In function ‘getPrinterURI’: bjcupsmon_cups.c:535:2: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations] 535 | if ((pHTTP = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption())) == NULL) { | ^~ In file included from /usr/include/cups/ipp.h:18, from /usr/include/cups/cups.h:27, from bjcupsmon_cups.c:23: /usr/include/cups/http.h:458:17: note: declared here 458 | extern http_t httpConnectEncrypt(const char host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead."); | ^~~~~~~~~~~~~~~~~~ bjcupsmon_cups.c:541:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 541 | pRequest->request.op.operation_id = CUPS_GET_PRINTERS; | ^~ bjcupsmon_cups.c:542:11: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 542 | pRequest->request.op.request_id = 1; | ^~ bjcupsmon_cups.c:551:17: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 551 | if (pResponse->request.status.status_code > IPP_OK_CONFLICT) { | ^~ bjcupsmon_cups.c:555:27: error: invalid use of incomplete typedef ‘ipp_t’ {aka ‘struct _ipp_s’} 555 | pAttribute = pResponse->attrs; | ^~ bjcupsmon_cups.c:558:45: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 558 | while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_PRINTER) { | ^~ bjcupsmon_cups.c:559:30: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 559 | pAttribute = pAttribute->next; | ^~ bjcupsmon_cups.c:565:45: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 565 | while (pAttribute != NULL && pAttribute->group_tag == IPP_TAG_PRINTER) { | ^~ bjcupsmon_cups.c:566:28: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 566 | if (strcmp(pAttribute->name, "printer-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { | ^~ bjcupsmon_cups.c:566:70: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 566 | if (strcmp(pAttribute->name, "printer-name") == 0 && pAttribute->value_tag == IPP_TAG_NAME) { | ^~ bjcupsmon_cups.c:567:29: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 567 | pPrinter = pAttribute->values[0].string.text; | ^~ bjcupsmon_cups.c:569:28: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 569 | if (strcmp(pAttribute->name, "printer-uri-supported") == 0 && pAttribute->value_tag == IPP_TAG_URI) { | ^~ bjcupsmon_cups.c:569:79: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 569 | if (strcmp(pAttribute->name, "printer-uri-supported") == 0 && pAttribute->value_tag == IPP_TAG_URI) { | ^~ bjcupsmon_cups.c:570:25: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 570 | pUri = pAttribute->values[0].string.text; | ^~ bjcupsmon_cups.c:572:30: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 572 | pAttribute = pAttribute->next; | ^~ bjcupsmon_cups.c:589:31: error: invalid use of incomplete typedef ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’} 589 | pAttribute = pAttribute->next; | ^~ make[2]: [Makefile:400: bjcupsmon_cups.o] Error 1 make[2]: Leaving directory '/home/editke/.cache/yay/cnijfilter-ip1800series/src/cnijfilter-common-2.70/cngpijmon/src' make[1]: [Makefile:372: all-recursive] Error 1 make[1]: Leaving directory '/home/editke/.cache/yay/cnijfilter-ip1800series/src/cnijfilter-common-2.70/cngpijmon' make: ** [Makefile:313: all] Error 2

Multilib enabled. Cups: cups-1:2.3.3op1-1

severach commented on 2018-05-22 19:14 (UTC)

I don't know what it's for either. It's an i686 dependency so I can ignore it until an i686 user comes up with a fix.

jeremyundead commented on 2018-05-22 18:06 (UTC)

Why is libxml in red? As far as I know there isn't a libxml package in the AUR.