]> git.pld-linux.org Git - packages/postgresql.git/blobdiff - postgresql.spec
- up to 9.0.2
[packages/postgresql.git] / postgresql.spec
index 2ad820c5d1a23b1d018309314de43aafb6981d40..76ac1060ab680f76de858b30db867ac95e87b4df 100644 (file)
@@ -1,3 +1,7 @@
+# TODO:
+# - python 3 and python 2 subpackages?
+# - think about pg_upgrade integration (sysconfig variable to allow upgrade from 8.3+ without dump/restore?)
+# - test init script (db initialization)
 #
 # Conditional build:
 %bcond_without tests                   # disable testing
@@ -11,7 +15,7 @@
 #
 
 %define beta %{nil}
-%define mver 8.4
+%define mver 9.0
 
 Summary:       PostgreSQL Data Base Management System
 Summary(de.UTF-8):     PostgreSQL Datenbankverwaltungssystem
@@ -24,26 +28,31 @@ 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:       3
+Version:       %{mver}.2
+Release:       1
 License:       BSD
 Group:         Applications/Databases
 Source0:       ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 1f172d5f60326e972837f58fa5acd130
+# Source0-md5: fc79ef32b602f75f2ccd37647bc008e9
 Source1:       %{name}.init
 Source2:       pgsql-Database-HOWTO-html.tar.gz
 # Source2-md5: 5b656ddf1db41965761f85204a14398e
 Source3:       %{name}.sysconfig
+Source4:       edb-debugger-20100404.tgz
+# Source4-md5: a10daee9a2017db40c7550c40cb47e8d
+Source5:       %{name}.upstart
+Source6:       %{name}-instance.upstart
 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}-pg_perm_setlocale.patch
+Patch6:                %{name}-heimdal.patch
 URL:           http://www.postgresql.org/
 BuildRequires: autoconf
 BuildRequires: automake
+BuildRequires: docbook-dtd42-sgml
 # not needed for releases... but fixes something in snapshot
 BuildRequires: bison >= 1.875
 BuildRequires: flex
@@ -52,6 +61,7 @@ BuildRequires:        gettext-devel
 BuildRequires: libtool
 BuildRequires: libxml2-devel >= 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
@@ -66,6 +76,7 @@ BuildRequires:        python-modules >= 1:2.3
 BuildRequires: readline-devel >= 4.2
 BuildRequires: rpmbuild(macros) >= 1.268
 %{?with_tcl:BuildRequires:     tcl-devel >= 8.4.3}
+%{?with_tests:BuildRequires:   tzdata}
 BuildRequires: zlib-devel
 Requires(post,preun):  /sbin/chkconfig
 Requires(pre): /bin/id
@@ -76,8 +87,9 @@ Requires(triggerpostun):      /bin/id
 Requires(triggerpostun):       /usr/sbin/usermod
 Requires:      %{name}-clients = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
-Requires:      rc-scripts
+Requires:      rc-scripts >= 0.4.3.0
 Requires:      tzdata
+Obsoletes:     postgresql-module-plpgsql
 Obsoletes:     postgresql-module-tsearch2
 Obsoletes:     postgresql-server
 Obsoletes:     postgresql-test
@@ -88,7 +100,29 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _ulibdir        /usr/lib
 
-%define        contrib_modules auto_explain adminpack btree_gin btree_gist chkpass citext cube dblink dict_int dict_xsyn earthdistance fuzzystrmatch hstore intagg intarray isn lo ltree oid2name pageinspect pgbench pg_buffercache pgcrypto pg_freespacemap pgrowlocks pg_standby pg_stat_statements pgstattuple pg_trgm seg sslinfo tablefunc uuid-ossp vacuumlo xml2
+# omitted contribs:
+# spi and test_parser - examples 
+# 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
+
+## to be moved to rpm-build-macros
+## TODO: handle RPM_SKIP_AUTO_RESTART
+
+# migrate from init script to upstart job
+%define        upstart_post() \
+       if [ -f /var/lock/subsys/"%1" ] ; then \
+               /sbin/service --no-upstart "%1" stop \
+               /sbin/service "%1" start \
+       else \
+               /sbin/service "%1" try-restart \
+       fi
+
+# restart the job after upgrade or migrate to init script on removal
+%define        upstart_postun() \
+       if [ -x /sbin/initctl ] && /sbin/initctl status "%1" 2>/dev/null | grep -q 'running' ; then \
+               /sbin/initctl stop "%1" 2>/dev/null \
+               [ -f "/etc/rc.d/init.d/%1" -o -f "/etc/init/%1.conf" ] && /sbin/service "%1" start \
+       fi
 
 %description
 PostgreSQL Data Base Management System (formerly known as Postgres,
@@ -312,6 +346,19 @@ California, Berkeley.
 PostgreSQL працює на Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD
 та більшості інших різновидів Unix.
 
+%package upstart
+Summary:       Upstart job description for PostgreSQL server
+Summary(pl.UTF-8):     Opis zadania Upstart dla serwera PostgreSQL
+Group:         Daemons
+Requires:      %{name} = %{version}-%{release}
+Requires:      upstart >= 0.6
+
+%description upstart
+Upstart job description for PostgreSQL.
+
+%description upstart -l pl.UTF-8
+Opis zadania Upstart dla PostgreSQL.
+
 %package devel
 Summary:       PostgreSQL development header files and libraries
 Summary(de.UTF-8):     PostgreSQL-Entwicklungs-Header-Dateien und Libraries
@@ -524,46 +571,11 @@ PostgreSQL.
 Це окремий пакет зі статичними бібліотеками, які більш не входять в
 %{name}-devel.
 
-%package module-plpgsql
-Summary:       PL/pgSQL - PostgreSQL procedural language
-Summary(pl.UTF-8):     PL/pgSQL - język proceduralny bazy danych PostgreSQL
-Group:         Applications/Databases
-Requires:      %{name} = %{version}-%{release}
-
-%description module-plpgsql
-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/pgSQL procedural language for your database you have to
-run createlang command.
-
-%description module-plpgsql -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/pgSQL dla swojej bazy danych.
-
 %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}
