]> TLD Linux GIT Repositories - packages/postgresql.git/commitdiff
- reworked for versioned install to allow multiple versions on same host
authorMarcin Krol <hawk@tld-linux.org>
Wed, 22 Aug 2018 11:58:14 +0000 (11:58 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Wed, 22 Aug 2018 11:58:14 +0000 (11:58 +0000)
- dropped some foreign package deps
- NFY

per-version-dirs.patch [new file with mode: 0644]
postgresql.init
postgresql.spec
postgresql.sysconfig

diff --git a/per-version-dirs.patch b/per-version-dirs.patch
new file mode 100644 (file)
index 0000000..46e8c45
--- /dev/null
@@ -0,0 +1,44 @@
+--- a/src/Makefile.global.in
++++ b/src/Makefile.global.in
+@@ -120,7 +120,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
+@@ -168,7 +168,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
+--- a/src/bin/pg_config/pg_config.c
++++ b/src/bin/pg_config/pg_config.c
+@@ -27,6 +27,8 @@
+ #include "port.h"
+ #include "common/config_info.h"
++#include "../port/pg_config_paths.h"
++
+ static const char *progname;
+ /*
+@@ -148,11 +150,7 @@ main(int argc, char **argv)
+               }
+       }
+-      if (find_my_exec(argv[0], my_exec_path) < 0)
+-      {
+-              fprintf(stderr, _("%s: could not find own program executable\n"), progname);
+-              exit(1);
+-      }
++      snprintf(my_exec_path, sizeof(my_exec_path), "%s/%s", PGBINDIR, progname);
+       configdata = get_configdata(my_exec_path, &configdata_len);
+       /* no arguments -> print everything */
index 647f2ec4328af6cab69cf80b305ae8a7c25863b1..ac82745e5bf709c5390b2ef73b44e09b443f9a52 100644 (file)
@@ -21,10 +21,10 @@ cd /
 PG_INIT_LOCALE=C
 
 # Get service config
 PG_INIT_LOCALE=C
 
 # Get service config
-if [ -f /etc/sysconfig/postgresql ]; then
-       . /etc/sysconfig/postgresql
+if [ -f /etc/sysconfig/postgresql10 ]; then
+       . /etc/sysconfig/postgresql10
 else
 else
-       nls "Error: %s not found" /etc/sysconfig/postgresql
+       nls "Error: %s not found" /etc/sysconfig/postgresql10
        nls " PostgreSQL can't be run."
        exit 1
 fi
        nls " PostgreSQL can't be run."
        exit 1
 fi
@@ -73,7 +73,7 @@ fi
 pgstatus() {
        PG_STATUS="unknown"
        PG_PID="unknown"
 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 3 ]; then
        status=$?
 
        if [ $status -eq 3 ]; then
@@ -94,7 +94,7 @@ pgstatus() {
 pgstart() {
        is_no "$RC_LOGGING" && fork=--fork
        msg_starting "PostgreSQL $1"
 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
        for pgdir in $PG_DB_CLUSTERS; do
                pgstatus "$pgdir"
                if [ "$PG_STATUS" = "running" ]; then
-                       touch /var/lock/subsys/postgresql
+                       touch /var/lock/subsys/postgresql10
                        return
                fi
        done
                        return
                fi
        done
-       rm -f /var/lock/subsys/postgresql
+       rm -f /var/lock/subsys/postgresql10
 }
 
 #
 }
 
 #
@@ -149,7 +149,7 @@ stop() {
                        busy
                        # is postgresql really alive?
                        if ps -p "$PG_PID" >/dev/null; then
                        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
                                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
                        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
                                        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
                        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\"")'!'
                fi
        done
        echo $(nls "REMEMBER to setup password for user \"postgres\"")'!'
index 299f21b6d7d6474cdab339a22ad498eac392e760..3306e812f93e585620d27a5703beb2c64e035a97 100644 (file)
@@ -1,9 +1,3 @@
-# TODO:
-# - python 3 and python 2 subpackages?
-# - subpackage *_plperl and *_plpython contribs?
-# - 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
 #
 # Conditional build:
 %bcond_without tests                   # disable testing
@@ -20,7 +14,8 @@
 #
 
 %define beta %{nil}
 #
 
 %define beta %{nil}
-%define mver 10
+%define pgver 10
+%define pgminver 5
 
 Summary:       PostgreSQL Data Base Management System
 Summary(de.UTF-8):     PostgreSQL Datenbankverwaltungssystem
 
 Summary:       PostgreSQL Data Base Management System
 Summary(de.UTF-8):     PostgreSQL Datenbankverwaltungssystem
@@ -32,24 +27,24 @@ 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 客户端程序和库文件
 Summary(tr.UTF-8):     Veri Tabanı Yönetim Sistemi
 Summary(uk.UTF-8):     PostgreSQL - система керування базами даних
 Summary(zh_CN.UTF-8):  PostgreSQL 客户端程序和库文件
-Name:          postgresql
-Version:       %{mver}.5
-Release:       1
+Name:          postgresql%{pgver}
+Version:       %{pgver}.%{pgminver}
+Release:       1.1
 License:       BSD
 Group:         Applications/Databases
 License:       BSD
 Group:         Applications/Databases
-Source0:       http://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
+Source0:       http://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
 # Source0-md5: a5fe5fdff2d6c28f65601398be0950df
 # Source0-md5: a5fe5fdff2d6c28f65601398be0950df
-Source1:       %{name}.init
+Source1:       postgresql.init
 Source2:       pgsql-Database-HOWTO-html.tar.gz
 # Source2-md5: 5b656ddf1db41965761f85204a14398e
 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
-
-Patch4:                %{name}-disable_horology_test.patch
-Patch5:                %{name}-heimdal.patch
-Patch6:                %{name}-link.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-link.patch
 URL:           http://www.postgresql.org/
 BuildRequires: autoconf >= 2.69
 BuildRequires: automake
 URL:           http://www.postgresql.org/
 BuildRequires: autoconf >= 2.69
 BuildRequires: automake
@@ -93,7 +88,7 @@ Requires(pre):        /usr/sbin/useradd
 Requires(triggerpostun):       /bin/id
 Requires(triggerpostun):       /usr/sbin/usermod
 Requires:      %{name}-clients >= %{version}-%{release}
 Requires(triggerpostun):       /bin/id
 Requires(triggerpostun):       /usr/sbin/usermod
 Requires:      %{name}-clients >= %{version}-%{release}
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      postgresql-libs = %{version}-%{release}
 Requires:      rc-scripts >= 0.4.3.0
 Requires:      tzdata
 Obsoletes:     postgresql-module-plpgsql
 Requires:      rc-scripts >= 0.4.3.0
 Requires:      tzdata
 Obsoletes:     postgresql-module-plpgsql
@@ -102,8 +97,10 @@ Obsoletes:  postgresql-server
 Obsoletes:     postgresql-test
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 Obsoletes:     postgresql-test
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _pgmoduledir    %{_libdir}/postgresql
-%define                _pgsqldir       %{_datadir}/postgresql/extension
+%define                pgsqldatadir    %{_datadir}/postgresql/%{pgver}
+%define                pgsqllibdir     %{_libdir}/postgresql/%{pgver}
+%define                moduledir       %{pgsqllibdir}/lib
+%define                extensiondir    %{pgsqldatadir}/extension
 
 %define                _ulibdir        /usr/lib
 
 
 %define                _ulibdir        /usr/lib
 
@@ -143,81 +140,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.
 
 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).
 %description -l pl.UTF-8
 System Zarządzania Bazą Danych PostgreSQL (dawniej znany jako
 Postgres, następnie jako Postgres95).
