Commit 4a1efbc1 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Installation notes for v6.5.

Generated from install.sgml and installation.sgml.
parent 5541abee
PostgreSQL Installation Guide PostgreSQL Installation Guide
by The PostgreSQL Development Team by The PostgreSQL Development Team
Edited by Thomas Lockhart Edited by Thomas Lockhart
PostgreSQL is copyright (C) 1998 PostgreSQL is 1996-9 by the Postgres Global Development Group.
by the Postgres Global Development Group.
Table of Contents Table of Contents
...@@ -21,12 +17,6 @@ Table of Contents ...@@ -21,12 +17,6 @@ Table of Contents
Playing with Postgres Playing with Postgres
The Next Step The Next Step
Porting Notes Porting Notes
Ultrix4.x
Linux
Linux ELF
Linux a.out
BSD/OS
NeXT
4. Configuration Options 4. Configuration Options
Parameters for Configuration (configure) Parameters for Configuration (configure)
Parameters for Building (make) Parameters for Building (make)
...@@ -38,8 +28,9 @@ Table of Contents ...@@ -38,8 +28,9 @@ Table of Contents
Installation Installation
Operation Operation
5. Release Notes 5. Release Notes
Release 6.4 Release 6.5
Migration to v6.4 Migration to v6.5
Multi-Version Concurrency Control
Detailed Change List Detailed Change List
List of Tables List of Tables
...@@ -71,10 +62,11 @@ Chapter 1. Introduction ...@@ -71,10 +62,11 @@ Chapter 1. Introduction
Chapter 2. Ports Chapter 2. Ports
This manual describes version 6.4 of Postgres. The This manual describes version 6.5 of Postgres. The
Postgres developer community has compiled and tested Postgres developer community has compiled and tested
Postgres on a number of platforms. Check the web site Postgres on a number of platforms. Check the web site
for the latest information. (http://www.postgresql.org/docs/admin/ports.htm) for
the latest information.
Currently Supported Platforms Currently Supported Platforms
...@@ -83,65 +75,88 @@ Currently Supported Platforms ...@@ -83,65 +75,88 @@ Currently Supported Platforms
Table 2-1. Supported Platforms Table 2-1. Supported Platforms
OS Processor Version Reported Remarks OS Processor Version Reported Remarks
AIX 4.2.1 RS6000 v6.4 1998-10-27 (Andreas Zeugswetter) AIX 4.3.2 RS6000 v6.5 1999-05-26 (Andreas Zeugswetter
BSDI x86 v6.4 1998-10-25 (Bruce Momjian (mailto:Andreas.Zeugswetter@telecom.at))
FreeBSD x86 v6.4 1998-10-26 (Tatsuo Ishii, Marc BSDI x86 v6.5 1999-05-25 (Bruce Momjian
2.2.x-3.x Fournier) (mailto:maillist@candle.pha.pa.us)
DGUX 5.4R4.11 m88k v6.3 1998-03-01 v6.4 probably OK. Needs FreeBSD x86 v6.5 1999-05-25 (Tatsuo Ishii
new maintainer. (Brian E 2.2.x-4.0 (mailto:t-ishii@sra.co.jp),
Gallew) Marc Fournier
Digital Unix Alpha v6.4 1998-10-29 Minor patchable problems (mailto:scrappy@hub.org))
4.0 (Pedro J. Lobo) DGUX m88k v6.3 1998-03-01 v6.4 probably OK. Needs new
HPUX PA-RISC v6.4 1998-10-25 Both 9.0x and 10.20 5.4R4.11 maintainer. (Brian E Gallew
(Tom Lane, Stan Brown) (mailto:geek+@cmu.edu))
IRIX 6.x MIPS v6.3 1998-03-01 5.x is different (Andrew Digital Alpha v6.4 1998-10-29 Minor patchable problems
Martin) Unix 4.0 (Pedro J. Lobo
linux 2.0.x Alpha v6.3.2 1998-04-16 Mostly successful. Needs (mailto:pjlobo@euitt.upm.es))
work for v6.4. (Ryan HPUX PA-RISC v6.4 1998-10-25 Both 9.0x and 10.20 (Tom Lane
Kirkpatrick) (mailto:tgl@sss.pgh.pa.us),
linux 2.0.x x86 v6.4 1998-10-27 (Thomas Lockhart) Stan Brown
linux x86 v6.4 1998-10-25 (Oliver Elphick, Taral) (mailto:stanb@awod.com))
2.0.x/glibc2 IRIX 6.5 MIPS v6.4 1998-12-29 IRIX 5.x is different (Mark Dalphin
linux 2.0.x Sparc v6.4 1998-10-25 (Tom Szybist) (mdalphin@amgen.com))
linuxPPC PPC603e v6.4 1998-10-26 Powerbook 2400c (Tatsuo linux Alpha v6.3.2 1998-04-16 Mostly successful. Needs
2.1.24 Ishii) 2.0.x work for v6.4. (Ryan Kirkpatrick
mklinux DR3 PPC750 v6.4 1998-09-16 PowerMac 7600 (Tatsuo (mailto:rkirkpat@nag.cs.colorado.edu))
Ishii) linux x86 v6.4 1998-10-27 (Thomas Lockhart
NetBSD/i386 x86 v6.4 1998-10-25 (Brook Milligan) 2.0.x/libc5 (mailto:lockhart@alumni.caltech.edu))
1.3.2 linux x86 v6.5 1999-05-24 (Thomas Lockhart
NetBSD- NS32532 v6.4 1998-10-27 (small problems in 2.0.x/glibc (mailto:lockhart@alumni.caltech.edu))
current date/time math linux MIPS v6.4 1998-12-16 Cobalt Qube (Tatsuo Ishii
(Jon Buller) 2.0.x (mailto:t-ishii@sra.co.jp))
NetBSD/sparc Sparc v6.4 1998-10-27 (Tom I Helbekkmo) linux Sparc v6.4 1998-10-25 (Tom Szybist
1.3H 2.0.x (mailto:szybist@boxhill.com))
NetBSD 1.3 VAX v6.3 1998-03-01 (Tom I Helbekkmo) linuxPPC PPC603e v6.4 1998-10-26 Powerbook 2400c (Tatsuo Ishii
SCO UnixWare x86 v6.3 1998-03-01 aka UNIVEL (Billy G. 2.1.24 (mailto:t-ishii@sra.co.jp))
2.x Allie) mklinux DR3 PPC750 v6.4 1998-09-16 PowerMac 7600 (Tatsuo Ishii
SCO UnixWare x86 v6.4 1998-10-04 (Billy G. Allie) (mailto:t-ishii@sra.co.jp))
7 NetBSD arm32 v6.5 1999-04-14 (Andrew McMurry
Solaris x86 v6.4 1998-10-28 (Marc Fournier) (mailto:a.mcmurry1@physics.oxford.ac.uk))
Solaris Sparc v6.4 1998-10-28 (Tom Szybist, Frank NetBSD/i3- x86 v6.4 1998-10-25 (Brook Milligan
2.6-2.7 Ridderbusch) 86 1.3.2 (mailto:brook@trillium.NMSU.Edu))
SunOS 4.1.4 Sparc v6.3 1998-03-01 patches submitted (Tatsuo NetBSD m68k v6.4.2 1998-12-28 Mac SE/30 (Mr. Mutsuki
Ishii) Nakajima, Tatsuo Ishii
SVR4 MIPS v6.4 1998-10-28 no 64-bit int support (mailto:t-ishii@sra.co.jp))
(Frank Ridderbusch) NetBSD- NS32532 v6.4 1998-10-27 small problems in date/time
SVR4 4.4 m88k v6.2.1 1998-03-01 confirmed with patching current math (Jon Buller
(Doug Winterburn) (mailto:jonb@metronet.com))
Windows NT x86 v6.4 1998-10-08 Mostly working with the NetBSD/sp- Sparc v6.4 1998-10-27 (Tom I Helbekkmo
Cygwin library. No DLLs arc 1.3H (mailto:tih@hamartun.priv.no))
yet. (Horak Daniel) NetBSD 1.3 VAX v6.3 1998-03-01 (Tom I Helbekkmo
(mailto:tih@hamartun.priv.no))
SCO x86 v6.5 1999-05-25 (Andrew Merrill
Platforms listed for v6.3.x should also work with OpenServer 5 (mailto:andrew@compclass.com))
v6.4, but we did not receive confirmation of such at SCO x86 v6.5 1999-05-25 (Andrew Merrill
the time this list was compiled. UnixWare 7 (mailto:andrew@compclass.com))
Solaris x86 v6.4 1998-10-28 (Marc Fournier
(mailto:scrappy@hub.org))
Solaris Sparc v6.4 1998-10-28 (Tom Szybist
2.6-2.7 (mailto:szybist@boxhill.com),
Frank Ridderbusch
(mailto:ridderbusch.pad@sni.de))
SunOS Sparc v6.3 1998-03-01 Patches submitted (Tatsuo Ishii
4.1.4 (mailto:t-ishii@sra.co.jp))
SVR4 MIPS v6.4 1998-10-28 No 64-bit int compiler
support (Frank Ridderbusch
(mailto:ridderbusch.pad@sni.de))
Windows x86 v6.4 1999-01-06 Client-side libraries or
ODBC/JDBC. No server yet.
(Magnus Hagander
(mha@sollentuna.net)
Windows NT x86 v6.5 1999-05-26 Working with the Cygwin
library. (Daniel Horak
(mailto:Dan.Horak@email.cz))
Platforms listed for v6.3.x and v6.4.x should also
work with v6.5, but we did not receive explicit
confirmation of such at the time this list was
compiled.
Note: For Windows NT, the server-side port of Note: For Windows NT, the server-side port of
Postgres has recently been accomplished. Check the Postgres has recently been accomplished. The
Askesis Postgres Home Page for up to date Cygnus library is required to compile it.
information. You may also want to look for
possible patches on the Postgres web site.
Unsupported Platforms Unsupported Platforms
...@@ -152,39 +167,37 @@ Unsupported Platforms ...@@ -152,39 +167,37 @@ Unsupported Platforms
Table 2-2. Possibly Incompatible Platforms Table 2-2. Possibly Incompatible Platforms
OS Processor Version Reported Remarks OS Processor Version Reported Remarks
MacOS all v6.3 1998-03-01 not library compatible; MacOS all v6.3 1998-03-01 Not library compatible;
use ODBC/JDBC use ODBC/JDBC
NetBSD arm32 v6.3 1998-03-01 not yet working (Dave NextStep x86 v6.x 1998-03-01 Client-only support;
Millen)
NetBSD m68k v6.3 1998-03-01 Amiga, HP300, Mac; not
yet working (Henry Hotz)
NextStep x86 v6.x 1998-03-01 client-only support;
v1.0.9 worked with v1.0.9 worked with
patches (David Wetzel) patches (David Wetzel
Ultrix MIPS,VAX? v6.x 1998-03-01 no recent reports; (mailto:dave@turbocat.de))
obsolete? SVR4 4.4 m88k v6.2.1 1998-03-01 Confirmed with patching;
Windows x86 v6.3 1998-03-01 not library compatible; v6.4.x will need TAS
client side maybe; use spinlock code (Doug Winterburn
ODBC/JDBC (mailto:dlw@seavme.xroads.com))
Ultrix MIPS,VAX? v6.x 1998-03-01 No recent reports; obsolete?
Note that Windows ports of the frontend are
apparently possible using third-party Posix porting
tools and libraries.
Chapter 3. Installation Chapter 3. Installation
Complete installation instructions for Postgres v6.4. Complete installation instructions for Postgres
v6.5.
Before installing Postgres, you may wish to visit Before installing Postgres, you may wish to visit
www.postgresql.org for up to date information, www.postgresql.org (http://www.postgresql.org) for up
patches, etc. to date information, patches, etc.
These installation instructions assume: These installation instructions assume:
o Commands are Unix-compatible. See note below. o Commands are Unix-compatible. See note below.
o Defaults are used except where noted. o Defaults are used except where noted.
o User postgres is the Postgres superuser. o User postgres is the Postgres superuser.
o The source path is /usr/src/pgsql (other paths are possible). o The source path is /usr/src/pgsql (other paths are possible).
o The runtime path is /usr/local/pgsql (other paths are possible). o The runtime path is /usr/local/pgsql (other paths are possible).
Commands were tested on RedHat Linux version 4.2
Commands were tested on RedHat Linux version 5.2
using the tcsh shell. Except where noted, they will using the tcsh shell. Except where noted, they will
probably work on most systems. Commands like ps and probably work on most systems. Commands like ps and
tar may vary wildly between platforms on what options tar may vary wildly between platforms on what options
...@@ -200,9 +213,10 @@ Chapter 3. Installation ...@@ -200,9 +213,10 @@ Chapter 3. Installation
Requirements to Run Postgres Requirements to Run Postgres
Up to date information on supported platforms is at Up to date information on supported platforms is at
http://www.postgresql.org/docs/admin/install.htm. In http://www.postgresql.org/docs/admin/install.htm
general, most Unix-compatible platforms with modern (http://www.postgresql.org/docs/admin/install.htm).
libraries should be able to run Postgres. In general, most Unix-compatible platforms with
modern libraries should be able to run Postgres.
Although the minimum required memory for running Although the minimum required memory for running
Postgres is as little as 8MB, there are noticable Postgres is as little as 8MB, there are noticable
improvements in runtimes for the regression tests improvements in runtimes for the regression tests
...@@ -229,13 +243,13 @@ Requirements to Run Postgres ...@@ -229,13 +243,13 @@ Requirements to Run Postgres
$ df -k $ df -k
Installation Procedure
Procedure 3.1. Postgres Installation
Installation Procedure
Postgres Installation
For a fresh install or upgrading from previous For a fresh install or upgrading from previous
releases of Postgres: releases of Postgres:
1. Read any last minute information and platform 1. Read any last minute information and platform
specific porting notes. There are some platform specific porting notes. There are some platform
specific notes at the end of this file for specific notes at the end of this file for
...@@ -257,32 +271,27 @@ Installation Procedure ...@@ -257,32 +271,27 @@ Installation Procedure
current release due to minor problems. Any such current release due to minor problems. Any such
known problems and their solutions will be posted known problems and their solutions will be posted
in ftp://ftp.postgresql.org/pub/INSTALL. in ftp://ftp.postgresql.org/pub/INSTALL.
2. Create the Postgres superuser account (postgres is 2. Create the Postgres superuser account (postgres is
commonly used) if it does not already exist. commonly used) if it does not already exist.
The owner of the Postgres files can be any The owner of the Postgres files can be any
unprivileged user account. It must not be root, unprivileged user account. It must not be root,
bin, or any other account with special access bin, or any other account with special access
rights, as that would create a security risk. rights, as that would create a security risk.
3. Log in to the Postgres superuser account. Most of 3. Log in to the Postgres superuser account. Most of
the remaining steps in the installation will the remaining steps in the installation will
happen in this account. happen in this account.
4. Ftp file 4. Ftp file
ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz ftp://ftp.postgresql.org/pub/postgresql-v6.5.tar.gz
from the Internet. Store it in your home directory. from the Internet. Store it in your home directory.
5. Some platforms use flex. If your system uses flex 5. Some platforms use flex. If your system uses flex
then make sure you have a good version. To check, then make sure you have a good version. To check,
type type
$ flex --version $ flex --version
If the flex command is not found then you
If the flex command is not found then you probably probably do not need it. If the version is 2.5.2
do not need it. If the version is 2.5.2 or 2.5.4 or 2.5.4 or greater then you are okay. If it is
or greater then you are okay. If it is 2.5.3 or 2.5.3 or before 2.5.2 then you will have to
before 2.5.2 then you will have to upgrade flex. upgrade flex. You may get it at
You may get it at
ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz. ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz.
If you need flex and don't have it or have the If you need flex and don't have it or have the
wrong version, then you will be told so when you wrong version, then you will be told so when you
...@@ -316,7 +325,6 @@ Installation Procedure ...@@ -316,7 +325,6 @@ Installation Procedure
/usr/bin/flex, /usr/lib/libfl.a, /usr/bin/flex, /usr/lib/libfl.a,
/usr/include/FlexLexer.h and will add a link /usr/include/FlexLexer.h and will add a link
/usr/bin/flex++ which points to flex. /usr/bin/flex++ which points to flex.
6. If you are not upgrading an existing system then 6. If you are not upgrading an existing system then
skip to step 9. If you are upgrading an existing skip to step 9. If you are upgrading an existing
system then back up your database. For alpha- and system then back up your database. For alpha- and
...@@ -327,22 +335,22 @@ Installation Procedure ...@@ -327,22 +335,22 @@ Installation Procedure
from previous releases. It is therefore a bad idea from previous releases. It is therefore a bad idea
to skip this step. to skip this step.
Tip: Do not use the pg_dumpall script from v6.0 or Tip: Do not use the pg_dumpall script from v6.0
everything will be owned by the Postgres super or everything will be owned by the Postgres
user. super user.
To dump your fairly recent post-v6.0 database To dump your fairly recent post-v6.0 database
installation, type installation, type
$ pg_dumpall -z > db.out $ pg_dumpall > db.out
To use the latest pg_dumpall script on your To use the latest pg_dumpall script on your
existing older database before upgrading Postgres, existing older database before upgrading Postgres,
pull the most recent version of pg_dumpall from pull the most recent version of pg_dumpall from
the new distribution: the new distribution:
$ cd $ cd
$ gunzip -c postgresql-v6.4.tar.gz \ $ gunzip -c postgresql-v6.5.tar.gz \
| tar xvf - src/bin/pg_dump/pg_dumpall | tar xvf - src/bin/pg_dump/pg_dumpall
$ chmod a+x src/bin/pg_dump/pg_dumpall $ chmod a+x src/bin/pg_dump/pg_dumpall
$ src/bin/pg_dump/pg_dumpall -z > db.out $ src/bin/pg_dump/pg_dumpall > db.out
$ rm -rf src $ rm -rf src
If you wish to preserve object id's (oids), then If you wish to preserve object id's (oids), then
use the -o option when running pg_dumpall. use the -o option when running pg_dumpall.
...@@ -379,7 +387,6 @@ Installation Procedure ...@@ -379,7 +387,6 @@ Installation Procedure
of processes. Type the following line, with pid of processes. Type the following line, with pid
replaced by the process id for process postmaster. replaced by the process id for process postmaster.
(Do not use the id for process "grep postmaster".) (Do not use the id for process "grep postmaster".)
Type Type
$ kill pid $ kill pid
to actually stop the process. to actually stop the process.
...@@ -406,15 +413,14 @@ Installation Procedure ...@@ -406,15 +413,14 @@ Installation Procedure
$ cd /usr/local $ cd /usr/local
$ mv pgsql pgsql_6_0 $ mv pgsql pgsql_6_0
$ exit $ exit
If you are not using /usr/local/pgsql/data as your If you are not using /usr/local/pgsql/data as
data directory (check to see if environment your data directory (check to see if environment
variable PGDATA is set to something else) then you variable PGDATA is set to something else) then you
will also want to move this directory in the same will also want to move this directory in the same
manner. manner.
9. Make new source and install directories. The 9. Make new source and install directories. The
actual paths can be different for your actual paths can be different for your
installation but you must be consistant throughout installation but you must be consistent throughout
this procedure. this procedure.
Note: There are two places in this installation Note: There are two places in this installation
...@@ -422,7 +428,7 @@ Installation Procedure ...@@ -422,7 +428,7 @@ Installation Procedure
specify installation locations for programs, specify installation locations for programs,
libraries, documentation, and other files. libraries, documentation, and other files.
Usually it is sufficient to specify these at the Usually it is sufficient to specify these at the
make install stage of installation. gmake install stage of installation.
Type Type
$ su $ su
...@@ -435,7 +441,7 @@ Installation Procedure ...@@ -435,7 +441,7 @@ Installation Procedure
$ exit $ exit
10. Unzip and untar the new source file. Type 10. Unzip and untar the new source file. Type
$ cd /usr/src/pgsql $ cd /usr/src/pgsql
$ gunzip -c ~/postgresql-v6.4.tar.gz | tar xvf - $ gunzip -c ~/postgresql-v6.5.tar.gz | tar xvf -
11. Configure the source code for your system. It 11. Configure the source code for your system. It
is this step at which you can specify your actual is this step at which you can specify your actual
installation path for the build process (see the installation path for the build process (see the
...@@ -455,9 +461,10 @@ Installation Procedure ...@@ -455,9 +461,10 @@ Installation Procedure
Please Report Problems: If your system is not Please Report Problems: If your system is not
automatically recognized by configure and automatically recognized by configure and
you have to do this, please send email to you have to do this, please send email to
scrappy@hub.org with the output of the scrappy@hub.org (mailto:scrappy@hub.org)
program ./config.guess. Indicate what the with the output of the program
template file should be. ./config.guess. Indicate what the template
file should be.
b. Choose configuration options. Check b. Choose configuration options. Check
Configuration Options for details. However, Configuration Options for details. However,
...@@ -472,7 +479,8 @@ Installation Procedure ...@@ -472,7 +479,8 @@ Installation Procedure
configuration. To see them all, type configuration. To see them all, type
./configure --help ./configure --help
Some of the more commonly used ones are: Some of the more commonly used ones are:
--prefix=BASEDIR Selects a different base directory --prefix=BASEDIR Selects a different base directory for the
installation of the Postgres configuration.
The default is /usr/local/pgsql. The default is /usr/local/pgsql.
--with-template=TEMPLATE --with-template=TEMPLATE
Use template file TEMPLATE - the template Use template file TEMPLATE - the template
...@@ -485,8 +493,7 @@ Installation Procedure ...@@ -485,8 +493,7 @@ Installation Procedure
--enable-hba Enables Host Based Authentication (DEFAULT) --enable-hba Enables Host Based Authentication (DEFAULT)
--disable-hba Disables Host Based Authentication --disable-hba Disables Host Based Authentication
--enable-locale Enables USE_LOCALE --enable-locale Enables USE_LOCALE
--enable-cassert Enables --enable-cassert Enables ASSERT_CHECKING
ASSERT_CHECKING
--with-CC=compiler --with-CC=compiler
Use a specific C compiler that the configure Use a specific C compiler that the configure
script cannot find. script cannot find.
...@@ -496,7 +503,8 @@ Installation Procedure ...@@ -496,7 +503,8 @@ Installation Procedure
script cannot find, or exclude C++ compilation script cannot find, or exclude C++ compilation
altogether. (This only affects libpq++ at altogether. (This only affects libpq++ at
present.) present.)
c. Here is the configure script used on a Sparc Solaris 2.5 system with /opt/postgres c. Here is the configure script used on a Sparc
Solaris 2.5 system with /opt/postgres
specified as the installation base directory: specified as the installation base directory:
$ ./configure --prefix=/opt/postgres \ $ ./configure --prefix=/opt/postgres \
--with-template=sparc_solaris-gcc --with-template=sparc_solaris-gcc
...@@ -512,16 +520,14 @@ Installation Procedure ...@@ -512,16 +520,14 @@ Installation Procedure
The documentation is also available in Postscript The documentation is also available in Postscript
format. Look for files ending with .ps.gz in the format. Look for files ending with .ps.gz in the
same directory. same directory.
13. Compile the program. Type
13. <removed>
14. Compile the program. Type
$ cd /usr/src/pgsql/src $ cd /usr/src/pgsql/src
$ gmake all >& make.log & $ gmake all >& make.log &
$ tail -f make.log $ tail -f make.log
The last line displayed will hopefully be The last line displayed will hopefully be
All of PostgreSQL is successfully made. Ready to All of PostgreSQL is successfully made. Ready to
install. install.
Remember, ?gmake? may be called ?make? on your system.
At this point, or earlier if you wish, type At this point, or earlier if you wish, type
control-C to get out of tail. (If you have control-C to get out of tail. (If you have
problems later on you may wish to examine file problems later on you may wish to examine file
...@@ -535,7 +541,7 @@ Installation Procedure ...@@ -535,7 +541,7 @@ Installation Procedure
the flex command cannot be found then install flex the flex command cannot be found then install flex
as described earlier. Next, change directory back as described earlier. Next, change directory back
to this directory, type to this directory, type
$ make clean $ gmake clean
then recompile again. then recompile again.
Compiler options, such as optimization and Compiler options, such as optimization and
debugging, may be specified on the command line debugging, may be specified on the command line
...@@ -544,8 +550,7 @@ Installation Procedure ...@@ -544,8 +550,7 @@ Installation Procedure
would invoke your compiler's -g option in all would invoke your compiler's -g option in all
steps of the build. See src/Makefile.global.in for steps of the build. See src/Makefile.global.in for
further details. further details.
14. Install the program. Type
15. Install the program. Type
$ cd /usr/src/pgsql/src $ cd /usr/src/pgsql/src
$ gmake install >& make.install.log & $ gmake install >& make.install.log &
$ tail -f make.install.log $ tail -f make.install.log
...@@ -553,9 +558,9 @@ Installation Procedure ...@@ -553,9 +558,9 @@ Installation Procedure
gmake[1]: Leaving directory gmake[1]: Leaving directory
`/usr/src/pgsql/src/man' `/usr/src/pgsql/src/man'
At this point, or earlier if you wish, type At this point, or earlier if you wish, type
control-C to get out of tail. control-C to get out of tail. Remember, ?gmake? may
be called ?make? on your system.
16. If necessary, tell your system how to find 15. If necessary, tell your system how to find
the new shared libraries. You can do one of the the new shared libraries. You can do one of the
following, preferably the first: following, preferably the first:
a. As root, edit file /etc/ld.so.conf. Add a a. As root, edit file /etc/ld.so.conf. Add a
...@@ -577,8 +582,7 @@ Installation Procedure ...@@ -577,8 +582,7 @@ Installation Procedure
pg_id: can't load library 'libpq.so' pg_id: can't load library 'libpq.so'
then the above step was necessary. Simply do this then the above step was necessary. Simply do this
step, then try to create the database again. step, then try to create the database again.
16. If you used the --with-perl option to
17. If you used the --with-perl option to
configure, check the install log to see whether configure, check the install log to see whether
the Perl module was actually installed. If you've the Perl module was actually installed. If you've
followed our advice to make the Postgres files be followed our advice to make the Postgres files be
...@@ -591,7 +595,8 @@ Installation Procedure ...@@ -591,7 +595,8 @@ Installation Procedure
$ cd /usr/src/pgsql/src/interfaces/perl5 $ cd /usr/src/pgsql/src/interfaces/perl5
$ gmake install $ gmake install
18. If it has not already been done, then prepare
17. If it has not already been done, then prepare
account postgres for using Postgres. Any account account postgres for using Postgres. Any account
that will use Postgres must be similarly prepared. that will use Postgres must be similarly prepared.
There are several ways to influence the runtime There are several ways to influence the runtime
...@@ -602,6 +607,7 @@ Installation Procedure ...@@ -602,6 +607,7 @@ Installation Procedure
bash/sh shell. Adapt accordingly for other bash/sh shell. Adapt accordingly for other
shells. shells.
a. Add the following lines to your login a. Add the following lines to your login
environment: shell, ~/.bash_profile: environment: shell, ~/.bash_profile:
PATH=$PATH:/usr/local/pgsql/bin PATH=$PATH:/usr/local/pgsql/bin
...@@ -609,7 +615,9 @@ Installation Procedure ...@@ -609,7 +615,9 @@ Installation Procedure
PGLIB=/usr/local/pgsql/lib PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data PGDATA=/usr/local/pgsql/data
export PATH MANPATH PGLIB PGDATA export PATH MANPATH PGLIB PGDATA
b. Several regression tests could failed if the
b. Several regression tests could fail if the
user's locale collation scheme is different user's locale collation scheme is different
from that of standard C locale. from that of standard C locale.
If you configure and compile Postgres with If you configure and compile Postgres with
...@@ -622,19 +630,24 @@ Installation Procedure ...@@ -622,19 +630,24 @@ Installation Procedure
LC_CTYPE=C LC_CTYPE=C
LC_COLLATE=C LC_COLLATE=C
export LC_COLLATE LC_CTYPE LC_COLLATE export LC_COLLATE LC_CTYPE LC_COLLATE
c. Make sure that you have defined these c. Make sure that you have defined these
variables before continuing with the variables before continuing with the
remaining steps. The easiest way to do this remaining steps. The easiest way to do this
is to type: is to type:
$ source ~/.bash_profile $ source ~/.bash_profile
19. Create the database installation from your
18. Create the database installation from your
Postgres superuser account (typically account Postgres superuser account (typically account
postgres). Do not do the following as root! This postgres). Do not do the following as root! This
would be a major security hole. Type would be a major security hole. Type
$ initdb $ initdb
19. Set up permissions to access the database
20. Set up permissions to access the database
system. Do this by editing file system. Do this by editing file
/usr/local/pgsql/data/pg_hba.conf. The /usr/local/pgsql/data/pg_hba.conf. The
instructions are included in the file. (If your instructions are included in the file. (If your
...@@ -646,8 +659,7 @@ Installation Procedure ...@@ -646,8 +659,7 @@ Installation Procedure
later you can copy file pg_hba.conf from your old later you can copy file pg_hba.conf from your old
database on top of the one in your new database, database on top of the one in your new database,
rather than redoing the file from scratch. rather than redoing the file from scratch.
20. Briefly test that the backend will start and
21. Briefly test that the backend will start and
run by running it from the command line. run by running it from the command line.
a. Start the postmaster daemon running in the a. Start the postmaster daemon running in the
background by typing background by typing
...@@ -664,8 +676,7 @@ Installation Procedure ...@@ -664,8 +676,7 @@ Installation Procedure
f. Remove the test database (unless you will f. Remove the test database (unless you will
want to use it later for other tests): want to use it later for other tests):
$ destroydb $ destroydb
21. Run postmaster in the background from your
22. Run postmaster in the background from your
Postgres superuser account (typically account Postgres superuser account (typically account
postgres). Do not run postmaster from the root postgres). Do not run postmaster from the root
account! account!
...@@ -692,7 +703,7 @@ Installation Procedure ...@@ -692,7 +703,7 @@ Installation Procedure
o Edit file rc.local on NetBSD or file rc2.d on o Edit file rc.local on NetBSD or file rc2.d on
SPARC Solaris 2.5.1 to contain the following SPARC Solaris 2.5.1 to contain the following
single line: single line:
su postgres -c "/usr/local/pgsql/bin/postmaster su postgres -c "/usr/local/pgsql/bin/postmaster \
-S -D /usr/local/pgsql/data" -S -D /usr/local/pgsql/data"
o In FreeBSD 2.2-RELEASE edit o In FreeBSD 2.2-RELEASE edit
/usr/local/etc/rc.d/pgsql.sh to contain the /usr/local/etc/rc.d/pgsql.sh to contain the
...@@ -701,10 +712,10 @@ Installation Procedure ...@@ -701,10 +712,10 @@ Installation Procedure
#!/bin/sh #!/bin/sh
[ -x /usr/local/pgsql/bin/postmaster ] && { [ -x /usr/local/pgsql/bin/postmaster ] && {
su -l pgsql -c 'exec su -l pgsql -c 'exec
/usr/local/pgsql/bin/postmaster /usr/local/pgsql/bin/postmaster \
-D/usr/local/pgsql/data -D/usr/local/pgsql/data \
-S -o -F > /usr/local/pgsql/errlog' & -S -o -F > /usr/local/pgsql/errlog' \
echo -n ' pgsql' & echo -n ' pgsql'
} }
You may put the line breaks as shown above. The You may put the line breaks as shown above. The
shell is smart enough to keep parsing beyond shell is smart enough to keep parsing beyond
...@@ -719,14 +730,14 @@ Installation Procedure ...@@ -719,14 +730,14 @@ Installation Procedure
o In RedHat Linux edit file /etc/inittab to add the o In RedHat Linux edit file /etc/inittab to add the
following as a single line: following as a single line:
pg:2345:respawn:/bin/su - postgres -c pg:2345:respawn:/bin/su - postgres -c
"/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data "/usr/local/pgsql/bin/postmaster \
>> /usr/local/pgsql/server.log 2>&1 </dev/null" -D/usr/local/pgsql/data \
>> /usr/local/pgsql/server.log 2>&1 \
</dev/null"
(The author of this example says this example (The author of this example says this example
will revive the postmaster if it dies, but he will revive the postmaster if it dies, but he
doesn't know if there are other side effects.) doesn't know if there are other side effects.)
22. Run the regression tests. The file
23. Run the regression tests. The file
/usr/src/pgsql/src/test/regress/README has /usr/src/pgsql/src/test/regress/README has
detailed instructions for running and interpreting detailed instructions for running and interpreting
the regression tests. A short version follows the regression tests. A short version follows
...@@ -760,16 +771,8 @@ Installation Procedure ...@@ -760,16 +771,8 @@ Installation Procedure
it appears to be a significant issue. it appears to be a significant issue.
For example, For example,
o For a i686/Linux-ELF platform, no tests o For a i686/Linux-ELF platform, no tests
failed since this is the v6.4 regression failed since this is the v6.5 regression
testing reference platform. testing reference platform.
o For the SPARC/Linux-ELF platform, using the
970525 beta version of Postgres v6.2 the
following tests "failed": float8 and
geometry "failed" due to minor precision
differences in floating point numbers.
select_views produces massively different
output, but the differences are due to minor
floating point differences.
Even if a test result clearly indicates a Even if a test result clearly indicates a
real failure, it may be a localized problem real failure, it may be a localized problem
that will not affect you. An example is that that will not affect you. An example is that
...@@ -794,13 +797,12 @@ Installation Procedure ...@@ -794,13 +797,12 @@ Installation Procedure
tests. (You may want to save the tests. (You may want to save the
regression.diffs file in another place before regression.diffs file in another place before
doing this.) doing this.)
23. If you haven't already done so, this would be
24. If you haven't already done so, this would be
a good time to modify your computer to do regular a good time to modify your computer to do regular
maintainence. The following should be done at maintainence. The following should be done at
regular intervals: regular intervals:
Procedure 3.2. Minimal Backup Procedure Minimal Backup Procedure
1. Run the SQL command VACUUM. This will clean 1. Run the SQL command VACUUM. This will clean
up your database. up your database.
2. Back up your system. (You should probably 2. Back up your system. (You should probably
...@@ -808,14 +810,14 @@ Installation Procedure ...@@ -808,14 +810,14 @@ Installation Procedure
no one else should be using the system at the no one else should be using the system at the
time. time.
Ideally, the above tasks should be done by a shell Ideally, the above tasks should be done by a
script that is run nightly or weekly by cron. Look shell script that is run nightly or weekly by
at the man page for crontab for a starting point cron. Look at the man page for crontab for a
on how to do this. (If you do it, please e-mail us starting point on how to do this. (If you do it,
a copy of your shell script. We would like to set please e-mail us a copy of your shell script. We
up our own systems to do this too.) would like to set up our own systems to do this
too.)
25. If you are upgrading an existing system then 24. If you are upgrading an existing system then
reinstall your old database. Type reinstall your old database. Type
$ cd $ cd
$ psql -e template1 < db.out $ psql -e template1 < db.out
...@@ -834,19 +836,15 @@ Installation Procedure ...@@ -834,19 +836,15 @@ Installation Procedure
fact from an old syntax, but RevertPoly() is fact from an old syntax, but RevertPoly() is
provided to reverse the effects of a mis-applied provided to reverse the effects of a mis-applied
upgrade. upgrade.
25. If you are a new user, you may wish to play
26. If you are a new user, you may wish to play
with Postgres as described below. with Postgres as described below.
26. Clean up after yourself. Type
27. Clean up after yourself. Type $ rm -rf /usr/src/pgsql_6_5
$ rm -rf /usr/src/pgsql_6_0 $ rm -rf /usr/local/pgsql_6_5
$ rm -rf /usr/local/pgsql_6_0 # Also delete old database directory tree if it is not in
# Also delete old database directory tree if it is # /usr/local/pgsql_6_5/data
not in $ rm ~/postgresql-v6.5.tar.gz
# /usr/local/pgsql_6_0/data 27. You will probably want to print out the
$ rm ~/postgresql-v6.2.1.tar.gz
28. You will probably want to print out the
documentation. If you have a Postscript printer, documentation. If you have a Postscript printer,
or have your machine already set up to accept or have your machine already set up to accept
Postscript files using a print filter, then to Postscript files using a print filter, then to
...@@ -856,22 +854,25 @@ Installation Procedure ...@@ -856,22 +854,25 @@ Installation Procedure
Here is how you might do it if you have Here is how you might do it if you have
Ghostscript on your system and are writing to a Ghostscript on your system and are writing to a
laserjet printer. laserjet printer.
$ alias gshp='gs -sDEVICE=laserjet -r300 -dNOPAUSE' $ alias gshp='gs -sDEVICE=laserjet -r300
-dNOPAUSE'
$ export $ export
GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts
$ gunzip user.ps.gz $ gunzip user.ps.gz
$ gshp -sOUTPUTFILE=user.hp user.ps $ gshp -sOUTPUTFILE=user.hp user.ps
$ gzip user.ps $ gzip user.ps
$ lpr -l -s -r manpage.hp $ lpr -l -s -r manpage.hp
28. The Postgres team wants to keep Postgres
29. The Postgres team wants to keep Postgres
working on all of the supported platforms. We working on all of the supported platforms. We
therefore ask you to let us know if you did or did therefore ask you to let us know if you did or did
not get Postgres to work on you system. Please not get Postgres to work on you system. Please
send a mail message to pgsql-ports@postgresql.org send a mail message to pgsql-ports@postgresql.org
telling us the following: (mailto:pgsql-ports@postgresql.org) telling us the
o The version of Postgres (v6.4, 6.3.2, beta 981014, etc.). following:
o Your operating system (i.e. RedHat v5.1 Linux v2.0.34). o The version of Postgres (v6.5, 6.4.2, beta
981014, etc.).
o Your operating system (i.e. RedHat v5.1 Linux
v2.0.34).
o Your hardware (SPARC, i486, etc.). o Your hardware (SPARC, i486, etc.).
o Did you compile, install and run the regression o Did you compile, install and run the regression
tests cleanly? If not, what source code did you tests cleanly? If not, what source code did you
...@@ -879,7 +880,7 @@ Installation Procedure ...@@ -879,7 +880,7 @@ Installation Procedure
made, etc.), what tests failed, etc. It is normal made, etc.), what tests failed, etc. It is normal
to get many warning when you compile. You do not to get many warning when you compile. You do not
need to report these. need to report these.
30. Now create, access and manipulate databases 29. Now create, access and manipulate databases
as desired. Write client programs to access the as desired. Write client programs to access the
database server. In other words, enjoy! database server. In other words, enjoy!
...@@ -939,12 +940,12 @@ Playing with Postgres ...@@ -939,12 +940,12 @@ Playing with Postgres
foo=> \d bar foo=> \d bar
Table = bar Table = bar
+--------------+--------------+-------+ +--------------+---------------+-------+
| Field | Type | Length| | Field | Type | Length|
+--------------+--------------+-------+ +--------------+---------------+-------+
| i | int4 | 4 | | i | int4 | 4 |
| c | (bp)char | 16 | | c | (bp)char | 16 |
+--------------+--------------+-------+ +--------------+---------------+-------+
And so on. You get the idea. And so on. You get the idea.
...@@ -963,66 +964,20 @@ The Next Step ...@@ -963,66 +964,20 @@ The Next Step
Porting Notes Porting Notes
Note: Check for any platform-specific FAQs in the Check for any platform-specific FAQs in the doc/
doc/ directory of the source distribution. For directory of the source distribution.
some ports, the notes below may be out of date.
Ultrix4.x
Note: There have been no recent reports of Ultrix
usage with Postgres.
You need to install the libdl-1.1 package since
Ultrix 4.x doesn't have a dynamic loader. It's
available in
s2k-ftp.CS.Berkeley.EDU:pub/personal/andrew/libdl-1.-
1.tar.Z
Linux
Linux ELF
The regression test reference machine is a
linux-2.0.30/libc-5.3.12/RedHat-4.2 installation
running on a dual processor i686. The linux-elf port
installs cleanly. See the Linux FAQ for more details.
Linux a.out
For non-ELF Linux, the dld library MUST be obtained
and installed on the system. It enables dynamic link
loading capability to the Postgres port. The dld
library can be obtained from the sunsite linux
distributions. The current name is dld-3.2.5. Jalon
Q. Zimmerman
BSD/OS
For BSD/OS 2.0 and 2.01, you will need to get the GNU
dld library.
NeXT
The NeXT port for v1.09 was supplied by Tom R.
Hageman. It requires a SysV IPC emulation library and
header files for shared libary and semaphore stuff.
Tom just happens to sell such a product so contact
him for information. He has also indicated that
binary releases of Postgres for NEXTSTEP will be made
available to the general public. Contact Info@RnA.nl
for information.
We have no recent reports of successful NeXT
installations (as of v6.2.1). However, the
client-side libraries should work even if the backend
is not supported.
Chapter 4. Configuration Options Chapter 4. Configuration Options
Parameters for Configuration (configure) Parameters for Configuration (configure)
The full set of parameters available in configure can The full set of parameters available in configure
be obtained by typing can be obtained by typing
$ ./configure --help $ ./configure --help
The following parameters may be of interest to The following parameters may be of interest to
installers: installers:
...@@ -1046,32 +1001,35 @@ Parameters for Configuration (configure) ...@@ -1046,32 +1001,35 @@ Parameters for Configuration (configure)
--with-libs=incdir also search for libraries in DIR --with-libs=incdir also search for libraries in DIR
--with-libraries=libdir also search for libraries in DIR --with-libraries=libdir also search for libraries in DIR
--enable-locale enable locale support --enable-locale enable locale support
--enable-recode enable cyrillic recode --enable-recode enable cyrillic recode support
support
--with-mb=encoding enable multi-byte support --with-mb=encoding enable multi-byte support
--with-pgport=portnum change default startup port --with-pgport=portnum change default startup port
--with-tcl use tcl --with-maxbackends=n set default maximum number of
server processes
--with-tcl build Tcl interfaces and pgtclsh
--with-tclconfig=tcldir tclConfig.sh and tkConfig.sh are in DIR --with-tclconfig=tcldir tclConfig.sh and tkConfig.sh are in DIR
--with-perl use perl --with-perl build Perl interface
--with-odbc build ODBC driver package --with-odbc build ODBC driver package
--with-odbcinst=odbcdir change default directory for odbcinst.ini --with-odbcinst=odbcdir change default directory for odbcinst.ini
--enable-cassert enable assertion checks (debugging) --enable-cassert enable assertion checks (debugging)
--with-CC=compiler use specific C compiler --with-CC=compiler use specific C compiler
--with-CXX=compiler use specific C++ compiler --with-CXX=compiler use specific C++ compiler
--without-CXX do not build libpq++ --without-CXX prevent building C++ code
Some systems may have trouble building a specific Some systems may have trouble building a specific
feature of Postgres. For example, systems with a feature of Postgres. For example, systems with a
damaged C++ compiler may need to specify damaged C++ compiler may need to specify
--without-CXX to encourage the build procedure to --without-CXX to instruct the build procedure to skip
ignore the libpq++ construction. construction of libpq++.
Parameters for Building (make) Parameters for Building (make)
Many installation-related parameters can be set in Many installation-related parameters can be set in
the building stage of Postgres installation. the building stage of Postgres installation.
In most cases, these parameters should be place in a In most cases, these parameters should be placed in
file, Makefile.custom, intended just for that a file, Makefile.custom, intended just for that
purpose. The default distribution does not contain purpose. The default distribution does not contain
this optional file, so you will create it using a this optional file, so you will create it using a
text editor of your choice. When upgrading text editor of your choice. When upgrading
...@@ -1081,46 +1039,60 @@ Parameters for Building (make) ...@@ -1081,46 +1039,60 @@ Parameters for Building (make)
make [ variable=value [,...] ] make [ variable=value [,...] ]
A few of the many variables which can be specified A few of the many variables which can be specified
are: are:
POSTGRESDIR POSTGRESDIR
Top of the installation tree. Top of the installation tree.
BINDIR BINDIR
Location of applications and utilities. Location of applications and utilities.
LIBDIR LIBDIR
Location of object libraries, including shared Location of object libraries, including shared
libraries. libraries.
HEADERDIR HEADERDIR
Location of include files. Location of include files.
ODBCINST ODBCINST
Location of installation-wide psqlODBC (ODBC) Location of installation-wide psqlODBC (ODBC)
configuration file. configuration file.
There are other optional parameters which are not as There are other optional parameters which are not as
commonly used. Many of those listed below are commonly used. Many of those listed below are
appropriate when doing Postgres server code appropriate when doing Postgres server code
development. development.
CFLAGS CFLAGS
Set flags for the C compiler. Should be assigned Set flags for the C compiler. Should be assigned
with "+=" to retain relevant default parameters. with "+=" to retain relevant default parameters.
YFLAGS YFLAGS
Set flags for the yacc/bison parser. -v might be Set flags for the yacc/bison parser. -v might be
used to help diagnose problems building a new used to help diagnose problems building a new
parser. Should be assigned with "+=" to retain parser. Should be assigned with "+=" to retain
relevant default parameters. relevant default parameters.
USE_TCL USE_TCL
Enable Tcl interface building. Enable Tcl interface building.
HSTYLE HSTYLE
DocBook HTML style sheets for building the DocBook HTML style sheets for building the
documentation from scratch. Not used unless you documentation from scratch. Not used unless you
are developing new documentation from the are developing new documentation from the
DocBook-compatible SGML source documents in DocBook-compatible SGML source documents in
doc/src/sgml/. doc/src/sgml/.
PSTYLE PSTYLE
DocBook style sheets for building printed DocBook style sheets for building printed
documentation from scratch. Not used unless you documentation from scratch. Not used unless you
are developing new documentation from the are developing new documentation from the
DocBook-compatible SGML source documents in DocBook-compatible SGML source documents in
doc/src/sgml/. doc/src/sgml/.
Here is an example Makefile.custom for a PentiumPro Here is an example Makefile.custom for a PentiumPro
Linux system: Linux system:
...@@ -1132,14 +1104,20 @@ Parameters for Building (make) ...@@ -1132,14 +1104,20 @@ Parameters for Building (make)
# documentation # documentation
HSTYLE= /home/tgl/SGML/db118.d/docbook/html HSTYLE= /home/lockhart/SGML/db118.d/docbook/html
PSTYLE= /home/tgl/SGML/db118.d/docbook/print PSTYLE= /home/lockhart/SGML/db118.d/docbook/print
Locale Support Locale Support
Note: Written by Oleg Bartunov. See Oleg's web Note: Written by Oleg Bartunov. See Oleg's web
page for additional information on locale and page (http://www.sai.msu.su/~megera/postgres/) for
Russian language support. additional information on locale and Russian
language support.
While doing a project for a company in Moscow, While doing a project for a company in Moscow,
Russia, I encountered the problem that postgresql had Russia, I encountered the problem that postgresql had
...@@ -1159,7 +1137,6 @@ Locale Support ...@@ -1159,7 +1137,6 @@ Locale Support
incorporated into the Postgres distribution. incorporated into the Postgres distribution.
People often complain that locale doesn't work for People often complain that locale doesn't work for
them. There are several common mistakes: them. There are several common mistakes:
o Didn't properly configure postgresql before o Didn't properly configure postgresql before
compilation. You must run configure with compilation. You must run configure with
--enable-locale option to enable locale support. --enable-locale option to enable locale support.
...@@ -1173,10 +1150,13 @@ Locale Support ...@@ -1173,10 +1150,13 @@ Locale Support
export LC_CTYPE=koi8-r export LC_CTYPE=koi8-r
export LC_COLLATE=koi8-r export LC_COLLATE=koi8-r
postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o '-Fe' postmaster -B 1024 -S
-D/usr/local/pgsql/data/ -o '-Fe'
and run it from rc.local as and run it from rc.local as
/bin/su - postgres -c "/home/postgres/runpostgres" /bin/su - postgres -c
"/home/postgres/runpostgres"
o Broken locale support in OS (for example, locale o Broken locale support in OS (for example, locale
support in libc under Linux several times has support in libc under Linux several times has
...@@ -1192,11 +1172,11 @@ Locale Support ...@@ -1192,11 +1172,11 @@ Locale Support
LC_ALL = (unset), LC_ALL = (unset),
LC_CTYPE = "not_exist", LC_CTYPE = "not_exist",
LANG = (unset) LANG = (unset)
are supported and installed on your are supported and installed on your system.
system.
perl: warning: Falling back to the standard perl: warning: Falling back to the standard
locale ("C"). locale ("C").
o Wrong location of locale files! Possible locations o Wrong location of locale files! Possible locations
include: /usr/lib/locale (Linux, Solaris), include: /usr/lib/locale (Linux, Solaris),
/usr/share/locale (Linux), /usr/lib/nls/loc (DUX /usr/share/locale (Linux), /usr/lib/nls/loc (DUX
...@@ -1205,6 +1185,7 @@ Locale Support ...@@ -1205,6 +1185,7 @@ Locale Support
/usr/lib/locale and /usr/share/locale to be sure /usr/lib/locale and /usr/share/locale to be sure
that the next libc will not break my locale. that the next libc will not break my locale.
What are the Benefits? What are the Benefits?
You can use ~* and order by operators for strings You can use ~* and order by operators for strings
...@@ -1215,7 +1196,7 @@ What are the Benefits? ...@@ -1215,7 +1196,7 @@ What are the Benefits?
What are the Drawbacks? What are the Drawbacks?
There is one evident drawback of using locale - it's There is one evident drawback of using locale - its
speed! So, use locale only if you really need it. speed! So, use locale only if you really need it.
Kerberos Authentication Kerberos Authentication
...@@ -1226,11 +1207,12 @@ Kerberos Authentication ...@@ -1226,11 +1207,12 @@ Kerberos Authentication
Availability Availability
The Kerberos authentication system is not distributed The Kerberos authentication system is not
with Postgres. Versions of Kerberos are typically distributed with Postgres. Versions of Kerberos are
available as optional software from operating system typically available as optional software from
vendors. In addition, a source code distribution may operating system vendors. In addition, a source code
be obtained through MIT Project Athena. distribution may be obtained through MIT Project
Athena (ftp://athena-dist.mit.edu).
Note: You may wish to obtain the MIT version even Note: You may wish to obtain the MIT version even
if your vendor provides a version, since some if your vendor provides a version, since some
...@@ -1242,10 +1224,13 @@ Availability ...@@ -1242,10 +1224,13 @@ Availability
encryption code in Kerberos is restricted by U. S. encryption code in Kerberos is restricted by U. S.
Government export regulations. Government export regulations.
Inquiries regarding your Kerberos should be directed Inquiries regarding your Kerberos should be directed
to your vendor or MIT Project Athena. Note that FAQLs to your vendor or MIT Project Athena
(info-kerberos@athena.mit.edu). Note that FAQLs
(Frequently-Asked Questions Lists) are periodically (Frequently-Asked Questions Lists) are periodically
posted to the Kerberos mailing list (send mail to posted to the Kerberos mailing list
subscribe), and USENET news group. (mailto:kerberos@ATHENA.MIT.EDU) (send mail to
subscribe (mailto:kerberos-request@ATHENA.MIT.EDU)),
and USENET news group (news:comp.protocols.kerberos).
Installation Installation
...@@ -1282,266 +1267,327 @@ Operation ...@@ -1282,266 +1267,327 @@ Operation
canonicalized as in Version 4 (i.e., with all canonicalized as in Version 4 (i.e., with all
domain suffixes removed). domain suffixes removed).
Table 4-1. Kerberos Parameter Examples Table 4-1. Kerberos Parameter Examples
Param- Example Parameter Example
eter
user frew@S2K.ORG user frew@S2K.ORG
user aoki/HOST=miyu.S2K.Berkeley- user aoki/HOST=miyu.S2K.Berkel-
.EDU@S2K.ORG ey.EDU@S2K.ORG
host postgres_dbms/ucbvax@S2K.ORG host postgres_dbms/ucbvax@S2K.-
ORG
Support for Version 4 will disappear sometime after Support for Version 4 will disappear sometime after
the production release of Version 5 by MIT. the production release of Version 5 by MIT.
Chapter 5. Release Notes Chapter 5. Release Notes
Release 6.4 Release 6.5
There are many new features and improvements in this This release marks a major step in the development
release. Thanks to our developers and maintainers, team's mastery of the source code we inherited from
nearly every aspect of the system has received some Berkeley. You will see we are now easily adding major
attention since the previous release. Here is a features, thanks to the increasing size and
brief, incomplete summary: experience of our world-wide development team.
o Views and rules are now functional thanks to Here is a brief summary of some of the more
extensive new code in the rewrite rules system from noticable changes:
Jan Wieck. He also wrote a chapter on it for the
Programmer's Guide. Multi-version concurrency control(MVCC)
o Jan also contributed a second procedural language, This removes our old table-level locking, and
PL/pgSQL, to go with the original PL/pgTCL replaces it with a locking system that is superior
procedural language he contributed last release. to most commercial database systems. In a
o We have optional multiple-byte character set traditional system, each row that is modified is
support from Tatsuo Iishi to complement our locked until committed, preventing reads by other
existing locale support. users. MVCC uses the natural multi-version nature
o Client/server communications has been cleaned up, of PostgreSQL to allow readers to continue reading
with better support for asynchronous messages and consistent data during writer activity. Writers
interrupts thanks to Tom Lane. continue to use the compact pg_log transaction
o The parser will now perform automatic type coersion system. This is all performed without having to
to match arguments to available operators and allocate a lock for every row like traditional
functions, and to match columns and expressions database systems. So, basically, we no longer are
with target columns. This uses a generic mechanism restricted by simple table-level locking; we have
which supports the type extensibility features of something better than row-level locking.
Postgres. There is a new chapter in the User's
Guide which covers this topic. Numeric data type
o Three new data types have been added. Two types, We now have a true numeric data type, with
inet and cidr, support various forms of IP network, user-specified precision.
subnet, and machine addressing. There is now an
8-byte integer type available on some platforms. Temporary tables
See the chapter on data types in the User's Guide Temporary tables are guaranteed to have unique
for details. A fourth type, serial, is now names within a database session, and are destroyed
supported by the parser as an amalgam of the int4 on session exit.
type, a sequence, and a unique index.
o Several more SQL92-compatible syntax features have New SQL features
been added, including INSERT DEFAULT VALUES We now have CASE, INTERSECT, and EXCEPT statement
o The automatic configuration and installation system support. We have new LIMIT/OFFSET, SET TRANSACTION
has received some attention, and should be more ISOLATION LEVEL, SELECT ... FOR UPDATE, and an
robust for more platforms than it has ever been. improved LOCK command.
Migration to v6.4 Speedups
We continue to speed up PostgreSQL, thanks to the
variety of talents within our team. We have sped
up memory allocation, optimization, table joins,
and row transfer routines.
Ports
We continue to expand our port list, this time
including WinNT/ix86 and NetBSD/arm32.
Interfaces
Most interfaces have new versions, and existing
functionality has been improved.
Migration to v6.5
A dump/restore using pg_dump or pg_dumpall is A dump/restore using pg_dump or pg_dumpall is
required for those wishing to migrate data from any required for those wishing to migrate data from any
previous release of Postgres. previous release of Postgres.
The new Multi-Version Concurrency Control (MVCC)
features can give somewhat different behaviors in
multi-user environments. Read and understand the
following section to ensure that your existing
applications will give you the behavior you need.
Multi-Version Concurrency Control
Because readers in 6.5 don't lock data, regardless
of transaction isolation level, data read by one
transaction can be overwritten by another. In the
other words, if a row is returned by SELECT it
doesn't mean that this row really exists at the time
it is returned (i.e. sometime after the statement or
transaction began) nor that the row is protected from
deletion or updation by concurrent transactions
before the current transaction does a commit or
rollback.
To ensure the actual existance of a row and protect
it against concurrent updates one must use SELECT FOR
UPDATE or an appropriate LOCK TABLE statement. This
should be taken into account when porting
applications from previous releases of Postgres and
other environments.
Keep above in mind if you are using contrib/refint.*
triggers for referential integrity. Additional
technics are required now. One way is to use LOCK
parent_table IN SHARE ROW EXCLUSIVE MODE command if a
transaction is going to update/delete a primary key
and use LOCK parent_table IN SHARE MODE command if a
transaction is going to update/insert a foreign key.
Note: Note that if you run a transaction in
SERIALIZABLE mode then you must execute LOCK
commands above before execution of any DML
statement
(SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
transaction.
These inconveniences will disappear in the future
when the ability to read dirty (uncommitted) data
(regardless of isolation level) and true referential
integrity will be implemented.
Detailed Change List Detailed Change List
Bug Fixes Bug Fixes
--------- ---------
Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) Fix text<->float8 and text<->float4 conversion
Remove char2-16 data types, use char/varchar(Darren) functions(Thomas)
Pqfn not handles a NOTICE message(Anders) Fix for creating tables with mixed-case
Reduced busywaiting overhead for spinlocks with many constraints(Billy)
backends (dg) Change exp()/pow() behavior to generate error on
Stuck spinlock detection (dg) underflow/overflow(Jan)
Fix up "ISO-style" timespan decoding and Fix bug in pg_dump -z
encoding(Thomas) Memory overrun cleanups(Tatsuo)
Fix problem with table drop after rollback of Fix for lo_import crash(Tatsuo)
transaction(Vadim) Adjust handling of data type names to suppress double
Change error message and remove non-functional update quotes(Thomas)
message(Vadim) Use type coersion for matching columns and
Fix for COPY array checking DEFAULT(Thomas)
Fix for SELECT 1 UNION SELECT NULL Fix deadlock so it only checks once after one second
Fix for buffer leaks in large object calls(Pascal) of sleep(Bruce)
Change owner from oid to int4 type(Bruce) Fixes for aggregates and PL/pgsql(Hiroshi)
Fix a bug in the oracle compatibility functions Fix for subquery crash(Vadim)
btrim() ltrim() and rtrim() Fix for libpq function PQfnumber and case-insensitive
Fix for shared invalidation cache overflow(Massimo) names(Bahman Rafatjoo)
Prevent file descriptor leaks in failed COPY's(Bruce) Fix for large object write-in-middle, no extra block,
Fix memory leak in libpgtcl's pg_select(Constantin) memory consumption(Tatsuo)
Fix problems with username/passwords over 8 Fix for pg_dump -d or -D and quote special
characters(Tom) characters in INSERT
Fix problems with handling of asynchronous NOTIFY in Repair serious problems with dynahash(Tom)
backend(Tom) Fix INET/CIDR portability problems
Fix of many bad system table entries(Tom) Fix problem with selectivity error in ALTER TABLE ADD
COLUMN(Bruce)
Fix executor so mergejoin of different column types
works(Tom)
Fix for Alpha OR selectivity bug
Fix OR index selectivity problem(Bruce)
Fix so \d shows proper length for
char()/varchar()(Ryan)
Fix tutorial code(Clark)
Improve destroyuser checking(Oliver)
Fix for Kerberos(Rodney McDuff)
Fix for dropping database while dirty buffers(Bruce)
Fix so sequence nextval() can be
case-sensitive(Bruce)
Fix !!= operator
Drop buffers before destroying database files(Bruce)
Fix case where executor evaluates functions
twice(Tatsuo)
Allow sequence nextval actions to be
case-sensitive(Bruce)
Fix optimizer indexing not working for negative
numbers(Bruce)
Fix for memory leak in executor with fjIsNull
Fix for aggregate memory leaks(Erik Riedel)
Allow username containing a dash GRANT permissions
Cleanup of NULL in inet types
Clean up system table bugs(Tom)
Fix problems of PAGER and \? command(Masaaki Sakaida)
Reduce default multi-segment file size limit to
1GB(Peter)
Fix for dumping of CREATE OPERATOR(Tom)
Fix for backward scanning of cursors(Hiroshi Inoue)
Fix for COPY FROM STDIN when using \i(Tom)
Fix for subselect is compared inside an
expression(Jan)
Fix handling of error reporting while returning
rows(Tom)
Fix problems with reference to array types(Tom,Jan)
Prevent UPDATE SET oid(Jan)
Fix pg_dump so -t option can handle case-sensitive
tablenames
Fixes for GROUP BY in special cases(Tom, Jan)
Fix for memory leak in failed queries(Tom)
DEFAULT now supports mixed-case identifiers(Tom)
Fix for multi-segment uses of DROP/RENAME table,
indexes(Ole Gjerde)
Enhancements Enhancements
------------ ------------
Upgrade ecpg and ecpglib,see Add "vacuumdb" utility
src/interfaces/ecpc/ChangeLog(Michael) Speed up libpq by allocating memory better(Tom)
Show the index used in an EXPLAIN(Zeugswetter) EXPLAIN all indices used(Tom)
EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan) Implement CASE, COALESCE, NULLIF expression(Thomas)
Multi-byte awareness of many data types and functions, via configure(Tatsuo) New pg_dump table output format(Constantin)
New configure --with-mb option(Tatsuo) Add string min()/max() functions(Thomas)
New initdb --pgencoding option(Tatsuo) Extend new type coersion techniques to
New createdb -E multibyte option(Tatsuo) aggregates(Thomas)
Select version(); now returns PostgreSQL version(Jeroen) New moddatetime contrib(Terry)
Libpq now allows asynchronous clients(Tom) Update to pgaccess 0.96(Constantin)
Allow cancel from client of backend query(Tom) Add routines for single-byte "char" type(Thomas)
Psql now cancels query with Control-C(Tom) Improved substr() function(Thomas)
Libpq users need not issue dummy queries to get NOTIFY messages(Tom) Improved multi-byte handling(Tatsuo)
NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom) Multi-version concurrency control/MVCC(Vadim)
PGresult struct now includes associated error message, if any(Tom) New Serialized mode(Vadim)
Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas) Fix for tables over 2gigs(Peter)
Add routines to convert between varchar and bpchar(Thomas) New SET TRANSACTION ISOLATION LEVEL(Vadim)
Add routines to allow sizing of varchar and bpchar into target columns(Thomas) New LOCK TABLE IN ... MODE(Vadim)
Add bit flags to support timezonehour and minute in data retrieval(Thomas) Update ODBC driver(Byron)
Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas) New NUMERIC data type(Jan)
Fixes for unary minus parsing with leading spaces(Thomas) New SELECT FOR UPDATE(Vadim)
Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas) Handle "NaN" and "Infinity" for input values(Jan)
Check for and properly ignore FOREIGN KEY column constraints(Thomas) Improved date/year handling(Thomas)
Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas) Improved handling of backend connections(Magnus)
Enable HAVING clause but no fixes elsewhere yet. New options ELOG_TIMESTAMPS and USE_SYSLOG options
Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas) for log files(Massimo)
Save string type if specified for DEFAULT clause handling(Thomas) New TCL_ARRAYS option(Massimo)
Coerce operations involving different data types(Thomas) New INTERSECT and EXCEPT(Stefan)
Allow some index use for columns of different types(Thomas) New pg_index.indisprimary for primary key
Add capabilities for automatic type conversion(Thomas) tracking(D'Arcy)
Cleanups for large objects, so file is truncated on open(Peter) New pg_dump option to allow dropping of tables before
Readline cleanups(Tom) creation(Brook)
Allow psql \f \ to make spaces as delimiter(Bruce) Speedup of row output routines(Tom)
Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce) New READ COMMITTED isolation level(Vadim)
Msql compatibility library in /contrib(Aldrin) New TEMP tables/indexes(Bruce)
Remove the requirement that ORDER/GROUP BY clause identifiers be Prevent sorting if result is already sorted(Jan)
included in the target list(David) New memory allocation optimization(Jan)
Convert columns to match columns in UNION clauses(Thomas) Allow psql to do \p\g(Bruce)
Remove fork()/exec() and only do fork()(Bruce) Allow multiple rule actions(Jan)
Jdbc cleanups(Peter) Added LIMIT/OFFSET functionality(Jan)
Show backend status on ps command line(only works on some platforms)(Bruce) Improve optimizer when joining a large number of
Pg_hba.conf now has a sameuser option in the database field tables(Bruce)
Make lo_unlink take oid param, not int4 New intro to SQL from S. Simkovics' Master's Thesis
New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce) (Stefan, Thomas)
Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom) New intro to backend processing from S. Simkovics'
libpgtcl cleanups(Tom) Master's Thesis (Stefan)
Add -error option to libpgtcl's pg_result command(Tom) Improved int8 support(Ryan Bradetich, Thomas, Tom)
New locale patch, see docs/README/locale(Oleg) New routines to convert between int8 and text/varchar
Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb) types(Thomas)
New contrib/lo code for large object orphan removal(Peter) New bushy plans, where meta-tables are joined(Bruce)
New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes Enable right-hand queries by default(Bruce)
feature, see /doc/README.mb(Tatsuo) Allow reliable maximum number of backends to be set
/contrib/noupdate code to revoke update permission on a column at configure time
Libpq can now be compiled on win32(Magnus) (--with-maxbackends and postmaster switch (-N
Add PQsetdbLogin() in libpq backends))(Tom)
New 8-byte integer type, checked by configure for OS support(Thomas) GEQO default now 10 tables because of optimizer
Better support for quoted table/column names(Thomas) speedups(Tom)
Surround table and column names with double-quotes in pg_dump(Thomas) Allow NULL=Var for MS-SQL portability(Michael, Bruce)
PQreset() now works with passwords(Tom) Modify contrib check_primary_key() so either
Handle case of GROUP BY target list column number out of range(David) "automatic" or "dependent"(Anand)
Allow UNION in subselects Allow psql \d on a view show query(Ryan)
Add auto-size to screen to \d? commands(Bruce) Speedup for LIKE(Bruce)
Use UNION to show all \d? results in one query(Bruce) Ecpg fixes/features, see
Add \d? field search feature(Bruce) src/interfaces/ecpg/ChangeLog file(Michael)
Pg_dump issues fewer \connect requests(Tom) JDBC fixes/features, see
Make pg_dump -z flag work better, document it in manual page(Tom) src/interfaces/jdbc/CHANGELOG(Peter)
Add HAVING clause with full support for subselects Make % operator have precedence like /(Bruce)
and unions(Stephan) Add new postgres -O option to allow system table
Full text indexing routines in contrib/fulltextindex(Maarten) structure changes(Bruce)
Transaction ids now stored in shared memory(Vadim) Update contrib/pginterface/findoidjoins script(Tom)
New PGCLIENTENCODING when issuing COPY command(Tatsuo) Major speedup in vacuum of deleted rows with
Support for SQL92 syntax "SET NAMES"(Tatsuo) indexes(Vadim)
Support for LATIN2-5(Tatsuo) Allow non-SQL functions to run different versions
Add UNICODE regression test case(Tatsuo) based on arguments(Tom)
Lock manager cleanup, new locking modes for LLL(Vadim) Add -E option that shows actual queries sent by \dt
Allow index use with OR clauses(Bruce) and friends(Masaaki Sakaida)
Allows "SELECT NULL ORDER BY 1;" Add version number in startup banners for
Explain VERBOSE prints the plan, and now pretty-prints the plan to psql(Masaaki Sakaida)
the postmaster log file(Bruce) New contrib/vacuumlo removes large objects not
Add Indices display to \d command(Bruce) referenced(Peter)
Allow GROUP BY on functions(David) New initialization for table sizes so non-vacuumed
New pg_class.relkind for large objects(Bruce) tables perform better(Tom)
New way to send libpq NOTICE messages to a different location(Tom) Improve error messages when a connection is
New \w write command to psql(Bruce) rejected(Tom)
New /contrib/findoidjoins scans oid columns to find join relationships(Bruce) Support for arrays of char() and varchar()
Allow binary-compatible indices to be considered when checking for valid fields(Massimo)
indices for restriction clauses containing a constant(Thomas) Overhaul of hash code to increase reliability and
New ISBN/ISSN code in /contrib/isbn_issn performance(Tom)
Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) Update to PyGreSQL 2.4(D'Arcy)
New rewrite system fixes many problems with rules and views(Jan) Changed debug options so -d4 and -d5 produce
* Rules on relations work different node displays(Jan)
* Event qualifications on insert/update/delete work New pg_options: pretty_plan, pretty_parse,
* New OLD variable to reference CURRENT, CURRENT will be remove in future pretty_rewritten(Jan)
* Update rules can reference NEW and OLD in rule qualifications/actions Better optimization statistics for system table
* Insert/update/delete rules on views work access(Tom)
* Multiple rule actions are now supported, surrounded by parentheses Better handling of non-default block sizes(Massimo)
* Regular users can create views/rules on tables they have RULE permits Improve GEQO optimizer memory consumption(Tom)
* Rules and views inherit the permissions on the creator UNION now suppports ORDER BY of columns not in target
* No rules at the column level list(Jan)
* No UPDATE NEW/OLD rules Major libpq++ improvements(Vince Vielhaber)
* New pg_tables, pg_indexes, pg_rules and pg_views system views
* Only a single action on SELECT rules
* Total rewrite overhaul, perhaps for 6.5
* handle subselects
* handle aggregates on views
* handle insert into select from view works
System indexes are now multi-key(Bruce)
Oidint2, oidint4, and oidname types are removed(Bruce)
Use system cache for more system table lookups(Bruce)
New backend programming language PL/pgSQL in backend/pl(Jan)
New SERIAL data type, auto-creates sequence/index(Thomas)
Enable assert checking without a recompile(Massimo)
User lock enhancements(Massimo)
New setval() command to set sequence value(Massimo)
Auto-remove unix socket file on startup if no postmaster running(Massimo)
Conditional trace package(Massimo)
New UNLISTEN command(Massimo)
Psql and libpq now compile under win32 using win32.mak(Magnus)
Lo_read no longer stores trailing NULL(Bruce)
Identifiers are now truncated to 31 characters internally(Bruce)
Createuser options now availble on the command line
Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
Prevent file descriptor leaf from failed COPY(Bruce)
New pg_upgrade command(Bruce)
Updated /contrib directories(Massimo)
New CREATE TABLE DEFAULT VALUES statement available(Thomas)
New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
New DECLARE and FETCH feature(Thomas)
libpq's internal structures now not exported(Tom)
Allow up to 8 key indexes(Bruce)
Remove ARCHIVE keyword, that is no longer used(Thomas)
pg_dump -n flag to supress quotes around indentifiers
disable system columns for views(Jan)
new INET and CIDR types for network addresses(TomH, Paul)
no more double quotes in psql output pg_dump now dumps views(Terry)
new SET QUERY_LIMIT(Tatsuo,Jan)
Source Tree Changes Source Tree Changes
------------------- -------------------
/contrib cleanup(Jun) Improve port matching(Tom)
Inline some small functions called for every row(Bruce) Portability fixes for SunOS
Alpha/linux fixes Add NT/Win32 backend port and enable dynamic
Hp/UX cleanups(Tom) loading(Magnus and Daniel Horak)
Multi-byte regression tests(Soonmyung.) New port to Cobalt Qube(Mips) running Linux(Tatsuo)
Remove --disabled options from configure Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
Define PGDOC to use POSTGRESDIR by default Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
Make regression optional Port to NetBSD/macppc(Toshimi Aoki)
Remove extra braces code to pgindent(Bruce) Fix for tcl/tk configuration(Vince)
Add bsdi shared library support(Bruce) Removed CURRENT keyword for rule queries(Jan)
New --without-CXX support configure option(Brook) NT dynamic loading now works(Daniel Horak)
New FAQ_CVS Add ARM32 support(Andrew McMurry)
Update backend flowchart in tools/backend(Bruce) Better support for HPUX 11 and Unixware
Change atttypmod from int16 to int32(Bruce, Tom) Improve file handling to be more uniform, prevent
Getrusage() fix for platforms that do not have it(Tom) file descriptor leak(Tom)
Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page New install commands for plpgsql(Jan)
NS32K platform fixes(Phil Nelson, John Buller)
Sco 7/UnixWare 2.x fixes(Billy,others)
Sparc/Solaris 2.5 fixes(Ryan)
Pgbuiltin.3 is obsolete, move to doc files(Thomas)
Even more documention(Thomas)
Nextstep support(Jacek)
Aix support(David)
pginterface manual page(Bruce)
shared libraries all have version numbers
merged all OS-specific shared library defines into one file
smarter TCL/TK configuration checking(Billy)
smarter perl configuration(Brook)
configure uses supplied install-sh if no install script found(Tom)
new Makefile.shlib for shared library configuration(Tom)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment