diff options
author | Marek Szuba <marecki@gentoo.org> | 2024-04-30 02:25:18 +0100 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2024-04-30 02:28:13 +0100 |
commit | 18d3b71f6c2ac4318be2aa0737d8b6a408466bb4 (patch) | |
tree | cd088b75e4214a3027ccd8f0b1aa26ccfcdf5347 /games-engines | |
parent | sys-apps/fwupd: drop 1.9.6, 1.9.10-r1 (diff) | |
download | gentoo-18d3b71f6c2ac4318be2aa0737d8b6a408466bb4.tar.gz gentoo-18d3b71f6c2ac4318be2aa0737d8b6a408466bb4.tar.bz2 gentoo-18d3b71f6c2ac4318be2aa0737d8b6a408466bb4.zip |
games-engines/frotz: fix build failure
Invoking long-overdue maintainer timeout. Debian solved this ages ago
so just use their patch.
Closes: https://bugs.gentoo.org/909321
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'games-engines')
-rw-r--r-- | games-engines/frotz/files/frotz-2.53-uint32.patch | 475 | ||||
-rw-r--r-- | games-engines/frotz/frotz-2.53-r1.ebuild | 6 |
2 files changed, 480 insertions, 1 deletions
diff --git a/games-engines/frotz/files/frotz-2.53-uint32.patch b/games-engines/frotz/files/frotz-2.53-uint32.patch new file mode 100644 index 000000000000..18e7d244c272 --- /dev/null +++ b/games-engines/frotz/files/frotz-2.53-uint32.patch @@ -0,0 +1,475 @@ +Description: Use uint32_t instead of ulong +Author: Stephen Kitt <skitt@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/frotz-2.53-r1.ebuild b/games-engines/frotz/frotz-2.53-r1.ebuild index 1fdf97ae9e56..773b24490f66 100644 --- a/games-engines/frotz/frotz-2.53-r1.ebuild +++ b/games-engines/frotz/frotz-2.53-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -38,6 +38,10 @@ DEPEND=" RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" +PATCHES=( + "${FILESDIR}"/${PN}-2.53-uint32.patch +) + src_compile() { emake \ dumb \ |