@@ -249,92 +171,7 @@ PostgreSQL.
 PostgreSQL może być uruchomiony pod następującymi systemami: Solaris,
 SunOS, HPUX, AIX, Linux, Irix, FreeBSD i innymi systemami uniksowymi.
 
 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
+%package -n postgresql-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:       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
@@ -345,55 +182,23 @@ 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
 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}
+Requires:      postgresql-libs = %{version}-%{release}
 
 
-%description devel
+%description -n postgresql-devel
 This package contains header files and libraries required to compile
 applications that are talking directly to the PostgreSQL backend
 server.
 
 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.
-
-%description devel -l pl.UTF-8
+%description -n postgresql-devel -l pl.UTF-8
 Pakiet zawiera nagłówki oraz biblioteki wymagane do kompilacji
 aplikacji łączących się bezpośrednio z serwerem PostgreSQL.
 
 Pakiet zawiera nagłówki oraz biblioteki wymagane do kompilacji
 aplikacji łączących się bezpośrednio z serwerem PostgreSQL.
 
-%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.
-
 %package backend-devel
 Summary:       PostgreSQL backend development header files
 Summary(pl.UTF-8):     PostgreSQL - pliki nagłówkowe dla backendu
 Group:         Development/Libraries
 %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}
 
 %description backend-devel
 This package contains header files required to compile functions that
 
 %description backend-devel
 This package contains header files required to compile functions that
@@ -411,7 +216,8 @@ 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
 Summary(ru.UTF-8):     Клиентские программы, необходимые для доступа к серверу PostgreSQL
 Summary(uk.UTF-8):     Клієнтські програми, необхідні для доступу до сервера PostgreSQL
 Group:         Applications/Databases
-Requires:      %{name}-libs = %{version}-%{release}
+Requires:      alternatives
+Requires:      postgresql-libs = %{version}-%{release}
 
 %description clients
 This package includes only the clients needed to access an PostgreSQL
 
 %description clients
 This package includes only the clients needed to access an PostgreSQL
@@ -420,38 +226,11 @@ 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.
 
 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 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
 %package doc
 Summary:       Documentation for PostgreSQL
 Summary(pl.UTF-8):     Dodatkowa dokumantacja dla PostgreSQL
