============================================================================ 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 ============================================================================