From 3610d5684d2bebb7c1a6661a3051d34c258954f8 Mon Sep 17 00:00:00 2001 From: Joe Peterson Date: Sat, 8 Nov 2008 19:48:07 +0000 Subject: 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) --- media-gfx/povray/ChangeLog | 9 ++- .../files/povray-3.6.1-use-system-libpng.patch | 51 ++++++++++++ media-gfx/povray/povray-3.6.1-r4.ebuild | 90 ++++++++++++++++++++++ 3 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 media-gfx/povray/files/povray-3.6.1-use-system-libpng.patch create mode 100644 media-gfx/povray/povray-3.6.1-r4.ebuild (limited to 'media-gfx/povray') 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 + +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 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 ++#include + #include + #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 +} -- cgit v1.2.3-65-gdbad