]> TLD Linux GIT Repositories - packages/postgresql.git/commitdiff
- versioned package, 9.3.24
authorMarcin Krol <hawk@tld-linux.org>
Thu, 23 Aug 2018 21:30:41 +0000 (21:30 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Thu, 23 Aug 2018 21:30:41 +0000 (21:30 +0000)
per-version-dirs.patch [new file with mode: 0644]
postgresql-ac_version.patch
postgresql-heimdal.patch
postgresql-ossp_uuid.patch
postgresql.init
postgresql.spec
postgresql.sysconfig
postgresql_9.1-ac_version.patch [deleted file]
socket-dir-fixes.patch [new file with mode: 0644]

diff --git a/per-version-dirs.patch b/per-version-dirs.patch
new file mode 100644 (file)
index 0000000..3bfd471
--- /dev/null
@@ -0,0 +1,56 @@
+diff -urpa postgresql-9.3.24.orig/src/bin/pg_config/pg_config.c postgresql-9.3.24/src/bin/pg_config/pg_config.c
+--- postgresql-9.3.24.orig/src/bin/pg_config/pg_config.c       2018-08-23 19:56:17.187401335 +0000
++++ postgresql-9.3.24/src/bin/pg_config/pg_config.c    2018-08-23 19:56:33.221401154 +0000
+@@ -26,6 +26,8 @@
+ #include "port.h"
++#include "../port/pg_config_paths.h"
++
+ static const char *progname;
+ static char mypath[MAXPGPATH];
+@@ -481,7 +483,6 @@ main(int argc, char **argv)
+ {
+       int                     i;
+       int                     j;
+-      int                     ret;
+       set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_config"));
+@@ -497,13 +498,7 @@ main(int argc, char **argv)
+               }
+       }
+-      ret = find_my_exec(argv[0], mypath);
+-
+-      if (ret)
+-      {
+-              fprintf(stderr, _("%s: could not find own program executable\n"), progname);
+-              exit(1);
+-      }
++      snprintf(mypath, sizeof(mypath), "%s/%s", PGBINDIR, progname);
+       /* no arguments -> print everything */
+       if (argc < 2)
+diff -urpa postgresql-9.3.24.orig/src/Makefile.global.in postgresql-9.3.24/src/Makefile.global.in
+--- postgresql-9.3.24.orig/src/Makefile.global.in      2018-08-23 19:56:17.183401335 +0000
++++ postgresql-9.3.24/src/Makefile.global.in   2018-08-23 19:56:33.221401154 +0000
+@@ -100,7 +100,7 @@ libdir := @libdir@
+ pkglibdir = $(libdir)
+ ifeq "$(findstring pgsql, $(pkglibdir))" ""
+ ifeq "$(findstring postgres, $(pkglibdir))" ""
+-override pkglibdir := $(pkglibdir)/postgresql
++override pkglibdir := $(pkglibdir)/postgresql/@PG_MAJORVERSION@/lib
+ endif
+ endif
+@@ -148,7 +148,7 @@ endif # PGXS
+ # These derived path variables aren't separately configurable.
+-includedir_server = $(pkgincludedir)/server
++includedir_server = $(pkgincludedir)/@PG_MAJORVERSION@/server
+ includedir_internal = $(pkgincludedir)/internal
+ pgxsdir = $(pkglibdir)/pgxs
index 43010731012633091dfe60813949c10fd76165e2..c6d10421ed88395449548d28e8ee53eb6d12e568 100644 (file)
@@ -1,10 +1,11 @@
---- postgresql-9.4.0/configure.in.orig 2015-01-08 17:05:49.016719717 +0100
-+++ postgresql-9.4.0/configure.in      2015-01-08 17:06:42.683386235 +0100
-@@ -19,10 +19,10 @@
+diff -urpa postgresql-9.3.24.orig/configure.in postgresql-9.3.24/configure.in
+--- postgresql-9.3.24.orig/configure.in        2018-08-23 19:56:17.313401333 +0000
++++ postgresql-9.3.24/configure.in     2018-08-23 20:06:23.401394509 +0000
+@@ -19,10 +19,10 @@ m4_pattern_forbid(^PGAC_)dnl to catch un
  
- AC_INIT([PostgreSQL], [9.4.0], [pgsql-bugs@postgresql.org])
+ AC_INIT([PostgreSQL], [9.3.24], [pgsql-bugs@postgresql.org])
  
--m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 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.])])
@@ -12,6 +13,6 @@
 +dnl Untested combinations of 'autoconf' and PostgreSQL versions are not
 +dnl recommended.  You can remove the check from 'configure.in' but it is then
 +dnl your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2014, PostgreSQL Global Development Group])
+ AC_COPYRIGHT([Copyright (c) 1996-2013, PostgreSQL Global Development Group])
  AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
  AC_CONFIG_AUX_DIR(config)
index d4317c9e517d21fd950ba7523ab9c97adc0c62ea..f54ffe82916d4bc2a64d4e5f4bebba54dc60053e 100644 (file)
@@ -1,11 +1,20 @@
---- postgresql-9.4.0/configure.in~     2014-12-16 02:07:34.000000000 +0100
-+++ postgresql-9.4.0/configure.in      2014-12-24 13:10:18.706719940 +0100
-@@ -946,7 +946,7 @@
+--- postgresql-9.0.0/configure.in.orig 2010-10-03 11:14:32.231741882 +0200
++++ postgresql-9.0.0/configure.in      2010-10-03 11:46:29.767741043 +0200
+@@ -906,7 +906,7 @@
  
  if test "$with_gssapi" = yes ; then
    if test "$PORTNAME" != "win32"; then
 -    AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
 +    AC_SEARCH_LIBS(gss_init_sec_context, [gssapi 'gssapi -lkrb5 -lcrypto' gssapi_krb5 gss], [],
-                    [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
+                                 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
    else
      LIBS="$LIBS -lgssapi32"
+@@ -915,7 +915,7 @@
+ if test "$with_krb5" = yes ; then
+   if test "$PORTNAME" != "win32"; then
+-     AC_SEARCH_LIBS(com_err, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken' com_err 'com_err -lssl -lcrypto'], [],
++     AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
+                     [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
+      AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
+                     [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
index b5b2dfa5477626b92c86e6d606cdc48d7eb655ca..08c5a0c8e3ba323c57edec913c8f02bfe5a1e28a 100644 (file)
@@ -1,34 +1,29 @@
---- postgresql-9.4.0/configure.in.orig 2015-01-05 23:55:32.000000000 +0100
-+++ postgresql-9.4.0/configure.in      2015-01-06 00:03:58.433386714 +0100
-@@ -1166,13 +1166,13 @@
-         [AC_MSG_ERROR([header file <uuid.h> does not match E2FS UUID library])])],
-       [AC_MSG_ERROR([header file <uuid/uuid.h> or <uuid.h> is required for E2FS UUID])])])
- elif test "$with_uuid" = ossp ; then
--  AC_CHECK_HEADERS(ossp/uuid.h,
--    [AC_EGREP_HEADER([uuid_export], ossp/uuid.h, [],
--      [AC_MSG_ERROR([header file <ossp/uuid.h> does not match OSSP UUID library])])],
-+  AC_CHECK_HEADERS(ossp-uuid/uuid.h,
-+    [AC_EGREP_HEADER([uuid_export], ossp-uuid/uuid.h, [],
-+      [AC_MSG_ERROR([header file <ossp-uuid/uuid.h> does not match OSSP UUID library])])],
-     [AC_CHECK_HEADERS(uuid.h,
-       [AC_EGREP_HEADER([uuid_export], uuid.h, [],
-         [AC_MSG_ERROR([header file <uuid.h> does not match OSSP UUID library])])],
--      [AC_MSG_ERROR([header file <ossp/uuid.h> or <uuid.h> is required for OSSP UUID])])])
-+      [AC_MSG_ERROR([header file <ossp-uuid/uuid.h> or <uuid.h> is required for OSSP UUID])])])
+diff -urpa postgresql-9.3.24.orig/configure.in postgresql-9.3.24/configure.in
+--- postgresql-9.3.24.orig/configure.in        2018-08-23 19:56:17.313401333 +0000
++++ postgresql-9.3.24/configure.in     2018-08-23 20:17:36.902386926 +0000
+@@ -1167,9 +1167,9 @@ fi
+ # for contrib/uuid-ossp
+ if test "$with_ossp_uuid" = yes ; then
+-  AC_CHECK_HEADERS(ossp/uuid.h, [], [
++  AC_CHECK_HEADERS(ossp-uuid/uuid.h, [], [
+     AC_CHECK_HEADERS(uuid.h, [],
+-      [AC_MSG_ERROR([header file <ossp/uuid.h> or <uuid.h> is required for OSSP-UUID])])])
++      [AC_MSG_ERROR([header file <ossp-uuid/uuid.h> or <uuid.h> is required for OSSP-UUID])])])
  fi
  
  if test "$PORTNAME" = "win32" ; then
---- postgresql-9.4.1/contrib/uuid-ossp/uuid-ossp.c.org 2015-03-23 10:41:24.000000000 +0100
-+++ postgresql-9.4.1/contrib/uuid-ossp/uuid-ossp.c     2015-03-23 10:54:29.403373571 +0100
-@@ -29,8 +29,8 @@
- #ifdef HAVE_UUID_H
- #include <uuid.h>
- #endif
+diff -urpa postgresql-9.3.24.orig/contrib/uuid-ossp/uuid-ossp.c postgresql-9.3.24/contrib/uuid-ossp/uuid-ossp.c
+--- postgresql-9.3.24.orig/contrib/uuid-ossp/uuid-ossp.c       2018-08-23 19:56:17.179401335 +0000
++++ postgresql-9.3.24/contrib/uuid-ossp/uuid-ossp.c    2018-08-23 21:18:08.165346042 +0000
+@@ -20,8 +20,8 @@
+  * install ossp-uuid from a tarball, it's installed as uuid.h. Don't know
+  * what other systems do.
+  */
 -#ifdef HAVE_OSSP_UUID_H
 -#include <ossp/uuid.h>
 +#ifdef HAVE_OSSP_UUID_UUID_H
 +#include <ossp-uuid/uuid.h>
- #endif
- #ifdef HAVE_UUID_UUID_H
- #include <uuid/uuid.h>
-
+ #else
+ #ifdef HAVE_UUID_H
+ #include <uuid.h>
index d3476e2184c719aaebcb73ea5d9deb399ff8fb38..8f308171836413e5dd01472b7f7de22c59985606 100644 (file)
@@ -21,10 +21,10 @@ cd /
 PG_INIT_LOCALE=C
 
 # Get service config
-if [ -f /etc/sysconfig/postgresql ]; then
-       . /etc/sysconfig/postgresql
+if [ -f /etc/sysconfig/postgresql-@pgsqlversion@ ]; then
+       . /etc/sysconfig/postgresql-@pgsqlversion@
 else
-       nls "Error: %s not found" /etc/sysconfig/postgresql
+       nls "Error: %s not found" /etc/sysconfig/postgresql-@pgsqlversion@
        nls " PostgreSQL can't be run."
        exit 1
 fi
