From 611d1b6ec6832d5d1dffcbfd8a805df1bcba8fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= Date: Sun, 29 May 2016 18:59:56 +0200 Subject: dev-perl/libintl-perl: Sanitize build system. This may be the solution for bug 583674. Package-Manager: portage-2.3.0_rc1 --- .../files/libintl-perl-1.240.0-sanity.patch | 72 ++++++++++++++++++++++ .../libintl-perl/libintl-perl-1.240.0-r1.ebuild | 36 +++++++++++ 2 files changed, 108 insertions(+) create mode 100644 dev-perl/libintl-perl/files/libintl-perl-1.240.0-sanity.patch create mode 100644 dev-perl/libintl-perl/libintl-perl-1.240.0-r1.ebuild (limited to 'dev-perl') diff --git a/dev-perl/libintl-perl/files/libintl-perl-1.240.0-sanity.patch b/dev-perl/libintl-perl/files/libintl-perl-1.240.0-sanity.patch new file mode 100644 index 00000000000..b9add8a334c --- /dev/null +++ b/dev-perl/libintl-perl/files/libintl-perl-1.240.0-sanity.patch @@ -0,0 +1,72 @@ +diff -ruN libintl-perl-1.24.orig/Makefile.PL libintl-perl-1.24/Makefile.PL +--- libintl-perl-1.24.orig/Makefile.PL 2015-04-03 15:28:12.000000000 +0200 ++++ libintl-perl-1.24/Makefile.PL 2016-05-29 18:42:29.495587789 +0200 +@@ -163,56 +163,8 @@ + + package MY; + +-# FIXME: This is really a hack! Problem: Depending on the build system, +-# we may or may not build and install the XS version. If the XS version +-# is being built, the directory blib/arch will be populated, if it is +-# not being built, blib/arch will be empty. Unfortunately, if blib/arch +-# is not empty, *all* library files will be installed in the architecture +-# dependent locations, if it is empty, they will be installed in the +-# architecture independent tree. +-# +-# Unfortunately, ExtUtils::MakeMaker does not take care of uninstalling +-# files from previous installations. Consequently, we cannot determine +-# which version of the library will be loaded, since this depends on the +-# current value of @INC. +-# +-# The solution does not really make me happy. The Makefile will be patched, +-# so that instead of ExtUtils::Install a custom module MyInstall.pm will +-# be used. This custom module overwrites the subroutine that detects +-# whether a directory is empty in ExtUtils::Install, and will lie if that +-# directory happens to be "blib/arch". This little hack effectively disables +-# the annoying behavior of ExtUtils::Install (and I sincerely hope that +-# this is portable). +-sub libscan +-{ +- my ($self, $file) = @_; +- +- return if 'MyInstall.pm' eq $file; +- +- $self->SUPER::libscan ($file); +-} +- +-sub tools_other +-{ +- my $self = shift; +- +- my $fragment = $self->SUPER::tools_other (@_); +- +- $fragment =~ s/^MOD_INSTALL\s*=\s*(.*?)-MExtUtils::Install +- /MOD_INSTALL =$1-MMyInstall/msx; +- +- return $fragment; +-} +- + package main; + +-my $name = $0; +-$name =~ s,Makefile\.PL$,xs_disabled,; +-local *HANDLE; +-open HANDLE, ">$name" or die "cannot open '$name' for writing: $!"; +-print HANDLE !$build_gettext_xs; +-close HANDLE or die "cannot close '$name': $!"; +- + WriteMakefile ( + NAME => 'libintl-perl', + VERSION_FROM => 'lib/Locale/Messages.pm', +@@ -232,11 +184,6 @@ + }, + }, + PL_FILES => {}, +- DIR => [$build_gettext_xs ? ('gettext_xs') : ()], +- clean => { FILES => 'xs_disabled build_xs' } +- # If you want to build the XS version although the automatic detection +- # suggests not to build it, uncomment the following line. +- #DIR => [ ('gettext_xs') ],, + ); + + sub MY::postamble { diff --git a/dev-perl/libintl-perl/libintl-perl-1.240.0-r1.ebuild b/dev-perl/libintl-perl/libintl-perl-1.240.0-r1.ebuild new file mode 100644 index 00000000000..cdefba9fc8b --- /dev/null +++ b/dev-perl/libintl-perl/libintl-perl-1.240.0-r1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +MODULE_AUTHOR=GUIDO +MODULE_VERSION=1.24 +inherit perl-module + +DESCRIPTION="High-Level Interface to Uniforum Message Translation" +HOMEPAGE="http://guido-flohr.net/projects/libintl-perl ${HOMEPAGE}" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="" + +DEPEND="virtual/libintl" +RDEPEND=${DEPEND} + +PATCHES=( "${FILESDIR}/${P}-sanity.patch" ) + +SRC_TEST=do + +src_test() { + if grep -q '^de_' <( locale -a ) ; then + if grep -q '^de_AT$' <( locale -a ) ; then + perl-module_src_test + else + ewarn "Skipping tests, known broken with de_ and without de_AT" + fi + else + perl-module_src_test + fi +} -- cgit v1.2.1