]> git.pld-linux.org Git - packages/postgresql.git/blobdiff - postgresql.spec
- initial support for full pg_upgrade
[packages/postgresql.git] / postgresql.spec
index 07b0da03fa05e1d5033d1840a9da492470950c2c..c27d79502ec9e5ff624160c27e83b29dd9c30348 100644 (file)
@@ -1,5 +1,6 @@
 # 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?)
 # - test init script (db initialization)
 #
 %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
+
+%define prevmver 9.1
+%define prevver 9.1.6
 
 Summary:       PostgreSQL Data Base Management System
 Summary(de.UTF-8):     PostgreSQL Datenbankverwaltungssystem
@@ -28,28 +33,30 @@ Summary(tr.UTF-8):  Veri Tabanı Yönetim Sistemi
 Summary(uk.UTF-8):     PostgreSQL - система керування базами даних
 Summary(zh_CN.UTF-8):  PostgreSQL 客户端程序和库文件
 Name:          postgresql
-Version:       %{mver}.0
-Release:       1
+Version:       %{mver}.1
+Release:       0.1
 License:       BSD
 Group:         Applications/Databases
 Source0:       ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 0497b9da1d7c380c340a9a87ba5500fe
+# Source0-md5: c0b4799ea9850eae3ead14f0a60e9418
 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
+# http://git.postgresql.org/gitweb/?p=pldebugger.git;a=snapshot;h=eb754b6ba9a1c18e7bc4ddf521408be06768c697;sf=tgz 
+Source4:       pldebugger-eb754b6.tar.gz
+# Source4-md5: e596193b87695d29fa9161e7182dcd32
 Source5:       %{name}.upstart
 Source6:       %{name}-instance.upstart
+Source7:       ftp://ftp.postgresql.org/pub/source/v%{prevver}/%{name}-%{prevver}.tar.bz2
+# Source7-md5: 000755f66c0de58bbd4cd2b89b45b8e2
 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}-pg_ctl-fix.patch
-Patch6:                %{name}-heimdal.patch
+Patch5:                %{name}-heimdal.patch
+Patch6:                %{name}_%{prevmver}-ac_version.patch
 URL:           http://www.postgresql.org/
 BuildRequires: autoconf
 BuildRequires: automake
@@ -58,9 +65,10 @@ BuildRequires:       bison >= 1.875
 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.93}
 BuildRequires: libtool
 BuildRequires: libxml2-devel >= 2.6.23
 BuildRequires: libxslt-devel
@@ -104,9 +112,9 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %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 pldebugger seg %{?with_selinux:sepgsql} sslinfo tablefunc unaccent uuid-ossp vacuumlo xml2
 
 %description
 PostgreSQL Data Base Management System (formerly known as Postgres,
@@ -689,6 +697,20 @@ 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
@@ -701,6 +723,19 @@ 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.0.93
+
+%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
@@ -713,20 +748,6 @@ crosstab functions for PostgreSQL.
 %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
@@ -755,17 +776,44 @@ Miscellaneous PostgreSQL contrib modules.
 %description contrib -l pl.UTF-8
 Różne moduły dołączone do PostgreSQL-a.
 
+%package upgrade
+Summary:       Support for upgrading from the previous major release
+Summary(pl.UTF-8):     Wsparcie
+Group:         Applications/Databases
+Requires:      %{name} = %{version}-%{release}
+
+%description upgrade
+The postgresql-upgrade package contains the pg_upgrade utility and supporting
+files needed for upgrading a PostgreSQL database from the previous major
+version of PostgreSQL.
+
+
+%description upgrade -l pl.UTF-8
+The postgresql-upgrade package contains the pg_upgrade utility and supporting
+files needed for upgrading a PostgreSQL database from the previous major
+version of PostgreSQL.
+
 %prep
-%setup -q
+%setup -q -a 7
 %patch0 -p1
 %{?with_absolute_dbpaths:%patch1 -p1}
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-#%patch5 -p1
+%patch5 -p1
+
+cd postgresql-%{prevver}
+
+%patch0 -p1
+%{?with_absolute_dbpaths:%patch1 -p1}
+%patch2 -p1
+%patch4 -p1
+%patch5 -p1
 %patch6 -p1
+cd ..
 
 tar xzf %{SOURCE4} -C contrib
+mv contrib/pldebugger-* contrib/pldebugger
 
 # force rebuild of bison/flex files
 find src -name \*.l -o -name \*.y | xargs touch
@@ -793,13 +841,14 @@ 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"
@@ -812,6 +861,35 @@ done
 %{?with_tests:%{__make} -j1 check}
 %endif
 
+cd postgresql-%{prevver}
+%{__aclocal} -I config
+%{__autoconf}
+
+./configure \
+       CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \
+       --prefix=%{_libdir}/pgsql/postgresql-%{prevmver} \
+       --disable-rpath \
+       --enable-depend \
+       --enable-integer-datetimes \
+       --with-system-tzdata=%{_datadir}/zoneinfo \
+       --enable-nls \
+       --enable-thread-safety \
+       %{?with_kerberos5:--with-gssapi} \
+       %{?with_kerberos5:--with-krb5} \
+       %{?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-ossp-uuid \
+
+%{__make}
+cd ..
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,init/%{name}}} \
@@ -867,23 +945,63 @@ 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
 