-Requires:      perl(DynaLoader) = %(%{__perl} -MDynaLoader -e 'print DynaLoader->VERSION')
 
 %description module-plperl
 From PostgreSQL documentation:
@@ -768,10 +780,7 @@ Różne moduły dołączone do PostgreSQL-a.
 %patch5 -p1
 %patch6 -p1
 
-tar xzf doc/man*.tar.gz
-
-mkdir doc/unpacked
-tar zxf doc/postgres.tar.gz -C doc/unpacked
+tar xzf %{SOURCE4} -C contrib
 
 # force rebuild of bison/flex files
 find src -name \*.l -o -name \*.y | xargs touch
@@ -801,7 +810,6 @@ find src -name \*.l -o -name \*.y | xargs touch
        %{?with_python:--with-python} \
        %{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \
        --with-ossp-uuid \
-       --without-docdir
 
 %{__make}
 
@@ -821,7 +829,7 @@ done
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig}} \
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,init/%{name}}} \
        $RPM_BUILD_ROOT{/var/{lib/pgsql,log},%{_pgsqldir}} \
        $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
        $RPM_BUILD_ROOT%{_mandir} \
@@ -831,6 +839,8 @@ 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 \
@@ -847,6 +857,9 @@ 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 %{SOURCE5} $RPM_BUILD_ROOT/etc/init/%{name}.conf
+install %{SOURCE6} $RPM_BUILD_ROOT/etc/init/%{name}/instance.conf
+
 install -d howto
 tar zxf %{SOURCE2} -C howto
 
@@ -856,15 +869,17 @@ tar zxf %{SOURCE2} -C howto
 %endif
 
 # find locales
-for f in libpq5 pg_controldata pg_dump pg_resetxlog pgscripts postgres psql initdb pg_ctl pg_config plpgsql ecpg ecpglib6 plperl plpgsql plpython; do
+for f in libpq5 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 \
     > 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
 
 # Remove Contrib documentation. We use macro %doc
 rm -rf $RPM_BUILD_ROOT/contrib
@@ -882,7 +897,7 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/postgresql/html
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%pretrans
+%pre
 PG_DB_CLUSTERS=""
 if [ -f /etc/sysconfig/postgresql ]; then
        . /etc/sysconfig/postgresql
@@ -893,7 +908,7 @@ fi
 foundold=0
 for pgdir in $PG_DB_CLUSTERS; do
        if [ -f $pgdir/PG_VERSION ]; then
-               if [ $(cat $pgdir/PG_VERSION) != '8.4' ]; then
+               if [ $(cat $pgdir/PG_VERSION) != '9.0' ]; then
                        echo "Found database(s) in older, incompatible format in cluster $pgdir."
                        foundold=1
                fi
@@ -906,9 +921,12 @@ if [ "$foundold" = "1" ]; then
        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 "/usr/lib/pgsql/module to /usr/lib/postgresql. Change the path"
+       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."
@@ -916,8 +934,6 @@ if [ "$foundold" = "1" ]; then
        echo "http://www.ca.postgresql.org/docs/momjian/upgrade_tips_7.3"
        exit 1
 fi
-
-%pre
 %groupadd -g 88 -r postgres
 %useradd -M -o -r -u 88 -d /home/services/postgres -s /bin/sh -g postgres -c "PostgreSQL Server" postgres
 
@@ -936,6 +952,12 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del postgresql
 fi
 