@@ -465,7 +244,7 @@ etc., in HTML format.
 Pakiet ten zawiera dokumentację oraz HOWTO m.in. dla programistów,
 administratorów w formacie HTML.
 
 Pakiet ten zawiera dokumentację oraz HOWTO m.in. dla programistów,
 administratorów w formacie HTML.
 
-%package libs
+%package -n postgresql-libs
 Summary:       PostgreSQL libraries
 Summary(es.UTF-8):     Biblioteca compartida del PostgreSQL
 Summary(pl.UTF-8):     Biblioteki dzielone programu PostgreSQL
 Summary:       PostgreSQL libraries
 Summary(es.UTF-8):     Biblioteca compartida del PostgreSQL
 Summary(pl.UTF-8):     Biblioteki dzielone programu PostgreSQL
@@ -473,25 +252,18 @@ Summary(pt_BR.UTF-8):     Biblioteca compartilhada do PostgreSQL
 Summary(zh_CN.UTF-8):  PostgreSQL 客户所需要的共享库
 Group:         Libraries
 
 Summary(zh_CN.UTF-8):  PostgreSQL 客户所需要的共享库
 Group:         Libraries
 
-%description libs
+%description -n postgresql-libs
 PostgreSQL shared libraries.
 
 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
+%description -n postgresql-libs -l pl.UTF-8
 Biblioteki dzielone programu PostgreSQL.
 
 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
 %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:      postgresql-libs = %{version}-%{release}
+Requires:      postgresql-ecpg-libs = %{version}-%{release}
 
 %description ecpg
 Embedded SQL in C interface.
 
 %description ecpg
 Embedded SQL in C interface.
@@ -499,20 +271,34 @@ Embedded SQL in C interface.
 %description ecpg -l pl.UTF-8
 Interfejs wbudowanego SQL-a w język C.
 
 %description ecpg -l pl.UTF-8
 Interfejs wbudowanego SQL-a w język C.
 
-%package ecpg-devel
+%package -n postgresql-ecpg-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 -n postgresql-ecpg-libs
+PostgreSQL shared libraries.
+
+%description -n postgresql-ecpg-libs -l pl.UTF-8
+Biblioteki dzielone programu PostgreSQL.
+
+%package -n postgresql-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
 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}
+Requires:      postgresql-devel = %{version}-%{release}
+Requires:      postgresql-ecpg-devel = %{version}-%{release}
 
 
-%description ecpg-devel
+%description -n postgresql-ecpg-devel
 Embedded SQL in C interface files.
 
 Embedded SQL in C interface files.
 
-%description ecpg-devel -l pl.UTF-8
+%description -n postgresql-ecpg-devel -l pl.UTF-8
 Pliki programistyczne interfejsu wbudowanego SQL-a w język C.
 
 Pliki programistyczne interfejsu wbudowanego SQL-a w język C.
 
-%package static
+%package -n postgresql-ecpg-static
 Summary:       PostgreSQL static libraries
 Summary(es.UTF-8):     Bibliotecas estaticas PostgreSQL
 Summary(pl.UTF-8):     Biblioteki statyczne programu PostgreSQL
 Summary:       PostgreSQL static libraries
 Summary(es.UTF-8):     Bibliotecas estaticas PostgreSQL
 Summary(pl.UTF-8):     Biblioteki statyczne programu PostgreSQL
@@ -520,31 +306,29 @@ Summary(pt_BR.UTF-8):     Bibliotecas estáticas PostgreSQL
 Summary(ru.UTF-8):     Статические библиотеки для программирования с PostgreSQL
 Summary(uk.UTF-8):     Статичні бібліотеки для програмування з PostgreSQL
 Group:         Development/Libraries
 Summary(ru.UTF-8):     Статические библиотеки для программирования с PostgreSQL
 Summary(uk.UTF-8):     Статичні бібліотеки для програмування з PostgreSQL
 Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
+Requires:      postgresql-devel = %{version}-%{release}
 
 
-%description static
+%description -n postgresql-ecpg-static
 PostgreSQL static libraries.
 
 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
+%description -n postgresql-ecpg-static -l pl.UTF-8
 Biblioteki statyczne programu PostgreSQL.
 
 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.
+%package -n postgresql-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:      postgresql-devel = %{version}-%{release}
 
 
-%description static -l ru.UTF-8
-Это отдельный пакет со статическими библиотеками, которые больше не
-входят в %{name}-devel.
+%description -n postgresql-static
+PostgreSQL static libraries.
 
 
-%description static -l uk.UTF-8
-Це окремий пакет зі статичними бібліотеками, які більш не входять в
-%{name}-devel.
+%description -n postgresql-static -l pl.UTF-8
+Biblioteki statyczne programu PostgreSQL.
 
 %package module-plperl
 Summary:       PL/perl - PostgreSQL procedural language
 
 %package module-plperl
 Summary:       PL/perl - PostgreSQL procedural language
