commit:     0eb5945523b372ac326be69382e32d067358486b
Author:     Jakov Smolic <jakov.smolic <AT> sartura <DOT> hr>
AuthorDate: Sat Feb 20 19:31:11 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Feb 20 19:31:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0eb59455

games-engines/gargoyle: Bump to 2019.1.1

* Fix build with gcc-10

Closes: https://bugs.gentoo.org/750404
Bug: https://bugs.gentoo.org/739206
Signed-off-by: Jakov Smolic <jakov.smolic <AT> sartura.hr>
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 games-engines/gargoyle/Manifest                    |   1 +
 .../files/gargoyle-2019.1.1-QA-desktop.patch       |  11 ++
 .../files/gargoyle-2019.1.1-fno-common.patch       | 168 +++++++++++++++++++++
 games-engines/gargoyle/gargoyle-2019.1.1.ebuild    | 109 +++++++++++++
 games-engines/gargoyle/metadata.xml                |   2 +-
 5 files changed, 290 insertions(+), 1 deletion(-)

diff --git a/games-engines/gargoyle/Manifest b/games-engines/gargoyle/Manifest
index 1be9eb20f80..63d013dc874 100644
--- a/games-engines/gargoyle/Manifest
+++ b/games-engines/gargoyle/Manifest
@@ -1 +1,2 @@
 DIST gargoyle-2011.1-sources.zip 11291660 BLAKE2B 
aac47c41bd02e772c4717dfdeae8678105f72704641ea3df39105d412afe61734cc43f863b9556e38ea34287259df9f4d72ae93b3092d0372434b9f59f99483d
 SHA512 
65159580cf3494944f841c44320135580557258e37ad5523ae3ea30555c19834a2793231a8e42c217e5c1d055d50ed6a20d372d6302e880a2818bc4ea59b226f
+DIST gargoyle-2019.1.1.tar.gz 14700448 BLAKE2B 
b5e6d43349d01fe3484abc7779cfe3f1e94c3f6d647d338f8acbfe97d160da53b6297273e67f84eb0409623bbb4c0d8e3008d42b16a800d756be71a02538969a
 SHA512 
0d1f2724bd6227142eb67c146557a992a6d62af172398c9961511ce5c080e517d1e12ca9bc6be27c1893e404026256257bf3a04cb05923723c0886f111adc4e3

diff --git a/games-engines/gargoyle/files/gargoyle-2019.1.1-QA-desktop.patch 
b/games-engines/gargoyle/files/gargoyle-2019.1.1-QA-desktop.patch
new file mode 100644
index 00000000000..be4667e3908
--- /dev/null
+++ b/games-engines/gargoyle/files/gargoyle-2019.1.1-QA-desktop.patch
@@ -0,0 +1,11 @@
+--- a/garglk/gargoyle.desktop
++++ b/garglk/gargoyle.desktop
+@@ -4,7 +4,7 @@ Type=Application
+ Name=Gargoyle
+ GenericName=Interactive Fiction interpreter
+ Comment=Interactive Fiction multi-interpreter that supports all major IF 
formats
+-Icon=gargoyle-house.png
++Icon=gargoyle-house
+ Exec=gargoyle
+ Categories=Game;
+ 
MimeType=application/x-adrift;application/x-advsys;application/x-agt;application/x-alan;application/x-blorb;application/x-glulx;application/x-hugo;application/x-level9;application/x-magscroll;application/x-tads;application/x-t3vm-image;application/x-zmachine;

