papsrv.8


NAME

papsrv - printer daemon which accepts Macintosh jobs and passes them to PPR


SYNOPSIS

papsrv [--help] [--version] [-f configfile] [-l logfile] [-p pidfile] [-X AUFS_Security_directory] [-z default_zone]


DESCRIPTION

This command starts the PPR Printer Access Protocol server for Macintosh print jobs.

If the --help or --version switch is used it will print brief usage information or PPR version information respectively.

A configuration file other than the default may be specified with the -f switch.

A log file other than the default may be specified with the -l switch.

When papsrv starts it writes its process id into a file. A process id file other than the default may be specified with the -p switch.

The -X switch indicates the directory where CAP AUFS security files may be found. If this feature is used, aufs should be started with an identical -X switch. The AUFS security feature requires a user to mount a file sharing volume on the server before he can print to certain print queues on the same server. The mear presence of this switch does not enable CAP AUFS security for all printers. If this switch is present, AUFS security is enabled for those printers which are ``protected'', that is, those for which there is a per-page printing charge (even if the charge is 0.00 dollars per page). AUFS security is also enabled for any printer which has the line ``ForceAUFSSecurity: YES'' in its paragraph in the papsrv configuration file. (See papsrv.conf(5)).

If AUFS security is turned on for a particular printer and a user attempts to print without having mounted a file sharing volume, papsrv detects this and tell the Macintosh that a PostScript error has occured. In order for the user to see this message, the LaserWriter driver option for PostScript error reporting must be set correctly. To do this with LaserWriter 8.x, choose print in any application, then press the ``Options'' button and then change ``PostScript Errors:'' to ``Summarize on Screen''.

CAP must not be compiled with the HIDE_AUFS_SECURITY option. (With HIDE_AUFS_SECURITY enabled, only root can tell if a user has a volume mounted. It is unclear to me how the option increases security anyway, except perhaps if the security directory is /tmp.)

Most AppleTalk implementations only allow a node (computer) to adversize names in one zone. Netatalk, however, allows each advertized name to be adversized in any accessible zone. The -z switch specifies a default zone for names in ``PAPname:'' lines in the configuration file which do not specify a zone. If the -z switch is not used, papsrv will attempt to read the default zone from the first line of the file /etc/ppr/papsrv_default_zone.conf; if the -z switch is not used and the file is not found, the default zone will be ``*'' which will allow Netatalk to decide what zone to put the name in.

Papsrv is a setuid program owned by ``ppr''. The first thing it does when it is invoked is to make sure that the real user who invoked it is ``ppr'' or ``root''. If it is not, papsrv prints an error message on stderr and exits immediately.

Papsrv should never be killed with the command ``kill -9'' or "Bpapsrv can be restarted. It is recomended that papsrv be killed with SIGTERM. This is the default action of the kill command is all known shells. Several seconds may elapse between the time papsrv receives the TERM signal and the time it exits. During this time papsrv is removing the advertized names from the network.

The shell script papsrv_kill reads the process id from the default PID file and kills papsrv by sending it SIGTERM.

If papsrv receives SIGUSR1 it will begin logging queries and answers to the log file. If it receives SIGUSR1 again it will also begin logging the PostScript code of the queries to the log file. If it receives SIGUSR1 a third time it will stop loggin queries.

It is a good idea to run ppad ppdopts on a printer before sharing it with papsrv. Some printers have optional equipment. If optional equipment is available for your printer, ppad ppdopts may ask you to indicate which options are installed. It is a good idea to do this because the client may ask the server to indicate whether a particuliar piece of optional equipment is installed. If you have not run ppad ppdopts, Papsrv will indicate that it doesn't know whether any specific piece of optional equipment is installed.


FILES

Papsrv by default, reads the configuration file /etc/ppr/papsrv.conf. Prior to version 1.30, this file was /etc/ppr/papsrv.

It also reads printer and group configuration files in /etc/ppr/printers and /etc/ppr/groups and PPD files in /usr/ppr/PPDFiles or wherever the user specifies as the location for a particular printer's PPD File.

The default log file is /var/spool/ppr/logs/papsrv.

The default PID file is /var/spool/ppr/papsrv.pid.

If the -z switch is not used, papsrv will attempt to read the file /etc/ppr/papsrv_default_zone.conf. The first line of this file is used as the default zone for advertising printers.


DIAGNOSTICS

Since papsrv is a daemon, exit codes are not useful, however it does write a log in /var/spool/ppr/logs/papsrv. If it fails for some reason, a message will be written to the log. This log should be examined after papsrv has been restarted if its configuration file has been modified.


SEE ALSO

the ppop manpage (1), the ppr manpage (1), the papsrv manpage (5), the ppad manpage (8), the pprd manpage (8) ``PPR, a PostScript Print Spooler'', ``Installing and Using PPR''.


HISTORY

PPR was written at Trinity College during 1993, 1994, 1995, and 1996.


AUTHORS

David Chappell, Trinity College Computing Center, Hartford, Connecticut.


BUGS

It is not possible to add or remove Macintosh shared printers without editing the configuration file and restarting papsrv. While it is restarting, which with a long list of printers to share may take several minutes, all the printer shares are unusable. One possible work-around is to run several papsrv daemons, each with a different configuration, log, and PID files. That is the purpose of the -f, -l, and -p switches.