@@ -760,11 +544,11 @@ Miscellaneous PostgreSQL contrib modules.
 Różne moduły dołączone do PostgreSQL-a.
 
 %prep
 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
 %patch0 -p1
 %{?with_absolute_dbpaths:%patch1 -p1}
 %patch2 -p1
-
+%patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
@@ -781,6 +565,14 @@ find src -name \*.l -o -name \*.y | xargs touch
 %{__autoheader}
 %configure \
        CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \
 %{__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 \
        --disable-rpath \
        --enable-depend \
        %{?with_systemtap:--enable-dtrace} \
        --disable-rpath \
        --enable-depend \
        %{?with_systemtap:--enable-dtrace} \
@@ -821,7 +613,7 @@ done
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig}} \
 %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} \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
        $RPM_BUILD_ROOT%{_mandir} \
        $RPM_BUILD_ROOT/home/services/postgres
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
        $RPM_BUILD_ROOT%{_mandir} \
        $RPM_BUILD_ROOT/home/services/postgres
@@ -845,8 +637,8 @@ done
 
 touch $RPM_BUILD_ROOT/var/log/pgsql
 
 
 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' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql10
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/postgresql10
 
 install -d howto
 tar zxf %{SOURCE2} -C howto
 
 install -d howto
 tar zxf %{SOURCE2} -C howto
@@ -860,38 +652,37 @@ tar zxf %{SOURCE2} -C howto
 for f in libpq5 pgscripts postgres psql initdb ecpg ecpglib6 \
        plpgsql %{?with_perl:plperl} %{?with_python:plpython} \
        pg_archivecleanup pg_basebackup pg_config pg_controldata pg_ctl pg_dump pg_resetwal pg_rewind pg_test_fsync pg_test_timing pg_upgrade pg_waldump; do
 for f in libpq5 pgscripts postgres psql initdb ecpg ecpglib6 \
        plpgsql %{?with_perl:plperl} %{?with_python:plpython} \
        pg_archivecleanup pg_basebackup pg_config pg_controldata pg_ctl pg_dump pg_resetwal pg_rewind pg_test_fsync pg_test_timing pg_upgrade pg_waldump; do
-       %find_lang $f-%{mver}
+       %find_lang $f-%{pgver}
 done
 # merge locales
 merge_lang() {
 done
 # merge locales
 merge_lang() {
-       cat $(for f in $@; do echo ${f}-%{mver}.lang ; done)
+       cat $(for f in $@; do echo ${f}-%{pgver}.lang ; done)
 }
 merge_lang pgscripts postgres plpgsql \
        pg_basebackup pg_controldata pg_resetwal pg_rewind pg_upgrade pg_test_fsync pg_test_timing pg_waldump > main.lang
 merge_lang psql initdb \
        pg_archivecleanup pg_ctl pg_dump > clients.lang
 }
 merge_lang pgscripts postgres plpgsql \
        pg_basebackup pg_controldata pg_resetwal pg_rewind pg_upgrade pg_test_fsync pg_test_timing pg_waldump > main.lang
 merge_lang psql initdb \
        pg_archivecleanup pg_ctl pg_dump > clients.lang
-merge_lang ecpg ecpglib6 > ecpg.lang
 
 %if %{with tcl}
 
 %if %{with tcl}
-%find_lang pltcl-%{mver}
+%find_lang pltcl-%{pgver}
 %endif
 
 %if %{with selinux}
 %endif
 
 %if %{with selinux}
-%{__mv} $RPM_BUILD_ROOT{%{_datadir}/postgresql/contrib,%{_pgsqldir}}/sepgsql.sql
+%{__mv} $RPM_BUILD_ROOT{%{pgsqldatadir}/contrib,%{extensiondir}}/sepgsql.sql
 %endif
 
 %endif
 
-cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/server/
+cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/%{pgver}/server/
 
 # package it...?  nah, why bother.
 
 # package it...?  nah, why bother.
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html
+%{__rm} -r $RPM_BUILD_ROOT%{pgsqldatadir}/doc/html
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %pre
 PG_DB_CLUSTERS=""
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %pre
 PG_DB_CLUSTERS=""
-if [ -f /etc/sysconfig/postgresql ]; then
-       . /etc/sysconfig/postgresql
+if [ -f /etc/sysconfig/postgresql10 ]; then
+       . /etc/sysconfig/postgresql10
        if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then
                PG_DB_CLUSTERS="$POSTGRES_DATA_DIR"
        fi
        if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then
                PG_DB_CLUSTERS="$POSTGRES_DATA_DIR"
        fi
@@ -899,7 +690,7 @@ fi
 foundold=0
 for pgdir in $PG_DB_CLUSTERS; do
        if [ -f $pgdir/PG_VERSION ]; then
 foundold=0
 for pgdir in $PG_DB_CLUSTERS; do
        if [ -f $pgdir/PG_VERSION ]; then