-# 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
+
+cd postgresql-%{prevver}
+%{__make} install \
+        DESTDIR=$RPM_BUILD_ROOT/postgresql-%{prevmver}
+cd $RPM_BUILD_ROOT/postgresql-%{prevmver}%{_libdir}/pgsql/postgresql-%{prevmver}
+       rm bin/clusterdb
+       rm bin/createdb
+       rm bin/createlang
+       rm bin/createuser
+       rm bin/dropdb
+       rm bin/droplang
+       rm bin/dropuser
+       rm bin/ecpg
+       rm bin/initdb
+       rm bin/pg_basebackup
+       rm bin/pg_config
+       rm bin/pg_controldata
+       rm bin/pg_dump
+       rm bin/pg_dumpall
+       rm bin/pg_restore
+       rm bin/psql
+       rm bin/reindexdb
+       rm bin/vacuumdb
+       rm -rf include
+       rm lib/dict_snowball.so
+       rm lib/libecpg*
+       rm lib/libpg*
+       rm lib/libpq*
+       rm -rf lib/pgxs
+       rm lib/plpgsql.so
+       rm -rf share/doc
+       rm -rf share/man
+       rm -rf share/tsearch_data
+       rm share/*.bki
+       rm share/*description
+       rm share/*.sample
+       rm share/*.sql
+       rm share/*.txt
+       mkdir -p $RPM_BUILD_ROOT%{_libdir}/postgresql-%{prevmver}
+       cp -ra $RPM_BUILD_ROOT/postgresql-%{prevmver}%{_libdir}/pgsql/postgresql-%{prevmver}/* $RPM_BUILD_ROOT%{_libdir}/postgresql-%{prevmver}
+cd $RPM_BUILD_ROOT
 
 %clean
-rm -rf $RPM_BUILD_ROOT
+#rm -rf $RPM_BUILD_ROOT
 
 %pre
 PG_DB_CLUSTERS=""
@@ -963,7 +1081,7 @@ 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_upgrade
+%attr(755,root,root) %{_bindir}/pg_receivexlog
 %attr(755,root,root) %{_bindir}/postgres
 %attr(755,root,root) %{_bindir}/postmaster
 
@@ -976,7 +1094,6 @@ fi
 %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
 
@@ -994,6 +1111,8 @@ fi
 %{_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
@@ -1005,6 +1124,15 @@ fi
 %{_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
@@ -1024,7 +1152,6 @@ fi
 %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)
@@ -1153,24 +1280,29 @@ fi
 %{_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
@@ -1187,6 +1319,7 @@ fi
 %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
@@ -1194,6 +1327,7 @@ fi
 %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
@@ -1205,12 +1339,9 @@ fi
 %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}/plugin_debugger.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
@@ -1231,6 +1362,8 @@ fi
 %{_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
@@ -1255,7 +1388,8 @@ fi
 %{_pgsqldir}/pgrowlocks.control
 %{_pgsqldir}/pgstattuple--*.sql
 %{_pgsqldir}/pgstattuple.control
-%{_pgsqldir}/pldbgapi.sql
+%{_pgsqldir}/pldbgapi--*.sql
+%{_pgsqldir}/pldbgapi.control
 %{_pgsqldir}/seg--*.sql
 %{_pgsqldir}/seg.control
 %{_pgsqldir}/sslinfo--*.sql
@@ -1264,3 +1398,10 @@ fi
 %{_pgsqldir}/unaccent.control
 %{_pgsqldir}/uuid-ossp--*.sql
 %{_pgsqldir}/uuid-ossp.control
+
+%files upgrade
+%attr(755,root,root) %{_bindir}/pg_upgrade
+%attr(755,root,root) %{_pgmoduledir}/pg_upgrade_support.so
+%dir %{_libdir}/postgresql-%{prevmver}
+%{_libdir}/postgresql-%{prevmver}
+%{_mandir}/man1/pg_upgrade.1.gz
This page took 0.050045 seconds and 4 git commands to generate.