diff --git a/games-engines/gargoyle/files/gargoyle-2019.1.1-fno-common.patch 
b/games-engines/gargoyle/files/gargoyle-2019.1.1-fno-common.patch
new file mode 100644
index 00000000000..50870a03e37
--- /dev/null
+++ b/games-engines/gargoyle/files/gargoyle-2019.1.1-fno-common.patch
@@ -0,0 +1,168 @@
+Author: Chris Spiegel <[email protected]>
+Taken from: 
https://sources.debian.org/patches/gargoyle-free/2019.1.1-2/gcc-10.patch/
+--- a/garglk/launcher.c
++++ b/garglk/launcher.c
+@@ -48,10 +48,10 @@
+ #define ID_GLUL (giblorb_make_id('G','L','U','L'))
+ 
+ #define MaxBuffer 1024
+-char tmp[MaxBuffer];
+-char terp[MaxBuffer];
+-char exe[MaxBuffer];
+-char flags[MaxBuffer];
++static char tmp[MaxBuffer];
++static char terp[MaxBuffer];
++static char exe[MaxBuffer];
++static char flags[MaxBuffer];
+ 
+ int runblorb(char *path, char *game)
+ {
+--- a/garglk/launchgtk.c
++++ b/garglk/launchgtk.c
+@@ -41,9 +41,9 @@ static const char * AppName = "Gargoyle " VERSION;
+ static const char * LaunchingTemplate = "%s/%s";
+ static const char * DirSeparator = "/";
+ 
+-char dir[MaxBuffer];
+-char buf[MaxBuffer];
+-char tmp[MaxBuffer];
++static char dir[MaxBuffer];
++static char buf[MaxBuffer];
++static char tmp[MaxBuffer];
+ 
+ struct filter
+ {
+--- a/garglk/launchmac.m
++++ b/garglk/launchmac.m
+@@ -40,13 +40,13 @@
+ static const char * LaunchingTemplate = "%s/%s";
+ static const char * DirSeparator = "/";
+ 
+-char dir[MaxBuffer];
+-char buf[MaxBuffer];
+-char tmp[MaxBuffer];
+-char etc[MaxBuffer];
++static char dir[MaxBuffer];
++static char buf[MaxBuffer];
++static char tmp[MaxBuffer];
++static char etc[MaxBuffer];
+ 
+ enum FILEFILTERS { FILTER_SAVE, FILTER_TEXT, FILTER_ALL };
+-char *winfilters[] =
++static char *winfilters[] =
+ {
+     "sav",
+     "txt",
+--- a/garglk/launchwin.c
++++ b/garglk/launchwin.c
+@@ -33,11 +33,11 @@ static const char * AppName = "Gargoyle " VERSION;
+ static const char * LaunchingTemplate = "\"%s\\%s.exe\" %s \"%s\"";
+ static const char * DirSeparator = "\\";
+ 
+-char dir[MaxBuffer];
+-char buf[MaxBuffer];
+-char tmp[MaxBuffer];
++static char dir[MaxBuffer];
++static char buf[MaxBuffer];
++static char tmp[MaxBuffer];
+ 
+-char filterlist[] =
++static char filterlist[] =
+ "All 
Games\0*.taf;*.agx;*.d$$;*.acd;*.a3c;*.asl;*.cas;*.ulx;*.hex;*.jacl;*.j2;*.gam;*.t3;*.z?;*.l9;*.sna;*.mag;*.dat;*.saga;*.blb;*.glb;*.zlb;*.blorb;*.gblorb;*.zblorb\0"
+ "Adrift Games (*.taf)\0*.taf\0"
+ "AdvSys Games (*.dat)\0*.dat\0"
+@@ -65,7 +65,7 @@ void winmsg(const char *msg)
+     MessageBox(NULL, msg, AppName, MB_ICONERROR);
+ }
+ 
+-int urldecode(char *decoded, unsigned int maxlen, const char *encoded)
++static int urldecode(char *decoded, unsigned int maxlen, const char *encoded)
+ {
+     unsigned int i;
+     int convert, ascii;
+
+--- a/terps/alan2/glkio.h
++++ b/terps/alan2/glkio.h
+@@ -11,8 +11,8 @@
+ 
+ #include "glk.h"
+ 
+-winid_t glkMainWin;
+-winid_t glkStatusWin;
++extern winid_t glkMainWin;
++extern winid_t glkStatusWin;
+ 
+ /* NB: this header must be included in any file which calls printf() */
+ 
+--- a/terps/alan2/main.c
++++ b/terps/alan2/main.c
+@@ -43,6 +43,9 @@
+ 
+ /* PUBLIC DATA */
+ 
++winid_t glkMainWin;
++winid_t glkStatusWin;
++
+ /* The Amachine memory */
+ Aword *memory;
+ static AcdHdr dummyHeader;    /* Dummy to use until memory allocated */
+--- a/terps/alan3/glkio.h
++++ b/terps/alan3/glkio.h
+@@ -11,8 +11,8 @@
+ 
+ #include "glk.h"
+ 
+-winid_t glkMainWin;
+-winid_t glkStatusWin;
++static winid_t glkMainWin;
++static winid_t glkStatusWin;
+ 
+ /* NB: this header must be included in any file which calls printf() */
+ 
+--- a/terps/alan3/output.h
++++ b/terps/alan3/output.h
+@@ -22,9 +22,9 @@ extern bool capitalize;
+ /* Log file */
+ #ifdef HAVE_GLK
+ #include "glk.h"
+-strid_t logFile;
++extern strid_t logFile;
+ #else
+-FILE *logFile;
++extern FILE *logFile;
+ #endif
+ 
+ 
+--- a/terps/alan3/term.h
++++ b/terps/alan3/term.h
+@@ -10,7 +10,7 @@
+ 
+ 
+ /* DATA */
+-bool onStatusLine;
++extern bool onStatusLine;
+ 
+ 
+ /* FUNCTIONS */
+--- a/terps/jacl/glk_startup.c
++++ b/terps/jacl/glk_startup.c
+@@ -31,7 +31,7 @@ extern short int     release;
+ glkunix_startup_t *arguments;
+ 
+ /* THE STREAM FOR OPENING UP THE ARCHIVE CONTAINING GRAPHICS AND SOUND */
+-strid_t                               blorb_stream;
++extern strid_t                                blorb_stream;
+ 
+ /* PROTOTYPE FOR NEEDED UTILITY FUNCTION */
+ void create_paths();
+--- a/terps/jacl/parser.c
++++ b/terps/jacl/parser.c
+@@ -62,7 +62,7 @@ char                                                 
*from_word;
+ 
+ int                                                           object_expected 
= FALSE;
+ 
+-char                                                  default_function[84];
++extern char                                                   
default_function[84];
+ char                                                  object_name[84];
+ 
+ char                                      base_function[84];

diff --git a/games-engines/gargoyle/gargoyle-2019.1.1.ebuild 
b/games-engines/gargoyle/gargoyle-2019.1.1.ebuild
new file mode 100644
index 00000000000..cfd146901b6
--- /dev/null
+++ b/games-engines/gargoyle/gargoyle-2019.1.1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Regarding licenses: libgarglk is licensed under the GPLv2. Bundled
+# interpreters are licensed under GPLv2, BSD or MIT license, except:
+#   - glulxe: custom license, see "terps/glulxle/README"
+#   - hugo: custom license, see "licenses/HUGO License.txt"
+# Since we don't compile or install any of the bundled fonts, their licenses
+# don't apply. (Fonts are installed through dependencies instead.)
+
+EAPI=7
+
+inherit desktop edos2unix flag-o-matic multiprocessing toolchain-funcs xdg
+
+DESCRIPTION="An Interactive Fiction (IF) player supporting all major formats"
+HOMEPAGE="http://ccxvii.net/gargoyle/";
+SRC_URI="https://github.com/garglk/garglk/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD GPL-2 MIT Hugo Glulxe"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+       media-fonts/libertine
+       media-fonts/liberation-fonts
+       media-libs/freetype:2
+       media-libs/libpng:0
+       media-libs/sdl-mixer
+       media-libs/sdl-sound[modplug,mp3,vorbis]
+       sys-libs/zlib
+       virtual/jpeg:0
+       x11-libs/gtk+:2"
+DEPEND="${RDEPEND}"
+BDEPEBD="
+       app-arch/unzip
+       dev-util/ftjam
+       virtual/pkgconfig"
+
+S="${WORKDIR}/garglk-${PV}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fno-common.patch
+       "${FILESDIR}"/${P}-QA-desktop.patch
+)
+
+src_prepare() {
+       default
+       # Substitute custom CFLAGS/LDFLAGS.
+       sed -i -e \
+               "/^\s*OPTIM = / {
+                       s/ \(-O.*\)\? ;/ ;/
+                       a LINKFLAGS = ${LDFLAGS} ;
+                       a SHRLINKFLAGS = ${LDFLAGS} ;
+               }" Jamrules || die
+
+       # Don't link against libraries used indirectly through SDL_sound.
+       sed -i -e "/GARGLKLIBS/s/-lsmpeg -lvorbisfile//g" Jamrules || die
+
+       # Convert garglk.ini to UNIX format.
+       edos2unix garglk/garglk.ini
+
+       append-cflags -std=gnu89 # build with gcc5 (bug #573378)
+       append-cxxflags -std=gnu++11 # code assumes C++11 semantics (bug 
#642996)
+}
+
+src_compile() {
+       # build system messes up flags and toolchain completely
+       # append flags to compiler commands to have consistent behavior
+       jam \
+               -sAR="$(tc-getAR) cru" \
+               -sCC="$(tc-getCC) ${CFLAGS}" \
+               -sCCFLAGS="" \
+               -sC++="$(tc-getCXX) ${CXXFLAGS}" \
+               -sCXX="$(tc-getCXX) ${CXXFLAGS}" \
+               -sC++FLAGS="" \
+               -sGARGLKINI="/etc/garglk.ini" \
+               -sUSESDL=yes \
+               -sBUNDLEFONTS=no \
+               -dx \
+               -j$(makeopts_jobs) || die
+}
+
+src_install() {
+       DESTDIR="${D}" \
+       _BINDIR="${EPREFIX}/usr/libexec/${PN}" \
+       _APPDIR="${EPREFIX}/usr/libexec/${PN}" \
+       _LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
+       EXEMODE=755 \
+       FILEMODE=755 \
+       jam install || die
+
+       # Install config file.
+       insinto /etc
+       newins garglk/garglk.ini garglk.ini
+
+       # Install application entry and icon.
+       domenu garglk/${PN}.desktop
+       doicon -s 32 garglk/${PN}-house.png
+
+       # Symlink binaries to avoid name clashes.
+       local terp
+       for terp in advsys agility alan2 alan3 bocfel frotz geas git glulxe 
hugo jacl \
+               level9 magnetic nitfol scare scott tadsr; do
+               dosym ../libexec/${PN}/${terp} /usr/bin/${PN}-${terp}
+       done
+
+       # Also symlink the main binary since it resides in libexec.
+       dosym ../libexec/${PN}/${PN} /usr/bin/${PN}
+}

diff --git a/games-engines/gargoyle/metadata.xml 
b/games-engines/gargoyle/metadata.xml
index 6842fdda8f8..23812106384 100644
--- a/games-engines/gargoyle/metadata.xml
+++ b/games-engines/gargoyle/metadata.xml
@@ -6,6 +6,6 @@
                <name>Gentoo Games Project</name>
        </maintainer>
        <upstream>
-               <remote-id type="google-code">garglk</remote-id>
+               <remote-id type="github">garglk/garglk</remote-id>
        </upstream>
 </pkgmetadata>

Reply via email to