commit:     9853b42007f9c58cbe9d0d938c6772f2834a8051
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Tue May 21 21:59:46 2024 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Tue May 21 21:59:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9853b420

games-engines/frotz: Bump to 2.55_pre20240518 snapshot, drop old 2.54

2.54 builds with GCC 13 with lots of warnings but fails with 12 and 14. This
snapshot looks much better. Admittedly, I've only really build tested it.

Closes: https://bugs.gentoo.org/932295
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-engines/frotz/Manifest                       |   2 +-
 games-engines/frotz/files/frotz-2.53-uint32.patch  | 475 ---------------------
 games-engines/frotz/files/frotz-stray-dollar.patch |  26 ++
 ...z-2.54.ebuild => frotz-2.55_pre20240518.ebuild} |   9 +-
 4 files changed, 32 insertions(+), 480 deletions(-)

diff --git a/games-engines/frotz/Manifest b/games-engines/frotz/Manifest
index 639be0c1e3e8..f25404e287db 100644
--- a/games-engines/frotz/Manifest
+++ b/games-engines/frotz/Manifest
@@ -1 +1 @@
-DIST frotz-2.54.tar.bz2 354087 BLAKE2B 
e3a77038605333ead060ac8b9c1a7fbcbd71ae4d91eae6c7f5dda482fba6113ff32c6e4b7aef701931ed260278522bc5a2b98f61cf939b68166d6ed32e9eba16
 SHA512 
f608007e4eb979b928128d22d960621100c6f7042e9d8fe1bdf44137da94c1c2aa4778be0309056763185eaab2662e3604bd7396c9f5cbf98ce52db626225295
+DIST frotz-2.55_pre20240518.tar.bz2 361873 BLAKE2B 
feffedec989adfda7e949ab4997dff6496e1d9fef4b55902cd8430556587e54996872107c70a1ecc6db4bc6e29357ec101df9f8f411043cddfbf03bc46d4fe4d
 SHA512 
b18670d6360fff48c20e8d26cb5173784ea900128a8e08d39625297aeae6eb5ea5be7fe361785b3863f25667649d935f2b9edb9d92751388bfaaa00edf678ec2

