You are not logged in.

#1 2024-12-05 16:44:42

Medallo
Member
Registered: 2024-12-05
Posts: 3

Epson l800 printer driver installation error from aur

Greetings.
The epson-inkjet-printer-l800 aur driver is orphaned, but before it was fine and I could install it, now I don't know what happened because it won't let it install:
$ yay -S epson-inkjet-printer-l800

:: (1/1) Analyzing SRCINFO: epson inkjet-l800 printer
==> Creating package: epson-inkjet-printer-l800 1.0.0-10 (Thu Dec 05 2024 11:28:10)
==> Checking dependencies while running...
==> Checking dependencies while compiling...
==> Receiving the sources...
  -> Downloading epson-inkjet-printer-l800-1.0.0-1lsb3.2.src.rpm...
  % Total % Received % Xferd Average Speed Time Time Current Time
                                 Download Upload Total speed spent left
  0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 403
==> ERROR: There were errors while downloading from http://download.ebz.epson.net/dsc/op/st … .2.src.rpm
    Canceling...
-> error compiling: epson-inkjet-printer-l800-exit status 1
-> Failed to install the following packages. An intervention manual is required:
epson-inkjet-printer-l800 - output status 1

--Now if I download and compile it everything goes well until:

filter_option.c: In function 'get_ppd_attr':
filter_option.c:133:17: warning: 'ppdFindAttr' is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
  133 |                 attr = ppdFindAttr(PPD, name, NULL);
      |                 ^~~~
In file included from filter_option.h:22,
                 from filter_option.c:21:
