# TODO:
# - python 3 and python 2 subpackages?
+# - consider dns_sd/Bonjour support (--with-bonjour)
# - 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 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.1
+%define mver 9.2
Summary: PostgreSQL Data Base Management System
Summary(de.UTF-8): PostgreSQL Datenbankverwaltungssystem
Summary(uk.UTF-8): PostgreSQL - система керування базами даних
Summary(zh_CN.UTF-8): PostgreSQL 客户端程序和库文件
Name: postgresql
-Version: %{mver}.0
+Version: %{mver}.3
Release: 1
License: BSD
Group: Applications/Databases
Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 0497b9da1d7c380c340a9a87ba5500fe
+# Source0-md5: 59f42a93695b0186ed5eb03c2653a7d4
Source1: %{name}.init
Source2: pgsql-Database-HOWTO-html.tar.gz
# Source2-md5: 5b656ddf1db41965761f85204a14398e
Source3: %{name}.sysconfig
-# cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/edb-debugger (module server)
-Source4: edb-debugger-20110912.tgz
-# Source4-md5: 6a9b6576b8ccac062243dd29e58a371b
Source5: %{name}.upstart
Source6: %{name}-instance.upstart
Patch0: %{name}-conf.patch
Patch2: %{name}-ecpg-includedir.patch
Patch3: %{name}-ac_version.patch
Patch4: %{name}-disable_horology_test.patch
-Patch5: %{name}-pg_ctl-fix.patch
-Patch6: %{name}-heimdal.patch
+Patch5: %{name}-heimdal.patch
URL: http://www.postgresql.org/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: docbook-dtd42-sgml
BuildRequires: docbook-dtd42-xml
BuildRequires: docbook-style-xsl
-BuildRequires: flex
+BuildRequires: flex >= 2.5.31
BuildRequires: gettext-devel
%{?with_kerberos5:BuildRequires: heimdal-devel}
+%{?with_selinux:BuildRequires: libselinux-devel >= 2.0.99}
BuildRequires: libtool
BuildRequires: libxml2-devel >= 2.6.23
BuildRequires: libxslt-devel
%define _ulibdir /usr/lib
# omitted contribs:
-# spi and test_parser - examples
+# dummy_seclabel, pg_test_fsync, spi and test_parser - examples/tests
# tsearch2 - old module for compatibility only
-%define contrib_modules adminpack auto_explain btree_gin btree_gist chkpass citext cube dblink dict_int dict_xsyn earthdistance fuzzystrmatch hstore intagg intarray isn lo ltree oid2name pageinspect passwordcheck pg_archivecleanup pg_buffercache pg_freespacemap pg_standby pg_stat_statements pg_trgm pg_upgrade pg_upgrade_support pgbench pgcrypto pgrowlocks pgstattuple pldebugger seg sslinfo tablefunc 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_upgrade pg_upgrade_support pgbench pgcrypto pgrowlocks pgstattuple seg %{?with_selinux:sepgsql} sslinfo tablefunc unaccent uuid-ossp vacuumlo xml2
%description
PostgreSQL Data Base Management System (formerly known as Postgres,
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
%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.0.99
+
+%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
%description module-tablefunc -l pl.UTF-8
Funkcje crosstab dla PostgreSQL-a.
-%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-xml2
Summary: XML-handling functions for PostgreSQL
Summary(pl.UTF-8): Funkcje do obsługi XML-a dla PostgreSQL-a
%patch2 -p1
%patch3 -p1
%patch4 -p1
-#%patch5 -p1
-%patch6 -p1
-
-tar xzf %{SOURCE4} -C contrib
+%patch5 -p1
# force rebuild of bison/flex files
find src -name \*.l -o -name \*.y | xargs touch
--with-libxslt \
%{?with_perl:--with-perl} \
%{?with_python:--with-python} \
+ %{?with_selinux:--with-selinux} \
%{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \
--with-ossp-uuid \
%{__make}
for mod in %{contrib_modules}; do \
- flags="%{rpmcflags} -DNEED_REENTRANT_FUNCS"
+ 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"
pg_ctl-%{mver}.lang > clients-%{mver}.lang
cat ecpg-%{mver}.lang ecpglib6-%{mver}.lang > ecpg.lang
-# Remove Contrib documentation. We use macro %doc
-rm -rf $RPM_BUILD_ROOT/contrib
-
%if %{with tcl}
%find_lang pltcl-%{mver}
mv $RPM_BUILD_ROOT{%{_datadir}/postgresql,%{_pgsqldir}}/unknown.pltcl
%endif
-mv $RPM_BUILD_ROOT{%{_datadir}/postgresql/contrib,%{_pgsqldir}}/pldbgapi.sql
+%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/
# package it...? nah, why bother.
-rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html
%clean
rm -rf $RPM_BUILD_ROOT
foundold=0
for pgdir in $PG_DB_CLUSTERS; do
if [ -f $pgdir/PG_VERSION ]; then
- if [ $(cat $pgdir/PG_VERSION) != '9.1' ]; then
+ if [ $(cat $pgdir/PG_VERSION) != '9.2' ]; then
echo "Found database(s) in older, incompatible format in cluster $pgdir."
foundold=1
fi
%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_upgrade
%attr(755,root,root) %{_bindir}/postgres
%attr(755,root,root) %{_bindir}/postmaster
%{_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/pg_resetxlog.1*
%{_mandir}/man1/postgres.1*
%{_mandir}/man1/postmaster.1*
+%{_mandir}/man1/oid2name.1.gz
+%{_mandir}/man1/pg_archivecleanup.1.gz
+%{_mandir}/man1/pg_receivexlog.1.gz
+%{_mandir}/man1/pg_standby.1.gz
+%{_mandir}/man1/pg_test_fsync.1.gz
+%{_mandir}/man1/pg_test_timing.1.gz
+%{_mandir}/man1/pgbench.1.gz
+%{_mandir}/man1/vacuumlo.1.gz
+
%if "%{pld_release}" != "ti"
%files upstart
%attr(755,root,root) %{_libdir}/libpq.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libpq.so.5
%dir %{_pgmoduledir}
-%dir %{_pgmoduledir}/plugins
%files ecpg -f ecpg.lang
%defattr(644,root,root,755)
%{_mandir}/man1/pg_dump.1*
%{_mandir}/man1/pg_dumpall.1*
%{_mandir}/man1/pg_restore.1*
+%{_mandir}/man1/pg_upgrade.1.gz
%{_mandir}/man1/psql.1*
%{_mandir}/man1/reindexdb.1*
%{_mandir}/man1/vacuumdb.1*
%{_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
+%files module-sepgsql
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_pgmoduledir}/sepgsql.so
+%{_pgsqldir}/sepgsql.sql
+
%files module-tablefunc
%defattr(644,root,root,755)
%attr(755,root,root) %{_pgmoduledir}/tablefunc.so
%{_pgsqldir}/*tablefunc--*.sql
%{_pgsqldir}/*tablefunc.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-xml2
%defattr(644,root,root,755)
%attr(755,root,root) %{_pgmoduledir}/pgxml.so
%files contrib
%defattr(644,root,root,755)
-%doc contrib/README contrib/pldebugger/README.pl*
+%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}/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}/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}/pg_stat_statements.so
%attr(755,root,root) %{_pgmoduledir}/pgrowlocks.so
%attr(755,root,root) %{_pgmoduledir}/pgstattuple.so
-%attr(755,root,root) %{_pgmoduledir}/pldbgapi.so
-%attr(755,root,root) %{_pgmoduledir}/plugins/plugin_debugger.so
-%attr(755,root,root) %{_pgmoduledir}/plugins/plugin_profiler.so
%attr(755,root,root) %{_pgmoduledir}/seg.so
%attr(755,root,root) %{_pgmoduledir}/sslinfo.so
-%attr(755,root,root) %{_pgmoduledir}/targetinfo.so
%attr(755,root,root) %{_pgmoduledir}/unaccent.so
%attr(755,root,root) %{_pgmoduledir}/uuid-ossp.so
%{_pgsqldir}/adminpack--*.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}/pgrowlocks.control
%{_pgsqldir}/pgstattuple--*.sql
%{_pgsqldir}/pgstattuple.control
-%{_pgsqldir}/pldbgapi.sql
%{_pgsqldir}/seg--*.sql
%{_pgsqldir}/seg.control
%{_pgsqldir}/sslinfo--*.sql
%{_pgsqldir}/unaccent.control
%{_pgsqldir}/uuid-ossp--*.sql
%{_pgsqldir}/uuid-ossp.control
+