Security Fix. Fixes #8905
authorRyan Phillips <rphillips@gentoo.org>
Tue, 8 Oct 2002 23:56:35 +0000 (23:56 +0000)
committerRyan Phillips <rphillips@gentoo.org>
Tue, 8 Oct 2002 23:56:35 +0000 (23:56 +0000)
dev-db/postgresql/ChangeLog
dev-db/postgresql/files/7.2.3/postgresql [new file with mode: 0644]
dev-db/postgresql/files/digest-postgresql-7.2.3 [new file with mode: 0644]
dev-db/postgresql/files/postgresql-7.2.3-dyn-libperl-gentoo.diff [new file with mode: 0644]
dev-db/postgresql/postgresql-7.2.3.ebuild [new file with mode: 0644]

index fcf9ccfdacb5736a4a283bc45226d26f1eb28156..5720856336ae70dee46e7014990040550308dc3c 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for dev-db/postgresql
 # Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/ChangeLog,v 1.34 2002/09/25 20:23:52 rphillips Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/ChangeLog,v 1.35 2002/10/08 23:56:35 rphillips Exp $
+
+*postgresql-7.2.3 (08 Oct 2002)
+
+  08 Oct 2002; Ryan Phillips <rphillips@gentoo.org> postgresql-7.2.3.ebuild :
+
+  *Security Fix*.  Submitted by Richard C.  Bug #8905
+  removed libperl-gentoo.diff patch, causing sandbox errors
 
 *postgresql-7.2.2 (26 Aug 2002)
 
