From aa486acbb632523f581fd32acf0007c9cbb484ae Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Thu, 23 Aug 2018 21:30:41 +0000 Subject: [PATCH] - versioned package, 9.3.24 --- per-version-dirs.patch | 56 ++ postgresql-ac_version.patch | 13 +- postgresql-heimdal.patch | 17 +- postgresql-ossp_uuid.patch | 49 +- postgresql.init | 22 +- postgresql.spec | 1091 ++++++++++++------------------- postgresql.sysconfig | 11 +- postgresql_9.1-ac_version.patch | 17 - socket-dir-fixes.patch | 27 + 9 files changed, 546 insertions(+), 757 deletions(-) create mode 100644 per-version-dirs.patch delete mode 100644 postgresql_9.1-ac_version.patch create mode 100644 socket-dir-fixes.patch diff --git a/per-version-dirs.patch b/per-version-dirs.patch new file mode 100644 index 0000000..3bfd471 --- /dev/null +++ b/per-version-dirs.patch @@ -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 + diff --git a/postgresql-ac_version.patch b/postgresql-ac_version.patch index 4301073..c6d1042 100644 --- a/postgresql-ac_version.patch +++ b/postgresql-ac_version.patch @@ -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) diff --git a/postgresql-heimdal.patch b/postgresql-heimdal.patch index d4317c9..f54ffe8 100644 --- a/postgresql-heimdal.patch +++ b/postgresql-heimdal.patch @@ -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])]) diff --git a/postgresql-ossp_uuid.patch b/postgresql-ossp_uuid.patch index b5b2dfa..08c5a0c 100644 --- a/postgresql-ossp_uuid.patch +++ b/postgresql-ossp_uuid.patch @@ -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 does not match E2FS UUID library])])], - [AC_MSG_ERROR([header file or 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 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 does not match OSSP UUID library])])], - [AC_CHECK_HEADERS(uuid.h, - [AC_EGREP_HEADER([uuid_export], uuid.h, [], - [AC_MSG_ERROR([header file does not match OSSP UUID library])])], -- [AC_MSG_ERROR([header file or is required for OSSP UUID])])]) -+ [AC_MSG_ERROR([header file or 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 or is required for OSSP-UUID])])]) ++ [AC_MSG_ERROR([header file or 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 - #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 +#ifdef HAVE_OSSP_UUID_UUID_H +#include - #endif - #ifdef HAVE_UUID_UUID_H - #include - + #else + #ifdef HAVE_UUID_H + #include diff --git a/postgresql.init b/postgresql.init index d3476e2..8f30817 100644 --- a/postgresql.init +++ b/postgresql.init @@ -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\"")'!' diff --git a/postgresql.spec b/postgresql.spec index 45a4b76..9b2569f 100644 --- a/postgresql.spec +++ b/postgresql.spec @@ -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 @@ -12,14 +5,17 @@ %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* diff --git a/postgresql.sysconfig b/postgresql.sysconfig index f3f4735..dde9282 100644 --- a/postgresql.sysconfig +++ b/postgresql.sysconfig @@ -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 index 4482bd4..0000000 --- a/postgresql_9.1-ac_version.patch +++ /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 index 0000000..de08eb1 --- /dev/null +++ b/socket-dir-fixes.patch @@ -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 -- 2.44.0