diff --git a/games-engines/frotz/files/frotz-2.53-uint32.patch 
b/games-engines/frotz/files/frotz-2.53-uint32.patch
deleted file mode 100644
index 18e7d244c272..000000000000
--- a/games-engines/frotz/files/frotz-2.53-uint32.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-Description: Use uint32_t instead of ulong
-Author: Stephen Kitt <sk...@debian.org>
-
-When built with hardening enabled, there’s a ulong/uint32_t definition
-conflict; since the type is supposed to be uint32_t, use that
-directly.
-
---- a/src/sdl/sf_frotz.h
-+++ b/src/sdl/sf_frotz.h
-@@ -12,13 +12,13 @@
- #include "../blorb/blorb.h"
- 
- #include <stdint.h>
-+#include <sys/types.h>
- typedef uint8_t byte;
- typedef uint16_t word;
--#define ulong uint32_t
- 
- typedef struct {
-       bb_result_t bbres;
--      ulong type;
-+      uint32_t type;
-       FILE *file;
- } myresource;
- 
-@@ -54,7 +54,7 @@
- #endif
- 
- /* this assumes RGBA with lsb = R */
--static inline ulong RGB5ToTrue(word w)
-+static inline uint32_t RGB5ToTrue(word w)
- {
-       int _r = w & 0x001F;
-       int _g = (w & 0x03E0) >> 5;
-@@ -62,10 +62,10 @@
-       _r = (_r << 3) | (_r >> 2);
-       _g = (_g << 3) | (_g >> 2);
-       _b = (_b << 3) | (_b >> 2);
--      return (ulong) (_r | (_g << 8) | (_b << 16));
-+      return (uint32_t) (_r | (_g << 8) | (_b << 16));
- }
- 
--static inline word TrueToRGB5(ulong u)
-+static inline word TrueToRGB5(uint32_t u)
- {
-       return (word) (((u >> 3) & 0x001f) | ((u >> 6) & 0x03e0) |
-                      ((u >> 9) & 0x7c00));
-@@ -81,10 +81,10 @@
- extern int m_v6scale;
- extern double m_gfxScale_w;
- extern double m_gfxScale_h;
--extern ulong m_defaultFore;
--extern ulong m_defaultBack;
--extern ulong m_colours[11];
--extern ulong m_nonStdColours[NON_STD_COLS];
-+extern uint32_t m_defaultFore;
-+extern uint32_t m_defaultBack;
-+extern uint32_t m_colours[11];
-+extern uint32_t m_nonStdColours[NON_STD_COLS];
- extern int m_nonStdIndex;
- extern bool m_exitPause;
- extern bool m_lineInput;
-@@ -118,7 +118,7 @@
-       int number;     /* 0 means unallocated */
-       int width, height;
-       byte *pixels;
--      ulong palette[16];
-+      uint32_t palette[16];
-       int palette_entries;
-       int transparentcolor;
-       bool adaptive;
-@@ -190,9 +190,9 @@
- 
- void sf_readsettings();
- 
--ulong sf_GetColour(int colour);
--ulong sf_GetDefaultColour(bool fore);
--int sf_GetColourIndex(ulong colour);
-+uint32_t sf_GetColour(int colour);
-+uint32_t sf_GetDefaultColour(bool fore);
-+int sf_GetColourIndex(uint32_t colour);
- 
- void sf_initvideo(int w, int h, int full);
- 
-@@ -221,7 +221,7 @@
- 
- bool sf_IsInfocomV6(void);
- 
--ulong sf_blend(int a, ulong s, ulong d);
-+uint32_t sf_blend(int a, uint32_t s, uint32_t d);
- 
- void sf_sleep(int millisecs);
- 
-@@ -234,8 +234,8 @@
- 
- int sf_pkread(FILE * f, int foffs, void **out, int *size);
- 
--ulong *sf_savearea(int x, int y, int w, int h);
--void sf_restoreareaandfree(ulong * s);
-+uint32_t *sf_savearea(int x, int y, int w, int h);
-+void sf_restoreareaandfree(uint32_t * s);
- #define SF_NOTIMP (-9999)
- 
- zword sf_read_key(int timeout, bool cursor, bool allowed, bool text);
-@@ -243,7 +243,7 @@
- int sf_user_fdialog(bool exist, const char *def, const char *filt,
-                   const char *title, char **res);
- extern int (*sf_osdialog)(bool ex, const char *def, const char *filt,
--                        const char *tit, char **res, ulong * sbuf, int sbp,
-+                        const char *tit, char **res, uint32_t * sbuf, int sbp,
-                         int ew, int eh, int isfull);
- 
- void sf_checksound(void);
-@@ -255,13 +255,13 @@
- 
- char *sf_searchfile(char *, int, char *, char *);
- 
--void sf_chline(int x, int y, ulong c, int n);
--void sf_cvline(int x, int y, ulong c, int n);
-+void sf_chline(int x, int y, uint32_t c, int n);
-+void sf_cvline(int x, int y, uint32_t c, int n);
- bool sf_flushdisplay(void);
- void sf_getclip(int *x, int *y, int *w, int *h);
- void sf_rect(unsigned long color, int x, int y, int w, int h);
- void sf_setclip(int x, int y, int w, int h);
--void sf_wpixel(int x, int y, ulong c);
-+void sf_wpixel(int x, int y, uint32_t c);
- 
- void sf_InitProfile(const char *fn);
- void sf_FinishProfile(void);
---- a/src/sdl/sf_resource.c
-+++ b/src/sdl/sf_resource.c
-@@ -51,10 +51,10 @@
- int m_v6scale_y;
- double m_gfxScale_w = 1.0;
- double m_gfxScale_h = 1.0;
--ulong m_defaultFore;
--ulong m_defaultBack;
--ulong m_colours[11];
--ulong m_nonStdColours[NON_STD_COLS];
-+uint32_t m_defaultFore;
-+uint32_t m_defaultBack;
-+uint32_t m_colours[11];
-+uint32_t m_nonStdColours[NON_STD_COLS];
- int m_nonStdIndex;
- bool m_exitPause = 0;
- bool m_lineInput = 0;
-@@ -478,7 +478,7 @@
- 
- 
- /* Get a colour */
--ulong sf_GetColour(int colour)
-+uint32_t sf_GetColour(int colour)
- {
-       /* Standard colours */
-       if ((colour >= BLACK_COLOUR) && (colour <= DARKGREY_COLOUR))
-@@ -500,7 +500,7 @@
- 
- 
- /* Get a default colour */
--ulong sf_GetDefaultColour(bool fore)
-+uint32_t sf_GetDefaultColour(bool fore)
- {
-       if (m_IsInfocomV6)
-               return sf_GetColour(fore ? WHITE_COLOUR : BLACK_COLOUR);
-@@ -509,7 +509,7 @@
- 
- 
- /* Get an index for a non-standard colour */
--int sf_GetColourIndex(ulong colour)
-+int sf_GetColourIndex(uint32_t colour)
- {
-       int i, index = -1;
-       /* Is this a standard colour? */
-@@ -950,7 +950,7 @@
- int sf_getresource(int num, int ispic, int method, myresource * res)
- {
-       int st;
--      ulong usage;
-+      uint32_t usage;
- 
-       res->bbres.data.ptr = NULL;
-       res->file = NULL;
-@@ -981,7 +981,7 @@
- typedef struct {
-       void *next;
-       int num, ispic;
--      ulong type;
-+      uint32_t type;
-       char *name;
- } LLENTRY;
- 
-@@ -989,7 +989,7 @@
- 
- static int numlocal = 0, numlocalpic = 0, numlocalsnd = 0;
- static int p_ispic, p_num;
--static ulong p_type;
-+static uint32_t p_type;
- static char *p_name;
- 
- 
---- a/src/sdl/sf_video.c
-+++ b/src/sdl/sf_video.c
-@@ -31,7 +31,7 @@
- 
- static char banner[256];
- static int isfullscreen;
--static ulong *sbuffer = NULL;
-+static uint32_t *sbuffer = NULL;
- static int sbpitch;           /* in longs */
- static int dirty = 0;
- static int ewidth, eheight;
-@@ -45,7 +45,7 @@
- static void sf_quitconf();
- 
- static bool ApplyPalette(sf_picture *);
--static ulong screen_palette[16];
-+static uint32_t screen_palette[16];
- 
- extern z_header_t z_header;
- 
-@@ -99,7 +99,7 @@
- }
- 
- 
--void sf_wpixel(int x, int y, ulong c)
-+void sf_wpixel(int x, int y, uint32_t c)
- {
-       if (x < xmin || x >= xmax || y < ymin || y >= ymax)
-               return;
-@@ -108,7 +108,7 @@
- }
- 
- 
--ulong sf_rpixel(int x, int y)
-+uint32_t sf_rpixel(int x, int y)
- {
-       if (x < 0 || x >= ewidth || y < 0 || y >= eheight)
-               return 0;
-@@ -116,7 +116,7 @@
- }
- 
- #define MAXCUR 64
--static ulong savedcur[MAXCUR];
-+static uint32_t savedcur[MAXCUR];
- 
- static void drawthecursor(int x, int y, int onoff)
- {
-@@ -156,9 +156,9 @@
- }
- 
- 
--void sf_chline(int x, int y, ulong c, int n)
-+void sf_chline(int x, int y, uint32_t c, int n)
- {
--      ulong *s;
-+      uint32_t *s;
-       if (y < ymin || y >= ymax)
-               return;
-       if (x < xmin) {
-@@ -176,9 +176,9 @@
- }
- 
- 
--void sf_cvline(int x, int y, ulong c, int n)
-+void sf_cvline(int x, int y, uint32_t c, int n)
- {
--      ulong *s;
-+      uint32_t *s;
-       if (x < xmin || x >= xmax)
-               return;
-       if (y < xmin) {
-@@ -198,9 +198,9 @@
- }
- 
- 
--ulong sf_blendlinear(int a, ulong s, ulong d)
-+uint32_t sf_blendlinear(int a, uint32_t s, uint32_t d)
- {
--      ulong r;
-+      uint32_t r;
-       r = ((s & 0xff) * a + (d & 0xff) * (256 - a)) >> 8;
-       s >>= 8;
-       d >>= 8;
-@@ -234,7 +234,7 @@
-       int height = ts->font->height(ts->font);
-       int width;
- 
--      ulong color, bc;
-+      uint32_t color, bc;
- 
-       if ((ts->style & REVERSE_STYLE) != 0) {
-               bc = ts->fore;
-@@ -262,7 +262,7 @@
-                               int t = *bmp++;
-                               if (xx < byw) {
-                                       if (t) {
--                                              ulong sval = color;
-+                                              uint32_t sval = color;
-                                               if (t < 255)
-                                                       sval = sf_blend((int) 
(t + (t >> 7)), sval, sf_rpixel(x + xx, y));
-                                               sf_wpixel(x + xx, y, sval);
-@@ -292,7 +292,7 @@
- 
- void sf_fillrect(unsigned long color, int x, int y, int w, int h)
- {
--      ulong *dst;
-+      uint32_t *dst;
-       int i;
-       if (x < xmin) {
-               w += x - xmin;
-@@ -380,7 +380,7 @@
- 
- static void scroll(int x, int y, int w, int h, int n)
- {
--      ulong *src, *dst;
-+      uint32_t *src, *dst;
-       int nmove, step;
-       if (n > 0) {
-               dst = sbuffer + x + sbpitch * y;
-@@ -397,7 +397,7 @@
-               return;
-       if (nmove > 0) {
-               while (nmove--) {
--                      memmove(dst, src, w * sizeof(ulong));
-+                      memmove(dst, src, w * sizeof(uint32_t));
-                       dst += step;
-                       src += step;
-               }
-@@ -414,7 +414,7 @@
- {
-       if (dirty) {
-               SDL_UpdateTexture(texture, NULL, sbuffer,
--                                sbpitch * sizeof(ulong));
-+                                sbpitch * sizeof(uint32_t));
-               myGrefresh();
-               dirty = 0;
-               return true;
-@@ -537,7 +537,7 @@
-                                         SDL_TEXTUREACCESS_STREAMING, W, H)))
-               os_fatal("Failed to create texture: %s", SDL_GetError());
- 
--      sbuffer = calloc(W * H, sizeof(ulong));
-+      sbuffer = calloc(W * H, sizeof(uint32_t));
-       if (!sbuffer)
-               os_fatal("Could not create gc");
- 
-@@ -564,7 +564,7 @@
-       int ox, oy, ow, oh;
-       Zwindow *winpars;
-       sf_picture *pic = sf_getpic(picture);
--      ulong *src, *dst, sval, dval, alpha;
-+      uint32_t *src, *dst, sval, dval, alpha;
- 
-       sf_flushtext();
- 
-@@ -572,7 +572,7 @@
-               return;
-       if (!pic->pixels)
-               return;
--      src = (ulong *) pic->pixels;
-+      src = (uint32_t *) pic->pixels;
- 
-       x--;
-       y--;
-@@ -673,7 +673,7 @@
- }
- 
- 
--static ulong mytimeout;
-+static uint32_t mytimeout;
- int mouse_button;
- static int numAltQ = 0;
- 
-@@ -1238,9 +1238,9 @@
- }
- 
- 
--ulong *sf_savearea(int x, int y, int w, int h)
-+uint32_t *sf_savearea(int x, int y, int w, int h)
- {
--      ulong *r, *p, *s;
-+      uint32_t *r, *p, *s;
-       int i;
- 
-       if (x < 0) {
-@@ -1261,7 +1261,7 @@
-       if (h <= 0)
-               return NULL;
- 
--      r = p = malloc((w * h + 4) * sizeof(ulong));
-+      r = p = malloc((w * h + 4) * sizeof(uint32_t));
-       if (!r)
-               return NULL;
- 
-@@ -1272,7 +1272,7 @@
- 
-       s = sbuffer + x + y * sbpitch;
-       for (i = 0; i < h; i++) {
--              memmove(p, s, w * sizeof(ulong));
-+              memmove(p, s, w * sizeof(uint32_t));
-               p += w;
-               s += sbpitch;
-       }
-@@ -1280,9 +1280,9 @@
- }
- 
- 
--void sf_restoreareaandfree(ulong * s)
-+void sf_restoreareaandfree(uint32_t * s)
- {
--      ulong *p, *d;
-+      uint32_t *p, *d;
-       int i, x, y, w, h;
-       if (!s)
-               return;
-@@ -1295,7 +1295,7 @@
- 
-       d = sbuffer + x + y * sbpitch;
-       for (i = 0; i < h; i++) {
--              memmove(d, p, w * sizeof(ulong));
-+              memmove(d, p, w * sizeof(uint32_t));
-               p += w;
-               d += sbpitch;
-       }
-@@ -1307,7 +1307,7 @@
- 
- 
- int (*sf_osdialog)(bool ex, const char *def, const char *filt, const char 
*tit,
--                 char **res, ulong * sbuf, int sbp, int ew, int eh,
-+                 char **res, uint32_t * sbuf, int sbp, int ew, int eh,
-                  int isfull) = NULL;
- 
- 
-@@ -1322,7 +1322,7 @@
- }
- 
- 
--void sf_videodata(ulong ** sb, int *sp, int *ew, int *eh)
-+void sf_videodata(uint32_t ** sb, int *sp, int *ew, int *eh)
- {
-       *sb = sbuffer;
-       *sp = sbpitch;
-@@ -1367,7 +1367,7 @@
-       bool changed = FALSE;
-       int i, colors;
- 
--      memset(&screen_palette, 0, sizeof(ulong));
-+      memset(&screen_palette, 0, sizeof(uint32_t));
- 
-       if (graphic->usespalette) {
-               colors = graphic->palette_entries;
---- a/src/sdl/sf_images.c
-+++ b/src/sdl/sf_images.c
-@@ -38,9 +38,9 @@
- static byte fromLinear[256];
- extern bool m_adaptiveMode;
- 
--ulong sf_blend(int a, ulong s, ulong d)
-+uint32_t sf_blend(int a, uint32_t s, uint32_t d)
- {
--      ulong r;
-+      uint32_t r;
-       r = fromLinear[(toLinear[s & 0xff] * a +
-                       toLinear[d & 0xff] * (256 - a)) >> 8];
-       s >>= 8;
-@@ -186,7 +186,7 @@
-               if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)) {
-                       graphic->palette_entries = num_palette;
-                       for (int i = 0; i < num_palette; i++) {
--                              ulong color =
-+                              uint32_t color =
-                                   palette[i].red | (palette[i].
-                                                     green << 8) | (palette[i].
-                                                                    blue <<

diff --git a/games-engines/frotz/files/frotz-stray-dollar.patch 
b/games-engines/frotz/files/frotz-stray-dollar.patch
new file mode 100644
index 000000000000..9cc2a4212741
--- /dev/null
+++ b/games-engines/frotz/files/frotz-stray-dollar.patch
@@ -0,0 +1,26 @@
+From 7c14d1bd6c129670869db0dc6c025c68f28944a4 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <ch...@gentoo.org>
+Date: Tue, 21 May 2024 22:53:33 +0100
+Subject: [PATCH] Fix stray $ that breaks the frotz filename when specifying
+ LDFLAGS
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 8860297..35d8246 100644
+--- a/Makefile
++++ b/Makefile
+@@ -394,7 +394,7 @@ DOSVER = $(shell echo $(VERSION) | sed s/\\.//g)
+ curses: $(FROTZ_BIN)
+ ncurses: $(FROTZ_BIN)
+ $(FROTZ_BIN): $(FROTZ_LIBS)
+-      $(CC) $+ -o $@$ $(LDFLAGS) $(CURSES_LDFLAGS) $(CURSES_SOUND_LDFLAGS)
++      $(CC) $+ -o $@ $(LDFLAGS) $(CURSES_LDFLAGS) $(CURSES_SOUND_LDFLAGS)
+       @echo "** Done building Frotz with curses interface"
+       @echo "** Audio support $(CURSES_SOUND) (type $(SOUND_TYPE))"
+       @echo "** Blorb support $(BLORB_SUPPORT)"
+-- 
+2.45.1
+

diff --git a/games-engines/frotz/frotz-2.54.ebuild 
b/games-engines/frotz/frotz-2.55_pre20240518.ebuild
similarity index 84%
rename from games-engines/frotz/frotz-2.54.ebuild
rename to games-engines/frotz/frotz-2.55_pre20240518.ebuild
index a3ebae18235c..23013101c44c 100644
--- a/games-engines/frotz/frotz-2.54.ebuild
+++ b/games-engines/frotz/frotz-2.55_pre20240518.ebuild
@@ -5,10 +5,11 @@ EAPI=8
 
 inherit toolchain-funcs
 
+COMMIT="f96e6b33d8b13f80258af49b4bb567428870291c"
 DESCRIPTION="Interpreter for Z-code based text games"
 HOMEPAGE="https://661.org/proj/if/frotz/";
-SRC_URI="https://gitlab.com/DavidGriffith/${PN}/-/archive/${PV}/${P}.tar.bz2";
-
+SRC_URI="https://gitlab.com/DavidGriffith/frotz/-/archive/${COMMIT}/frotz-master.tar.bz2
 -> ${P}.tar.bz2"
+S="${WORKDIR}/${PN}-${COMMIT}"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~riscv ~x86"
@@ -39,7 +40,7 @@ RDEPEND="${DEPEND}"
 BDEPEND="virtual/pkgconfig"
 
 PATCHES=(
-       "${FILESDIR}"/${PN}-2.53-uint32.patch
+       "${FILESDIR}"/${PN}-stray-dollar.patch
 )
 
 src_compile() {
@@ -67,7 +68,7 @@ src_install() {
                DESTDIR="${D}"
 
        dodoc \
-               AUTHORS ChangeLog CONTRIBUTORS DUMB HOW_TO_PLAY README TODO \
+               AUTHORS ChangeLog CONTRIBUTORS DUMB HOW_TO_PLAY README 
README.md \
                doc/frotz.conf-{big,small}
 }
 

Reply via email to