The following OpenPKG Contribution Area operation occurred. uploaded RPM specfile "postgresql7.spec" accepted -- moved to contrib area. No action is required on your part.
Information about postgresql7.spec follows: | ## | ## postgresql7.spec -- OpenPKG RPM Specification | ## Copyright (c) 2000-2005 The OpenPKG Project <http://www.openpkg.org/> | ## Copyright (c) 2000-2005 Ralf S. Engelschall <[EMAIL PROTECTED]> | ## Copyright (c) 2000-2005 Cable & Wireless <http://www.cw.com/> | ## | ## Permission to use, copy, modify, and distribute this software for | ## any purpose with or without fee is hereby granted, provided that | ## the above copyright notice and this permission notice appear in all | ## copies. | ## | ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR | ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ## SUCH DAMAGE. | ## | | # package versions | %define V_postgresql 7.4.7 | %define V_libpqpp 4.0 | %define V_libpqxx 2.5.0 | %define V_pgperl 2.0.2 | %define V_psqlodbc 08.00.0101 | %define V_slony1 1.0.5 | %define V_pgpool 2.5.2 | | # package information | Name: postgresql7 | Summary: PostgreSQL Database | URL: http://www.postgresql.org/ | Vendor: PostgreSQL Group | Packager: The OpenPKG Project | Distribution: OpenPKG | Class: PLUS | Group: Database | License: GPL | Version: %{V_postgresql} | Release: 20050407 | | # package options | %option with_server yes | %option with_cxx no | %option with_perl no | %option with_odbc no | %option with_compat no | %option with_tcl no | %option with_slony1 no | %option with_pgpool no | | # list of sources | Source0: ftp://ftp.postgresql.org/pub/source/v%{V_postgresql}/postgresql-%{V_postgresql}.tar.bz2 | Source1: ftp://gborg.postgresql.org/pub/libpqpp/stable/libpq++-%{V_libpqpp}.tar.gz | Source2: ftp://gborg.postgresql.org/pub/libpqxx/stable/libpqxx-%{V_libpqxx}.tar.gz | Source3: ftp://gborg.postgresql.org/pub/pgperl/stable/pgperl-%{V_pgperl}.tar.gz | Source4: ftp://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-%{V_psqlodbc}.tar.gz | Source5: http://developer.postgresql.org/~wieck/slony1/download/slony1-%{V_slony1}.tar.gz | Source6: http://www2b.biglobe.ne.jp/~caco/pgpool/pgpool-%{V_pgpool}.tar.gz | Source7: rc.postgresql | Source8: pg_migrate | Patch0: postgresql7.patch | | # build information | Prefix: %{l_prefix} | BuildRoot: %{l_buildroot} | BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, flex, bison, gzip | PreReq: OpenPKG, openpkg >= 20040130 | BuildPreReq: readline, zlib, openssl, getopt | PreReq: readline, zlib, openssl, getopt | %if "%{with_perl}" == "yes" | BuildPreReq: perl, perl-openpkg >= 5.8.3-20040126 | PreReq: perl | %endif | %if "%{with_odbc}" == "yes" | BuildPreReq: unixodbc | PreReq: unixodbc | %endif | %if "%{with_tcl}" == "yes" | BuildPreReq: tcl, tcl::with_x11 = yes, X11 | PreReq: tcl, tcl::with_x11 = yes, X11 | %endif | AutoReq: no | AutoReqProv: no | Provides: postgresql = %{version} | | %description | PostgreSQL is a sophisticated Object-Relational DBMS, supporting | almost all SQL constructs, including subselects, transactions, | and user-defined types and functions. It is the most advanced | open-source database available anywhere. | | %track | prog postgresql7 = { | version = %{V_postgresql} | url = ftp://ftp.postgresql.org/pub/source/ | regex = v(7\.\d+(\.\d+)*)(?!beta) | url = ftp://ftp.postgresql.org/pub/source/v__NEWVER__/ | regex = postgresql-(\d+\.\d+(\.\d+)*)\.tar\.(?:gz|bz2) | } | prog postgresql7:libpq++ = { | version = %{V_libpqpp} | url = ftp://gborg.postgresql.org/pub/libpqpp/stable/ | regex = libpq\+\+-(__VER__)\.tar\.gz | } | prog postgresql7:libpqxx = { | version = %{V_libpqxx} | url = ftp://gborg.postgresql.org/pub/libpqxx/stable/ | regex = libpqxx-(__VER__)\.tar\.gz | } | prog postgresql7:pgperl = { | version = %{V_pgperl} | url = ftp://gborg.postgresql.org/pub/pgperl/stable/ | regex = pgperl-(__VER__)\.tar\.gz | } | prog postgresql7:psqlodbc = { | version = %{V_psqlodbc} | url = ftp://ftp.postgresql.org/pub/odbc/versions/src/ | regex = psqlodbc-(\d{2}\.\d{2}\.\d{4})\.tar\.gz | } | prog postgresql7:slony1 = { | version = %{V_slony1} | url = http://developer.postgresql.org/~wieck/slony1/download/ | regex = slony1-(__VER__)\.tar\.gz | } | prog postgresql7:pgpool = { | version = %{V_pgpool} | url = http://www2b.biglobe.ne.jp/~caco/pgpool/ | regex = pgpool-(__VER__)\.tar\.gz | } | | %prep | %setup -q -n postgresql-%{V_postgresql} | %patch -p0 | %if "%{with_cxx}" == "yes" | %setup -q -n postgresql-%{V_postgresql} -T -D -a 1 | %setup -q -n postgresql-%{V_postgresql} -T -D -a 2 | %endif | %if "%{with_perl}" == "yes" | %setup -q -n postgresql-%{V_postgresql} -T -D -a 3 | %endif | %if "%{with_odbc}" == "yes" | %setup -q -n postgresql-%{V_postgresql} -T -D -a 4 | %endif | %if "%{with_slony1}" == "yes" | %setup -q -n postgresql-%{V_postgresql} -T -D -a 5 | %endif | %if "%{with_pgpool}" == "yes" | %setup -q -n postgresql-%{V_postgresql} -T -D -a 6 | %endif | | # adjust source tree | %{l_shtool} subst \ | -e 's;\(#define.*DEFAULT_PGSOCKET_DIR[^"]*"\)/tmp\("\);\1%{l_prefix}/var/postgresql/run\2;' \ | src/include/pg_config_manual.h | %{l_shtool} subst \ | -e 's;^\(sqlmansect *=\).*$;\1 7;' \ | src/makefiles/Makefile.solaris | %{l_shtool} subst \ | -e 's;$(INSTALL_SHLIB);#$(INSTALL_SHLIB);g' \ | src/backend/utils/mb/conversion_procs/proc.mk | %{l_shtool} subst \ | -e 's;# Shared library stuff;enable_shared = yes;g' \ | src/pl/plpgsql/src/Makefile | | %build | rm -rf $RPM_BUILD_ROOT | | # configure package | CC="%{l_cc}" \ | %if "%{with_slony1}" == "yes" | CFLAGS="%{l_cflags -O} -pthread" \ | %else | CFLAGS="%{l_cflags -O}" \ | %endif | %if "%{with_tcl}" == "yes" | CPPFLAGS="%{l_cppflags readline tcl} -DOPENSSL_DISABLE_OLD_DES_SUPPORT" \ | LDFLAGS="%{l_ldflags} -L`%{l_rc} --query x11_libdir`" \ | %else | CPPFLAGS="%{l_cppflags readline} -DOPENSSL_DISABLE_OLD_DES_SUPPORT" \ | LDFLAGS="%{l_ldflags}" \ | %endif | TAR="%{l_tar}" \ | YACC="bison -y" \ | ./configure \ | --cache-file=./config.cache \ | --prefix=%{l_prefix} \ | --includedir=%{l_prefix}/include/postgresql \ | --with-openssl=%{l_prefix} \ | --with-readline \ | --with-zlib \ | %if "%{with_tcl}" == "yes" | --with-tcl \ | --with-tclconfig="%{l_prefix}/lib" \ | --with-tkconfig="%{l_prefix}/lib" \ | %endif | %if "%{with_slony1}" == "yes" | --enable-thread-safety \ | %endif | --disable-syslog \ | --disable-shared | | # build package | %{l_make} %{l_mflags} | | # build C++ bindings (both old and new one) | %if "%{with_cxx}" == "yes" | ( cd libpq++-%{V_libpqpp} | CXX="%{l_cxx}" | CFLAGS="%{l_cflags -O}" | CPPFLAGS="-DHAVE_NAMESPACE_STD -DHAVE_CXX_STRING_HEADER -DDLLIMPORT= " | CPPFLAGS="$CPPFLAGS -I. -I../src/interfaces/libpq -I../src/interfaces" | CPPFLAGS="$CPPFLAGS -I../src/include %{l_cppflags}" | LDFLAGS="%{l_ldflags}" | OBJS="pgconnection.o pgdatabase.o pgtransdb.o pgcursordb.o pglobject.o" | for o in $OBJS; do | $CXX $CFLAGS $CPPFLAGS $LDFLAGS -c -o $o `echo $o | sed -e 's;\.o$;.cc;'` | done | rm -f libpq++.a | ar rc libpq++.a $OBJS | ) || exit $? | ln -s `pwd`/src/interfaces/libpq/*.h src/include/ | ( cd libpqxx-%{V_libpqxx} | %{l_shtool} subst \ | -e 's;\(cut\)\( .*/configitems\)\( -f [0-9]\);\1\3\2;g' \ | configure | ( echo "#!/bin/sh" | echo "case \"\$1\" in" | echo " --includedir ) echo \"`pwd`/../src/include\" ;;" | echo " --libdir ) echo \"`pwd`/../src/interfaces/libpq\" ;;" | echo "esac" | ) >pg_config | chmod a+x pg_config | export PG_CONFIG=`pwd`/pg_config | export CC="%{l_cc}" | export CXX="%{l_cxx}" | export CFLAGS="%{l_cflags -O}" | export CXXFLAGS="%{l_cxxflags -O}" | export CPPFLAGS="-I`pwd`/../src/include %{l_cppflags}" | export LDFLAGS="%{l_ldflags}" | export LIBS="-lssl -lcrypto -lcrypt" | ./configure \ | --disable-shared | %{l_make} %{l_mflags -O} | ) || exit $? | %endif | | # build Perl bindings | %if "%{with_perl}" == "yes" | %{l_prefix}/bin/perl-openpkg prepare | ( cd Pg-%{V_pgperl} | export POSTGRES_INCLUDE=dummy | export POSTGRES_LIB=dummy | %{l_shtool} subst \ | -e 's;-I$POSTGRES_INCLUDE;-I../src/interfaces/libpq -I../src/include;' \ | -e 's;-L$POSTGRES_LIB;-L../src/interfaces/libpq;' \ | -e 's;-lpq;-lpq %{l_ldflags} -lssl -lcrypto -lcrypt;' \ | Makefile.PL | ) || exit $? | ( export POSTGRES_INCLUDE=dummy | export POSTGRES_LIB=dummy | %{l_prefix}/bin/perl-openpkg -d Pg-%{V_pgperl} configure build | ) || exit $? | %endif | | # build ODBC driver | %if "%{with_odbc}" == "yes" | ( cd psqlodbc-%{V_psqlodbc} | export CC="%{l_cc}" | export CXX="%{l_cxx}" | export CFLAGS="%{l_cflags -O}" | export CXXFLAGS="%{l_cxxflags -O}" | export CPPFLAGS="-I`pwd`/../src/include" | CPPFLAGS="$CPPFLAGS -I`pwd`/../src/interfaces -I`pwd`/../src/interfaces/libpq" | CPPFLAGS="$CPPFLAGS %{l_cppflags}" | export LDFLAGS="-L`pwd`/../src/interfaces/libpq %{l_ldflags}" | ./configure \ | --prefix=%{l_prefix} \ | --with-unixodbc \ | --with-odbcinst=%{l_prefix}/etc/unixodbc | %{l_make} %{l_mflags -O} | ) || exit $? | %endif | | # build Slony-1 replication engine | %if "%{with_slony1}" == "yes" | ( cd slony1-%{V_slony1} | %{l_shtool} subst \ | -e 's;-lpq;-lpq -lssl -lcrypto -lcrypt;' \ | src/slon/Makefile src/slonik/Makefile | export CC="%{l_cc}" | export CFLAGS="%{l_cflags -O}" | export CPPFLAGS="%{l_cppflags}" | ./configure \ | --prefix=%{l_prefix} \ | --with-pgsourcetree=`pwd`/.. | %{l_make} %{l_mflags -O} | ) || exit $? | %endif | | # build pgpool frontend | %if "%{with_pgpool}" == "yes" | ( cd pgpool-%{V_pgpool} | export CC="%{l_cc}" | export CFLAGS="%{l_cflags -O} %{l_cppflags}" | export LDFLAGS="%{l_ldflags}" | export LIBS="-lgetopt" | ./configure \ | --prefix=%{l_prefix} \ | --sysconfdir=%{l_prefix}/etc/postgresql \ | --with-pgsrc=/dummy | %{l_make} %{l_mflags} | ) || exit $? | %endif | | %install | rm -rf $RPM_BUILD_ROOT | | # perform standard installation procedure | cp /dev/null register.txt | %{l_make} %{l_mflags} install install-all-headers DESTDIR=$RPM_BUILD_ROOT | | # strip down installation | rm -rf $RPM_BUILD_ROOT%{l_prefix}/doc | strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pgaccess.1 | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pgtclsh.1 | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pgtksh.1 | | # namespace adjustments to installation | for prog in \ | createdb createlang createuser dropdb droplang clusterdb \ | dropuser initdb initlocation ipcclean vacuumdb; do | %if "%{with_compat}" == "yes" | cmd="ln" | %else | cmd="mv" | %endif | $cmd $RPM_BUILD_ROOT%{l_prefix}/bin/$prog \ | $RPM_BUILD_ROOT%{l_prefix}/bin/pg_$prog | $cmd $RPM_BUILD_ROOT%{l_prefix}/man/man1/$prog.1 \ | $RPM_BUILD_ROOT%{l_prefix}/man/man1/pg_$prog.1 | done | ( cd $RPM_BUILD_ROOT%{l_prefix}/man/man7 | for man in *.7; do | mv $man pg_$man | done | ) || exit $? | | # create additional directories | %{l_shtool} mkdir -f -p -m 755 \ | $RPM_BUILD_ROOT%{l_prefix}/etc/postgresql \ | $RPM_BUILD_ROOT%{l_prefix}/var/postgresql/db \ | $RPM_BUILD_ROOT%{l_prefix}/var/postgresql/run | | # install migration utility | %if "%{with_compat}" == "yes" | l_pguser="postgres" | l_pgpass="postgres" | %else | l_pguser="postgresql" | l_pgpass="postgresql" | %endif | %{l_shtool} install -c -m 755 %{l_value -s -a} \ | -e "s;@l_pguser@;${l_pguser};g" \ | -e "s;@l_pgpass@;${l_pgpass};g" \ | %{SOURCE pg_migrate} \ | $RPM_BUILD_ROOT%{l_prefix}/bin/ | | # install C++ bindings (both old and new one) | %if "%{with_cxx}" == "yes" | ( cd libpq++-%{V_libpqpp} | %{l_shtool} mkdir -f -p -m 755 \ | $RPM_BUILD_ROOT%{l_prefix}/include/libpq++ | %{l_shtool} install -c -m 644 \ | libpq++.h pgconnection.h pgdatabase.h pgtransdb.h pgcursordb.h pglobject.h \ | $RPM_BUILD_ROOT%{l_prefix}/include/libpq++/ | %{l_shtool} install -c -m 644 \ | libpq++.a \ | $RPM_BUILD_ROOT%{l_prefix}/lib/ | ) || exit $? | ( cd libpqxx-%{V_libpqxx} | %{l_shtool} mkdir -f -p -m 755 \ | $RPM_BUILD_ROOT%{l_prefix}/include/pqxx | %{l_shtool} install -c -m 644 \ | include/pqxx/*.h \ | $RPM_BUILD_ROOT%{l_prefix}/include/pqxx/ | %{l_shtool} install -c -m 644 \ | src/.libs/libpqxx.a \ | $RPM_BUILD_ROOT%{l_prefix}/lib/ | ) || exit $? | %endif | | # install Perl binding | %if "%{with_perl}" == "yes" | ( export POSTGRES_INCLUDE=dummy | export POSTGRES_LIB=dummy | %{l_prefix}/bin/perl-openpkg -d Pg-%{V_pgperl} install | ) || exit $? | %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup | %else | >perl-openpkg-files | %endif | | # install ODBC driver | %if "%{with_odbc}" == "yes" | ( cd psqlodbc-%{V_psqlodbc} | %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" | ) || exit $? | %endif | | # install Slony-1 replication engine | %if "%{with_slony1}" == "yes" | ( cd slony1-%{V_slony1} | %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT | rm -f $RPM_BUILD_ROOT%{l_prefix}/share/postgresql/slony1*v7[34].sql | rm -f $RPM_BUILD_ROOT%{l_prefix}/share/postgresql/xxid.v73.sql | mv $RPM_BUILD_ROOT%{l_prefix}/share/postgresql/xxid.v74.sql \ | $RPM_BUILD_ROOT%{l_prefix}/share/postgresql/xxid.sql | ( echo "# Slony-1 configuration for replication engine slon(1)" | echo "SLON_CLUSTER_NAME=\"example\"" | echo "SLON_CONNECT_DBNAME=\"example\"" | echo "SLON_CONNECT_USER=\"postgresql\"" | echo "SLON_CONNECT_PASS=\"postgresql\"" | echo "SLON_CONNECT_HOST=\"localhost\"" | echo "SLON_SYNC_INTERVAL=\"10000\"" | echo "SLON_SYNC_TIMEOUT=\"60000\"" | echo "SLON_SYNC_GROUPSIZE=\"6\"" | echo "SLON_SYNC_LOGLEVEL=\"1\"" | ) >$RPM_BUILD_ROOT%{l_prefix}/etc/postgresql/slony1.conf | ) || exit $? | %endif | | # install pgpool frontend | %if "%{with_pgpool}" == "yes" | ( cd pgpool-%{V_pgpool} | %{l_shtool} install -c -s -m 755 \ | pgpool $RPM_BUILD_ROOT%{l_prefix}/bin/ | %{l_shtool} install -c -m 644 \ | -e "s;\(socket_dir = \).*;\1'%{l_prefix}/var/postgresql/run';" \ | -e "s;\(backend_socket_dir = \).*;\1'%{l_prefix}/var/postgresql/run';" \ | -e "s;\(logdir = \).*;\1'%{l_prefix}/var/postgresql/run';" \ | pgpool.conf.sample $RPM_BUILD_ROOT%{l_prefix}/etc/postgresql/pgpool.conf | ) || exit $? | %endif | | # install run-command script | %{l_shtool} mkdir -f -p -m 755 \ | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d | %{l_shtool} install -c -m 755 %{l_value -s -a} \ | %{SOURCE rc.postgresql} \ | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ | | # optionally strip down to client-only installation | %if "%{with_server}" != "yes" | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/pg_[a-bd-z]* | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/pg_c[a-np-z]* | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/pg_controldata | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/post* | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pg_[a-bd-z]* | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pg_c[a-np-z]* | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/pg_controldata.1 | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/post* | rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d | rm -rf $RPM_BUILD_ROOT%{l_prefix}/include/postgresql/server | rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/postgresql | rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/postgresql | rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/postgresql | %endif | | # determine installation files | %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ | %if "%{with_server}" == "yes" | %{l_files_std} `cat perl-openpkg-files` \ | '%config %{l_prefix}/etc/postgresql/*' \ | '%attr(700,%{l_rusr},%{l_rgrp}) %dir %{l_prefix}/var/postgresql/db' \ | '%attr(755,%{l_rusr},%{l_rgrp}) %dir %{l_prefix}/var/postgresql/run' \ | '%config %{l_prefix}/var/postgresql/db/*.conf' | %else | %{l_files_std} `cat perl-openpkg-files` | %endif | | %files -f files | | %clean | rm -rf $RPM_BUILD_ROOT | | %pre | %if "%{with_server}" == "yes" | # before upgrade, check migration dump, save status and stop service | [ $1 -eq 2 ] || exit 0 | if [ -f $RPM_INSTALL_PREFIX/var/postgresql/db/PG_VERSION -a \ | -f $RPM_INSTALL_PREFIX/bin/pg_migrate ]; then | # database migration dumping hint | v_old_all=`cat $RPM_INSTALL_PREFIX/var/postgresql/db/PG_VERSION` | v_old_maj=`echo "$v_old_all" | sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'` | v_new_all="%{V_postgresql}" | v_new_maj=`echo "$v_new_all" | sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'` | if [ ".$v_old_maj" != ".$v_new_maj" ]; then | if [ ! -f $RPM_INSTALL_PREFIX/var/postgresql/db.dump.sql.bz2 -a ".$RPM_POSTGRESQL_MIGRATE" != .ignore ]; then | ( echo "You are upgrading from PostgreSQL $v_old_all to PostgresSQL $v_new_all," | echo "which is a major version change. We expect a database incompatibility," | echo "so we strongly recommend that you backup your existing database" | echo "($RPM_INSTALL_PREFIX/var/postgresql/db/) first by running:" | echo " \$ $RPM_INSTALL_PREFIX/bin/pg_migrate dump" | echo "If this fails for some reasons, try to dump your data manually:" | echo " \$ $RPM_INSTALL_PREFIX/bin/pg_dumpall -U postgresql -o | \\ " | echo " $RPM_INSTALL_PREFIX/lib/openpkg/bzip2 -9 \\ " | echo " >$RPM_INSTALL_PREFIX/var/postgresql/db.dump.sql.bz2" | echo "Alternatively, if you want to force this package to be installed without" | echo "performing a database dump, run the following command before upgrading:" | echo " \$ RPM_POSTGRESQL_MIGRATE=ignore; export RPM_POSTGRESQL_MIGRATE" | ) | %{l_rpmtool} msg -b -t error | exit 1 | fi | fi | fi | eval `%{l_rc} postgresql status 2>/dev/null | tee %{l_tmpfile}` | %{l_rc} postgresql stop 2>/dev/null | exit 0 | %endif | | %post | %if "%{with_server}" == "yes" | if [ $1 -eq 1 ]; then | # create initial database | %if "%{with_compat}" == "yes" | l_pguser="postgres" | l_pgpass="postgres" | %else | l_pguser="postgresql" | l_pgpass="postgresql" | %endif | su - %{l_rusr} -c \ | "LC_CTYPE=C; export LC_CTYPE; umask 022; \ | (echo $l_pguser; echo $l_pgpass) |\ | $RPM_INSTALL_PREFIX/bin/pg_initdb \ | -U $l_pguser -W -D $RPM_INSTALL_PREFIX/var/postgresql/db" 2>&1 |\ | $RPM_INSTALL_PREFIX/lib/openpkg/shtool prop \ | -p "Creating initial PostgreSQL DB in $RPM_INSTALL_PREFIX/var/postgresql/db" | | # adjust initial authentication configuration | cp $RPM_INSTALL_PREFIX/var/postgresql/db/pg_hba.conf \ | $RPM_INSTALL_PREFIX/var/postgresql/db/pg_hba.conf.old | ( cat $RPM_INSTALL_PREFIX/var/postgresql/db/pg_hba.conf.old |\ | sed -e 's;^\([^#]\);# \1;' -e 's;^$;#;' | echo "" | echo "# OpenPKG PostgreSQL default access policy" | echo "local all all md5" | echo "host all all 127.0.0.1 255.255.255.255 md5" | echo "" | ) >$RPM_INSTALL_PREFIX/var/postgresql/db/pg_hba.conf | rm -f $RPM_INSTALL_PREFIX/var/postgresql/db/pg_hba.conf.old | | # display information about next steps | ( echo "An initial PostgreSQL DB was created with the two standard" | echo "databases 'template0' and 'template1'. The owner of both" | echo "is the DB user '$l_pguser'. Its initial password is '$l_pgpass'." | echo "After starting PostgreSQL you should change this as soon as" | echo "possible with the following command:" | echo "\$ $RPM_INSTALL_PREFIX/bin/psql -U $l_pguser -d template1 \\" | echo " -c \"ALTER USER $l_pguser WITH PASSWORD '<new-password>'\"" | ) | %{l_rpmtool} msg -b -t notice | | # optionally link into unixODBC | %if "%{with_odbc}" == "yes" | ( echo "[PostgreSQL]" | echo "Description = PostgreSQL ODBC driver" | echo "Driver = $RPM_INSTALL_PREFIX/lib/psqlodbc.so" | echo "Threading = 2" | ) | $RPM_INSTALL_PREFIX/bin/odbcinst -i -d -r | %endif | fi | if [ $1 -eq 2 ]; then | # after upgrade, restore status | { eval `cat %{l_tmpfile}`; rm -f %{l_tmpfile}; true; } >/dev/null 2>&1 | [ ".$postgresql_active" = .yes ] && %{l_rc} postgresql start | if [ -f $RPM_INSTALL_PREFIX/var/postgresql/db/PG_VERSION -a ".$PG_MIGRATE" != .ignore ]; then | # database migration restoring hint | v_old_all=`cat $RPM_INSTALL_PREFIX/var/postgresql/db/PG_VERSION` | v_old_maj=`echo "$v_old_all" | sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'` | v_new_all="%{V_postgresql}" | v_new_maj=`echo "$v_new_all" | sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'` | if [ ".$v_old_maj" != ".$v_new_maj" ]; then | ( echo "You upgraded from PostgreSQL $v_old_all to PostgresSQL $v_new_all," | echo "which is a major version upgrade. We expect a database incompatibility," | echo "so we strongly recommend you to recreate the existing database under" | echo "$RPM_INSTALL_PREFIX/var/postgresql/db/ by running the following command:" | echo " \$ $RPM_INSTALL_PREFIX/bin/pg_migrate restore" | echo "If this fails for some reasons, try to restore your data manually:" | echo " \$ $RPM_INSTALL_PREFIX/lib/openpkg/bzip2 -d -c \\ " | echo " $RPM_INSTALL_PREFIX/var/postgresql/db.dump.sql.bz2 | \\ " | echo " $RPM_INSTALL_PREFIX/bin/psql -U postgresql -d template1" | ) | %{l_rpmtool} msg -b -t warn | fi | fi | fi | exit 0 | %endif | | %preun | %if "%{with_server}" == "yes" | # before erase, stop service and remove log files | [ $1 -eq 0 ] || exit 0 | %{l_rc} postgresql stop 2>/dev/null | rm -f $RPM_INSTALL_PREFIX/var/postgresql/run/* >/dev/null 2>&1 || true | exit 0 | %endif ______________________________________________________________________ The OpenPKG Project www.openpkg.org Developer Communication List openpkg-dev@openpkg.org