2.5. Configuration

The LPRng package consists of the following executables and configuration files:

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:

./configure --prefix=/usr --sysconfdir=/etc \
    --mandir=/usr/share/man
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.

--disable-setuid

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.

--enable-priv_ports

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.

--disable-force_localhost

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.

--disable-require_configfiles

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.

--enable-kerberos

Include support for Kerberos 5 authenticated transfers.

--enable-mit_kerberos4

Include support for MIT Kerberos 4 authenticated transfers.

--disable-kerberos_checks

Disable checks for kerberos support libraries, etc.

--with-lpddir=DIR

lpd executable directory (default ${sbindir}). For historical configuration compatibility.

--with-filterdir=DIR

Filter directory (default ${libexecdir}/filters). For historical configuration compatibility.

--with-lpd_conf_path=PATH

Path of lpd.conf file. For historical configuration compatibility.

--with-lpd_perms_path=PATH

Path of lpd.perms file. For historical configuration compatibility.

--with-printcap_path=PATH

Path of printcap file. For historical configuration compatibility.

--with-ld_library_path=PATHLIST

Set the LD_LIBRARY_PATH environment variable of filters to this value.

--with-filter_path=PATHLIST

Set the PATH environment variable of filters to this value.

--with-userid=NAME

Run LPRng as this user, default daemon

--with-groupid=NAME

Run LPRng as this group, default daemon

--with-lockfile=PATH

The lockfile path. This will be expanded to PATH.server or PATH.port allowing multiple LPRng servers to run on a single host.

--with-filterdir=PATH

Location of the filters installed by LPRng.

--with-done_jobs=N

retain status of last N done jobs.

--with-done_jobs_max_age=N

remove status of done jobs older than N seconds.

--with-chooser_routine=NAME

name of chooser routine provided by user

--with-order_routine=NAME

name of order routine provided by user

--with-user_objs=NAME

object file with routines provided by user

--with-user_include=NAME

include file with templates for routines provided by user

--disable-strip

Do not strip the executables before installing. For debugging and diagnostic purposes.

--with-unixsocketpath=PATHNAME

the pathname of the UNIX socket (off or blank to disable)

--disable-ssl

disable ssl support

--with-openssl=DIR

root location for OpenSSL

--with-openssl-inc

OpenSSL include files

--with-openssl-lib

OpenSSL library files

--with-ssl_ca_file=FILE

ssl Certificate Authority CERT file (default ${sysconfdir}/lpd/ssl.ca/ca.crt)

--with-ssl_ca_key=KEY

ssl Certificate Authority private key file (default ${sysconfdir}/lpd/ssl.ca/ca.key)

--with-ssl_certs_dir=DIR

ssl Certificate Authority certs working directory (default ${sysconfdir}/lpd/ssl.certs/)

--with-ssl_server_cert=FILE

ssl server certificate file (default ${sysconfdir}/lpd/ssl.server/server.crt)

--with-ssl_server_password_file=FILE

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:

  1. 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
    
  2. 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
    
  3. 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