-               if [ $(cat $pgdir/PG_VERSION) != '%{mver}' ]; then
+               if [ $(cat $pgdir/PG_VERSION) != '%{pgver}' ]; then
                        echo "Found database(s) in older, incompatible format in cluster $pgdir."
                        foundold=1
                fi
                        echo "Found database(s) in older, incompatible format in cluster $pgdir."
                        foundold=1
                fi
@@ -915,14 +706,6 @@ if [ "$foundold" = "1" ]; then
        echo "Alternatively you can use pg_upgrade for 8.3+ online upgrade with"
        echo "some restrictions: http://www.postgresql.org/docs/10.0/static/pgupgrade.html"
        echo
        echo "Alternatively you can use pg_upgrade for 8.3+ online upgrade with"
        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
        exit 1
 fi
 %groupadd -g 88 -r postgres
@@ -934,127 +717,192 @@ if [ -n "`/bin/id -u postgres 2>/dev/null`" ]; then
 fi
 
 %post
 fi
 
 %post
-/sbin/chkconfig --add postgresql
-%service postgresql restart "postgresql server"
+/sbin/chkconfig --add postgresql10
+%service postgresql10 restart "postgresql10 server"
 
 %preun
 if [ "$1" = "0" ]; then
 
 %preun
 if [ "$1" = "0" ]; then
-       %service postgresql stop
-       /sbin/chkconfig --del postgresql
+       %service postgresql10 stop
+       /sbin/chkconfig --del postgresql10
+fi
+
+%post clients
+update-alternatives \
+       --install %{_bindir}/clusterdb clusterdb %{pgsqllibdir}/bin/clusterdb %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/clusterdb.1 clusterdb.1 %{pgsqldatadir}/man/man1/clusterdb.1* || :
+update-alternatives \
+       --install %{_bindir}/createdb createdb %{pgsqllibdir}/bin/createdb %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/createdb.1 createdb.1 %{pgsqldatadir}/man/man1/createdb.1* || :
+update-alternatives \
+       --install %{_bindir}/createuser createuser %{pgsqllibdir}/bin/createuser %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/createuser.1 createuser.1 %{pgsqldatadir}/man/man1/createuser.1* || :
+update-alternatives \
+       --install %{_bindir}/dropdb dropdb %{pgsqllibdir}/bin/dropdb %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/dropdb.1 dropdb.1 %{pgsqldatadir}/man/man1/dropdb.1* || :
+update-alternatives \
+       --install %{_bindir}/dropuser dropuser %{pgsqllibdir}/bin/dropuser %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/dropuser.1 dropuser.1 %{pgsqldatadir}/man/man1/dropuser.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_archivecleanup pg_archivecleanup %{pgsqllibdir}/bin/pg_archivecleanup %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/pg_archivecleanup.1 pg_archivecleanup.1 %{pgsqldatadir}/man/man1/pg_archivecleanup.1* || :
+update-alternatives \
+       --install %{_bindir}/pg_dump pg_dump %{pgsqllibdir}/bin/pg_dump %{pgver}%{pgminver} \
+       --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 %{pgver}%{pgminver} \
+       --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 %{pgver}%{pgminver} \
+       --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 %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/pg_restore.1 pg_restore.1 %{pgsqldatadir}/man/man1/pg_restore.1* || :
+update-alternatives \
+       --install %{_bindir}/psql psql %{pgsqllibdir}/bin/psql %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/psql.1 pgsql.1 %{pgsqldatadir}/man/man1/psql.1* || :
+update-alternatives \
+       --install %{_bindir}/reindexdb reindexdb %{pgsqllibdir}/bin/reindexdb %{pgver}%{pgminver} \
+       --slave %{_mandir}/man1/reindexdb.1 reindexdb.1 %{pgsqldatadir}/man/man1/reindexdb.1* || :
+update-alternatives \
+       --install %{_bindir}/vacuumdb vacuumdb %{pgsqllibdir}/bin/vacuumdb %{pgver}%{pgminver} \
+       --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_archivecleanup %{pgsqllibdir}/bin/pg_archivecleanup || :
+       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
 
 fi
 
-%post  libs -p /sbin/ldconfig
-%postun        libs -p /sbin/ldconfig
+%post  -n postgresql-libs -p /sbin/ldconfig
+%postun        -n postgresql-libs -p /sbin/ldconfig
 
 
-%post  ecpg -p /sbin/ldconfig
-%postun        ecpg -p /sbin/ldconfig
+%post  -n postgresql-ecpg-libs -p /sbin/ldconfig
+%postun        -n postgresql-ecpg-libs -p /sbin/ldconfig
 
 %files -f main.lang
 %defattr(644,root,root,755)
 %doc COPYRIGHT README HISTORY doc/{bug.template,KNOWN_BUGS,MISSING_FEATURES,TODO}
 
 %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_resetwal
