X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=postgresql.spec;h=81080c954d32ede61429f5b8e6a0aba7912771cd;hb=207b00f92fd998f49181a78d20a5d1eb1c4ee60c;hp=528e97079d346a881502f5500ecdca9c579f6151;hpb=7ffbbeeb802c2524904194f33575b3636b817cb0;p=packages%2Fpostgresql.git diff --git a/postgresql.spec b/postgresql.spec index 528e970..81080c9 100644 --- a/postgresql.spec +++ b/postgresql.spec @@ -1,7 +1,9 @@ # 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: @@ -17,7 +19,7 @@ # %define beta %{nil} -%define mver 9.1 +%define mver 9.4 Summary: PostgreSQL Data Base Management System Summary(de.UTF-8): PostgreSQL Datenbankverwaltungssystem @@ -30,27 +32,26 @@ Summary(tr.UTF-8): Veri Tabanı Yönetim Sistemi Summary(uk.UTF-8): PostgreSQL - система керування базами даних Summary(zh_CN.UTF-8): PostgreSQL 客户端程序和库文件 Name: postgresql -Version: %{mver}.3 +Version: %{mver}.5 Release: 1 License: BSD Group: Applications/Databases Source0: ftp://ftp.postgresql.org/pub/source/v%{version}/%{name}-%{version}.tar.bz2 -# Source0-md5: 641e1915f7ebfdc9f138e4c55b6aec0e +# Source0-md5: 8b2e3472a8dc786649b4d02d02e039a0 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 +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 @@ -60,11 +61,12 @@ BuildRequires: docbook-dtd42-sgml BuildRequires: docbook-dtd42-xml BuildRequires: docbook-style-xsl BuildRequires: flex >= 2.5.31 -BuildRequires: gettext-devel +BuildRequires: gettext-tools +BuildRequires: gnome-doc-tools %{?with_kerberos5:BuildRequires: heimdal-devel} -%{?with_selinux:BuildRequires: libselinux-devel >= 2.0.93} +%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.10} BuildRequires: libtool -BuildRequires: libxml2-devel >= 2.6.23 +BuildRequires: libxml2-devel >= 1:2.6.23 BuildRequires: libxslt-devel BuildRequires: libxslt-progs BuildRequires: ncurses-devel >= 5.0 @@ -79,7 +81,7 @@ BuildRequires: python-devel >= 1:2.3 BuildRequires: python-modules >= 1:2.3 %endif BuildRequires: readline-devel >= 4.2 -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpmbuild(macros) >= 1.671 %{?with_tcl:BuildRequires: tcl-devel >= 8.4.3} %{?with_tests:BuildRequires: tzdata} BuildRequires: zlib-devel @@ -90,9 +92,10 @@ 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}-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 @@ -106,9 +109,9 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _ulibdir /usr/lib # omitted contribs: -# dummy_seclabel, pg_test_fsync, spi and test_parser - examples/tests +# 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_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 +%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, @@ -332,20 +335,6 @@ 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 -Conflicts: syslog-ng < 3.2.4-1 - -%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 @@ -722,7 +711,7 @@ 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 +Requires: libselinux >= 2.1.10 %description module-sepgsql PostgreSQL external security provider using SELinux. @@ -747,6 +736,7 @@ 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 @@ -778,8 +768,7 @@ Różne moduły dołączone do PostgreSQL-a. %patch3 -p1 %patch4 -p1 %patch5 -p1 - -tar xzf %{SOURCE4} -C contrib +%patch6 -p1 # force rebuild of bison/flex files find src -name \*.l -o -name \*.y | xargs touch @@ -790,6 +779,7 @@ find src -name \*.l -o -name \*.y | xargs touch %build %{__aclocal} -I config %{__autoconf} +%{__autoheader} %configure \ CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \ --disable-rpath \ @@ -799,7 +789,6 @@ find src -name \*.l -o -name \*.y | xargs touch --enable-nls \ --enable-thread-safety \ %{?with_kerberos5:--with-gssapi} \ - %{?with_kerberos5:--with-krb5} \ %{?with_ldap:--with-ldap} \ --with-openssl \ --with-pam \ @@ -809,7 +798,7 @@ find src -name \*.l -o -name \*.y | xargs touch %{?with_python:--with-python} \ %{?with_selinux:--with-selinux} \ %{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \ - --with-ossp-uuid \ + --with-uuid=ossp %{__make} @@ -829,10 +818,11 @@ done %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,init/%{name}}} \ +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} @@ -857,8 +847,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 %{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 @@ -887,13 +878,15 @@ cat ecpg-%{mver}.lang ecpglib6-%{mver}.lang > ecpg.lang 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/ +# 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 @@ -911,7 +904,7 @@ fi 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) != '%{mver}' ]; then echo "Found database(s) in older, incompatible format in cluster $pgdir." foundold=1 fi @@ -948,18 +941,43 @@ 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 -%post upstart -%upstart_post postgresql +%postun +%systemd_reload -%postun upstart -%upstart_postun postgresql +%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 @@ -972,12 +990,18 @@ fi %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 @@ -1009,6 +1033,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 @@ -1018,17 +1044,11 @@ fi %{_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* -%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/src/sgml/html howto @@ -1039,7 +1059,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) @@ -1058,6 +1077,9 @@ fi %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) @@ -1067,6 +1089,7 @@ fi %{_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 @@ -1078,6 +1101,7 @@ fi %{_includedir}/postgresql/internal/pqexpbuffer.h %{_includedir}/postgresql/internal/libpq %{_includedir}/libpq +%{_pkgconfigdir}/libpq.pc %{_mandir}/man1/pg_config.1* %files backend-devel @@ -1093,6 +1117,7 @@ fi %{_libdir}/libecpg.a %{_libdir}/libecpg_compat.a %{_libdir}/libpq.a +%{_libdir}/libpgcommon.a %{_libdir}/libpgtypes.a %{_libdir}/libpgport.a @@ -1107,6 +1132,7 @@ fi %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 @@ -1121,7 +1147,9 @@ fi %{_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* @@ -1180,10 +1208,12 @@ fi %{_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) @@ -1199,10 +1229,11 @@ fi %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}/pg_xlogdump %attr(755,root,root) %{_bindir}/pgbench %attr(755,root,root) %{_bindir}/vacuumlo %attr(755,root,root) %{_pgmoduledir}/_int.so @@ -1224,15 +1255,14 @@ fi %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}/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}/postgres_fdw.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}/tcn.so %attr(755,root,root) %{_pgmoduledir}/unaccent.so %attr(755,root,root) %{_pgmoduledir}/uuid-ossp.so %{_pgsqldir}/adminpack--*.sql @@ -1256,7 +1286,6 @@ fi %{_pgsqldir}/file_fdw--*.sql %{_pgsqldir}/file_fdw.control %{_pgsqldir}/fuzzystrmatch--*.sql -%{_pgsqldir}/fuzzystrmatch--*.sql %{_pgsqldir}/fuzzystrmatch.control %{_pgsqldir}/hstore--*.sql %{_pgsqldir}/hstore.control @@ -1274,18 +1303,29 @@ fi %{_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}/pldbgapi.sql +%{_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*