From 084ca74c6414a272863de0ae756ee704386ae380 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 18 Aug 2009 02:58:55 +0000 Subject: [PATCH] Update to PostgreSQL 8.4.0. --- .cvsignore | 4 +- Makefile.regress | 8 +- README.rpm-dist | 171 ++++++++++++++++-------------------- postgresql-ac-version.patch | 12 +-- postgresql-logging.patch | 17 ++-- postgresql-perl-rpath.patch | 10 +-- postgresql-test.patch | 53 ----------- postgresql.init | 19 ++-- postgresql.spec | 144 ++++++++++++++---------------- rpm-pgsql.patch | 22 +++-- sources | 4 +- 11 files changed, 190 insertions(+), 274 deletions(-) delete mode 100644 postgresql-test.patch diff --git a/.cvsignore b/.cvsignore index b522c56..e9bc1ce 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,5 +1,5 @@ -postgresql-8.3.7.tar.bz2 +postgresql-8.4.0.tar.bz2 PyGreSQL-3.8.1.tgz pgtcl1.6.2.tar.gz pgtcldocs-20070115.zip -postgresql-8.3.7-US.pdf +postgresql-8.4.0-US.pdf diff --git a/Makefile.regress b/Makefile.regress index c722d29..1de43c4 100644 --- a/Makefile.regress +++ b/Makefile.regress @@ -33,10 +33,10 @@ abs_builddir := $(shell pwd) check: installcheck-parallel installcheck: cleandirs - ./pg_regress --schedule=$(srcdir)/serial_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) + ./pg_regress --schedule=$(srcdir)/serial_schedule --dlpath=. --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) installcheck-parallel: cleandirs - ./pg_regress --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE) + ./pg_regress --schedule=$(srcdir)/parallel_schedule --dlpath=. --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE) # The tests command the server to write into testtablespace and results. # On a SELinux-enabled system this will fail unless we mark those directories @@ -53,10 +53,10 @@ runtest: installcheck runtest-parallel: installcheck-parallel bigtest: cleandirs - ./pg_regress --schedule=$(srcdir)/serial_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) numeric_big + ./pg_regress --schedule=$(srcdir)/serial_schedule --dlpath=. --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) numeric_big bigcheck: cleandirs - ./pg_regress --schedule=$(srcdir)/parallel_schedule --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE) numeric_big + ./pg_regress --schedule=$(srcdir)/parallel_schedule --dlpath=. --multibyte=$(MULTIBYTE) --load-language=plpgsql $(MAXCONNOPT) $(NOLOCALE) numeric_big ## diff --git a/README.rpm-dist b/README.rpm-dist index 4924c39..e4f43a8 100644 --- a/README.rpm-dist +++ b/README.rpm-dist @@ -1,12 +1,12 @@ README.rpm-dist ----------------------------------------------------------------------------- -Version 8.2, for the PostgreSQL 8.2.1-2 RPMset. -Devrim Gündüz , Lamar Owen +Version 8.4, for the PostgreSQL 8.4 RPM set. +Devrim Gündüz ----------------------------------------------------------------------------- Contents: 0.) Quick note about '-i' - 1.) Introduction, QuickStart, and credits + 1.) Introduction and QuickStart 2.) PostgreSQL RPM packages and rationale 3.) Starting multiple postmasters 4.) Regression Testing @@ -31,44 +31,49 @@ This document exists to explain the layout of the RPMs for PostgreSQL, to describe various RPM specifics, and to document special features found in the RPMset. -This document is written to be applicable to version 8.2 of PostgreSQL, +This document is written to be applicable to version 8.4 of PostgreSQL, which is the current version of the RPMs as of this writing. More to the -point, versions prior to 8.2 are not documented here. +point, versions prior to 8.4 are not documented here. -Official PostgreSQL Global Development Group RPMs have from version 7.1.2 -on carried a 'PGDG' after the release number. Other RPMsets distributed -with Linux distributions may have a different release number and initials. +Official PostgreSQL Global Development Group RPMs carry a 'PGDG after the +release number. Other RPMsets 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. +If you want to stay up-to-date on the PostgreSQL core itself, you may +want to use PGDG set, instead of the binaries supplied by distribution. -These RPMs no longer support any sort of upgrading process other than that -documented in the regular documentation. That is, you must dump, upgrade, -initdb, and restore your data. Dump first, then remove the old server -subpackage, install the new package, and restore the data from dump. (A new -method of running multiple versions of PostgreSQL, along with the capability -to run multiple postmasters, is in development, but was not ready for this -release.) +These RPMs do not support any sort of major version upgrading process +other than that documented in the regular documentation. That is, you +must dump, upgrade,initdb, and restore your data if you are +performing a major version update. This is not needed for minor version +updates. -SuSE has maintained their own RPMset for some time -- their documentation -supercedes any found in this file. +For major version upgrade, dump first, then remove the old server +subpackage, install the new package, and restore the data from dump. + +This document is intended for use only with Red Hat, CentOS and Fedora. QUICKSTART ----------------------------------------------------------------------------- -For a fresh installation on a recent Red Hat or similar system, a simple - service postgresql start -as root will prepare a new database (initdb), and start a postmaster that -will listen on localhost and Unix socket 5432 only. Edit -/var/lib/pgsql/data/postgresql.conf and pg_hba.conf if you want to allow -remote access -- see the section on Grand Unified Configuration. +For a fresh installation, you will need to initialize the cluster first. Run: -The file /var/lib/pgsql/.bash_profile is now packaged to help with the + service postgresql initdb + +as root, and it will prepare a new database cluster for you. Then you will +need to start PostgreSQL. Again as root, run: + + service postgresql start + +This command will start a postmaster that willl listen on localhost and Unix +socket 5432 only. Edit /var/lib/pgsql/data/postgresql.conf and pg_hba.conf +if you want to allow remote access -- see the section on Grand Unified +Configuration. + +The file /var/lib/pgsql/.bash_profile is 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. +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 @@ -76,26 +81,6 @@ 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 it 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 Glomsrd -Mark Knox -Mike Mascari -Nicolas Huillard -Karl DeBisschop -Roger Luethi -Jeff Johnson -Reinhard Max -Peter Eisentraut -Joe Conway -Andrew Overholt -David Jee -Kaj J. Niemi -Devrim Gunduz - POSTGRESQL RPM PACKAGES AND RATIONALE. ----------------------------------------------------------------------------- PostgreSQL is split up into multiple packages so that users can 'pick and @@ -139,31 +124,25 @@ 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 -Red Hat / Fedora Core locations are listed below. +/usr/share/doc, /usr/share/doc/packages, or some other similar path. + +However, the Red Hat / CentOS / Fedora RPM's install the files like +this: -However, the RPMs install the files like this: Executables: /usr/bin -Libraries: /usr/lib -Documentation: /usr/share/doc/postgresql-x.y.z +Libraries: /usr/lib (or /usr/lib64) +Documentation: /usr/share/doc/postgresql-docs-x.y.z/html Contrib documentation: /usr/share/doc/postgresql-contrib-x.y.z Source: not installed Data: /var/lib/pgsql/data -Backup area: /var/lib/pgsql/backup +Backup area: /var/lib/pgsql/backups Templates: /usr/share/pgsql -Procedural Languages: /usr/lib/pgsql +Procedural Languages: /usr/lib/pgsql or /usr/lib64/pgsql Development Headers: /usr/include/pgsql -Localization data: /usr/share/locale Other shared data: /usr/share/pgsql Regression tests: /usr/lib/pgsql/test/regress (in the -test package) -Tutorial: /usr/lib/pgsql/tutorial (in the -docs package) -Extra documentation: /usr/share/doc/postgresql-docs-x.y.z - -On some 64-bit architectures, /usr/lib64 is used instead of /usr/lib. - -The above list describes the Red Hat / Fedora Core layout. These locations -may change for other distributions. Use of 'rpm -ql' for each package is -recommended as the 'official' information source. + or /usr/lib64/pgsql/test/regress +Documentation SGML: /usr/share/doc/postgresql-docs-x.y.z/sgml 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 @@ -211,24 +190,26 @@ 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 "make check". +/usr/lib/pgsql/test/regress (or /usr/lib64/pgsql/test/regress), +su to postgres, and execute "make check". This command will start the regression tests and will both show the results to the screen and store the results in the file regress.out. If any tests fail, see the file regression.diffs in that directory for details, and read the "Regression Tests" section of the PostgreSQL documentation to find out whether the differences are actually significant. If you need help -interpreting the results, contact the pgsql-ports list at postgresql.org or -the pgsqlrpms-general list at pgfoundry.org. +interpreting the results, contact the pgsql-general list at +postgresql.org. After testing, say "make clean" to remove the files generated by the test script. STARTING POSTMASTER AUTOMATICALLY AT SYSTEM STARTUP ------------------------------------------------------------------------------- -Red Hat 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 +Fedora / Red Hat / CentOS use 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 service postgresql start To shut the postmaster down, service postgresql stop @@ -269,12 +250,12 @@ REBUILDING FROM SOURCE RPM ------------------------------------------------------------------------------- If your distribution is not supported by the binary RPMs 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. +release. You will need to be root to rebuild, unless you have set up +a non-root build environment (which is the recommended method anyway). -Install the source RPM with rpm -i, then CD to the rpm building area (on Red -Hat or Fedora Core this is /usr/src/redhat by default). You will have to have -a full development environment to rebuild the full RPM set. +Install the source RPM with rpm -i, then cd to the rpm building area +(which 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: @@ -283,22 +264,25 @@ beta 0 #build with cassert and do not strip the binaries python 1 #build the postgresql-python package. tcl 1 #build the postgresql-tcl package. test 1 #build the postgresql-test package. -plpython 1 #build the PL/Python package -pltcl 1 #build the PL/Tcl package. -plperl 1 #build the PL/Perl package. +plpython 1 #build the PL/Python procedural language package. +pltcl 1 #build the PL/Tcl procedural language package. +plperl 1 #build the PL/Perl procedural language package. ssl 1 #use OpenSSL support. kerberos 1 #use Kerberos 5 support. nls 1 #build with national language support. +ldap 1 #build with LDAP support. pam 1 #build with PAM support. runselftest 1 #do "make check" during the build. -xml 1 #build contrib/xml2 +sdt 1 #build with SystemTap support. +xml 1 #build with XML support pgfts 1 #build with --enable-thread-safety +uuid 1 #build contrib/uuid-ossp To use these defines, invoke a rebuild like this: rpmbuild --rebuild --define 'python 0' --define 'tcl 0' \ - --define 'test 0' --define 'runselftest 1' --define 'kerberos 0' \ - postgresql-8.2.1-1.src.rpm -This line would disable the python, tcl, and test subpackages, enable the + --define 'test 0' --define 'runselftest 0' --define 'kerberos 0' \ + postgresql-8.4.0-1.src.rpm +This line would disable the python, tcl, and test subpackages, disable the regression test run during build, and disable kerberos support. You might need to disable runselftest if there is an installed version of @@ -314,23 +298,16 @@ CONTRIB FILES The contents of the contrib tree are packaged into the -contrib subpackage and are processed with make and make install. There is documentation in /usr/share/doc/postgresql-contrib-VERSION for these modules. Most of the -modules are in /usr/lib/pgsql for loadable modules, and binaries are in -/usr/bin. In the future these files may be split out, depending upon function -and dependencies. +modules are in /usr/lib/pgsql (or /usr/lib64/pgsql) for loadable +modules, and binaries are in /usr/bin. In the future these files may be +split out, depending upon function and dependencies. MORE INFORMATION ------------------------------------------------------------------------------- You can get more information at http://www.postgresql.org and -http://pgfoundry.org/projects/pgsqlrpms +http://yum.pgsqlrpms.org Please help make this packaging better -- let us know if you find problems, or -better ways of doing things. You can reach us by e-mail at +better ways of doing things. You can reach us by e-mail at pgsqlrpms-hackers@pgfoundry.org - -SUSE products usually ship with the latest version of PostgreSQL that -was available at the time they were released. RPMs for newer versions -of PostgreSQL can be found on the SUSE FTP server and it's mirrors. - -ftp://ftp.suse.com/pub/projects/postgresql -http://www.novell.com/products/linuxprofessional/downloads/ftp/int_mirrors.html ------------------------------------------------------------------------------- diff --git a/postgresql-ac-version.patch b/postgresql-ac-version.patch index 05e3fb0..9782d13 100644 --- a/postgresql-ac-version.patch +++ b/postgresql-ac-version.patch @@ -4,17 +4,17 @@ for PostgreSQL, but it's not very tenable in the Fedora/RHEL world. Dike out the check. -diff -Naur postgresql-8.3.7.orig/configure.in postgresql-8.3.7/configure.in ---- postgresql-8.3.7.orig/configure.in 2008-09-18 23:04:12.000000000 -0400 -+++ postgresql-8.3.7/configure.in 2008-09-25 10:26:10.000000000 -0400 +diff -Naur postgresql-8.4.0.orig/configure.in postgresql-8.4.0/configure.in +--- postgresql-8.4.0.orig/configure.in 2009-06-26 20:14:47.000000000 -0400 ++++ postgresql-8.4.0/configure.in 2009-08-12 23:09:31.000000000 -0400 @@ -19,10 +19,6 @@ - AC_INIT([PostgreSQL], [8.3.7], [pgsql-bugs@postgresql.org]) + AC_INIT([PostgreSQL], [8.4.0], [pgsql-bugs@postgresql.org]) --m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.59], [], [m4_fatal([Autoconf version 2.59 is required. +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.61], [], [m4_fatal([Autoconf version 2.61 is required. -Untested combinations of 'autoconf' and PostgreSQL versions are not -recommended. You can remove the check from 'configure.in' but it is then -your responsibility whether the result works or not.])]) - AC_COPYRIGHT([Copyright (c) 1996-2008, PostgreSQL Global Development Group]) + AC_COPYRIGHT([Copyright (c) 1996-2009, PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) diff --git a/postgresql-logging.patch b/postgresql-logging.patch index 2fa8ed3..b6bd368 100644 --- a/postgresql-logging.patch +++ b/postgresql-logging.patch @@ -1,7 +1,10 @@ -diff -Naur postgresql-8.3RC2.orig/src/backend/utils/misc/postgresql.conf.sample postgresql-8.3RC2/src/backend/utils/misc/postgresql.conf.sample ---- postgresql-8.3RC2.orig/src/backend/utils/misc/postgresql.conf.sample 2008-01-09 21:50:01.000000000 -0500 -+++ postgresql-8.3RC2/src/backend/utils/misc/postgresql.conf.sample 2008-01-18 11:44:08.000000000 -0500 -@@ -237,17 +237,17 @@ +Select stderr-based logging with a week's worth of daily logfiles. + + +diff -Naur postgresql-8.4.0.orig/src/backend/utils/misc/postgresql.conf.sample postgresql-8.4.0/src/backend/utils/misc/postgresql.conf.sample +--- postgresql-8.4.0.orig/src/backend/utils/misc/postgresql.conf.sample 2009-04-22 20:23:45.000000000 -0400 ++++ postgresql-8.4.0/src/backend/utils/misc/postgresql.conf.sample 2009-08-12 23:20:46.000000000 -0400 +@@ -236,17 +236,17 @@ # requires logging_collector to be on. # This is used when logging to stderr: @@ -23,15 +26,15 @@ diff -Naur postgresql-8.3RC2.orig/src/backend/utils/misc/postgresql.conf.sample # same name as the new log file will be # truncated rather than appended to. # But such truncation only occurs on -@@ -255,9 +255,9 @@ +@@ -254,9 +254,9 @@ # or size-driven rotation. Default is # off, meaning append to existing files # in all cases. -#log_rotation_age = 1d # Automatic rotation of logfiles will +log_rotation_age = 1d # Automatic rotation of logfiles will - # happen after that time. 0 to disable. + # happen after that time. 0 disables. -#log_rotation_size = 10MB # Automatic rotation of logfiles will +log_rotation_size = 0 # Automatic rotation of logfiles will # happen after that much log output. - # 0 to disable. + # 0 disables. diff --git a/postgresql-perl-rpath.patch b/postgresql-perl-rpath.patch index 74484c4..26634b7 100644 --- a/postgresql-perl-rpath.patch +++ b/postgresql-perl-rpath.patch @@ -7,12 +7,12 @@ So work around it by adding an rpath spec to plperl.so (only). Per bug #162198. -diff -Naur postgresql-8.2.0.orig/src/pl/plperl/GNUmakefile postgresql-8.2.0/src/pl/plperl/GNUmakefile ---- postgresql-8.2.0.orig/src/pl/plperl/GNUmakefile 2006-07-20 20:24:04.000000000 -0400 -+++ postgresql-8.2.0/src/pl/plperl/GNUmakefile 2006-12-04 20:00:56.000000000 -0500 -@@ -36,6 +36,9 @@ +diff -Naur postgresql-8.4.0.orig/src/pl/plperl/GNUmakefile postgresql-8.4.0/src/pl/plperl/GNUmakefile +--- postgresql-8.4.0.orig/src/pl/plperl/GNUmakefile 2009-06-05 14:29:56.000000000 -0400 ++++ postgresql-8.4.0/src/pl/plperl/GNUmakefile 2009-08-12 23:28:57.000000000 -0400 +@@ -38,6 +38,9 @@ - SHLIB_LINK = $(perl_embed_ldflags) $(BE_DLLLIBS) + SHLIB_LINK = $(perl_embed_ldflags) +# Force rpath to be used even though we disable it everywhere else +SHLIB_LINK += $(rpath) diff --git a/postgresql-test.patch b/postgresql-test.patch deleted file mode 100644 index 5b1d6f4..0000000 --- a/postgresql-test.patch +++ /dev/null @@ -1,53 +0,0 @@ -In the postgresql-test RPM, the contrib .so's that are used by the tests -are installed right in the directory where the tests are run. We must -adjust the CREATE FUNCTION commands accordingly. Note that this also -means that the specfile has to copy the .so's into the test directory -while doing the in-build-tree regression tests. - - -diff -Naur postgresql-8.3RC2.orig/src/test/regress/input/create_function_1.source postgresql-8.3RC2/src/test/regress/input/create_function_1.source ---- postgresql-8.3RC2.orig/src/test/regress/input/create_function_1.source 2006-02-27 11:09:50.000000000 -0500 -+++ postgresql-8.3RC2/src/test/regress/input/create_function_1.source 2008-01-18 13:38:51.000000000 -0500 -@@ -24,17 +24,17 @@ - - CREATE FUNCTION check_primary_key () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' -+ AS '@abs_builddir@/refint@DLSUFFIX@' - LANGUAGE C; - - CREATE FUNCTION check_foreign_key () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' -+ AS '@abs_builddir@/refint@DLSUFFIX@' - LANGUAGE C; - - CREATE FUNCTION autoinc () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@' -+ AS '@abs_builddir@/autoinc@DLSUFFIX@' - LANGUAGE C; - - CREATE FUNCTION funny_dup17 () -diff -Naur postgresql-8.3RC2.orig/src/test/regress/output/create_function_1.source postgresql-8.3RC2/src/test/regress/output/create_function_1.source ---- postgresql-8.3RC2.orig/src/test/regress/output/create_function_1.source 2007-06-18 17:40:58.000000000 -0400 -+++ postgresql-8.3RC2/src/test/regress/output/create_function_1.source 2008-01-18 13:38:51.000000000 -0500 -@@ -25,15 +25,15 @@ - NOTICE: argument type city_budget is only a shell - CREATE FUNCTION check_primary_key () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' -+ AS '@abs_builddir@/refint@DLSUFFIX@' - LANGUAGE C; - CREATE FUNCTION check_foreign_key () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' -+ AS '@abs_builddir@/refint@DLSUFFIX@' - LANGUAGE C; - CREATE FUNCTION autoinc () - RETURNS trigger -- AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@' -+ AS '@abs_builddir@/autoinc@DLSUFFIX@' - LANGUAGE C; - CREATE FUNCTION funny_dup17 () - RETURNS trigger diff --git a/postgresql.init b/postgresql.init index adb395a..f273ac5 100644 --- a/postgresql.init +++ b/postgresql.init @@ -67,10 +67,15 @@ # Version 8.2 Devrim Gunduz # Set initdb as a seperate option. -# PGVERSION is the full package version, e.g., 8.2.0 +# Version 8.3 Devrim Gunduz + +# Version 8.4 Devrim Gunduz +# Remove "sameuser" from initdb, to match the new hba conf file. + +# PGVERSION is the full package version, e.g., 8.4.0 # Note: the specfile ordinarily updates this during install PGVERSION=xxxx -# PGMAJORVERSION is major version, e.g., 8.2 (this should match PG_VERSION) +# PGMAJORVERSION is major version, e.g., 8.4 (this should match PG_VERSION) PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9]*\).*$/\1/'` # Source function library. @@ -101,13 +106,7 @@ fi # Set defaults for configuration variables PGENGINE=/usr/bin PGPORT=5432 -PGDATA=/var/lib/pgsql -if [ -f "$PGDATA/PG_VERSION" ] && [ -d "$PGDATA/base/template1" ] -then - echo "Using old-style directory structure" -else - PGDATA=/var/lib/pgsql/data -fi +PGDATA=/var/lib/pgsql/data PGLOG=/var/lib/pgsql/pgstartup.log # Override defaults from /etc/sysconfig/pgsql if file is present @@ -245,7 +244,7 @@ initdb(){ # Clean up SELinux tagging for PGDATA [ -x /sbin/restorecon ] && /sbin/restorecon "$PGDATA" # Initialize the database - $SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident sameuser'" >> "$PGLOG" 2>&1 < /dev/null + $SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null # Create directory for postmaster log mkdir "$PGDATA/pg_log" chown postgres:postgres "$PGDATA/pg_log" diff --git a/postgresql.spec b/postgresql.spec index 93f87f5..9c3cc02 100755 --- a/postgresql.spec +++ b/postgresql.spec @@ -1,25 +1,6 @@ -# 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. # This is the PostgreSQL Global Development Group Official RPMset spec file, # or a derivative thereof. -# Copyright 2003 Lamar Owen +# Copyright 2003-2009 Lamar Owen # and others listed. # Major Contributors: @@ -41,18 +22,12 @@ # This spec file and ancilliary files are licensed in accordance with # The PostgreSQL license. -# In this file you can find the default build package list macros. These can be overridden by defining -# on the rpm command line: +# In 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. - -#build7x, build8, and build9 similar -%{?build7x:%define tcldevel 0} -%{?build7x:%define aconfver autoconf-2.53} -%{?build8:%define build89 1} -%{?build8:%define tcldevel 0} -%{?build9:%define build89 1} +# The base package, the lib package, the devel package, and the server package +# always get built. %define beta 0 %{?beta:%define __os_install_post /usr/lib/rpm/brp-compress} @@ -83,8 +58,9 @@ Summary: PostgreSQL client programs and libraries Name: postgresql -Version: 8.3.7 -Release: 2%{?dist} +%define majorversion 8.4 +Version: 8.4.0 +Release: 1%{?dist} License: BSD Group: Applications/Databases Url: http://www.postgresql.org/ @@ -98,7 +74,7 @@ Source7: ecpg_config.h Source14: postgresql.pam Source15: postgresql-bashprofile Source16: filter-requires-perl-Pg.sh -Source17: http://www.postgresql.org/docs/manuals/postgresql-8.3.7-US.pdf +Source17: http://www.postgresql.org/docs/manuals/postgresql-8.4.0-US.pdf Source18: ftp://ftp.pygresql.org/pub/distrib/PyGreSQL-3.8.1.tgz Source19: http://pgfoundry.org/projects/pgtclng/pgtcl1.6.2.tar.gz Source20: http://pgfoundry.org/projects/pgtclng/pgtcldocs-20070115.zip @@ -106,7 +82,6 @@ Source20: http://pgfoundry.org/projects/pgtclng/pgtcldocs-20070115.zip Patch1: rpm-pgsql.patch Patch2: postgresql-ac-version.patch Patch3: postgresql-logging.patch -Patch4: postgresql-test.patch Patch5: pgtcl-no-rpath.patch Patch6: postgresql-perl-rpath.patch @@ -185,7 +160,7 @@ 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 +If you want to manipulate a PostgreSQL database on a local or remote PostgreSQL server, you need this package. You also need to install this package if you're installing the postgresql-server package. @@ -228,8 +203,8 @@ Obsoletes: rh-postgresql-docs %description docs The postgresql-docs package includes some additional documentation for -PostgreSQL. Currently, this includes the main documentation in PDF format, -the FAQ, and source files for the PostgreSQL tutorial. +PostgreSQL. Currently, this includes the main documentation in PDF format +and source files for the PostgreSQL tutorial. %package contrib @@ -256,7 +231,6 @@ with a PostgreSQL database management server and the ecpg Embedded C Postgres preprocessor. You need to install this package if you want to develop applications which will interact with a PostgreSQL server. -#------------ %if %plperl %package plperl Summary: The Perl procedural language for PostgreSQL @@ -272,7 +246,6 @@ system. The postgresql-plperl package contains the PL/Perl procedural language for the backend. %endif -#------------ %if %plpython %package plpython Summary: The Python procedural language for PostgreSQL @@ -287,7 +260,6 @@ system. The postgresql-plpython package contains the PL/Python procedural language for the backend. %endif -#------------ %if %pltcl %package pltcl Summary: The Tcl procedural language for PostgreSQL @@ -302,7 +274,6 @@ system. The postgresql-pltcl package contains the PL/Tcl procedural language for the backend. %endif -#------------ %if %tcl %package tcl Summary: A Tcl client library for PostgreSQL @@ -318,7 +289,6 @@ system. The postgresql-tcl package contains the Pgtcl client library and its documentation. %endif -#------------ %if %python %package python Summary: Development module for Python code to access a PostgreSQL DB @@ -335,7 +305,6 @@ developers to use when writing Python code for accessing a PostgreSQL database. %endif -#---------- %if %test %package test Summary: The test suite distributed with PostgreSQL @@ -357,7 +326,6 @@ system, including regression tests and benchmarks. %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p1 # patch5 is applied later %patch6 -p1 @@ -402,10 +370,6 @@ CFLAGS=`echo $CFLAGS|xargs -n 1|grep -v ffast-math|xargs -n 100` CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" ` %endif -# Use --as-needed to eliminate unnecessary link dependencies. -# NB: Postgres 8.4 will do this for itself. -LDFLAGS="-Wl,--as-needed"; export LDFLAGS - %configure --disable-rpath \ %if %beta --enable-debug \ @@ -466,11 +430,8 @@ rm -f src/tutorial/GNUmakefile %if %runselftest pushd src/test/regress make all - cp ../../../contrib/spi/refint.so . - cp ../../../contrib/spi/autoinc.so . make MAX_CONNECTIONS=5 check make clean - rm refint.so autoinc.so popd %endif @@ -572,8 +533,6 @@ install -d -m 700 $RPM_BUILD_ROOT/etc/sysconfig/pgsql # Makefiles, however. mkdir -p $RPM_BUILD_ROOT%{_libdir}/pgsql/test cp -a src/test/regress $RPM_BUILD_ROOT%{_libdir}/pgsql/test - install -m 0755 contrib/spi/refint.so $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress - install -m 0755 contrib/spi/autoinc.so $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress pushd $RPM_BUILD_ROOT%{_libdir}/pgsql/test/regress strip *.so rm -f GNUmakefile Makefile *.o @@ -597,21 +556,44 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/pgsql popd %endif -%find_lang libpq -%find_lang initdb -%find_lang pg_config -%find_lang pg_ctl -%find_lang pg_dump -%find_lang postgres -%find_lang psql -%find_lang pg_resetxlog -%find_lang pg_controldata -%find_lang pgscripts - -cat libpq.lang > libpq.lst -cat pg_config.lang > pg_config.lst -cat initdb.lang pg_ctl.lang psql.lang pg_dump.lang pgscripts.lang > main.lst -cat postgres.lang pg_resetxlog.lang pg_controldata.lang > server.lst +%find_lang ecpg-%{majorversion} +cat ecpg-%{majorversion}.lang >devel.lst +%find_lang ecpglib6-%{majorversion} +cat ecpglib6-%{majorversion}.lang >libs.lst +%find_lang initdb-%{majorversion} +cat initdb-%{majorversion}.lang >server.lst +%find_lang libpq5-%{majorversion} +cat libpq5-%{majorversion}.lang >>libs.lst +%find_lang pg_config-%{majorversion} +cat pg_config-%{majorversion}.lang >>devel.lst +%find_lang pg_controldata-%{majorversion} +cat pg_controldata-%{majorversion}.lang >>server.lst +%find_lang pg_ctl-%{majorversion} +cat pg_ctl-%{majorversion}.lang >>server.lst +%find_lang pg_dump-%{majorversion} +cat pg_dump-%{majorversion}.lang >main.lst +%find_lang pg_resetxlog-%{majorversion} +cat pg_resetxlog-%{majorversion}.lang >>server.lst +%find_lang pgscripts-%{majorversion} +cat pgscripts-%{majorversion}.lang >>main.lst +%if %plperl +%find_lang plperl-%{majorversion} +cat plperl-%{majorversion}.lang >plperl.lst +%endif +%find_lang plpgsql-%{majorversion} +cat plpgsql-%{majorversion}.lang >>server.lst +%if %plpython +%find_lang plpython-%{majorversion} +cat plpython-%{majorversion}.lang >plpython.lst +%endif +%if %pltcl +%find_lang pltcl-%{majorversion} +cat pltcl-%{majorversion}.lang >pltcl.lst +%endif +%find_lang postgres-%{majorversion} +cat postgres-%{majorversion}.lang >>server.lst +%find_lang psql-%{majorversion} +cat psql-%{majorversion}.lang >>main.lst %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig @@ -672,7 +654,7 @@ rm -rf $RPM_BUILD_ROOT %files -f main.lst %defattr(-,root,root) -%doc doc/FAQ doc/KNOWN_BUGS doc/MISSING_FEATURES doc/README* +%doc doc/KNOWN_BUGS doc/MISSING_FEATURES doc/README* %doc COPYRIGHT README HISTORY doc/bug.template %doc README.rpm-dist %doc doc/html @@ -707,7 +689,6 @@ rm -rf $RPM_BUILD_ROOT %files docs %defattr(-,root,root) -%doc doc/src/FAQ %doc *-US.pdf %{_libdir}/pgsql/tutorial/ @@ -716,8 +697,11 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pgsql/_int.so %{_libdir}/pgsql/adminpack.so %{_libdir}/pgsql/autoinc.so +%{_libdir}/pgsql/auto_explain.so +%{_libdir}/pgsql/btree_gin.so %{_libdir}/pgsql/btree_gist.so %{_libdir}/pgsql/chkpass.so +%{_libdir}/pgsql/citext.so %{_libdir}/pgsql/cube.so %{_libdir}/pgsql/dblink.so %{_libdir}/pgsql/dict_int.so @@ -726,7 +710,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pgsql/fuzzystrmatch.so %{_libdir}/pgsql/hstore.so %{_libdir}/pgsql/insert_username.so -%{_libdir}/pgsql/int_aggregate.so %{_libdir}/pgsql/isn.so %{_libdir}/pgsql/lo.so %{_libdir}/pgsql/ltree.so @@ -738,6 +721,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pgsql/pgcrypto.so %{_libdir}/pgsql/pgrowlocks.so %{_libdir}/pgsql/pgstattuple.so +%{_libdir}/pgsql/pg_stat_statements.so %{_libdir}/pgsql/refint.so %{_libdir}/pgsql/seg.so %{_libdir}/pgsql/sslinfo.so @@ -756,9 +740,9 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/pg_standby %{_bindir}/pgbench %{_bindir}/vacuumlo -%doc contrib/*/README.* contrib/spi/*.example +%doc contrib/spi/*.example -%files libs -f libpq.lang +%files libs -f libs.lst %defattr(-,root,root) %{_libdir}/libpq.so.* %{_libdir}/libecpg.so.* @@ -773,14 +757,12 @@ rm -rf $RPM_BUILD_ROOT %endif %attr (755,root,root) %dir /etc/sysconfig/pgsql %{_bindir}/initdb -%{_bindir}/ipcclean %{_bindir}/pg_controldata %{_bindir}/pg_ctl %{_bindir}/pg_resetxlog %{_bindir}/postgres %{_bindir}/postmaster %{_mandir}/man1/initdb.* -%{_mandir}/man1/ipcclean.* %{_mandir}/man1/pg_controldata.* %{_mandir}/man1/pg_ctl.* %{_mandir}/man1/pg_resetxlog.* @@ -806,7 +788,7 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/pgsql/snowball_create.sql %{_datadir}/pgsql/sql_features.txt -%files devel -f pg_config.lst +%files devel -f devel.lst %defattr(-,root,root) /usr/include/* %{_bindir}/ecpg @@ -832,13 +814,13 @@ rm -rf $RPM_BUILD_ROOT %endif %if %plperl -%files plperl +%files plperl -f plperl.lst %defattr(-,root,root) %{_libdir}/pgsql/plperl.so %endif %if %pltcl -%files pltcl +%files pltcl -f pltcl.lst %defattr(-,root,root) %{_libdir}/pgsql/pltcl.so %{_bindir}/pltcl_delmod @@ -848,7 +830,7 @@ rm -rf $RPM_BUILD_ROOT %endif %if %plpython -%files plpython +%files plpython -f plpython.lst %defattr(-,root,root) %{_libdir}/pgsql/plpython.so %endif @@ -870,6 +852,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Aug 17 2009 Tom Lane 8.4.0-1 +- Update to PostgreSQL 8.4.0. See release notes at + http://www.postgresql.org/docs/8.4/static/release-8-4.html + * Sun Jul 26 2009 Fedora Release Engineering - 8.3.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild diff --git a/rpm-pgsql.patch b/rpm-pgsql.patch index ee77427..e595db7 100644 --- a/rpm-pgsql.patch +++ b/rpm-pgsql.patch @@ -1,7 +1,11 @@ -diff -Naur postgresql-8.1.0.orig/src/Makefile.global.in postgresql-8.1.0/src/Makefile.global.in ---- postgresql-8.1.0.orig/src/Makefile.global.in 2005-09-27 13:39:32.000000000 -0400 -+++ postgresql-8.1.0/src/Makefile.global.in 2005-11-07 14:58:59.000000000 -0500 -@@ -53,7 +53,7 @@ +For the RPMs, we want the custom installation directories to end in +/pgsql not /postgresql. This is historical but not worth changing. + + +diff -Naur postgresql-8.4.0.orig/src/Makefile.global.in postgresql-8.4.0/src/Makefile.global.in +--- postgresql-8.4.0.orig/src/Makefile.global.in 2009-06-22 23:46:00.000000000 -0400 ++++ postgresql-8.4.0/src/Makefile.global.in 2009-08-12 23:14:53.000000000 -0400 +@@ -54,7 +54,7 @@ # Installation directories # # These are set by the equivalent --xxxdir configure options. We @@ -10,7 +14,7 @@ diff -Naur postgresql-8.1.0.orig/src/Makefile.global.in postgresql-8.1.0/src/Mak # contain "pgsql" or "postgres", in order to avoid directory clutter. # # In a PGXS build, we cannot use the values inserted into Makefile.global -@@ -73,14 +73,14 @@ +@@ -75,14 +75,14 @@ datadir := @datadir@ ifeq "$(findstring pgsql, $(datadir))" "" ifeq "$(findstring postgres, $(datadir))" "" @@ -27,7 +31,7 @@ diff -Naur postgresql-8.1.0.orig/src/Makefile.global.in postgresql-8.1.0/src/Mak endif endif -@@ -89,7 +89,7 @@ +@@ -91,7 +91,7 @@ pkglibdir = $(libdir) ifeq "$(findstring pgsql, $(pkglibdir))" "" ifeq "$(findstring postgres, $(pkglibdir))" "" @@ -36,7 +40,7 @@ diff -Naur postgresql-8.1.0.orig/src/Makefile.global.in postgresql-8.1.0/src/Mak endif endif -@@ -98,7 +98,7 @@ +@@ -100,7 +100,7 @@ pkgincludedir = $(includedir) ifeq "$(findstring pgsql, $(pkgincludedir))" "" ifeq "$(findstring postgres, $(pkgincludedir))" "" @@ -46,11 +50,11 @@ diff -Naur postgresql-8.1.0.orig/src/Makefile.global.in postgresql-8.1.0/src/Mak endif @@ -109,7 +109,7 @@ - ifneq (,$(docdir)) + docdir := @docdir@ ifeq "$(findstring pgsql, $(docdir))" "" ifeq "$(findstring postgres, $(docdir))" "" -override docdir := $(docdir)/postgresql +override docdir := $(docdir)/pgsql endif endif - endif + diff --git a/sources b/sources index bba3c17..046a91f 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -7b7e91a2221e55fe1b167e663217a96d postgresql-8.3.7.tar.bz2 +1f172d5f60326e972837f58fa5acd130 postgresql-8.4.0.tar.bz2 5575979dac93c9c5795d7693a8f91c86 PyGreSQL-3.8.1.tgz abf26e3cd7f8229f468045ed1fb7e748 pgtcl1.6.2.tar.gz 8ce98e93b238c3329d0fe43810442c44 pgtcldocs-20070115.zip -cf36036b0a973f793b2ba25dfdbcf879 postgresql-8.3.7-US.pdf +bbed2a7dad711eef335701391b9f112d postgresql-8.4.0-US.pdf