summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2014-10-21 11:14:55 +0000
committerJustin Lecher <jlec@gentoo.org>2014-10-21 11:14:55 +0000
commitbf825e0dcadf2543912964e186653bf731be1326 (patch)
tree7458790f4eb637279df2909811575138ad85bf94 /dev-perl/perl-tk
parentStable for HPPA (bug #525744). (diff)
downloadgentoo-2-bf825e0dcadf2543912964e186653bf731be1326.tar.gz
gentoo-2-bf825e0dcadf2543912964e186653bf731be1326.tar.bz2
gentoo-2-bf825e0dcadf2543912964e186653bf731be1326.zip
dev-perl/perl-tk: Add fix for build against perl-5.20, thanks Norman Yarvin for the patch, #523982
(Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key B9D4F231BD1558AB!)
Diffstat (limited to 'dev-perl/perl-tk')
-rw-r--r--dev-perl/perl-tk/ChangeLog9
-rw-r--r--dev-perl/perl-tk/files/freetype_location.patch32
-rw-r--r--dev-perl/perl-tk/files/mainwindow_segfaults.patch25
-rw-r--r--dev-perl/perl-tk/perl-tk-804.32.0-r1.ebuild56
4 files changed, 121 insertions, 1 deletions
diff --git a/dev-perl/perl-tk/ChangeLog b/dev-perl/perl-tk/ChangeLog
index 7f1fad96dfe5..31b27304424b 100644
--- a/dev-perl/perl-tk/ChangeLog
+++ b/dev-perl/perl-tk/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for dev-perl/perl-tk
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-perl/perl-tk/ChangeLog,v 1.102 2014/10/11 18:44:58 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/perl-tk/ChangeLog,v 1.103 2014/10/21 11:14:55 jlec Exp $
+
+*perl-tk-804.32.0-r1 (21 Oct 2014)
+
+ 21 Oct 2014; Justin Lecher <jlec@gentoo.org> +perl-tk-804.32.0-r1.ebuild,
+ +files/freetype_location.patch, +files/mainwindow_segfaults.patch:
+ Add fix for build against perl-5.20, thanks Norman Yarvin for the patch,
+ #523982
11 Oct 2014; Andreas K. Huettel <dilfridge@gentoo.org>
-perl-tk-804.29.0.ebuild, -perl-tk-804.30.0.ebuild, -perl-tk-804.31.0.ebuild,
diff --git a/dev-perl/perl-tk/files/freetype_location.patch b/dev-perl/perl-tk/files/freetype_location.patch
new file mode 100644
index 000000000000..bac2a437c235
--- /dev/null
+++ b/dev-perl/perl-tk/files/freetype_location.patch
@@ -0,0 +1,32 @@
+From 1ca4589ef5a87999ec564081900bc8fdaed83c74 Mon Sep 17 00:00:00 2001
+From: Slaven Rezic <slaven@rezic.de>
+Date: Sun, 2 Mar 2014 12:10:31 +0100
+Subject: [PATCH] look also for /usr/include/freetype2/freetype.h
+
+In some freetype installations (e.g. Debian/jessie) the intermediate
+"freetype" directory may be missing in the include path.
+
+This should fix
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740207
+---
+ myConfig | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/myConfig b/myConfig
+index 02d2ee5..3ca8144 100755
+--- a/myConfig
++++ b/myConfig
+@@ -147,7 +147,12 @@ sub Ift
+ {
+ foreach (map { "$_/freetype2" } @_)
+ {
+- if (-d $_ && -d "$_/freetype" && -r "$_/freetype/freetype.h")
++ if (-r "$_/freetype.h") # location in Debian (since jessie)
++ {
++ print "Using -I$_ to find $_/freetype/freetype.h\n";
++ return "-I$_";
++ }
++ if (-r "$_/freetype/freetype.h") # location in FreeBSD (up to version 10.0) and Debian (up to wheezy)
+ {
+ print "Using -I$_ to find $_/freetype/freetype.h\n";
+ return "-I$_";
diff --git a/dev-perl/perl-tk/files/mainwindow_segfaults.patch b/dev-perl/perl-tk/files/mainwindow_segfaults.patch
new file mode 100644
index 000000000000..50e2e4b826ad
--- /dev/null
+++ b/dev-perl/perl-tk/files/mainwindow_segfaults.patch
@@ -0,0 +1,25 @@
+From ba3a92a779f7adcf655b7e45b40ee5b0cb79bc8b Mon Sep 17 00:00:00 2001
+From: Slaven Rezic <slaven@rezic.de>
+Date: Fri, 14 Mar 2014 16:00:05 +0100
+Subject: [PATCH] no segfaults if Tk::MainWindow::Create was called without
+ args
+
+However, this case never happened in real life, as this function was
+not supposed to be used directly anyway.
+---
+ tkGlue.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tkGlue.c b/tkGlue.c
+index 57f0bca..ae595bf 100644
+--- a/tkGlue.c
++++ b/tkGlue.c
+@@ -2370,7 +2370,7 @@ XS(XS_Tk__MainWindow_Create)
+ STRLEN na;
+ Tcl_Interp *interp = Tcl_CreateInterp();
+ SV **args = &ST(0);
+- char *appName = SvPV(ST(1),na);
++ char *appName = items >= 1 ? SvPV(ST(1),na) : "";
+ int offset = args - sp;
+ int code;
+ if (!initialized)
diff --git a/dev-perl/perl-tk/perl-tk-804.32.0-r1.ebuild b/dev-perl/perl-tk/perl-tk-804.32.0-r1.ebuild
new file mode 100644
index 000000000000..113d6d245900
--- /dev/null
+++ b/dev-perl/perl-tk/perl-tk-804.32.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-perl/perl-tk/perl-tk-804.32.0-r1.ebuild,v 1.1 2014/10/21 11:14:55 jlec Exp $
+
+EAPI=5
+
+MY_PN=Tk
+MODULE_AUTHOR=SREZIC
+MODULE_VERSION=804.032
+inherit multilib perl-module
+
+DESCRIPTION="A Perl Module for Tk"
+
+LICENSE+=" BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="
+ media-libs/freetype
+ >=media-libs/libpng-1.4
+ virtual/jpeg
+ x11-libs/libX11
+ x11-libs/libXft"
+RDEPEND="${DEPEND}"
+
+# No test running here, requires an X server, and fails lots anyway.
+SRC_TEST="skip"
+PATCHES=(
+ "${FILESDIR}"/${PN}-804.31.0-xorg.patch
+ "${FILESDIR}"/freetype_location.patch
+ "${FILESDIR}"/mainwindow_segfaults.patch
+ )
+
+src_prepare() {
+ MAKEOPTS+=" -j1" #333049
+ myconf=( X11ROOT=${EPREFIX}/usr XFT=1 -I${EPREFIX}/usr/include/ -l${EPREFIX}/usr/$(get_libdir) )
+ mydoc="ToDo VERSIONS"
+
+ perl-module_src_prepare
+ # fix detection logic for Prefix, bug #385621
+ sed -i -e "s:/usr:${EPREFIX}/usr:g" myConfig || die
+ # having this around breaks with perl-module and a case-IN-sensitive fs
+ rm build_ptk || die
+
+ # Remove all bundled libs, fixes #488194
+ local BUNDLED="PNG/libpng \
+ PNG/zlib \
+ JPEG/jpeg"
+ for dir in ${BUNDLED}; do
+ rm -r "${S}/${dir}" || die "Can't remove bundle"
+ # Makefile.PL can copy files to ${S}/${dir}, so recreate them back.
+ mkdir -p "${S}/${dir}" || die "Can't restore bundled dir"
+ sed -i "\#^${dir}#d" "${S}"/MANIFEST || die 'Can not remove bundled libs from MANIFEST'
+ done
+}