The LPRng package consists of the following executables and configuration files:
lpd - the lpd print server program
lpr, lpq, lprm, lpc, and lpstat client programs for printing, status queries, job removal, server configuration, and System V lpstat emulation respectively.
printcap print queue database file which is used by all the server and client programs
lpd.conf LPRng configuration options which is used by all the server and client programs
lpd.perms permission information which is used by the lpd server to control user actions.
LPRng uses the configure script generated by the GNU autoconf utility to generate a set of Makefiles. These are used by GNU make to compile and install the LPRng software. The following Makefile variables and values are set by configure to specify the location of the LPRng software:
Configure Variable | Default Value | Expanded Default Value | Override |
---|---|---|---|
${prefix} | /usr/local | --prefix=PATH | |
${exec_prefix} | ${prefix} | /usr/local | --execprefix= PATH |
${bindir} | ${exec_prefix}/bin | /usr/local/bin | --bindir= PATH |
${sbindir} | ${exec_prefix}/sbin | /usr/local/sbin | --sbindir= PATH |
${libexecdir} | ${exec_prefix} /libexec | /usr/local/libexec | --libexecdir= PATH |
${sysconfdir} | ${prefix}/etc | /usr/local/etc | --sysconfdir= PATH |
${mandir} | ${prefix}/man | /usr/local/man | --mandir= PATH |
These are used to install the following files:
Configure Variable | Files |
---|---|
${bindir} | lpr, lprm, lpq, lpstat |
${sbindir} | lpc, checkpc, lpd |
${libexecdir}/filters | lpf, pclbanner, psbanner, lpbanner |
${sysconfdir} | lpd.conf, lpd.perms, printcap |
${mandir}/man[1-9] | man pages |
You can set explicit values for the paths by using the override --name=PATH. For example:
Variable | Value | Files |
---|---|---|
${bindir} | /usr/bin | /usr/bin/{lpr,lprm,lpq,lpstat} |
${sbindir} | /usr/sbin | /usr/sbin/{lpc,checkpc,lpd} |
${libexecdir}/filters | /usr/libexec/filters | /usr/libexec/filters{lpf, pclbanner, psbanner, lpbanner} |
${sysconfdir} | /etc | /etc/{lpd.conf,lpd.perms,printcap} |
${mandir}/man[1-9] | /usr/share/man | /usr/share/man/man[1-9]/{man pages} |
In addition to these standard configure options the following options provided.
Install the executables without setuid ROOT permissions. Non-setuid clients and programs are inherently more secure than SETUID programs, and system administrators would be well advised to install them without SETUID root permissions. Please see Security Considerations for more details about this option.
Require connections to the lpd server to come from a privileged port (range 1-1023). By default LPRng will allow connections from any port. Please see Security Considerations for more details about this option.
The default LPRng configuration assumes that all printing will be done via a lpd print spooler running on the local host system. However, many larger sites prefer that all users do their printing via a few central servers, and do not run lpd servers on user systems. The --disable-force_localhost configuration sets the default value of the force_localhost value to false, by default allowing the LPRng clients to connect directly to lpd servers on remote hosts.
By default, the lpr, lpq, lprm, and lpc clients require the lpd.conf and printcap files to be present on the localhost. The --disable-require_configfiles literal removes this requirement.
Include support for Kerberos 5 authenticated transfers.
Include support for MIT Kerberos 4 authenticated transfers.
Disable checks for kerberos support libraries, etc.
lpd executable directory (default ${sbindir}). For historical configuration compatibility.
Filter directory (default ${libexecdir}/filters). For historical configuration compatibility.
Path of lpd.conf file. For historical configuration compatibility.
Path of lpd.perms file. For historical configuration compatibility.
Path of printcap file. For historical configuration compatibility.
Set the LD_LIBRARY_PATH environment variable of filters to this value.
Set the PATH environment variable of filters to this value.
Run LPRng as this user, default daemon
Run LPRng as this group, default daemon
The lockfile path. This will be expanded to PATH.server or PATH.port allowing multiple LPRng servers to run on a single host.
Location of the filters installed by LPRng.
retain status of last N done jobs.
remove status of done jobs older than N seconds.
name of chooser routine provided by user
name of order routine provided by user
object file with routines provided by user
include file with templates for routines provided by user
Do not strip the executables before installing. For debugging and diagnostic purposes.
the pathname of the UNIX socket (off or blank to disable)
disable ssl support
root location for OpenSSL
OpenSSL include files
OpenSSL library files
ssl Certificate Authority CERT file (default ${sysconfdir}/lpd/ssl.ca/ca.crt)
ssl Certificate Authority private key file (default ${sysconfdir}/lpd/ssl.ca/ca.key)
ssl Certificate Authority certs working directory (default ${sysconfdir}/lpd/ssl.certs/)
ssl server certificate file (default ${sysconfdir}/lpd/ssl.server/server.crt)
ssl server private key in password file (default ${sysconfdir}/lpd/ssl.server/server.pwd)
It is recommended that you use one of the following configurations:
If you already have a print spooling system installed and want to install LPRng for testing purposes or as an alternative to the existing system and keep your existing print spooling system, use:
./configure use defaults for file locations and permissions: /usr/local/{bin,sbin,libexec/filters,man} requires lpd to run on the local host executables installed setuid ROOT
If you have manual pages in /usr/share/man, your existing print spooling system has executables in /usr/bin and /usr/sbin, and you want to replace your existing print spooling system, use:
./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man executables and files in /usr/{bin,sbin,libexec/filters} /usr/share/man/man[0-9] requires lpd to run on the local host everything installed setuid ROOT
If you have manual pages in /usr/share/man and allow jobs (by default) to be sent directly to the server host (lightweight operation), use:
./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man --disable-force_localhost executables and files in /usr/{bin,sbin,libexec/filters} /usr/share/man/man[0-9] does not require lpd to run on the local host everything installed setuid ROOT