mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	process, the need for changes to the FAQ_SCO document was uncovered. The attach patch file implements thost changes. Billy G. Allie
		
			
				
	
	
		
			225 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			7.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/10/09 03:49:42 $
 | |
| 
 | |
| 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 versions (and probably others as well) of the C compiler:
 | |
| 
 | |
| 	Optimizing C Compilation System  (CCS) 3.2  08/18/98
 | |
| 	Optimizing C Compilation System  (CCS) 3.2  09/28/99 
 | |
| 
 | |
| 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	Sat Oct  7 20:48:17 2000
 | |
| --- src/backend/utils/adt/int8.c	Sat Oct  7 20:52:03 2000
 | |
| ***************
 | |
| *** 489,495 ****
 | |
|   	if (arg1 < 1)
 | |
|   		result = 0;
 | |
|   	else
 | |
| ! 		for (i = arg1, result = 1; i > 0; --i)
 | |
|   			result *= i;
 | |
|   
 | |
|   	PG_RETURN_INT64(result);
 | |
| --- 489,495 ----
 | |
|   	if (arg1 < 1)
 | |
|   		result = 0;
 | |
|   	else
 | |
| ! 		for (i = arg1, result = 1; i; --i)
 | |
|   			result *= i;
 | |
|   
 | |
|   	PG_RETURN_INT64(result);
 | |
| ------------------------------8< CUT HERE >8------------------------------
 | |
| 
 | |
| The bind function in UnixWare 7.1+ has a problem when used with the AF_UNIX
 | |
| family.  The following patch provides a work-around for the problem (thanks
 | |
| go to Oliver PRENANT <ohp@pyrenet.fre> for this patch).
 | |
| 
 | |
| ------------------------------8< CUT HERE >8------------------------------
 | |
| *** src/backend/libpq/pqcomm.c.orig	Sun Oct  8 02:21:25 2000
 | |
| --- src/backend/libpq/pqcomm.c	Sun Oct  8 02:42:57 2000
 | |
| ***************
 | |
| *** 329,334 ****
 | |
| --- 329,341 ----
 | |
|   		return STATUS_ERROR;
 | |
|   	}
 | |
|   
 | |
| + 	/* Work around a bug in UnixWare 7.1.x - accept is not returning the
 | |
| + 	 * correct family when the family is AF_UNIX.
 | |
| + 	 */
 | |
| + 
 | |
| + 	if (port->raddr.sa.sa_family == 0)
 | |
| + 		port->raddr.sa.sa_family = AF_UNIX;
 | |
| + 
 | |
|   	/* fill in the server (local) address */
 | |
|   	addrlen = sizeof(port->laddr);
 | |
|   	if (getsockname(port->sock, (struct sockaddr *) & port->laddr,
 | |
| ------------------------------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??
 | |
| 
 |