diff --git a/dev-db/postgresql/files/7.2.3/postgresql b/dev-db/postgresql/files/7.2.3/postgresql
new file mode 100644 (file)
index 0000000..0129b56
--- /dev/null
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# /space/gentoo/cvsroot/gentoo-x86/dev-db/mysql/files/mysql.rc6,v 1.1 2002/01/06 00:53:24 woodchip Exp
+
+depend() {
+       need net
+}
+
+start()        {
+       ebegin "Starting postgres"
+       start-stop-daemon  --start --quiet --background --chuid postgres --exec \
+               /usr/bin/postmaster -- -D/var/lib/postgresql/data -N 1024 -B 2048
+       eend $?
+}
+
+stop ()        {
+       ebegin "Stopping postgres"
+       start-stop-daemon --stop --quiet --pidfile=/var/lib/postgresql/data/postmaster.pid
+       eend $?
+}
diff --git a/dev-db/postgresql/files/digest-postgresql-7.2.3 b/dev-db/postgresql/files/digest-postgresql-7.2.3
new file mode 100644 (file)
index 0000000..aad9278
--- /dev/null
@@ -0,0 +1 @@
+MD5 cf665c93a08a60e4a99db3a6dfe7ba10 postgresql-7.2.3.tar.gz 9244039
diff --git a/dev-db/postgresql/files/postgresql-7.2.3-dyn-libperl-gentoo.diff b/dev-db/postgresql/files/postgresql-7.2.3-dyn-libperl-gentoo.diff
new file mode 100644 (file)
index 0000000..6b6b57a
--- /dev/null
@@ -0,0 +1,39 @@
+--- postgresql-7.2/src/pl/plperl/Makefile.PL_orig      2002-02-15 16:59:00.000000000 +0100
++++ postgresql-7.2/src/pl/plperl/Makefile.PL   2002-02-15 16:59:23.000000000 +0100
+@@ -3,36 +3,6 @@
+ use DynaLoader;
+ use Config;
+ 
+-# On some platforms you can't build plperl unless libperl is a shared
+-# library.  (Actually, it would be enough if code in libperl.a is
+-# compiled to be position-independent, but that is hard to check for
+-# and seems pretty unlikely anyway.)  On some platforms it doesn't
+-# matter and they can pass in the --force flag to build anyway.
+-# (Having a shared libperl is still a lot better for efficiency,
+-# though.)
+-
+-if ($Config{'useshrplib'} ne 'true' && $ARGV[0] ne '--force') {
+-      open(OUT, ">Makefile") or die "Can't write Makefile: $!\n";
+-      print OUT <<'EndOfMakefile';
+-# Dummy Makefile for use when we can't build plperl
+-
+-all:
+-      @echo ""; \
+-       echo "*** Cannot build PL/Perl because libperl is not a shared library." ; \
+-       echo "*** You might have to rebuild your Perl installation.  Refer to"; \
+-       echo "*** the documentation for details."; \
+-       echo ""
+-
+-install:
+-
+-clean realclean:
+-      rm -f Makefile
+-
+-EndOfMakefile
+-      close(OUT);
+-      exit(0);
+-}
+-
+ my $ldopts=ldopts();
+ $ldopts=~s/$Config{ccdlflags}//;
+ 
diff --git a/dev-db/postgresql/postgresql-7.2.3.ebuild b/dev-db/postgresql/postgresql-7.2.3.ebuild
new file mode 100644 (file)
index 0000000..a4c1cd3
--- /dev/null
@@ -0,0 +1,160 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql/postgresql-7.2.3.ebuild,v 1.1 2002/10/08 23:56:35 rphillips Exp $
+
+IUSE="ssl nls java python tcltk perl"
+
+S=${WORKDIR}/${P}
+DESCRIPTION="PostgreSQL is a sophisticated Object-Relational DBMS"
+SRC_URI="ftp://ftp.easynet.be/postgresql/v${PV}/${P}.tar.gz"
+HOMEPAGE="http://www.postgresql.org"
+LICENSE="POSTGRESQL"
+KEYWORDS="x86 ppc"
+SLOT="0"
+
+DEPEND="virtual/glibc
+               sys-devel/autoconf
+               app-admin/sudo
+               >=sys-libs/readline-4.1
+               >=sys-libs/ncurses-5.2
+               >=sys-libs/zlib-1.1.3
+               tcltk? ( >=dev-lang/tcl-8 >=dev-lang/tk-8.3.3-r1 )
+               perl? ( >=sys-devel/perl-5.6.1-r2 )
+               python? ( >=dev-lang/python-2.2 )
+               java? ( =virtual/jdk-1.3* >=dev-java/ant-1.3 ) 
+               ssl? ( >=dev-libs/openssl-0.9.6-r1 )
+               nls? ( sys-devel/gettext )"
+# java dep workaround for portage bug
+# x86? ( java? ( =virtual/jdk-1.3* >=dev-java/ant-1.3 ) )
+
+RDEPEND="virtual/glibc
+               >=sys-libs/zlib-1.1.3
+               tcltk? ( >=dev-lang/tcl-8 )
+               perl? ( >=sys-devel/perl-5.6.1-r2 )
+               python? ( >=dev-lang/python-2.2 )
+               java? ( =virtual/jdk-1.3* )
+               ssl? ( >=dev-libs/openssl-0.9.6-r1 )"
+
+SLOT="0"
+
+pkg_setup() {
+       local foo
+       if [ "`use java`" ] ; then
+               foo=`java-config --java-version 2>&1 | grep "1.4.0"`
+               if [ ! -z "$foo" ] ; then
+                       einfo "Cannot build with Sun JDK 1.4.0, use any of the 1.3.x JDKs instead."
+                       exit 1
+               fi
+       fi
+}
+
+src_unpack() {
+       unpack ${A}
+
+       cd ${S}
+       # we know that a shared libperl is present, the default perl
+       # config is however set to the static libperl.a
+       # just remove the check
+       patch -p1 < ${FILESDIR}/${P}-dyn-libperl-gentoo.diff || die
+#      patch -p0 < ${FILESDIR}/${P}-perl-gentoo.diff || die
+
+       # cp ${FILESDIR}/${P}-build.xml ${S}/src/interfaces/jdbc/build.xml
+}
+
+src_compile() {
+       local myconf
+       use tcltk && myconf="--with-tcl"
+       use python && myconf="$myconf --with-python"
+       use perl && myconf="$myconf --with-perl"
+       use java && myconf="$myconf --with-java"
+       use ssl && myconf="$myconf --with-openssl"
+       use nls && myconf="$myconf --enable-locale --enable-nls --enable-multibyte"
+       use libg++ && myconf="$myconf --with-CXX"
+
+       ./configure --prefix=/usr \
+               --mandir=/usr/share/man \
+               --host=${CHOST} \
+               --docdir=/usr/share/doc/${P} \
+               --libdir=/usr/lib \
+               --enable-syslog \
+               --enable-depend \
+               --with-gnu-ld \
+               --with-pam \
+               --with-maxbackends=1024 \
+               $myconf || die
+
+
+       make || die
+}
+
+pkg_preinst() {
+       if ! groupmod postgres ; then
+               groupadd -g 70 postgres || die "problem adding group postgres"
+       fi
+
+       if ! id postgres; then
+               useradd -g postgres -s /bin/bash -d /var/lib/postgresql -c "postgres" postgres
+               assert "problem adding user postgres"
+       fi
+}
+
+src_install () {
+
+       if [ "`use perl`" ]
+       then
+               mv ${S}/src/pl/plperl/Makefile ${S}/src/pl/plperl/Makefile_orig
+               sed -e "s:(INST_DYNAMIC) /usr/lib:(INST_DYNAMIC) ${D}/usr/lib:" \
+                       ${S}/src/pl/plperl/Makefile_orig > ${S}/src/pl/plperl/Makefile
+               mv ${S}/src/pl/plperl/GNUmakefile ${S}/src/pl/plperl/GNUmakefile_orig
+               sed -e "s:\$(DESTDIR)\$(plperl_installdir):\$(plperl_installdir):" \
+                       ${S}/src/pl/plperl/GNUmakefile_orig > ${S}/src/pl/plperl/GNUmakefile
+       fi
+
+       make DESTDIR=${D} LIBDIR=${D}/usr/lib install || die
+       make DESTDIR=${D} install-all-headers || die
+       dodoc COPYRIGHT HISTORY INSTALL README register.txt
+       cd ${S}/doc
+       dodoc FAQ* KNOWN_BUGS MISSING_FEATURES README*
+       dodoc TODO internals.ps bug.template
+       docinto sgml
+       dodoc src/sgml/*.{sgml,dsl}
+       docinto sgml/ref
+       dodoc src/sgml/ref/*.sgml
+       docinto sgml/graphics
+       dodoc src/graphics/*
+       rm -rf ${D}/usr/doc ${D}/mnt
+       exeinto /usr/bin
+       
+       if [ `use java` ]; then
+               dojar ${D}/usr/share/postgresql/java/postgresql.jar
+               rm ${D}/usr/share/postgresql/java/postgresql.jar
+       fi
+
+       dodir /usr/include/postgresql/pgsql
+       cp ${D}/usr/include/*.h ${D}/usr/include/postgresql/pgsql
+
+       exeinto /etc/init.d/
+       doexe ${FILESDIR}/${PV}/${PN}
+}
+
+pkg_postinst() {
+       einfo ">>> Execute the following command"
+       einfo ">>> ebuild  /var/db/pkg/dev-db/${P}/${P}.ebuild config"
+       einfo ">>> to setup the initial database environment."
+}
+
+
+pkg_config() {
+       einfo ">>> Creating data directory ..."
+       mkdir -p /var/lib/postgresql/data
+       chown -Rf postgres.postgres /var/lib/postgresql
+       chmod 700 /var/lib/postgresql/data
+
+       einfo ">>> Initializing the database ..."
+       if [ -f /var/lib/postgresql/data/PG_VERSION ] ; then
+               echo -n "A postgres data directory already exists from version "; cat /var/lib/postgresql/data/PG_VERSION
+               echo "Read the documentation to check how to upgrade to version ${PV}."
+       else
+               sudo -u postgres /usr/bin/initdb --pgdata /var/lib/postgresql/data
+       fi
+}