LPRng Reference Manual: 24 Sep 2004 (For LPRng-3.8.28)
Prev | Chapter 2. Installation | Next

# 2.5. Configuration

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:

        ./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

Prev | Home | Next
Daemon User and Daemon Group | Up | System and User Printcap, lpd.conf, and lpd.perms files