============================================================================
mouse:~ppr/src/INSTALL.txt
mouse:~ppr/src/docs/misc/INSTALL.txt (symbolic link)
Last revised 12 March 2003.
============================================================================
This document describes the steps required to compile and install PPR. See
README.txt to learn where the other documentation is.
This document does not discuss installing PPR from an .rpm file. The RPM
version of PPR is still considered experimental.
=============================================================================
Table of Contents
=============================================================================
* Requirements for Installing PPR
* Programs for PostScript Filters
* Notes for CAP
* Notes for Netatalk
* Notes X-Windows
* Notes for RedHat Linux 4.x
* Notes for DEC OSF/1
* Notes for SGI IRIX 6.3
* Notes for HP-UX 10.20
* Notes for ULTRIX
* Notes for MS-Windows NT 4.0 and UWIN 2.0
* Notes for MS-Windows NT 4.0 and Cygwin
* Simple Compiling Instructions
* Upgrading to PPR 1.51 from previous versions
=============================================================================
Requirements for Installing PPR
=============================================================================
1) The PPR source archive (ppr-1.51.tar.gz)
2) Gzip (to uncompress the source archive)
(Gzip may be obtained from .)
3) Tar (to unpack the source archive)
4) GCC version 2.5.8 or later or the native C compiler on certain systems (the
Configure script will tell you if you have this option.
.)
5) Perl 5.005 or later
(Which may be obtained form .)
6) GNU dbm (GDBM)
(Which may be obtained from .)
7) TDB
(Which may be obtained from .)
With the exception of the last, all of these items are probably already
installed on Linux systems. For other systems, you should check first. The
version of GCC may be determined with the command "gcc -v".
While Perl is not absolutely required to use PPR, it is strongly recomended
that you install Perl 5.005 or later. If you do not have Perl, the following
things will not work:
* The TeX filter. This means that you will have to run TeX source files
through TeX or LaTeX before sending them to be printed. (But, the DVI
filter will still work.)
* Automatic Microsoft Windows driver installation for Samba.
* The World Wide Web interface.
* The ppr-panel GUI (which also requires Perl/Tk).
* The audio commentator and responder.
It is possible to compile and use PPR even if you don't have GDBM, but
the ppuser command and the printer accounting features associated with it
won't work.
It is possible to compile and use PPR without TDB, but automatic Microsoft
Windows driver download for Samba won't work.
=============================================================================
Programs for PostScript Filters
=============================================================================
If the following software is present, more input filters will be available:
* NetPBM
* djpeg
* Groff or Troff
* TeX/LaTeX
* Perl
* DVIPS
* plot2ps (Available from ftp://ppr-dist/pub/ppr/)
* Transfig
* GNU Texinfo
* Uncompress
* GZIP
* HTMLDOC (Available from http://www.easysw.com/~mike/htmldoc/)
* Xpdf
* Adobe Acrobat Reader
Most of these programs are a standard component of many Linux distributions.
=============================================================================
Notes for CAP
=============================================================================
If you will be using PPR with CAP and you will be sharing more than about 10
printers using papsrv, you must change two values in a CAP library header
file and re-compile the CAP library.
You should go to the directory "cap60/lib/cap" and edit the file "abpap.h".
Change the values in the defines of NUMPAP and NUMSPAP from their normal
values of 12 and 10 respectively to something higher such as 70 and 70.
Once you have made the change you must re-compile and re-install the CAP
library by running "make install".
You must also copy a header file from a CAP source directory to
"/usr/include/netat" (or wherever your CAP netat/ include directory is). The
file is the one you may have edited in the procedure described above,
"cap60/lib/cap/abpap.h".
=============================================================================
Notes for Netatalk
=============================================================================
In order to use Netatalk with PPR you must first obtain and install NATALI,
the Netatalk AppleTalk Library Interface compatibility library. This
library, written by the author of PPR, may be obtained from the same place
you got PPR.
NATALI only works with Linux, though it is probably possible to port it to
other operating systems without a lot of trouble.
NOTE: be sure to read the README.txt file that comes with NATALI. If you
don't follow the directions, there will be an unresolved symbol when you try
to link a program with NATALI and Netatalk.
=============================================================================
Notes for RedHat Linux 4.x
=============================================================================
In 4.0 release, the file /usr/include/libintl.h contains an appearent bug.
The line "#include " is enclosed by "#ifdef HAVE_LOCALE_H" and
"#endif". The condition should be removed. It is not known if this problem
is present in 4.1 or 4.2.
If you want international messages support, then after you have run Configure
and said "yes" to the appropriate option you must edit Makefile.conf and
change the line which says:
INTLLIBS=#-lintl
to
INTLLIBS=-lintl
Configure does not put the option -lintl in because the file /usr/lib/libintl.a
is not present in RedHat 5.1 or 5.2. Worse yet, if you upgrade a 4.x system
to 5.1 the old file will be left in place. Linking against the old file will
result in executables that fail and dump core.
=============================================================================
Notes for DEC OSF/1
=============================================================================
I believe these steps are not needed for PPR 1.40 or later. If you have definite
information on this point, write to .
Installing PPR on DEC OSF/1 systems is straightforward. The only
required system modification is to insure that the System V STREAMS
based modules are built into the kernel.
You should find kernel configuration parameters in the file
/sys/conf/HOSTNAME. Examine the file and determine if the following
lines are present.
options STREAMS
options FFM_FS
options PCKT
If the above are present all the necessary components are already in place.
Otherwise, you will need to rebuild the OS kernel using /usr/sbin/doconfig
as root. In the doconfig script you will be asked to select kernel options.
Be sure to include the following: System V Devices, STREAMS, and File on File
Filesystem. When doconfig finishes copy the new kernel to /vmunix and reboot.
From this point on, you should be able to follow the usual PPR
installation procedures. When you run Configure, it will give you
the option of using the C compiler that comes with the operating system.
=============================================================================
Notes for SGI IRIX 6.3
=============================================================================
If you want to use lprsrv, then you must make lpsched stop binding to the lpd
port. To do this, add -nobsd to the line in /etc/init.d/lp that starts
lpsched.
=============================================================================
Notes for HP-UX 10.20
=============================================================================
When the xwin responder pops up an xterm with a message in it, you may find
that the close button does not work. This is apparently due to a bug in
xterm.
If this happens to you, you might want to install Tcl/Tk and the xmessage
script described in the "X-Windows" section of this document.
It is reported that CAP60 AppleTalk support works.
=============================================================================
Notes for ULTRIX
=============================================================================
This port is still inmature, so there are still problems.
The /bin/sh supplied with this system is very old. It does not support
shell functions. Fortunately, a more modern shell is supplied as /bin/sh5.
The Configure script uses shell functions. So, to run it you must use
the command "sh5 Configure" rather than "./Configure".
This operating system may be missing the header files and
. If so, try the following:
Link sys/bitypes.h to types.h and made a dummy sys/cdefs.h:
#define __BEGIN_DECLS
#define __P(x) x
#define __END_DECLS
You may also notice that compiling with GCC is not an option. If one does,
seteuid() and setegid() don't work correctly. (They don't work perfectly
with the bundled compiler either, but they are better.) Presumably there
is a way to fix this.
The bundled compiler may have trouble compiling the Flex generated PPD
file lexers. If it does, do "make veryclean" in the /pprdrv/ and /papsrv/
directories. After this is done, the lexer code will be re-generated with
Lex. Using Lex should be avoided because Lex generated lexers may not work
correctly with *Include: in PPD files.
=============================================================================
Notes for MS-Windows NT 4.0 and UWIN 2.0
=============================================================================
This port is new, so there are still problems. These instructions are
out-of-date.
You will probably have to use the GUI tools to create the user "ppr". Since
NT does not allow a group with the same name, after running Configure, you
will have to edit Makefile.conf and change GROUP_PPR to something else
and uncomment the line below its definition.
=============================================================================
Notes for MS-Windows NT 4.0 and Cygwin
=============================================================================
This port is barely functional or non-functional. You will probably have to
make some adjustments to the section in sysdep.h or Makefile.conf. The install
may also require some manual intervention. This is not for the
inexperienced user!
=============================================================================
Notes X-Windows
=============================================================================
If your X-Windows distribution does not include xmessage, but you have Tcl/Tk,
then you can install the xmessage clone from the misc/ directory. You should
probably put it in the /usr/bin/X11 directory. This script is not a perfect
clone but it is good enough for PPR's purposes
=============================================================================
Simple Compiling Instructions
=============================================================================
1) Unpack the PPR source archive in a suitable place.
"/usr/local/src" is good. You can do this with these commands:
mkdir /usr/local/src
cd /usr/local/src
gunzip -c ppr-1.51.tar.gz | tar xvf -
Or if you have GNU Tar, you can change the last command to:
tar zxvf ppr-1.51.tar.gz
2) Change directory to "ppr-1.51" and run "./Configure". Answer the questions.
3) Run "make".
4) Run "make install" as root.
If you have problems building PPR and want to delve into the Makefiles, you
should probably read docs/misc/PORTING.txt first.
============================================================================
Hacking Without Being Root
============================================================================
Note that if you start hacking PPR, you won't always need to run "make
install" as root. The first time it runs it will create a user called
"ppr". If you subsequently do "chmod -R ppr:ppr ppr-1.51" to set the
ownership of the source directory, you can work in it as the user "ppr",
make changes, and do "make install" as that user. However if you edit a few
specific things such as a setuid root program or the init script, "make
install" will stop and tell you that it needs to be run as root (at least in
that one directory).
============================================================================
Making Binary Distributions
============================================================================
If you are compiling a binary distribution of PPR, such as an RPM, you can
use the variable RPM_BUILD_ROOT to control where "make install" installs
PPR. If this environment variable is set, then its contents will be
prepended to all install paths. The sample ppr.spec uses this feature.
For example, here are commands to build a tar archive binary distribution
from a configured and built PPR source directory:
$ mkdir /tmp/ppr-binary
$ make RPM_BUILD_ROOT=/tmp/ppr-binary install
$ cd /tmp/ppr-binary
$ tar zcvf ../ppr-binary.tar.gz .
An RPM spec file (called ppr.spec) can be found in the top-level source
directory.
============================================================================
Upgrading to PPR 1.51 from previous versions
============================================================================
This is a list of important changes you should be aware of when upgrading
from a prevous version of PPR such as 1.4x.
I have tried to list the changes from newest to oldest. You can stop
reading the information no longer applies to the version you are upgrading
from.
As much as possible, the make install will try to upgrade an existing
installation automatically, however some things might have to be fixed
manually. This section will at least give you some idea of what make
install will be doing.
*) Version 1.50 and late use a slightly different queue file format from
version 1.44. You should empty the queues before upgrading.
*) With version 1.50 and later, the configuration file generated by
./Configure is in the top level directory and is called "Makefile.conf".
Previously it was makeprogs/global.mk.
*) The gs* printer interface programs are being phased in in favour of a new
mechanism in which pprdrv takes care of running Ghostscript. The PPD files
supplied with PPR with names ending in "Ghostscript" invoke this new
mechanism even if you are still using a gs* interface. (The gs* interface
will see that it is not being fed PostScript and will refrain from invoking
Ghostscript itself.) It is recomended that you stop using the gs*
interfaces.
*) The version 1.50 uprint.conf file format contains settings which indicate
whether or not System V LP and BSD LPR are installed and should be used by
programs such as uprint-lpr and uprint-lp. You should compare
uprint.conf.sample and uprint.conf and merge the changes.
*) The defaults which the ./Configure script uses for the install
directories changed with version 1.41. Formerly PPR was installed in
/usr/ppr, /etc/ppr, and /var/spool/ppr. Now it is installed in
/usr/lib/ppr, /usr/share/ppr, /etc/ppr, and /var/spool/ppr. This change
was made in order to conform to the File System Hierarcy Standard.
If you are upgrading from an earlier version of PPR, you may wish to manually
enter the old directory locations. Alternatively, you can rename /usr/ppr
to /usr/ppr_old (so you won't later mistakenly look for something there) and
then move /usr/ppr/speach (if you have it installed) to /usr/share/ppr/speach.
You should also change the PPR home directory to /usr/lib/ppr and move anything
else you put in /usr/ppr (such as PPD files, .k5login, .profile, etc.) into
either /usr/lib/ppr or /usr/share/ppr.
============================================================================
End of instructions for compiling PPR
============================================================================