Monday, October 10, 2005

gocr, XSane and OCRAD

I could score an aged HP-ScanJet 4c/t SCSI-Scanner at eBay for almost no money. It was recognized by Blastwave's XSane after I composed the following /kernel/drv/sgen.conf

device-type-config-list="scanner", "processor";
inquiry-config-list= "HP", "C2500A",
"HP", "C2500A 3332";
name="sgen" class="scsi" target=2 lun=0;

and symlinked /dev/scanner against /dev/scsi/processor. (I know this is evil Linux-style - but Xsane wanted to have it ;) ). Now I had my scanner working - and it works really fine. Way better than the cheap USB-scanner at my girlfriend's PeeCee, but still I had no OCR. Blastwave had no package, nor has SUN's companion software service , nor

On Sourceforge, I found GOCR, which compiled flawlessly with gcc and automake 2.59 from Blastwave. I had a look then at GNU GNU is UNIX, sometimes, at least after gcc has been over the sources. I had some minor difficulties, compiling OCRAD, the latest version will not compile under Solaris/gcc-3.4.3 - error: `snprintf' is not a member of `std'

I am not familiar enough with C++ to find out how to fix this - looks like a classpath issue to me. But I managed to compile OCRAD v0.10. I'll try to find out what the fsck is with 0.12 and try to build it. Meanwhile you will find binaries of gocr and gocr.tcl built with gcc 3.4.3 on a SUN Blade1000 (UltraSparc III) under Solaris10 here, and OCRAD there.

P.S.: Seems like OCRAD beyond 0.10 won't compile under Solaris because the author used a non-standard C++ function, which is wrapped by Linux' glibc but not by Sun's. I used gcc and the standard GNU libs -I intended to build an OpenSolaris package- but no luck. The discussion on bugs_ocrad at do not look as if this going to resolve by any chance. :(
There goes interoperability. That really pisses me off in some way - I mean this incompatibilty would have been easy to avoid, but it doesn't happen IMHO because of personal vanity.

No comments: