games-util/ucon64: add 2.2.1

- add IUSE debug, usb, zlib
- set default discmage.so path not to need user intervention
- shorter elog given ucon64's output already mentions .ucon64/dat
- use fixes suggested by upstream in bug #753950

Closes: https://bugs.gentoo.org/753950
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens
2021-06-14 18:07:00 -04:00
parent 05db8de30d
commit 449d7802c1
5 changed files with 150 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST ucon64-2.0.0-src.tar.gz 1188488 BLAKE2B 846ea6142eb50abc8165c9abb3cc05245f891b78d786798758e393032cc59c1f3cccc0fe0e70e256e308f709870bc1cc2754df30a8fababea30eda84fd1b2b64 SHA512 d021fe6db9530405773e1e209bdfafe41a2bd997f275ca7fb387f9b3d8639f4581c2761cbdce859a1831d6eba9dab4d5df1019605698c6cb6a4695ab091b001c
DIST ucon64-2.2.1-src.tar.gz 1476080 BLAKE2B 8f7010bde2c7306f6a76dec4ce5e31975c286801e6504bf8bc99287bd7adc4ab10331a8cab308fed83ece9e13bdb01327f6d3439eba776038dbb19eb2b72cf70 SHA512 34453399151e5ed256fdcf387b9d32a052718b264e51b99a2be251b90589337d13cd317f8d1aa7d3c8e39c8e407b22797d4608ec6d14b99c8673ec74f349f6c2

View File

@@ -0,0 +1,23 @@
Fix crash on 64bit platforms in change_mem2()
https://bugs.gentoo.org/753950
From upstream:
https://sourceforge.net/p/ucon64/svn/2821/
--- a/libdiscmage/misc.c
+++ b/libdiscmage/misc.c
@@ -1875,5 +1875,5 @@
if (strpos == pos_1st_esc)
setindex = 0; // reset argument pointer
- if (pos_1st_esc == (unsigned int) -1)
+ if (pos_1st_esc == (size_t) -1)
pos_1st_esc = strpos;
--- a/misc/misc.c
+++ b/misc/misc.c
@@ -502,5 +502,5 @@
if (strpos == pos_1st_esc)
setindex = 0; // reset argument pointer
- if (pos_1st_esc == (unsigned int) -1)
+ if (pos_1st_esc == (size_t) -1)
pos_1st_esc = strpos;

View File

@@ -0,0 +1,35 @@
Respect *FLAGS and toolchain variables in Makefiles where missing.
--- a/Makefile
+++ b/Makefile
@@ -12,3 +12,3 @@
CFLAGS+=-I. -Wall -W -Wno-implicit-fallthrough -Wno-format-truncation \
--Wno-stringop-overflow -O3 -fsigned-char
+-Wno-stringop-overflow -fsigned-char
# Enable -Wstringop-overflow[=type] when it is no longer a broken, partial
@@ -19,3 +19,2 @@
# ld: warning: option -s is obsolete and being ignored
-LDFLAGS+=-s
endif
--- a/backup/libcd64/Makefile
+++ b/backup/libcd64/Makefile
@@ -1,2 +1 @@
-CC=gcc
@@ -7,3 +6,2 @@
else
-CFLAGS+=-O6 -funroll-loops -fexpensive-optimizations
endif
@@ -181,4 +179,4 @@
else
- ld -r $^ $(LIBS) -o $*.o
- ar crs $@ $*.o
+ $(LD) -r $^ $(LIBS) -o $*.o
+ $(AR) crs $@ $*.o
endif
--- a/libdiscmage/Makefile.in
+++ b/libdiscmage/Makefile.in
@@ -33,3 +33,2 @@
# /usr/bin/libtool: -static not specified, -s invalid
-LDFLAGS+=-s
endif

View File

@@ -0,0 +1,26 @@
Fix undefined macro issue when compiling with zlib.
https://bugs.gentoo.org/753950
From upstream:
https://sourceforge.net/p/ucon64/svn/2817/
https://sourceforge.net/p/ucon64/svn/2819/
--- a/libdiscmage/ioapi.h
+++ b/libdiscmage/ioapi.h
@@ -35,4 +35,7 @@
extern "C" {
#endif
+#ifndef OF
+#define OF(x) x
+#endif
typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
--- a/misc/ioapi.h
+++ b/misc/ioapi.h
@@ -35,4 +35,7 @@
extern "C" {
#endif
+#ifndef OF
+#define OF(x) x
+#endif
typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));

View File

@@ -0,0 +1,65 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs
DESCRIPTION="The backup tool and wonderful emulator's Swiss Army knife program"
HOMEPAGE="http://ucon64.sourceforge.net/"
SRC_URI="mirror://sourceforge/ucon64/${P}-src.tar.gz"
S="${WORKDIR}/${P}-src/src"
LICENSE="LGPL-2.1+ GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="debug usb zlib"
RDEPEND="
usb? ( virtual/libusb:0 )
zlib? ( sys-libs/zlib:= )"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-change-mem2-64bit.patch
"${FILESDIR}"/${P}-respect-flags.patch
"${FILESDIR}"/${P}-zlib.patch
)
src_prepare() {
default
sed "/discmage.so/s|.* \"|\"${EPREFIX}/usr/$(get_libdir)/${PN}/|" \
-i ucon64_misc.c || die
}
src_configure() {
local econfargs=(
$(use_enable debug)
$(use_with usb libusb)
$(use_with zlib)
--enable-ppdev
--with-libcd64
--with-libdiscmage
)
econf "${econfargs[@]}"
tc-export AR CC LD # for libcd64 with respect-flags.patch
}
src_install() {
dobin ucon64
exeinto /usr/$(get_libdir)/${PN}
doexe libdiscmage/discmage.so
docinto html
dodoc -r ../images ../{changes,developers,faq,hardware,readme}.html
}
pkg_postinst() {
if [[ ! ${REPLACING_VERSIONS} ]]; then
elog "Be sure to check ~/.ucon64rc for some options after"
elog "you've run uCON64 for the first time."
fi
}