@@ -73,10 +73,10 @@ fi
 pgstatus() {
        PG_STATUS="unknown"
        PG_PID="unknown"
-       output=$(LC_ALL=C TMPDIR=/tmp su postgres -c "/usr/bin/pg_ctl -D $1 status")
+       output=$(LC_ALL=C TMPDIR=/tmp su postgres -c "@pgsqlbindir@/pg_ctl -D $1 status")
        status=$?
 
-       if [ $status -eq 1 ]; then
+       if [ $status -eq 3 ]; then
                PG_STATUS="not running"
        elif [ $status -eq 0 ]; then
                PG_STATUS="running"
@@ -94,7 +94,7 @@ pgstatus() {
 pgstart() {
        is_no "$RC_LOGGING" && fork=--fork
        msg_starting "PostgreSQL $1"
-       daemon $fork --user postgres /usr/bin/pg_ctl -s -w -D $1 start
+       daemon $fork --user postgres @pgsqlbindir@/pg_ctl -s -w -D $1 start
 }
 
 #
@@ -106,11 +106,11 @@ pgsubsys() {
        for pgdir in $PG_DB_CLUSTERS; do
                pgstatus "$pgdir"
                if [ "$PG_STATUS" = "running" ]; then
-                       touch /var/lock/subsys/postgresql
+                       touch /var/lock/subsys/postgresql-@pgsqlversion@
                        return
                fi
        done
-       rm -f /var/lock/subsys/postgresql
+       rm -f /var/lock/subsys/postgresql-@pgsqlversion@
 }
 
 #
@@ -149,7 +149,7 @@ stop() {
                        busy
                        # is postgresql really alive?
                        if ps -p "$PG_PID" >/dev/null; then
-                               TMPDIR=/tmp su postgres -c "/usr/bin/pg_ctl -w -D $pgdir stop -m fast 2>&1 >/dev/null"
+                               TMPDIR=/tmp su postgres -c "@pgsqlbindir@/pg_ctl -w -D $pgdir stop -m fast 2>&1 >/dev/null"
                                pgstatus "$pgdir"
                                if [ "$PG_STATUS" != "not running" ]; then
                                        fail
@@ -215,7 +215,7 @@ case "$action" in
                        busy
                        # is postgresql really alive?
                        if ps -p "$PG_PID" >/dev/null; then
-                               TMPDIR=/tmp su postgres -c "/usr/bin/pg_ctl -D $pgdir $pgctlact 2>&1 >/dev/null"
+                               TMPDIR=/tmp su postgres -c "@pgsqlbindir@/pg_ctl -D $pgdir $pgctlact 2>&1 >/dev/null"
                                        pgstatus "$pgdir"
                                if [ "$PG_STATUS" = "running" ]; then
                                        ok
@@ -249,7 +249,7 @@ case "$action" in
                        mkdir -p $pgdir
                        chmod 700 $pgdir
                        chown postgres:postgres $pgdir
-                       LC_ALL=$PG_INIT_LOCALE TMPDIR=/tmp su postgres -s /bin/sh -c "initdb -E UNICODE --data-checksums -D $pgdir"
+                       LC_ALL=$PG_INIT_LOCALE TMPDIR=/tmp su postgres -s /bin/sh -c "@pgsqlbindir@/initdb -E UNICODE --data-checksums -D $pgdir"
                fi
        done
        echo $(nls "REMEMBER to setup password for user \"postgres\"")'!'
index 45a4b76537d5a42225725f4b0aa53799740c861d..9b2569f662a04ffa6545d26dba91569961c7649a 100644 (file)
@@ -1,10 +1,3 @@
-# TODO:
-# - python 3 and python 2 subpackages?
-# - consider dns_sd/Bonjour support (--with-bonjour)
-# - --enable-dtrace (is it systemtap-compatible?)
-# - think about pg_upgrade integration (sysconfig variable to allow upgrade from 8.3+ without dump/restore?)
-#   create postgresqlM.N packages with parts of old pgsql required by pg_upgrade
-# - test init script (db initialization)
 #
 # Conditional build:
 %bcond_without tests                   # disable testing
 %bcond_without kerberos5               # disable kerberos5 support
 %bcond_without perl                    # disable Perl support
 %bcond_without python                  # disable Python support
+%bcond_with    bonjour                 # Bonjour/DNS_SD support
 %bcond_without ldap                    # disable LDAP support
 %bcond_without selinux                 # sepgsql contrib module
+%bcond_with    systemtap               # systemtap/dtrace probes
 %bcond_with    absolute_dbpaths        # enable absolute paths to create database
                                        # (disabled by default because it is a security risk)
 #
 
 %define beta %{nil}
-%define mver 9.4
+%define pgsqlversion 9.3
+%define pgsqlpriority 93
 
 Summary:       PostgreSQL Data Base Management System
 Summary(de.UTF-8):     PostgreSQL Datenbankverwaltungssystem
@@ -31,27 +27,30 @@ Summary(ru.UTF-8):  PostgreSQL - система управления базами
 Summary(tr.UTF-8):     Veri Tabanı Yönetim Sistemi
 Summary(uk.UTF-8):     PostgreSQL - система керування базами даних
 Summary(zh_CN.UTF-8):  PostgreSQL 客户端程序和库文件
-Name:          postgresql
-Version:       %{mver}.1
-Release:       2
+Name:          postgresql-%{pgsqlversion}
+Version:       %{pgsqlversion}.24
+Release:       1
 License:       BSD
 Group:         Applications/Databases
-Source0:       ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 2cf30f50099ff1109d0aa517408f8eff
-Source1:       %{name}.init
+Source0:       http://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
+# Source0-md5: cdda3d26c20e5754ea9d98f7894a4f99
+Source1:       postgresql.init
 Source2:       pgsql-Database-HOWTO-html.tar.gz
 # Source2-md5: 5b656ddf1db41965761f85204a14398e
-Source3:       %{name}.sysconfig
-Patch0:                %{name}-conf.patch
-Patch1:                %{name}-absolute_dbpaths.patch
-Patch2:                %{name}-ecpg-includedir.patch
-Patch3:                %{name}-ac_version.patch
-Patch4:                %{name}-disable_horology_test.patch
-Patch5:                %{name}-heimdal.patch
-Patch6:                %{name}-ossp_uuid.patch
+Source3:       postgresql.sysconfig
+Patch0:                postgresql-conf.patch
+Patch1:                postgresql-absolute_dbpaths.patch
+Patch2:                postgresql-ecpg-includedir.patch
+Patch3:                per-version-dirs.patch
+Patch4:                postgresql-disable_horology_test.patch
+Patch5:                postgresql-heimdal.patch
+Patch6:                postgresql-ac_version.patch
+Patch7:                socket-dir-fixes.patch
+Patch8:                postgresql-ossp_uuid.patch
 URL:           http://www.postgresql.org/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.69
 BuildRequires: automake
+%{?with_bonjour:BuildRequires: avahi-compat-libdns_sd-devel}
 # not needed for releases... but fixes something in snapshot
 BuildRequires: bison >= 1.875
 BuildRequires: docbook-dtd42-sgml
@@ -79,35 +78,38 @@ BuildRequires:      python-modules >= 1:2.3
 %endif
 BuildRequires: readline-devel >= 4.2
 BuildRequires: rpmbuild(macros) >= 1.671
+%{?with_systemtap:BuildRequires:       systemtap-sdt-devel}
 %{?with_tcl:BuildRequires:     tcl-devel >= 8.4.3}
 %{?with_tests:BuildRequires:   tzdata}
 BuildRequires: zlib-devel
 Requires(post,preun):  /sbin/chkconfig
 Requires(pre): /bin/id
 Requires(pre): /usr/bin/getgid
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
 Requires(triggerpostun):       /bin/id
 Requires(triggerpostun):       /usr/sbin/usermod
-Requires:      %{name}-clients >= %{version}-%{release}
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      %{name}-clients = %{version}-%{release}
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      postgresql-libs >= %{version}-%{release}
 Requires:      rc-scripts >= 0.4.3.0
 Requires:      tzdata
+Obsoletes:     postgresql
 Obsoletes:     postgresql-module-plpgsql
 Obsoletes:     postgresql-module-tsearch2
 Obsoletes:     postgresql-server
 Obsoletes:     postgresql-test
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _pgmoduledir    %{_libdir}/postgresql
-%define                _pgsqldir       %{_datadir}/postgresql/extension
+%define                pgsqldatadir    %{_datadir}/postgresql/%{pgsqlversion}
+%define                pgsqllibdir     %{_libdir}/postgresql/%{pgsqlversion}
+%define                moduledir       %{pgsqllibdir}/lib
+%define                extensiondir    %{pgsqldatadir}/extension
 
 %define                _ulibdir        /usr/lib
 
 # omitted contribs:
-# dummy_seclabel, pg_test_fsync, pg_test_timing, spi, test_parser, worker_spi - examples/tests
+# spi, test_decoding, worker_spi - examples/tests
 # tsearch2 - old module for compatibility only
-%define        contrib_modules adminpack auth_delay auto_explain btree_gin btree_gist chkpass citext cube dblink dict_int dict_xsyn earthdistance file_fdw fuzzystrmatch hstore intagg intarray isn lo ltree oid2name pageinspect passwordcheck pg_archivecleanup pg_buffercache pg_freespacemap pg_prewarm pg_standby pg_stat_statements pg_trgm pg_upgrade pg_upgrade_support pg_xlogdump pgbench pgcrypto pgrowlocks pgstattuple postgres_fdw seg %{?with_selinux:sepgsql} sslinfo tablefunc tcn unaccent uuid-ossp vacuumlo xml2
+%define        contrib_modules adminpack auth_delay auto_explain btree_gin btree_gist chkpass citext cube dblink dict_int dict_xsyn earthdistance file_fdw fuzzystrmatch hstore intagg intarray isn lo ltree oid2name pageinspect passwordcheck pg_archivecleanup pg_buffercache pg_freespacemap pg_standby pg_stat_statements pg_trgm pg_test_fsync pg_test_timing pg_upgrade pg_xlogdump pgbench pgcrypto pgrowlocks pgstattuple postgres_fdw seg %{?with_selinux:sepgsql} sslinfo tablefunc tcn unaccent uuid-ossp vacuumlo xml2
 
 %description
 PostgreSQL Data Base Management System (formerly known as Postgres,
@@ -140,81 +142,6 @@ The name was changed at the end of 1996 to PostgreSQL.
 PostgreSQL runs on Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD,
 and most flavours of Unix.
 
-%description -l de.UTF-8
-PostgreSQL Datenbank-Managementsystem (früher als Postgres, dann als
-Postgres95 bekannt).
-
-PostgreSQL ist eine Verbesserung des POSTGRES-DB-Managementsystems,
-ein DBMS-Forschungsprototyp der nächsten Generation. Während es das
-leistungsfähige Datenmodell und die reichhaltigen Datentypen von
-POSTGRES beibehält, ersetzt es die PostQuel-Abfragesprache durch ein
-Subset von SQL. PostgreSQL ist gratis, der gesamte Quellcode ist
-verfügbar.
-
-Ein Team von Internet-Entwicklern befaßt sich mit PostgreSQL. Sie alle
-sind auf der PostgreSQL-Entwickleradreßliste. Koordinator ist Marc G.
-Fournier (scrappy@postgreSQL.org). Das Team ist verantwortlich für
-alle aktuellen und künftigen Entwicklungen von PostgreSQL.
-
-Die Autoren von PostgreSQL 1.01 waren Andrew Yu und Jolly Chen.
-Zahlreiche andere haben zur Portierung, zum Testen, Debugging und zur
-Verbesserung des Code beigetragen. Den Original-Postgres-Code, von dem
-sich PostgreSQL ableitet, verdanken wir der Arbeit vieler Doktoranden,
-Studenten und Programmierern unter der Leitung von Professor Michael
-Stonebraker an der University of California, Berkeley.
-
-Der ursprüngliche Name war Postgres. Als 1995 SQL-Funktionalität
-hinzukam, wurde der Name in Postgres95 geändert. Ende 1996 schließlich
-entschied man sich für PostgreSQL.
-
-PostgreSQL läuft auf Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD
-und den meisten Unix-Systemen.
-
-%description -l es.UTF-8
-Administrador de Banco de Datos PostgreSQL (conocido anteriormente
-como Postgres, y después como Postgres95). PostgreSQL es una
-continuación mejorada del Sistema Administrador de Banco de Datos
-POSTGRES, que era un prototipo de pesquisa para un SGBD de nueva
-generación. Mientras PostgreSQL mantiene el potente modelo de datos y
-los varios tipos de datos del POSTGRES, substituye el lenguaje de
-consulta PostQuel por un subconjunto extendido de la SQL. PostgreSQL
-es libre y tiene los fuentes disponibles. El desarrollo del PostgreSQL
-se ejecutado por un equipo de estudiosos de Internet, todos suscritos
-en la lista de desarrollo del PostgreSQL. El coordinador actual es
-Marc G. Fournier (scrappy@postgreSQL.org). Este equipo es ahora
-responsable por el desarrollo actual y futuro del PostgreSQL.
-
-%description -l fr.UTF-8
-Système de gestion de bases de données PostgreSQL (D'abord nommé
-Postgres, puis Postgres95).
-
-PostgreSQL est une amélioration du système de gestion de bases de
-données POSTGRES, un prototype de recherche de la génération suivant
-DBMS. Tout en conservant le puissant modèle de donnée de et les types
-de donée riches de Postgres, il remplace le langage de requêtes de
-Postgres par un sous ensemble etendu de commandes SQL. PosrgreSQL est
-libre, et ses sources sont disponibles.
-
-Le développement de PostgreSQL est actuellement réalisé via internet
-parune équipe de développeurs inscrits sur la mailing-list de
-développement de PostgreSQL. Le coordinateur actuel est Marc G
-Fournier (scrappy@postgreSQL.org). Cette équipe est responsable du
-développemen actuel et à venir de PostgreSQL.
-
-Les auteurs de PostgreSQL 1.01 étaient Andrew Yu et Jolly Chen.
-Beaucoup d'autres ont contribué au portage, au test, au débogage et à
-l'amélioration du code. Le code original de Postgres, duquel
-PostgreSQL est dérivé, a été l'oeuvre d'étudiants de haut niveau, de
-moins haut niveau, et de programmeurs travaillant sous la direction du
-professeur Michael Stonebraker à l'université de Berkeley Californie.
-
-Le nom original du logiciel était Postgres. Quand les fonctionnalitées
-SQL furent ajoutées en 1995, son nom est devenu Postgres95. Il a été
-rebaptisé PostgreSQL en 1996.
-
-PostgreSQL tourne sur Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD,
-et la plupart des Unix.
-
 %description -l pl.UTF-8
 System Zarządzania Bazą Danych PostgreSQL (dawniej znany jako
 Postgres, następnie jako Postgres95).
@@ -246,151 +173,24 @@ PostgreSQL.
 PostgreSQL może być uruchomiony pod następującymi systemami: Solaris,
 SunOS, HPUX, AIX, Linux, Irix, FreeBSD i innymi systemami uniksowymi.
 
-%description -l pt_BR.UTF-8
-Gerenciador de Banco de Dados PostgreSQL (conhecido anteriormente como
-Postgres, e depois como Postgres95).
-
-O PostgreSQL é uma continuação melhorada do Sistema Gerenciador de
-Banco de Dados POSTGRES, que era um protótipo de pesquisa para um SGBD
-de nova geração. Enquanto o PostgreSQL mantém o poderoso modelo de
-dados e os vários tipos de dados do POSTGRES, ele substitui a
-linguagem de consulta PostQuel por um subconjunto estendido da SQL. O
-PostgreSQL é livre e tem os fontes disponíveis.
-
-O desenvolvimento do PostgreSQL está sendo executado por uma equipe de
-desenvolvedores da Internet, todos subscritores da lista de
-desenvolvimento do PostgreSQL. O coordenador atual é Marc G. Fournier
-(scrappy@postgreSQL.org). Esta equipe é agora responsável pelo
-desenvolvimento atual e futuro do PostgreSQL.
-
-%description -l ru.UTF-8
-PostgreSQL - система управления базами данных (прежде известная как
-Postgres, потом как Postgres95).
-
-PostgreSQL - это расширенная версия системы управления базами данных
-POSTGRES, исследовательского прототипа DBMS следующей генерации.
-Сохраняя мощную модель данных и богатый набор типов данных POSTGRES,
-она заменяет язык запросов PostQuel расширенным набором SQL.
-PostgreSQL бесплатен и поставляется в виде полного комплекта исходных
-текстов.
-
-PostgreSQL разрабатывался командой Internet-разработчиков, подписанных
-на список рассылки, посвященный разработке PostgreSQL. В настоящее
-время координатором является Marc G. Fournier
-(scrappy@postgreSQL.org). Эта команда в настоящее время отвечает за
-все текущие и будущие разработки PostgreSQL.
-
-Авторами PostgreSQL 1.01 были Andrew Yu и Jolly Chen. Многие внесли
-свой вклад в портирование, тестирование, отладку и улучшение кода.
-Оригинальный код Postgres, от которого произошел PostgreSQL, был
-создан усилиями студентов, аспирантов и персонала, работающего под
-руководством профессора Michael Stonebraker в University of
-California, Berkeley.
-
-Оригинальное название ПО в Berkeley было Postgres. Когда в 1995 году
-была добавлена функциональность SQL, название изменилось на
-Postgres95. В конце 1996 года оно еще раз изменилось и теперь это
-PostgreSQL.
-
-PostgreSQL работает на Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD
-и большинстве других разновидностей Unix.
-
-%description -l tr.UTF-8
-PostgreSQL, POSTGRES'den türemiş bir veri tabanı yönetim sistemidir
-(DBMS). Güçlü veri modeli ve zengin POSTGRES veri tiplerini
-desteklerken SQL'in genişletilmiş bir altkümesi yerine PostQuel
-sorgulama dilini koyar.
-
-%description -l uk.UTF-8
-PostgreSQL - система керування базами даних (раніш відома як Postgres,
-потім як Postgres95).
-
-PostgreSQL - це розширена версія системи керування базами даних
-POSTGRES, дослідницького прототипу DBMS наступної генерації.
-Зберігаючи потужну модель даних та багатий набір типів даних POSTGRES,
-вона замінює мову запитів PostQuel розширеним набором SQL. PostgreSQL
-безкоштовна та поставляється у вигляді повного комплекту вихідних
-текстів.
-
-PostgreSQL розробляється командою Internet-програмістів, учасників
-списку розсилки, присвяченого розробці PostgreSQL. Наразі
-координатором є Marc G. Fournier (scrappy@postgreSQL.org). Ця команда
-відповідає за всі поточні та майбутні розробки PostgreSQL.
-
-Авторами PostgreSQL 1.01 були Andrew Yu та Jolly Chen. Багато людей
-внесли свій внесок в портування, тестування, відладку та покращення
-коду. Оригінальний код Postgres, від якого походить PostgreSQL, був
-створений зусиллями студентів, аспірантів та персоналу, який працював
-під керівництвом професора Michael Stonebraker в University of
-California, Berkeley.
-
-Оригінальна назва програми в Berkeley була Postgres. Коли в 1995 році
-було додано функціональність SQL, назва змінилася на Postgres95. В
-кінці 1996 року вона ще раз змінилась і зараз це PostgreSQL.
-
-PostgreSQL працює на Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD
-та більшості інших різновидів Unix.
-
-%package devel
-Summary:       PostgreSQL development header files and libraries
-Summary(de.UTF-8):     PostgreSQL-Entwicklungs-Header-Dateien und Libraries
-Summary(es.UTF-8):     Archivos de inclusión y bibliotecas PostgreSQL
-Summary(fr.UTF-8):     En-têtes et bibliothèques de développement PostgreSQL
-Summary(pl.UTF-8):     PostgreSQL - pliki nagłówkowe i biblioteki
-Summary(pt_BR.UTF-8):  Arquivos de inclusão e bibliotecas para desenvolvimento com o PostgreSQL
-Summary(ru.UTF-8):     PostgreSQL - хедеры и библиотеки разработчика
-Summary(tr.UTF-8):     PostgreSQL başlık dosyaları ve kitaplıklar
-Summary(uk.UTF-8):     PostgreSQL - хедери та бібліотеки програміста
-Group:         Development/Libraries
-Requires:      %{name}-libs = %{version}-%{release}
-
-%description devel
-This package contains header files and libraries required to compile
-applications that are talking directly to the PostgreSQL backend
-server.
-
-%description devel -l de.UTF-8
-Dieses Paket enthält die Header-Dateien und Libraries, die zum
-Kompilieren von Applikationen notwendig sind, die direkt mit dem
-PostgreSQL-Backend-Server kommunizieren.
-
-%description devel -l es.UTF-8
-Este paquete contiene archivos de inclusión y bibliotecas requeridas
-para compilación de aplicativos que se comunican directamente con el
-servidor backend PostgreSQL.
-
-%description devel -l fr.UTF-8
-Ce package contient les fichiers d'en-tête et les bibliothéques
-nécessaires pour compiler des applications ayant des échanges directs
-avec le serveur du backend PostgreSQL.
+%package dirs
+Summary:       Common directories for PostgresSQL %{pgsqlversion}
+Summary(pl.UTF-8):     Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
+Group:         Applicataion/Databases
 
-%description devel -l pl.UTF-8
-Pakiet zawiera nagłówki oraz biblioteki wymagane do kompilacji
-aplikacji łączących się bezpośrednio z serwerem PostgreSQL.
+%description dirs
+Common directories for PostgresSQL %{pgsqlversion}
 
-%description devel -l pt_BR.UTF-8
-Este pacote contém arquivos de inclusão e bibliotecas requeridas para
-compilação de aplicativos que se comunicam diretamente com o servidor
-backend PostgreSQL.
-
-%description devel -l ru.UTF-8
-Этот пакет содержит хедеры и библиотеки, необходимые для сборки
-приложений, непосредственно взаимодействующих с сервером PostgreSQL.
-
-%description devel -l tr.UTF-8
-Bu paket, PostgreSQL sunucusuyla konuşacak yazılımlar geliştirmek için
-gereken başlık dosyalarını ve kitaplıkları içerir.
-
-%description devel -l uk.UTF-8
-Цей пакет містить хедери та бібліотеки, необхідні для розробки
-програм, які безпосередньо взаємодіють з сервером PostgreSQL.
+%description dirs -l pl.UTF-8
+Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
 
 %package backend-devel
 Summary:       PostgreSQL backend development header files
 Summary(pl.UTF-8):     PostgreSQL - pliki nagłówkowe dla backendu
 Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      postgresql-devel >= %{version}-%{release}
+Requires:      postgresql-libs >= %{version}-%{release}
+Obsoletes:     postgresql-backend-devel
 
 %description backend-devel
 This package contains header files required to compile functions that
@@ -408,7 +208,10 @@ Summary(pt_BR.UTF-8):      Clientes necessários para acessar o servidor PostgreSQL
 Summary(ru.UTF-8):     Клиентские программы, необходимые для доступа к серверу PostgreSQL
 Summary(uk.UTF-8):     Клієнтські програми, необхідні для доступу до сервера PostgreSQL
 Group:         Applications/Databases
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      postgresql-libs >= %{version}-%{release}
+Obsoletes:     postgresql-clients
 
 %description clients
 This package includes only the clients needed to access an PostgreSQL
@@ -417,42 +220,16 @@ to connect to another PostgreSQL server, the this is the only package
 you need to install. Clients include several command-line utilities
 you can use to manage your databases on a remote PostgreSQL server.
 
-%description clients -l es.UTF-8
-Este paquete incluye solamente los clientes necesarios para acceder un
-servidor PostgreSQL. El servidor está en el paquete principal.
-
 %description clients -l pl.UTF-8
 Pakiet zawiera programy klienckie potrzebne dla dostępu do serwera
 PostgreSQL oraz narzędzia do zarządzania bazami działające z linii
 poleceń. Serwer znajduje się w głównym pakiecie.
 
-%description clients -l pt_BR.UTF-8
-Este pacote inclui somente os clientes necessários para acessar um
-servidor PostgreSQL. O servidor está no pacote principal.
-
-%description clients -l ru.UTF-8
-Этот пакет включает только клиентские программы и библиотеки,
-необходимые для доступа к серверу PostgreSQL. Сервер входит в главный
-пакет. Если вам надо только работать с другим сервером PostgreSQL, это
-единственный пакет, который вам надо установить.
-
-Теперь пакеты с библиотеками для разных языков программирования (C,
-C++, Perl и Tcl) разделены. Этот пакет включает только библиотеки для
-языка C.
-
-%description clients -l uk.UTF-8
-Цей пакет містить тільки клієнтські програми та бібліотеки, необхідні
-для доступу до сервера PostgreSQL. Сервер міститься в головному
-пакеті. Якщо вам потрібно працювати з іншим сервером PostgreSQL, це
-єдиний пакет, який вам треба встановити.
-
-Тепер пакети з бібліотеками для різних мов програмування (C, C++, Perl
-і Tcl) розділені. Цей пакет містить тільки бібліотеки для мови C.
-
 %package doc
 Summary:       Documentation for PostgreSQL
 Summary(pl.UTF-8):     Dodatkowa dokumantacja dla PostgreSQL
 Group:         Applications/Databases
+Obsoletes:     postgresql-doc
 
 %description doc
 This package includes documentation and HOWTO for programmer, admin
@@ -462,33 +239,14 @@ etc., in HTML format.
 Pakiet ten zawiera dokumentację oraz HOWTO m.in. dla programistów,
 administratorów w formacie HTML.
 
-%package libs
-Summary:       PostgreSQL libraries
-Summary(es.UTF-8):     Biblioteca compartida del PostgreSQL
-Summary(pl.UTF-8):     Biblioteki dzielone programu PostgreSQL
-Summary(pt_BR.UTF-8):  Biblioteca compartilhada do PostgreSQL
-Summary(zh_CN.UTF-8):  PostgreSQL 客户所需要的共享库
-Group:         Libraries
-
-%description libs
-PostgreSQL shared libraries.
-
-%description libs -l es.UTF-8
-Este paquete contiene la biblioteca compartida para acceso al
-PostgreSQL.
-
-%description libs -l pl.UTF-8
-Biblioteki dzielone programu PostgreSQL.
-
-%description libs -l pt_BR.UTF-8
-Este pacote contém a biblioteca compartilhada para acesso ao
-PostgreSQL.
-
 %package ecpg
 Summary:       Embedded SQL in C interface
 Summary(pl.UTF-8):     Interfejs wbudowanego SQL-a w język C
 Group:         Libraries
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      postgresql-libs >= %{version}-%{release}
+Requires:      postgresql-ecpg-libs >= %{version}-%{release}
+Obsoletes:     postgresql-ecpg
 
 %description ecpg
 Embedded SQL in C interface.
@@ -496,58 +254,12 @@ Embedded SQL in C interface.
 %description ecpg -l pl.UTF-8
 Interfejs wbudowanego SQL-a w język C.
 
-%package ecpg-devel
-Summary:       Embedded SQL in C interface files
-Summary(pl.UTF-8):     Pliki programistyczne interfejsu wbudowanego SQL-a w język C
-Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
-Requires:      %{name}-ecpg = %{version}-%{release}
-
-%description ecpg-devel
-Embedded SQL in C interface files.
-
-%description ecpg-devel -l pl.UTF-8
-Pliki programistyczne interfejsu wbudowanego SQL-a w język C.
-
-%package static
-Summary:       PostgreSQL static libraries
-Summary(es.UTF-8):     Bibliotecas estaticas PostgreSQL
-Summary(pl.UTF-8):     Biblioteki statyczne programu PostgreSQL
-Summary(pt_BR.UTF-8):  Bibliotecas estáticas PostgreSQL
-Summary(ru.UTF-8):     Статические библиотеки для программирования с PostgreSQL
-Summary(uk.UTF-8):     Статичні бібліотеки для програмування з PostgreSQL
-Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
-
-%description static
-PostgreSQL static libraries.
-
-%description static -l es.UTF-8
-Este paquete contiene bibliotecas estaticas requerida para compilación
-de aplicativos que se comunican directamente con el servidor backend
-PostgreSQL.
-
-%description static -l pl.UTF-8
-Biblioteki statyczne programu PostgreSQL.
-
-%description static -l pt_BR.UTF-8
-Este pacote contém as bibliotecas estáticas requeridas para compilação
-de aplicativos que se comunicam diretamente com o servidor backend
-PostgreSQL.
-
-%description static -l ru.UTF-8
-Это отдельный пакет со статическими библиотеками, которые больше не
-входят в %{name}-devel.
-
-%description static -l uk.UTF-8
-Це окремий пакет зі статичними бібліотеками, які більш не входять в
-%{name}-devel.
-
 %package module-plperl
 Summary:       PL/perl - PostgreSQL procedural language
 Summary(pl.UTF-8):     PL/perl - język proceduralny bazy danych PostgreSQL
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-plperl
 
 %description module-plperl
 From PostgreSQL documentation:
@@ -583,6 +295,7 @@ Summary(pl.UTF-8):  PL/Python - język proceduralny bazy danych PostgreSQL
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
 %pyrequires_eq python
+Obsoletes:     postgresql-module-plpython
 
 %description module-plpython
 From PostgreSQL documentation:
@@ -618,6 +331,7 @@ Summary(pl.UTF-8):  PL/Tcl - język proceduralny bazy danych PostgreSQL
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
 Requires:      tcl(Pgtcl)
+Obsoletes:     postgresql-module-pltcl
 
 %description module-pltcl
 From PostgreSQL documentation:
@@ -652,6 +366,7 @@ Summary:    dblink module for PostgreSQL
 Summary(pl.UTF-8):     Moduł dblink dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-dblink
 
 %description module-dblink
 dblink module for PostgreSQL provides functions returning results from
@@ -666,6 +381,7 @@ Summary:    Large Objects module for PostgreSQL
 Summary(pl.UTF-8):     Moduł Large Objects dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-lo
 
 %description module-lo
 Large Objects module for PostgreSQL adds a new data type 'lo', some
@@ -681,6 +397,7 @@ Summary:    Trigram matching for PostgreSQL
 Summary(pl.UTF-8):     Dopasowanie trigramowe dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-pg_trgm
 
 %description module-pg_trgm
 This module provides functions and index classes for determining the
@@ -695,6 +412,7 @@ Summary:    Cryptographic functions for PostgreSQL
 Summary(pl.UTF-8):     Funkcje kryptograficzne dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-pgcrypto
 
 %description module-pgcrypto
 Cryptographic functions for PostgreSQL.
@@ -708,6 +426,7 @@ Summary(pl.UTF-8):  Zewnętrzny moduł bezpieczeństwa PostgreSQL-a wykorzystują
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
 Requires:      libselinux >= 2.1.10
+Obsoletes:     postgresql-module-sepgsql
 
 %description module-sepgsql
 PostgreSQL external security provider using SELinux.
@@ -720,6 +439,7 @@ Summary:    crosstab functions for PostgreSQL
 Summary(pl.UTF-8):     Funkcje crosstab dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-module-tablefunc
 
 %description module-tablefunc
 crosstab functions for PostgreSQL.
@@ -733,6 +453,7 @@ Summary(pl.UTF-8):  Funkcje do obsługi XML-a dla PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
 Requires:      libxml2 >= 1:2.6.23
+Obsoletes:     postgresql-module-xml2
 
 %description module-xml2
 Module with XML functions provides both XPath querying and XSLT
@@ -749,6 +470,7 @@ Summary:    Miscellaneous PostgreSQL contrib modules
 Summary(pl.UTF-8):     Różne moduły dołączone do PostgreSQL-a
 Group:         Applications/Databases
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     postgresql-contrib
 
 %description contrib
 Miscellaneous PostgreSQL contrib modules.
@@ -757,7 +479,7 @@ Miscellaneous PostgreSQL contrib modules.
 Różne moduły dołączone do PostgreSQL-a.
 
 %prep
-%setup -q
+%setup -q -n postgresql-%{version}
 %patch0 -p1
 %{?with_absolute_dbpaths:%patch1 -p1}
 %patch2 -p1
@@ -765,6 +487,8 @@ Różne moduły dołączone do PostgreSQL-a.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 # force rebuild of bison/flex files
 find src -name \*.l -o -name \*.y | xargs touch
@@ -778,23 +502,34 @@ find src -name \*.l -o -name \*.y | xargs touch
 %{__autoheader}
 %configure \
        CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \
+       --prefix=%{pgsqldatadir} \
+       --bindir=%{pgsqllibdir}/bin \
+       --sbindir=%{pgsqllibdir}/sbin \
+       --includedir=%{_includedir} \
+       --mandir=%{pgsqldatadir}/man \
+       --datadir=%{pgsqldatadir} \
+       --libdir=%{_libdir} \
+       --docdir=%{pgsqldatadir}/doc \
+       --localedir=%{_datadir}/locale \
        --disable-rpath \
        --enable-depend \
+       %{?with_systemtap:--enable-dtrace} \
        --enable-integer-datetimes \
-       --with-system-tzdata=%{_datadir}/zoneinfo \
        --enable-nls \
        --enable-thread-safety \
+       %{?with_bonjour:--with-bonjour} \
        %{?with_kerberos5:--with-gssapi} \
        %{?with_ldap:--with-ldap} \
-       --with-openssl \
-       --with-pam \
        --with-libxml \
        --with-libxslt \
+       --with-openssl \
+       --with-pam \
        %{?with_perl:--with-perl} \
        %{?with_python:--with-python} \
        %{?with_selinux:--with-selinux} \
+       --with-system-tzdata=%{_datadir}/zoneinfo \
        %{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \
-       --with-uuid=ossp
+       --with-ossp-uuid
 
 %{__make}
 
@@ -815,10 +550,9 @@ done
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig}} \
-       $RPM_BUILD_ROOT{/var/{lib/pgsql,log},%{_pgsqldir}} \
+       $RPM_BUILD_ROOT/var/{lib/pgsql,log,run/postgresql} \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
-       $RPM_BUILD_ROOT%{_mandir} \
-       $RPM_BUILD_ROOT/home/services/postgres
+       $RPM_BUILD_ROOT%{_mandir}
 
 install src/tutorial/*.sql $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
@@ -839,8 +573,8 @@ done
 
 touch $RPM_BUILD_ROOT/var/log/pgsql
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/postgresql
+sed -e 's,@pgsqlbindir@,%{pgsqllibdir}/bin,g; s,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql-%{pgsqlversion}
+sed -e 's,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE3} >$RPM_BUILD_ROOT/etc/sysconfig/postgresql-%{pgsqlversion}
 
 install -d howto
 tar zxf %{SOURCE2} -C howto
@@ -851,43 +585,45 @@ tar zxf %{SOURCE2} -C howto
 %endif
 
 # find locales
-for f in libpq5 pg_basebackup pg_controldata pg_dump pg_resetxlog pgscripts postgres psql initdb pg_ctl pg_config plpgsql ecpg ecpglib6 %{?with_perl:plperl} plpgsql %{?with_python: plpython}; do
-       %find_lang $f-%{mver}
+for f in libpq5 pgscripts postgres psql initdb ecpg ecpglib6 \
+       plpgsql %{?with_perl:plperl} %{?with_python:plpython} \
+       pg_basebackup pg_config pg_controldata pg_ctl pg_dump pg_resetxlog; do
+       %find_lang $f-%{pgsqlversion}
 done
 # merge locales
-cat pgscripts-%{mver}.lang pg_resetxlog-%{mver}.lang \
-    postgres-%{mver}.lang pg_controldata-%{mver}.lang \
-    plpgsql-%{mver}.lang \
-    pg_basebackup-%{mver}.lang \
-    > main-%{mver}.lang
-cat pg_dump-%{mver}.lang psql-%{mver}.lang initdb-%{mver}.lang \
-    pg_ctl-%{mver}.lang > clients-%{mver}.lang
-cat ecpg-%{mver}.lang ecpglib6-%{mver}.lang > ecpg.lang
+merge_lang() {
+       cat $(for f in $@; do echo ${f}-%{pgsqlversion}.lang ; done)
+}
+merge_lang pgscripts postgres plpgsql \
+       pg_basebackup pg_controldata pg_resetxlog > main.lang
+merge_lang psql initdb \
+       pg_ctl pg_dump > clients.lang
 
 %if %{with tcl}
-%find_lang pltcl-%{mver}
-mv $RPM_BUILD_ROOT{%{_datadir}/postgresql,%{_pgsqldir}}/unknown.pltcl
+%find_lang pltcl-%{pgsqlversion}
 %endif
 
 %if %{with selinux}
-mv $RPM_BUILD_ROOT{%{_datadir}/postgresql/contrib,%{_pgsqldir}}/sepgsql.sql
+%{__mv} $RPM_BUILD_ROOT{%{pgsqldatadir}/contrib,%{extensiondir}}/sepgsql.sql
 %endif
 
-install src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/server/
-
-# unpackaged contribs
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{pg_test_fsync,pg_test_timing}.1
+cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/%{pgsqlversion}/server/
 
 # package it...?  nah, why bother.
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html
+%{__rm} -r $RPM_BUILD_ROOT%{pgsqldatadir}/doc/html
+
+# remove common files provided by PostgreSQL from master branch
+%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/{ecpg*,libpq*,pg_config*,postgres_ext.h,postgresql/internal}
+%{__rm} -r $RPM_BUILD_ROOT{%{_libdir}/{libecpg*,libpg*,libpq*,pkgconfig},%{pgsqllibdir}/bin/pg_config,%{pgsqldatadir}/man/man1/pg_config.1*}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{ecpglib*,libpq*,pg_config*}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %pre
 PG_DB_CLUSTERS=""
-if [ -f /etc/sysconfig/postgresql ]; then
-       . /etc/sysconfig/postgresql
+if [ -f /etc/sysconfig/postgresql-%{pgsqlversion} ]; then
+       . /etc/sysconfig/postgresql-%{pgsqlversion}
        if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then
                PG_DB_CLUSTERS="$POSTGRES_DATA_DIR"
        fi
@@ -895,7 +631,7 @@ fi
 foundold=0
 for pgdir in $PG_DB_CLUSTERS; do
        if [ -f $pgdir/PG_VERSION ]; then
-               if [ $(cat $pgdir/PG_VERSION) != '9.3' ]; then
+               if [ $(cat $pgdir/PG_VERSION) != '%{pgsqlversion}' ]; then
                        echo "Found database(s) in older, incompatible format in cluster $pgdir."
                        foundold=1
                fi
@@ -909,379 +645,366 @@ if [ "$foundold" = "1" ]; then
        echo "Remember to stop the daemon before upgrading!"
        echo
        echo "Alternatively you can use pg_upgrade for 8.3+ online upgrade with"
-       echo "some restrictions: http://www.postgresql.org/docs/9.0/static/pgupgrade.html"
+       echo "some restrictions: http://www.postgresql.org/docs/10.0/static/pgupgrade.html"
        echo
-       echo "Warning for upgrade from version *before* 7.2."
-       echo "Please note, that postgresql module path changed from"
-       echo "%{_libdir}/pgsql/module to %{_libdir}/postgresql. Change the path"
-       echo "in dump file before restore."
-       echo
-       echo "Warning for upgrade from version *before* 7.3."
-       echo "Reading following webpage is encouraged:"
-       echo "http://www.ca.postgresql.org/docs/momjian/upgrade_tips_7.3"
        exit 1
 fi
-%groupadd -g 88 -r postgres
-%useradd -M -o -r -u 88 -d /home/services/postgres -s /bin/sh -g postgres -c "PostgreSQL Server" postgres
-
-%triggerpostun -- %{name} < 7.2-2
-if [ -n "`/bin/id -u postgres 2>/dev/null`" ]; then
-       /usr/sbin/usermod -d /home/services/postgres postgres
-fi
 
 %post
-/sbin/chkconfig --add postgresql
-%service postgresql restart "postgresql server"
+/sbin/chkconfig --add postgresql-%{pgsqlversion}
+%service postgresql-%{pgsqlversion} restart "postgresql-%{pgsqlversion} server"
 
 %preun
 if [ "$1" = "0" ]; then
-       %service postgresql stop
-       /sbin/chkconfig --del postgresql
+       %service postgresql-%{pgsqlversion} stop
+       /sbin/chkconfig --del postgresql-%{pgsqlversion}
 fi
 
-%post  libs -p /sbin/ldconfig
-%postun        libs -p /sbin/ldconfig
-
-%post  ecpg -p /sbin/ldconfig
-%postun        ecpg -p /sbin/ldconfig
+%posttrans     clients
+update-alternatives \
+       --install %{_bindir}/clusterdb clusterdb %{pgsqllibdir}/bin/clusterdb %{pgsqlpriority} \
+       --slave %{_mandir}/man1/clusterdb.1 clusterdb.1 %{pgsqldatadir}/man/man1/clusterdb.1* || :
+update-alternatives \
+       --install %{_bindir}/createdb createdb %{pgsqllibdir}/bin/createdb %{pgsqlpriority} \
+       --slave %{_mandir}/man1/createdb.1 createdb.1 %{pgsqldatadir}/man/man1/createdb.1* || :
+update-alternatives \
+       --install %{_bindir}/createuser createuser %{pgsqllibdir}/bin/createuser %{pgsqlpriority} \
+       --slave %{_mandir}/man1/createuser.1 createuser.1 %{pgsqldatadir}/man/man1/createuser.1* || :
+update-alternatives \
+       --install %{_bindir}/dropdb dropdb %{pgsqllibdir}/bin/dropdb %{pgsqlpriority} \
+       --slave %{_mandir}/man1/dropdb.1 dropdb.1 %{pgsqldatadir}/man/man1/dropdb.1* || :
+update-alternatives \
+       --install %{_bindir}/dropuser dropuser %{pgsqllibdir}/bin/dropuser %{pgsqlpriority} \
+       --slave %{_mandir}/man1/dropuser.1 dropuser.1 %{pgsqldatadir}/man/man1/dropuser.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_dump pg_dump %{pgsqllibdir}/bin/pg_dump %{pgsqlpriority} \
+       --slave %{_mandir}/man1/pg_dump.1 pg_dump.1 %{pgsqldatadir}/man/man1/pg_dump.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_dumpall pg_dumpall %{pgsqllibdir}/bin/pg_dumpall %{pgsqlpriority} \
+       --slave %{_mandir}/man1/pg_dumpall.1 pg_dumpall.1 %{pgsqldatadir}/man/man1/pg_dumpall.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_isready pg_isready %{pgsqllibdir}/bin/pg_isready %{pgsqlpriority} \
+       --slave %{_mandir}/man1/pg_isready.1 pg_isready.1 %{pgsqldatadir}/man/man1/pg_isready.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_restore pg_restore %{pgsqllibdir}/bin/pg_restore %{pgsqlpriority} \
+       --slave %{_mandir}/man1/pg_restore.1 pg_restore.1 %{pgsqldatadir}/man/man1/pg_restore.1* || :
+update-alternatives \
+       --install %{_bindir}/psql psql %{pgsqllibdir}/bin/psql %{pgsqlpriority} \
+       --slave %{_mandir}/man1/psql.1 pgsql.1 %{pgsqldatadir}/man/man1/psql.1* || :
+update-alternatives \
+       --install %{_bindir}/reindexdb reindexdb %{pgsqllibdir}/bin/reindexdb %{pgsqlpriority} \
+       --slave %{_mandir}/man1/reindexdb.1 reindexdb.1 %{pgsqldatadir}/man/man1/reindexdb.1* || :
+update-alternatives \
+       --install %{_bindir}/vacuumdb vacuumdb %{pgsqllibdir}/bin/vacuumdb %{pgsqlpriority} \
+       --slave %{_mandir}/man1/vacuumdb.1 vacuumdb.1 %{pgsqldatadir}/man/man1/vacuumdb.1* || :
+
+%postun        clients
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove clusterdb %{pgsqllibdir}/bin/clusterdb || :
+       update-alternatives --remove createdb %{pgsqllibdir}/bin/createdb || :
+       update-alternatives --remove createuser %{pgsqllibdir}/bin/createuser || :
+       update-alternatives --remove dropdb %{pgsqllibdir}/bin/dropdb || :
+       update-alternatives --remove dropuser %{pgsqllibdir}/bin/dropuser || :
+       update-alternatives --remove pg_dump %{pgsqllibdir}/bin/pg_dump || :
+       update-alternatives --remove pg_dumpall %{pgsqllibdir}/bin/pg_dumpall || :
+       update-alternatives --remove pg_isready %{pgsqllibdir}/bin/pg_isready || :
+       update-alternatives --remove pg_restore %{pgsqllibdir}/bin/pg_restore || :
+       update-alternatives --remove psql %{pgsqllibdir}/bin/psql || :
+       update-alternatives --remove reindexdb %{pgsqllibdir}/bin/reindexdb || :
+       update-alternatives --remove vacuumdb %{pgsqllibdir}/bin/vacuumdb || :
+fi
 
-%files -f main-%{mver}.lang
+%files -f main.lang
 %defattr(644,root,root,755)
 %doc COPYRIGHT README HISTORY doc/{bug.template,KNOWN_BUGS,MISSING_FEATURES,TODO}
-%attr(754,root,root) /etc/rc.d/init.d/postgresql
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql
-
-%attr(755,root,root) %{_bindir}/initdb
-%attr(755,root,root) %{_bindir}/pg_basebackup
-%attr(755,root,root) %{_bindir}/pg_controldata
-%attr(755,root,root) %{_bindir}/pg_ctl
-%attr(755,root,root) %{_bindir}/pg_resetxlog
-%attr(755,root,root) %{_bindir}/pg_receivexlog
-%attr(755,root,root) %{_bindir}/pg_recvlogical
-%attr(755,root,root) %{_bindir}/pg_upgrade
-%attr(755,root,root) %{_bindir}/postgres
-%attr(755,root,root) %{_bindir}/postmaster
-
-%attr(755,root,root) %{_pgmoduledir}/ascii_and_mic.so
-%attr(755,root,root) %{_pgmoduledir}/cyrillic_and_mic.so
-%attr(755,root,root) %{_pgmoduledir}/dict_int.so
-%attr(755,root,root) %{_pgmoduledir}/dict_snowball.so
-%attr(755,root,root) %{_pgmoduledir}/dict_xsyn.so
-%attr(755,root,root) %{_pgmoduledir}/euc*.so
-%attr(755,root,root) %{_pgmoduledir}/latin2_and_win1250.so
-%attr(755,root,root) %{_pgmoduledir}/latin_and_mic.so
-%attr(755,root,root) %{_pgmoduledir}/libpqwalreceiver.so
-%attr(755,root,root) %{_pgmoduledir}/pg_upgrade_support.so
-%attr(755,root,root) %{_pgmoduledir}/plpgsql.so
-%attr(755,root,root) %{_pgmoduledir}/utf8_and_*.so
-
-%dir %{_pgsqldir}
-%{_pgsqldir}/plpgsql--*.sql
-%{_pgsqldir}/plpgsql.control
-
-%dir %{_datadir}/postgresql
-%{_datadir}/postgresql/*.bki
-%{_datadir}/postgresql/*.sample
-%{_datadir}/postgresql/*.description
-%{_datadir}/postgresql/*.shdescription
-%{_datadir}/postgresql/*.sql
-%{_datadir}/postgresql/*.txt
-%{_datadir}/postgresql/timezonesets
-%{_datadir}/postgresql/tsearch_data
-
-%dir %{_datadir}/postgresql/contrib
-
-%attr(700,postgres,postgres) /home/services/postgres
-%attr(700,postgres,postgres) %dir /var/lib/pgsql
+%attr(754,root,root) /etc/rc.d/init.d/postgresql-%{pgsqlversion}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql-%{pgsqlversion}
+
+%attr(755,root,root) %{pgsqllibdir}/bin/initdb
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_basebackup
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_controldata
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_ctl
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_resetxlog
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_receivexlog
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_test_fsync
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_test_timing
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_upgrade
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_xlogdump
+%attr(755,root,root) %{pgsqllibdir}/bin/pgbench
+%attr(755,root,root) %{pgsqllibdir}/bin/postgres
+%attr(755,root,root) %{pgsqllibdir}/bin/postmaster
+
+%attr(755,root,root) %{moduledir}/ascii_and_mic.so
+%attr(755,root,root) %{moduledir}/cyrillic_and_mic.so
+%attr(755,root,root) %{moduledir}/dict_int.so
+%attr(755,root,root) %{moduledir}/dict_snowball.so
+%attr(755,root,root) %{moduledir}/dict_xsyn.so
+%attr(755,root,root) %{moduledir}/euc*.so
+%attr(755,root,root) %{moduledir}/latin2_and_win1250.so
+%attr(755,root,root) %{moduledir}/latin_and_mic.so
+%attr(755,root,root) %{moduledir}/libpqwalreceiver.so
+%attr(755,root,root) %{moduledir}/plpgsql.so
+%attr(755,root,root) %{moduledir}/utf8_and_*.so
+
+%dir %{extensiondir}
+%{extensiondir}/plpgsql--*.sql
+%{extensiondir}/plpgsql.control
+
+%{pgsqldatadir}/*.bki
+%{pgsqldatadir}/*.sample
+%{pgsqldatadir}/*.description
+%{pgsqldatadir}/*.shdescription
+%{pgsqldatadir}/*.sql
+%{pgsqldatadir}/*.txt
+%{pgsqldatadir}/timezonesets
+%{pgsqldatadir}/tsearch_data
+
+%dir %{pgsqldatadir}/contrib
+
 %attr(640,postgres,postgres) %config(noreplace) %verify(not md5 mtime size) /var/log/pgsql
 
-%{_mandir}/man1/initdb.1*
-%{_mandir}/man1/pg_basebackup.1*
-%{_mandir}/man1/pg_controldata.1*
-%{_mandir}/man1/pg_ctl.1*
-%{_mandir}/man1/pg_resetxlog.1*
-%{_mandir}/man1/pg_receivexlog.1*
-%{_mandir}/man1/pg_recvlogical.1*
-%{_mandir}/man1/postgres.1*
-%{_mandir}/man1/postmaster.1*
+%{pgsqldatadir}/man/man1/initdb.1*
+%{pgsqldatadir}/man/man1/pg_basebackup.1*
+%{pgsqldatadir}/man/man1/pg_controldata.1*
+%{pgsqldatadir}/man/man1/pg_ctl.1*
+%{pgsqldatadir}/man/man1/pg_resetxlog.1*
+%{pgsqldatadir}/man/man1/pg_receivexlog.1*
+%{pgsqldatadir}/man/man1/pg_test_fsync.1*
+%{pgsqldatadir}/man/man1/pg_test_timing.1*
+%{pgsqldatadir}/man/man1/pg_test_timing.1*
+%{pgsqldatadir}/man/man1/pg_upgrade.1*
+%{pgsqldatadir}/man/man1/pg_xlogdump.1*
+%{pgsqldatadir}/man/man1/pgbench.1*
+%{pgsqldatadir}/man/man1/postgres.1*
+%{pgsqldatadir}/man/man1/postmaster.1*
+
+%files dirs
+%defattr(644,root,root,755)
+%dir %{pgsqllibdir}
+%dir %{pgsqllibdir}/bin
+%dir %{pgsqllibdir}/lib
+%dir %{pgsqldatadir}
+%dir %{pgsqldatadir}/man
+%dir %{pgsqldatadir}/man/man1
+%dir %{pgsqldatadir}/man/man3
+%dir %{pgsqldatadir}/man/man7
 
 %files doc
 %defattr(644,root,root,755)
 %doc doc/src/sgml/html howto
 %{_examplesdir}/%{name}-%{version}
 
-%files libs -f libpq5-%{mver}.lang
+%files ecpg -f ecpg-%{pgsqlversion}.lang
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libpq.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpq.so.5
-%dir %{_pgmoduledir}
-
-%files ecpg -f ecpg.lang
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/ecpg
-%attr(755,root,root) %{_libdir}/libecpg.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libecpg.so.6
-%attr(755,root,root) %{_libdir}/libecpg_compat.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libecpg_compat.so.3
-%attr(755,root,root) %{_libdir}/libpgtypes.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpgtypes.so.3
-%{_mandir}/man1/ecpg.1*
-
-%files ecpg-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libecpg.so
-%attr(755,root,root) %{_libdir}/libecpg_compat.so
-%attr(755,root,root) %{_libdir}/libpgtypes.so
-%{_includedir}/ecpg*
-%{_pkgconfigdir}/libecpg.pc
-%{_pkgconfigdir}/libecpg_compat.pc
-%{_pkgconfigdir}/libpgtypes.pc
-
-%files devel -f pg_config-%{mver}.lang
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/pg_config
-%attr(755,root,root) %{_libdir}/libpq.so
-%dir %{_includedir}/postgresql
-%{_includedir}/libpq-events.h
-%{_includedir}/libpq-fe.h
-%{_includedir}/pg_config.h
-%{_includedir}/pg_config_ext.h
-%{_includedir}/pg_config_manual.h
-%{_includedir}/pg_config_os.h
-%{_includedir}/postgres_ext.h
-%dir %{_includedir}/postgresql/internal
-%{_includedir}/postgresql/internal/c.h
-%{_includedir}/postgresql/internal/libpq-int.h
-%{_includedir}/postgresql/internal/port.h
-%{_includedir}/postgresql/internal/postgres_fe.h
-%{_includedir}/postgresql/internal/pqexpbuffer.h
-%{_includedir}/postgresql/internal/libpq
-%{_includedir}/libpq
-%{_pkgconfigdir}/libpq.pc
-%{_mandir}/man1/pg_config.1*
+%attr(755,root,root) %{pgsqllibdir}/bin/ecpg
+%{pgsqldatadir}/man/man1/ecpg.1*
 
 %files backend-devel
 %defattr(644,root,root,755)
-%{_includedir}/postgresql/server
-%dir %{_pgmoduledir}/pgxs
-%attr(755,root,root) %{_pgmoduledir}/pgxs/config
-%{_pgmoduledir}/pgxs/src
-%{_mandir}/man3/SPI_*.3*
-
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/libecpg.a
-%{_libdir}/libecpg_compat.a
-%{_libdir}/libpq.a
-%{_libdir}/libpgcommon.a
-%{_libdir}/libpgtypes.a
-%{_libdir}/libpgport.a
-
-%files clients -f clients-%{mver}.lang
+%dir %{_includedir}/postgresql/%{pgsqlversion}
+%{_includedir}/postgresql/%{pgsqlversion}/server
+%dir %{moduledir}/pgxs
+%attr(755,root,root) %{moduledir}/pgxs/config
+%{moduledir}/pgxs/src
+%{pgsqldatadir}/man/man3/SPI_*.3*
+
+%files clients -f clients.lang
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/clusterdb
-%attr(755,root,root) %{_bindir}/createdb
-%attr(755,root,root) %{_bindir}/createlang
-%attr(755,root,root) %{_bindir}/createuser
-%attr(755,root,root) %{_bindir}/dropdb
-%attr(755,root,root) %{_bindir}/droplang
-%attr(755,root,root) %{_bindir}/dropuser
-%attr(755,root,root) %{_bindir}/pg_dump
-%attr(755,root,root) %{_bindir}/pg_dumpall
-%attr(755,root,root) %{_bindir}/pg_isready
-%attr(755,root,root) %{_bindir}/pg_restore
-%attr(755,root,root) %{_bindir}/psql
-%attr(755,root,root) %{_bindir}/reindexdb
-%attr(755,root,root) %{_bindir}/vacuumdb
-
-%{_mandir}/man1/clusterdb.1*
-%{_mandir}/man1/createdb.1*
-%{_mandir}/man1/createlang.1*
-%{_mandir}/man1/createuser.1*
-%{_mandir}/man1/dropdb.1*
-%{_mandir}/man1/droplang.1*
-%{_mandir}/man1/dropuser.1*
-%{_mandir}/man1/pg_dump.1*
-%{_mandir}/man1/pg_dumpall.1*
-%{_mandir}/man1/pg_isready.1*
-%{_mandir}/man1/pg_restore.1*
-%{_mandir}/man1/pg_upgrade.1.gz
-%{_mandir}/man1/psql.1*
-%{_mandir}/man1/reindexdb.1*
-%{_mandir}/man1/vacuumdb.1*
-%{_mandir}/man7/*.7*
+%attr(755,root,root) %{pgsqllibdir}/bin/clusterdb
+%attr(755,root,root) %{pgsqllibdir}/bin/createdb
+%attr(755,root,root) %{pgsqllibdir}/bin/createlang
+%attr(755,root,root) %{pgsqllibdir}/bin/createuser
+%attr(755,root,root) %{pgsqllibdir}/bin/dropdb
+%attr(755,root,root) %{pgsqllibdir}/bin/droplang
+%attr(755,root,root) %{pgsqllibdir}/bin/dropuser
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_archivecleanup
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_dump
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_dumpall
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_isready
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_restore
+%attr(755,root,root) %{pgsqllibdir}/bin/psql
+%attr(755,root,root) %{pgsqllibdir}/bin/reindexdb
+%attr(755,root,root) %{pgsqllibdir}/bin/vacuumdb
+
+%{pgsqldatadir}/man/man1/clusterdb.1*
+%{pgsqldatadir}/man/man1/createdb.1*
+%{pgsqldatadir}/man/man1/createlang.1*
+%{pgsqldatadir}/man/man1/createuser.1*
+%{pgsqldatadir}/man/man1/dropdb.1*
+%{pgsqldatadir}/man/man1/droplang.1*
+%{pgsqldatadir}/man/man1/dropuser.1*
+%{pgsqldatadir}/man/man1/pg_archivecleanup.1*
+%{pgsqldatadir}/man/man1/pg_dump.1*
+%{pgsqldatadir}/man/man1/pg_dumpall.1*
+%{pgsqldatadir}/man/man1/pg_isready.1*
+%{pgsqldatadir}/man/man1/pg_restore.1*
+%{pgsqldatadir}/man/man1/psql.1*
+%{pgsqldatadir}/man/man1/reindexdb.1*
+%{pgsqldatadir}/man/man1/vacuumdb.1*
+%{pgsqldatadir}/man/man7/*.7*
 
 %if %{with perl}
-%files module-plperl -f plperl-%{mver}.lang
+%files module-plperl -f plperl-%{pgsqlversion}.lang
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/plperl.so
-%{_pgsqldir}/plperl--*.sql
-%{_pgsqldir}/plperl.control
-%{_pgsqldir}/plperlu--*.sql
-%{_pgsqldir}/plperlu.control
+%attr(755,root,root) %{moduledir}/plperl.so
+%{extensiondir}/plperl--*.sql
+%{extensiondir}/plperl.control
+%{extensiondir}/plperlu--*.sql
+%{extensiondir}/plperlu.control
 %endif
 
 %if %{with python}
-%files module-plpython -f plpython-%{mver}.lang
+%files module-plpython -f plpython-%{pgsqlversion}.lang
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/plpython2.so
-%{_pgsqldir}/plpython*--*.sql
-%{_pgsqldir}/plpython*.control
+%attr(755,root,root) %{moduledir}/plpython2.so
+%{extensiondir}/plpython*--*.sql
+%{extensiondir}/plpython*.control
 %endif
 
 %if %{with tcl}
-%files module-pltcl -f pltcl-%{mver}.lang
+%files module-pltcl -f pltcl-%{pgsqlversion}.lang
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/pltcl_*
-%attr(755,root,root) %{_pgmoduledir}/pltcl.so
-%{_pgsqldir}/unknown.pltcl
-%{_pgsqldir}/pltcl*--*.sql
-%{_pgsqldir}/pltcl*.control
+%attr(755,root,root) %{pgsqllibdir}/bin/pltcl_*
+%attr(755,root,root) %{moduledir}/pltcl.so
+%{pgsqldatadir}/unknown.pltcl
+%{extensiondir}/pltcl*--*.sql
+%{extensiondir}/pltcl*.control
 %endif
 
 %files module-dblink
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/dblink.so
-%{_pgsqldir}/dblink--*.sql
-%{_pgsqldir}/dblink.control
-%{_mandir}/man3/dblink*.3*
+%attr(755,root,root) %{moduledir}/dblink.so
+%{extensiondir}/dblink--*.sql
+%{extensiondir}/dblink.control
+%{pgsqldatadir}/man/man3/dblink*.3*
 
 %files module-lo
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/lo.so
-%{_pgsqldir}/lo--*.sql
-%{_pgsqldir}/lo.control
+%attr(755,root,root) %{moduledir}/lo.so
+%{extensiondir}/lo--*.sql
+%{extensiondir}/lo.control
 
 %files module-pg_trgm
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/pg_trgm.so
-%{_pgsqldir}/pg_trgm--*.sql
-%{_pgsqldir}/pg_trgm.control
+%attr(755,root,root) %{moduledir}/pg_trgm.so
+%{extensiondir}/pg_trgm--*.sql
+%{extensiondir}/pg_trgm.control
 
 %files module-pgcrypto
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/pgcrypto.so
-%{_pgsqldir}/pgcrypto--*.sql
-%{_pgsqldir}/pgcrypto.control
+%attr(755,root,root) %{moduledir}/pgcrypto.so
+%{extensiondir}/pgcrypto--*.sql
+%{extensiondir}/pgcrypto.control
 
 %if %{with selinux}
 %files module-sepgsql
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/sepgsql.so
-%{_pgsqldir}/sepgsql.sql
+%attr(755,root,root) %{moduledir}/sepgsql.so
+%{extensiondir}/sepgsql.sql
 %endif
 
 %files module-tablefunc
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/tablefunc.so
-%{_pgsqldir}/*tablefunc--*.sql
-%{_pgsqldir}/*tablefunc.control
+%attr(755,root,root) %{moduledir}/tablefunc.so
+%{extensiondir}/*tablefunc--*.sql
+%{extensiondir}/*tablefunc.control
 
 %files module-xml2
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/pgxml.so
-%{_pgsqldir}/xml2--*.sql
-%{_pgsqldir}/xml2.control
+%attr(755,root,root) %{moduledir}/pgxml.so
+%{extensiondir}/xml2--*.sql
+%{extensiondir}/xml2.control
 
 %files contrib
 %defattr(644,root,root,755)
 %doc contrib/README
-%attr(755,root,root) %{_bindir}/oid2name
-%attr(755,root,root) %{_bindir}/pg_archivecleanup
-%attr(755,root,root) %{_bindir}/pg_standby
-%attr(755,root,root) %{_bindir}/pg_xlogdump
-%attr(755,root,root) %{_bindir}/pgbench
-%attr(755,root,root) %{_bindir}/vacuumlo
-%attr(755,root,root) %{_pgmoduledir}/_int.so
-%attr(755,root,root) %{_pgmoduledir}/adminpack.so
-%attr(755,root,root) %{_pgmoduledir}/auth_delay.so
-%attr(755,root,root) %{_pgmoduledir}/auto_explain.so
-%attr(755,root,root) %{_pgmoduledir}/btree_gin.so
-%attr(755,root,root) %{_pgmoduledir}/btree_gist.so
-%attr(755,root,root) %{_pgmoduledir}/chkpass.so
-%attr(755,root,root) %{_pgmoduledir}/citext.so
-%attr(755,root,root) %{_pgmoduledir}/cube.so
-%attr(755,root,root) %{_pgmoduledir}/earthdistance.so
-%attr(755,root,root) %{_pgmoduledir}/file_fdw.so
-%attr(755,root,root) %{_pgmoduledir}/fuzzystrmatch.so
-%attr(755,root,root) %{_pgmoduledir}/hstore.so
-%attr(755,root,root) %{_pgmoduledir}/isn.so
-%attr(755,root,root) %{_pgmoduledir}/ltree.so
-%attr(755,root,root) %{_pgmoduledir}/pageinspect.so
-%attr(755,root,root) %{_pgmoduledir}/passwordcheck.so
-%attr(755,root,root) %{_pgmoduledir}/pg_buffercache.so
-%attr(755,root,root) %{_pgmoduledir}/pg_freespacemap.so
-%attr(755,root,root) %{_pgmoduledir}/pg_prewarm.so
-%attr(755,root,root) %{_pgmoduledir}/pg_stat_statements.so
-%attr(755,root,root) %{_pgmoduledir}/pgrowlocks.so
-%attr(755,root,root) %{_pgmoduledir}/pgstattuple.so
-%attr(755,root,root) %{_pgmoduledir}/postgres_fdw.so
-%attr(755,root,root) %{_pgmoduledir}/seg.so
-%attr(755,root,root) %{_pgmoduledir}/sslinfo.so
-%attr(755,root,root) %{_pgmoduledir}/tcn.so
-%attr(755,root,root) %{_pgmoduledir}/unaccent.so
-%attr(755,root,root) %{_pgmoduledir}/uuid-ossp.so
-%{_pgsqldir}/adminpack--*.sql
-%{_pgsqldir}/adminpack.control
-%{_pgsqldir}/btree_gin--*.sql
-%{_pgsqldir}/btree_gin.control
-%{_pgsqldir}/btree_gist--*.sql
-%{_pgsqldir}/btree_gist.control
-%{_pgsqldir}/chkpass--*.sql
-%{_pgsqldir}/chkpass.control
-%{_pgsqldir}/citext--*.sql
-%{_pgsqldir}/citext.control
-%{_pgsqldir}/cube--*.sql
-%{_pgsqldir}/cube.control
-%{_pgsqldir}/dict_int--*.sql
-%{_pgsqldir}/dict_int.control
-%{_pgsqldir}/dict_xsyn--*.sql
-%{_pgsqldir}/dict_xsyn.control
-%{_pgsqldir}/earthdistance--*.sql
-%{_pgsqldir}/earthdistance.control
-%{_pgsqldir}/file_fdw--*.sql
-%{_pgsqldir}/file_fdw.control
-%{_pgsqldir}/fuzzystrmatch--*.sql
-%{_pgsqldir}/fuzzystrmatch.control
-%{_pgsqldir}/hstore--*.sql
-%{_pgsqldir}/hstore.control
-%{_pgsqldir}/intarray--*.sql
-%{_pgsqldir}/intarray.control
-%{_pgsqldir}/intagg--*.sql
-%{_pgsqldir}/intagg.control
-%{_pgsqldir}/isn--*.sql
-%{_pgsqldir}/isn.control
-%{_pgsqldir}/ltree--*.sql
-%{_pgsqldir}/ltree.control
-%{_pgsqldir}/pageinspect--*.sql
-%{_pgsqldir}/pageinspect.control
-%{_pgsqldir}/pg_buffercache--*.sql
-%{_pgsqldir}/pg_buffercache.control
-%{_pgsqldir}/pg_freespacemap--*.sql
-%{_pgsqldir}/pg_freespacemap.control
-%{_pgsqldir}/pg_prewarm--*.sql
-%{_pgsqldir}/pg_prewarm.control
-%{_pgsqldir}/pg_stat_statements--*.sql
-%{_pgsqldir}/pg_stat_statements.control
-%{_pgsqldir}/pgrowlocks--*.sql
-%{_pgsqldir}/pgrowlocks.control
-%{_pgsqldir}/pgstattuple--*.sql
-%{_pgsqldir}/pgstattuple.control
-%{_pgsqldir}/postgres_fdw--*.sql
-%{_pgsqldir}/postgres_fdw.control
-%{_pgsqldir}/seg--*.sql
-%{_pgsqldir}/seg.control
-%{_pgsqldir}/sslinfo--*.sql
-%{_pgsqldir}/sslinfo.control
-%{_pgsqldir}/tcn--*.sql
-%{_pgsqldir}/tcn.control
-%{_pgsqldir}/unaccent--*.sql
-%{_pgsqldir}/unaccent.control
-%{_pgsqldir}/uuid-ossp--*.sql
-%{_pgsqldir}/uuid-ossp.control
-%{_mandir}/man1/oid2name.1*
-%{_mandir}/man1/pg_archivecleanup.1*
-%{_mandir}/man1/pg_standby.1*
-%{_mandir}/man1/pg_xlogdump.1*
-%{_mandir}/man1/pgbench.1*
-%{_mandir}/man1/vacuumlo.1*
+%attr(755,root,root) %{pgsqllibdir}/bin/oid2name
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_standby
+%attr(755,root,root) %{pgsqllibdir}/bin/vacuumlo
+%attr(755,root,root) %{moduledir}/_int.so
+%attr(755,root,root) %{moduledir}/adminpack.so
+%attr(755,root,root) %{moduledir}/auth_delay.so
+%attr(755,root,root) %{moduledir}/auto_explain.so
+%attr(755,root,root) %{moduledir}/btree_gin.so
+%attr(755,root,root) %{moduledir}/btree_gist.so
+%attr(755,root,root) %{moduledir}/chkpass.so
+%attr(755,root,root) %{moduledir}/citext.so
+%attr(755,root,root) %{moduledir}/cube.so
+%attr(755,root,root) %{moduledir}/earthdistance.so
+%attr(755,root,root) %{moduledir}/file_fdw.so
+%attr(755,root,root) %{moduledir}/fuzzystrmatch.so
+%attr(755,root,root) %{moduledir}/hstore.so
+%attr(755,root,root) %{moduledir}/isn.so
+%attr(755,root,root) %{moduledir}/ltree.so
+%attr(755,root,root) %{moduledir}/pageinspect.so
+%attr(755,root,root) %{moduledir}/passwordcheck.so
+%attr(755,root,root) %{moduledir}/pg_buffercache.so
+%attr(755,root,root) %{moduledir}/pg_freespacemap.so
+%attr(755,root,root) %{moduledir}/pg_stat_statements.so
+%attr(755,root,root) %{moduledir}/pgrowlocks.so
+%attr(755,root,root) %{moduledir}/pgstattuple.so
+%attr(755,root,root) %{moduledir}/postgres_fdw.so
+%attr(755,root,root) %{moduledir}/seg.so
+%attr(755,root,root) %{moduledir}/sslinfo.so
+%attr(755,root,root) %{moduledir}/tcn.so
+%attr(755,root,root) %{moduledir}/unaccent.so
+%attr(755,root,root) %{moduledir}/uuid-ossp.so
+%{extensiondir}/adminpack--*.sql
+%{extensiondir}/adminpack.control
+%{extensiondir}/btree_gin--*.sql
+%{extensiondir}/btree_gin.control
+%{extensiondir}/btree_gist--*.sql
+%{extensiondir}/btree_gist.control
+%{extensiondir}/chkpass--*.sql
+%{extensiondir}/chkpass.control
+%{extensiondir}/citext--*.sql
+%{extensiondir}/citext.control
+%{extensiondir}/cube--*.sql
+%{extensiondir}/cube.control
+%{extensiondir}/dict_int--*.sql
+%{extensiondir}/dict_int.control
+%{extensiondir}/dict_xsyn--*.sql
+%{extensiondir}/dict_xsyn.control
+%{extensiondir}/earthdistance--*.sql
+%{extensiondir}/earthdistance.control
+%{extensiondir}/file_fdw--*.sql
+%{extensiondir}/file_fdw.control
+%{extensiondir}/fuzzystrmatch--*.sql
+%{extensiondir}/fuzzystrmatch.control
+%{extensiondir}/hstore--*.sql
+%{extensiondir}/hstore.control
+%{extensiondir}/intarray--*.sql
+%{extensiondir}/intarray.control
+%{extensiondir}/intagg--*.sql
+%{extensiondir}/intagg.control
+%{extensiondir}/isn--*.sql
+%{extensiondir}/isn.control
+%{extensiondir}/ltree--*.sql
+%{extensiondir}/ltree.control
+%{extensiondir}/pageinspect--*.sql
+%{extensiondir}/pageinspect.control
+%{extensiondir}/pg_buffercache--*.sql
+%{extensiondir}/pg_buffercache.control
+%{extensiondir}/pg_freespacemap--*.sql
+%{extensiondir}/pg_freespacemap.control
+%{extensiondir}/pg_stat_statements--*.sql
+%{extensiondir}/pg_stat_statements.control
+%{extensiondir}/pgrowlocks--*.sql
+%{extensiondir}/pgrowlocks.control
+%{extensiondir}/pgstattuple--*.sql
+%{extensiondir}/pgstattuple.control
+%{extensiondir}/postgres_fdw--*.sql
+%{extensiondir}/postgres_fdw.control
+%{extensiondir}/seg--*.sql
+%{extensiondir}/seg.control
+%{extensiondir}/sslinfo--*.sql
+%{extensiondir}/sslinfo.control
+%{extensiondir}/tcn--*.sql
+%{extensiondir}/tcn.control
+%{extensiondir}/unaccent--*.sql
+%{extensiondir}/unaccent.control
+%{extensiondir}/uuid-ossp--*.sql
+%{extensiondir}/uuid-ossp.control
+%{pgsqldatadir}/man/man1/oid2name.1*
+%{pgsqldatadir}/man/man1/pg_standby.1*
+%{pgsqldatadir}/man/man1/vacuumlo.1*
index f3f4735ab87c5c9bf3127ad8c1bdf74368d4282f..dde92829d38c934e86cab582cd42eaa00f3df563 100644 (file)
@@ -4,20 +4,15 @@
 # Edit postgresql.conf file in database cluster directory to configure
 # PostgreSQL. If you want to start more than one PostgreSQL instance,
 # you should change TCP/IP port, at least.
-#
-# Under systemd each cluster is started under a different postgresql@.service
-# instance, the default being postgresql@var-lib-pgsql.service
-#
-# To enable a new one use;  /bin/systemctl enable postgresql@${instance}.service
 
 # locale used at service postgresql init
 # PG_INIT_LOCALE=C
 
 # standard setting
-PG_DB_CLUSTERS="/var/lib/pgsql"
+PG_DB_CLUSTERS="/var/lib/pgsql/@pgsqlversion@/main"
 
 # predictable usage
-# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02"
+# PG_DB_CLUSTERS="/var/lib/pgsql/@pgsqlversion@/server1 /var/lib/pgsql/@pgsqlversion@/server2"
 
 # new database disk arrived
-# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02 /mnt/db/01"
+# PG_DB_CLUSTERS="/var/lib/pgsql/@pgsqlversion@/server1 /var/lib/pgsql/@pgsqlversion@/server2 /mnt/pgsql/@pgsqlversion@/server3"
diff --git a/postgresql_9.1-ac_version.patch b/postgresql_9.1-ac_version.patch
deleted file mode 100644 (file)
index 4482bd4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- postgresql-9.1.0/configure.in.org  2011-09-12 21:35:12.735636961 +0200
-+++ postgresql-9.1.0/configure.in      2011-09-12 21:35:39.342896072 +0200
-@@ -19,10 +19,10 @@
- AC_INIT([PostgreSQL], [9.1.0], [pgsql-bugs@postgresql.org])
--m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 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.])])
-+dnl m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 is required.
-+dnl Untested combinations of 'autoconf' and PostgreSQL versions are not
-+dnl recommended.  You can remove the check from 'configure.in' but it is then
-+dnl your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2011, PostgreSQL Global Development Group])
- AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
- AC_CONFIG_AUX_DIR(config)
diff --git a/socket-dir-fixes.patch b/socket-dir-fixes.patch
new file mode 100644 (file)
index 0000000..de08eb1
--- /dev/null
@@ -0,0 +1,27 @@
+diff -urpa postgresql-9.3.24.orig/contrib/pg_upgrade/option.c postgresql-9.3.24/contrib/pg_upgrade/option.c
+--- postgresql-9.3.24.orig/contrib/pg_upgrade/option.c 2018-08-23 19:56:17.181401335 +0000
++++ postgresql-9.3.24/contrib/pg_upgrade/option.c      2018-08-23 19:59:38.729399066 +0000
+@@ -411,6 +411,11 @@ get_sock_dir(ClusterInfo *cluster, bool
+                       cluster->sockdir = pg_malloc(MAXPGPATH);
+                       if (!getcwd(cluster->sockdir, MAXPGPATH))
+                               pg_log(PG_FATAL, "cannot find current directory\n");
++#ifndef UNIX_PATH_MAX
++#define UNIX_PATH_MAX 108
++#endif
++                      if (strlen(cluster->sockdir) > UNIX_PATH_MAX - sizeof(".s.PGSQL.50432"))
++                              strcpy(cluster->sockdir, "/tmp"); /* fall back to tmp */
+               }
+               else
+               {
+diff -urpa postgresql-9.3.24.orig/src/include/pg_config_manual.h postgresql-9.3.24/src/include/pg_config_manual.h
+--- postgresql-9.3.24.orig/src/include/pg_config_manual.h      2018-08-23 19:56:17.195401335 +0000
++++ postgresql-9.3.24/src/include/pg_config_manual.h   2018-08-23 19:59:34.340399115 +0000
+@@ -152,7 +152,7 @@
+  * here's where to twiddle it.  You can also override this at runtime
+  * with the postmaster's -k switch.
+  */
+-#define DEFAULT_PGSOCKET_DIR  "/tmp"
++#define DEFAULT_PGSOCKET_DIR  "/var/run/postgresql"
+ /*
+  * The random() function is expected to yield values between 0 and