summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcvsdist <cvsdist@fedoraproject.org>2004-09-09 10:37:06 +0000
committercvsdist <cvsdist@fedoraproject.org>2004-09-09 10:37:06 +0000
commit6f2c3a9b148c44c7f4bc45268ec81116b368d20e (patch)
tree719da9e62b0263b8a9f79bfe423f1a5ff4f58c9b
parentab668a0e7fb7b58f67527c5a5f2cf6f8ec897ed8 (diff)
downloadpostgresql-setup-6f2c3a9b148c44c7f4bc45268ec81116b368d20e.tar.gz
postgresql-setup-6f2c3a9b148c44c7f4bc45268ec81116b368d20e.tar.xz
postgresql-setup-6f2c3a9b148c44c7f4bc45268ec81116b368d20e.zip
auto-import postgresql-7.1.3-1 from postgresql-7.1.3-1.src.rpmpostgresql-7_1_3-1
-rw-r--r--.cvsignore8
-rw-r--r--README.rpm-dist437
-rw-r--r--postgresql-bashprofile5
-rw-r--r--postgresql.init232
-rwxr-xr-xpostgresql.spec1302
-rw-r--r--sources8
6 files changed, 1430 insertions, 562 deletions
diff --git a/.cvsignore b/.cvsignore
index bb7c60c..3159d4b 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,5 +1,5 @@
-file-lists-pgsql-7.0.3.tar.gz
-pg-migration-scripts-7.0.3.tar.gz
-postgresql-7.0.3-alpha.patch.gz
-postgresql-7.0.3.tar.bz2
+contrib-intarray.tar.gz
+file-lists.tar.gz
+migration-scripts.tar.gz
+postgresql-7.1.3.tar.gz
postgresql-dump.1.gz
diff --git a/README.rpm-dist b/README.rpm-dist
new file mode 100644
index 0000000..507f74b
--- /dev/null
+++ b/README.rpm-dist
@@ -0,0 +1,437 @@
+README.rpm-dist
+-----------------------------------------------------------------------------
+Version 3.6, for PostgreSQL 7.1.3
+Lamar Owen <lamar.owen@wgcr.org>
+-----------------------------------------------------------------------------
+
+Contents:
+ 0.) Quickie -i note.
+ 1.) Introduction, QuickStart, and credits
+ 2.) PostgreSQL RPM packages and rationale
+ 3.) Upgrading from an older version of PostgreSQL without losing data.
+ 4.) Regression Testing
+ 5.) Starting postmaster automatically on startup
+ 6.) Grand Unified Configuration(GUC) File.
+ 7.) Rebuilding the source RPM.
+ 8.) Contrib files.
+ 9.) Logging set up
+10.) Further Information Resource
+
+QUICKIE '-i' NOTE
+-----------------------------------------------------------------------------
+The postmaster '-i' option is NOT used by default in the initscript shipped
+with these RPMs. Please do NOT modify the initscript to add the '-i' back
+in -- it will get overwritten on the next package upgrade. Rather, see the
+section below on the Grand Unified Configuration file, which includes the
+recommended way to get '-i' functionality back.
+
+INTRODUCTION
+-----------------------------------------------------------------------------
+This document exists to explain the layout of the RPM's for PostgreSQL, to
+explain how to migrate from an older version, and to explain WHY it can be
+so difficult to upgrade PostgreSQL.
+
+This document is written to be applicable to version 7.1.2 of PostgreSQL,
+which is the current version of the RPM's as of this writing.
+
+Official PostgreSQL Global Development Group RPM's will from version 7.1.2
+on carry a 'PGDG' after the release number. Other RPMset's as distributed
+with Linux distributions may have a different release number and initials.
+
+It is preferable for the distribution-specific set to be the one used, as
+the PGDG set is intentionally generic. So, if your distro has a set of RPMs,
+use them in preference. If you want to stay up-to-date on the PostgreSQL
+core itself, use the PGDG generic set -- but understand that it is a
+GENERIC set.
+
+These RPMs are designed to be LSB-compliant -- if you find this not to be the
+case, please let me know by way of the pgsql-ports@postgresql.org mailing
+list.
+
+QUICKSTART
+-----------------------------------------------------------------------------
+If this is an upgrade, please go to section 3, UPGRADING.
+If this is a fresh installation, simply start the postmaster using:
+ /etc/rc.d/init.d/postgresql start (on RedHat and TurboLinux)
+
+On SuSE, please see the file 'README.linux' in this directory.
+
+The file /var/lib/pgsql/.bash_profile is now packaged to help with the
+setting of environment variables. You may edit this file, and it won't be
+overwritten during an upgrade. However, enhancements and bugfixes may be added
+to this file, so be sure to check .bash_profile.rpmnew after upgrading.
+
+The user 'postgres' is created during installation of the server subpackage.
+This user by default is UID and GID 26. The user has the default shell set to
+bash, and the home directory set to /var/lib/pgsql. This user also has no
+default password -- in order to be able to su to from a non-root account
+or login as 'postgres' you will need to set a password using passwd.
+
+CREDITS
+-----------------------------------------------------------------------------
+Thomas Lockhart
+Uncle George
+Ryan Kirkpatrick
+Trond Eivind Glomsrød
+Mark Knox
+Mike Mascari
+Nicolas Huillard
+Karl DeBisschop
+Roger Luethi
+Jeff Johnson
+Reinhard Max
+
+
+POSTGRESQL RPM PACKAGES AND RATIONALE.
+-----------------------------------------------------------------------------
+On RedHat Linux, prior to version 6.5, PostgreSQL was packaged in RPM form in
+three (or four) packages:
+
+postgresql: The server and documentation
+postgresql-clients: The client libraries, the cli, and the tcl interface
+postgresql-devel: Development libraries (for the client-side)
+postgresql-data: A sample database -- not shipped with the 6.4 RPMS.
+
+However, it was decided that a different split would be more appropriate for
+users. The 7.0 splitup allows more flexibility in installation, as well as
+making the new clients into their own packages. The new packages are:
+
+postgresql: Some clients and libraries, and documentation
+postgresql-server: Server executables and data files
+postgresql-devel: Client-side development libraries
+postgresql-tcl: TCL/TK client libraries and the pgaccess client
+postgresql-perl: PERL client module
+postgresql-python: The PygreSQL client library
+postgresql-odbc: Linux ODBC client (not required to use ODBC from Win95)
+postgresql-jdbc: JAR of the JDBC client
+postgresql-test: The regression tests and associated files.
+
+For version 7.0.x, another package is being shipped, and one package has been
+trimmed:
+postgresql-tk: Tk client and pgaccess.
+postgresql-tcl: Tcl client and PL ONLY.
+
+For version 7.1, more packages are being shipped:
+postgresql-libs: client shared libraries.
+postgresql-docs: extra documentation,such as the SGML doc sources.
+postgresql-contrib: The contrib source tree, as well as selected binaries.
+
+For SuSE Linux <= 7.0, the packages are named differently, but with the same
+functionality. Here is a mapping:
+SuSE: RedHat:
+----- -----------------
+postgres postgresql
+pg_serv postgresql-server
+pg_devel postgresql-devel
+pg_tcl postgresql-tcl
+pg_perl postgresql-perl
+pg_pyth postgresql-python
+pg_odbc postgresql-odbc
+pg_jdbc postgresql-jdbc
+pg_test postgresql-test
+
+There are other changes to the SuSE packages to make them conform to the
+SuSE packaging standards. SuSE Linux has been shipping their own packages.
+
+While the repackaging will initially cause some confusion, it makes it
+possible to set up a RedHat linux machine to be only a client -- the server
+is no longer required. The clients were split out -- after all, a person who
+needs the perl client may very well not need the tcl client, etc. And, the
+regression tests were added to give some confidence of the suitability of
+PostgreSQL, as well as the stability of the server machine. Additionally,
+the regression tests can be used to help find hardware errors.
+
+RPM FILE LOCATIONS.
+-----------------------------------------------------------------------------
+In compliance with the Linux FHS, the PostgreSQL RPM's install files in a manner
+not consistent with most of the PostgreSQL documentation. According to the
+standard PostgreSQL documentation, PostgreSQL is installed under the directory
+/usr/local/pgsql, with executables, source, and data existing in various
+subdirectories.
+
+Different distributions have different ideas of some of these file locations.
+In particular, the documentation directory can be /usr/doc, /usr/doc/packages,
+/usr/share/doc, /usr/share/doc/packages, or some other similar path. The
+RedHat 7 locations are listed below. On SuSE <7.1, substitute 'postgres' for
+'postgresql' below, and 'pg_tk' for 'postgresql-tk' below.
+
+However, the RPM's install the files like this:
+Executables: /usr/bin
+Libaries: /usr/lib
+Documentation: /usr/share/doc/postgresql-x.y.z
+Contrib: /usr/share/doc/postgresql-x.y.z/contrib
+Source: not installed
+Data: /var/lib/pgsql/data
+Backup area: /var/lib/pgsql/backup
+Templates: /usr/share/pgsql
+Procedural Languages: /usr/lib/pgsql
+TK client docs: /usr/share/doc/postgresql-tk-x.y.z
+Development Headers: /usr/include/pgsql
+Other shared data: /usr/share/pgsql
+Regression tests: /usr/lib/pgsql/test/regress (in the -test package)
+Documentation SGML: /usr/share/doc/postgresql-docs-x.y.z
+
+The above list references the Red Hat 7.x structure. These locations may
+change for other distributions. Use of 'rpm -ql' for each package is
+recommended as the 'Official' location source.
+
+While it may seem gratuitous to place these files in different locations, the
+FHS requires it -- distributions should not ever touch /usr/local. It may
+also seem like more work to keep track of where everything is -- but, that's
+the beauty of RPM -- you don't have to keep track of the files, RPM does it
+for you.
+
+UPGRADING.
+-----------------------------------------------------------------------------
+CAUTION: While a semi-automatic upgrade process has been implemented, it is
+STRONGLY recommended that a full dump of your database (using pg_dumpall) is
+performed BEFORE upgrading the RPMs! If you have already done the upgrade
+with the RPM, and want to return to your previous version to do the dump,
+find the old RPM's and use 'rpm -U --oldpackage' to downgrade.
+
+NOTE: moving your existing data from /var/lib/pgsql to /var/lib/pgsql/data is
+not currently automatic -- you will need to do this yourself at this release!
+This change occurred between 6.5.3 and 7.0, so upgrading from priot to 7.0 to
+7.0 or later might be difficult. The rh-dump script is provided to ease this,
+see below.
+
+The single biggest problem with upgrading PostgreSQL RPM's has been the lack
+of a reasonably automated upgrade process. PostgreSQL has the property of
+the binary on-disk database format changing between major versions (like
+between 6.3 and 6.4). However, a change from 6.5 to 6.5.3 does not change
+the on-disk format.
+
+This property (feature, misfeature, bug, whatever) has been a known property of
+PostgreSQL since before it was called PostgreSQL -- it has always been this
+way. However, the means by which an upgrade is performed is not readily
+performed in a fully automated fashion, as a "dump-initdb-restore" cycle has
+to be performed. This doesn't appear to be too difficult -- however, dumping
+the old database requires the old executables -- and, if you've already done
+an rpm -U postgresql* (or upgraded from an older version of RedHat and didn't
+specifically exclude the postgresql rpms), you no longer have the older
+executables to dump your data. And your data is useless (until you reinstall
+the old version, that is). All RPM's prior to late releases of version 6.5.
+1 have this upgrade issue.
+
+The newest RPM's for PostgreSQL attempt to make your job in upgrading a little
+easier. First, during the installation of the new RPM's, a copy is made of
+all the executable files and libraries necessary to make a backup of your data.
+Second, the initialization script in the new postgresql-server package detects
+the version of any database found -- if the version is old, then the startup
+of the new version is aborted. However, if no database is found, a new one
+is made.
+
+One thing must be remembered -- due to the restructuring of the PostgreSQL
+RPM's, you will have to manually select the postgresql-server package if you
+want the server -- it is not installed by default in an upgrade. You can either
+select it during the upgrade/install, or you can mount your RedHat CD and
+install manually with rpm -i.
+
+To facilitate upgrading, the postgresql-dump utility has been provided. Look
+at the man page for postgresql-dump to see its usage. All executables to
+restore the immediately prior version of the PostgreSQL database are placed in
+the directory /usr/lib/pgsql/backup, and are accessed by the postgresql-dump
+script. The directory /usr/lib/pgsql/backup is owned by the postgres user --
+you can use this directory to hold dump files and preserve directories.
+
+The basic sequence is:
+(as user postgres):
+postgresql-dump -t /var/lib/pgsql/backup/db.bak -p /var/lib/pgsql/backup/old -d
+(you can abort the ASCII dump with 'Q', as it uses more) Then, (as user root):
+
+***** NOTE ***** ***** NOTE *****
+
+The above script is broken. Use "rh-pgdump.sh targetfile" instead, remove the
+old databases (/var/lib/pgsql/base) (or safer - move them somewhere else first),
+start the database and follow the insert procedure described below.
+
+***** NOTE ***** ***** NOTE *****
+
+service postgresql start
+
+(which will automatically create a new database structure) And finally,
+
+(as user postgres):
+psql -e template1 </var/lib/pgsql/backup/db.bak
+
+Once you are satisfied that the data has been restored properly, you may remove
+the dump file (/var/lib/pgsql/backup/db.bak) and the preserve directory
+(/var/lib/pgsql/backup/old).
+
+EXPLANATION OF STEPS:
+-------------------------------------------------------------------------------
+postgresql-dump: dumps the old database structure out, using the postmaster and
+the backend saved during the rpm upgrade. This step MUST be done as user
+postgres.
+
+/etc/rc.d/init.d/postgresql start: initializes the new database structure that
+the data from your old version will be restored into, does some sanity
+checking, and starts the postmaster. Due to the nature of some of the tasks,
+this step must be done as root.
+
+psql -e: restores the old database into the new structure created by the
+previous step.
+
+NOTE:
+-------------------------------------------------------------------------------
+If you have added tables, indices, or basically anything to the template1
+database which is the default administrative database this script will NOT
+upgrade your database. As a matter of fact you will lose your data included
+in the template1 database. Please look at www.postgresql.org for information
+on upgrading the template1 database. This is a known bug in the PostgreSQL
+pg_dump and pg_dumpall utilities.
+
+REGRESSION TESTING
+-------------------------------------------------------------------------------
+One of the features of the newer RPM sets is the capability to perform the
+regression tests. These tests stress your database installation and produce
+results that give you assurances that the installation is complete, and that
+your database machine is up to the task.
+
+To run the regression tests under the RPM installation, make sure that
+postmaster has been started (if not, su to root and execute the
+'/etc/rc.d/init.d/postgresql start' init script), cd to
+/usr/lib/pgsql/test/regress, su to postgres, and execute the command line:
+time ./pg_regress.sh --schedule=parallel_schedule
+This command line will start the regression tests and will both show the
+results to the screen and store the results in the file regress.out.
+It will also give you a crude benchmark of how fast your machine performs.
+
+If tests fail, please see the file regression.diffs in that directory. If
+you need help interpreting that file, contact the pgsql-ports list on
+postgresql.org.
+
+There are some tests that will almost always fail with RedHat Linux 5.x and 6.x
+installations. The geometry, float8, and on occassion the random test will
+fail. These failures are normal for RedHat 5.2 and 6.1. For RedHat 6.1 with
+certain i18n settings, there will be other tests fail.
+
+For 7.1RC1, all 76 tests passed on RedHat 6.2 and RedHat 7.0. This
+was accomplished by fiddling with the locale settings. In version 7.1.2 this
+capability was removed -- you need to set your locale to 'C' before executing
+the first postmaster startup, or many more regression tests will fail.
+
+For interpretation of the regression tests, see the PostgreSQL documentation.
+
+STARTING POSTMASTER AUTOMATICALLY AT SYSTEM STARTUP
+-------------------------------------------------------------------------------
+RedHat Linux uses the System V Init package. A startup script for PostgreSQL
+is provided in the server package, as /etc/rc.d/init.d/postgresql. To start
+the postmaster, with sanity checking, as root, run
+/etc/rc.d/init.d/postgresql start
+to shut postmaster down,
+/etc/rc.d/init.d/postgresql stop
+There are other parameters to this script -- /etc/rc.d/init.d/postgresql for a
+listing.
+
+To get this script to run at system startup or any time the system switches into
+runlevels 4, 5, or 6, run 'chkconfig --add postgresql', and the proper symlinks
+will be created. Check the chkconfig man page for more information.
+
+This same script also works for TurboLinux, and any other distribution similar
+enough to RedHat. SuSE Linux uses a different approach, using a different
+location and a different script, found at either /sbin/init.d/postgres or
+/usr/sbin/rcpostgres. Please see the SuSE 'README.linux' for more information.
+
+SuSE has maintained their own RPMset for some time -- their documentation
+supercedes any found in this file.
+
+GRAND UNIFIED CONFIGURATION (GUC) FILE
+-------------------------------------------------------------------------------
+The PostgreSQL server has many tunable parameters -- the file
+/var/lib/pgsql/data/postgresql.conf is the master configuration file for the
+whole system.
+
+The RPM ships with the default file -- you will need to tune the
+parameters for your installation. In particular, you might want to allow
+TCP/IP socket connections -- in order to allow these, you will need to edit
+the postgresql.conf file. The line in question contains the string
+'tcpip_socket' --want to both uncomment the line and set the parameter to true
+in order to get the TCP/IP socket to open.
+
+This is the same behavior the -i command line switch provides. It is
+preferable to use the postgresql.conf file, however, as future versions
+of the RPMset will allow multiple postmaster instances -- and that will only
+be possible thanks to the decoupling of settings out to each datadir.
+
+REBUILDING FROM SOURCE RPM
+-------------------------------------------------------------------------------
+If your distribution is not supported by the binary RPM's from PostgreSQL.org,
+you will need to rebuild from the source RPM. Download the .src.rpm for this
+release. You will need to be root to rebuild, unless you have already set up
+a non-root build environment.
+
+Install the source RPM with rpm -i, then CD to the rpm building area (on RedHat
+this is /usr/src/redhat by default). You will have to have a full development
+environment to rebuild the full RPM set.
+
+This release of the RPMset includes the ability to conditionally build
+sets of packages. The parameters, their defaults, and the meanings are:
+
+perl 1 #build the postgresql-perl package.
+tcl 1 #build the postgresql-tcl package.
+tkpkg 1 #build the postgresql-tk package.
+odbc 1 #build the postgresql-odbc package.
+jdbc 1 #build the postgresql-jdbc package.
+test 1 #build the postgresql-test package.
+python 1 #build the postgresql-python package.
+pltcl 1 #build the postgresql-pltcl package.
+forceplperl 0 #don't force a build of pl/perl over libperl.a
+plperl 0 #don't build the postgresql-plperl package.
+ssl 1 #use OpenSSL support.
+kerberos 1 #use Kerberos 5 support.
+enable_mb 1 #enable multibyte encodings.
+pgaccess 1 #build the pgaccess client, part of postgresql-tk.
+newintarray 0 #substitute a newer intarray contrib.
+
+To use these defines, invoke a rebuild like this:
+rpm --rebuild --define 'perl 0' --define 'tcl 0' --define 'tkpkg 0'\
+ --define 'test 0' --define 'newintarray 1' --define 'kerberos 0' \
+ postgresql-7.1.3-1PGDG.src.rpm
+This line would disable the perl, tcl, tk, and test subpackages, enable the
+newer intarray code, and disable kerberos support.
+
+More of these conditionals will be added in the future.
+
+
+CONTRIB FILES
+-------------------------------------------------------------------------------
+The contents of the contrib tree are packaged into the -contrib subpackage
+and are compiled and placed into /usr/lib/pgsql/contrib with no further
+processing. Please see each directory under contrib for details on how to
+install and use.
+
+LOGGING SET UP
+-------------------------------------------------------------------------------
+To get rollable syslog set up, see the documentation for the file
+postgresql.conf, by default in the directory /var/lib/pgsql/data, as relates to
+the syslog options. Then, add a line to /etc/syslog.conf, using the man page
+for syslog.conf as a source. Example:
+If postgresql.conf has the following lines for the syslog settings:
+syslog = 1 # range 0-2
+syslog_facility = 'LOCAL0'
+syslog_ident = 'postgres'
+
+Then you need to add the line to /etc/syslog.conf:
+local0.* /var/log/postgresql
+
+Then set up an entry in /etc/logrotate.d to roll postgresql the way you want it
+rolled.
+
+MORE INFORMATION
+-------------------------------------------------------------------------------
+You can get more information at http://www.postgresql.org
+
+Please help make this packaging better -- let me know if you find problems, or
+better ways of doing things. You can reach me by e-mail at
+pgsql-ports@postgresql.org -- please include an [RPM] string in the subject, as
+I use automatic mail folder processing to put mail in the right place.
+
+SuSE information is available at SuSE's website and information contacts.
+-----------------------------------------------------------------------------
+
+
+
+
+
+
diff --git a/postgresql-bashprofile b/postgresql-bashprofile
new file mode 100644
index 0000000..a2447db
--- /dev/null
+++ b/postgresql-bashprofile
@@ -0,0 +1,5 @@
+PGLIB=/usr/lib/pgsql
+PGDATA=/var/lib/pgsql/data
+[ -f $PGDATA/../initdb.i18n ] && source $PGDATA/../initdb.i18n
+export PGLIB PGDATA
+
diff --git a/postgresql.init b/postgresql.init
new file mode 100644
index 0000000..c704b6e
--- /dev/null
+++ b/postgresql.init
@@ -0,0 +1,232 @@
+#! /bin/sh
+# postgresql This is the init script for starting up the PostgreSQL
+# server
+#
+# chkconfig: - 85 15
+# description: Starts and stops the PostgreSQL backend daemon that handles \
+# all database requests.
+# processname: postmaster
+# pidfile: /var/run/postmaster.pid
+
+# Version 6.5.3-2 Lamar Owen
+# Added code to determine if PGDATA exists, whether it is current version
+# or not, and initdb if no PGDATA (initdb will not overwrite a database).
+
+# Version 7.0 Lamar Owen
+# Added logging code
+# Changed PGDATA.
+#
+
+# Version 7.0.2 Trond Eivind Glomsrød <teg@redhat.com>
+# use functions, add conditional restart
+
+# Version 7.0.3 Lamar Owen <lamar@postgresql.org>
+# Check for the existence of functions before blindly using them
+# in particular -- check for success () and failure () before using.
+# More Cross-distribution support -- PGVERSION variable, and docdir checks.
+
+# Version 7.1 Release Candidate Lamar Owen <lamar@postgresql.org>
+# initdb parameters have changed.
+
+# Version 7.1.2 Trond Eivind Glomsrød <teg@redhat.com>
+# Specify shell for su
+# Handle stop better - kill unwanted output, make it wait until the database is ready
+# Handle locales slightly differently - always using "C" isn't a valid option
+# Kill output from database initialization
+# Mark messages for translation
+
+# Version 7.1.2-2.PGDG Lamar Owen <lamar.owen@wgcr.org>
+# sync up.
+# Karl's fixes for some quoting issues.
+
+# PGVERSION is:
+PGVERSION=7.1.2
+
+# Source function library.
+INITD=/etc/rc.d/init.d
+. $INITD/functions
+
+# Get function listing for cross-distribution logic.
+TYPESET=`typeset -f|grep "declare"`
+
+# Get config.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+# Pretty much need it for postmaster.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+[ -f /usr/bin/postmaster ] || exit 0
+
+
+start(){
+ PSQL_START=$"Starting postgresql service: "
+
+ # Check for older PGDATA location.
+ if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
+ then
+ export PGDATA=/var/lib/pgsql
+ else
+ export PGDATA=/var/lib/pgsql/data
+ fi
+
+ # Check for the PGDATA structure
+ if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ]
+ then
+ # Check version of existing PGDATA
+
+ if [ `cat $PGDATA/PG_VERSION` != '7.1' ]
+ then
+ SYSDOCDIR="(Your System's documentation directory)"
+ if [ -d /usr/doc/postgresql-$PGVERSION ]
+ then
+ SYSDOCDIR=/usr/doc
+ fi
+ if [ -d /usr/share/doc/postgresql-$PGVERSION ]
+ then
+ SYSDOCDIR=/usr/share/doc
+ fi
+ if [ -d /usr/doc/packages/postgresql-$PGVERSION ]
+ then
+ SYSDOCDIR=/usr/doc/packages
+ fi
+ if [ -d /usr/share/doc/packages/postgresql-$PGVERSION ]
+ then
+ SYSDOCDIR=/usr/share/doc/packages
+ fi
+ echo
+ echo $"An old version of the database format was found.\nYou need to upgrade the data format before using PostgreSQL.\nSee $SYSDOCDIR/postgresql-$PGVERSION/README.rpm-dist for more information."
+ exit 1
+# This doesn't seem to do anything useful...
+# else
+# if echo "$TYPESET"|grep "declare -f success ()" >/dev/null
+# then
+# success "$PSQL_CHECK"
+# else
+# echo " [ OK ]"
+# fi
+# echo
+ fi
+
+ # No existing PGDATA! Initdb it.
+
+ else
+ echo -n $"Initializing database: "
+ if [ ! -d $PGDATA ]
+ then
+ mkdir -p $PGDATA
+ chown postgres.postgres $PGDATA
+ fi
+ # Make sure the locale from the initdb is preserved for later startups...
+ [ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n
+ # Just in case no locale was set, use en_US
+ [ ! -f /etc/sysconfig/i18n ] && echo "LANG=en_US" > $PGDATA/../initdb.i18n
+ # Is expanded this early to be used in the command su runs
+ echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n
+ # Initialize the database
+ su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=/var/lib/pgsql/data > /dev/null 2>&1" < /dev/null
+ [ -f $PGDATA/PG_VERSION ] && echo_success
+ [ ! -f $PGDATA/PG_VERSION ] && echo_failure
+ echo
+ fi
+
+ # Check for postmaster already running...
+ pid=`pidof -s postmaster`
+ if [ $pid ]
+ then
+ echo $"Postmaster already running."
+ else
+ #all systems go -- remove any stale lock files
+ rm -f /tmp/.s.PGSQL.* > /dev/null
+ echo -n "$PSQL_START"
+ su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null
+ sleep 1
+ pid=`pidof -s postmaster`
+ if [ $pid ]
+ then
+ if echo "$TYPESET"|grep "declare -f success ()" >/dev/null
+ then
+ success "$PSQL_START"
+ else
+ echo " [ OK ]"
+ fi
+ touch /var/lock/subsys/postgresql
+ echo $pid > /var/run/postmaster.pid
+ echo
+ else
+ if echo "$TYPESET"|grep "declare -f failure ()" >/dev/null
+ then
+ failure "$PSQL_START"
+ else
+ echo " [ FAILED ]"
+ fi
+ echo
+ fi
+ fi
+}
+
+stop(){
+ # Check for postmaster already running... exit if this happens
+ pid=`pidof -s postmaster`
+ if [ "$pid" == "" ]; then
+ rm -f /var/run/postmaster.pid
+ rm -f /var/lock/subsys/postgresql
+ exit 0;
+ fi
+ echo -n $"Stopping postgresql service: "
+ # Check for older PGDATA location.
+ if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
+ then
+ export PGDATA=/var/lib/pgsql
+ else
+ export PGDATA=/var/lib/pgsql/data
+ fi
+ su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1
+ ret=$? # This will always be 0, as the return code doesn't propagate... Fix that some day.
+ if [ $ret -eq 0 ]; then
+ echo_success
+ else
+ echo_failure
+ fi
+ echo
+ rm -f /var/run/postmaster.pid
+ rm -f /var/lock/subsys/postgresql
+}
+
+restart(){
+ stop
+ start
+}
+
+condrestart(){
+ [ -e /var/lock/subsys/postgresql ] && restart || :
+}
+
+
+# This script is slightly unusual in that the name of the daemon (postmaster)
+# is not the same as the name of the subsystem (postgresql)
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status postmaster
+ ;;
+ restart)
+ restart
+ ;;
+ condrestart)
+ condrestart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+ exit 1
+esac
+
+exit 0
+
diff --git a/postgresql.spec b/postgresql.spec
index ae30aa6..cf57244 100755
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -1,49 +1,109 @@
-# Do we want to build the postgresql-test package ? (1=yes 0=no)
-%define build_testpackage 0
+%{!?perl:%define perl 1}
+%{!?tcl:%define tcl 1}
+%{!?tkpkg:%define tkpkg 1}
+%{!?odbc:%define odbc 1}
+%{!?jdbc:%define jdbc 1}
+%{!?test:%define test 0}
+%{!?python:%define python 1}
+%{!?pltcl:%define pltcl 1}
+%{?forceplperl:%define plperl %{expand:forceplperl}}
+%{!?forceplperl:%define forceplperl 0}
+%{!?plperl:%define plperl 0}
+%{!?ssl:%define ssl 1}
+%{!?kerberos:%define kerberos 1}
+
+# Utility feature defines.
+%{!?enable_mb:%define enable_mb 1}
+%{!?pgaccess:%define pgaccess 1}
+%{!?newintarray:%define newintarray 0}
+
+# Python major version.
+%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
Summary: PostgreSQL client programs and libraries.
Name: postgresql
-Version: 7.0.3
-Release: 9.2
+Version: 7.1.3
+
+# Conventions for PostgreSQL Global Development Group RPM releases:
+
+# Official PostgreSQL Development Group RPMS have a PGDG after the release number.
+# Integer releases are stable -- 0.1.x releases are Pre-releases, and x.y are
+# test releases.
+
+# Pre-releases are those that are built from CVS snapshots or pre-release
+# tarballs from postgresql.org. Official beta releases are not
+# considered pre-releases, nor are release candidates, as their beta or
+# release candidate status is reflected in the version of the tarball. Pre-
+# releases' versions do not change -- the pre-release tarball of 7.0.3, for
+# example, has the same tarball version as the final official release of 7.0.3:
+# but the tarball is different.
+
+# Test releases are where PostgreSQL itself is not in beta, but certain parts of
+# the RPM packaging (such as the spec file, the initscript, etc) are in beta.
+
+# Pre-release RPM's should not be put up on the public ftp.postgresql.org server
+# -- only test releases or full releases should be.
+
+Release: 1
License: BSD
Group: Applications/Databases
-# originally .gz
-Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
-Source3: postgresql.init-%{version}
-Source4: file-lists-pgsql-%{version}.tar.gz
+Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.gz
+Source3: postgresql.init
+Source4: file-lists.tar.gz
Source5: ftp://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.gz.md5
-Source6: README.rpm-dist.postgresql-%{version}
-Source7: pg-migration-scripts-%{version}.tar.gz
-Source8: logrotate.postgresql-%{version}
-Source9: pg_options-%{version}
-Source10: http://jdbc.postgresql.org/download/jdbc7.0-1.1.jar
-Source11: http://jdbc.postgresql.org/download/jdbc7.0-1.2.jar
+Source6: README.rpm-dist
+Source7: migration-scripts.tar.gz
+Source10: http://www.retep.org.uk/postgres/jdbc7.0-1.1.jar
+Source11: jdbc7.1-1.2.jar
Source12: postgresql-dump.1.gz
Source14: rh-pgdump.sh
-Source15: pg_dumpall.1
-Patch0: postgresql-%{version}-alpha.patch.gz
-Patch1: rpm-pgsql-%{version}.patch
-Patch2: postgresql-7.0.3-ia64-2.patch
-Patch3: postgresql-7.0.3-mkstemp.patch
-Patch4: postgresql-%{version}-security.patch
-Patch10: postgresql-7.0.2-s390.patch
-Requires: perl
-Prereq: /sbin/chkconfig /sbin/ldconfig /usr/sbin/useradd initscripts
-BuildPrereq: /lib/cpp
-BuildPrereq: python-devel perl tcl tk
+Source15: postgresql-bashprofile
+Source16: http://www.sai.msu.su/~megera/postgres/gist/code/7.1.2/contrib-intarray.tar.gz
+Patch1: rpm-pgsql-7.1.patch
+Patch2: postgresql-7.1.plperl.patch
+Patch3: postgresql-7.1.s390x.patch
+Buildrequires: perl glibc-devel
+Prereq: /sbin/ldconfig initscripts
+BuildPrereq: python-devel perl tcl /lib/cpp
+%if %ssl
+BuildPrereq: openssl-devel
+%endif
+%if %ssl
+BuildPrereq: krb5-devel
+%endif
Url: http://www.postgresql.org/
Obsoletes: postgresql-clients
-%if %{build_testpackage}
-%else
+Buildroot: %{_tmppath}/%{name}-%{version}-root
+# Obsolete the packages we are not building...
+%if ! %{plperl}
+Obsoletes: postgresql-plperl
+%endif
+%if ! %{tcl}
+Obsoletes: postgresql-tcl
+%endif
+%if ! %{tkpkg}
+Obsoletes: postgresql-tk
+%endif
+%if ! %{odbc}
+Obsoletes: postgresql-odbc
+%endif
+%if ! %{perl}
+Obsoletes: postgresql-perl
+%endif
+%if ! %{python}
+Obsoletes: postgresql-python
+%endif
+%if ! %{jdbc}
+Obsoletes: postgresql-jdbc
+%endif
+%if ! %{test}
Obsoletes: postgresql-test
%endif
-Buildroot: %{_tmppath}/%{name}-%{version}-root
-
# This is the PostgreSQL Global Development Group Official RPMset spec file.
-# Copyright 2000 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+# Copyright 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
# and others listed.
# Major Contributors:
@@ -51,10 +111,20 @@ Buildroot: %{_tmppath}/%{name}-%{version}-root
# Lamar Owen
# Trond Eivind Glomsrød <teg@redhat.com>
# Thomas Lockhart
+# Reinhard Max
+# Karl DeBisschop
+# and others in the Changelog....
# This spec file and ancilliary files are licensed in accordance with
# The PostgreSQL license.
+# On top of this file you can find the default build package list macros. These can be overridden by defining
+# on the rpm command line:
+# rpm --define 'packagename 1' .... to force the package to build.
+# rpm --define 'packagename 0' .... to force the package NOT to build.
+# The base package, the lib package, the devel package, and the server package always get built.
+
+
%description
PostgreSQL is an advanced Object-Relational database management system
(DBMS) that supports almost all SQL constructs (including
@@ -65,19 +135,47 @@ client programs are programs that directly manipulate the internal
structure of PostgreSQL databases on a PostgreSQL server. These client
programs can be located on the same machine with the PostgreSQL
server, or may be on a remote machine which accesses a PostgreSQL
-server over a network connection. This package contains the client
-libraries for C and C++, as well as command-line utilities for
+server over a network connection. This package contains the docs
+in HTML for the whole package, as well as command-line utilities for
managing PostgreSQL databases on a PostgreSQL server.
If you want to manipulate a PostgreSQL database on a remote PostgreSQL
server, you need this package. You also need to install this package
if you're installing the postgresql-server package.
+%package libs
+Summary: The shared libraries required for any PostgreSQL clients.
+Group: Applications/Databases
+Provides: libpq.so.2.1 libpq.so.2.0 libpq.so
+
+%description libs
+The postgresql-libs package provides the essential shared libraries for any
+PostgreSQL client program or interface. You will need to install this package
+to use any other PostgreSQL package or any clients that need to connect to a
+PostgreSQL server.
+
%package server
Summary: The programs needed to create and run a PostgreSQL server.
Group: Applications/Databases
-Prereq: /usr/sbin/useradd
-Requires: postgresql = %{version} , bash >= 2
+Prereq: /usr/sbin/useradd /sbin/chkconfig
+Requires: postgresql = %{version} libpq.so
+
+%package docs
+Summary: Extra documentation for PostgreSQL
+Group: Applications/Databases
+%description docs
+The postgresql-docs package includes the SGML source for the documentation
+as well as the documentation in other formats, and some extra documentation.
+Install this package if you want to help with the PostgreSQL documentation
+project, or if you want to generate printed documentation.
+
+%package contrib
+Summary: Contributed source and binaries distributed with PostgreSQL
+Group: Applications/Databases
+Requires: libpq.so postgresql = %{version}
+%description contrib
+The postgresql-contrib package includes the contrib tree distributed with
+the PostgreSQL tarball. Selected contrib modules are prebuilt.
%description server
The postgresql-server package includes the programs needed to create
@@ -93,7 +191,7 @@ to install the postgresql package.
%package devel
Summary: PostgreSQL development header files and libraries.
Group: Development/Libraries
-Requires: postgresql = %{version}
+Requires: postgresql-libs = %{version}
%description devel
The postgresql-devel package contains the header files and libraries
@@ -104,70 +202,102 @@ develop applications which will interact with a PostgreSQL server. If
you're installing postgresql-server, you need to install this
package.
+#------------
+%if %plperl
+%package plperl
+Summary: The PL/Perl procedural language for PostgreSQL.
+Group: Applications/Databases
+Requires: perl, postgresql = %{version}
+
+%description plperl
+PostgreSQL is an advanced Object-Relational database management
+system. The postgresql-plperl package contains the the PL/Perl
+procedural language for the backend.
+%endif
+
+#------------
+%if %tcl
%package tcl
Summary: A Tcl client library, and the PL/Tcl procedural language for PostgreSQL.
Group: Applications/Databases
-Requires: tcl >= 8.0, postgresql = %{version}
+Requires: tcl >= 8.0
%description tcl
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-tcl package contains the libpgtcl client library,
the pg-enhanced pgtclsh, and the PL/Tcl procedural language for the backend.
+%endif
+#------------
+%if %tkpkg
%package tk
Summary: Tk shell and tk-based GUI for PostgreSQL.
Group: Applications/Databases
-Requires: tcl >= 8.0, tk >= 8.0, postgresql = %{version}
+Requires: tcl >= 8.0, tk >= 8.0
%description tk
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-tk package contains the pgaccess
program. Pgaccess is a graphical front end, written in Tcl/Tk, for the
psql and related PostgreSQL client programs.
+%endif
+#------------
+%if %odbc
%package odbc
Summary: The ODBC driver needed for accessing a PostgreSQL DB using ODBC.
Group: Applications/Databases
-Requires: postgresql = %{version}
%description odbc
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-odbc package includes the ODBC (Open DataBase
Connectivity) driver and sample configuration files needed for
applications to access a PostgreSQL database using ODBC.
+%endif
+#------------
+%if %perl
%package perl
Summary: Development module needed for Perl code to access a PostgreSQL DB.
Group: Applications/Databases
-Requires: perl >= 5.004-4, postgresql = %{version}
+Requires: perl >= 5.004-4
%description perl
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-perl package includes a module for developers
to use when writing Perl code for accessing a PostgreSQL database.
+%endif
+#------------
+%if %python
%package python
Summary: Development module for Python code to access a PostgreSQL DB.
Group: Applications/Databases
-Requires: python >= 1.5, postgresql = %{version}
+Requires: python >= 1.5 mx
+Conflicts: python >= 1.6
+
%description python
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-python package includes a module for
developers to use when writing Python code for accessing a PostgreSQL
database.
+%endif
+#----------
+%if %jdbc
%package jdbc
Summary: Files needed for Java programs to access a PostgreSQL database.
Group: Applications/Databases
-Requires: postgresql = %{version}
%description jdbc
PostgreSQL is an advanced Object-Relational database management
system. The postgresql-jdbc package includes the .jar file needed for
Java programs to access a PostgreSQL database.
+%endif
-%if %{build_testpackage}
+#------------
+%if %test
%package test
Summary: The test suite distributed with PostgreSQL.
Group: Applications/Databases
@@ -183,29 +313,31 @@ system, including regression tests and benchmarks.
%prep
%setup -q
-# The alpha patches are not trivial, so wrap in ifarch-endif block
-#
-%ifarch alpha
-%patch0 -p1
-%endif
-
%patch1 -p1
-%ifarch ia64
+#PL/Perl stuff
%patch2 -p1
-%endif
-
%patch3 -p1
-%patch4 -p1
-%ifarch s390
-%patch10 -p1 -b .s390
+
+%if %forceplperl
+FORCEPLPERL=--force
+%else
+FORCEPLPERL=
%endif
-# Seems to work just fine
+%if %plperl
+ pushd src/pl/plperl
+ EXTRA_INCLUDES=-I../../include plperl_installdir=$RPM_BUILD_ROOT/usr/lib perl Makefile.PL $FORCEPLPERL
+ popd
+%endif
-%ifarch ia64
-ln -s linux_i386 src/template/linux
+# Add (optional) newer intarray with bugfixes over the included one
+%if %newintarray
+ pushd contrib
+ rm -fr intarray
+ tar xvzf %{SOURCE16}
+ popd
%endif
%build
@@ -213,73 +345,128 @@ ln -s linux_i386 src/template/linux
# Get file lists....
tar xzf %{SOURCE4}
-pushd src
-
+#Commented out for testing on other platforms for now.
# If libtool installed, copy some files....
-if [ -d /usr/share/libtool ]
-then
- cp /usr/share/libtool/config.* .
-fi
+#if [ -d /usr/share/libtool ]
+#then
+# cp /usr/share/libtool/config.* .
+#fi
-CFLAGS="$RPM_OPT_FLAGS"
+# Strip out -ffast-math from CFLAGS....
-./configure --enable-hba --enable-locale --prefix=/usr\
- --with-perl --enable-multibyte \
- --with-tcl --with-tk --with-x \
- --with-odbc --with-java --enable-syslog\
-%ifarch alpha
- --with-template=linux_alpha \
-%endif
- --with-python
-
-make COPT="$RPM_OPT_FLAGS" all
+CFLAGS=`echo $RPM_OPT_FLAGS|xargs -n 1|grep -v ffast-math|xargs -n 100`
+export CXXFLAGS="$CFLAGS"
-pushd interfaces/python
-cp /usr/lib/python1.5/config/Makefile.pre.in .
-echo *shared* > Setup
-echo _pg pgmodule.c -I../../include -I../libpq -L../libpq -lpq -lcrypt >> Setup
-make -f Makefile.pre.in boot
-make
-popd
-popd
+./configure --enable-locale --with-CXX --prefix=/usr\
+%if %perl
+ --with-perl \
+%endif
+%if %enable_mb
+ --enable-multibyte \
+%endif
+%if %tcl
+ --with-tcl \
+%endif
+%if %tkpkg
+%else
+ --without-tk \
+%endif
+%if %odbc
+ --with-odbc \
+%endif
+ --enable-syslog\
+%if %python
+ --with-python \
+%endif
+%if %ssl
+ --with-openssl \
+%endif
+%if %kerberos
+ --with-krb5=/usr/kerberos \
+%endif
+ --sysconfdir=/etc/pgsql \
+ --mandir=%{_mandir} \
+ --docdir=%{_docdir} \
+ --includedir=%{_includedir}/pgsql \
+ --datadir=/usr/share/pgsql
+
+make COPT="$CFLAGS" all
+
+%if %plperl
+ pushd src/pl/plperl
+ make INC=-I../../include
+ popd
+%endif
-make all PGDOCS=unpacked -C doc
+%if %python
+ pushd src
+ pushd interfaces/python
+ cp /usr/lib/python%{pyver}/config/Makefile.pre.in .
+ echo *shared* > Setup
+ echo _pg pgmodule.c -I../../include -I../libpq -L../libpq -lpq -lcrypt >> Setup
+ make -f Makefile.pre.in boot
+ make
+ popd
+ popd
+%endif
-pushd src/test
-make all
-popd
+%if %test
+ pushd src/test
+ make all
+ popd
+%endif
%install
-eval `perl '-V:installarchlib'`
rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/usr/{include/pgsql,lib,bin}
-mkdir -p $RPM_BUILD_ROOT%{_mandir}
-mkdir -p $RPM_BUILD_ROOT/$installarchlib
-make POSTGRESDIR=$RPM_BUILD_ROOT/usr PREFIX=$RPM_BUILD_ROOT/usr -C src install
-make POSTGRESDIR=$RPM_BUILD_ROOT/usr PREFIX=$RPM_BUILD_ROOT/usr -C src/interfaces/perl5 install
-
-# Get rid of the packing list generated by the perl Makefile, and build my own...
-find $RPM_BUILD_ROOT/usr/lib/perl5 -name .packlist -exec rm -f {} \;
-find $RPM_BUILD_ROOT/usr/lib/perl5 -type f -print | \
- sed -e "s|$RPM_BUILD_ROOT/|/|g" | \
- sed -e "s|.*/man/.*|&\*|" | grep -v -E "(Pg.bs|perllocal.pod)" > perlfiles.list
-find $RPM_BUILD_ROOT/usr/lib/perl5 -type d -name Pg -print | \
- sed -e "s|$RPM_BUILD_ROOT/|%dir /|g" >> perlfiles.list
-
-
-# check and fixup Pg manpage location....
-if [ ! -e $RPM_BUILD_ROOT%{_mandir}/man3/Pg.* ]
-then
- mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3
- cp `find $RPM_BUILD_ROOT -name 'Pg.3*' -print` $RPM_BUILD_ROOT%{_mandir}/man3
-fi
+
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%if %plperl
+make DESTDIR=$RPM_BUILD_ROOT -C src/pl/plperl install
+#cp blib/arch/auto/plperl/plperl.so $RPM_BUILD_ROOT/usr/lib
+%endif
+
+%if %perl
+ pushd src/interfaces/perl5
+ perl -pi -e "s|LD_RUN_PATH=\".*PATH\)\"||" Makefile
+ perl -pi -e "s|LD_RUN_PATH =.*$||" Makefile
+ popd
+
+ make PREFIX=$RPM_BUILD_ROOT/usr -C src/interfaces/perl5 -f Makefile install
+
+ # Get rid of the packing list generated by the perl Makefile, and build my own...
+ find $RPM_BUILD_ROOT/usr/lib/perl5 -name .packlist -exec rm -f {} \;
+ find $RPM_BUILD_ROOT/usr/lib/perl5 -type f -print | \
+ sed -e "s|$RPM_BUILD_ROOT/|/|g" | \
+ sed -e "s|.*/man/.*|&\*|" > perlfiles.list
+ find $RPM_BUILD_ROOT/usr/lib/perl5 -type d -name Pg -print | \
+ sed -e "s|$RPM_BUILD_ROOT/|%dir /|g" >> perlfiles.list
+
+ # check and fixup Pg manpage location....
+ if [ ! -e $RPM_BUILD_ROOT%{_mandir}/man3/Pg.* ]
+ then
+ mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3
+ cp `find $RPM_BUILD_ROOT -name 'Pg.3*' -print` $RPM_BUILD_ROOT%{_mandir}/man3
+ fi
+
+ pushd src/interfaces
+ mkdir -p $RPM_BUILD_ROOT/usr/share/pgsql/perl5
+ cp -a perl5/test.pl $RPM_BUILD_ROOT/usr/share/pgsql/perl5
+ popd
+ # remove perllocal.pod and Pg.bs from the file list - only occurs with 5.6
+
+ perl -pi -e "s/^.*perllocal.pod$//" perlfiles.list
+ perl -pi -e "s/^.*Pg.bs$//" perlfiles.list
+ mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{_arch}-linux/auto/Pg
+
+%endif
make -C doc
+
# man pages....
pushd $RPM_BUILD_ROOT%{_mandir}
tar xzf $RPM_BUILD_DIR/postgresql-%{version}/doc/man.tar.gz
-install -m 644 %SOURCE15 $RPM_BUILD_ROOT/%{_mandir}/man1
# the postgresql-dump manpage.....
cp %{SOURCE12} man1
@@ -289,63 +476,50 @@ popd
install -m755 %SOURCE14 $RPM_BUILD_ROOT/usr/bin/
-# Move all includes beneath /usr/include/pgsql.
-pushd $RPM_BUILD_ROOT/usr/include
-rm -rf pgsql/*
-for f in *.h access commands executor iodbc lib libpq libpq++ port utils ; do
- mv $f pgsql
-done
-popd
+# install dev headers.
-# copy over the includes needed for SPI development.
-pushd src/include
-/lib/cpp -M -I. -I../backend executor/spi.h |xargs -n 1|grep \\W|grep -v ^/|grep -v spi.o |grep -v spi.h | sort |cpio -pdu $RPM_BUILD_ROOT/usr/include/pgsql
-# thank you, cpio....
+make DESTDIR=$RPM_BUILD_ROOT install-all-headers
#fixup directory permissions for SPI stuff...
-pushd $RPM_BUILD_ROOT/usr/include/pgsql
-chmod 755 access catalog executor lib nodes parser rewrite storage tcop utils
-popd
-
-popd
-
-# Move all templates/examples beneath /usr/lib/pgsql
-pushd $RPM_BUILD_ROOT/usr/lib
- mkdir -p pgsql
- mv *.source *.sample *.description pgsql
-popd
+#pushd $RPM_BUILD_ROOT/usr/include/pgsql
+#chmod 755 access catalog executor nodes rewrite storage tcop utils
+#popd
+
+#popd
+
+# copy over Makefile.global to the include dir....
+install -m755 src/Makefile.global $RPM_BUILD_ROOT/usr/include/pgsql
+
+%if %pgaccess
+ # pgaccess installation
+ pushd src/bin
+ install -m 755 pgaccess/pgaccess $RPM_BUILD_ROOT/usr/bin
+ mkdir -p $RPM_BUILD_ROOT/usr/share/pgsql/pgaccess
+ install -m 644 pgaccess/main.tcl $RPM_BUILD_ROOT/usr/share/pgsql/pgaccess
+ tar cf - pgaccess/lib pgaccess/images | tar xf - -C $RPM_BUILD_ROOT/usr/share/pgsql
+ cp -a pgaccess/doc/html ../../doc/pgaccess
+ cp pgaccess/demo/*.sql ../../doc/pgaccess
+ popd
+%endif
-# Get interface-specific tests and examples, and stuff under /usr/lib/pgsql
-pushd src/interfaces
-mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql/perl5
-cp -a perl5/test.pl perl5/eg $RPM_BUILD_ROOT/usr/lib/pgsql/perl5
-popd
+%if %python
+ # Python
+ pushd src/interfaces/python
+ # Makefile.pre.in doesn't yet support .py files anyway, so we stick to a manual installation
+ mkdir -p $RPM_BUILD_ROOT/usr/lib/python%{pyver}/site-packages
+ install -m 755 _pgmodule.so *.py $RPM_BUILD_ROOT/usr/lib/python%{pyver}/site-packages/
+ popd
+%endif
-# Get example odbcinst.ini and put in /usr/lib/pgsql
-mv $RPM_BUILD_ROOT/usr/odbcinst.ini $RPM_BUILD_ROOT/usr/lib/pgsql
-
-# pgaccess installation
-pushd src/bin
-install -m 755 pgaccess/pgaccess $RPM_BUILD_ROOT/usr/bin
-mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql/pgaccess
-install -m 644 pgaccess/main.tcl $RPM_BUILD_ROOT/usr/lib/pgsql/pgaccess
-tar cf - pgaccess/lib pgaccess/images | tar xf - -C $RPM_BUILD_ROOT/usr/lib/pgsql
-cp -a pgaccess/doc/html ../../doc/pgaccess
-cp pgaccess/demo/*.sql ../../doc/pgaccess
-popd
+%if %jdbc
+ # Java/JDBC
+ # The user will have to set a CLASSPATH to find it here, but not sure where else to put it...
-# Python
-pushd src/interfaces/python
-# Makefile.pre.in doesn't yet support .py files anyway, so we stick to a manual installation
- mkdir -p $RPM_BUILD_ROOT/usr/lib/python1.5/site-packages
- install -m 755 _pgmodule.so *.py $RPM_BUILD_ROOT/usr/lib/python1.5/site-packages/
-popd
+ # Install 7.0 JDBC jars
+ install -m 755 %{SOURCE10} $RPM_BUILD_ROOT/usr/share/pgsql
+ install -m 755 %{SOURCE11} $RPM_BUILD_ROOT/usr/share/pgsql
-# Java/JDBC
-# The user will have to set a CLASSPATH to find it here, but not sure where else to put it...
-# Install 7.0 JDBC jars -- no longer include the 6.5 versions
-install -m 755 %{SOURCE10} $RPM_BUILD_ROOT/usr/lib/pgsql
-install -m 755 %{SOURCE11} $RPM_BUILD_ROOT/usr/lib/pgsql
+%endif
# Fixup more permissions...
chmod 644 $RPM_BUILD_ROOT%{_mandir}/*/*
@@ -370,53 +544,162 @@ then
fi
-# Move the PL's to the right place
-mv $RPM_BUILD_ROOT/usr/lib/pl*.so $RPM_BUILD_ROOT/usr/lib/pgsql
-
# PGDATA needs removal of group and world permissions due to pg_pwd hole.
install -d -m 700 $RPM_BUILD_ROOT/var/lib/pgsql/data
-# Initial pg_options
-install -m 700 %{SOURCE9} $RPM_BUILD_ROOT/var/lib/pgsql/data/pg_options
-
# backups of data go here...
install -d -m 700 $RPM_BUILD_ROOT/var/lib/pgsql/backups
-# tests. There are many files included here that are unnecessary, but include
-# them anyway for completeness.
-mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql/test
-cp -a src/test/regress $RPM_BUILD_ROOT/usr/lib/pgsql/test
-install -m 0755 src/config.guess $RPM_BUILD_ROOT/usr/lib/pgsql
-install -m 0755 contrib/spi/refint.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress
-install -m 0755 contrib/spi/autoinc.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress
+# Move the PL's to the right place
+mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql
+mv $RPM_BUILD_ROOT/usr/lib/pl*.so $RPM_BUILD_ROOT/usr/lib/pgsql
+
+# postgres' .bash_profile
+install -m 644 %{SOURCE15} $RPM_BUILD_ROOT/var/lib/pgsql/.bash_profile
+
+%if %test
+ # tests. There are many files included here that are unnecessary, but include
+ # them anyway for completeness.
+ mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql/test
+ cp -a src/test/regress $RPM_BUILD_ROOT/usr/lib/pgsql/test
+ install -m 0755 config/config.guess $RPM_BUILD_ROOT/usr/lib/pgsql
+ install -m 0755 contrib/spi/refint.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress
+ install -m 0755 contrib/spi/autoinc.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress
+ pushd $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress/
+ strip *.so
+ popd
+%endif
# Upgrade scripts.
pushd $RPM_BUILD_ROOT
tar xzf %{SOURCE7}
popd
+# logrotate script removed until future release
#logrotate script source (which needs WORK)
-mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
-cp %{SOURCE8} $RPM_BUILD_ROOT/etc/logrotate.d/postgres
-chmod 0644 $RPM_BUILD_ROOT/etc/logrotate.d/postgres
-
+#mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
+#cp %{SOURCE8} $RPM_BUILD_ROOT/etc/logrotate.d/postgres
+#chmod 0644 $RPM_BUILD_ROOT/etc/logrotate.d/postgres
# Fix some more documentation
# no need for the OS2 client
rm -rf contrib/os2client
gzip doc/internals.ps
cp %{SOURCE6} README.rpm-dist
+mv $RPM_BUILD_ROOT%{_docdir}/postgresql/html doc
+
+# Build contrib stuff....
+pushd contrib
+make clean
+make all
+popd
+# move the contrib tree to the right place after building....
+cp -r contrib $RPM_BUILD_ROOT/usr/lib/pgsql
+# We'll do more prep work in a later release.....
+
+#more massaging
-# remove the binaries from contrib
+pushd $RPM_BUILD_ROOT/usr/lib/pgsql/contrib
-rm -f `find contrib -name "*.so"`
-rm -f contrib/spi/preprocessor/step1.e
+# Get rid of useless makefiles
+rm -f Makefile */Makefile
+# earthdistance
+pushd earthdistance
+perl -pi -e "s|/usr/share/pgsql/contrib|/usr/lib/pgsql/contrib/earthdistance|" *
+popd
+
+# array
+pushd array
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/array|" *
+popd
+
+# cube
+pushd cube
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/cube|" cube.sql
+popd
+
+# fulltext
+pushd fulltextindex
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/fulltextindex|" *.sql
+popd
+
+# intarray
+pushd intarray
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/intarray|" *.sql
+popd
+
+# isbn_issn
+pushd isbn_issn
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/isbn_issn|" *.sql
+popd
+
+# lo
+pushd lo
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/lo|" *.sql
+popd
+
+# miscutil
+pushd miscutil
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/miscutil|" *.sql
+popd
+
+# noup
+pushd noupdate
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/noupdate|" *.sql
+popd
+
+# pgcrypto
+pushd pgcrypto
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/pgcrypto|" *.sql
+popd
+
+
+# rserv
+pushd rserv
+perl -pi -e "s|/usr/share/|/usr/lib/|" *
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/rserv|" *
+perl -pi -e "s|/usr/bin|/usr/lib/pgsql/contrib/rserv|" *
+perl -pi -e "s|/usr/lib/pgsql/contrib\"|/usr/lib/pgsql/contrib/rserv\"|" *
+perl -pi -e "s|/usr/lib/pgsql/contrib$|/usr/lib/pgsql/contrib/rserv|" *
+popd
+
+# seg
+pushd seg
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/seg|" *.sql
+popd
+
+# soundex
+pushd soundex
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/soundex|" *.sql
+popd
+
+# spi
+pushd spi
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/spi|" *.sql
+popd
+
+# string
+pushd string
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/string|" *.sql
+popd
+
+# userlock
+pushd userlock
+perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/userlock|" *.sql
+popd
+
+popd
# Fix a dangling symlink
mkdir -p $RPM_BUILD_ROOT/usr/include/pgsql/port
cp src/include/port/linux.h $RPM_BUILD_ROOT/usr/include/pgsql/port/
ln -sf port/linux.h $RPM_BUILD_ROOT/usr/include/pgsql/os.h
+#more broken symlinks
+rm -f $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_controldata/pg_crc.c
+cp src/backend/utils/hash/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.c
+ln $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_controldata/pg_crc.c
+
# Symlink libpq.so.2.0 to libpq.so.2.1 for backwards compatibility, until
# -soname patches are the norm.
pushd $RPM_BUILD_ROOT/usr/lib
@@ -433,27 +716,28 @@ if [ $1 -gt 1 ]
then
mkdir -p /usr/lib/pgsql/backup > /dev/null
pushd /usr/bin > /dev/null
- cp -fp postmaster postgres pg_dump pg_dumpall psql /usr/lib/pgsql/backup > /dev/null 2>&1 || :
+ cp -fp postmaster postgres pg_dump pg_dumpall psql /usr/share/pgsql/backup > /dev/null 2>&1 || :
popd > /dev/null
pushd /usr/lib > /dev/null
- cp -fp libpq.* /usr/lib/pgsql/backup > /dev/null 2>&1 || :
+ cp -fp libpq.* /usr/share/pgsql/backup > /dev/null 2>&1 || :
popd > /dev/null
fi
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%pre server
-groupadd -g 26 postgres >/dev/null 2>&1 || :
+groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
useradd -M -n -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \
-c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :
+touch /var/log/pgsql
+chown postgres.postgres /var/log/pgsql
+chmod 0700 /var/log/pgsql
-%post server
+
+%post server
+chkconfig --add postgresql
/sbin/ldconfig
-echo PGLIB=/usr/lib/pgsql >> ~postgres/.bash_profile
-echo PGDATA=/var/lib/pgsql/data >> ~postgres/.bash_profile
-echo export PGLIB PGDATA >> ~postgres/.bash_profile
-/sbin/chkconfig --add postgresql
%preun server
if [ $1 = 0 ] ; then
@@ -470,15 +754,24 @@ if [ $1 = 0 ] ; then
groupdel postgres >/dev/null 2>&1 || :
fi
+%if %odbc
%post -p /sbin/ldconfig odbc
%postun -p /sbin/ldconfig odbc
+%endif
+%if %tcl
%post -p /sbin/ldconfig tcl
%postun -p /sbin/ldconfig tcl
+%endif
-%if %{build_testpackage}
+%if %plperl
+%post -p /sbin/ldconfig plperl
+%postun -p /sbin/ldconfig plperl
+%endif
+
+%if %test
%post test
-chown -R postgres.postgres /usr/lib/pgsql/test >/dev/null 2>&1 || :
+chown -R postgres.postgres /usr/share/pgsql/test >/dev/null 2>&1 || :
%endif
%clean
@@ -493,14 +786,10 @@ rm -f perlfiles.list
%files
%defattr(-,root,root)
-%doc doc/FAQ doc/FAQ_Linux doc/README*
-%doc COPYRIGHT README HISTORY doc/bug.template doc/FAQ_Linux
-%doc contrib doc/unpacked/*
+%doc doc/FAQ doc/KNOWN_BUGS doc/MISSING_FEATURES doc/README*
+%doc COPYRIGHT README HISTORY doc/bug.template
%doc README.rpm-dist
-/usr/lib/libpq.so*
-/usr/lib/libecpg.so*
-/usr/lib/libpq++.so*
-/usr/lib/libpgeasy.so*
+%doc doc/html
/usr/bin/createdb
/usr/bin/createlang
/usr/bin/createuser
@@ -509,7 +798,7 @@ rm -f perlfiles.list
/usr/bin/dropuser
/usr/bin/pg_dump
/usr/bin/pg_dumpall
-/usr/bin/pg_id
+/usr/bin/pg_restore
/usr/bin/psql
/usr/bin/vacuumdb
%{_mandir}/man1/createdb.1*
@@ -523,6 +812,23 @@ rm -f perlfiles.list
%{_mandir}/man1/psql.1*
%{_mandir}/manl/*
+%files docs
+%defattr(-,root,root)
+%doc doc/src/*
+
+%files contrib
+%defattr(-,root,root)
+%dir /usr/lib/pgsql/contrib
+/usr/lib/pgsql/contrib/*
+
+
+%files libs
+%defattr(-,root,root)
+/usr/lib/libpq.so.*
+/usr/lib/libecpg.so.*
+/usr/lib/libpq++.so.*
+/usr/lib/libpgeasy.so.*
+
%files server -f files.lst
%defattr(-,root,root)
/usr/bin/initdb
@@ -530,9 +836,8 @@ rm -f perlfiles.list
/usr/bin/ipcclean
/usr/bin/pg_ctl
/usr/bin/pg_encoding
+/usr/bin/pg_id
/usr/bin/pg_passwd
-/usr/bin/pg_upgrade
-/usr/bin/pg_version
/usr/bin/postgres
/usr/bin/postgresql-dump
/usr/bin/postmaster
@@ -541,405 +846,294 @@ rm -f perlfiles.list
%{_mandir}/man1/initlocation.1*
%{_mandir}/man1/ipcclean.1*
%{_mandir}/man1/pg_ctl.1*
-%{_mandir}/man1/pgadmin.1*
%{_mandir}/man1/pg_passwd.1*
%{_mandir}/man1/postgres.1*
%{_mandir}/man1/postmaster.1*
-%{_mandir}/man1/pg_upgrade.1*
%{_mandir}/man1/vacuumdb.1*
%{_mandir}/man1/postgresql-dump.1*
-/usr/lib/pgsql/global1.bki.source
-/usr/lib/pgsql/global1.description
-/usr/lib/pgsql/local1_template1.bki.source
-/usr/lib/pgsql/local1_template1.description
-/usr/lib/pgsql/*.sample
+/usr/share/pgsql/global.bki
+/usr/share/pgsql/global.description
+/usr/share/pgsql/template1.bki
+/usr/share/pgsql/template1.description
+/usr/share/pgsql/*.sample
/usr/lib/pgsql/plpgsql.so
-%attr(700,postgres,postgres) %dir /usr/lib/pgsql/backup
-/usr/lib/pgsql/backup/pg_dumpall_new
+%dir /usr/lib/pgsql
+%dir /usr/share/pgsql
+%attr(700,postgres,postgres) %dir /usr/share/pgsql/backup
+/usr/share/pgsql/backup/pg_dumpall_new
+%attr(700,postgres,postgres) %dir /var/lib/pgsql
%attr(700,postgres,postgres) %dir /var/lib/pgsql/data
-%attr(700,postgres,postgres) /var/lib/pgsql/data/pg_options
%attr(700,postgres,postgres) %dir /var/lib/pgsql/backups
+%attr(644,postgres,postgres) %config(noreplace) /var/lib/pgsql/.bash_profile
%files devel
%defattr(-,root,root)
-/usr/include/pgsql
+%dir /usr/include/pgsql
+/usr/include/pgsql/*
/usr/bin/ecpg
/usr/lib/lib*.a
+/usr/bin/pg_config
+/usr/lib/libpq.so
+/usr/lib/libecpg.so
+/usr/lib/libpq++.so
+/usr/lib/libpgeasy.so
%{_mandir}/man1/ecpg.1*
+%if %tcl
%files tcl
%defattr(-,root,root)
%attr(755,root,root) /usr/lib/libpgtcl.so*
/usr/bin/pgtclsh
%{_mandir}/man1/pgtclsh.1*
/usr/lib/pgsql/pltcl.so
+%endif
+%if %tkpkg
%files tk
%defattr(-,root,root)
+/usr/bin/pgtksh
+%{_mandir}/man1/pgtksh.1*
+%endif
+%if %pgaccess
%doc doc/pgaccess/*
-/usr/lib/pgsql/pgaccess
+/usr/share/pgsql/pgaccess
/usr/bin/pgaccess
-/usr/bin/pgtksh
%{_mandir}/man1/pgaccess.1*
-%{_mandir}/man1/pgtksh.1*
+%endif
+%if %odbc
%files odbc
%defattr(-,root,root)
%attr(755,root,root) /usr/lib/libpsqlodbc.so*
-/usr/lib/pgsql/odbcinst.ini
+%config(noreplace) /etc/pgsql/odbcinst.ini
+/usr/share/pgsql/odbc.sql
+%endif
+%if %perl
%files -f perlfiles.list perl
%defattr (-,root,root)
-/usr/lib/pgsql/perl5
+%dir /usr/lib/perl5/site_perl/%{_arch}-linux/auto
+/usr/share/pgsql/perl5
%{_mandir}/man3/Pg.*
+%endif
+%if %plperl
+%files plperl
+%defattr(-,root,root)
+/usr/lib/pgsql/plperl.so
+%endif
+
+%if %python
%files python
%defattr(-,root,root)
%doc src/interfaces/python/README src/interfaces/python/tutorial
-/usr/lib/python1.5/site-packages/_pgmodule.so
-/usr/lib/python1.5/site-packages/*.py
+/usr/lib/python%{pyver}/site-packages/_pgmodule.so
+/usr/lib/python%{pyver}/site-packages/*.py
+%endif
+%if %jdbc
%files jdbc
%defattr(-,root,root)
-/usr/lib/pgsql/jdbc7.0-1.1.jar
-/usr/lib/pgsql/jdbc7.0-1.2.jar
+/usr/share/pgsql/jdbc7.0-1.1.jar
+/usr/share/pgsql/jdbc7.1-1.2.jar
+%endif
-%if %{build_testpackage}
+%if %test
%files test
%defattr(-,postgres,postgres)
+%dir /usr/lib/pgsql/test
%attr(755,postgres,postgres)/usr/lib/pgsql/config.guess
-%attr(-,postgres,postgres)/usr/lib/pgsql/test/regress/*
+%attr(-,postgres,postgres) %dir /usr/lib/pgsql/test
+%attr(-,postgres,postgres)/usr/lib/pgsql/test/*
%endif
-# Conventions for PostgreSQL RPM releases:
-# Pre-releases are those that are built from CVS snapshots or pre-release
-# tarballs from postgresql.org. Pre-releases should have a fractional release
-# number to show their pre-release status. Official beta releases are not
-# considered pre-releases, nor are release candidates, as their beta or
-# release candidate status is reflected in the version of the tarball. Pre-
-# releases' versions do not change -- the pre-release tarball of 7.0.3, for
-# example, has the same tarball version as the final official release of 7.0.3:
-# but the tarball is different.
-
-# Pre-release RPM's should not be put up on the public ftp.postgresql.org server
-# -- only full integer releases should be.
-
-# Start changelog proper below this comment
-
-
%changelog
-* Wed Jan 9 2003 Andrew Overholt <overholt@redhat.com> [7.0.3-9.2]
-- addition to security backpatch
-
-* Tue Jan 7 2003 Andrew Overholt <overholt@redhat.com> [7.0.3-9]
-- add security backpatch from more recent versions (~#74505)
-
-* Thu Mar 22 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- obsolete postgresql-test when not building it (#32640)
-- make /lib/cpp a buildprereq, not a standard prereq
-- remove the /var/log/postgresql and /etc/logrotate.d
- files - I don't see a way to enable it currently...
- (#31165). The logrotate file is still included in the SRPM,
- so make it easier to add logging later.
-- remove mentions of "-u" from pg_dumpall, as it doesn't seem
- to work
-
-
-* Tue Jan 23 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- improve gettextization
-
-* Wed Jan 17 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- gettextize
-- turn off by default
-
-* Fri Jan 12 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- use mkstemp for creating the file used by \e in the psql
- client (problem from #23695, patch made from scratch)
-- increase sleep interval in init script (#23870)
-- don't include JDBC jars for 6.5 anymore
-- add a conditional for building test subpackage
-- misc cleanups
-
-* Thu Jan 11 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- add tk as a buildprereq (#23693)
-
-* Mon Jan 01 2001 Trond Eivind Glomsrød <teg@redhat.com>
-- bzip sources
-- remove test package
-
-* Mon Dec 11 2000 Oliver Paukstadt <oliver.paukstadt@millenux.com>
-- ported to s390
-
-* Fri Dec 01 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- changes to the logrotate script
-- fix spelling error in postgresql-tcl description
-
-* Tue Nov 14 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- made a template for IA64 (symlink to i386)
-
-* Mon Nov 13 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- add patch for IA64 (I got one from Lamar and modified it)
-
-* Mon Nov 13 2000 Lamar Owen <lamar@postgresql.org>
-- RELEASE: 7.0.3-1
-- Minor edits to initscript.
-- PRE-RELEASE: 7.0.3-0.6 (final test)
-- Final 7.0.3 tarball.
-- Cross-dist changes to RedHat initscript for better portability.
-- changed README.rpm name to README.rpm-dist (the .rpm extension confused
---some GUI file managers, as RealPlayer also uses that extension).
-- Edited README.rpm-dist to reflect cross-distribution packaging.
-- NOTE: SuSE cross-compatibility is not yet complete SuSE RPM's for 7.0.3
---that are tailored for SuSE will be made available.
-- Fixed stupid dependency -- the main .so's were in the devel package (Arggh)
-
-* Sat Nov 11 2000 Lamar Owen <lamar@postgresql.org>
-- PRE-RELEASE: 7.0.3-0.5
-- Framework for better distribution-independent build
-- Conditional around libtool conf stuff copy (For RedHat 6.1 and such).
-- Conditional around RedHat-style initscript stuff.
-- Comments at top of spec file now list copyright and license for spec file,
---as the license and copyright for the spec file itself has not previously
---been stated.
-- Envvars for postgres home dir login in .bash_profile.
-- initscript now checks for success and failure functions using:
---typeset -f|grep "declare -f function_name" construct.
-
-* Fri Nov 10 2000 Lamar Owen <lamar@postgresql.org>
-- PRE-RELEASE: 7.0.3-0.4
-- Directory ownership on /usr/lib/pgsql/test/regress was root.root.
-- Patch Makefile.shlib to not use -soname for RPM's.
-- Newer prerelease 7.0.3 tarball.
-
-* Thu Nov 09 2000 Lamar Owen <lamar@postgresql.org>
-- PRE-RELEASE: 7.0.3-0.3
-- Don't bother copying the test stuff I'm not packaging.
-- Fix group add/del stuff in server subpackage post and postun scriptlets.
-- symlink /usr/lib/libpq.so.2.0 -> libpq.so.2.1
-
-* Mon Nov 06 2000 Lamar Owen <lamar@postgresql.org>
-- PRE-RELEASE: 7.0.3-0.2
-- preliminary 7.0.3 distribution tarball -- reinstated man pages, etc.
-
-* Sat Nov 04 2000 Lamar Owen <lamar@postgresql.org>
-- PRE-RELEASE: 7.0.3-0.1.
-- Improved test subpackage -- only package regression.
-- Latest pre-7.0.3 snapshot.
-- Split out SuSE and Caldera spec files. Caldera COL eServer 2.3 requires
--- RPM 2.5.5-compatible spec files. SuSE is just too different from the others
--- for the spec file to cope, for now.
-- TODO: man pages and documentation.
-
-* Mon Oct 30 2000 Lamar Owen <lamar@postgresql.org>
-- pre-7.0.3
-
-* Mon Oct 30 2000 Lamar Owen <lamar@postgresql.org>
-- Reenabled the test subpackage for ftp.postgresql.org dist.
-- Backported to RH 6.2 -- involved the Pg man page, doesn't appear to require
--- other stuff to be done.
-
-
-* Sun Oct 22 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- make /etc/logrotate.d/postgres 0644 instead of 0700 (#19520)
-
-
-* Thu Oct 19 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- rebuild with new glibc which has semaphore fixes for Alpha
-
-* Tue Sep 05 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- add documention for python interface (#17261)
-- move the python interface tutorial to the %%doc section
-
-* Thu Aug 24 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- the old dump script didn't work - added rh-pgdump.sh
- to handle this. Point docs at it, and tell how it is to be used.
-
-* Mon Aug 21 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- fix the initscript so it points you at the 7.0.2 directory
- in /usr/share/doc, not 7.0 (#16163). Also, remove statement
- it was built on a 6.2 system.
-- prereq /lib/cpp and initscripts
-- fix backups of existing files (#16706)
-- fix conditional restart
-
-* Sat Aug 19 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- fix README.rpm to it points at /usr/share/doc, not /usr/doc
- (part of #16416)
-
-* Wed Aug 16 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- don't build test package anymore, it's broken. These
- tests should be run by pgsql developers and not
- by db-developers, so it's not a big loss (#16165).
- Obsolete it in the main package, so it doesn't get left over
-
-* Mon Aug 14 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- reference docs in /usr/share/doc, not /usr/doc (#16163)
-- add python-devel, perl and tcl as build prereqs
-- use /dev/null as STDIN for su commands in initscripts,
- to avoid error messages from not being able to read from
- tty
-
-* Sat Aug 05 2000 Bill Nottingham <notting@redhat.com>
-- condrestart fixes
-
-* Mon Jul 31 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- remove all plperl references, to avoid confusing post install scripts
-- cleanups
-
-* Mon Jul 17 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- remove the symlink from libpq.so.2.0 to libpq.so.2.1
-- remove some binaries from docs
-- fix dangling symlink os.h
-- use /sbin/service
-
-* Thu Jul 13 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- don't strip manually
-- fixes to init script so they look more like the rest
- (#13749, from giulioo@pobox.com)
-- use /etc/rc.d/init.d again (sigh)
-
-* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
-- automatic rebuild
-
-* Thu Jul 06 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- "Prereq:", not "Requires:" for /etc/init.d
-
-* Thu Jul 06 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- require /etc/init.d
-
-* Wed Jun 21 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- remove perl kludge as perl 5.6 is now fixed
-- include the man page for the perl module
-- fix the init script and spec file to handle conditional
- restart
-- move the init file to /etc/init.d
-- use License instead of Copyright
-
-* Mon Jun 19 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- rebuild
-
-* Tue Jun 13 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- use %%defattr on postgresql-perl
-- use %%{_tmppath}
-- Don't use release number in patch
-- Don't build on ia64 yet
-
-* Mon Jun 12 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0.2-2
-- Corrected misreporting of version.
-- Corrected for non-root build clean script.
-
-* Mon Jun 05 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0.2
-- Postgresql-dump manpage to man1, and to separate source file to facilitate
--- _mandir macro expansion correctness.
-- NOTE: The PostScript documentation is no longer being included in the
--- PostgreSQL tarball. If demand is such, I will pull together a
--- postgresql-ps-docs subpackage or pull in the PostScript docs into the
--- main package.
-- RPM patchset has release number, now, to prevent patchfile confusion :-(.
-
-
-* Sat Jun 03 2000 Lamar Owen <lamar.owen@wgcr.org>
-- Incorporate most of Trond's changes (reenabled the alpha
--- patches, as it was a packaging error on my part).
-- Trimmed changelog history to Version 7.0beta1 on. To see the
--- previous changelog, grab the 6.5.3 RPM from RedHat 6.2 and pull the spec.
-- Rev to 7.0.1 (which incorporates the syslog patch, which has
--- been removed from rpm-pgsql-7.0.1-1.patch)
-
-* Fri May 26 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- disable the alpha patch, as it doesn't apply cleanly
-- removed distribution, packager, vendor
-- renamed spec file
-- don't build pl-perl
-- use %%{_mandir}
-- now includes vacuumdb.1*
-
-* Thu May 25 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0-3
-- Incorporated Tatsuo's syslog segmentation patches
-- Incorporated some of Trond's changes (see below)
--- Fixed some Perl 5.6 oddness in Rawhide
-- Incorporated some of Karl's changes (see below)
--- PL/Perl should now work.
-- Fixed missing /usr/bin/pg_passwd.
-
-* Mon May 22 2000 Karl DeBisschop <kdebisschop@infoplease.com>
-- 7.0-2.1
-- make plperl module (works for linux i386, your guess for other platforms)
-- use "make COPT=" because postgreSQL configusre script ignores CFLAGS
-
-* Sat May 20 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0-2
-- pg_options default values changed.
-- SPI headers (again!) fixed in a permanent manner -- hopefully!
-- Alpha patches!
-
-* Wed May 17 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- changed bug in including man pages
-
-* Tue May 16 2000 Trond Eivind Glomsrød <teg@redhat.com>
-- changed buildroot, removed packager, vendor, distribution
--- [Left all but buildroot as-is for PostgreSQL.org RPMS. LRO]
-- don't strip in package [strip in PostgreSQL.org RPMS]
-- fix perl weirdnesses (man page in bad location, remove
- perllocal.pod from file list)
-
-* Mon May 15 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0 final -1
-- Man pages restructured
-- Changed README.rpm notices about BETA
-- incorporated minor changes from testing
-- still no 7.0 final alpha patches -- for -2 or -3, I guess.
-- 7.0 JDBC jars!
-
-* Sat May 06 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0RC5-0.5
-- UserID of 26 to conform to RedHat Standard, instead of 40. This only
--- is for new installs -- upgrades will use what was already there.
-- Waiting on built jar's of JDBC. If none are forthcoming by release,
--- I'm going to have to bite the bullet and install the jdk....
-
-* Mon May 01 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0RC2-0.5
-- Fixed /usr/src/redhat/BUILD path to $RPM_BUILD_DIR for portability
--- and so that RPM's can be built by non-root.
-- Minor update to README.rpm
-
-* Tue Apr 18 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 0.6
-- Fixed patchset: wasn't patching pgaccess or -i in postmaster.opts.default
-- minor update to README.rpm
-
-* Mon Apr 17 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0RC1-0.5 (release candidate 1.)
-- Fixed SPI header directories' permisssions.
-- Removed packaging of Alpha patches until Ryan releases RC1-tested set.
-
-* Mon Apr 10 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0beta5-0.1 (released instead of the release candidate)
-
-* Sat Apr 08 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0beta4-0.2 (pre-release-candidate CVS checkout)
-- Alpha patches!
-- pg_options.sample
-
-* Fri Mar 24 2000 Lamar Owen <lamar.owen@wgcr.org>
-- 7.0beta3-0.1
-
-* Mon Feb 28 2000 Lamar Owen <lamar.owen@wgcr.org>
-- Release 0.3
-- Fixed stderr redir problem in init script
-- Init script now uses pg_ctl to start postmaster
-- Packaged inital pg_options for good logging
-- built with timestamped logging.
-
-* Tue Feb 22 2000 Lamar Owen <lamar.owen@wgcr.org>
-- Initial 7.0beta1 build
-- Moved PGDATA to /var/lib/pgsql/data
-- First stab at logging and logrotate functionality -- test carefully!
-- -tcl subpackage split -- tcl client and pltcl lang separated from
--- the Tk stuff. PgAccess and the tk client are now in the -tk subpackage.
-- No patches for Alpha as yet.
-
+* Mon Aug 20 2001 Trond Eivind Glomsrød <teg@redhat.com> 7.1.3-1
+- Updated README.rpm-dist from Lamar
+- Work around the horror that is perl's Makefile generation
+ (LD_RUN_PATH is not a good thing) (#51957)
+- 7.1.3, stable bugfix release. Remove patches from CVS as they are now included
+- Own more directories
+
+* Mon Aug 6 2001 Trond Eivind Glomsrød <teg@redhat.com> 7.1.2-7
+- Add patches from 7.1-stable branch. This should fix #50799 and #50797
+- Enable kerberos authentication (#50644)
+- handle stop with stale pid file (#50499)
+- make the test subpackage (not built by default) own /usr/lib/pgsql/test
+
+* Mon Jul 9 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Make the -devel subpackage depend on -libs, not the main package
+
+* Tue Jun 19 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Make sure the python subpackage depends on mx - otherwise, you'd get an
+ error when importing
+
+* Mon Jun 18 2001 Florian La Roche <Florian.LaRoche@redhat.de>
+- add changes for s390x
+
+* Fri Jun 15 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Many path fixes for contrib packages
+- Newer intarray
+- Don't use nested ifs for tkpkg/pgaccess
+- Turn off test package for Red Hat Linux - it makes most sense just to use
+ this during development
+- One "pgacess" -> "pgaccess"
+
+* Wed Jun 13 2001 Lamar Owen <lamar.owen@wgcr.org> <lamar@postgresql.org>
+- -4PGDG
+- patchset update for pg_regress.sh
+- can the dot in the release -- confused too many people and some programs.
+- -3.PGDG
+- updated README.rpm-dist
+- updated patch to 7.1.2, fixing some places where /usr/share/pgsql
+ was still being used where /usr/lib/pgsql was intended.
+- PGLIB now set to /usr/lib/pgsql -- initdb doesn't use it to find the bki's.
+
+* Tue Jun 12 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- sync
+- Run chkconfig --add on server install
+- Move the prereqs on useradd on chkconfig to the server package
+- don't disable the %%clean section
+
+* Sat Jun 09 2001 Lamar Owen <lamar.owen@wgcr.org>
+- Sync up with Trond Eivind's set.
+
+* Thu Jun 7 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Don't create postgres' .bashrc from the server post script: include it instead
+- Move the test packages from /usr/share/pgsql to /usr/lib/pgsql
+- Move the symlinks libpq.so, libecpg.so, libpq++.so and libpgeasy.so to the devel subpackage from
+ libs
+- Source the i18n data from the .bashrc instead of in the initscript
+
+* Mon May 28 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Handle i18n for database startup - backend needs to have the same locale everytime,
+ but this certainly can't be hardcoded to C either
+- Fix stop, restart in initscript (#42217)
+- Make database init _much_ less verbose
+- other minor fixes to the initscript
+
+* Fri May 25 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- 7.1.2
+
+* Thu May 24 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- 7.1.2-0.1.1.PGDG PRERELEASE
+- Changed versioning and release numbering a little for better flexibility,
+-- particularly for distribution packagers.
+- Release numbering comment at top of spec, where it's more useful.
+- Trimmed changelog to 7.1.x. See the last 7.0.3's specfile for the 7.0
+ changlog, and the last 6.5.3's specfile for the changelog prior to
+ 7.0.
+
+* Sun May 20 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- 7.1.1-4.PGDG
+- _really_ got Python version agnosticism working.
+
+* Sat May 19 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- 7.1.1-3.PGDG Release
+- Python version agnosticism.....
+
+* Tue May 15 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Use openssl
+- Make it obsolete subpackages if they aren't built
+
+* Mon May 14 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- 7.1.1-2.PGDG Release.
+- Appended .PGDG to release string to differentiate our RPM set from the others.
+- /bin/sh fix in initscript
+- README.rpm-dist updates.
+
+* Mon May 14 2001 Bernhard Rosenkraenzer <bero@redhat.com> 7.1.1-0.7
+- Rebuild with new readline
+
+* Thu May 10 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Initial 7.1.1
+
+* Mon May 7 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- Specify shell when running commands through su in the initscript, to avoid problems
+ when people switch the postgres user to use tcsh
+
+* Thu Apr 19 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- JDBC driver for Postgresql 7.1
+
+* Sun Apr 15 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- slightly different versioning scheming, will go back to the official
+ later when I'm sure the package is ready to use
+
+* Fri Apr 13 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- 7.1 RELEASE
+- 7.1-1 RPM RELEASE
+- Change to COPTS -- strip out -ffastmath -- Considered Harmful.
+- Back to old versioning scheme, kept teg's other fixes.
+- README.rpm-dist updated.
+- PGVERSION updated all-around (hopefully!)
+- Couple of fixes from Peter E.
+- Rearrange dependencies -- only the -libs subpackage is required for most stuff
+- Removed broken and confusing logrotate script.
+
+* Mon Apr 9 2001 Trond Eivind Glomsrød <teg@redhat.com>
+- chown considered harmful - removed
+- fix dangling symlimks (pg_crc.c)
+- libpq.so changes for maximum compatiblity
+- different versioning scheme, to avoid trouble later
+- remove temporary perl file from the file list
+- fix spelling error in tcl description
+- mark odbcinst.ini as a config file
+- use %%defattr on packages which didn't have it
+
+* Sat Apr 07 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- Integrated the PL/Perl stuff from Karl DeBisschop --conditional.
+- Packaging reorg: added contrib and docs subpackages.
+- Removed sgml source docs from main package --> docs subpackage.
+- Removed contrib tree from main package --> contrib subpackage.
+- Contrib tree is now prebuilt -- HOWEVER, very little install work is
+ currently done with this.
+
+* Fri Apr 06 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- Quickie RC3. There will be a 7.1RC3-2 shortly with other stuff.
+
+* Tue Apr 03 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- RC2
+- eliminate versioning information for ancilliary files in prep for CVS.
+- Fix docs mixup.
+
+* Tue Mar 27 2001 Lamar Owen <lamar@postgresql.org> <lamar.owen@wgcr.org>
+- RC1 quickie.
+
+* Tue Mar 20 2001 Lamar Owen <lamar@postgresql.org>
+- Beta 6 initial build.
+- Use make install-all-headers instead of cpio hack for devel headers.
+- Split out the libs into the libs subpackage.
+- Updated initscript to use pg_ctl to stop
+- Updated initscript to initdb and start postmaster with LC_ALL=C to
+ prevent index corruption.
+
+
+* Sun Jan 28 2001 Lamar Owen <lamar@postgresql.org>
+- Beta4
+- Return to 'pgsql' directories instead of 'postgresql'
+- Better perl patches.
+
+* Mon Jan 15 2001 Lamar Owen <lamar@postgresql.org>
+- Edit patches to get rid of some cruft.
+- Eliminate some more pre-7.1 specfile baggage that is no longer necessary.
+- Moved pg_id to server
+- added Makefile.global and pg_config to devel
+- Corrected /usr/include/pgsql to /usr/include/postgresql
+- Fixed some configure options. Will be trying the configure macro next release
+- Since it is terminally ill in this version pg_upgrade is _gone_.
+- Thanks to Peter E for a good review.
+
+* Sun Jan 14 2001 Lamar Owen <lamar@postgresql.org>
+- Running regression. 1 on the release-o-meter.
+- Minor patches to get regression running right.
+- Initscript tweaking -- the old test for a database structure fails with 7.1's new structure.
+
+* Sat Jan 13 2001 Lamar Owen <lamar@postgresql.org>
+- Perl 5 needs to be built with PREFIX set on the Makefile, not GNUmakefile....
+- The 7.1 build is different from the 7.0 build -- see the configure line.
+- NOTE: many files that used to be in /usr/share/postgresql are now in /usr/share/postgresql!
+- by request, conditional packages are now supported. See the top of the spec.
+- Fixed the server postinstall problems.
+
+* Mon Jan 08 2001 Lamar Owen <lamar@postgresql.org>
+- First 7.1 beta test-build
diff --git a/sources b/sources
index 6196653..6c4f126 100644
--- a/sources
+++ b/sources
@@ -1,5 +1,5 @@
-57d69fb52be57f7caa91cccf7d24d199 file-lists-pgsql-7.0.3.tar.gz
-baae3796a93a2aaac512cc05abfebc89 pg-migration-scripts-7.0.3.tar.gz
-c139d0716a459622c463bab8c438e3cc postgresql-7.0.3-alpha.patch.gz
-498790137935e5a957170100a30d5489 postgresql-7.0.3.tar.bz2
+85e9b43217c22ca22a45b3a831f7df4a contrib-intarray.tar.gz
+57d69fb52be57f7caa91cccf7d24d199 file-lists.tar.gz
+5e9beca9c039be1ded2e51a0edcd9fba migration-scripts.tar.gz
+a92c77092034fb35c7b3bb82beebd54b postgresql-7.1.3.tar.gz
3d2e8223f6bb715659cbecedeae81ccc postgresql-dump.1.gz