commit:     a7e669bf179acfd1aa8984449c91809d842787d2
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  5 21:05:28 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Apr  5 21:05:28 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7e669bf

games-util/umodpack: Fixes for new Perl, drop broken GUI, EAPI 7

Closes: https://bugs.gentoo.org/716196
Package-Manager: Portage-2.3.96, Repoman-2.3.20
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-util/umodpack/files/umodpack-fixes.patch    | 138 ++++++++++++++++++++++
 games-util/umodpack/umodpack-0.5_beta16-r2.ebuild |  46 --------
 games-util/umodpack/umodpack-0.5_beta16-r3.ebuild |  56 +++++++++
 3 files changed, 194 insertions(+), 46 deletions(-)

diff --git a/games-util/umodpack/files/umodpack-fixes.patch 
b/games-util/umodpack/files/umodpack-fixes.patch
new file mode 100644
index 00000000000..13bcad6c9ea
--- /dev/null
+++ b/games-util/umodpack/files/umodpack-fixes.patch
@@ -0,0 +1,138 @@
+diff -Naur a/Config-Ini-1.06/test.pl b/Config-Ini-1.06/test.pl
+--- a/Config-Ini-1.06/test.pl  2020-04-05 21:08:14.033277147 +0100
++++ b/Config-Ini-1.06/test.pl  2020-04-05 21:08:04.576074986 +0100
+@@ -11,9 +11,9 @@
+ 
+ ######################### End of black magic.
+ 
+-use POSIX qw(tmpnam);
+-do { $tmpfile = tmpnam() } until open TMPFILE, ">$tmpfile";
+-print TMPFILE <<EOT;
++use File::Temp qw(tempfile);
++( $tmpfh, $tmpfile ) = tempfile(UNLINK => 0);
++print $tmpfh <<EOT;
+ [Setup]
+ MasterProduct=UnrealTournament
+ Group=UnrealTournament
+@@ -56,7 +56,7 @@
+ ServerActors  =       IpServer.UdpServerUplinkMaster\\
+       ServerAddress=master.mplayer.com MasterServerPort = 27900
+ EOT
+-close TMPFILE;
++close $tmpfh;
+ 
+ # constructor
+ $ini = new Config::Ini($tmpfile);
+@@ -165,11 +165,11 @@
+ 
+ # save function
+ $ini->save;
+-open TMPFILE, "<$tmpfile";
++open $tmpfh, "<$tmpfile";
+ undef $/;
+-$wholefile = <TMPFILE>;
++$wholefile = <$tmpfh>;
+ $/ = "\n";
+-close TMPFILE;
++close $tmpfh;
+ $shouldbe = <<EOT;
+ [Setup]
+ MasterProduct=UnrealTournament
+@@ -232,7 +232,7 @@
+       print "ok 17\n";
+ } else { print "not ok 17\n"; }
+ 
+-do { $tmpfile = tmpnam() } until open TMPFILE, ">$tmpfile";
++( $tmpfh, $tmpfile ) = tempfile(UNLINK => 0);
+ $ini->save($tmpfile);
+ 
+ # test decoder
+@@ -254,8 +254,8 @@
+ unlink $tmpfile;
+ 
+ # test comment delimiter
+-do { $tmpfile = tmpnam() } until open TMPFILE, ">$tmpfile";
+-print TMPFILE <<EOT;
++( $tmpfh, $tmpfile ) = tempfile(UNLINK => 0);
++print $tmpfh <<EOT;
+ [Options]
+ Configured=1
+ GSversion=550
+@@ -272,7 +272,7 @@
+ [DEQData]
+ Winlist=t123;218 praivi;215 ptsk;209
+ EOT
+-close TMPFILE;
++close $tmpfh;
+ undef $ini;
+ $ini = new Config::Ini($tmpfile, -commentdelim => '#');
+ 
+diff -Naur a/Makefile.PL b/Makefile.PL
+--- a/Makefile.PL      2001-01-18 16:20:37.000000000 +0000
++++ b/Makefile.PL      2020-04-05 21:08:32.335668386 +0100
+@@ -11,7 +11,6 @@
+     'PREREQ_PM'       => {
+       'Config::Ini'   => 1.06,
+       'Archive::Zip'  => 0.07,
+-      'Tk'            => 800.020,
+     },
+-    'EXE_FILES' => [qw(umod xumod)],
++    'EXE_FILES' => [qw(umod)],
+ );
+diff -Naur a/umod b/umod
+--- a/umod     2020-04-05 21:08:14.033277147 +0100
++++ b/umod     2020-04-05 21:08:04.576074986 +0100
+@@ -17,7 +17,8 @@
+ use FileHandle;
+ use File::Find;
+ use Getopt::Long;
+-use POSIX qw(tmpnam SEEK_END);
++use POSIX qw(SEEK_END);
++use File::Temp qw(tempfile);
+ use strict;
+ 
+ =pod
+@@ -520,7 +521,7 @@
+     if( $filename =~ /\.zip$/i ) {
+ 
+       my( $tmpFile, $fh );
+-      do { $tmpFile = tmpnam(); } until $fh = new FileHandle( $tmpFile, 'w' );
++      ( $fh, $tmpFile ) = tempfile(UNLINK => 0);
+ 
+       my( $zipFile ) = new Archive::Zip;
+       if( $zipFile->read( $filename ) != AZ_OK ) {
+diff -Naur a/Umod.pm b/Umod.pm
+--- a/Umod.pm  2020-04-05 21:08:14.033277147 +0100
++++ b/Umod.pm  2020-04-05 21:08:04.576074986 +0100
+@@ -400,22 +400,22 @@
+     if( $ini->exists( ['Setup', 'Requires'] ) ) {
+       foreach my $requirement ( $ini->get( ['Setup', 'Requires'],
+           -mapping => 'multiple' ) ) {
+-          my( %hash );
+-          %hash->{product}      = $ini->get( [$requirement, 'Product'],
++          my( $hash );
++          $hash->{product}      = $ini->get( [$requirement, 'Product'],
+               -mapping => 'single' );
+-          %hash->{version}      = $ini->get( [$requirement, 'Version'],
++          $hash->{version}      = $ini->get( [$requirement, 'Version'],
+               -mapping => 'single' );
+-          %hash->{localproduct} = $ini->get( [$requirement, 'LocalProduct'],
++          $hash->{localproduct} = $ini->get( [$requirement, 'LocalProduct'],
+               -mapping => 'single' );
+-          %hash->{producturl}   = $ini->get( [$requirement, 'ProductURL'],
++          $hash->{producturl}   = $ini->get( [$requirement, 'ProductURL'],
+               -mapping => 'single' );
+-          %hash->{versionurl}   = $ini->get( [$requirement, 'VersionURL'],
++          $hash->{versionurl}   = $ini->get( [$requirement, 'VersionURL'],
+               -mapping => 'single' );
+-          %hash->{developer}    = $ini->get( [$requirement, 'Developer'],
++          $hash->{developer}    = $ini->get( [$requirement, 'Developer'],
+               -mapping => 'single' );
+-          %hash->{developerurl} = $ini->get( [$requirement, 'DeveloperURL'],
++          $hash->{developerurl} = $ini->get( [$requirement, 'DeveloperURL'],
+               -mapping => 'single' );
+-          push( @requirements, \%hash );
++          push( @requirements, \$hash );
+       }
+     }
+ 

diff --git a/games-util/umodpack/umodpack-0.5_beta16-r2.ebuild 
b/games-util/umodpack/umodpack-0.5_beta16-r2.ebuild
deleted file mode 100644
index 772fe648729..00000000000
--- a/games-util/umodpack/umodpack-0.5_beta16-r2.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit perl-module toolchain-funcs
-
-MY_P=${P/_beta/b}
-DESCRIPTION="portable and useful [un]packer for Unreal Tournament's Umod files"
-HOMEPAGE="http://www.oldunreal.com/wiki/index.php?title=UmodPack";
-SRC_URI="mirror://gentoo/${MY_P}-allinone.tar.gz"
-
-LICENSE="Artistic"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="tk"
-
-DEPEND="virtual/perl-IO-Compress
-       dev-perl/Archive-Zip
-       dev-perl/Tie-IxHash
-       tk? ( dev-perl/Tk )"
-RDEPEND=${DEPEND}
-
-S=${WORKDIR}/${MY_P}
-SRC_TEST="do parallel"
-
-src_prepare() {
-       # remove the stupid perl modules since we already installed em
-       rm -rf {Archive-Zip,Compress-Zlib,Tie-IxHash,Tk}* || die
-}
-
-src_compile() {
-       perl-module_src_compile
-
-       cd umr-0.3 || die
-       emake DEBUG=0 CFLAGS="${CFLAGS}" CC="$(tc-getCC)"
-}
-
-src_install() {
-       mydoc="Changes"
-       perl-module_src_install
-       dobin umod umr-0.3/umr
-       if use tk ; then
-               dobin xumod
-       fi
-}

diff --git a/games-util/umodpack/umodpack-0.5_beta16-r3.ebuild 
b/games-util/umodpack/umodpack-0.5_beta16-r3.ebuild
new file mode 100644
index 00000000000..d87d9347c4f
--- /dev/null
+++ b/games-util/umodpack/umodpack-0.5_beta16-r3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit perl-module toolchain-funcs
+
+MY_P="${P/_beta/b}"
+DESCRIPTION="Portable (un)packer for Unreal Tournament's Umod files"
+HOMEPAGE="http://www.oldunreal.com/wiki/index.php?title=UmodPack";
+SRC_URI="mirror://gentoo/${MY_P}-allinone.tar.gz"
+
+LICENSE="Artistic"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="virtual/perl-IO-Compress
+       dev-perl/Archive-Zip
+       dev-perl/Tie-IxHash"
+
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+PATCHES=( "${FILESDIR}"/${PN}-fixes.patch )
+DIST_TEST="do"
+
+src_prepare() {
+       default
+
+       # Remove bundled Perl modules.
+       rm -rf {Archive-Zip,Compress-Zlib,Tie-IxHash,Tk}* || die
+}
+
+src_compile() {
+       perl-module_src_compile
+
+       cd umr-* || die
+       emake DEBUG=0 CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_test() {
+       local line
+       perl-module_src_test | while read line; do
+               cat <<< "${line}"
+               [[ ${line} =~ ^not\ ok\ [0-9] ]] && die "test failed"
+       done
+}
+
+src_install() {
+       perl-module_src_install
+
+       cd umr-* || die
+       dobin umr
+       newdoc README README-umr
+       newdoc TODO TODO-umr
+}

Reply via email to