public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/
@ 2019-11-30  9:58 James Le Cuirot
  0 siblings, 0 replies; 5+ messages in thread
From: James Le Cuirot @ 2019-11-30  9:58 UTC (permalink / raw
  To: gentoo-commits

commit:     5ad447d42315fbe68d6bea0cd4b798b2a482b073
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 30 09:57:53 2019 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sat Nov 30 09:57:53 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ad447d4

games-roguelike/dwarf-fortress: Drop old 0.43.05

Package-Manager: Portage-2.3.80, Repoman-2.3.17
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-roguelike/dwarf-fortress/Manifest            |  2 -
 .../dwarf-fortress/dwarf-fortress-0.43.05.ebuild   | 84 ----------------------
 games-roguelike/dwarf-fortress/files/Makefile      | 32 ---------
 3 files changed, 118 deletions(-)

diff --git a/games-roguelike/dwarf-fortress/Manifest b/games-roguelike/dwarf-fortress/Manifest
index 00459266327..c42a144cfc7 100644
--- a/games-roguelike/dwarf-fortress/Manifest
+++ b/games-roguelike/dwarf-fortress/Manifest
@@ -1,4 +1,2 @@
-DIST df_43_05_linux.tar.bz2 11580594 BLAKE2B 7157f8ed5f8798a533d992811c804515acc8abb3bb84b25af6905fd6b2338e95879e318bec0dade18f1eba1421d17a781d1da8b49c719988d2cb6d7046b0c3be SHA512 502e6bac0bdd5586fb6b4e1117caf144a0336a7eed3ed9350ec316e4a286e309a15e0738517c0dd7d32f182984c501c7a8756e942d3dde9fb87f72b153f38e7a
-DIST df_43_05_linux32.tar.bz2 12158550 BLAKE2B 4c1f5ad834aa0a2b6438b8aaf0b0ad6cfc60656f58845a274ac3d8ad7e09182d7263e3a495d1bff0b1fb5499097569216fac0bc87cff95fc6a85e3211acc297d SHA512 d0446ddb5c37ee45ade36b18b815595e8d7bfd9749af4ecd2f25b45859d797a9da70f2344e2c58544feafc7df06882ade8a10534c37754359747c0d37f084b7c
 DIST df_44_12_linux.tar.bz2 12081683 BLAKE2B 2410e8da6af6a8ced45d3e95dc06e2d0f4e31dbdcd6b8d9945a761d2278532bb24c1095418aa22639eedded256b3d485fa128984e6282a491d4dc7bd9af8671b SHA512 03cd7f6800d44873b573cc5bffb12c7a246c3aba0ee8535001372df689a5179dc02592670fd87f2fd5de82421605f34152f6241307c8f7b9fb4d7b8704aed70c
 DIST df_44_12_linux32.tar.bz2 12686340 BLAKE2B bf1e1370930d91d2c9e72d3366bc79706092d1505853eb63c6160fea39822551d3276958ac6d2916b8f7825be0c054a037219210f0c2c18a731065a2dd1bb842 SHA512 5cd352acf310592c7e30442205b7fe590f421c5e3562959dcfd32a17d3d562347c2b32e3bc5835637c5550ce2c696c17b6dc910ee4cf766be07af306e83537db

diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.43.05.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.43.05.ebuild
deleted file mode 100644
index 1407c994dea..00000000000
--- a/games-roguelike/dwarf-fortress/dwarf-fortress-0.43.05.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit versionator toolchain-funcs
-
-MY_PV=$(replace_all_version_separators _ "$(get_version_component_range 2-)")
-MY_PN=df
-MY_P=${MY_PN}_${MY_PV}
-
-DESCRIPTION="A single-player fantasy game"
-HOMEPAGE="http://www.bay12games.com/dwarves"
-SRC_URI="amd64? ( http://www.bay12games.com/dwarves/${MY_P}_linux.tar.bz2 )
-	x86? ( http://www.bay12games.com/dwarves/${MY_P}_linux32.tar.bz2 )"
-
-LICENSE="free-noncomm BSD BitstreamVera"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
-IUSE="debug"
-
-RDEPEND="media-libs/glew:0
-	media-libs/libsdl[joystick,video]
-	media-libs/sdl-image[png]
-	media-libs/sdl-ttf
-	sys-libs/zlib
-	virtual/glu
-	x11-libs/gtk+:2"
-# Yup, libsndfile, openal and ncurses are only needed at compile-time; the code
-# dlopens them at runtime if requested.
-DEPEND="${RDEPEND}
-	media-libs/libsndfile
-	media-libs/openal
-	sys-libs/ncurses-compat:5[unicode]
-	virtual/pkgconfig"
-
-S=${WORKDIR}/${MY_PN}_linux
-
-gamesdir="/opt/${PN}"
-QA_PREBUILT="${gamesdir#/}/libs/Dwarf_Fortress"
-RESTRICT="strip"
-
-src_prepare() {
-	rm -f libs/*.so* || die
-	sed -i -e '1i#include <cmath>' g_src/ttf_manager.cpp || die
-	default
-}
-
-src_configure() {
-	tc-export CXX PKG_CONFIG
-	CXXFLAGS+=" -D$(use debug || echo N)DEBUG"
-}
-
-src_compile() {
-	emake -f "${FILESDIR}/Makefile.native"
-	sed -e "s:^gamesdir=.*:gamesdir=${gamesdir}:" "${FILESDIR}/dwarf-fortress" > dwarf-fortress || die
-}
-
-src_install() {
-	# install data-files and libs
-	insinto "${gamesdir}"
-	doins -r raw data libs
-
-	# install our wrapper
-	dobin dwarf-fortress
-
-	# install docs
-	dodoc README.linux *.txt
-
-	fperms 755 "${gamesdir}"/libs/Dwarf_Fortress
-}
-
-pkg_postinst() {
-	elog "System-wide Dwarf Fortress has been installed to ${gamesdir}. This is"
-	elog "symlinked to ~/.dwarf-fortress when dwarf-fortress is run."
-	elog "For more information on what exactly is replaced, see /usr/bin/dwarf-fortress."
-	elog "Note: This means that the primary entry point is /usr/bin/dwarf-fortress."
-	elog "Do not run ${gamesdir}/libs/Dwarf_Fortress."
-	elog
-	elog "Optional runtime dependencies:"
-	elog "Install sys-libs/ncurses[unicode] for [PRINT_MODE:TEXT]"
-	elog "Install media-libs/openal and media-libs/libsndfile for audio output"
-	elog "Install media-libs/libsdl[opengl] for the OpenGL PRINT_MODE settings"
-}

diff --git a/games-roguelike/dwarf-fortress/files/Makefile b/games-roguelike/dwarf-fortress/files/Makefile
deleted file mode 100644
index 856670b6a67..00000000000
--- a/games-roguelike/dwarf-fortress/files/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2014-2016 Alex Xu (Hello71)
-# Distributed under the terms of the GNU General Public License v2
-
-PKG_CONFIG ?= pkg-config
-PKG_CONFIG_PATH ?= /usr/lib32/pkgconfig:/usr/lib/pkgconfig
-PKG_CONFIG := PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG)
-
-SRCS := g_src/basics.cpp g_src/command_line.cpp g_src/enabler.cpp \
-	g_src/files.cpp g_src/find_files_posix.cpp g_src/graphics.cpp \
-	g_src/init.cpp g_src/interface.cpp g_src/keybindings.cpp \
-	g_src/music_and_sound_openal.cpp g_src/random.cpp g_src/textlines.cpp \
-	g_src/enabler_input.cpp g_src/KeybindingScreen.cpp \
-	g_src/win32_compat.cpp g_src/textures.cpp g_src/resize++.cpp \
-	g_src/renderer_offscreen.cpp g_src/ttf_manager.cpp g_src/ViewBase.cpp
-OBJS := $(SRCS:.cpp=.o)
-
-BLIBS := ncursesw openal sndfile
-LIBS := glew glu gtk+-2.0 sdl SDL_image SDL_ttf zlib
-CXXFLAGS ?= -O2 -pipe -Wall -Wextra
-CXXFLAGS += -m32 $(shell $(PKG_CONFIG) --cflags $(BLIBS) $(LIBS)) -Dunix -Dlinux -fPIC -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0
-LDLIBS := $(shell $(PKG_CONFIG) --libs $(LIBS))
-
-LG := libs/libgraphics.so
-
-all: $(LG)
-$(LG): $(OBJS)
-	$(LINK.cpp) -shared $^ $(LDLIBS) -o $@
-
-clean:
-	$(RM) $(LG) $(OBJS)
-
-.PHONY: clean


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/
@ 2022-07-06  8:39 Ionen Wolkens
  0 siblings, 0 replies; 5+ messages in thread
From: Ionen Wolkens @ 2022-07-06  8:39 UTC (permalink / raw
  To: gentoo-commits

commit:     3144840d8387b9c7f8b60c6381ad9c0060878296
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  6 06:27:56 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 08:37:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3144840d

games-roguelike/dwarf-fortress: misc ebuild adjustments

No fundamental changes, but some extras for the accumulated PR:
- adjust patches (scrubbed, fixed some malformation wrt missing files
  headers and a blank line, and included right line terminators so
  sed/dos2unix isn't needed)
- added basic icon for .desktop
- remove duplicate pkgconfig DEPEND (only needed in BDEPEND)
- add missing quotes for dobin's FILESDIR
- use prefixify_ro, failed to hprefixify as it did not exist in WORKDIR
- move DOC_CONTENTS to src_install and respect variable scope
- add libglvnd[X] and glib:2 to RDEPEND (injected by pkg-config)
- make libsdl[opengl] unconditional, don't see much worth as optfeature
  given currently need GL libraries either way
  (could argue audio may well be unconditional too, but left alone)
- add [-minimal] to libsndfile optfeature or it gives confusing
  "not found" errors
- further misc style adjustments

Thanks to everyone that worked on this.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-roguelike/dwarf-fortress/Manifest            |  1 +
 .../dwarf-fortress/dwarf-fortress-0.47.05.ebuild   | 95 ++++++++++------------
 ... => dwarf-fortress-0.47.05-missing-cmath.patch} | 11 +--
 ...=> dwarf-fortress-0.47.05-segfault-fixes.patch} | 65 ++++++---------
 4 files changed, 77 insertions(+), 95 deletions(-)

diff --git a/games-roguelike/dwarf-fortress/Manifest b/games-roguelike/dwarf-fortress/Manifest
index 8b96ead81a7a..84e82c2074f3 100644
--- a/games-roguelike/dwarf-fortress/Manifest
+++ b/games-roguelike/dwarf-fortress/Manifest
@@ -1,2 +1,3 @@
 DIST df_47_05_linux.tar.bz2 12725420 BLAKE2B 80987f05de2db2796a53cc8767ee7aa5c78674dff725efc0dafe07dc4118e56c7814cbf92507fe9b76a385e182405c7d6759cb6bcc942385110df1dc1a3b3af4 SHA512 9ea46fa12a80266cd09363f1aea8cdd059a5ebeefb453c4a46ffbb1115486409003c3caca95a1b6010da4040d04b781182c59e57a6cc033cd7de4507299f7534
 DIST df_47_05_linux32.tar.bz2 13487455 BLAKE2B be604dd2fd480c5609da801013dfdae26964760c0a92c4b3d2d8369800eee7ca9c1b1c2313cc67357feee3c6d425bf7f9f67cab53d2e771ab59055bc4c3329d0 SHA512 e9b9cf6995c24b403347159a35cfe4b57603bdb777c78639beb2799d9bf31317edec54fb92b17dbb90df6001b905d43285a35e9446768d12a746492b2fd34fe7
+DIST dwarf-fortress.png 271 BLAKE2B cbc14917de1556b25d3817298215beedc4cb01075b8454e38b2d314bdf22f8c20c4bf2332f0d731c7e4c6d6a60056361565221ce3db2c7a15fdf934bff01df54 SHA512 08bdc0e084f861b6e6a8b12e3bc93b9703f2a4cbc133d62d1c2931daf81ccd70b728853d5c05bed19a1ef477cf4ad10fce263bbab7d9cad3b60658f17063acf6

diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
index 8df73a95939f..e94ca7db6dd6 100644
--- a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
+++ b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
@@ -3,95 +3,90 @@
 
 EAPI=8
 
-inherit prefix optfeature toolchain-funcs desktop readme.gentoo-r1
+inherit desktop flag-o-matic optfeature prefix readme.gentoo-r1 toolchain-funcs
 
-MY_PV=$(ver_rs 1- _ "$(ver_cut 2-)")
-MY_P=df_${MY_PV}
+MY_P="df_$(ver_rs 1- _ $(ver_cut 2-))"
 
-DESCRIPTION="A single-player fantasy game"
-HOMEPAGE="https://www.bay12games.com/dwarves"
-SRC_URI="amd64? ( https://www.bay12games.com/dwarves/${MY_P}_linux.tar.bz2 )
-	x86? ( https://www.bay12games.com/dwarves/${MY_P}_linux32.tar.bz2 )"
-S="${WORKDIR}"/df_linux
-
-PATCHES=(
-	"${FILESDIR}/${P}-fix-cmath.patch"
-	"${FILESDIR}/${P}-segfault-fix-729002.patch"
-)
+DESCRIPTION="Single-player fantasy game"
+HOMEPAGE="https://www.bay12games.com/dwarves/"
+SRC_URI="
+	amd64? ( https://www.bay12games.com/dwarves/${MY_P}_linux.tar.bz2 )
+	x86? ( https://www.bay12games.com/dwarves/${MY_P}_linux32.tar.bz2 )
+	https://dev.gentoo.org/~ionen/distfiles/${PN}.png"
+S="${WORKDIR}/df_linux"
 
 LICENSE="free-noncomm BSD BitstreamVera"
 SLOT="0"
 KEYWORDS="-* ~amd64 ~x86"
 IUSE="debug"
 
-RDEPEND="media-libs/glew:0=
-	media-libs/libsdl[joystick,video]
+RDEPEND="
+	dev-libs/glib:2
+	media-libs/glew:0=
+	media-libs/libglvnd[X]
+	media-libs/libsdl[joystick,opengl,video]
 	media-libs/sdl-image[png]
 	media-libs/sdl-ttf
 	sys-libs/zlib:=
 	virtual/glu
 	x11-libs/gtk+:2"
-# Yup, libsndfile, openal and ncurses are only needed at compile-time; the code
-# dlopens them at runtime if requested.
-DEPEND="${RDEPEND}
+# libsndfile, openal and ncurses are only needed at compile-time,
+# optfeature through dlopen() at runtime if requested
+DEPEND="
+	${RDEPEND}
 	media-libs/libsndfile
 	media-libs/openal
-	sys-libs/ncurses-compat:5[unicode]
-	virtual/pkgconfig"
+	sys-libs/ncurses-compat:5[unicode]"
 BDEPEND="virtual/pkgconfig"
 
-QA_PREBUILT="/opt/${PN}/libs/Dwarf_Fortress"
+QA_PREBUILT="opt/${PN}/libs/Dwarf_Fortress"
 
-DOC_CONTENTS="Dwarf Fortress has been installed to /opt/${PN}. This is
-	symlinked to ~/.dwarf-fortress when dwarf-fortress is run.
-	For more information on what exactly is replaced, see ${EROOT}/usr/bin/dwarf-fortress.
-	Note: This means that the primary entry point is ${EROOT}/usr/bin/dwarf-fortress.
-	Do not run /opt/${PN}/libs/Dwarf_Fortress."
+PATCHES=(
+	"${FILESDIR}"/${P}-missing-cmath.patch
+	"${FILESDIR}"/${P}-segfault-fixes.patch
+)
 
 src_prepare() {
-	# fix line endings so the patches can apply properly
-	sed -i \
-		-e 's/\r$//' \
-		g_src/ttf_manager.cpp \
-		g_src/music_and_sound_openal.cpp \
-		|| die
-
 	default
 
-	# dwarf fortress includes prebuilt libraries such as libstdc++ we won't use
-	rm -f libs/*.so* || die
-}
-
-src_configure() {
-	hprefixify "${WORKDIR}/dwarf-fortress"
-
-	CXXFLAGS+=" -D$(use debug || echo N)DEBUG"
+	# remove prebuilt libraries that are provided by the system
+	rm libs/*.so* || die
 }
 
 src_compile() {
 	tc-export CXX PKG_CONFIG
 
-	emake -f "${FILESDIR}/Makefile.native"
+	# -DDEBUG is recognized to give additional debug output
+	append-cppflags -D$(usev !debug N)DEBUG
+
+	emake -f "${FILESDIR}"/Makefile.native
 }
 
 src_install() {
 	insinto /opt/${PN}
-	doins -r raw data libs
+	doins -r data libs raw
 
-	dobin ${FILESDIR}/dwarf-fortress
+	fperms +x /opt/${PN}/libs/Dwarf_Fortress
 
-	readme.gentoo_create_doc
-	dodoc README.linux *.txt
+	dobin "$(prefixify_ro "${FILESDIR}"/dwarf-fortress)"
 
-	fperms 755 /opt/${PN}/libs/Dwarf_Fortress
+	doicon "${DISTDIR}"/${PN}.png
+	make_desktop_entry dwarf-fortress "Dwarf Fortress"
 
-	make_desktop_entry dwarf-fortress "Dwarf Fortress" "dwarf-fortress" Game
+	dodoc README.linux *.txt
+
+	local DOC_CONTENTS="
+		Dwarf Fortress has been installed to ${EPREFIX}/opt/${PN}. This is
+		symlinked to ~/.${PN} when ${PN} is run. For more information on what
+		exactly is replaced, see ${EPREFIX}/usr/bin/${PN}. Note: This means
+		that the primary entry point is ${EPREFIX}/usr/bin/${PN}, do not run
+		${EPREFIX}/opt/${PN}/libs/Dwarf_Fortress."
+	readme.gentoo_create_doc
 }
 
 pkg_postinst() {
 	readme.gentoo_print_elog
 
 	optfeature "text PRINT_MODE" sys-libs/ncurses-compat:5[unicode]
-	optfeature "audio output" "media-libs/openal media-libs/libsndfile"
-	optfeature "OpenGL PRINT_MODE" media-libs/libsdl[opengl]
+	optfeature "audio output" "media-libs/openal media-libs/libsndfile[-minimal]"
 }

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-missing-cmath.patch
similarity index 50%
rename from games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch
rename to games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-missing-cmath.patch
index 21017f6b41b1..a3028764afac 100644
--- a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-missing-cmath.patch
@@ -1,11 +1,8 @@
 Fixes compilation due to missing <cmath> header required in this file.
 
-diff --git a/g_src/ttf_manager.cpp b/g_src/ttf_manager.cpp
-@@ -1,6 +1,7 @@
- #include "ttf_manager.hpp"
+--- a/g_src/ttf_manager.cpp
++++ b/g_src/ttf_manager.cpp
+@@ -2,2 +2,3 @@
  #include "init.h"
- #include <iostream>
 +#include <cmath>
-
- using namespace std;
-
+ #include <iostream>

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
similarity index 54%
rename from games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch
rename to games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
index 0f0a9a672874..24c43be41188 100644
--- a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
@@ -1,49 +1,38 @@
-Fixes a bug due to OpenAL soft crashing the game on startup: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
-Fixes a bug regarding an infinite loop on anything higher than -O1: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
+Fixes segfault / infinite loop with OpenAL and anything higher
+than -O1 mostly due to missing return values.
 
+https://bugs.gentoo.org/703384
+https://bugs.gentoo.org/703386
 https://bugs.gentoo.org/729002
-
-diff --git a/g_src/enabler.cpp b/g_src/enabler.cpp
+https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
 --- a/g_src/enabler.cpp
 +++ b/g_src/enabler.cpp
-@@ -590,6 +590,10 @@ int enablerst::loop(string cmdline) {
-
+@@ -591,4 +591,6 @@
    // Clean up graphical resources
    delete renderer;
 +
 +  return 0;
  }
-
- void enablerst::override_grid_size(int x, int y) {
-diff --git a/g_src/music_and_sound_openal.cpp b/g_src/music_and_sound_openal.cpp
+ 
 --- a/g_src/music_and_sound_openal.cpp
 +++ b/g_src/music_and_sound_openal.cpp
-@@ -250,7 +250,11 @@ void musicsoundst::deinitsound() {
-     alDeleteBuffers(1, &buffer);
-   }
-   // Deinit OpenAL
--  alcMakeContextCurrent(NULL);
-+
-+  //alcMakeContextCurrent(NULL);
-+
-   alcDestroyContext(context);
-   alcCloseDevice(device);
-
-@@ -480,7 +484,9 @@ static bool init_openal() {
-
- void alEnable( ALenum capability ) { _alEnable(capability); }
- void alDisable( ALenum capability ) { _alDisable(capability); }
--ALboolean alIsEnabled( ALenum capability ) { _alIsEnabled(capability); }
-+ALboolean alIsEnabled( ALenum capability ) { return _alIsEnabled(capability); }
- const ALchar* alGetString( ALenum param ) { return _alGetString(param); }
- void alGetBooleanv( ALenum param, ALboolean* data ) { _alGetBooleanv(param, data); }
- void alGetIntegerv( ALenum param, ALint* data ) { _alGetIntegerv(param, data); }
-@@ -490,7 +496,9 @@ ALboolean alGetBoolean( ALenum param ) { return _alGetBoolean(param); }
- ALint alGetInteger( ALenum param ) { return _alGetInteger(param); }
- ALfloat alGetFloat( ALenum param ) { return _alGetFloat(param); }
- ALdouble alGetDouble( ALenum param ) { return _alGetDouble(param); }
--ALenum alGetError( void ) { _alGetError(); }
-+ALenum alGetError( void ) { return _alGetError(); }
- ALboolean alIsExtensionPresent( const ALchar* extname ) { return _alIsExtensionPresent(extname); }
- void* alGetProcAddress( const ALchar* fname ) { return _alGetProcAddress(fname); }
- ALenum alGetEnumValue( const ALchar* ename ) { return _alGetEnumValue(ename); }
+@@ -251,5 +251,4 @@
+   }
+   // Deinit OpenAL
+-  alcMakeContextCurrent(NULL);
+   alcDestroyContext(context);
+   alcCloseDevice(device);
+@@ -481,5 +480,5 @@
+ void alEnable( ALenum capability ) { _alEnable(capability); }
+ void alDisable( ALenum capability ) { _alDisable(capability); }
+-ALboolean alIsEnabled( ALenum capability ) { _alIsEnabled(capability); }
++ALboolean alIsEnabled( ALenum capability ) { return _alIsEnabled(capability); }
+ const ALchar* alGetString( ALenum param ) { return _alGetString(param); }
+ void alGetBooleanv( ALenum param, ALboolean* data ) { _alGetBooleanv(param, data); }
+@@ -491,5 +490,5 @@
+ ALfloat alGetFloat( ALenum param ) { return _alGetFloat(param); }
+ ALdouble alGetDouble( ALenum param ) { return _alGetDouble(param); }
+-ALenum alGetError( void ) { _alGetError(); }
++ALenum alGetError( void ) { return _alGetError(); }
+ ALboolean alIsExtensionPresent( const ALchar* extname ) { return _alIsExtensionPresent(extname); }
+ void* alGetProcAddress( const ALchar* fname ) { return _alGetProcAddress(fname); }


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/
@ 2022-07-06  8:39 Ionen Wolkens
  0 siblings, 0 replies; 5+ messages in thread
From: Ionen Wolkens @ 2022-07-06  8:39 UTC (permalink / raw
  To: gentoo-commits

commit:     97a24df3591ca7bebd0fcd189e1da5f16240715c
Author:     Joshua Goins <josh <AT> redstrate <DOT> com>
AuthorDate: Tue Jun 28 23:57:28 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 08:37:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97a24df3

games-roguelike/dwarf-fortress: add 0.47.05

Signed-off-by: Joshua Goins <josh <AT> redstrate.com>
Co-authored-by: Sven Eusewig <sveneusewig <AT> yahoo.de>
Co-authored-by: Wolfgang E. Sanyer <ezzieyguywuf <AT> gmail.com>
Closes: https://bugs.gentoo.org/703384
Closes: https://bugs.gentoo.org/703386
Closes: https://bugs.gentoo.org/717752
Closes: https://bugs.gentoo.org/729002
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-roguelike/dwarf-fortress/Manifest            |  2 +
 .../dwarf-fortress/dwarf-fortress-0.47.05.ebuild   | 97 ++++++++++++++++++++++
 .../files/dwarf-fortress-0.47.05-fix-cmath.patch   | 11 +++
 ...warf-fortress-0.47.05-segfault-fix-729002.patch | 49 +++++++++++
 4 files changed, 159 insertions(+)

diff --git a/games-roguelike/dwarf-fortress/Manifest b/games-roguelike/dwarf-fortress/Manifest
index c42a144cfc72..f7f5a8d0f1fa 100644
--- a/games-roguelike/dwarf-fortress/Manifest
+++ b/games-roguelike/dwarf-fortress/Manifest
@@ -1,2 +1,4 @@
 DIST df_44_12_linux.tar.bz2 12081683 BLAKE2B 2410e8da6af6a8ced45d3e95dc06e2d0f4e31dbdcd6b8d9945a761d2278532bb24c1095418aa22639eedded256b3d485fa128984e6282a491d4dc7bd9af8671b SHA512 03cd7f6800d44873b573cc5bffb12c7a246c3aba0ee8535001372df689a5179dc02592670fd87f2fd5de82421605f34152f6241307c8f7b9fb4d7b8704aed70c
 DIST df_44_12_linux32.tar.bz2 12686340 BLAKE2B bf1e1370930d91d2c9e72d3366bc79706092d1505853eb63c6160fea39822551d3276958ac6d2916b8f7825be0c054a037219210f0c2c18a731065a2dd1bb842 SHA512 5cd352acf310592c7e30442205b7fe590f421c5e3562959dcfd32a17d3d562347c2b32e3bc5835637c5550ce2c696c17b6dc910ee4cf766be07af306e83537db
+DIST df_47_05_linux.tar.bz2 12725420 BLAKE2B 80987f05de2db2796a53cc8767ee7aa5c78674dff725efc0dafe07dc4118e56c7814cbf92507fe9b76a385e182405c7d6759cb6bcc942385110df1dc1a3b3af4 SHA512 9ea46fa12a80266cd09363f1aea8cdd059a5ebeefb453c4a46ffbb1115486409003c3caca95a1b6010da4040d04b781182c59e57a6cc033cd7de4507299f7534
+DIST df_47_05_linux32.tar.bz2 13487455 BLAKE2B be604dd2fd480c5609da801013dfdae26964760c0a92c4b3d2d8369800eee7ca9c1b1c2313cc67357feee3c6d425bf7f9f67cab53d2e771ab59055bc4c3329d0 SHA512 e9b9cf6995c24b403347159a35cfe4b57603bdb777c78639beb2799d9bf31317edec54fb92b17dbb90df6001b905d43285a35e9446768d12a746492b2fd34fe7

diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
new file mode 100644
index 000000000000..8df73a95939f
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit prefix optfeature toolchain-funcs desktop readme.gentoo-r1
+
+MY_PV=$(ver_rs 1- _ "$(ver_cut 2-)")
+MY_P=df_${MY_PV}
+
+DESCRIPTION="A single-player fantasy game"
+HOMEPAGE="https://www.bay12games.com/dwarves"
+SRC_URI="amd64? ( https://www.bay12games.com/dwarves/${MY_P}_linux.tar.bz2 )
+	x86? ( https://www.bay12games.com/dwarves/${MY_P}_linux32.tar.bz2 )"
+S="${WORKDIR}"/df_linux
+
+PATCHES=(
+	"${FILESDIR}/${P}-fix-cmath.patch"
+	"${FILESDIR}/${P}-segfault-fix-729002.patch"
+)
+
+LICENSE="free-noncomm BSD BitstreamVera"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="debug"
+
+RDEPEND="media-libs/glew:0=
+	media-libs/libsdl[joystick,video]
+	media-libs/sdl-image[png]
+	media-libs/sdl-ttf
+	sys-libs/zlib:=
+	virtual/glu
+	x11-libs/gtk+:2"
+# Yup, libsndfile, openal and ncurses are only needed at compile-time; the code
+# dlopens them at runtime if requested.
+DEPEND="${RDEPEND}
+	media-libs/libsndfile
+	media-libs/openal
+	sys-libs/ncurses-compat:5[unicode]
+	virtual/pkgconfig"
+BDEPEND="virtual/pkgconfig"
+
+QA_PREBUILT="/opt/${PN}/libs/Dwarf_Fortress"
+
+DOC_CONTENTS="Dwarf Fortress has been installed to /opt/${PN}. This is
+	symlinked to ~/.dwarf-fortress when dwarf-fortress is run.
+	For more information on what exactly is replaced, see ${EROOT}/usr/bin/dwarf-fortress.
+	Note: This means that the primary entry point is ${EROOT}/usr/bin/dwarf-fortress.
+	Do not run /opt/${PN}/libs/Dwarf_Fortress."
+
+src_prepare() {
+	# fix line endings so the patches can apply properly
+	sed -i \
+		-e 's/\r$//' \
+		g_src/ttf_manager.cpp \
+		g_src/music_and_sound_openal.cpp \
+		|| die
+
+	default
+
+	# dwarf fortress includes prebuilt libraries such as libstdc++ we won't use
+	rm -f libs/*.so* || die
+}
+
+src_configure() {
+	hprefixify "${WORKDIR}/dwarf-fortress"
+
+	CXXFLAGS+=" -D$(use debug || echo N)DEBUG"
+}
+
+src_compile() {
+	tc-export CXX PKG_CONFIG
+
+	emake -f "${FILESDIR}/Makefile.native"
+}
+
+src_install() {
+	insinto /opt/${PN}
+	doins -r raw data libs
+
+	dobin ${FILESDIR}/dwarf-fortress
+
+	readme.gentoo_create_doc
+	dodoc README.linux *.txt
+
+	fperms 755 /opt/${PN}/libs/Dwarf_Fortress
+
+	make_desktop_entry dwarf-fortress "Dwarf Fortress" "dwarf-fortress" Game
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+
+	optfeature "text PRINT_MODE" sys-libs/ncurses-compat:5[unicode]
+	optfeature "audio output" "media-libs/openal media-libs/libsndfile"
+	optfeature "OpenGL PRINT_MODE" media-libs/libsdl[opengl]
+}

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch
new file mode 100644
index 000000000000..21017f6b41b1
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-fix-cmath.patch
@@ -0,0 +1,11 @@
+Fixes compilation due to missing <cmath> header required in this file.
+
+diff --git a/g_src/ttf_manager.cpp b/g_src/ttf_manager.cpp
+@@ -1,6 +1,7 @@
+ #include "ttf_manager.hpp"
+ #include "init.h"
+ #include <iostream>
++#include <cmath>
+
+ using namespace std;
+

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch
new file mode 100644
index 000000000000..0f0a9a672874
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch
@@ -0,0 +1,49 @@
+Fixes a bug due to OpenAL soft crashing the game on startup: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
+Fixes a bug regarding an infinite loop on anything higher than -O1: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
+
+https://bugs.gentoo.org/729002
+
+diff --git a/g_src/enabler.cpp b/g_src/enabler.cpp
+--- a/g_src/enabler.cpp
++++ b/g_src/enabler.cpp
+@@ -590,6 +590,10 @@ int enablerst::loop(string cmdline) {
+
+   // Clean up graphical resources
+   delete renderer;
++
++  return 0;
+ }
+
+ void enablerst::override_grid_size(int x, int y) {
+diff --git a/g_src/music_and_sound_openal.cpp b/g_src/music_and_sound_openal.cpp
+--- a/g_src/music_and_sound_openal.cpp
++++ b/g_src/music_and_sound_openal.cpp
+@@ -250,7 +250,11 @@ void musicsoundst::deinitsound() {
+     alDeleteBuffers(1, &buffer);
+   }
+   // Deinit OpenAL
+-  alcMakeContextCurrent(NULL);
++
++  //alcMakeContextCurrent(NULL);
++
+   alcDestroyContext(context);
+   alcCloseDevice(device);
+
+@@ -480,7 +484,9 @@ static bool init_openal() {
+
+ void alEnable( ALenum capability ) { _alEnable(capability); }
+ void alDisable( ALenum capability ) { _alDisable(capability); }
+-ALboolean alIsEnabled( ALenum capability ) { _alIsEnabled(capability); }
++ALboolean alIsEnabled( ALenum capability ) { return _alIsEnabled(capability); }
+ const ALchar* alGetString( ALenum param ) { return _alGetString(param); }
+ void alGetBooleanv( ALenum param, ALboolean* data ) { _alGetBooleanv(param, data); }
+ void alGetIntegerv( ALenum param, ALint* data ) { _alGetIntegerv(param, data); }
+@@ -490,7 +496,9 @@ ALboolean alGetBoolean( ALenum param ) { return _alGetBoolean(param); }
+ ALint alGetInteger( ALenum param ) { return _alGetInteger(param); }
+ ALfloat alGetFloat( ALenum param ) { return _alGetFloat(param); }
+ ALdouble alGetDouble( ALenum param ) { return _alGetDouble(param); }
+-ALenum alGetError( void ) { _alGetError(); }
++ALenum alGetError( void ) { return _alGetError(); }
+ ALboolean alIsExtensionPresent( const ALchar* extname ) { return _alIsExtensionPresent(extname); }
+ void* alGetProcAddress( const ALchar* fname ) { return _alGetProcAddress(fname); }
+ ALenum alGetEnumValue( const ALchar* ename ) { return _alGetEnumValue(ename); }


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/
@ 2022-07-06  8:39 Ionen Wolkens
  0 siblings, 0 replies; 5+ messages in thread
From: Ionen Wolkens @ 2022-07-06  8:39 UTC (permalink / raw
  To: gentoo-commits

commit:     076b3ec1fa47159e7addff734dd752f536f654e2
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  6 07:19:08 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 08:37:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=076b3ec1

games-roguelike/dwarf-fortress: fix text mode, use ncurses-6

ncurses-compat doesn't work in DEPEND given it installs no headers,
and then it went and built against ncurses-6 then tried to load
ncurses-5 which unsurprisingly fails.

Seems to work with 6, but haven't tested much (better than entirely
broken either way).

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../dwarf-fortress/dwarf-fortress-0.47.05.ebuild   |  5 +++--
 .../files/dwarf-fortress-0.47.05-ncurses6.patch    | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
index e94ca7db6dd6..dac5c1c75c94 100644
--- a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
+++ b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
@@ -36,13 +36,14 @@ DEPEND="
 	${RDEPEND}
 	media-libs/libsndfile
 	media-libs/openal
-	sys-libs/ncurses-compat:5[unicode]"
+	sys-libs/ncurses"
 BDEPEND="virtual/pkgconfig"
 
 QA_PREBUILT="opt/${PN}/libs/Dwarf_Fortress"
 
 PATCHES=(
 	"${FILESDIR}"/${P}-missing-cmath.patch
+	"${FILESDIR}"/${P}-ncurses6.patch
 	"${FILESDIR}"/${P}-segfault-fixes.patch
 )
 
@@ -87,6 +88,6 @@ src_install() {
 pkg_postinst() {
 	readme.gentoo_print_elog
 
-	optfeature "text PRINT_MODE" sys-libs/ncurses-compat:5[unicode]
+	optfeature "text PRINT_MODE" sys-libs/ncurses
 	optfeature "audio output" "media-libs/openal media-libs/libsndfile[-minimal]"
 }

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-ncurses6.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-ncurses6.patch
new file mode 100644
index 000000000000..dda54296d06f
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-ncurses6.patch
@@ -0,0 +1,22 @@
+Gentoo does not have ncurses5 headers anymore, and this fails with 6
+when using wattrset that it currently expects to be a macro.
+--- a/g_src/curses.h
++++ b/g_src/curses.h
+@@ -9,2 +9,5 @@
+ #else
++# ifndef NCURSES_WATTR_MACROS
++#  define NCURSES_WATTR_MACROS 1
++# endif
+ # include <ncursesw/curses.h>
+--- a/g_src/renderer_curses.cpp
++++ b/g_src/renderer_curses.cpp
+@@ -296,3 +296,3 @@
+       // We prefer libncursesw, but we'll accept libncurses if we have to
+-      handle = dlopen("libncursesw.so.5", RTLD_LAZY);
++      handle = dlopen("libncursesw.so.6", RTLD_LAZY);
+       if (handle) goto opened;
+@@ -304,3 +304,3 @@
+       if (handle) goto opened;
+-      handle = dlopen("libncurses.so.5", RTLD_LAZY);
++      handle = dlopen("libncurses.so.6", RTLD_LAZY);
+       if (handle) goto opened;


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/
@ 2022-10-09 12:08 James Le Cuirot
  0 siblings, 0 replies; 5+ messages in thread
From: James Le Cuirot @ 2022-10-09 12:08 UTC (permalink / raw
  To: gentoo-commits

commit:     1f452038d6b0f5b676e3d933d40f2fd5a797c576
Author:     Finn Rayment <finn <AT> rayment <DOT> fr>
AuthorDate: Wed Aug 24 04:22:13 2022 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Oct  9 12:08:35 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f452038

games-roguelike/dwarf-fortress: Added gui? USE flag and removed hard dep.

GTK was required for runtime but was only used for a single fullscreen
dialog prompt when the config [WINDOWED:PROMPT].

Now, if libgraphics is compiled without using GTK, the game will not ask
at all if run from a window manager, but instead open in windowed mode.
However, if the game is run from a terminal, a simple scanf procedure
will ask the user for yes/no before deciding.

Signed-off-by: Finn Rayment <finn <AT> rayment.fr>
Bug: https://bugs.gentoo.org/856685
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 ....05.ebuild => dwarf-fortress-0.47.05-r1.ebuild} |   7 +-
 .../dwarf-fortress/files/Makefile.native           |   9 +-
 .../files/dwarf-fortress-0.47.05-nogtk.patch       | 119 +++++++++++++++++++++
 .../dwarf-fortress-0.47.05-segfault-fixes.patch    |  16 ++-
 4 files changed, 143 insertions(+), 8 deletions(-)

diff --git a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05-r1.ebuild
similarity index 94%
rename from games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
rename to games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05-r1.ebuild
index dac5c1c75c94..09f1a0c25b24 100644
--- a/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05.ebuild
+++ b/games-roguelike/dwarf-fortress/dwarf-fortress-0.47.05-r1.ebuild
@@ -18,7 +18,7 @@ S="${WORKDIR}/df_linux"
 LICENSE="free-noncomm BSD BitstreamVera"
 SLOT="0"
 KEYWORDS="-* ~amd64 ~x86"
-IUSE="debug"
+IUSE="debug gui"
 
 RDEPEND="
 	dev-libs/glib:2
@@ -29,7 +29,7 @@ RDEPEND="
 	media-libs/sdl-ttf
 	sys-libs/zlib:=
 	virtual/glu
-	x11-libs/gtk+:2"
+	gui? ( x11-libs/gtk+:2 )"
 # libsndfile, openal and ncurses are only needed at compile-time,
 # optfeature through dlopen() at runtime if requested
 DEPEND="
@@ -44,6 +44,7 @@ QA_PREBUILT="opt/${PN}/libs/Dwarf_Fortress"
 PATCHES=(
 	"${FILESDIR}"/${P}-missing-cmath.patch
 	"${FILESDIR}"/${P}-ncurses6.patch
+	"${FILESDIR}"/${P}-nogtk.patch
 	"${FILESDIR}"/${P}-segfault-fixes.patch
 )
 
@@ -60,7 +61,7 @@ src_compile() {
 	# -DDEBUG is recognized to give additional debug output
 	append-cppflags -D$(usev !debug N)DEBUG
 
-	emake -f "${FILESDIR}"/Makefile.native
+	emake -f "${FILESDIR}"/Makefile.native HAVE_GTK=$(usex gui 1 0)
 }
 
 src_install() {

diff --git a/games-roguelike/dwarf-fortress/files/Makefile.native b/games-roguelike/dwarf-fortress/files/Makefile.native
index 85383e5e2f1d..d22fb03f4694 100644
--- a/games-roguelike/dwarf-fortress/files/Makefile.native
+++ b/games-roguelike/dwarf-fortress/files/Makefile.native
@@ -1,6 +1,8 @@
 # Copyright 2014-2016 Alex Xu (Hello71)
 # Distributed under the terms of the GNU General Public License v2
 
+HAVE_GTK ?= 1
+
 SRCS := g_src/basics.cpp g_src/command_line.cpp g_src/enabler.cpp \
 	g_src/files.cpp g_src/find_files_posix.cpp g_src/graphics.cpp \
 	g_src/init.cpp g_src/interface.cpp g_src/keybindings.cpp \
@@ -11,7 +13,12 @@ SRCS := g_src/basics.cpp g_src/command_line.cpp g_src/enabler.cpp \
 OBJS := $(SRCS:.cpp=.o)
 
 BLIBS := ncursesw openal sndfile
-LIBS := glew glu gtk+-2.0 sdl SDL_image SDL_ttf zlib
+
+LIBS := glew glu sdl SDL_image SDL_ttf zlib
+ifeq ($(HAVE_GTK),1)
+LIBS += gtk+-2.0
+endif
+
 CXXFLAGS ?= -O2 -pipe -Wall -Wextra
 CXXFLAGS += $(shell $(PKG_CONFIG) --cflags $(BLIBS) $(LIBS)) -Dunix -Dlinux -fPIC -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0
 LDLIBS := $(shell $(PKG_CONFIG) --libs $(LIBS))

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-nogtk.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-nogtk.patch
new file mode 100644
index 000000000000..7702362b4a69
--- /dev/null
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-nogtk.patch
@@ -0,0 +1,119 @@
+Removes hard dependency on GTK in favour of stdin calls.
+
+--- a/g_src/KeybindingScreen.cpp
++++ b/g_src/KeybindingScreen.cpp
+@@ -1,7 +1,9 @@
+ #ifdef __APPLE__
+ # include "osx_messagebox.h"
+ #elif defined(unix)
+-# include <gtk/gtk.h>
++# ifdef HAVE_GTK
++#  include <gtk/gtk.h>
++# endif
+ #endif
+ 
+ #include "GL/glew.h"
+--- a/g_src/enabler.cpp
++++ b/g_src/enabler.cpp
+@@ -1,7 +1,9 @@
+ #ifdef __APPLE__
+ # include "osx_messagebox.h"
+ #elif defined(unix)
+-# include <gtk/gtk.h>
++# ifdef HAVE_GTK
++#  include <gtk/gtk.h>
++# endif
+ #endif
+ 
+ #include <cassert>
+@@ -713,7 +715,7 @@ int main (int argc, char* argv[]) {
+ #ifdef unix
+   setlocale(LC_ALL, "");
+ #endif
+-#if !defined(__APPLE__) && defined(unix)
++#if !defined(__APPLE__) && defined(unix) && defined(HAVE_GTK)
+   bool gtk_ok = false;
+   if (getenv("DISPLAY"))
+     gtk_ok = gtk_init_check(&argc, &argv);
+@@ -734,6 +736,7 @@ int main (int argc, char* argv[]) {
+   init.begin(); // Load init.txt settings
+   
+ #if !defined(__APPLE__) && defined(unix)
++ #if defined(HAVE_GTK)
+   if (!gtk_ok && !init.display.flag.has_flag(INIT_DISPLAY_FLAG_TEXT)) {
+     puts("Display not found and PRINT_MODE not set to TEXT, aborting.");
+     exit(EXIT_FAILURE);
+@@ -743,6 +746,7 @@ int main (int argc, char* argv[]) {
+     puts("Graphical tiles are not compatible with text output, sorry");
+     exit(EXIT_FAILURE);
+   }
++ #endif
+ #endif
+ 
+   // Initialize video, if we /use/ video
+--- a/g_src/renderer_curses.cpp
++++ b/g_src/renderer_curses.cpp
+@@ -1,3 +1,7 @@
++#if defined(__APPLE__) || defined(unix)
++# include <unistd.h>
++#endif
++
+ static bool curses_initialized = false;
+ 
+ static void endwin_void() {
+--- a/g_src/win32_compat.cpp
++++ b/g_src/win32_compat.cpp
+@@ -13,7 +13,11 @@
+ # ifdef __APPLE__
+ #  include "osx_messagebox.h"
+ # elif defined(unix)
+-#  include <gtk/gtk.h>
++#  ifdef HAVE_GTK
++#    include <gtk/gtk.h>
++#  else
++#    include <unistd.h>
++#  endif
+ # endif
+ #endif
+ 
+@@ -112,6 +116,7 @@ int MessageBox(HWND *dummy, const char *text, const char *caption, UINT type)
+   }
+ # else // GTK code
+   if (getenv("DISPLAY")) {
++  #ifdef HAVE_GTK
+     // Have X, will dialog
+     GtkWidget *dialog = gtk_message_dialog_new(NULL,
+                                                GTK_DIALOG_DESTROY_WITH_PARENT,
+@@ -141,6 +146,23 @@ int MessageBox(HWND *dummy, const char *text, const char *caption, UINT type)
+         break;
+       }
+     }
++  #else
++    if (isatty(fileno(stdin))) {
++      dprintf(2, "Alert %s:\n%s\n", caption ? caption : "", text ? text : "");
++      if (type & MB_YESNO) {
++        while(ret == IDOK) {
++          dprintf(2, "please answer with 'yes' or 'no'\n");
++          char buf[16];
++          fgets(buf, sizeof buf, stdin);
++          if(!strncmp(buf, "yes", 3)) ret = IDYES;
++          else if(!strncmp(buf, "no", 2)) ret = IDNO;
++        }
++      }
++    } else {
++      /* just assume windowed if no TTY is available to ask */
++      ret = IDNO;
++    }
++  #endif /* HAVE_GTK */
+   } else {
+     // Use curses
+     init_curses();
+@@ -173,7 +195,7 @@ int MessageBox(HWND *dummy, const char *text, const char *caption, UINT type)
+     }
+     nodelay(*stdscr_p, -1);
+   }
+-# endif
++  #endif
+   
+   if (toggle_screen) {
+     enabler.toggle_fullscreen();

diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
index 24c43be41188..11a820ac97df 100644
--- a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
+++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fixes.patch
@@ -7,32 +7,40 @@ https://bugs.gentoo.org/729002
 https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564
 --- a/g_src/enabler.cpp
 +++ b/g_src/enabler.cpp
-@@ -591,4 +591,6 @@
+@@ -592,6 +592,8 @@ int enablerst::loop(string cmdline) {
+ 
    // Clean up graphical resources
    delete renderer;
 +
 +  return 0;
  }
  
+ void enablerst::override_grid_size(int x, int y) {
 --- a/g_src/music_and_sound_openal.cpp
 +++ b/g_src/music_and_sound_openal.cpp
-@@ -251,5 +251,4 @@
+@@ -250,7 +250,6 @@ void musicsoundst::deinitsound() {
+     alDeleteBuffers(1, &buffer);
    }
    // Deinit OpenAL
 -  alcMakeContextCurrent(NULL);
    alcDestroyContext(context);
    alcCloseDevice(device);
-@@ -481,5 +480,5 @@
+ 
+@@ -480,7 +479,7 @@ static bool init_openal() {
+ 
  void alEnable( ALenum capability ) { _alEnable(capability); }
  void alDisable( ALenum capability ) { _alDisable(capability); }
 -ALboolean alIsEnabled( ALenum capability ) { _alIsEnabled(capability); }
 +ALboolean alIsEnabled( ALenum capability ) { return _alIsEnabled(capability); }
  const ALchar* alGetString( ALenum param ) { return _alGetString(param); }
  void alGetBooleanv( ALenum param, ALboolean* data ) { _alGetBooleanv(param, data); }
-@@ -491,5 +490,5 @@
+ void alGetIntegerv( ALenum param, ALint* data ) { _alGetIntegerv(param, data); }
+@@ -490,7 +489,7 @@ ALboolean alGetBoolean( ALenum param ) { return _alGetBoolean(param); }
+ ALint alGetInteger( ALenum param ) { return _alGetInteger(param); }
  ALfloat alGetFloat( ALenum param ) { return _alGetFloat(param); }
  ALdouble alGetDouble( ALenum param ) { return _alGetDouble(param); }
 -ALenum alGetError( void ) { _alGetError(); }
 +ALenum alGetError( void ) { return _alGetError(); }
  ALboolean alIsExtensionPresent( const ALchar* extname ) { return _alIsExtensionPresent(extname); }
  void* alGetProcAddress( const ALchar* fname ) { return _alGetProcAddress(fname); }
+ ALenum alGetEnumValue( const ALchar* ename ) { return _alGetEnumValue(ename); }


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-09 12:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-06  8:39 [gentoo-commits] repo/gentoo:master commit in: games-roguelike/dwarf-fortress/files/, games-roguelike/dwarf-fortress/ Ionen Wolkens
  -- strict thread matches above, loose matches on Subject: below --
2022-10-09 12:08 James Le Cuirot
2022-07-06  8:39 Ionen Wolkens
2022-07-06  8:39 Ionen Wolkens
2019-11-30  9:58 James Le Cuirot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox