[packages/postgresql: 2/3] - initial support for full pg_upgrade - exmaple: pg_upgrade -b /usr/lib64/postgresql-9.1/bin/ -B /us

zawadaa zawadaa at pld-linux.org
Tue Sep 25 12:29:38 CEST 2012


commit 9214a4d4c6913380a9e02edb10cf81acca08ee45
Author: Andrzej Zawadzki <zawadaa at pld-linux.org>
Date:   Tue Sep 25 12:22:51 2012 +0200

    - initial support for full pg_upgrade
    - exmaple:
    pg_upgrade -b /usr/lib64/postgresql-9.1/bin/ -B /usr/bin/ -d /var/lib/pgsql/data -D /var/lib/pgsql/data_new
    - I don't know is this propoer packaging - looks ugly - please review
    - NOTE: this can upgrade from 9.1 to 9.2 only!

 postgresql.spec | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 117 insertions(+), 10 deletions(-)
---
diff --git a/postgresql.spec b/postgresql.spec
index fcdccfa..c27d795 100644
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -19,6 +19,9 @@
 %define beta %{nil}
 %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
 Summary(es.UTF-8):	Gestor de Banco de Datos PostgreSQL
@@ -30,27 +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:	0.2
+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:	8c4c32a4abe8cf61b02c8366181ede50
+# Source0-md5:	c0b4799ea9850eae3ead14f0a60e9418
 Source1:	%{name}.init
 Source2:	pgsql-Database-HOWTO-html.tar.gz
 # Source2-md5:	5b656ddf1db41965761f85204a14398e
 Source3:	%{name}.sysconfig
-# http://git.postgresql.org/gitweb/?p=pldebugger.git;a=snapshot;h=eb754b6ba9a1c18e7bc4ddf521408be06768c697;sf=tgz
+# http://git.postgresql.org/gitweb/?p=pldebugger.git;a=snapshot;h=eb754b6ba9a1c18e7bc4ddf521408be06768c697;sf=tgz 
 Source4:	pldebugger-eb754b6.tar.gz
-# Source4-md5:	6a9b6576b8ccac062243dd29e58a371b
+# 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}-heimdal.patch
+Patch6:		%{name}_%{prevmver}-ac_version.patch
 URL:		http://www.postgresql.org/
 BuildRequires:	autoconf
 BuildRequires:	automake
@@ -770,8 +776,25 @@ 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
@@ -779,6 +802,16 @@ Różne moduły dołączone do PostgreSQL-a.
 %patch4 -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
 
@@ -828,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}}} \
@@ -897,8 +959,49 @@ install src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/server/
 # package it...?  nah, why bother.
 %{__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=""
@@ -979,7 +1082,6 @@ fi
 %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
 
@@ -992,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
 
@@ -1029,7 +1130,6 @@ fi
 %{_mandir}/man1/pg_standby.1.gz
 %{_mandir}/man1/pg_test_fsync.1.gz
 %{_mandir}/man1/pg_test_timing.1.gz
-%{_mandir}/man1/pg_upgrade.1.gz
 %{_mandir}/man1/pgbench.1.gz
 %{_mandir}/man1/vacuumlo.1.gz
 
@@ -1298,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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/postgresql.git/commitdiff/0515d085cb3843cae5732c73d793e62ca92586d9



More information about the pld-cvs-commit mailing list