From c6f188b0a79186234a5126fda5b80a8946532d04 Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Mon, 11 May 2015 13:32:26 +0000 Subject: [PATCH] - from PLD --- postgresql-absolute_dbpaths.patch | 11 + postgresql-ac_version.patch | 17 + postgresql-conf.patch | 31 + postgresql-disable_horology_test.patch | 51 + postgresql-ecpg-includedir.patch | 18 + postgresql-heimdal.patch | 11 + postgresql-ossp_uuid.patch | 34 + postgresql.init | 262 +++++ postgresql.service | 13 + postgresql.spec | 1331 ++++++++++++++++++++++++ postgresql.sysconfig | 23 + postgresql.target | 2 + postgresql@.service | 15 + postgresql_9.1-ac_version.patch | 17 + 14 files changed, 1836 insertions(+) create mode 100644 postgresql-absolute_dbpaths.patch create mode 100644 postgresql-ac_version.patch create mode 100644 postgresql-conf.patch create mode 100644 postgresql-disable_horology_test.patch create mode 100644 postgresql-ecpg-includedir.patch create mode 100644 postgresql-heimdal.patch create mode 100644 postgresql-ossp_uuid.patch create mode 100644 postgresql.init create mode 100644 postgresql.service create mode 100644 postgresql.spec create mode 100644 postgresql.sysconfig create mode 100644 postgresql.target create mode 100644 postgresql@.service create mode 100644 postgresql_9.1-ac_version.patch diff --git a/postgresql-absolute_dbpaths.patch b/postgresql-absolute_dbpaths.patch new file mode 100644 index 0000000..820b65f --- /dev/null +++ b/postgresql-absolute_dbpaths.patch @@ -0,0 +1,11 @@ +--- postgresql-7.3.1/configure.in-orig Thu Jan 16 19:53:28 2003 ++++ postgresql-7.3.1/configure.in Thu Jan 16 19:54:20 2003 +@@ -539,7 +539,7 @@ + + + +-CPPFLAGS="$CPPFLAGS $INCLUDES" ++CPPFLAGS="$CPPFLAGS -DALLOW_ABSOLUTE_DBPATHS $INCLUDES" + LDFLAGS="$LDFLAGS $LIBDIRS" + + AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) diff --git a/postgresql-ac_version.patch b/postgresql-ac_version.patch new file mode 100644 index 0000000..4301073 --- /dev/null +++ b/postgresql-ac_version.patch @@ -0,0 +1,17 @@ +--- 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 @@ + + AC_INIT([PostgreSQL], [9.4.0], [pgsql-bugs@postgresql.org]) + +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 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.69], [], [m4_fatal([Autoconf version 2.69 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-2014, PostgreSQL Global Development Group]) + AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) + AC_CONFIG_AUX_DIR(config) diff --git a/postgresql-conf.patch b/postgresql-conf.patch new file mode 100644 index 0000000..ae0ac1c --- /dev/null +++ b/postgresql-conf.patch @@ -0,0 +1,31 @@ +--- postgresql-8.3RC1/src/backend/utils/misc/postgresql.conf.sample.orig 2007-12-07 16:44:56.000000000 +0000 ++++ postgresql-8.3RC1/src/backend/utils/misc/postgresql.conf.sample 2008-01-07 22:19:56.904649611 +0000 +@@ -253,7 +253,7 @@ + + # - Where to Log - + +-#log_destination = 'stderr' # Valid values are combinations of ++log_destination = 'syslog' # Valid values are combinations of + # stderr, csvlog, syslog, and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. +@@ -262,8 +262,8 @@ + # 0 to disable. + + # These are relevant when logging to syslog: +-#syslog_facility = 'LOCAL0' +-#syslog_ident = 'postgres' ++syslog_facility = 'LOCAL0' ++syslog_ident = 'postgres' + + + # - When to Log - +@@ -324,7 +324,7 @@ + #debug_print_plan = off + #debug_pretty_print = off + #log_checkpoints = off +-#log_connections = off ++log_connections = on + #log_disconnections = off + #log_duration = off + #log_hostname = off diff --git a/postgresql-disable_horology_test.patch b/postgresql-disable_horology_test.patch new file mode 100644 index 0000000..636116e --- /dev/null +++ b/postgresql-disable_horology_test.patch @@ -0,0 +1,51 @@ +# +# an ugly hack to disable some "horology" tests,which fail if built +# --with-system-tzdata and non-US /usr/share/zoneinfo/posixrules: +# http://www.nabble.com/Beta2-%22horology%22-test-failure-on-non-US-zoneinfo-posixrules-td13691442.html +# +--- postgresql-8.3RC1/src/test/regress/expected/horology.out 2007-07-25 18:22:36.000000000 +0100 ++++ postgresql-8.3.0/src/test/regress/expected/horology.out 2008-02-04 20:20:16.091518646 +0000 +@@ -602,30 +602,12 @@ + + -- timestamp with time zone, interval arithmetic around DST change + SET TIME ZONE 'CST7CDT'; +-SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '1 day' as "Apr 3, 12:00"; +- Apr 3, 12:00 +------------------------------- +- Sun Apr 03 12:00:00 2005 CDT +-(1 row) +- + SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '24 hours' as "Apr 3, 13:00"; + Apr 3, 13:00 + ------------------------------ + Sun Apr 03 13:00:00 2005 CDT + (1 row) + +-SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '1 day' as "Apr 2, 12:00"; +- Apr 2, 12:00 +------------------------------- +- Sat Apr 02 12:00:00 2005 CST +-(1 row) +- +-SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '24 hours' as "Apr 2, 11:00"; +- Apr 2, 11:00 +------------------------------- +- Sat Apr 02 11:00:00 2005 CST +-(1 row) +- + RESET TIME ZONE; + SELECT timestamptz(date '1994-01-01', time '11:00') AS "Jan_01_1994_10am"; + Jan_01_1994_10am +--- postgresql-8.3RC1/src/test/regress/sql/horology.sql 2007-07-25 18:22:37.000000000 +0100 ++++ postgresql-8.3.0/src/test/regress/sql/horology.sql 2008-02-04 20:20:18.091381199 +0000 +@@ -114,10 +114,7 @@ + + -- timestamp with time zone, interval arithmetic around DST change + SET TIME ZONE 'CST7CDT'; +-SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '1 day' as "Apr 3, 12:00"; + SELECT timestamp with time zone '2005-04-02 12:00-07' + interval '24 hours' as "Apr 3, 13:00"; +-SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '1 day' as "Apr 2, 12:00"; +-SELECT timestamp with time zone '2005-04-03 12:00-06' - interval '24 hours' as "Apr 2, 11:00"; + RESET TIME ZONE; + + diff --git a/postgresql-ecpg-includedir.patch b/postgresql-ecpg-includedir.patch new file mode 100644 index 0000000..6fdda29 --- /dev/null +++ b/postgresql-ecpg-includedir.patch @@ -0,0 +1,18 @@ +--- postgresql-9.3.0/src/interfaces/ecpg/include/Makefile~ 2013-09-02 22:53:17.000000000 +0200 ++++ postgresql-9.3.0/src/interfaces/ecpg/include/Makefile 2013-09-10 08:27:36.147290881 +0200 +@@ -19,12 +19,12 @@ + informix_headers = datetime.h decimal.h sqltypes.h + + install-headers: $(ecpg_headers) $(informix_headers) installdirs +- $(INSTALL_DATA) $(addprefix $(srcdir)/,$(ecpg_headers)) '$(DESTDIR)$(includedir)/' +- $(INSTALL_DATA) $(addprefix $(srcdir)/,$(informix_headers)) '$(DESTDIR)$(informix_esql_dir)/' ++ $(INSTALL_DATA) $(addprefix $(srcdir)/,$(ecpg_headers)) '$(DESTDIR)$(includedir)/ecpg/' ++ $(INSTALL_DATA) $(addprefix $(srcdir)/,$(informix_headers)) '$(DESTDIR)$(includedir)/ecpg/' + $(INSTALL_DATA) $(ecpg_config_h) '$(DESTDIR)$(includedir)' + + installdirs: +- $(MKDIR_P) '$(DESTDIR)$(includedir)' '$(DESTDIR)$(informix_esql_dir)' ++ $(MKDIR_P) '$(DESTDIR)$(includedir)/ecpg' + + uninstall: + rm -f $(addprefix '$(DESTDIR)$(includedir)'/, $(ecpg_headers)) diff --git a/postgresql-heimdal.patch b/postgresql-heimdal.patch new file mode 100644 index 0000000..d4317c9 --- /dev/null +++ b/postgresql-heimdal.patch @@ -0,0 +1,11 @@ +--- 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 @@ + + 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])]) + else + LIBS="$LIBS -lgssapi32" diff --git a/postgresql-ossp_uuid.patch b/postgresql-ossp_uuid.patch new file mode 100644 index 0000000..b5b2dfa --- /dev/null +++ b/postgresql-ossp_uuid.patch @@ -0,0 +1,34 @@ +--- 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])])]) + 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 +-#ifdef HAVE_OSSP_UUID_H +-#include ++#ifdef HAVE_OSSP_UUID_UUID_H ++#include + #endif + #ifdef HAVE_UUID_UUID_H + #include + diff --git a/postgresql.init b/postgresql.init new file mode 100644 index 0000000..d3476e2 --- /dev/null +++ b/postgresql.init @@ -0,0 +1,262 @@ +#!/bin/sh +# +# postgresql This is the init script for starting up the PostgreSQL +# server +# +# chkconfig: 345 84 25 +# +# description: Starts and stops the PostgreSQL backend daemon that handles \ +# all database requests. +# +# processname: postmaster + +cd / + +# Source function library +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +PG_INIT_LOCALE=C + +# Get service config +if [ -f /etc/sysconfig/postgresql ]; then + . /etc/sysconfig/postgresql +else + nls "Error: %s not found" /etc/sysconfig/postgresql + nls " PostgreSQL can't be run." + exit 1 +fi + +if [ ! "$PG_DB_CLUSTERS" ]; then + nls "Error: PG_DB_CLUSTERS not found or is empty" + nls " PostgreSQL can't be run." + exit 1 +fi + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then + msg_network_down PostgreSQL + exit 1 + fi +else + exit 0 +fi + +action="$1" + +# any db cluster as command line argument? +if [ $# -gt 1 ]; then + shift + # perform action for specified clusters only + DB_CLUSTERS="$@" +else + DB_CLUSTERS="$PG_DB_CLUSTERS" +fi + +# +# Useful functions. +# + +# +# check for postgresql status +# +# arguments: +# $1 - db cluster +# +# sets variables: +# PG_STATUS = running | not running +# PG_PID = pid of postmaster process +# +pgstatus() { + PG_STATUS="unknown" + PG_PID="unknown" + output=$(LC_ALL=C TMPDIR=/tmp su postgres -c "/usr/bin/pg_ctl -D $1 status") + status=$? + + if [ $status -eq 1 ]; then + PG_STATUS="not running" + elif [ $status -eq 0 ]; then + PG_STATUS="running" + # or maybe grab it from postmaster.pid file? + PG_PID=$(echo "$output" | awk '/PID: / { match($0, "PID: [0-9]+"); print substr($0,RSTART+5,RLENGTH-5) }') + fi +} + +# +# start postgresql and display appropriate messages +# +# arguments: +# $1 - db cluster +# +pgstart() { + is_no "$RC_LOGGING" && fork=--fork + msg_starting "PostgreSQL $1" + daemon $fork --user postgres /usr/bin/pg_ctl -s -w -D $1 start +} + +# +# check for running postgresql instances; if any instance is running then +# create subsys lock file +# +pgsubsys() { + # check for every defined db cluster in sysconfig file + for pgdir in $PG_DB_CLUSTERS; do + pgstatus "$pgdir" + if [ "$PG_STATUS" = "running" ]; then + touch /var/lock/subsys/postgresql + return + fi + done + rm -f /var/lock/subsys/postgresql +} + +# +# End of useful functions. +# + +start() { + for pgdir in $DB_CLUSTERS; do + pgstatus "$pgdir" + if [ "$PG_STATUS" = "running" ]; then + # pg_ctl status can misinform us about postgresql status + # so let's check if postmaster is really alive + if ps -p "$PG_PID" >/dev/null; then + msg_already_running "PostgreSQL $pgdir" + else + # pg_ctl has misinformed us about postgresql status; + # remove pid file and run postgresql + msg_not_running "PostgreSQL $pgdir" + rm -f $pgdir/postmaster.pid + pgstart "$pgdir" + fi + else + pgstart "$pgdir" + fi + done + pgsubsys +} + +stop() { + for pgdir in $DB_CLUSTERS; do + pgstatus "$pgdir" + if [ "$PG_STATUS" = "not running" ]; then + msg_not_running "PostgreSQL $pgdir" + else + msg_stopping "PostgreSQL $pgdir" + 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" + pgstatus "$pgdir" + if [ "$PG_STATUS" != "not running" ]; then + fail + else + ok + fi + else + # postgresql is not really alive; pg_ctl misinformed us + # about the status + died + fi + rm -f $pgdir/postmaster.pid + fi + done + pgsubsys +} + + +RETVAL=0 +# See how we were called. +# Every action is performed for all given (all configured by default) +# db clusters. +case "$action" in + start) + start + ;; + stop) + stop + ;; + status) + for pgdir in $DB_CLUSTERS; do + pgstatus "$pgdir" + if [ "$PG_STATUS" = "running" ]; then + show "PostgreSQL cluster %s, PID %s" "$pgdir" "$PG_PID" + progress "$PG_STATUS" + else + show "PostgreSQL cluster %s" "$pgdir" + progress "$PG_STATUS" "$CFAIL" + fi + echo + done + ;; + restart) + stop + start + ;; + reload|force-reload|try-restart) + if [ "$action" = "reload" ]; then + # "reload" must not restart service - so let it reload only what's possible + pgctlact="reload" + else + pgctlact="restart" + fi + for pgdir in $DB_CLUSTERS; do + pgstatus "$pgdir" + if [ "$PG_STATUS" = "not running" ]; then + msg_not_running "PostgreSQL $pgdir" + if [ "$action" != "try-restart" ]; then + RETVAL=7 + fi + else + msg_reloading "PostgreSQL $pgdir" + 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" + pgstatus "$pgdir" + if [ "$PG_STATUS" = "running" ]; then + ok + else + fail + fi + elif [ "$action" != "try-restart" ]; then + # postgresql died and pg_ctl has misinformed us about + # the status - i.e. service is actually not running + RETVAL=7 + else + # postgresql died and pg_ctl has misinformed us about + # the status; remove pid file and start it again + deltext; died + rm -f $pgdir/postmaster.pid + pgstart "$pgdir" + fi + fi + done + pgsubsys + ;; + init) + nls "Note: this is only simple init action for convenience." + nls "If you want some non-standard options, consider using initdb(1)." + echo + for pgdir in $DB_CLUSTERS; do + if [ -f $pgdir/PG_VERSION ]; then + echo $(nls "Skipping existing cluster %s" "$pgdir") + else + echo $(nls "Initializing cluster %s" "$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" + fi + done + echo $(nls "REMEMBER to setup password for user \"postgres\"")'!' + ;; + *) + msg_usage "$0 {start|stop|init|restart|reload|force-reload|status}" + exit 3 +esac + +exit $RETVAL diff --git a/postgresql.service b/postgresql.service new file mode 100644 index 0000000..61bb968 --- /dev/null +++ b/postgresql.service @@ -0,0 +1,13 @@ +[Unit] +Description=PostgreSQL server +Wants=postgresql.target +After=postgresql.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/bin/systemctl is-active postgresql.target +ExecReload=/bin/true + +[Install] +WantedBy=multi-user.target diff --git a/postgresql.spec b/postgresql.spec new file mode 100644 index 0000000..cdf4353 --- /dev/null +++ b/postgresql.spec @@ -0,0 +1,1331 @@ +# TODO: +# - python 3 and python 2 subpackages? +# - consider dns_sd/Bonjour support (--with-bonjour) +# - --enable-dtrace (is it systemtap-compatible?) +# - think about pg_upgrade integration (sysconfig variable to allow upgrade from 8.3+ without dump/restore?) +# create postgresqlM.N packages with parts of old pgsql required by pg_upgrade +# - test init script (db initialization) +# +# Conditional build: +%bcond_without tests # disable testing +%bcond_without tcl # disable Tcl support +%bcond_without kerberos5 # disable kerberos5 support +%bcond_without perl # disable Perl support +%bcond_without python # disable Python support +%bcond_without ldap # disable LDAP support +%bcond_without selinux # sepgsql contrib module +%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 + +Summary: PostgreSQL Data Base Management System +Summary(de.UTF-8): PostgreSQL Datenbankverwaltungssystem +Summary(es.UTF-8): Gestor de Banco de Datos PostgreSQL +Summary(fr.UTF-8): Sysème de gestion de base de données PostgreSQL +Summary(pl.UTF-8): PostgreSQL - system bazodanowy +Summary(pt_BR.UTF-8): Gerenciador de Banco de Dados PostgreSQL +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 +License: BSD +Group: Applications/Databases +Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2 +# Source0-md5: 2cf30f50099ff1109d0aa517408f8eff +Source1: %{name}.init +Source2: pgsql-Database-HOWTO-html.tar.gz +# Source2-md5: 5b656ddf1db41965761f85204a14398e +Source3: %{name}.sysconfig +Source4: %{name}@.service +Source5: %{name}.service +Source6: %{name}.target +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 +URL: http://www.postgresql.org/ +BuildRequires: autoconf +BuildRequires: automake +# not needed for releases... but fixes something in snapshot +BuildRequires: bison >= 1.875 +BuildRequires: docbook-dtd42-sgml +BuildRequires: docbook-dtd42-xml +BuildRequires: docbook-style-xsl +BuildRequires: flex >= 2.5.31 +BuildRequires: gettext-tools +BuildRequires: gnome-doc-tools +%{?with_kerberos5:BuildRequires: heimdal-devel} +%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.10} +BuildRequires: libtool +BuildRequires: libxml2-devel >= 1:2.6.23 +BuildRequires: libxslt-devel +BuildRequires: libxslt-progs +BuildRequires: ncurses-devel >= 5.0 +%{?with_ldap:BuildRequires: openldap-devel} +BuildRequires: openssl-devel >= 0.9.7d +BuildRequires: ossp-uuid-devel +BuildRequires: pam-devel +%{?with_perl:BuildRequires: perl-devel} +%if %{with python} +BuildRequires: python >= 1:2.3 +BuildRequires: python-devel >= 1:2.3 +BuildRequires: python-modules >= 1:2.3 +%endif +BuildRequires: readline-devel >= 4.2 +BuildRequires: rpmbuild(macros) >= 1.671 +%{?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: rc-scripts >= 0.4.3.0 +Requires: systemd-units >= 38 +Requires: tzdata +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 _ulibdir /usr/lib + +# omitted contribs: +# dummy_seclabel, pg_test_fsync, pg_test_timing, spi, test_parser, 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 + +%description +PostgreSQL Data Base Management System (formerly known as Postgres, +then as Postgres95). + +PostgreSQL is an enhancement of the POSTGRES database management +system, a next-generation DBMS research prototype. While PostgreSQL +retains the powerful data model and rich data types of POSTGRES, it +replaces the PostQuel query language with an extended subset of SQL. +PostgreSQL is free and the complete source is available. + +PostgreSQL development is being performed by a team of Internet +developers who all subscribe to the PostgreSQL development mailing +list. The current coordinator is Marc G. Fournier +(scrappy@postgreSQL.org). This team is now responsible for all current +and future development of PostgreSQL. + +The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many +others have contributed to the porting, testing, debugging and +enhancement of the code. The original Postgres code, from which +PostgreSQL is derived, was the effort of many graduate students, +undergraduate students, and staff programmers working under the +direction of Professor Michael Stonebraker at the University of +California, Berkeley. + +The original name of the software at Berkeley was Postgres. When SQL +functionality was added in 1995, its name was changed to Postgres95. +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). + +PostgreSQL jest rozszerzeniem systemu zarządzania baz danych POSTGRES, +prototypu DBMS następnej generacji. Co prawda PostgreSQL odziedziczył +model danych oraz bogaty zbiór różnych typów danych, to jednak język +zapytań PostQuel został zastąpiony rozszerzonym SQL-em. PostgreSQL +jest wolnym oprogramowaniem i kody źródłowe tego oprogramowania są w +pełni dostępne. + +System PostgreSQL jest tworzony przez zespół ludzi, którzy są zapisani +na listę dyskusyjną dotyczącą PostgreSQL-a. Obecnym koordynatorem jest +Marc G. Fournier (scrappy@postgreSQL.org). Wymieniony wyżej zespół +jest odpowiedzialny za aktualny i przyszły rozwój systemu PostgreSQL. + +Autorami PostgreSQL-a 1.01 byli Andrew Yu oraz Jolly Chen. Wielu +innych pomagało przenosząc na różne platformy, testując, analizując i +rozszerzając kod. Oryginalny kod Postgres-a, na podstawie którego +PostgreSQL powstał, był wysiłkiem wielu absolwentów, studentów oraz +zespołu programistów, którzy pracowali pod kierunkiem profesora +Michaela Stonebrakera z Uniwersytetu Kalifornii w Berkeley. + +Nazwa oryginalna oprogramowania tworzonego w Berkeley brzmiała +Postgres. W 1995 roku dodano język zapytań SQL i nazwę zmieniono na +Postgres95. W końcu roku 1996 nazwę ostatecznie zmieniono na +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. + +%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 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 +Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} + +%description backend-devel +This package contains header files required to compile functions that +could be loaded directly by backend + +%description backend-devel -l pl.UTF-8 +Pakiet zawiera nagłówki wymagane do kompilacji funkcji ktore moga byc +bezposrednio ladowane przez beckend serwera PostgreSQL. + +%package clients +Summary: Clients needed to access a PostgreSQL server +Summary(es.UTF-8): Clientes necesarios para acceder al servidor PostgreSQL +Summary(pl.UTF-8): Klienci wymagani do dostępu do serwera PostgreSQL +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} + +%description clients +This package includes only the clients needed to access an PostgreSQL +server. The server is included in the main package. If all you need is +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 + +%description doc +This package includes documentation and HOWTO for programmer, admin +etc., in HTML format. + +%description doc -l pl.UTF-8 +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} + +%description ecpg +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} + +%description module-plperl +From PostgreSQL documentation: + +Postgres supports the definition of procedural languages. In the case +of a function or trigger procedure defined in a procedural language, +the database has no built-in knowledge about how to interpret the +function's source text. Instead, the task is passed to a handler that +knows the details of the language. The handler itself is a special +programming language function compiled into a shared object and loaded +on demand. + +To enable PL/Perl procedural language for your database you have to +run createlang command. + +%description module-plperl -l pl.UTF-8 +Z dokumentacji PostgreSQL: + +Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy +programista zdefiniuje procedurę wyzwalacza lub funkcję w języku +proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu +funkcję. Funkcja lub procedura ta jest przekazywana do interpretera, +który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną +funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie +potrzeby. + +Za pomocą polecenia createlang można dodać obsługę języka +proceduralnego PL/Perl dla swojej bazy danych. + +%package module-plpython +Summary: PL/Python - PostgreSQL procedural language +Summary(pl.UTF-8): PL/Python - język proceduralny bazy danych PostgreSQL +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} +%pyrequires_eq python + +%description module-plpython +From PostgreSQL documentation: + +Postgres supports the definition of procedural languages. In the case +of a function or trigger procedure defined in a procedural language, +the database has no built-in knowledge about how to interpret the +function's source text. Instead, the task is passed to a handler that +knows the details of the language. The handler itself is a special +programming language function compiled into a shared object and loaded +on demand. + +To enable PL/Python procedural language for your database you have to +run createlang command. + +%description module-plpython -l pl.UTF-8 +Z dokumentacji PostgreSQL: + +Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy +programista zdefiniuje procedurę wyzwalacza lub funkcję w języku +proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu +funkcję. Funkcja lub procedura ta jest przekazywana do interpretera, +który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną +funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie +potrzeby. + +Za pomocą polecenia createlang można dodać obsługę języka +proceduralnego PL/Python dla swojej bazy danych. + +%package module-pltcl +Summary: PL/Tcl - PostgreSQL procedural language +Summary(pl.UTF-8): PL/Tcl - język proceduralny bazy danych PostgreSQL +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} +Requires: tcl(Pgtcl) + +%description module-pltcl +From PostgreSQL documentation: + +Postgres supports the definition of procedural languages. In the case +of a function or trigger procedure defined in a procedural language, +the database has no built-in knowledge about how to interpret the +function's source text. Instead, the task is passed to a handler that +knows the details of the language. The handler itself is a special +programming language function compiled into a shared object and loaded +on demand. + +To enable PL/Tcl procedural language for your database you have to run +createlang command. + +%description module-pltcl -l pl.UTF-8 +Z dokumentacji PostgreSQL: + +Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy +programista zdefiniuje procedurę wyzwalacza lub funkcję w języku +proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu +funkcję. Funkcja lub procedura ta jest przekazywana do interpretera, +który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną +funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie +potrzeby. + +Za pomocą polecenia createlang można dodać obsługę języka +proceduralnego PL/Tcl dla swojej bazy danych. + +%package module-dblink +Summary: dblink module for PostgreSQL +Summary(pl.UTF-8): Moduł dblink dla PostgreSQL-a +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description module-dblink +dblink module for PostgreSQL provides functions returning results from +remote database. + +%description module-dblink -l pl.UTF-8 +Moduł dblink dla PostgreSQL-a udostępnia funkcje zwracające wyniki ze +zdalnej bazy danych. + +%package module-lo +Summary: Large Objects module for PostgreSQL +Summary(pl.UTF-8): Moduł Large Objects dla PostgreSQL-a +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description module-lo +Large Objects module for PostgreSQL adds a new data type 'lo', some +support functions and a trigger which handles the orphaning problem. + +%description module-lo -l pl.UTF-8 +Moduł Large Objects dla PostgreSQL-a dodaje nowy typ danych 'lo', +kilka funkcji pomocniczych i wyzwalacz rozwiązujący problem +osieroconych obiektów. + +%package module-pg_trgm +Summary: Trigram matching for PostgreSQL +Summary(pl.UTF-8): Dopasowanie trigramowe dla PostgreSQL-a +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description module-pg_trgm +This module provides functions and index classes for determining the +similarity of text based on trigram matching. + +%description module-pg_trgm -l pl.UTF-8 +Ten moduł dostarcza funkcje i klasy do rozpoznawania podobnych tekstów +w oparciu o dopasowywanie trigramowe (trigram matching). + +%package module-pgcrypto +Summary: Cryptographic functions for PostgreSQL +Summary(pl.UTF-8): Funkcje kryptograficzne dla PostgreSQL-a +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description module-pgcrypto +Cryptographic functions for PostgreSQL. + +%description module-pgcrypto -l pl.UTF-8 +Funkcje kryptograficzne dla PostgreSQL. + +%package module-sepgsql +Summary: PostgreSQL external security provider using SELinux +Summary(pl.UTF-8): Zewnętrzny moduł bezpieczeństwa PostgreSQL-a wykorzystujący SELinuksa +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} +Requires: libselinux >= 2.1.10 + +%description module-sepgsql +PostgreSQL external security provider using SELinux. + +%description module-sepgsql -l pl.UTF-8 +Zewnętrzny moduł bezpieczeństwa PostgreSQL-a wykorzystujący SELinuksa. + +%package module-tablefunc +Summary: crosstab functions for PostgreSQL +Summary(pl.UTF-8): Funkcje crosstab dla PostgreSQL-a +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description module-tablefunc +crosstab functions for PostgreSQL. + +%description module-tablefunc -l pl.UTF-8 +Funkcje crosstab dla PostgreSQL-a. + +%package module-xml2 +Summary: XML-handling functions for PostgreSQL +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 + +%description module-xml2 +Module with XML functions provides both XPath querying and XSLT +functionality. There is also a new table function which allows the +straightforward return of multiple XML results. + +%description module-xml2 -l pl.UTF-8 +Moduł z funkcjami XML zapewniającymi obsługę zapytań XPath oraz +funkcjonalność XSLT. Jest także nowa funkcja tabelowa pozwalająca na +bezpośrednie zwracanie wielu wyników XML. + +%package contrib +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} + +%description contrib +Miscellaneous PostgreSQL contrib modules. + +%description contrib -l pl.UTF-8 +Różne moduły dołączone do PostgreSQL-a. + +%prep +%setup -q +%patch0 -p1 +%{?with_absolute_dbpaths:%patch1 -p1} +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 + +# force rebuild of bison/flex files +find src -name \*.l -o -name \*.y | xargs touch + +# Erase all CVS dirs +#find contrib -type d -name CVS -exec rm -rf {} \; + +%build +%{__aclocal} -I config +%{__autoconf} +%{__autoheader} +%configure \ + CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \ + --disable-rpath \ + --enable-depend \ + --enable-integer-datetimes \ + --with-system-tzdata=%{_datadir}/zoneinfo \ + --enable-nls \ + --enable-thread-safety \ + %{?with_kerberos5:--with-gssapi} \ + %{?with_ldap:--with-ldap} \ + --with-openssl \ + --with-pam \ + --with-libxml \ + --with-libxslt \ + %{?with_perl:--with-perl} \ + %{?with_python:--with-python} \ + %{?with_selinux:--with-selinux} \ + %{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \ + --with-uuid=ossp + +%{__make} + +for mod in %{contrib_modules}; do \ + flags="%{rpmcflags} %{rpmcppflags} -DNEED_REENTRANT_FUNCS" + if [ $mod = "xml2" ]; then flags="$flags -I/usr/include/libxml2"; fi + if [ $mod = "uuid-ossp" ]; then flags="$flags `uuid-config --cflags`"; fi + %{__make} -C contrib/$mod CFLAGS="$flags" +done + +%{__make} -C src/tutorial \ + NO_PGXS=1 + +%ifnarch sparc sparcv9 sparc64 alpha +%{?with_tests:%{__make} -j1 check} +%endif + +%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%{_examplesdir}/%{name}-%{version} \ + $RPM_BUILD_ROOT%{_mandir} \ + $RPM_BUILD_ROOT{%{systemdunitdir},/etc/systemd/system/%{name}.target.requires} \ + $RPM_BUILD_ROOT/home/services/postgres + +install src/tutorial/*.sql $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} + +%{__make} install \ + DESTDIR=$RPM_BUILD_ROOT +%{__make} -C doc/src/sgml install-man \ + DESTDIR=$RPM_BUILD_ROOT + +%if %{with perl} +%{__make} install -C src/pl/plperl \ + DESTDIR=$RPM_BUILD_ROOT +%endif + +for mod in %{contrib_modules}; do \ + %{__make} -C contrib/$mod install \ + DESTDIR=$RPM_BUILD_ROOT +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 + +install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}@.service +install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service +install %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.target + +install -d howto +tar zxf %{SOURCE2} -C howto + +%if %{with python} +%py_comp $RPM_BUILD_ROOT%{py_libdir} +%py_ocomp $RPM_BUILD_ROOT%{py_libdir} +%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} +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 + +%if %{with tcl} +%find_lang pltcl-%{mver} +mv $RPM_BUILD_ROOT{%{_datadir}/postgresql,%{_pgsqldir}}/unknown.pltcl +%endif + +%if %{with selinux} +mv $RPM_BUILD_ROOT{%{_datadir}/postgresql/contrib,%{_pgsqldir}}/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 + +# package it...? nah, why bother. +%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre +PG_DB_CLUSTERS="" +if [ -f /etc/sysconfig/postgresql ]; then + . /etc/sysconfig/postgresql + if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then + PG_DB_CLUSTERS="$POSTGRES_DATA_DIR" + fi +fi +foundold=0 +for pgdir in $PG_DB_CLUSTERS; do + if [ -f $pgdir/PG_VERSION ]; then + if [ $(cat $pgdir/PG_VERSION) != '9.3' ]; then + echo "Found database(s) in older, incompatible format in cluster $pgdir." + foundold=1 + fi + fi +done +if [ "$foundold" = "1" ]; then + echo + echo "Dump all data from clusters mentioned above (using pg_dump or pg_dumpall)" + echo "and clean (or rename) those directories; then upgrade postgresql and" + echo "restore all data (using pg_restore or psql)." + 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 + 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" +if [ "$1" -eq "1" ]; then + PG_DB_CLUSTERS="" + [ -f /etc/sysconfig/postgresql ] && . /etc/sysconfig/postgresql + export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog + for pgdir in $PG_DB_CLUSTERS; do + instance="$(echo "$pgdir" | sed -e 's/^\///;s/-/\\x2d/g;s/@/\\x40/g;s/\//-/g')" + /bin/systemctl --quiet enable "postgresql@$instance.service" || : + done +fi +%systemd_post postgresql.service + +%preun +if [ "$1" = "0" ]; then + %service postgresql stop + /sbin/chkconfig --del postgresql + + PG_DB_CLUSTERS="" + [ -f /etc/sysconfig/postgresql ] && . /etc/sysconfig/postgresql + export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog + for pgdir in $PG_DB_CLUSTERS; do + instance="$(echo "$pgdir" | sed -e 's/^\///;s/-/\\x2d/g;s/@/\\x40/g;s/\//-/g')" + /bin/systemctl --quiet disable "postgresql@$instance.service" || : + done +fi +%systemd_preun postgresql.service + +%postun +%systemd_reload + +%triggerpostun -- %{name} < 9.3.3-2 +PG_DB_CLUSTERS="" +[ -f /etc/sysconfig/postgresql ] && . /etc/sysconfig/postgresql +for pgdir in $PG_DB_CLUSTERS; do + instance="$(echo "$pgdir" | sed -e 's/^\///;s/-/\\x2d/g;s/@/\\x40/g;s/\//-/g')" + /bin/systemctl --quiet enable "postgresql@$instance.service" || : +done +%systemd_trigger postgresql.service + +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig + +%post ecpg -p /sbin/ldconfig +%postun ecpg -p /sbin/ldconfig + +%files -f main-%{mver}.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 +%{systemdunitdir}/%{name}.service +%{systemdunitdir}/%{name}@.service +%{systemdunitdir}/%{name}.target +%dir /etc/systemd/system/%{name}.target.requires + +%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(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* + +%files doc +%defattr(644,root,root,755) +%doc doc/src/sgml/html howto +%{_examplesdir}/%{name}-%{version} + +%files libs -f libpq5-%{mver}.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* + +%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 +%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* + +%if %{with perl} +%files module-plperl -f plperl-%{mver}.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 +%endif + +%if %{with python} +%files module-plpython -f plpython-%{mver}.lang +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/plpython2.so +%{_pgsqldir}/plpython*--*.sql +%{_pgsqldir}/plpython*.control +%endif + +%if %{with tcl} +%files module-pltcl -f pltcl-%{mver}.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 +%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* + +%files module-lo +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/lo.so +%{_pgsqldir}/lo--*.sql +%{_pgsqldir}/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 + +%files module-pgcrypto +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/pgcrypto.so +%{_pgsqldir}/pgcrypto--*.sql +%{_pgsqldir}/pgcrypto.control + +%if %{with selinux} +%files module-sepgsql +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/sepgsql.so +%{_pgsqldir}/sepgsql.sql +%endif + +%files module-tablefunc +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/tablefunc.so +%{_pgsqldir}/*tablefunc--*.sql +%{_pgsqldir}/*tablefunc.control + +%files module-xml2 +%defattr(644,root,root,755) +%attr(755,root,root) %{_pgmoduledir}/pgxml.so +%{_pgsqldir}/xml2--*.sql +%{_pgsqldir}/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* diff --git a/postgresql.sysconfig b/postgresql.sysconfig new file mode 100644 index 0000000..f3f4735 --- /dev/null +++ b/postgresql.sysconfig @@ -0,0 +1,23 @@ +# $Revision$ + +# +# 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" + +# predictable usage +# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02" + +# new database disk arrived +# PG_DB_CLUSTERS="/var/lib/pgsql/01 /var/lib/pgsql/02 /mnt/db/01" diff --git a/postgresql.target b/postgresql.target new file mode 100644 index 0000000..e8c6d17 --- /dev/null +++ b/postgresql.target @@ -0,0 +1,2 @@ +[Unit] +Description=PostgreSQL server instances diff --git a/postgresql@.service b/postgresql@.service new file mode 100644 index 0000000..4eb4761 --- /dev/null +++ b/postgresql@.service @@ -0,0 +1,15 @@ +[Unit] +Description=PostgreSQL database server at %f +PartOf=postgresql.target postgresql.service +ReloadPropagatedFrom=postgresql.service + +[Service] +Type=forking +User=postgres +ExecStart=/usr/bin/pg_ctl -D %f start -w -s +ExecStop=/usr/bin/pg_ctl -D %f stop -w -s -m fast +ExecReload=/usr/bin/pg_ctl -D %f reload -w -s +PIDFile=%f/postmaster.pid + +[Install] +RequiredBy=postgresql.target diff --git a/postgresql_9.1-ac_version.patch b/postgresql_9.1-ac_version.patch new file mode 100644 index 0000000..4482bd4 --- /dev/null +++ b/postgresql_9.1-ac_version.patch @@ -0,0 +1,17 @@ +--- 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) -- 2.44.0