compiling Epson scanning software needs libpng12/png.h
Hi, I found some nice scripts to make Slackware packages for an Epson scanner (V330) we have at work at http://www.giustetti.net/wiki/index....re_14.1_update
On slackware64-current I ran into problems when compiling one of these packages, namely iscan, which needs an older version of libpng. To cut a long story (see below) short: the program looks for a header file, png.h, that's no longer in the expected format on current so that compilation goes wrong. Apart from the current libpng with its header, Slackware still ships a compiled 'outdated' libpng-library (as /usr/lib64/libpng.so.14) that might work with this software. The latest Epson software I found for Linux is from February 2015. I emailed Epson with this error and asked if they have a solution that would make their code compatible with the current libpng api, but without that, does anyone have an idea how I can get around this?? Thanks in advance for any suggestions, rob LONG: The iscan.Slackbuild comes with a patch that sets a header file for the required libpng library to use (to libpng12/png.h in Slackware 14.1). Current has now libpng16, not libpng12, and there has been a API change in the libpng libs from 1.4 (libpng14) to 1.5 (libpng15) and onwards (see http://www.libpng.org/pub/png/libpng.html). Because of this, the compilation runs into errors: Code:
make[3]: Entering directory '/tmp/sg/tmp-iscan/iscan-2.30.1/lib' When I try to use libpng16/png.h it shows that the error is due to the api-change, as shown in the lines Code:
pngstream.cc:86:36: error: invalid use of incomplete type 'png_struct {aka struct png_struct_def}' Code:
make[3]: Entering directory '/tmp/sg/tmp-iscan/iscan-2.30.1/lib' |
|
This is cheating, but alienbob provides packages for iscan, see http://www.slackware.com/~alien/slackbuilds/. His packages work on current. Note that you probably need to install iscan-data and iscan-network-nt as well.
edit) If you want to build it yourself, just look through the patches he is using as those are in the build folder. btw) I find that the only time I use iscan is when I need to scan two-sided as that is the only thing that doesn't work in xsane. |
Fab, thanks for finding this fivefiveamsterdam. Will try it asap.
rob |
@moerasji
Thanks for the pointer; didn't think looking there. One thing, that v330 scanner needs some proprietory plugin, as mentioned in the scripts I referred to; but no trace of those in Eric's scripts. Eric uses the same patch as 55020 linked to. That patch worked, only I have to get that plugin installed/built first |
Epson sent their support: I should have sent the email to their UK office instead of the US.
They gave me a link ;-) http://www.epson.co.uk/support?produ...rs_and_manuals Quote:
Next, their blame for the fault in their software -that could have been repaired for over a year- might also come this way |
The Arch patch works, compilation goes but lateron chokes on libesmod:
Code:
make[2]: Leaving directory '/tmp/sg/tmp-iscan/iscan-2.30.1/backend' Also with Alien's build script on his source-file: Code:
make[2]: Entering directory '/tmp/build/tmp-iscan/iscan-2.30.1/non-free' Does anyone have an idea? EDIT: this happens despite that other required packages, the iscan-data and the v330-specific plugin, have been installed |
From https://git.archlinux.org/svntogit/c...packages/iscan
Code:
# add fix for CXX ABI different than 1002 |
Quote:
|
@55020: Thanks again, that extra link cured compiling iscan with Alien's build-script and also Simone's one got far until it tries to compile the frontend; then it stumbles:
Code:
make[2]: Entering directory '/tmp/sg/tmp-iscan/iscan-2.30.1/frontend' @moesasji: Thanks for the pointers, but as I started with Simone's scripts, I had compiled iscan-data (incl. the usb-patch not present in Eric's build) and the extra plugin using his directions; that worked fine (although I was too tired last night to realize I had to rename some variables (prgnam, model etc. in the plugin-script) to the ones needed). Possibly copying the required rpm from the plugin-folder in the epson-download bundle and turn that into a slackware package with rpm2tgz might also get the stuff in place. Anyway, thanks to all I have iscan working on my box; now I have to see whether I can scan my plates on Monday. |
Quote:
Eric's script explictly fixes the bug by adding it to the linker flags, but Eric cleverly handles both Slackware-14.1 (which needs -lpng14) and Slackware-14.2 (which needs -lpng16). Look at http://www.slackware.com/~alien/slac...can.SlackBuild and observe what he does with PNG_LDFLAGS at various places in the script. |
@55020: Thanks for the pointer. Iscan also compiles now with Simone's script after putting those LDFLAGS in...
Setting LDFLAGS..., I thought I could leave that behind after removing multilib ..;-) Eric's package creates the possibility to scan from gimp; that's what i'll try. If I get an image from that v330-scanner at work I can mark this thread as 'solved'. rob |
OK, no luck. dmesg sees the scanner, xsane as well and iscan too, but it's all very slow and it gets nowhere. I tried on my USB2 and USB3 ports of my laptop (maybe therefore the two identical scanners found??? see below).
xsane starts and eventually (it takes quite a while) sees the scanner and let's me chose it and then drops away into a cyber-black hole. Iscan does the same. From the command line sane-find-scanner shows a common permission problem (according to the number of times it pops up when googling it) but with no clear solution (it seems to go away by itself somehow as no clear answers are given on those posts how it got solved; mostly it seems by installing the binaries and the plugin; which I've done). Shame magic doesn't happen here..... Yes, me, as user is part of scanner, plugdev, lp in /etc/group. But also root has no joy finding a scanner; it gets the pipe error and then it stops (no permission problems there; note that one of the permission blocks is for a usb-hub the thing is plugged in to.) Code:
bash-4.3$ scanimage -L Code:
found USB scanner (vendor=0x04b8 [EPSON], product=0x0142 [EPSON Perfection V33/V330]) at libusb:001:011 Syslog has this nearby... Code:
May 9 14:41:27 knotsUL kernel: [ 350.434847] usb 1-1.3: new high-speed USB device number 8 using ehci-pci So I am not there yet...:-( |
The only thing I remember doing when installing my epson-scanner besides adding the software is editing /etc/sane.d/epkowa.conf as I needed to explicitly tell it what IP-address to use.
btw) you probably already did. Check that your user is in the correct groups, with "scanner" the obvious one. |
@Moesasji: yes, my user is in the "scanner" [EDIT: and "lp", required for SANE to deal with multifunctional printer/scanners-see Changes&Hints] groups. I did edit that /etc/sane.d/epoka.conf-file; commented the scsi out (saved on an error message) and added the usb id for the scanner but that is not really making a difference. The V330 is usb-only, alas no network capacity (that might have made it working....)
|
All times are GMT -5. The time now is 09:52 AM. |