Until tonight, I was running 1.2.13. I just upgraded to 1.3.43, and my lpd
filter stopped working. It's a perl script which opens this command with
/usr/bin/dvips -f -q < dvi-temp-1948 | /usr/bin/gs -dSAFER -dNOPAUSE -q
-sDEVICE=hl630 -sOutputFile=/proc/self/fd/5 - 5>&1 1>/dev/null 2>/dev/null|
And then reads from it using sysread() repeatedly until sysread() returns
undef (indicating EOF). (Yes, there really is a reason for all that
file-descriptor frobbing. Don't worry about it; that's not the point here.)
This worked fine under 1.2.13. Under 1.3.43, however, the perl script hangs
in sysread() after the last block of data is read.
I managed to duplicate this with the following shell command:
bash$ dd if=/etc/termcap of=/proc/self/fd/1 bs=10 count=1 2>/dev/null | cat
On my system, this prints "# /etc/ter" and then hangs until I ^C it. Removing
the "of=/proc/self/fd/1" makes it stop*.
I don't know if this problem is new in 1.3.43; like I said, I jumped straight
from 1.2.13 to 1.3.43.
Anybody know what's going on here? Known bug? Should I report it to Linus?