# 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)
%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 mver 9.5
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}.5
+Version: %{mver}.0
Release: 1
License: BSD
Group: Applications/Databases
Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 8b2e3472a8dc786649b4d02d02e039a0
+# Source0-md5: e58fffe9359e311ead94490a06b7147c
Source1: %{name}.init
Source2: pgsql-Database-HOWTO-html.tar.gz
# Source2-md5: 5b656ddf1db41965761f85204a14398e
Patch4: %{name}-disable_horology_test.patch
Patch5: %{name}-heimdal.patch
Patch6: %{name}-ossp_uuid.patch
+Patch7: %{name}-link.patch
URL: http://www.postgresql.org/
BuildRequires: autoconf
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
%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
%define _ulibdir /usr/lib
# omitted contribs:
-# dummy_seclabel, pg_test_fsync, pg_test_timing, spi, test_parser, worker_spi - examples/tests
+# dummy_seclabel, 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
+%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_buffercache pg_freespacemap pg_prewarm pg_standby pg_stat_statements pg_trgm 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,
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
# force rebuild of bison/flex files
find src -name \*.l -o -name \*.y | xargs touch
CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \
--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
%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
+for f in libpq5 pg_basebackup pg_controldata pg_dump pg_resetxlog pg_rewind 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 \
+ plpgsql-%{mver}.lang pg_rewind-%{mver}.lang \
pg_basebackup-%{mver}.lang \
> main-%{mver}.lang
cat pg_dump-%{mver}.lang psql-%{mver}.lang initdb-%{mver}.lang \
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
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) != '%{mver}' ]; then
echo "Found database(s) in older, incompatible format in cluster $pgdir."
foundold=1
fi
%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_rewind
+%attr(755,root,root) %{_bindir}/pg_test_fsync
+%attr(755,root,root) %{_bindir}/pg_test_timing
%attr(755,root,root) %{_bindir}/pg_upgrade
+%attr(755,root,root) %{_bindir}/pg_xlogdump
+%attr(755,root,root) %{_bindir}/pgbench
%attr(755,root,root) %{_bindir}/postgres
%attr(755,root,root) %{_bindir}/postmaster
%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
%{_mandir}/man1/pg_resetxlog.1*
%{_mandir}/man1/pg_receivexlog.1*
%{_mandir}/man1/pg_recvlogical.1*
+%{_mandir}/man1/pg_rewind.1*
+%{_mandir}/man1/pg_xlogdump.1*
+%{_mandir}/man1/pg_test_fsync.1*
+%{_mandir}/man1/pg_test_timing.1*
+%{_mandir}/man1/pg_upgrade.1*
+%{_mandir}/man1/pgbench.1*
%{_mandir}/man1/postgres.1*
%{_mandir}/man1/postmaster.1*
%attr(755,root,root) %{_bindir}/dropdb
%attr(755,root,root) %{_bindir}/droplang
%attr(755,root,root) %{_bindir}/dropuser
+%attr(755,root,root) %{_bindir}/pg_archivecleanup
%attr(755,root,root) %{_bindir}/pg_dump
%attr(755,root,root) %{_bindir}/pg_dumpall
%attr(755,root,root) %{_bindir}/pg_isready
%{_mandir}/man1/dropdb.1*
%{_mandir}/man1/droplang.1*
%{_mandir}/man1/dropuser.1*
+%{_mandir}/man1/pg_archivecleanup.1*
%{_mandir}/man1/pg_dump.1*
%{_mandir}/man1/pg_dumpall.1*
%{_mandir}/man1/pg_isready.1*
%{_mandir}/man1/pg_restore.1*
-%{_mandir}/man1/pg_upgrade.1.gz
%{_mandir}/man1/psql.1*
%{_mandir}/man1/reindexdb.1*
%{_mandir}/man1/vacuumdb.1*
%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
%{_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*