summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/FAQ_NT367
-rw-r--r--doc/INSTALL_WIN38
-rw-r--r--doc/src/sgml/installation.sgml13
3 files changed, 49 insertions, 369 deletions
diff --git a/doc/FAQ_NT b/doc/FAQ_NT
deleted file mode 100644
index e454289506..0000000000
--- a/doc/FAQ_NT
+++ /dev/null
@@ -1,367 +0,0 @@
-Installing PostgreSQL on NT:
-
----------------------------------------------------------------------------
-
-It can be done by done by typing configure, make and make install.
-
-1. Install the Cygwin package
-2. Update to EGCS 1.1.2
- (This may be optional.)
-
----------------------------------------------------------------------------
-
- OPTIONAL
-
-1. Install the Andy Piper Tools (http://www.xemacs.freeserve.co.uk/)
- (This may be optional.)
- You need at least the crypt library (also available as
- ftp://sourceware.cygnus.com/pub/cygwin/xfree/libcrypt-cygwin-b20.1.tar.bz2)
-
----------------------------------------------------------------------------
-
- CYGWIN32 INSTALLATION
-
-1. Download the Cygwin32 IPC Package by Ludovic LANGE
- http://penguin.cz/~horak/cygwin32_ipc-1.03.tar.gz
-2. Untar the package and follow the readme instructions.
-3. Apply the patch at the end of this file to the cygipc sources
- before compiling the library.
-4. I tested 1.03.
-5. I used the \cygwin-b20\h-i568-cygwin32\i586-cygwin32\lib and
-\cygwin-b20\h-i568-cygwin32\i586-cygwin32\include\sys instead of the
-/usr/local/lib and usr/local/include/sys.
-
-NOTE:
-Also, the cygnus-bindir has to be placed in the path before the
-NT-directories, because the sort.exe has to be taken for cygnus, not
-NT.
-
----------------------------------------------------------------------------
-
- POSTGRESQL INSTALL WITH NT SPECIFICS
-
-1. Download the current version of PostgreSQL.
-2. Untar the package.
-3. Copy the files from \pgsql\src\win32 according to the readme file.
-4. Edit \pgsql\src\template\cygwin32 if needed (I had to adjust the YFLAGS
-path).
-5. ./configure
-6. make
-7. create the directory /usr/local/pgsql manually: the mkdir cannot create a
-directory 2 levels deep in one step.
-8. make install
-9. cd /usr/lical/pgsql/doc
-10. make install
-11. Set the environmental data
-12. Initdb --username=jkr (do not run this command as administrator)
-
-13. Open a new Cygwin command prompt
-14. Start "ipc-deamon&" (background proces)
-15. Start "postmaster -i 2>&1 > /tmp/postgres.log &" (background proces)
-16. Start "tail -f /tmp/postgres.log" to see the messages
-
-17. cd /usr/src/pgsql/src/test/regress
-18. make all runtest
-
-All test should be run.
-
-NOTE:
-By default, PostgreSQL clients like psql communicate using unix domain
-sockets, which don't work on NT. Start the postmaster with -i, and
-when connecting to the database from a client, set the PGHOST
-environment variable to 'localhost' or supply the hostname on the
-command line.
-
-Joost
-
-PS: If you still have problems you can mail to Dan Horak <dan.horak@email.cz>
- who is the maintainer for the win32 port
-
----------------------------------------------------------------------------
-
-*** ./ipc-daemon.c.orig Tue Dec 01 00:04:24 1998
---- ./ipc-daemon.c Fri Sep 24 13:34:16 1999
-***************
-*** 270,285 ****
- {
- itoa(100*id+Index, LBuff) ;
- LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ;
-! while (LAdrSem->current_nb[id].current_nb[Index] > 0 )
-! {
-! WaitForSingleObject(LHandle, 0) ;
-! LAdrSem->current_nb[id].current_nb[Index]-- ;
-! }
-! CloseHandle(LHandle) ;
- }
- LAdrSem->semary[id] = IPC_UNUSED ;
- LAdrSem->state[id] = 0 ;
- }
- else
- {
- for (Index = 0; Index < sma->sem_nsems; Index++)
---- 270,284 ----
- {
- itoa(100*id+Index, LBuff) ;
- LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ;
-! while (WaitForSingleObject(LHandle, 0) == WAIT_OBJECT_0)
-! ;
-! LAdrSem->current_nb[id].current_nb[Index] = 0;
-! CloseHandle(LHandle) ;
- }
- LAdrSem->semary[id] = IPC_UNUSED ;
- LAdrSem->state[id] = 0 ;
- }
-+ /*
- else
- {
- for (Index = 0; Index < sma->sem_nsems; Index++)
-***************
-*** 288,293 ****
---- 287,293 ----
- LHandle = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, LBuff) ;
- }
- }
-+ */
- }
- }
-
-*** ./msg.c.orig Tue Dec 01 00:16:09 1998
---- ./msg.c Fri Sep 17 12:50:50 1999
-***************
-*** 57,62 ****
---- 57,77 ----
- static int GFirstMsg = 0; /*PCPC*/
- static int GFdMsg ; /*PCPC*/
-
-+ /*****************************************/
-+ /* Initialization of static variables */
-+ /*****************************************/
-+ static pid_t GProcessId = 0;
-+ static void init_globals(void)
-+ {
-+ pid_t pid;
-+
-+ if (pid=getpid(), pid != GProcessId)
-+ {
-+ GFirstMsg = 0;
-+ msgbytes = msghdrs = msg_seq = used_queues = max_msqid = 0;
-+ GProcessId = pid;
-+ }
-+ }
- /************************************************************************/
- /* Demande d'acces a la zone partagee de gestion des semaphores */
- /************************************************************************/
-***************
-*** 79,84 ****
---- 94,100 ----
- {
- int LRet ;
-
-+ init_globals();
- if( GFirstMsg == 0 )
- {
- if( IsGSemMsgExist() )
-*** ./sem.c.orig Tue Dec 01 00:16:25 1998
---- ./sem.c Fri Sep 17 12:47:11 1999
-***************
-*** 58,63 ****
---- 58,78 ----
- static int GFirstSem = 0; /*PCPC*/
- static int GFdSem ; /*PCPC*/
-
-+ static pid_t GProcessId = 0;
-+
-+ static void init_globals(void)
-+ {
-+ pid_t pid;
-+
-+ if (pid=getpid(), pid != GProcessId)
-+ {
-+ GFirstSem = 0;
-+ used_sems = used_semids = max_semid = 0;
-+ sem_seq = 0;
-+ GProcessId = pid;
-+ }
-+ }
-+
- /************************************************************************/
- /* Demande d'acces a la zone partagee de gestion des semaphores */
- /************************************************************************/
-***************
-*** 77,82 ****
---- 92,98 ----
- {
- int LRet ;
-
-+ init_globals();
- if( GFirstSem == 0 )
- {
- if( IsGSemSemExist() )
-***************
-*** 187,193 ****
- {
- CloseHandle ( LHandle ) ;
- }
-! LHandle = CreateSemaphore(NULL, 0, 0x7FFFFFFF, LBuff) ;
- if( LHandle == NULL )
- {
- printf( "Creation de Semaphore \"Sem\" impossible\n" ) ;
---- 203,209 ----
- {
- CloseHandle ( LHandle ) ;
- }
-! LHandle = CreateSemaphore(NULL, 0, 1, LBuff) ;
- if( LHandle == NULL )
- {
- printf( "Creation de Semaphore \"Sem\" impossible\n" ) ;
-***************
-*** 357,371 ****
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! ReleaseSemaphore(LHandle, sop->sem_op, &LVal) ;
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] +=
-! sop->sem_op ;
- sem_deconnect() ;
- } else {
- if( sop->sem_flg == IPC_NOWAIT )
- {
-! LRet = WaitForSingleObject(LHandle, 0) ;
-! if( LRet == WAIT_TIMEOUT )
- {
- debug_printf("do_semop : return -EAGAIN\n");
- CYGWIN32_IPCNT_RETURN (-EAGAIN) ;
---- 373,386 ----
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] +=
-! sop->sem_op ;
- sem_deconnect() ;
-+ ReleaseSemaphore(LHandle, 1 , &LVal) ;
- } else {
- if( sop->sem_flg == IPC_NOWAIT )
- {
-! if( sop->sem_op + shareadrsem->current_nb[id].current_nb[sop->sem_num] <0 )
- {
- debug_printf("do_semop : return -EAGAIN\n");
- CYGWIN32_IPCNT_RETURN (-EAGAIN) ;
-***************
-*** 375,390 ****
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] -= 1 ;
- sem_deconnect() ;
- } else {
-! LRet = WaitForSingleObject(LHandle, INFINITE) ;
- if (sem_connect() == 0)
- {
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] -= 1 ;
- sem_deconnect() ;
- }
- }
---- 390,407 ----
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] += sop->sem_op;
- sem_deconnect() ;
- } else {
-! while(sop->sem_op + shareadrsem->current_nb[id].current_nb[sop->sem_num] <0)
-! LRet = WaitForSingleObject(LHandle, INFINITE) ;
-!
- if (sem_connect() == 0)
- {
- debug_printf("do_semop : return -EACCES\n");
- CYGWIN32_IPCNT_RETURN (-EACCES) ;
- }
-! shareadrsem->current_nb[id].current_nb[sop->sem_num] += sop->sem_op ;
- sem_deconnect() ;
- }
- }
-***************
-*** 435,441 ****
- char LBuff[100] ;
- HANDLE LHandle ;
- long LPrevious ;
-- int LIndex;
-
- debug_printf("semctl : semid=%X semnum=%X cmd=0x%02X arg=%p\n",semid,semnum,cmd,arg);
- if (semid < 0 || semnum < 0 || cmd < 0)
---- 452,457 ----
-***************
-*** 568,589 ****
- if( LHandle != NULL )
- {
- if( arg.val > shareadrsem->current_nb[id].current_nb[semnum] )
-! {
-! ReleaseSemaphore(LHandle,
-! arg.val-shareadrsem->current_nb[id].current_nb[semnum],
-! &LPrevious) ;
-! }
-! else if (arg.val <
-! shareadrsem->current_nb[id].current_nb[semnum] )
-! {
-! for( LIndex = arg.val;
-! LIndex < shareadrsem->current_nb[id].current_nb[semnum];
-! LIndex++ )
-! {
-! WaitForSingleObject(LHandle, 0) ;
-! }
-! }
-! shareadrsem->current_nb[id].current_nb[semnum] = arg.val ;
- }
- debug_printf("semctl : SETVAL : return 0\n");
- CYGWIN32_IPCNT_RETURN_DECONNECT (0);
---- 584,591 ----
- if( LHandle != NULL )
- {
- if( arg.val > shareadrsem->current_nb[id].current_nb[semnum] )
-! ReleaseSemaphore(LHandle,1,&LPrevious) ;
-! shareadrsem->current_nb[id].current_nb[semnum] = arg.val ;
- }
- debug_printf("semctl : SETVAL : return 0\n");
- CYGWIN32_IPCNT_RETURN_DECONNECT (0);
-*** ./shm.c.orig Fri Sep 17 12:46:24 1999
---- ./shm.c Fri Sep 17 12:47:11 1999
-***************
-*** 59,64 ****
---- 59,81 ----
- static int GFirstShm = 0; /*PCPC*/
- static int GFdShm ; /*PCPC*/
-
-+ /*****************************************/
-+ /* Initialization of static variables */
-+ /*****************************************/
-+ static pid_t GProcessId = 0;
-+ static void init_globals(void)
-+ {
-+ pid_t pid;
-+
-+ if (pid=getpid(), pid != GProcessId)
-+ {
-+ GFirstShm = 0;
-+ shm_rss = shm_swp = max_shmid = 0;
-+ shm_seq = 0;
-+ GProcessId = pid;
-+ }
-+ }
-+
- /************************************************************************/
- /* Demande d'acces a la zone partagee de gestion des shm */
- /************************************************************************/
-***************
-*** 82,87 ****
---- 99,105 ----
- {
- int LRet ;
-
-+ init_globals();
- if( GFirstShm == 0 )
- {
- if( IsGSemShmExist() )
-
diff --git a/doc/INSTALL_WIN b/doc/INSTALL_WIN
new file mode 100644
index 0000000000..fb8154c32b
--- /dev/null
+++ b/doc/INSTALL_WIN
@@ -0,0 +1,38 @@
+Installing PostgreSQL on Windows NT or Windows 2000
+===================================================
+$Date: 2000/09/27 15:17:53 $
+
+1. Install the Cygwin package.
+
+ The Cygwin package provides a UNIX-like API on top of the Win32
+ API. It is available at <http://sources.redhat.com/cygwin/>.
+ The 1.1.x series is recommended (1.1.4 was the latest at the time
+ of this writing); using 1.0 or B20 might require extra efforts.
+ For B20 you also need to download the separate crypt library at the
+ same location.
+
+2. Install the cygipc package, available at
+ <http://cygutils.netpedia.net/V1.1/cygipc/>. Do not use versions
+ prior to 1.04, they will not work.
+
+3. Optional: The "Andy Piper Tools" at <http://www.xemacs.freeserve.co.uk/>
+ are a collection of pre-compiled libraries and utilities that you
+ might find useful -- especially on Cygwin B20.
+
+4. The Cygwin bin directory has to be placed in the path before the
+ Windows program directories, because the sort.exe has to be taken
+ from Cygwin, not Windows.
+
+5. Start `ipc-daemon &' (background process) from the cygipc package.
+ This program needs to be running anytime you start the PostgreSQL
+ server (postmaster).
+
+6. Proceed according to the INSTALL file. (./configure; make; etc.)
+
+NOTE: By default, PostgreSQL clients like psql communicate using Unix
+domain sockets, which do not work on Windows. Start the postmaster
+with -i, and when connecting to the database from a client, set the
+PGHOST environment variable to `localhost' or supply the hostname on
+the command line.
+
+Problem reports can be sent to <pgsql-ports@postgresql.org>.
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 9e7a82b2d6..2036d7d092 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.19 2000/09/25 22:52:49 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.20 2000/09/27 15:17:53 petere Exp $ -->
<chapter id="installation">
<title><![%flattext-install-include[<productname>PostgreSQL</> ]]>Installation Instructions</title>
@@ -92,6 +92,15 @@ su - postgres
definitely not work.
</para>
</listitem>
+
+ <listitem>
+ <para>
+ To build on <productname>Windows NT</> or <productname>Windows
+ 2000</> you need the <productname>Cygwin</> and
+ <productname>cygipc</> packages. See the file
+ <filename>doc/INSTALL_WIN</> for details.
+ </para>
+ </listitem>
</itemizedlist>
</para>
@@ -100,7 +109,7 @@ su - postgres
it at your local <acronym>GNU</acronym> mirror site (see <ulink
url="http://www.gnu.org/order/ftp.html">http://www.gnu.org/order/ftp.html</>
for a list) or at <ulink
- url="ftp://ftp.gnu.org/gnu/make">ftp://ftp.gnu.org/gnu/make</ulink>.
+ url="ftp://ftp.gnu.org/gnu/">ftp://ftp.gnu.org/gnu/</ulink>.
</para>
<para>