--- /dev/null
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MODULE_AUTHOR=SHANCOCK
+MODULE_VERSION=20130922
+inherit perl-module
+
+DESCRIPTION="Perl script indenter and beautifier"
+HOMEPAGE="http://perltidy.sourceforge.net/ ${HOMEPAGE}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ppc ~ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris"
+IUSE=""
+
+SRC_TEST="do"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-CVE-2014-2277.patch"
+}
+
+src_install() {
+ perl-module_src_install
+ docinto examples
+ dodoc "${S}"/examples/*
+}
--- /dev/null
+Description: Replace insecure make_temporary_filename with File::Temp::tempfile
+Forwarded: http://lists.example.com/2010/03/1234.html
+Origin: vendor, http://bugs.debian.org/740670
+Author: Don Armstrong <don@debian.org>
+Last-Update: 2010-03-29
+--- a/lib/Perl/Tidy.pm
++++ b/lib/Perl/Tidy.pm
+@@ -76,6 +76,7 @@
+ use IO::File;
+ use File::Basename;
+ use File::Copy;
++use File::Temp qw(tempfile);
+
+ BEGIN {
+ ( $VERSION = q($Id: perltidy-20130922.0.0-CVE-2014-2277.patch,v 1.1 2014/03/11 18:40:27 civil Exp $) ) =~ s/^.*\s+(\d+)\/(\d+)\/(\d+).*$/$1$2$3/; # all one line for MakeMaker
+@@ -235,35 +236,6 @@
+ return undef;
+ }
+
+-sub make_temporary_filename {
+-
+- # Make a temporary filename.
+- # The POSIX tmpnam() function has been unreliable for non-unix systems
+- # (at least for the win32 systems that I've tested), so use a pre-defined
+- # name for them. A disadvantage of this is that two perltidy
+- # runs in the same working directory may conflict. However, the chance of
+- # that is small and manageable by the user, especially on systems for which
+- # the POSIX tmpnam function doesn't work.
+- my $name = "perltidy.TMP";
+- if ( $^O =~ /win32|dos/i || $^O eq 'VMS' || $^O eq 'MacOs' ) {
+- return $name;
+- }
+- eval "use POSIX qw(tmpnam)";
+- if ($@) { return $name }
+- use IO::File;
+-
+- # just make a couple of tries before giving up and using the default
+- for ( 0 .. 3 ) {
+- my $tmpname = tmpnam();
+- my $fh = IO::File->new( $tmpname, O_RDWR | O_CREAT | O_EXCL );
+- if ($fh) {
+- $fh->close();
+- return ($tmpname);
+- last;
+- }
+- }
+- return ($name);
+-}
+
+ # Here is a map of the flow of data from the input source to the output
+ # line sink:
+@@ -1324,11 +1296,7 @@
+ my ( $fh_stream, $fh_name ) =
+ Perl::Tidy::streamhandle( $stream, 'r' );
+ if ($fh_stream) {
+- my ( $fout, $tmpnam );
+-
+- # TODO: fix the tmpnam routine to return an open filehandle
+- $tmpnam = Perl::Tidy::make_temporary_filename();
+- $fout = IO::File->new( $tmpnam, 'w' );
++ my ( $fout, $tmpnam ) = tempfile();
+
+ if ($fout) {
+ $fname = $tmpnam;
+@@ -5159,14 +5127,7 @@
+ # Pod::Html requires a real temporary filename
+ # If we are making a frame, we have a name available
+ # Otherwise, we have to fine one
+- my $tmpfile;
+- if ( $rOpts->{'frames'} ) {
+- $tmpfile = $self->{_toc_filename};
+- }
+- else {
+- $tmpfile = Perl::Tidy::make_temporary_filename();
+- }
+- my $fh_tmp = IO::File->new( $tmpfile, 'w' );
++ my ($fh_tmp,$tmpfile) = tempfile();
+ unless ($fh_tmp) {
+ Perl::Tidy::Warn
+ "unable to open temporary file $tmpfile; cannot use pod2html\n";
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>perl@gentoo.org</email>
+ <name>Gentoo Perl Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpan">Perl-Tidy</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::Debugger</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::DevNull</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::Diagnostics</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::FileWriter</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::Formatter</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::HtmlWriter</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::IOScalar</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::IOScalarArray</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::IndentationItem</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::LineBuffer</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::LineSink</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::LineSource</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::Logger</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::Tokenizer</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::VerticalAligner</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::VerticalAligner::Alignment</remote-id>
+ <remote-id type="cpan-module">Perl::Tidy::VerticalAligner::Line</remote-id>
+ <remote-id type="sourceforge">perltidy</remote-id>
+ </upstream>
+</pkgmetadata>