+%post upstart
+%upstart_post postgresql
+
+%postun upstart
+%upstart_postun postgresql
+
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
@@ -944,7 +966,7 @@ fi
 
 %files -f main-%{mver}.lang
 %defattr(644,root,root,755)
-%doc COPYRIGHT README HISTORY doc/{FAQ*,README*,bug.template}
+%doc COPYRIGHT README HISTORY doc/{README*,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
 
@@ -952,15 +974,22 @@ 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}/postgres
 %attr(755,root,root) %{_bindir}/postmaster
 
-%attr(755,root,root) %{_pgmoduledir}/ascii*
-%attr(755,root,root) %{_pgmoduledir}/cyrillic*
-%attr(755,root,root) %{_pgmoduledir}/euc*
-%attr(755,root,root) %{_pgmoduledir}/latin*
-%attr(755,root,root) %{_pgmoduledir}/utf*
-%attr(755,root,root) %{_pgmoduledir}/dict_*
+%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}
 %dir %{_datadir}/postgresql
@@ -984,9 +1013,17 @@ fi
 %{_mandir}/man1/postgres.1*
 %{_mandir}/man1/postmaster.1*
 
+%if "%{pld_release}" != "ti"
+%files upstart
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/init/postgresql.conf
+%dir /etc/init/postgresql
+%config(noreplace) %verify(not md5 mtime size) /etc/init/postgresql/instance.conf
+%endif
+
 %files doc
 %defattr(644,root,root,755)
-%doc doc/unpacked/* doc/src/FAQ howto
+%doc doc/src/sgml/html howto
 %{_examplesdir}/%{name}-%{version}
 
 %files libs -f libpq5-%{mver}.lang
@@ -994,8 +1031,9 @@ 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-%{mver}.lang
+%files ecpg -f ecpg.lang
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/ecpg
 %attr(755,root,root) %{_libdir}/libecpg.so.*.*
@@ -1040,6 +1078,7 @@ fi
 %dir %{_pgmoduledir}/pgxs
 %attr(755,root,root) %{_pgmoduledir}/pgxs/config
 %{_pgmoduledir}/pgxs/src
+%{_mandir}/man3/SPI_*.3*
 
 %files static
 %defattr(644,root,root,755)
@@ -1080,24 +1119,21 @@ fi
 %{_mandir}/man1/vacuumdb.1*
 %{_mandir}/man7/*.7*
 
-%files module-plpgsql -f plpgsql-8.4.lang
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_pgmoduledir}/plpgsql.so
-
 %if %{with perl}
-%files module-plperl -f plperl-8.4.lang
+%files module-plperl -f plperl-%{mver}.lang
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_pgmoduledir}/plperl.so
 %endif
 
 %if %{with python}
-%files module-plpython -f plpython-8.4.lang
+%files module-plpython -f plpython-%{mver}.lang
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_pgmoduledir}/plpython.so
+%attr(755,root,root) %{_pgmoduledir}/plpython2.so
 %endif
 
 %if %{with tcl}
-%files module-pltcl -f pltcl-8.4.lang
+%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
@@ -1108,6 +1144,7 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_pgmoduledir}/dblink.so
 %{_pgsqldir}/*dblink.sql
+%{_mandir}/man3/dblink*.3*
 
 %files module-lo
 %defattr(644,root,root,755)
@@ -1136,8 +1173,9 @@ fi
 
 %files contrib
 %defattr(644,root,root,755)
-%doc contrib/README
+%doc contrib/README contrib/pldebugger/README.pl*
 %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}/pgbench
 %attr(755,root,root) %{_bindir}/vacuumlo
@@ -1155,13 +1193,19 @@ fi
 %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_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}/_int.sql
 %{_pgsqldir}/adminpack.sql
@@ -1184,8 +1228,10 @@ fi
 %{_pgsqldir}/pg_stat_statements.sql
 %{_pgsqldir}/pgrowlocks.sql
 %{_pgsqldir}/pgstattuple.sql
+%{_pgsqldir}/pldbgapi.sql
 %{_pgsqldir}/seg.sql
 %{_pgsqldir}/sslinfo.sql
+%{_pgsqldir}/unaccent.sql
 %{_pgsqldir}/uuid-ossp.sql
 %{_pgsqldir}/uninstall__int.sql
 %{_pgsqldir}/uninstall_adminpack.sql
@@ -1210,4 +1256,5 @@ fi
 %{_pgsqldir}/uninstall_pgstattuple.sql
 %{_pgsqldir}/uninstall_seg.sql
 %{_pgsqldir}/uninstall_sslinfo.sql
+%{_pgsqldir}/uninstall_unaccent.sql
 %{_pgsqldir}/uninstall_uuid-ossp.sql
This page took 0.377219 seconds and 4 git commands to generate.