summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Peterson <lavajoe@gentoo.org>2008-11-08 19:48:07 +0000
committerJoe Peterson <lavajoe@gentoo.org>2008-11-08 19:48:07 +0000
commit3610d5684d2bebb7c1a6661a3051d34c258954f8 (patch)
treebc11acd40e88cb87092332de03e7ceef3850643e /media-gfx/povray
parentKeyworded on alpha, bug #238598 (diff)
downloadgentoo-2-3610d5684d2bebb7c1a6661a3051d34c258954f8.tar.gz
gentoo-2-3610d5684d2bebb7c1a6661a3051d34c258954f8.tar.bz2
gentoo-2-3610d5684d2bebb7c1a6661a3051d34c258954f8.zip
Fix 3.6.1 to not use any bundled static libs and to correctly detect system lib versions, like libpng (bug #153538)
(Portage version: 2.2_rc13/cvs/Linux 2.6.27-gentoo-r2 i686)
Diffstat (limited to 'media-gfx/povray')
-rw-r--r--media-gfx/povray/ChangeLog9
-rw-r--r--media-gfx/povray/files/povray-3.6.1-use-system-libpng.patch51
-rw-r--r--media-gfx/povray/povray-3.6.1-r4.ebuild90
3 files changed, 149 insertions, 1 deletions
diff --git a/media-gfx/povray/ChangeLog b/media-gfx/povray/ChangeLog
index 5dad9f02311f..ae367f0abaf7 100644
--- a/media-gfx/povray/ChangeLog
+++ b/media-gfx/povray/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-gfx/povray
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/povray/ChangeLog,v 1.79 2008/11/08 15:45:55 nixnut Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/povray/ChangeLog,v 1.80 2008/11/08 19:48:07 lavajoe Exp $
+
+*povray-3.6.1-r4 (08 Nov 2008)
+
+ 08 Nov 2008; Joe Peterson <lavajoe@gentoo.org>
+ +files/povray-3.6.1-use-system-libpng.patch, +povray-3.6.1-r4.ebuild:
+ Fix 3.6.1 to not use any bundled static libs and to correctly detect
+ system lib versions, like libpng (bug #153538)
08 Nov 2008; nixnut <nixnut@gentoo.org> povray-3.6.1-r3.ebuild:
Stable on ppc wrt bug 245981
diff --git a/media-gfx/povray/files/povray-3.6.1-use-system-libpng.patch b/media-gfx/povray/files/povray-3.6.1-use-system-libpng.patch
new file mode 100644
index 000000000000..365ee370f0d0
--- /dev/null
+++ b/media-gfx/povray/files/povray-3.6.1-use-system-libpng.patch
@@ -0,0 +1,51 @@
+--- povray-3.6.1/acinclude.m4~ 2004-08-03 00:16:14.000000000 +0100
++++ povray-3.6.1/acinclude.m4 2006-11-15 15:29:33.000000000 +0000
+@@ -353,13 +353,36 @@
+ [
+ AC_LANG_SOURCE(
+ [#include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include "$5"
+ int main (void)
+ {
+ const char *version = $6;
++ char wanted[[]] = "$2";
++ char *version_tok, *wanted_tok = wanted;
++ char *version_tmp, *wanted_tmp;
+ fprintf (stderr, "%s\n", version);
+- return ! (strcmp (version ? version : "", "$2") >= 0);
++ if (!version) return EXIT_FAILURE;
++ version_tok = strdup(version);
++ for (version_tok = strtok_r(version_tok, ".", &version_tmp),
++ wanted_tok = strtok_r(wanted_tok, ".", &wanted_tmp);
++ version_tok != NULL && wanted_tok != NULL;
++ version_tok = strtok_r(NULL, ".", &version_tmp),
++ wanted_tok = strtok_r(NULL, ".", &wanted_tmp)) {
++ char *version_endptr, *wanted_endptr;
++ unsigned long version_bit = strtoul(version_tok, &version_endptr, 10);
++ unsigned long wanted_bit = strtoul(wanted_tok, &wanted_endptr, 10);
++ if (version_bit < wanted_bit)
++ return EXIT_FAILURE;
++ if (version_bit > wanted_bit)
++ return EXIT_SUCCESS;
++ if (strcmp(version_endptr, wanted_endptr) > 0)
++ return EXIT_SUCCESS;
++ if (strcmp(version_endptr, wanted_endptr) < 0)
++ return EXIT_FAILURE;
++ }
++ return wanted_tok == NULL ? EXIT_SUCCESS : EXIT_FAILURE;
+ }]
+ )
+ ],
+--- povray-3.6.1/source/png_pov.cpp~ 2004-08-03 00:11:37.000000000 +0100
++++ povray-3.6.1/source/png_pov.cpp 2006-11-15 16:48:33.000000000 +0000
+@@ -782,7 +782,7 @@
+ {
+ // finished prematurely - trick into thinking done
+ png_ptr->num_rows = png_ptr->row_number;
+- png_write_finish_row(png_ptr);
++ png_write_row(png_ptr, row_ptr);
+ }
+
+ #ifdef POV_COMMENTS // temporarily skip comment writing code
diff --git a/media-gfx/povray/povray-3.6.1-r4.ebuild b/media-gfx/povray/povray-3.6.1-r4.ebuild
new file mode 100644
index 000000000000..dde050a60ebe
--- /dev/null
+++ b/media-gfx/povray/povray-3.6.1-r4.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/povray/povray-3.6.1-r4.ebuild,v 1.1 2008/11/08 19:48:07 lavajoe Exp $
+
+inherit flag-o-matic eutils autotools
+
+DESCRIPTION="The Persistence Of Vision Ray Tracer"
+SRC_URI="ftp://ftp.povray.org/pub/povray/Official/Unix/${P}.tar.bz2"
+HOMEPAGE="http://www.povray.org/"
+
+LICENSE="povlegal-3.6"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="svga tiff X"
+
+DEPEND=">=media-libs/libpng-1.2.26
+ tiff? ( >=media-libs/tiff-3.6.1 )
+ media-libs/jpeg
+ sys-libs/zlib
+ X? ( x11-libs/libXaw )
+ svga? ( media-libs/svgalib )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-configure.patch
+ epatch "${FILESDIR}"/${P}-find-egrep.patch
+
+ # Change some destination directories that cannot be adjusted via configure
+ cp Makefile.am Makefile.am.orig
+ sed -i -e "s:^povlibdir = .*:povlibdir = @datadir@/${PN}:" Makefile.am
+ sed -i -e "s:^povdocdir = .*:povdocdir = @datadir@/doc/${PF}:" Makefile.am
+ sed -i -e "s:^povconfdir = .*:povconfdir = @sysconfdir@/${PN}:" Makefile.am
+
+ cd unix
+ cp Makefile.am Makefile.am.orig
+ sed -i -e 's:^ -DPOVLIBDIR=.*: -DPOVLIBDIR=\\"@datadir@/'"${PN}"'\\" \\:' Makefile.am
+ sed -i -e 's:^ -DPOVCONFDIR=.*: -DPOVCONFDIR=\\"@sysconfdir@/'"${PN}"'\\" \\:' Makefile.am
+ cd ..
+
+ # Patch code that compares system lib versions to properly detect
+ # newer versions. Also fix reference to old png call. (Bug #153538)
+ epatch "${FILESDIR}"/${P}-use-system-libpng.patch
+
+ # Also, to make sure no bundled static libs can be used, remove them
+ rm -r libraries/jpeg
+ rm -r libraries/png
+ rm -r libraries/tiff
+ rm -r libraries/zlib
+
+ AT_NO_RECURSIVE="yes" eautoreconf
+}
+
+src_compile() {
+ # Fixes bug 71255
+ if [[ $(get-flag march) == k6-2 ]]; then
+ filter-flags -fomit-frame-pointer
+ fi
+
+ econf \
+ COMPILED_BY="Portage (Gentoo `uname`) on `hostname -f`" \
+ $(use_with svga) \
+ $(use_with tiff) \
+ $(use_with X) \
+ || die
+
+ emake || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+}
+
+pkg_preinst() {
+ # Copy the old config files if they are in the old location
+ # but do not yet exist in the new location.
+ # This way, they can be treated by CONFIG_PROTECT as normal.
+ for conf_file in $(ls "${D}/etc/${PN}"); do
+ if [ ! -e "${ROOT}etc/${PN}/${conf_file}" ]; then
+ for version_dir in $(ls "${ROOT}etc/${PN}" | grep "^[0-9]" | sort -rn); do
+ if [ -e "${ROOT}etc/${PN}/${version_dir}/${conf_file}" ]; then
+ mv "${ROOT}etc/${PN}/${version_dir}/${conf_file}" "${ROOT}etc/${PN}"
+ elog "Note: ${conf_file} moved from ${ROOT}etc/povray/${version_dir}/ to ${ROOT}etc/povray/"
+ break
+ fi
+ done
+ fi
+ done
+}