budd@bu-it.bu.edu (Phil Budne) (05/29/90)
In article <7869@ubc-cs.UUCP> hogg@cheddar.cc.ubc.ca (John Hogg) writes: >I know that SGI has promised Berkeley lpr/lpd printing support for the >next release, but we were wondering if anyone has ported it to the >current (3.2) release of IRIX. I have done so. I was only interested in sending jobs to remote printers. Check out bu.edu: ~ftp/src/PRINTING/sgi-lpd.tar.Z which is based on the (freed) 4.3 Tahoe version of lpr/lpd. The tar also contains AUX-lpd which is a set of diffs for a USG Unix port of lpr/lpd which includes local printer support. Phil Budne, Boston University
robert@shangri-la.gatech.edu (Robert Viduya) (05/30/90)
>budd@bu-it.bu.edu (Phil Budne) (budd@bu-it.bu.edu, <57861@bu.edu.bu.edu>): > In article <7869@ubc-cs.UUCP> hogg@cheddar.cc.ubc.ca (John Hogg) writes: > >I know that SGI has promised Berkeley lpr/lpd printing support for the > >next release, but we were wondering if anyone has ported it to the > >current (3.2) release of IRIX. > > I have done so. I was only interested in sending jobs to remote > printers. Check out bu.edu: ~ftp/src/PRINTING/sgi-lpd.tar.Z which is > based on the (freed) 4.3 Tahoe version of lpr/lpd. The tar also > contains AUX-lpd which is a set of diffs for a USG Unix port of > lpr/lpd which includes local printer support. > > Phil Budne, Boston University Just a note... we use BU's lpd on our sgi's but discovered a problem with it leaving a bunch of zombie processes around. Turned out to be a problem with signal handling, specifically with SIGCHLD (SIGCLD, if you prefer). After looking through kernel source, we discovered that the signal system call is implemented using the old SVR2 semantics: when a signal function is invoked, the signal trap is cleared and it's up to the signal function to reset the trap back to itself (which of course, leaves a small window open between the time the function is invoked and the time it sets the signal trap back for another signal to come in and get misplaced). Further investigation showed that the sigset SVR3 function doesn't have this problem. Adding a simple "#define signal(s,f) sigset(s,f)" to the file lp.h fixed the problem. robert -- Robert Viduya robert@shangri-la.gatech.edu Office of Computing Services Georgia Institute of Technology (404) 894-6296 Atlanta, Georgia 30332-0275