-%attr(755,root,root) %{_bindir}/pg_receivewal
-%attr(755,root,root) %{_bindir}/pg_recvlogical
-%attr(755,root,root) %{_bindir}/pg_rewind
-%attr(755,root,root) %{_bindir}/pg_test_fsync
-%attr(755,root,root) %{_bindir}/pg_test_timing
-%attr(755,root,root) %{_bindir}/pg_upgrade
-%attr(755,root,root) %{_bindir}/pg_waldump
-%attr(755,root,root) %{_bindir}/pgbench
-%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}/pgoutput.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(754,root,root) /etc/rc.d/init.d/postgresql10
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql10
+
+%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_resetwal
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_receivewal
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_recvlogical
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_rewind
+%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_waldump
+%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}/pgoutput.so
+%attr(755,root,root) %{moduledir}/plpgsql.so
+%attr(755,root,root) %{moduledir}/utf8_and_*.so
+
+%dir %{extensiondir}
+%{extensiondir}/plpgsql--*.sql
+%{extensiondir}/plpgsql.control
+
+%dir %{pgsqldatadir}
+%{pgsqldatadir}/*.bki
+%{pgsqldatadir}/*.sample
+%{pgsqldatadir}/*.description
+%{pgsqldatadir}/*.shdescription
+%{pgsqldatadir}/*.sql
+%{pgsqldatadir}/*.txt
+%{pgsqldatadir}/timezonesets
+%{pgsqldatadir}/tsearch_data
+
+%dir %{pgsqldatadir}/contrib
 
 %attr(700,postgres,postgres) /home/services/postgres
 %attr(700,postgres,postgres) %dir /var/lib/pgsql
 %attr(640,postgres,postgres) %config(noreplace) %verify(not md5 mtime size) /var/log/pgsql
 
 
 %attr(700,postgres,postgres) /home/services/postgres
 %attr(700,postgres,postgres) %dir /var/lib/pgsql
 %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_resetwal.1*
-%{_mandir}/man1/pg_receivewal.1*
-%{_mandir}/man1/pg_recvlogical.1*
-%{_mandir}/man1/pg_rewind.1*
-%{_mandir}/man1/pg_waldump.1*
-%{_mandir}/man1/pg_test_fsync.1*
-%{_mandir}/man1/pg_test_timing.1*
-%{_mandir}/man1/pg_upgrade.1*
-%{_mandir}/man1/pgbench.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_resetwal.1*
+%{pgsqldatadir}/man/man1/pg_receivewal.1*
+%{pgsqldatadir}/man/man1/pg_recvlogical.1*
+%{pgsqldatadir}/man/man1/pg_rewind.1*
+%{pgsqldatadir}/man/man1/pg_waldump.1*
+%{pgsqldatadir}/man/man1/pg_test_fsync.1*
+%{pgsqldatadir}/man/man1/pg_test_timing.1*
+%{pgsqldatadir}/man/man1/pg_upgrade.1*
+%{pgsqldatadir}/man/man1/pgbench.1*
+%{pgsqldatadir}/man/man1/postgres.1*
+%{pgsqldatadir}/man/man1/postmaster.1*
 
 %files doc
 %defattr(644,root,root,755)
 %doc doc/src/sgml/html howto
 %{_examplesdir}/%{name}-%{version}
 
 
 %files doc
 %defattr(644,root,root,755)
 %doc doc/src/sgml/html howto
 %{_examplesdir}/%{name}-%{version}
 
-%files libs -f libpq5-%{mver}.lang
+%files -n postgresql-libs -f libpq5-%{pgver}.lang
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libpq.so.*.*
 %attr(755,root,root) %ghost %{_libdir}/libpq.so.5
 %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
+%files ecpg -f ecpg-%{pgver}.lang
 %defattr(644,root,root,755)
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/ecpg
+%attr(755,root,root) %{pgsqllibdir}/bin/ecpg
+%{pgsqldatadir}/man/man1/ecpg.1*
+
+%files -n postgresql-ecpg-libs -f ecpglib6-%{pgver}.lang
 %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
 %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
+%files -n postgresql-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*
 %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
+%{_libdir}/pkgconfig/libecpg.pc
+%{_libdir}/pkgconfig/libecpg_compat.pc
+%{_libdir}/pkgconfig/libpgtypes.pc
 
 
-%files devel -f pg_config-%{mver}.lang
+%files -n postgresql-ecpg-static
 %defattr(644,root,root,755)
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/pg_config
+%{_libdir}/libecpg.a
+%{_libdir}/libecpg_compat.a
+%{_libdir}/libpgtypes.a
+
+%files -n postgresql-devel -f pg_config-%{pgver}.lang
+%defattr(644,root,root,755)
+%attr(755,root,root) %{pgsqllibdir}/bin/pg_config
 %attr(755,root,root) %{_libdir}/libpq.so
 %dir %{_includedir}/postgresql
 %{_includedir}/libpq-events.h
 %attr(755,root,root) %{_libdir}/libpq.so
 %dir %{_includedir}/postgresql
 %{_includedir}/libpq-events.h
 %{_includedir}/postgresql/internal/pqexpbuffer.h
 %{_includedir}/postgresql/internal/libpq
 %{_includedir}/libpq
 %{_includedir}/postgresql/internal/pqexpbuffer.h
 %{_includedir}/postgresql/internal/libpq
 %{_includedir}/libpq
-%{_pkgconfigdir}/libpq.pc
-%{_mandir}/man1/pg_config.1*
+%{_libdir}/pkgconfig/libpq.pc
+%{pgsqldatadir}/man/man1/pg_config.1*
 
 %files backend-devel
 %defattr(644,root,root,755)
 
 %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
+%dir %{_includedir}/postgresql/%{pgver}
+%{_includedir}/postgresql/%{pgver}/server
+%dir %{moduledir}/pgxs
+%attr(755,root,root) %{moduledir}/pgxs/config
+%{moduledir}/pgxs/src
+%{pgsqldatadir}/man/man3/SPI_*.3*
+
+%files -n postgresql-static
 %defattr(644,root,root,755)
 %defattr(644,root,root,755)
-%{_libdir}/libecpg.a
-%{_libdir}/libecpg_compat.a
 %{_libdir}/libpq.a
 %{_libdir}/libpgcommon.a
 %{_libdir}/libpgfeutils.a
 %{_libdir}/libpq.a
 %{_libdir}/libpgcommon.a
 %{_libdir}/libpgfeutils.a
-%{_libdir}/libpgtypes.a
 %{_libdir}/libpgport.a
 
 %files clients -f clients.lang
 %defattr(644,root,root,755)
 %{_libdir}/libpgport.a
 
 %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}/createuser
-%attr(755,root,root) %{_bindir}/dropdb
-%attr(755,root,root) %{_bindir}/dropuser
-%attr(755,root,root) %{_bindir}/pg_archivecleanup
-%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/createuser.1*
-%{_mandir}/man1/dropdb.1*
-%{_mandir}/man1/dropuser.1*
-%{_mandir}/man1/pg_archivecleanup.1*
-%{_mandir}/man1/pg_dump.1*
-%{_mandir}/man1/pg_dumpall.1*
-%{_mandir}/man1/pg_isready.1*
-%{_mandir}/man1/pg_restore.1*
-%{_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/createuser
+%attr(755,root,root) %{pgsqllibdir}/bin/dropdb
+%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/createuser.1*
+%{pgsqldatadir}/man/man1/dropdb.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}
 
 %if %{with perl}
-%files module-plperl -f plperl-%{mver}.lang
+%files module-plperl -f plperl-%{pgver}.lang
 %defattr(644,root,root,755)
 %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}
 %endif
 
 %if %{with python}
-%files module-plpython -f plpython-%{mver}.lang
+%files module-plpython -f plpython-%{pgver}.lang
 %defattr(644,root,root,755)
 %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}
 %endif
 
 %if %{with tcl}
-%files module-pltcl -f pltcl-%{mver}.lang
+%files module-pltcl -f pltcl-%{pgver}.lang
 %defattr(644,root,root,755)
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/pltcl.so
-%{_pgsqldir}/pltcl*--*.sql
-%{_pgsqldir}/pltcl*.control
+%attr(755,root,root) %{moduledir}/pltcl.so
+%{extensiondir}/pltcl*--*.sql
+%{extensiondir}/pltcl*.control
 %endif
 
 %files module-dblink
 %defattr(644,root,root,755)
 %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)
 
 %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)
 
 %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)
 
 %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)
 
 %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)
 %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)
 
 %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
 
 %files contrib
 %defattr(644,root,root,755)
 %doc contrib/README
-%attr(755,root,root) %{_bindir}/oid2name
-%attr(755,root,root) %{_bindir}/pg_standby
-%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}/bloom.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}/pg_visibility.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}/tsm_system_rows.so
-%attr(755,root,root) %{_pgmoduledir}/tsm_system_time.so
-%attr(755,root,root) %{_pgmoduledir}/unaccent.so
-%attr(755,root,root) %{_pgmoduledir}/uuid-ossp.so
-%{_pgsqldir}/adminpack--*.sql
-%{_pgsqldir}/adminpack.control
-%{_pgsqldir}/bloom--*.sql
-%{_pgsqldir}/bloom.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}/pg_visibility--*.sql
-%{_pgsqldir}/pg_visibility.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}/tsm_system_rows--*.sql
-%{_pgsqldir}/tsm_system_rows.control
-%{_pgsqldir}/tsm_system_time--*.sql
-%{_pgsqldir}/tsm_system_time.control
-%{_pgsqldir}/unaccent--*.sql
-%{_pgsqldir}/unaccent.control
-%{_pgsqldir}/uuid-ossp--*.sql
-%{_pgsqldir}/uuid-ossp.control
+%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}/bloom.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_prewarm.so
+%attr(755,root,root) %{moduledir}/pg_stat_statements.so
+%attr(755,root,root) %{moduledir}/pg_visibility.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}/tsm_system_rows.so
+%attr(755,root,root) %{moduledir}/tsm_system_time.so
+%attr(755,root,root) %{moduledir}/unaccent.so
+%attr(755,root,root) %{moduledir}/uuid-ossp.so
+%{extensiondir}/adminpack--*.sql
+%{extensiondir}/adminpack.control
+%{extensiondir}/bloom--*.sql
+%{extensiondir}/bloom.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_prewarm--*.sql
+%{extensiondir}/pg_prewarm.control
+%{extensiondir}/pg_stat_statements--*.sql
+%{extensiondir}/pg_stat_statements.control
+%{extensiondir}/pg_visibility--*.sql
+%{extensiondir}/pg_visibility.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}/tsm_system_rows--*.sql
+%{extensiondir}/tsm_system_rows.control
+%{extensiondir}/tsm_system_time--*.sql
+%{extensiondir}/tsm_system_time.control
+%{extensiondir}/unaccent--*.sql
+%{extensiondir}/unaccent.control
+%{extensiondir}/uuid-ossp--*.sql
+%{extensiondir}/uuid-ossp.control
 %if %{with perl}
 %if %{with perl}
-%attr(755,root,root) %{_pgmoduledir}/hstore_plperl.so
-%{_pgsqldir}/hstore_plperl--*.sql
-%{_pgsqldir}/hstore_plperl.control
-%{_pgsqldir}/hstore_plperlu--*.sql
-%{_pgsqldir}/hstore_plperlu.control
+%attr(755,root,root) %{moduledir}/hstore_plperl.so
+%{extensiondir}/hstore_plperl--*.sql
+%{extensiondir}/hstore_plperl.control
+%{extensiondir}/hstore_plperlu--*.sql
+%{extensiondir}/hstore_plperlu.control
 %endif
 %if %{with python}
 %endif
 %if %{with python}
-%attr(755,root,root) %{_pgmoduledir}/hstore_plpython2.so
-%attr(755,root,root) %{_pgmoduledir}/ltree_plpython2.so
-%{_pgsqldir}/hstore_plpythonu--*.sql
-%{_pgsqldir}/hstore_plpythonu.control
-%{_pgsqldir}/hstore_plpython2u--*.sql
-%{_pgsqldir}/hstore_plpython2u.control
-%{_pgsqldir}/hstore_plpython3u--*.sql
-%{_pgsqldir}/hstore_plpython3u.control
-%{_pgsqldir}/ltree_plpythonu--*.sql
-%{_pgsqldir}/ltree_plpythonu.control
-%{_pgsqldir}/ltree_plpython2u--*.sql
-%{_pgsqldir}/ltree_plpython2u.control
-%{_pgsqldir}/ltree_plpython3u--*.sql
-%{_pgsqldir}/ltree_plpython3u.control
+%attr(755,root,root) %{moduledir}/hstore_plpython2.so
+%attr(755,root,root) %{moduledir}/ltree_plpython2.so
+%{extensiondir}/hstore_plpythonu--*.sql
+%{extensiondir}/hstore_plpythonu.control
+%{extensiondir}/hstore_plpython2u--*.sql
+%{extensiondir}/hstore_plpython2u.control
+%{extensiondir}/hstore_plpython3u--*.sql
+%{extensiondir}/hstore_plpython3u.control
+%{extensiondir}/ltree_plpythonu--*.sql
+%{extensiondir}/ltree_plpythonu.control
+%{extensiondir}/ltree_plpython2u--*.sql
+%{extensiondir}/ltree_plpython2u.control
+%{extensiondir}/ltree_plpython3u--*.sql
+%{extensiondir}/ltree_plpython3u.control
 %endif
 %endif
-%{_mandir}/man1/oid2name.1*
-%{_mandir}/man1/pg_standby.1*
-%{_mandir}/man1/vacuumlo.1*
+%{pgsqldatadir}/man/man1/oid2name.1*
+%{pgsqldatadir}/man/man1/pg_standby.1*
+%{pgsqldatadir}/man/man1/vacuumlo.1*
index f3f4735ab87c5c9bf3127ad8c1bdf74368d4282f..b5b122e1901b6ef394eb5d3cbf4a2cc8d0ca5c69 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.
 # 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
 
 # locale used at service postgresql init
 # PG_INIT_LOCALE=C
 
 # standard setting
-PG_DB_CLUSTERS="/var/lib/pgsql"
+PG_DB_CLUSTERS="/var/lib/pgsql/10"
 
 # predictable usage
 
 # predictable usage
-# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02"
+# PG_DB_CLUSTERS="/var/lib/pgsql/10/01 /var/lib/pgsql/10/02"
 
 # new database disk arrived
 
 # new database disk arrived
-# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02 /mnt/db/01"
+# PG_DB_CLUSTERS="/var/lib/pgsql/10/01 /var/lib/pgsql/10/02 /mnt/db/10/01"