Search Criteria
Package Details: epson-inkjet-printer-workforce-635-nx625-series 1.0.1-17
Package Actions
| Git Clone URL: | https://aur.archlinux.org/epson-inkjet-printer-workforce-635-nx625-series.git (read-only, click to copy) |
|---|---|
| Package Base: | epson-inkjet-printer-workforce-635-nx625-series |
| Description: | Epson inkjet printer driver (ME OFFICE 82WD, 85ND, 900WD, 960FWD; Stylus NX625, SX525WD, SX620FW, TX560WD; Stylus Office B42WD, BX525WD, BX625FWD, TX620FWD; WorkForce 60, 625, 630, 633, 635, T42WD) |
| Upstream URL: | https://download.ebz.epson.net/dsc/search/01/search/?OSC=LX |
| Licenses: | custom:Epson End User Software License Agreement |
| Submitter: | Misery |
| Maintainer: | vitaliikuzhdin (PhrozenByte) |
| Last Packager: | vitaliikuzhdin |
| Votes: | 5 |
| Popularity: | 0.000682 |
| First Submitted: | 2010-10-29 10:45 (UTC) |
| Last Updated: | 2025-01-18 12:38 (UTC) |
Dependencies (2)
- epson-inkjet-printer-filterAUR
- glibc (glibc-gitAUR, glibc-eacAUR, glibc-git-native-pgoAUR)
Latest Comments
1 2 3 Next › Last »
PhrozenByte commented on 2025-01-18 13:41 (UTC)
Yes, works like a charm now, thanks @vitaliikuzhdin!
Thanks for pointing to
epson-inkjet-printer-escpr. Weird, I'm pretty sure that I tried that package at some point before, but it didn't work back then, that's why I switched to this package instead. However, I just tried again and it indeed works with that one as well. I'll test both and decide later what driver to use.I'd love to test
epson-pc-fax, the SX620FW indeed supports fax. Unfortunately I don't have a landline (or another fax-capable printer) to test with 😅 The last time I sent a fax was more than 5 years ago I guess (I vaguely remember), and before that surely at least 10 years. You could add a comment to ask for feedback if someone tries using it.Thanks again for everything, have a good one!
vitaliikuzhdin commented on 2025-01-18 12:54 (UTC) (edited on 2025-02-06 13:26 (UTC) by vitaliikuzhdin)
@PhrozenByte, package updated, hopefully without problems this time.
Writing the comments in the
PKGBUILDmade me check the download page again, and turns outSX620FWis also supported by a (more) modern alternative epson-inkjet-printer-escpr, so you can probably safely switch to it without using this package. Sorry for wasting so much time, paper, and ink, but I guess it was still worth it for other packages -- not every old device is supported by these more modern drivers.By the way, the same page suggests your printer supports epson-pc-fax, which I've also recently uploaded to the AUR. Any chance you could give it a try? I haven't seen anybody actually request it and the tests would probably require another fax-enabled printer with more setup, so it's not that important.
Oh, and I've just made you a co-maintainer. Feel free to make adjustments or write helpful comments in the
PKGBUILD. If you ever find a change that'll be needed for all other inkjet printers, leave a comment somewhere and I'll try my best to help.Thank you very much.
PhrozenByte commented on 2025-01-18 12:06 (UTC) (edited on 2025-01-18 12:08 (UTC) by PhrozenByte)
Oh dear, I don't know how often I printed that cover letter to my health insurance (my test page for debugging) 🙈 CUPS totally lead me into the wrong directions at first.
Yes, it's the
sedexpression indeed. The filter doesn't like the absolute path in the PPD, i.e. the following leads to our demise:So, this made me thinking... What if we actually switched one issue (
LDFLAGS) by another (sed) and we don't actually need the LSB filter? Especially together with your explanation of EPSON's weird packaging choices (thanks for the explanation btw)? So, I checked the commits and indeed: Thatsedexpression slipped in with pkgrel 14, i.e. with the revert back to the non-LSB filter and before we understood the issue withLDFLAGS. For my recent "It works" test I was using pkgrel 13, i.e. without thatsedexpression. So, what if we don't need that LSB filter after all?And here we are: I just installed it with the non-LSB filter but the
LDFLAGShack applied, and without thatsedexpression, and voila, it works!So, you can delete the LSB filter package once again (for good I hope 😂) and use the following PKGBUILDs:
epson-inkjet-printer-workforce-635-nx625-seriesandepson-inkjet-printer-filter(.SRCINFOneeds updating as well of course)Again, thank you very, very much for your extensive support and help @vitaliikuzhdin!
vitaliikuzhdin commented on 2025-01-17 22:21 (UTC)
@PhrozenByte, could this be because of the last
sedexpression at line39?PhrozenByte commented on 2025-01-17 21:51 (UTC)
Argh, I'm terribly sorry, but it doesn't work with the new packages for some reason :-( I feel like this EPSON driver just wants to drive both of us mad.
I'll investigate, just wanted to comment quickly before you go through all other driver packages. I checked your changes and can't see a reason why. But it's pretty late in my timezone already and I feel like I can't fully concentrate on this anymore, so before making mistakes and leading you into wrong directions, let me investigate tomorrow. Sorry. I'm the one who needs to be thankful. So, thanks again for your amazing help!
vitaliikuzhdin commented on 2025-01-17 21:32 (UTC)
@PhrozenByte, packages updated, they should work out of the box now.
As for the filter versions, the
lsbversion andpkgrel=10both actually use1.0.0, from the same source archive. If you download the.src.rpmfrom the link above, you'll see not one but two.tar.gzarchives inside it:So, the filter is of version
1.0.0and the files for this printer model are of version1.0.1. Weirdly, the identical1.0.0filter is shipped for all LSB-dependent (older) drivers, and the same1.0.2is shipped for all newer drivers. What's even weirder is that you can't download just the filter, so forepson-inkjet-printer-filter*packages, I have to download a random model and then extract the filter archive. Who knows why Epson decided this is the best way to distribute sources.Anyway, thanks a lot for your patience and help with debugging. Sorry for breaking your printing workflow until we managed to solve it. Guess I'll have to update about 60 LSB-dependent drivers now.
PhrozenByte commented on 2025-01-17 19:26 (UTC)
Yeah, sure, let's debug it further first. Again, thanks for the help! About the additional testing and your questions:
Yes, ghostscript is installed,
extra/ghostscript 10.04.0-1 [installed]to be precise.I've applied the #4 patch (plus
-ioption, i.e.patch -NRp1 -i "${srcdir}/${pkgname}_test.patch") toepson-inkjet-printer-filterand with theLDFLAGShack, unfortunately nothing changes (printer prepares printing, but then bails).I then tried again with
epson-inkjet-printer-filter-lsb, this time with theLDFLAGShack. It works! :tada: Note that I'm not usingexportforLDFLAGS, but passing it as an argument to./configure, but this shouldn't make a difference I guess. Last but not least, here's the log if you need it:/tmp/epson-inkjet-printer-filter.txt(unchanged filename btw, doesn't seem to matter, I just noticed)So,
epson-inkjet-printer-filter-lsbwith theLDFLAGShack is indeed the solution. It wasn't the path after all. No idea how this additionalEPS_PAGEATTRIB_RETAIN_SIZEattribute could break things (especially since CUPS doesn't seem to even request it?), but it somehow does. What's the difference between v1.0.0 ofepson-inkjet-printer-filter-lsband v1.0.1 previously used by this package with pkgrel 10? Any hints there maybe?Thank you very, very much @vitaliikuzhdin!
vitaliikuzhdin commented on 2025-01-17 16:44 (UTC) (edited on 2025-02-27 20:26 (UTC) by vitaliikuzhdin)
@PhrozenByte, thank you for the research. Yes, I was also planning on reverting the changes completely if we can't get it to work. But first, let's try a few more ideas, if you don't mind:
Are
ghostscriptandlibjpeg-turboinstalled? I'm 99% sure they are, but it feels wrong not to make sure.Thank you for questioning whether the build fix was the only difference in the filter versions. Here is the full diff, omitting auto-generated files and changed years. Reading through, the only change, apart from the
fixbuildand the parts I will discuss below, is the addition of a new function, which shouldn't break anything.I will re-add
export LDFLAGS+=" -Wl,--no-as-needed"to the filter PKGBUILD once we decide how to move forward here, since it wouldn't hurt to have it anyway and might solve some issues. The reason I even removed it initially is that it creates an 'unused' (as I thought) dependency, and not having it works for newer models.As you can see from the diff, the new version lacks the flag
-fsigned-charfor thepagemanagerpart. Could you please try to recompile the filter with it via this patch (you can apply it withpatch -NRp1 -i ${srcdir}/patchname.patch, but notice the additionalRin the command)?If the old and new versions of the filter are indeed incompatible, there is still a good chance we can just have two of them. Could you please try to add
export LDFLAGS+=" -Wl,--no-as-needed"toepson-inkjet-printer-filter-lsband try the version of this package which depended on it? I have already deleted it, but you can still access it viagit clone https://aur.archlinux.org/epson-inkjet-printer-filter-lsb.gitI'm sorry if I'm over- or under-explaining some parts. If you need me to provide full PKGBUILDs and patches for the experiments instead of explaining how to get them yourself, I will happily do so.
PhrozenByte commented on 2025-01-17 15:38 (UTC)
Thanks for the great explanations @vitaliikuzhdin! Sounds reasonable and makes sense to me (as someone without any experience with developing with C/C++).
So, I just tried a few things:
Moving both or one of the libraries (you meant
libEpson_WorkForce_635_60_NX625.so.1.0.0andlibEpson_WorkForce_635_60_NX625.MT.so.1.0.0, right?) didn't work. The filter bails withFailed to dlopen(libEpson_WorkForce_635_60_NX625.so.1.0.0)->/usr/lib/libEpson_WorkForce_635_60_NX625.so.1.0.0: cannot open shared object file: No such file or directory(logged in/tmp/epson-inkjet-printer-filter.txt) then.patchelfultimately didn't work, but at least got me a little further. The filter didn't bail immediately and CUPS sends data to the printer, causing the printer to do its usual "preparing to print" stuff (i.e. I can hear the printer do its preparation steps), but stops right before feeding paper and printing. Now the filter's logfile isn't showing anything suspicious, it is just cut off (compare with #3 below). Since it might be interesting to see at which point it bails now, I'm providing the full CUPS logs now (note that I restarted a failed job because the log is less cluttered then, a new job shows the same behaviour though):/tmp/epson-inkjet-printer-filter.txt/var/log/cups/error_log(error at line 334)I also switched back to pkgrel 10 with
--enable-debugand one can clearly see in the filter's debug logs where the filter bails with newer pkgrels. Printing still works with pkgrel 10 and the logs seem to indicate that everything works fine (i.e. no limitations as you suspected)? I didn't include the CUPS logs here because everything works smoothly there. See here:/tmp/epson-inkjet-printer-filter.txtWhile working on #3 I noticed that
./configurewas executed withLDFLAGS="$LDFLAGS -Wl,--no-as-needed"with pkgrel 10, but not with later pkgrels. So I just built the latestepson-inkjet-printer-filterwith theseLDFLAGS, but no luck. In fact, I got the exact same result as with #2 /patchelf- i.e. it looks like this issue existed before, but was fixed with theseLDFLAGS. So, the only remaining difference is thatepson_inkjet_printer_filteruses a newer version (does it?) and the install path?You got any other ideas? If not, how about a new pkgrel basically going back to the pkgrel 10 approach with files below
/opt/${pkgname}and without the (unfortunately not working) shared filter for this package only?vitaliikuzhdin commented on 2025-01-17 12:52 (UTC)
@PhrozenByte, just looking up the filter error was really helpful. It seems that Epson developers either used
gccon C++ code which would normally be compiled withg++and did not append-std=c++11or-lstdc++. I had already noticed this while packaging, since all newer drivers (without thelsb3.2postfix) depend ongcc-libs(which provideslibstdc++.so.6), but the older ones, like this one, don't.The problem is that these libraries are proprietary, and all solutions on the web just suggest recompilation with proper linker flags, which we can't do. Although I'm not sure this will work, you can try installing
patchelfand executing this:I do wonder why it worked for you in the old installation. My theory is that the libraries were previously installed into
/opt/${pkgname}and were thus never even seen byLD, so you could run the printing process with some limitations but no errors. You can tryrming (or just renaming) the libraries to test this.Another thing that might be helpful is installing the old version of this package but with the
--enable-debugflag. Who knows if there will be anything interesting.1 2 3 Next › Last »