/usr/include/cups/ppd.h:400:26: note: declared here
  400 | extern ppd_attr_t       *ppdFindAttr(ppd_file_t *ppd, const char *name,
      |                          ^~~~~~~~~~~
filter_option.c:135:17: warning: 'ppdFindNextAttr' is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
  135 |                 attr = ppdFindNextAttr(PPD, name, NULL);
      |                 ^~~~
/usr/include/cups/ppd.h:402:26: note: declared here
  402 | extern ppd_attr_t       *ppdFindNextAttr(ppd_file_t *ppd, const char *name,
      |                          ^~~~~~~~~~~~~~~
filter_option.c: In function 'get_default_choice':
filter_option.c:152:9: warning: 'ppdFindOption' is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
  152 |         option = ppdFindOption (PPD, key);
      |         ^~~~~~
/usr/include/cups/ppd.h:381:26: note: declared here
  381 | extern ppd_option_t     *ppdFindOption(ppd_file_t *ppd, const char *keyword)
      |                          ^~~~~~~~~~~~~
filter_option.c:158:9: warning: 'ppdFindChoice' is deprecated: Use cupsCopyDestInfo and friends instead. [-Wdeprecated-declarations]
  158 |         choice = ppdFindChoice (option, option->defchoice);
      |         ^~~~~~
/usr/include/cups/ppd.h:376:26: note: declared here
  376 | extern ppd_choice_t     *ppdFindChoice(ppd_option_t *o, const char *option)
      |                          ^~~~~~~~~~~~~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I.. -I../raster -fsigned-char -O2 -MT filter_option.lo -MD -MP -MF .deps/filter_option.Tpo -c filter_option.c -o filter_option.o >/dev/null 2>&1
mv -f .deps/filter_option.Tpo .deps/filter_option.Plo
/bin/sh ../../libtool  --tag=CC   --mode=link gcc -fsigned-char -O2  -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now          -Wl,-z,pack-relative-relocs -flto=auto -Wl,--no-as-needed -o libfilteropt.la  filter_option.lo  -ldl
libtool: link: rm -fr  .libs/libfilteropt.a .libs/libfilteropt.la
libtool: link: ar cr .libs/libfilteropt.a .libs/filter_option.o
libtool: link: ranlib .libs/libfilteropt.a
libtool: link: ( cd ".libs" && rm -f "libfilteropt.la" && ln -s "../libfilteropt.la" "libfilteropt.la" )
make[3]: se sale del directorio '/home/nando/Descargas/epson-inkjet-printer-l800/src/epson-inkjet-printer-filter-1.0.0/src/filteropt'
make[3]: se entra en el directorio '/home/nando/Descargas/epson-inkjet-printer-l800/src/epson-inkjet-printer-filter-1.0.0/src'
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I./raster -I./memory -I./pagemanager -I./filteropt    -O2 -MT raster_to_epson.o -MD -MP -MF .deps/raster_to_epson.Tpo -c -o raster_to_epson.o raster_to_epson.c
raster_to_epson.c: En la función ‘print_page’:
raster_to_epson.c:384:9: aviso: ‘cupsRasterReadHeader’ es obsoleto: Use cupsRasterReadHeader2 instead. [-Wdeprecated-declarations]
  384 |         while (JobCanceled == 0 && error == 0 && cupsRasterReadHeader (Raster, &header)) {
      |         ^~~~~
En el fichero incluido desde /usr/include/cups/ppd.h:28,
                 desde raster_to_epson.c:33:
/usr/include/cups/raster.h:378:25: nota: se declara aquí
  378 | extern unsigned         cupsRasterReadHeader(cups_raster_t *r, cups_page_header_t *h) _CUPS_DEPRECATED_MSG("Use cupsRasterReadHeader2 instead.") _CUPS_PUBLIC;
      |                         ^~~~~~~~~~~~~~~~~~~~
raster_to_epson.c:442:118: error: se pasa el argumento 5 de ‘eps_raster_print’ desde un tipo de puntero incompatible [-Wincompatible-pointer-types]
  442 |                                 if (eps_raster_print(raster_h, image_raw, pageRegion.bytesPerLine, pageRegion.width, (int *)&nraster)) {
      |                                                                                                                      ^~~~~~~~~~~~~~~
      |                                                                                                                      |
      |                                                                                                                      int *
En el fichero incluido desde ./raster/raster-helper.h:22,
                 desde raster_to_epson.c:36:
./raster/raster.h:146:49: nota: se esperaba ‘size_t *’ {también conocido como ‘long unsigned int *’} pero el argumento es de tipo ‘int *’
  146 | int eps_raster_print (RASTER, char *, int, int, size_t *);
      |                                                 ^~~~~~~~
raster_to_epson.c:449:64: error: se pasa el argumento 5 de ‘eps_raster_print’ desde un tipo de puntero incompatible [-Wincompatible-pointer-types]
  449 |                         eps_raster_print(raster_h, NULL, 0, 0, (int *)&nraster);
      |                                                                ^~~~~~~~~~~~~~~
      |                                                                |
      |                                                                int *
./raster/raster.h:146:49: nota: se esperaba ‘size_t *’ {también conocido como ‘long unsigned int *’} pero el argumento es de tipo ‘int *’
  146 | int eps_raster_print (RASTER, char *, int, int, size_t *);
      |                                                 ^~~~~~~~
make[3]: *** [Makefile:477: raster_to_epson.o] Error 1
make[3]: se sale del directorio '/home/nando/Descargas/epson-inkjet-printer-l800/src/epson-inkjet-printer-filter-1.0.0/src'
make[2]: *** [Makefile:510: all-recursive] Error 1
make[2]: se sale del directorio '/home/nando/Descargas/epson-inkjet-printer-l800/src/epson-inkjet-printer-filter-1.0.0/src'
make[1]: *** [Makefile:467: all-recursive] Error 1
make[1]: se sale del directorio '/home/nando/Descargas/epson-inkjet-printer-l800/src/epson-inkjet-printer-filter-1.0.0'
make: *** [Makefile:378: all] Error 2
==> ERROR: Se produjo un fallo en build().
    Cancelando...

--I appreciate any help..

Offline

#2 2024-12-05 20:17:11

loqs
Member
Registered: 2014-03-06
Posts: 18,868

Re: Epson l800 printer driver installation error from aur

Please use code tags. Same issue as https://aur.archlinux.org/packages/epso … ent-995819 Fix the incompatible pointer types by removing casting &nraster to int * after it was changed to size_t earlier in fixbuild.patch.

diff of changes allowing package to build for me:

diff --git a/PKGBUILD b/PKGBUILD
index 0d05391..cc957ba 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -50,4 +50,4 @@ package() {
   install -m 755 src/epson_inkjet_printer_filter "$pkgdir/opt/$pkgname/cups/lib/filter/epson_inkjet_printer_filter"
 }
 sha256sums=('b645c0c5dc0d77fdd426a225a05f1450f4ea0f0df24de9819b26a99aa2d25c18'
-            '85b0493972dcb92befd2bbf8d0ce705fc6280d54d83e985e9f7d0301bb01af50')
+            '0baf98d078b2f8c3b060a3677a2ab3c319608085dbd91c707d51aec8efca522c')
diff --git a/fixbuild.patch b/fixbuild.patch
index c3143ea..3b7ff32 100644
--- a/fixbuild.patch
+++ b/fixbuild.patch
@@ -99,3 +99,20 @@ index 6e621c8..a0811d6 100644
  {
  	int readBytes = 0;
  	if (JobCanceled == 0) {
+@@ -439,14 +439,14 @@ static int print_page (void)
+ 					break;
+ 				}
+ 
+-				if (eps_raster_print(raster_h, image_raw, pageRegion.bytesPerLine, pageRegion.width, (int *)&nraster)) {
++				if (eps_raster_print(raster_h, image_raw, pageRegion.bytesPerLine, pageRegion.width, &nraster)) {
+ 					error  = 1;
+ 					break;
+ 				}
+ 			}
+ 
+ 			// flushing page
+-			eps_raster_print(raster_h, NULL, 0, 0, (int *)&nraster);
++			eps_raster_print(raster_h, NULL, 0, 0, &nraster);
+ 
+ 			bAbort = (error) ? TRUE : FALSE;
+ 			if (epcgEndPage (bAbort)) {

Offline

#3 2024-12-05 21:32:35

Medallo
Member
Registered: 2024-12-05
Posts: 3

Re: Epson l800 printer driver installation error from aur

hello loqs.
But what do I do with your script? Please can you explain better?  I haven't been able to

Offline

#4 2024-12-05 21:50:43

loqs
Member
Registered: 2014-03-06
Posts: 18,868

Re: Epson l800 printer driver installation error from aur

git clone https://aur.archlinux.org/epson-inkjet-printer-l800.git
cd cd epson-inkjet-printer-l800/
curl -o PKGBUILD.diff http://0x0.st/X7Ec.diff # obtain diff
git apply -v PKGBUILD.diff # Apply the changes

Build and install package as normal.

Offline

#5 2024-12-05 23:30:39

Medallo
Member
Registered: 2024-12-05
Posts: 3

Re: Epson l800 printer driver installation error from aur

hello loqs
Now yes, I was able to install the printer and it turned out fine, since the gutenprint drivers, etc., the color quality is not the same as with the original driver.
Thank you very much because I had not been able to install it.

Offline

Board footer

Powered by FluxBB