canon MP560のドライバがインストールできない
MP560のドライバのソースコードからインストールを試みていますが, エラーではねられてしまいます. 何故かcnijfilter-source-3.20-1/cngpij/cngpij
ディレクトリ中のソースコードのmake(sudo適用済み)で構文エラーらしきもので弾かれてしまい先へと進めません.
errorlog
gcc -DHAVE_CONFIG_H -I. -I.. -O2 -Wall -I../include/cncl -I../include/misc -I../../libs/paramlist -O2 -MT bjcups.o -MD -MP -MF .deps/bjcups.Tpo -c -o bjcups.o bjcups.c
bjcups.c: In function ‘check_entry_name’:
bjcups.c:262:2: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations]
262 | pHTTP = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption());
| ^~~~~
In file included from /usr/include/cups/ipp.h:23,
from /usr/include/cups/cups.h:32,
from bjcups.c:24:
/usr/include/cups/http.h:464:17: note: declared here
464 | extern http_t *httpConnectEncrypt(const char *host, int port,
| ^~~~~~~~~~~~~~~~~~
bjcups.c: In function ‘get_product_name’:
bjcups.c:397:2: warning: ‘cupsGetPPD’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
397 | const char *ppd_name = cupsGetPPD(printer_name);
| ^~~~~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:366:20: note: declared here
366 | extern const char *cupsGetPPD(const char *name) _PPD_DEPRECATED;
| ^~~~~~~~~~
bjcups.c:408:3: warning: ‘ppdOpenFile’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
408 | if( (p_ppd = ppdOpenFile(ppd_name)) != NULL )
| ^~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:397:20: note: declared here
397 | extern ppd_file_t *ppdOpenFile(const char *filename) _PPD_DEPRECATED;
| ^~~~~~~~~~~
bjcups.c:415:4: warning: ‘ppdClose’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
415 | ppdClose(p_ppd);
| ^~~~~~~~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:372:14: note: declared here
372 | extern void ppdClose(ppd_file_t *ppd) _PPD_DEPRECATED;
| ^~~~~~~~
bjcups.c: In function ‘getDeviceURI’:
bjcups.c:678:2: warning: ‘httpConnectEncrypt’ is deprecated: Use httpConnect2 instead. [-Wdeprecated-declarations]
678 | if ((pHTTP = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption())) == NULL) {
| ^~
In file included from /usr/include/cups/ipp.h:23,
from /usr/include/cups/cups.h:32,
from bjcups.c:24:
/usr/include/cups/http.h:464:17: note: declared here
464 | extern http_t *httpConnectEncrypt(const char *host, int port,
| ^~~~~~~~~~~~~~~~~~
bjcups.c:685:11: error: dereferencing pointer to incomplete type ‘ipp_t’ {aka ‘struct _ipp_s’}
685 | pRequest->request.op.operation_id = CUPS_GET_PRINTERS;
| ^~
bjcups.c:703:45: error: dereferencing pointer to incomplete type ‘ipp_attribute_t’ {aka ‘struct _ipp_attribute_s’}
703 | while (pAttribute != NULL && pAttribute->group_tag != IPP_TAG_PRINTER) {
| ^~
bjcups.c: In function ‘main’:
bjcups.c:823:3: warning: ‘cupsGetPPD’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
823 | p_ppd_name = cupsGetPPD( g_printer_name );
| ^~~~~~~~~~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:366:20: note: declared here
366 | extern const char *cupsGetPPD(const char *name) _PPD_DEPRECATED;
| ^~~~~~~~~~
bjcups.c:823:14: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
823 | p_ppd_name = cupsGetPPD( g_printer_name );
| ^
bjcups.c:828:3: warning: ‘ppdOpenFile’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
828 | p_ppd = ppdOpenFile(p_ppd_name);
| ^~~~~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:397:20: note: declared here
397 | extern ppd_file_t *ppdOpenFile(const char *filename) _PPD_DEPRECATED;
| ^~~~~~~~~~~
bjcups.c:838:3: warning: ‘ppdClose’ is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
838 | ppdClose(p_ppd);
| ^~~~~~~~
In file included from bjcups.c:26:
/usr/include/cups/ppd.h:372:14: note: declared here
372 | extern void ppdClose(ppd_file_t *ppd) _PPD_DEPRECATED;
| ^~~~~~~~
make: *** [Makefile:410: bjcups.o] Error 1
読めるレベルと言っても英語が苦手なので確証はもてませんが, おそらく構文エラーではねられているようにも見えるので, ソースを直に触れば解決できそうな気がしなくもありませんが, 残念ながらそのようなスキルは持ち合わせて居ないので, 叶わず, と言った形になってしまいました.
AURのcnijfilter-mp560
をx86_64
に適用させる方法も試してみましたが, 何故かpacmanがインストールされていない!!
との依存関係エラーが発生してしまったので, こちらをインストールする方法は見送りました.
最後になりましたが, OSはArchlabs(最新)でドライバはこちらで2019年7月14日現在でダウンロード可能な最新版です.