mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-21 03:13:05 +08:00
200 lines
6.9 KiB
Plaintext
200 lines
6.9 KiB
Plaintext
=======================================================
|
|
Frequently Asked Questions (FAQ) for PostgreSQL V7.0
|
|
SCO UnixWare and OpenServer Specific
|
|
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
=======================================================
|
|
last updated: $Date: 2000/08/26 19:34:24 $
|
|
|
|
current maintainer: Billy G. Allie (Bill.Allie@mug.org)
|
|
original author: Andrew Merrill (andrew@compclass.com)
|
|
|
|
|
|
PostgreSQL 7.0 can be built on SCO UnixWare 7 and SCO OpenServer 5.
|
|
On OpenServer, you can use either the OpenServer Development Kit or
|
|
the Universal Development Kit.
|
|
|
|
However, some tweaking may be needed, as described below.
|
|
|
|
Topics:
|
|
*) Skunkware
|
|
*) GNU Make
|
|
*) C++ and libpq++
|
|
*) Readline
|
|
*) Using the UDK on OpenServer
|
|
*) Compiling PostgreSQL using the UDK
|
|
*) Reading the PostgreSQL man pages on UnixWare
|
|
|
|
|
|
***************************************************************************
|
|
*) Skunkware
|
|
|
|
You should locate your copy of the SCO Skunkware CD. The Skunkware CD
|
|
is included with UnixWare 7 and current versions of OpenServer 5.
|
|
|
|
Skunkware includes ready-to-install versions of many popular programs that
|
|
are available on the Internet. For example, gzip, gunzip, GNU make, flex,
|
|
and bison are all included.
|
|
|
|
If you do not have this CD, the software on it
|
|
is available via anonymous ftp from ftp.sco.com/skunkware.
|
|
|
|
For UnixWare 7.1, this CD is now labeled "Open License Software Supplement".
|
|
|
|
Skunkware has different versions for UnixWare and
|
|
OpenServer. Make sure you install the correct version for your
|
|
operating system, except as noted below.
|
|
|
|
|
|
***************************************************************************
|
|
*) GNU Make
|
|
|
|
You need to use the GNU make program, which is on the Skunkware CD.
|
|
By default, it installs as /usr/local/bin/make. To avoid confusion
|
|
with the SCO make program, you may want to rename GNU make to gmake.
|
|
|
|
|
|
***************************************************************************
|
|
*) C++ and libpq++
|
|
|
|
I have not been able to build libpq++, the PostgreSQL C++ interface, with
|
|
the UnixWare or OpenServer C++ compilers. By default, building PostgreSQL
|
|
also builds the libpq++ interface. When that fails, it causes the entire
|
|
build of PostgreSQL to fail.
|
|
|
|
This is the problem if you see the following error message:
|
|
|
|
"pgenv.cc", line 47: error: no default constructor exists for class "string"
|
|
|
|
If you have this problem, you can disable building of libpq++ with the
|
|
following configure option:
|
|
|
|
configure --without-CXX
|
|
|
|
|
|
***************************************************************************
|
|
*) Readline
|
|
|
|
If you install the readline library, then psql (the PostgreSQL command
|
|
line SQL interpreter) remembers each command you type, and allows
|
|
you to use arrow keys to recall and edit previous commands. This is
|
|
very helpful, and is strongly recommended. The readline library is
|
|
on the Skunkware CD.
|
|
|
|
The readline library is not included on the UnixWare 7.1 Skunkware CD. If
|
|
you have the UnixWare 7.0.0 or 7.0.1 Skunkware CDs, you can install it
|
|
from there. Otherwise, try ftp.sco.com/skunkware.
|
|
|
|
By default, readline installs into /usr/local/lib and /usr/local/include.
|
|
However, the PostgreSQL configure program will not find it there without
|
|
help. If you installed readline, then use the following options to configure:
|
|
|
|
configure --with-libs=/usr/local/lib --with-includes=/usr/local/include
|
|
|
|
Putting this together with the no-C++ option above yields:
|
|
|
|
configure --with-libs=/usr/local/lib --with-includes=/usr/local/include --without-CXX
|
|
|
|
|
|
***************************************************************************
|
|
*) Using the UDK on OpenServer
|
|
|
|
If you are using the new Universal Development Kit (UDK) compiler on
|
|
OpenServer, you need to use different arguments to the configure program.
|
|
|
|
First, you need to specify the "unixware" template instead of the default.
|
|
|
|
Second, you need to specify the locations of the UDK libraries.
|
|
|
|
Putting these together:
|
|
|
|
configure --with-template=unixware --with-libs=/udk/usr/lib --with-includes=/udk/usr/include
|
|
|
|
Putting these together with the no-C++ and readline options from above:
|
|
|
|
./configure --with-template=unixware --with-libs="/udk/usr/lib /usr/local/lib" --with-includes="/udk/usr/include /usr/local/include" --without-CXX
|
|
|
|
***************************************************************************
|
|
*) Compiling PostgreSQL 7.0 with the UDK
|
|
|
|
The program, backend/utils/adt/int8.c, tickles a compiler bug with in the
|
|
following version of the C compiler:
|
|
|
|
Optimizing C Compilation System (CCS) 3.2 08/18/98 (u701)
|
|
|
|
If you encounter an error compiling backend/utils/adt/int8.c, please apply
|
|
the following patch:
|
|
|
|
------------------------------8< CUT HERE >8------------------------------
|
|
*** ./src/backend/utils/adt/int8.c.orig Mon Apr 3 13:24:12 2000
|
|
--- ./src/backend/utils/adt/int8.c Mon Apr 3 13:28:47 2000
|
|
***************
|
|
*** 410,416 ****
|
|
if (*arg1 < 1)
|
|
*result = 0;
|
|
else
|
|
! for (i = *arg1, *result = 1; i > 0; --i)
|
|
*result *= i;
|
|
|
|
return result;
|
|
--- 410,416 ----
|
|
if (*arg1 < 1)
|
|
*result = 0;
|
|
else
|
|
! for (i = *arg1, *result = 1; 0 < i; --i)
|
|
*result *= i;
|
|
|
|
return result;
|
|
------------------------------8< CUT HERE >8------------------------------
|
|
|
|
***************************************************************************
|
|
*) Reading the PostgreSQL man pages on UnixWare
|
|
|
|
By default, the PostgreSQL man pages are installed into /usr/local/pgsql/man.
|
|
By default, UnixWare does not look there for man pages, so you will not
|
|
be able to read them.
|
|
|
|
You need to make the following changes to access the PostgreSQL man pages
|
|
from UnixWare.
|
|
|
|
1) You need to modify the MANPATH variable in /etc/default/man. I use:
|
|
|
|
MANPATH=/usr/lib/scohelp/%L/man:/usr/dt/man:/usr/man:/usr/share/man:scohelp:/usr/local/man:/usr/local/pgsql/man
|
|
|
|
2) Add a line that says '1sql' to /etc/default/manSection.
|
|
|
|
3) The man pages for SQL commands are, by default, placed in section 'l'
|
|
(normally used for "l"ocal pages). UnixWare does not support the 'l'
|
|
section.
|
|
|
|
The solution I use is to move all these pages from section 'l' to a section
|
|
named '1sql'. To following KSH script will perform the move and change the
|
|
section names in the man page:
|
|
|
|
------------------------------8< CUT HERE >8------------------------------
|
|
#!/bin/ksh
|
|
cd /usr/local/pgsql/man
|
|
mv man1 man.1
|
|
mkdir man.1sql
|
|
|
|
cd /usr/local/pgsql/man/manl
|
|
for i in *.l
|
|
do
|
|
sed -e '/^\.TH/s/"l"/"1sql"/' \
|
|
-e 's/\\fR(l)/\\fR(1sql)/' $i >../man.1sql/${i%.l}.1sql
|
|
done
|
|
cd /usr/local/pgsql/man
|
|
rm -rf manl
|
|
/usr/ucb/catman -M /usr/local/pgsql/man 1
|
|
/usr/ucb/catman -M /usr/local/pgsql/man 1sql
|
|
------------------------------8< CUT HERE >8------------------------------
|
|
|
|
After running this script, you can view the man pages using the 'man'
|
|
command. They will not be usable from the scohelp system.
|
|
|
|
I am working on integrating the man pages into the scohelp system. When I
|
|
generate a PostgreSQL package for UnixWare 7.x, the man pages will be
|
|
integrated into the scohelp system.
|
|
|
|
I have not tried using the PostgreSQL man pages on OpenServer. Volunteers??
|
|
|