OSDN Git Service

Add information on regression testing and Linux ports.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Sat, 17 May 1997 14:26:30 +0000 (14:26 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Sat, 17 May 1997 14:26:30 +0000 (14:26 +0000)
Fix typos in TZ setting for regression testing and in gmake redirection.

INSTALL

diff --git a/INSTALL b/INSTALL
index f83650e..34c3795 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -16,13 +16,16 @@ list.  Version 1 (through 1.01) was developed by Jolly Chen and Andrew
 Yu.
 
 The installation notes below assume the following (except where noted):
-  - Commands were tested on RedHat Linux version 4.0 using the bash
-    shell.  Except where noted, they will probably work on most
-    systems.  USE COMMON SENSE before typing in these commands.
-    Commands like ps and tar vary wildly on what options you should
-    use on each platform.
-  - Defaults are assumed.
+  - Commands are Unix-compatible. See note below.
+  - Defaults are used except where noted.
   - User postgres is the postgres superuser.
+  - The source path is /usr/src/pgsql (other paths are possible).
+  - The runtime path is /usr/local/pgsql (other paths are possible).
+
+Commands were tested on RedHat Linux version 4.0 using the bash shell.
+Except where noted, they will probably work on most systems. Commands
+like ps and tar vary wildly on what options you should use on each
+platform. USE COMMON SENSE before typing in these commands.
 
 Our Makefiles require GNU make (called gmake in this document) and
 also assume that "install" accepts BSD options. The INSTALL
@@ -45,7 +48,7 @@ PostgreSQL has been tested on the following platforms:
    hpux           HP PA-RISC on HP-UX 9.0
    i386_solaris   i386 Solaris
    irix5          SGI MIPS on IRIX 5.3
-   linux          Intel x86 on Linux 1.2 and Linux ELF
+   linux          Intel x86 on Linux 2.0 and Linux ELF
                   (For non-ELF Linux, see LINUX_ELF below).
    sparc_solaris  SUN SPARC on Solaris 2.4
    sunos4         SUN SPARC on SunOS 4.1.3
@@ -160,7 +163,10 @@ To upgrade to PostgreSQL v6.1 do the following:
      else) then you will also want to move this directory in the same
      manner.
 
-  9) Make new source and install directories.  Type
+  9) Make new source and install directories.  The actual paths can be
+     different for your installation; be consistant with your configuration
+     in step (11).
+     Type
         su
         cd /usr/src
         mkdir pgsql
@@ -174,7 +180,9 @@ To upgrade to PostgreSQL v6.1 do the following:
         cd /usr/src/pgsql
         gunzip -c ~/postgresql-v6.1.tar.gz | tar xvf -
 
- 11) Configure the source code for your system.  Type
+ 11) Configure the source code for your system.  It is this step at which
+     you can specify your actual source path and installation paths for
+     the build process (see the --prefix option below).  Type
         cd /usr/src/pgsql/src
         ./configure
 
@@ -236,8 +244,9 @@ To upgrade to PostgreSQL v6.1 do the following:
 
  12) Compile the program.  Type
         cd /usr/src/pgsql/src
-        gmake all &> make.log &
+        gmake all >& make.log &
         tail -f make.log
+
      The last line displayed will hopefully be "All of PostgreSQL is
      successfully made. Ready to install."  At this point, or earlier
      if you wish, type control-C to get out of tail.  (If you have
@@ -258,8 +267,9 @@ To upgrade to PostgreSQL v6.1 do the following:
 
  13) Install the program.  Type
         cd /usr/src/pgsql/src
-        gmake install &> make.install.log &
+        gmake install >& make.install.log &
         tail -f make.install.log
