summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-util')
-rw-r--r--games-util/umodpack/files/umodpack-fixes.patch138
-rw-r--r--games-util/umodpack/umodpack-0.5_beta16-r2.ebuild46
-rw-r--r--games-util/umodpack/umodpack-0.5_beta16-r3.ebuild56
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 000000000000..13bcad6c9ea9
--- /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 772fe6487292..000000000000
--- 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 000000000000..d87d9347c4f7
--- /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
+}