summaryrefslogtreecommitdiff
path: root/app-emulation/hercules-sdl
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/hercules-sdl')
-rw-r--r--app-emulation/hercules-sdl/Manifest2
-rw-r--r--app-emulation/hercules-sdl/files/hercules-sdl-4.7.0-backport-pr658.patch46
-rw-r--r--app-emulation/hercules-sdl/hercules-sdl-4.7.0-r1.ebuild89
3 files changed, 137 insertions, 0 deletions
diff --git a/app-emulation/hercules-sdl/Manifest b/app-emulation/hercules-sdl/Manifest
index 5874205c7622..db987967acdb 100644
--- a/app-emulation/hercules-sdl/Manifest
+++ b/app-emulation/hercules-sdl/Manifest
@@ -1,5 +1,7 @@
AUX gen_hashes.sh 706 BLAKE2B 85e0f867ea7012a9859f75cf8802ce85b50b23c2a7b48a117983874e3e47a8695042da20eb26c9d47933fa5b9d4e8f1de644542be703d544693d287e978ca070 SHA512 060b413470ffd57b304dc091a57cbdac4cfb8c44f23230607ba16d133840fd27a4da47ed3965aaca6a65a14960cb5835675ee2d76f2345dc95add06de946f14b
AUX hercules-sdl-4.4.1-htmldir.patch 774 BLAKE2B 3cf3c50c60059ae0bd042333c2220669f87aa37cf632d1bc2cec738e02ca5f74a2a4302e484a73b6e9df32edb8c4bf2c0a2198c32e1242cab970e4a819c254c1 SHA512 bae45addb0c4f339b93d9709119b7df5d330978e60b982349244b98a72b157f86180454fa82ff9918a082f705a06a379ff3212f59bd5c1777090bb0cf03b9795
+AUX hercules-sdl-4.7.0-backport-pr658.patch 1591 BLAKE2B 4959d5d1f59c370d505156f0aec543af11a96e5b4513eb634f9c79aa69e537f854efd5870a710b50d8e2fd882bb33b34d2f7f5b15dab0c71fa503825f4c5b31c SHA512 3d3dcb3b1cb0cf580dff9f720c58a28597dc9ea926b6b3384cbaa88726515a0a25efbcde5a763488fcca0603d951f42702e416abe974c5f981befc3360733ed2
DIST hercules-sdl-4.7.tar.gz 25439384 BLAKE2B 78a8d2df947c80e23d0e956a25a4f009dd32b09f2834cc06373f685badf9f1e657bf0f4e4408c7085371c46085718998076f3a6063caf80c9161b1fa7caa91eb SHA512 9d7060c4e2687358b9547b59b47362d642cbf2bf009085fdd41e485170d0f81029ee3d04d12b905a3a266cd26a9087e92c231c3f4600c32a8535a6140656b7b0
+EBUILD hercules-sdl-4.7.0-r1.ebuild 2678 BLAKE2B 99fc2187abb2729f3749da3d38419d5254bc9574001ef13676a447eb3ffaa8673b9d3c7c052bf541994a562e3326259cd9825e3e7c887d6e99246c21d04c2a7a SHA512 a71847afbd15b79165e2f6dc89effa2fb9dc28fae5d24e3db4cabafeab1aee56e86d46a9b5c9b5c52748738186755b3c93887f54c37e61b02f32a0a659e034b9
EBUILD hercules-sdl-4.7.0.ebuild 2604 BLAKE2B 916d399a2d0a53ade95495d1788399543ebe41000cb480307af7425c78cfe2adeaa53a753f9e66eedb3786a9d875794f1f44ef15a80653718bc02a8ed01add2d SHA512 1c4242b251e4b4d0ecf84b7e796a242ded35adeb686726bfe4833c0c4c1c69b0705f3216e6a31f24e9876a39b6315d228d65d149d8ca66a08cc77755f27abf47
MISC metadata.xml 1141 BLAKE2B b630c058fe32f2410985e53779d387fc007759f2bd36ad8240a2b6a2157b6c5921cfb4aa14ed3b513e0f787d9838bab46a6ceadd031d33daa2a3190d2ca64095 SHA512 fe090b27c7d46e6a9fee40a9d948f4124814d134cb64ff7f7d7b2d341f1db9313f5d071e5c34a312a3dacbe643c8083ba98a3b0058fa3886b9d024d6ecb17575
diff --git a/app-emulation/hercules-sdl/files/hercules-sdl-4.7.0-backport-pr658.patch b/app-emulation/hercules-sdl/files/hercules-sdl-4.7.0-backport-pr658.patch
new file mode 100644
index 000000000000..db4773d2249c
--- /dev/null
+++ b/app-emulation/hercules-sdl/files/hercules-sdl-4.7.0-backport-pr658.patch
@@ -0,0 +1,46 @@
+https://bugs.gentoo.org/931607
+https://github.com/SDL-Hercules-390/hyperion/pull/658
+
+From 655f179dbf34a3b1e9714691462faa9732257937 Mon Sep 17 00:00:00 2001
+From: matoro <matoro@users.noreply.github.com>
+Date: Thu, 9 May 2024 12:36:01 -0400
+Subject: [PATCH] Add missing includes to configure script
+
+This is needed for gcc 14 and clang 16 as they both make implicit
+function definitions a hard error. In a configure script, this means
+these tests will switch from passing to failing, which likely means
+features will get unintentionally flipped as configure now thinks you
+don't have support.
+
+See: https://wiki.gentoo.org/wiki/Modern_C_porting
+See: https://bugs.gentoo.org/931607
+---
+ autoconf/hercules.m4 | 1 +
+ configure.ac | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/autoconf/hercules.m4 b/autoconf/hercules.m4
+index cb962f5e0..4d35cb039 100755
+--- a/autoconf/hercules.m4
++++ b/autoconf/hercules.m4
+@@ -380,6 +380,7 @@ AC_DEFUN([HC_CHECK_NEED_GETOPT_OPTRESET],
+ AC_TRY_LINK(
+ [],
+ [
++ #include <unistd.h>
+ extern int optreset;
+ optreset=1;
+ getopt(0,0,0);
+diff --git a/configure.ac b/configure.ac
+index f444a9b1e..bfe31357d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1872,6 +1872,8 @@ if test "$GCC" = "yes"; then
+ -g -O2 -fomit-frame-pointer
+ */
+
++ #include <string.h>
++
+ int foo ()
+ {
+ char a[50000+16];
diff --git a/app-emulation/hercules-sdl/hercules-sdl-4.7.0-r1.ebuild b/app-emulation/hercules-sdl/hercules-sdl-4.7.0-r1.ebuild
new file mode 100644
index 000000000000..2067dddd725d
--- /dev/null
+++ b/app-emulation/hercules-sdl/hercules-sdl-4.7.0-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="The SoftDevLabs (SDL) version of the Hercules 4.x Hyperion Emulator"
+HOMEPAGE="https://sdl-hercules-390.github.io/html/"
+SRC_URI="https://github.com/SDL-Hercules-390/hyperion/archive/refs/tags/Release_${PV/.0/}.tar.gz -> ${P/.0/}.tar.gz"
+
+S="${WORKDIR}/hyperion-Release_${PV/.0/}"
+LICENSE="QPL-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+# In theory USE=object-rexx and USE=regina-rexx are not mutually-exclusive.
+# In practice they functionally are as the Gentoo packages conflict, and
+# additionally Hercules only supports calling out to one of them at runtime,
+# controlled by the HREXX_PACKAGE environment variable.
+IUSE="bzip2 debug object-rexx regina-rexx test"
+RESTRICT="!test? ( test )"
+FILECAPS=(
+ -M 755 cap_sys_nice\=eip usr/bin/hercules --
+ -M 755 cap_sys_nice\=eip usr/bin/herclin --
+ -M 755 cap_net_admin+ep usr/bin/hercifc
+)
+
+RDEPEND="
+ !app-emulation/hercules
+ dev-libs/libltdl
+ net-libs/libnsl:0
+ sys-libs/zlib
+ bzip2? ( app-arch/bzip2 )
+ object-rexx? ( dev-lang/oorexx )
+ regina-rexx? ( dev-lang/regina-rexx )"
+DEPEND="${RDEPEND}
+ ~app-emulation/hercules-sdl-crypto-${PV}
+ ~app-emulation/hercules-sdl-decnumber-${PV}
+ ~app-emulation/hercules-sdl-softfloat-${PV}
+ ~app-emulation/hercules-sdl-telnet-${PV}"
+# Neither package support needs to be compiled-in for tests,
+# but the "rexx" command needs to be available
+BDEPEND="${RDEPEND}
+ test? ( || ( dev-lang/regina-rexx dev-lang/oorexx ) )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.4.1-htmldir.patch"
+ "${FILESDIR}/${PN}-4.7.0-backport-pr658.patch"
+)
+
+src_prepare() {
+ rm -rf crypto decNumber SoftFloat telnet || die
+ sed -i 's#/lib${hc_cv_pkg_lib_subdir}#/lib#g' configure.ac || die
+ sed -i 's#_pkgname}${hc_cv_pkg_lib_suffix}#_pkgname}#g' configure.ac || die
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2)
+ econf \
+ $(use_enable bzip2 cckd-bzip2) \
+ $(use_enable bzip2 het-bzip2) \
+ $(use_enable object-rexx) \
+ $(use_enable regina-rexx) \
+ $(use_enable debug) \
+ --enable-custom="Gentoo ${PF}.ebuild" \
+ --disable-optimization \
+ --disable-setuid-hercifc \
+ --disable-capabilities \
+ --enable-ipv6 \
+ --enable-enhanced-configincludes \
+ --disable-fthreads \
+ --enable-shared \
+ --enable-automatic-operator \
+ --enable-extpkgs="${SYSROOT}/usr/$(get_libdir)/${PN}"
+}
+
+src_install() {
+ default
+ dodoc RELEASE.NOTES
+
+ insinto /usr/share/hercules
+ doins hercules.cnf
+
+ # No static archives. Have to leave .la files for modules. #720342
+ find "${ED}/usr/$(get_libdir)" -name "*.la" -delete || die
+}