+
      The last line displayed will be "gmake[1]: Leaving directory
      `/usr/src/pgsql/src/man'".  At this point, or earlier if you wish,
      type control-C to get out of tail.
@@ -320,12 +330,14 @@ To upgrade to PostgreSQL v6.1 do the following:
      However, we think skipping the tests is a BAD idea!
 
      Start the postmaster in preparation for the regression tests.  First,
-     set the timezone for Berkley, California.  On some systems you may do
+     set the timezone for Berkeley, California.  On some systems you may do
      this by setting environment variable TZ.  I.e., using bash, type
-        export TZ=PST8PDT7,M04.01.0,M10.0503
+        export TZ=PST8PDT7,M04.01.0,M10.05.03
+
      Now start the postmaster daemon running in the background by typing
         cd
         nohup postmaster > regress.log 2>&1 &
+
      Run postmaster from your postgres super user account (typically
      account postgres).  DO NOT RUN POSTMASTER FROM THE ROOT ACCOUNT.
 
@@ -340,31 +352,40 @@ To upgrade to PostgreSQL v6.1 do the following:
 
      You should get on the screen (and also written to file ./regress.out)
      a series of statements stating which tests passed and which tests
-     failed.  Please note that it is normal for some of the tests to
-     "fail".
-
-     For the tests that failed, i.e. if float8 failed, type something like:
+     failed.  Please note that it can be normal for some of the tests to
+     "fail".  For the failed tests, use diff to compare the files in
+     directories ./results and ./expected.  If float8 failed, type
+     something like:
         cd /usr/src/pgsql/src/test/regress
         diff -w expected/float8.out results
-     Now do some intelligent interpretation of what you see before
-     deciding if you have detected a bug in PostgreSQL as it compiled on
-     you platform.
-
-     For example.  On a SPARC/Linux-elf platform using the 970516 beta
-     version of PostgreSQL v6.1 the following tests "failed".  float8
-     and geometry "failed" due to minor precision differences in floating
-     point numbers.  timespan and horology had different values from the
-     expected "14 secs ago".  (This may be a real bug.  It may simply be
-     problems with convincing the back end what timezone and time to
-     use.)  datetime, abstime and tinterval failed because it used GMT
-     where it should have used PST and PDT.  (Same comment.)  select_views
-     failed for unknown reasons.  Conclusion?  There may be some real
-     bugs exhibited here but will they effect what you intend to use
-     PostgreSQL for?  (Note:  Most of these bugs also occur on the
-     i86/Linux platform.  Also note that there will be significant
-     changes made to the date and time types immediately after the
-     v6.1 release so if you do need these functions, monitor the HACKERS
-     and PORTS mailing lists to see what is going on.)
+
+    "Failed" tests may have failed due to slightly different error messages,
+     output formatting, failure to set the timezone correctly for your
+     platform, etc.  "Failures" of this type do not indicate a problem with
+     PostgreSQL.
+
+     Here is an example from a i686/Linux-ELF platform (this is the platform
+     on which most of the regression tests were generated). float8 failed
+     on exponentiation and logarithmic operations due to known differences
+     in error handling for those math functions between this platform
+     and the original Sun (?) Postgres v4.2 development environment.
+
+     Here is an example from a SPARC/Linux-ELF platform (note that this is
+     for an "unsupported" platform).  Using the 970516 beta version of
+     PostgreSQL v6.1 the following tests "failed". float8 and geometry
+     "failed" due to minor precision differences in floating point numbers.
+     timespan and horology had different values from the expected
+     "14 secs ago". datetime, abstime and tinterval had "GMT" for the time
+     zone rather than "PST" or "PDT". These differences were due to a
+     mis-typed string for the TZ environment variable from step (18).
+     select_views failed for unknown reasons.
+
+     Conclusion?  If you do see failures, try to understand the nature of
+     the differences and then decide if those differences will affect your
+     intended use of PostgreSQL.  However, keep in mind that this is likely
+     to be the most solid release of PostgreSQL to date, incorporating many
+     bug fixes from v6.0, and that previous versions of PostgreSQL has been
+     in use successfully for some time now.
 
      After running the tests, type
         cd /usr/src/pgsql/src/test/regress
@@ -508,8 +529,9 @@ Create the database foo:
 template1=> CREATE DATABASE FOO;
 INSERT 773248
 
-(Don't ever forget those SQL semicolons.  Psql won't execute anything until it
-sees the semicolon.)
+(Get in the habit of including those SQL semicolons.  Psql won't execute
+anything until it sees the semicolon or a "\g" and the semicolon is required
+to delimit multiple statements.)
 
 template1=> \c foo
 closing connection to database: template1
@@ -517,10 +539,10 @@ connecting to new database: foo
 
 (\ commands aren't SQL, so no semicolon.  Use \? to see all the \ commands.)
 
-template1=> CREATE TABLE bar (column1 int4, column2 char16);
+foo=> CREATE TABLE bar (column1 int4, column2 char16);
 CREATE
 
-template1=> \d bar
+foo=> \d bar
 
 ...
 
@@ -553,25 +575,31 @@ Ultrix4.x:
            s2k-ftp.CS.Berkeley.EDU:pub/personal/andrew/libdl-1.1.tar.Z
 
 Linux:
-        The linux port defaults to the ELF binary format. (Note that if you're
-        using ELF, you don't need dld because you'll be using the dl library
-        that comes with Linux ELF instead.)
-
-        To compile on non-ELF Linux, comment out the LINUX_ELF line in
-        src/mk/port/postgres.mk.linux. Also, 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.
+        The linux-elf port installs cleanly. If you are using an
+        i486 processor or higher, you can edit template/linux-elf
+        to include "-m486" as a compiler option. configure does not
+        detect that sigsetjmp() is available, but you can edit
+        include/config.h after running configure and before running
+        make to include "#define HAVE_SIGSETJMP 1". Note that I have
+        not seen any difference in PostgreSQL behavior either way.
+                                (Thomas G. Lockhart
+                                <Thomas.Lockhart@jpl.nasa.gov> 97/05/17)
+
+        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
                                 <sneaker@powergrid.electriciti.com> 5/11/95)
 
-        To compile with flex, you need a recent version (2.5.2 or
+        To compile with flex, you need a recent version (v2.5.2 or v2.5.4 or
         later). Otherwise, you will get a 'yy_flush_buffer' undefined error.
         Note, however, that flex v2.5.3 has a bug. See the FAQs.
 
 BSD/OS:
-        For BSD/OS 2.0 and 2.01, you will need to get flex version 2.5.2
-        as well as the GNU dld library.  Flex version 2.5.3 has a known bug.
+        For BSD/OS 2.0 and 2.01, you will need to get flex version 2.5.2 or
+        flex version 2.5.4 as well as the GNU dld library.
+        Flex version 2.5.3 has a known bug on all platforms.
 
 NeXT:
         The NeXT port was supplied by Tom R. Hageman <tom@basil.icce.rug.nl>.
@@ -585,8 +613,8 @@ SPARC Linux-elf:
         There was not time to finish adding support for this in the v6.1
         release.  However, if you are running RedHat Linux v4.0 on a
         SPARC platform then install flex v2.5.4 and tell configure you
-        have a Linux-elf platform.  Between configuring and compiling
-        PostgreSQL, edit the following files:
+        have a "linux-elf" platform.  After running "configure" and before
+        compiling PostgreSQL, make the following changes:
           1) Edit src/GNUmakefile to comment out the call to lexflex and
              the if-then-else test that follows it.  (This may not be
              necessary by the time v6.1 gets released.)
@@ -602,8 +630,7 @@ SPARC Linux-elf:
                 #endif
                 */
                 #define BYTE_ORDER LITTLE_ENDIAN 
-        If you want to know the reasonilng behind the above instructions
-        then look in ftp://ftp.postgresql.org/pub/majordomo/ports for a
-        May 16, 1997 mail message called "regression tests on a
+        For more details, look in ftp://ftp.postgresql.org/pub/majordomo/ports
+        for a May 16, 1997 mail message called "regression tests on a
         SPARC/Linux platform".