summaryrefslogtreecommitdiff
path: root/games-roguelike
diff options
context:
space:
mode:
Diffstat (limited to 'games-roguelike')
-rw-r--r--games-roguelike/Manifest.gzbin3061 -> 3064 bytes
-rw-r--r--games-roguelike/nethack/Manifest2
-rw-r--r--games-roguelike/nethack/nethack-3.6.7.ebuild153
3 files changed, 155 insertions, 0 deletions
diff --git a/games-roguelike/Manifest.gz b/games-roguelike/Manifest.gz
index 5ee2f06f2c2a..e929afc9adaa 100644
--- a/games-roguelike/Manifest.gz
+++ b/games-roguelike/Manifest.gz
Binary files differ
diff --git a/games-roguelike/nethack/Manifest b/games-roguelike/nethack/Manifest
index c59fd2b1b636..3acc5e6ee2a7 100644
--- a/games-roguelike/nethack/Manifest
+++ b/games-roguelike/nethack/Manifest
@@ -5,5 +5,7 @@ AUX nethack-3.6.3-recover.patch 3795 BLAKE2B b00102072a9f23b7b736d1d18bc6cdc0a77
AUX nethack-3.6.6-clang16.patch 163 BLAKE2B fdd43fdb812cc54772c926ea060e100cc810fda5095fdf5de7fd9736b42306a3f55880430d80c96167805228b270b18bdc24e34a70aba5e0b54563a9866c6996 SHA512 0b4a0fe2547be421527c67f6c348069cbf2f4def34a935f77731ddc0c6d4d031866ff8f49c990b6b2f23967217242e21f0b78711885453f930adfb9270360814
AUX nethack-3.6.6-wunused-result.patch 1279 BLAKE2B dc8e6c157746b8ecc4233be370d0674d0d45606cdd4b5e95d6be3d8a882d053c77fe85560f73a3e8e93137552cc1bba0a0849c8a12297b5370ab2e1bbecd811f SHA512 38219bf7c9dac9af90aa18f83aab80cbe4f033a2c0ff33c8434d9dd68afdd34463a183a04794938d3a507e1682b645f696e7fa5c8e99eed0b87be2f72696f5fd
DIST nethack-3.6.6.tar.gz 5577633 BLAKE2B 7b4b12f3a711785c86208dab83f9de725c33470e056ee57e6d96c3a68f06c1d0d98343ed82eca669986361d0663ddbe56d9a74d9cb45b42bf005c2f323b3cd79 SHA512 579fde93a37a1b5df637d5bac2601194beeb455c175fbe3ef89342122c8567bb8221ce60d8a6168e6b45c67ade7d7b09c86bf202c8cbe2d6294d276be3e53055
+DIST nethack-3.6.7.tar.gz 5577415 BLAKE2B a03cfe973b0470efe052eee49c312818755e33cf5148a2c39beecf052e44dfe951c6c63a3ff58ce826fa656647ad5bbe558b4854a50fcf987d80014ef4707505 SHA512 7890d17e087f4344d30e9a908fa1f24d7c72bc714c4a6415ed59800902cc0aa6b3ce94c5d73857b0222349b96b1fdc8bf3f93b3ac1153477ad1419af7b0d3fb5
EBUILD nethack-3.6.6-r1.ebuild 4877 BLAKE2B 5bb1d4b6827c91be0b4388b54af7125af83917f384299470816d5bd83f3d4bdea8d84cc10f94348236d56f8c651fecd2c682f6eeab0efcebf7d950fccd95b50c SHA512 001b27830ff9c33dee20a4e788ee7623cc25f270357d7c5d4ff42b39633727b64d5becd936f3b251be6108eb29be93e616ed4e31fb418dc85d92b445c2fe8c21
+EBUILD nethack-3.6.7.ebuild 4831 BLAKE2B a61a04005e4fbe5c59de756fcfa4f5216cae2ae2ecfc8584697c6d5ae8dd84f45b9e0f2e2b8b25eb155a718893e877edca25c2849d163c1c5e335b84e77cbdaa SHA512 de03a5ebd5af2c921e87980ea6a0218882705c220a8e507c830827500d0502d32e297526d32ef6e4db58f19ea64d5d2d7736fac9dc8fbab44f23428644822d9a
MISC metadata.xml 331 BLAKE2B c3337002e52be30db0c37c49e1eb7b68db924b124bd354cfee11c8d103a6f3af7743ea0e02dbba63447cf5c085b9685349dc4913600f3a3fbd5201766c8d44b5 SHA512 2dfca1aa8269956f622061051c8254f2de2bb8fe08bd309c40354825149e0c5b9208b44a004ee8d546df07d1256ecc0f5d966aa40baa28a9da606633030b9ea4
diff --git a/games-roguelike/nethack/nethack-3.6.7.ebuild b/games-roguelike/nethack/nethack-3.6.7.ebuild
new file mode 100644
index 000000000000..08b526369699
--- /dev/null
+++ b/games-roguelike/nethack/nethack-3.6.7.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop flag-o-matic toolchain-funcs
+
+DESCRIPTION="The ultimate old-school single player dungeon exploration game"
+HOMEPAGE="https://www.nethack.org/"
+SRC_URI="https://nethack.org/download/${PV}/nethack-${PV//.}-src.tgz -> ${P}.tar.gz"
+S="${WORKDIR}/NetHack-${PV}"
+
+LICENSE="nethack"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+IUSE="X"
+
+RDEPEND="
+ acct-group/gamestat
+ sys-libs/ncurses:0=
+ X? (
+ x11-libs/libX11
+ x11-libs/libXaw
+ x11-libs/libXpm
+ x11-libs/libXt
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ virtual/pkgconfig
+ app-alternatives/yacc
+ X? (
+ x11-apps/bdftopcf
+ x11-apps/mkfontscale
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.6.3-recover.patch"
+ "${FILESDIR}/${PN}-3.6.6-clang16.patch"
+)
+
+src_prepare() {
+ default
+
+ cp "${FILESDIR}/${PN}-3.6.3-hint-$(usex X x11 tty)" hint || die "Failed to copy hint file"
+ sys/unix/setup.sh hint || die "Failed to run setup.sh"
+}
+
+src_compile() {
+ append-cflags -std=gnu89 # old codebase, incompatible with c2x
+ append-cflags -I../include -DDLB -DSECURE -DTIMED_DELAY -DVISION_TABLES -DDUMPLOG -DSCORE_ON_BOTL
+ append-cflags '-DCOMPRESS=\"${EPREFIX}/bin/gzip\"' '-DCOMPRESS_EXTENSION=\".gz\"'
+ append-cflags "-DHACKDIR=\\\"${EPREFIX}/usr/$(get_libdir)/nethack\\\""
+ append-cflags "-DVAR_PLAYGROUND=\\\"${EPREFIX}/var/games/nethack\\\""
+ append-cflags "-DDEF_PAGER=\\\"${PAGER}\\\""
+ append-cflags -DSYSCF "-DSYSCF_FILE=\\\"${EPREFIX}/etc/nethack.sysconf\\\""
+
+ if use X; then
+ append-cflags -DX11_GRAPHICS -DUSE_XPM
+
+ # XtErrorHandler usage seems right, but headers "may" add ((noreturn))
+ # giving an incompatible type error with clang-16 (could alternatively
+ # use private _X_NORETURN but this may be fragile)
+ append-cflags -Wno-error=incompatible-pointer-types #874462
+ fi
+
+ LOCAL_MAKEOPTS=(
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ WINTTYLIB="$($(tc-getPKG_CONFIG) --libs ncurses)"
+ HACKDIR="${EPREFIX}/usr/$(get_libdir)/nethack"
+ )
+
+ emake "${LOCAL_MAKEOPTS[@]}" nethack recover Guidebook spec_levs
+
+ # Upstream still has some parallel compilation bugs
+ emake -j1 "${LOCAL_MAKEOPTS[@]}" all
+}
+
+src_install() {
+ emake \
+ "${LOCAL_MAKEOPTS[@]}" \
+ INSTDIR="${ED}/usr/$(get_libdir)/nethack" \
+ SHELLDIR="${ED}/usr/bin" \
+ VARDIR="${ED}/var/games/nethack" \
+ install
+
+ mv "${ED}/usr/$(get_libdir)/nethack/recover" "${ED}/usr/bin/recover-nethack" || die "Failed to move recover-nethack"
+
+ doman doc/nethack.6
+ newman doc/recover.6 recover-nethack.6
+ dodoc doc/Guidebook.txt
+
+ insinto /etc
+ newins sys/unix/sysconf nethack.sysconf
+
+ insinto /etc/skel
+ newins "${FILESDIR}/${PN}-3.6.0-nethackrc" .nethackrc
+
+ if use X ; then
+ cd "${S}/win/X11" || die "Failed to enter win/X11 directory"
+
+ mkdir -p "${ED}/etc/X11/app-defaults/" || die "Failed to make app-defaults directory"
+ mv "${ED}/usr/$(get_libdir)/nethack/NetHack.ad" "${ED}/etc/X11/app-defaults/" || die "Failed to move NetHack.ad"
+
+ newicon nh_icon.xpm nethack.xpm
+ make_desktop_entry ${PN} Nethack
+
+ # install nethack fonts
+ bdftopcf -o nh10.pcf nh10.bdf || die "Converting fonts failed"
+ bdftopcf -o ibm.pcf ibm.bdf || die "Converting fonts failed"
+ insinto "/usr/$(get_libdir)/nethack/fonts"
+ doins *.pcf
+ mkfontdir "${ED}/usr/$(get_libdir)/nethack/fonts" || die "mkfontdir failed"
+ fi
+
+ rm -r "${ED}/var/games/nethack" || die "Failed to clean var/games/nethack"
+ keepdir /var/games/nethack/save
+}
+
+pkg_preinst() {
+ fowners root:gamestat /var/games/nethack /var/games/nethack/save
+ fperms 2770 /var/games/nethack /var/games/nethack/save
+
+ fowners root:gamestat "/usr/$(get_libdir)/nethack/nethack"
+ fperms g+s "/usr/$(get_libdir)/nethack/nethack"
+}
+
+pkg_postinst() {
+ cd "${EROOT}/var/games/nethack" || die "Failed to enter ${EROOT}/var/games/nethack directory"
+
+ # Transition mechanism for <nethack-3.6.1 ebuilds. It's perfectly safe, so we'll just run it unconditionally.
+ chmod 2770 . save || die "Failed to chmod statedir"
+
+ # Those files can't be created earlier because we don't want portage to wipe them during upgrades
+ ( umask 007 && touch logfile perm record xlogfile ) || die "Failed to create log files"
+
+ # Instead of using a proper version header in its save files, nethack checks for incompatibilities
+ # by comparing the mtimes of save files and its own binary. This would require admin interaction even
+ # during upgrades which don't change the file format, so we'll just touch the files and warn the admin
+ # manually in case of compatibility issues.
+ (
+ shopt -s nullglob
+ local saves=( bones* save/* )
+ [[ -n "${saves[*]}" ]] && touch -c "${saves[@]}"
+ ) # non-fatal
+
+ elog "A minimal default .nethackrc has been placed in /etc/skel/"
+ elog "The sysconf file is at /etc/nethack.sysconf"
+}