This appendix provides a sample list file that shows the capabilities and format of EPM list files.
The Common UNIX Printing System provides an EPM list file to generate software distributions for most UNIX operating systems. This is an annotated version of the CUPS 1.1.5 list file.
The CUPS makefile defines the following variables for the distribution:
BINDIR
DATADIR
DOCDIR
INCLUDEDIR
LIBDIR
LOCALEDIR
LOGDIR
MANDIR
PAMDIR
REQUESTS
SBINDIR
SERVERBIN
SERVERROOT
The list file starts with the product information:
%product Common UNIX Printing System %copyright 1993-2001 by Easy Software Products, All Rights Reserved. %vendor Easy Software Products %license LICENSE.txt %readme README.txt %version 1.1.5 %incompat printpro
One incompatibility is flagged against the "printpro" package, since ESP Print Pro provides its own CUPS distribution.
Next comes the server programs; these are identical for all systems:
%system all # Server files f 0555 root sys $SBINDIR/cupsd scheduler/cupsd d 0555 root sys $SERVERBIN - d 0555 root sys $SERVERBIN/backend - f 0555 root sys $SERVERBIN/backend/ipp backend/ipp l 0555 root sys $SERVERBIN/backend/http ipp f 0555 root sys $SERVERBIN/backend/lpd backend/lpd f 0555 root sys $SERVERBIN/backend/parallel backend/parallel f 0555 root sys $SERVERBIN/backend/serial backend/serial f 0555 root sys $SERVERBIN/backend/socket backend/socket f 0555 root sys $SERVERBIN/backend/usb backend/usb d 0555 root sys $SERVERBIN/cgi-bin - f 0555 root sys $SERVERBIN/cgi-bin/admin.cgi cgi-bin/admin.cgi f 0555 root sys $SERVERBIN/cgi-bin/classes.cgi cgi-bin/classes.cgi f 0555 root sys $SERVERBIN/cgi-bin/jobs.cgi cgi-bin/jobs.cgi f 0555 root sys $SERVERBIN/cgi-bin/printers.cgi cgi-bin/printers.cgi d 0555 root sys $SERVERBIN/daemon - f 0555 root sys $SERVERBIN/daemon/cups-lpd scheduler/cups-lpd f 0555 root sys $SERVERBIN/daemon/cups-polld scheduler/cups-polld d 0555 root sys $SERVERBIN/filter - f 0555 root sys $SERVERBIN/filter/pstoraster pstoraster/pstoraster f 0555 root sys $SERVERBIN/filter/pdftops pdftops/pdftops f 0555 root sys $SERVERBIN/filter/imagetops filter/imagetops f 0555 root sys $SERVERBIN/filter/pstops filter/pstops f 0555 root sys $SERVERBIN/filter/texttops filter/texttops f 0555 root sys $SERVERBIN/filter/rastertoepson filter/rastertoepson f 0555 root sys $SERVERBIN/filter/rastertohp filter/rastertohp f 0555 root sys $SERVERBIN/filter/hpgltops filter/hpgltops f 0555 root sys $SERVERBIN/filter/imagetoraster filter/imagetoraster
The administration commands are all pretty much the same. The
only difference is that IRIX needs a symlink for the
lpc
program in the /usr/etc
directory.
l 0555 root sys $BINDIR/disable $SBINDIR/accept l 0555 root sys $BINDIR/enable $SBINDIR/accept l 0555 root sys $LIBDIR/accept $SBINDIR/accept l 0555 root sys $LIBDIR/lpadmin $SBINDIR/lpadmin l 0555 root sys $LIBDIR/reject accept f 0555 root sys $SBINDIR/accept systemv/accept f 0555 root sys $SBINDIR/lpadmin systemv/lpadmin f 0555 root sys $SBINDIR/lpc berkeley/lpc f 0555 root sys $SBINDIR/lpinfo systemv/lpinfo f 0555 root sys $SBINDIR/lpmove systemv/lpmove l 0555 root sys $SBINDIR/reject accept %system irix l 0555 root sys /usr/etc/lpc $SBINDIR/lpc %system all
The user commands are all pretty much the same. As with the
administration commands, IRIX needs the Berkeley commands linked
to a different directory, /usr/bsd
.
f 0555 root sys $BINDIR/cancel systemv/cancel f 0555 root sys $BINDIR/lp systemv/lp f 0555 root sys $BINDIR/lpoptions systemv/lpoptions f 4555 root sys $BINDIR/lppasswd systemv/lppasswd f 0555 root sys $BINDIR/lpq berkeley/lpq f 0555 root sys $BINDIR/lpr berkeley/lpr f 0555 root sys $BINDIR/lprm berkeley/lprm f 0555 root sys $BINDIR/lpstat systemv/lpstat %system irix l 0555 root sys /usr/bsd/lpq $BINDIR/lpq l 0555 root sys /usr/bsd/lpr $BINDIR/lpr l 0555 root sys /usr/bsd/lprm $BINDIR/lprm %system all
Shared libraries present their own challenges. HP-UX uses a different extension for shared libraries than other operating systems.
%system hpux f 0555 root sys $LIBDIR/libcups.sl.2 cups/libcups.sl.2 l 0555 root sys $LIBDIR/libcups.sl libcups.sl.2 f 0555 root sys $LIBDIR/libcupsimage.sl.2 filter/libcupsimage.sl.2 l 0555 root sys $LIBDIR/libcupsimage.sl libcupsimage.sl.2 %system !hpux f 0555 root sys $LIBDIR/libcups.so.2 cups/libcups.so.2 l 0555 root sys $LIBDIR/libcups.so libcups.so.2 f 0555 root sys $LIBDIR/libcupsimage.so.2 filter/libcupsimage.so.2 l 0555 root sys $LIBDIR/libcupsimage.so libcupsimage.so.2 %system all
The CUPS distribution uses three directories to hold the log, request, and temporary files.
d 0755 root sys $LOGDIR - d 0700 lp sys $REQUESTS - d 1700 lp sys $REQUESTS/tmp -
CUPS has lots of data files. We use wildcards whenever possible.
f 0444 root sys $LOCALEDIR/C/cups_C locale/C/cups_C f 0444 root sys $LOCALEDIR/de/cups_de locale/de/cups_de f 0444 root sys $LOCALEDIR/en/cups_en locale/en/cups_en f 0444 root sys $LOCALEDIR/es/cups_es locale/es/cups_es f 0444 root sys $LOCALEDIR/fr/cups_fr locale/fr/cups_fr f 0444 root sys $LOCALEDIR/it/cups_it locale/it/cups_it d 0555 root sys $DATADIR - d 0555 root sys $DATADIR/banners - f 0444 root sys $DATADIR/banners/classified data/classified f 0444 root sys $DATADIR/banners/confidential data/confidential f 0444 root sys $DATADIR/banners/secret data/secret f 0444 root sys $DATADIR/banners/standard data/standard f 0444 root sys $DATADIR/banners/topsecret data/topsecret f 0444 root sys $DATADIR/banners/unclassified data/unclassified d 0555 root sys $DATADIR/charsets - f 0444 root sys $DATADIR/charsets/windows-874 data/windows-874 f 0444 root sys $DATADIR/charsets/windows-1250 data/windows-1250 f 0444 root sys $DATADIR/charsets/windows-1251 data/windows-1251 f 0444 root sys $DATADIR/charsets/windows-1252 data/windows-1252 f 0444 root sys $DATADIR/charsets/windows-1253 data/windows-1253 f 0444 root sys $DATADIR/charsets/windows-1254 data/windows-1254 f 0444 root sys $DATADIR/charsets/windows-1255 data/windows-1255 f 0444 root sys $DATADIR/charsets/windows-1256 data/windows-1256 f 0444 root sys $DATADIR/charsets/windows-1257 data/windows-1257 f 0444 root sys $DATADIR/charsets/windows-1258 data/windows-1258 f 0444 root sys $DATADIR/charsets/iso-8859-1 data/iso-8859-1 f 0444 root sys $DATADIR/charsets/iso-8859-14 data/iso-8859-14 f 0444 root sys $DATADIR/charsets/iso-8859-15 data/iso-8859-15 f 0444 root sys $DATADIR/charsets/iso-8859-2 data/iso-8859-2 f 0444 root sys $DATADIR/charsets/iso-8859-3 data/iso-8859-3 f 0444 root sys $DATADIR/charsets/iso-8859-4 data/iso-8859-4 f 0444 root sys $DATADIR/charsets/iso-8859-5 data/iso-8859-5 f 0444 root sys $DATADIR/charsets/iso-8859-6 data/iso-8859-6 f 0444 root sys $DATADIR/charsets/iso-8859-7 data/iso-8859-7 f 0444 root sys $DATADIR/charsets/iso-8859-8 data/iso-8859-8 f 0444 root sys $DATADIR/charsets/iso-8859-9 data/iso-8859-9 f 0444 root sys $DATADIR/charsets/utf-8 data/utf-8 d 0555 root sys $DATADIR/data - f 0444 root sys $DATADIR/data/HPGLprolog data/HPGLprolog f 0444 root sys $DATADIR/data/psglyphs data/psglyphs f 0444 root sys $DATADIR/data/testprint.ps data/testprint.ps d 0555 root sys $DATADIR/fonts - f 0444 root sys $DATADIR/fonts fonts/* d 0555 root sys $DATADIR/pstoraster - f 0444 root sys $DATADIR/pstoraster/Fontmap pstoraster/Fontmap f 0444 root sys $DATADIR/pstoraster pstoraster/gs*.ps d 0555 root sys $DATADIR/model - f 0444 root sys $DATADIR/model ppd/*.ppd d 0555 root sys $DATADIR/templates - f 0444 root sys $DATADIR/templates templates/*.tmpl
The server configuration files and directories go in
$SERVERROOT
. The MIME configuration files are not
treated as configuration files in the distribution since new
versions of CUPS may add filters and file types that are
required to make CUPS work. Local file types and filters should
be added using the local.types
and
local.convs
files.
d 0555 root sys $SERVERROOT - d 0711 root sys $SERVERROOT/certs - d 0755 root sys $SERVERROOT/interfaces - d 0755 root sys $SERVERROOT/ppd - c 0644 root sys $SERVERROOT conf/*.conf f 0644 root sys $SERVERROOT/mime.convs conf/mime.convs f 0644 root sys $SERVERROOT/mime.types conf/mime.typesPAM Files
Programmable Authentication Modules ("PAM") is supported by many operating systems. Currently Linux PAM is the only implementation that uses a directory with separate configuration files; other operating systems use a single configuration file (
/etc/pam.conf
) and provide a default authentication configuration that works with CUPS. %system linux d 0555 root sys $PAMDIR - c 0644 root sys $PAMDIR/cups data/cups.pam c 0644 root sys $PAMDIR/cups.suse data/cups.suse %install if test -f /lib/security/pam_unix.so; then %install mv $PAMDIR/cups.suse $PAMDIR/cups %install fi %system all
The developer files include the C header files and static API library.
d 0555 root sys $INCLUDEDIR/cups - f 0444 root sys $INCLUDEDIR/cups/cups.h cups/cups.h f 0444 root sys $INCLUDEDIR/cups/http.h cups/http.h f 0444 root sys $INCLUDEDIR/cups/image.h filter/image.h f 0444 root sys $INCLUDEDIR/cups/ipp.h cups/ipp.h f 0444 root sys $INCLUDEDIR/cups/language.h cups/language.h f 0444 root sys $INCLUDEDIR/cups/md5.h cups/md5.h f 0444 root sys $INCLUDEDIR/cups/ppd.h cups/ppd.h f 0444 root sys $INCLUDEDIR/cups/raster.h filter/raster.h f 0444 root sys $LIBDIR/libcups.a cups/libcups.a
The documentation files go under $DOCDIR
. Wildcards take
care of most of the work.
d 0555 root sys $DOCDIR - f 0444 root sys $DOCDIR/cups.css doc/cups.css f 0444 root sys $DOCDIR doc/*.html f 0444 root sys $DOCDIR doc/*.pdf d 0555 root sys $DOCDIR/images - f 0444 root sys $DOCDIR/images doc/images/*.gif
Man pages are almost as much fun as initialization scripts. IRIX is the oddball of the bunch and needs packed, formatted man pages. Solaris and HP-UX follow the System V convention of using section 1m for administration commands instead of section 8 as is used for all other UNIX's.
# Man pages %system irix d 0555 root sys $MANDIR/a_man - d 0555 root sys $MANDIR/a_man/cat1 - d 0555 root sys $MANDIR/u_man - d 0555 root sys $MANDIR/u_man/cat1 - d 0555 root sys $MANDIR/u_man/cat5 - f 0444 root sys $MANDIR/a_man/cat1/accept.z man/accept.z l 0444 root sys $MANDIR/a_man/cat1/reject.z accept.z f 0444 root sys $MANDIR/u_man/cat1/backend.z man/backend.z f 0444 root sys $MANDIR/u_man/cat5/classes.conf.z man/classes.conf.z f 0444 root sys $MANDIR/a_man/cat1/cups-lpd.z man/cups-lpd.z f 0444 root sys $MANDIR/a_man/cat1/cups-polld.z man/cups-polld.z f 0444 root sys $MANDIR/u_man/cat5/cupsd.conf.z man/cupsd.conf.z f 0444 root sys $MANDIR/a_man/cat1/cupsd.z man/cupsd.z f 0444 root sys $MANDIR/a_man/cat1/enable.z man/enable.z l 0444 root sys $MANDIR/a_man/cat1/disable.z enable.z f 0444 root sys $MANDIR/u_man/cat1/filter.z man/filter.z f 0444 root sys $MANDIR/a_man/cat1/lpadmin.z man/lpadmin.z f 0444 root sys $MANDIR/a_man/cat1/lpc.z man/lpc.z f 0444 root sys $MANDIR/a_man/cat1/lpinfo.z man/lpinfo.z f 0444 root sys $MANDIR/a_man/cat1/lpmove.z man/lpmove.z f 0444 root sys $MANDIR/u_man/cat1/lpoptions.z man/lpoptions.z f 0444 root sys $MANDIR/u_man/cat1/lpq.z man/lpq.z f 0444 root sys $MANDIR/u_man/cat1/lprm.z man/lprm.z f 0444 root sys $MANDIR/u_man/cat1/lpr.z man/lpr.z f 0444 root sys $MANDIR/u_man/cat1/lpstat.z man/lpstat.z f 0444 root sys $MANDIR/u_man/cat1/lp.z man/lp.z l 0444 root sys $MANDIR/u_man/cat1/cancel.z lp.z f 0444 root sys $MANDIR/u_man/cat5/mime.convs.z man/mime.convs.z f 0444 root sys $MANDIR/u_man/cat5/mime.types.z man/mime.types.z f 0444 root sys $MANDIR/u_man/cat5/printers.conf.z man/printers.conf.z %system solaris hpux d 0555 root sys $MANDIR/man1 - d 0555 root sys $MANDIR/man5 - d 0555 root sys $MANDIR/man1m - f 0444 root sys $MANDIR/man1m/accept.1m man/accept.man l 0444 root sys $MANDIR/man1m/reject.1m accept.1m f 0444 root sys $MANDIR/man1/backend.1 man/backend.man f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man f 0444 root sys $MANDIR/man1m/cups-lpd.1m man/cups-lpd.man f 0444 root sys $MANDIR/man1m/cups-polld.1m man/cups-polld.man f 0444 root sys $MANDIR/man1m/cupsd.1m man/cupsd.man f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man f 0444 root sys $MANDIR/man1m/enable.1m man/enable.man l 0444 root sys $MANDIR/man1m/disable.1m enable.1m f 0444 root sys $MANDIR/man1/filter.1 man/filter.man f 0444 root sys $MANDIR/man1m/lpadmin.1m man/lpadmin.man f 0444 root sys $MANDIR/man1m/lpc.1m man/lpc.man f 0444 root sys $MANDIR/man1m/lpinfo.1m man/lpinfo.man f 0444 root sys $MANDIR/man1m/lpmove.1m man/lpmove.man f 0444 root sys $MANDIR/man1/lpoptions.1 man/lpoptions.man f 0444 root sys $MANDIR/man1/lpq.1 man/lpq.man f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man f 0444 root sys $MANDIR/man1/lp.1 man/lp.man l 0444 root sys $MANDIR/man1/cancel.1 lp.1 f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man %system !irix !solaris !hpux d 0555 root sys $MANDIR/man1 - d 0555 root sys $MANDIR/man5 - d 0555 root sys $MANDIR/man8 - f 0444 root sys $MANDIR/man8/accept.8 man/accept.man l 0444 root sys $MANDIR/man8/reject.8 accept.8 f 0444 root sys $MANDIR/man1/backend.1 man/backend.man f 0444 root sys $MANDIR/man1/classes.conf.5 man/classes.conf.man f 0444 root sys $MANDIR/man8/cups-lpd.8 man/cups-lpd.man f 0444 root sys $MANDIR/man8/cups-polld.8 man/cups-polld.man f 0444 root sys $MANDIR/man8/cupsd.8 man/cupsd.man f 0444 root sys $MANDIR/man5/cupsd.conf.5 man/cupsd.conf.man f 0444 root sys $MANDIR/man8/enable.8 man/enable.man l 0444 root sys $MANDIR/man8/disable.8 enable.8 f 0444 root sys $MANDIR/man1/filter.1 man/filter.man f 0444 root sys $MANDIR/man8/lpadmin.8 man/lpadmin.man f 0444 root sys $MANDIR/man8/lpc.8 man/lpc.man f 0444 root sys $MANDIR/man8/lpinfo.8 man/lpinfo.man f 0444 root sys $MANDIR/man8/lpmove.8 man/lpmove.man f 0444 root sys $MANDIR/man1/lpoptions.1 man/lpoptions.man f 0444 root sys $MANDIR/man1/lpq.1 man/lpq.man f 0444 root sys $MANDIR/man1/lprm.1 man/lprm.man f 0444 root sys $MANDIR/man1/lpr.1 man/lpr.man f 0444 root sys $MANDIR/man1/lpstat.1 man/lpstat.man f 0444 root sys $MANDIR/man1/lp.1 man/lp.man l 0444 root sys $MANDIR/man1/cancel.1 lp.1 f 0444 root sys $MANDIR/man5/mime.convs.5 man/mime.convs.man f 0444 root sys $MANDIR/man5/mime.types.5 man/mime.types.man f 0444 root sys $MANDIR/man5/printers.conf.5 man/printers.conf.man
The CUPS startup script is last and specifies a script name
of cups
. Startup and shutdown scripts will be
created with the names S99cups
and
K00cups
, respectively.
%system all i 0555 root sys cups cups.sh