commit:     845b010e2093bf9c24d3e206c6d36cdc110177b1
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Fri Sep 19 13:27:36 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 20 09:15:37 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=845b010e

media-gfx/fbida: add 2.14_p20241216

update EAPI 7->8
update license to GPL2'+' (see fbida.spec)

add xdg for icon/desktopfile

restore useflags compare to live ebuild

deps :
remove blocker for media-gfx/fbi, removed
drop media-libs/libepoxy media-libs/mesa (gl removed)
curl support has been dropped
udev is required
make fbcon optional with dev-libs/libtsm and dev-libs/glib2

fix gcc-15/c23

Closes: https://bugs.gentoo.org/943772
Closes: https://bugs.gentoo.org/955090
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Part-of: https://github.com/gentoo/gentoo/pull/43858
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/fbida/Manifest                           |   1 +
 media-gfx/fbida/fbida-2.14_p20241216.ebuild        |  88 +++
 media-gfx/fbida/files/fbida-2.14-fix_c23.patch     | 591 +++++++++++++++++++++
 media-gfx/fbida/files/fbida-2.14-libtsm4.patch     |  13 +
 .../fbida/files/fbida-2.14-rm_automagic.patch      |  42 ++
 5 files changed, 735 insertions(+)

diff --git a/media-gfx/fbida/Manifest b/media-gfx/fbida/Manifest
index 4fcf2f723516..f337b367904b 100644
--- a/media-gfx/fbida/Manifest
+++ b/media-gfx/fbida/Manifest
@@ -1,2 +1,3 @@
 DIST fbida-2.14.tar.gz 296826 BLAKE2B 
0015b426c5deaf72737a52bddb065e7d0cb804ea97157dded522061d8fabb5c632d5e66b1ef1b4e75b355537ef4f4e603f3a877e2ef92d1581eaa4791ab5be99
 SHA512 
8f3596ad8a22497880ac698d3b324e038ac5ccae7481fe4a902fc6e8bf43ba1bb3a96af8c7a3347bea86c1988f35674e2647901ac256bd4e8261d467a6a343ec
+DIST fbida-2.14_p20241216.tar.gz 308330 BLAKE2B 
d41769191bd0cf577a899a61fe492764b08c7ac8dff0f399e0fe471fd07174fc7aa3c8a85757125d56a2bfc0689ab2aa73ed3699ede18a17fda4f157bdacf5f3
 SHA512 
8213220a0fa1bd41078634e864783bf2ecff0e80f34326ef0e16cbab7e12765ed1c5e8916d14e699b9415bfa1cec2ff62d0843f8ca7174fa11c70c67d5ce9234
 DIST ida.png.bz2 11928 BLAKE2B 
8a1c89fc5adfb16c69f9591a299beb62c84d66960b586fbc819e53f904c90beef821ecf3539236563644c28e3ad3c7dbf861b140c820be649305a658b3613433
 SHA512 
cf3c1bc8d25fe75f10c0a0414b5c082348df2fa94864ec4537c36e0b357cf35b68e2eca205bbf48578a41c27317701aee621c6dd176e0bf3857c52f895d6bfd3

diff --git a/media-gfx/fbida/fbida-2.14_p20241216.ebuild 
b/media-gfx/fbida/fbida-2.14_p20241216.ebuild
new file mode 100644
index 000000000000..938cec95b04a
--- /dev/null
+++ b/media-gfx/fbida/fbida-2.14_p20241216.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit desktop flag-o-matic meson toolchain-funcs xdg
+
+COMMIT_HASH="3db896c0f3d60372cbd20467a4debb5a3620ad20"
+DESCRIPTION="Image viewers for the framebuffer console (fbi) and X11 (ida)"
+HOMEPAGE="https://www.kraxel.org/blog/linux/fbida/";
+SRC_URI="
+       https://github.com/kraxel/fbida/archive/${COMMIT_HASH}.tar.gz -> 
${P}.tar.gz
+       mirror://gentoo/ida.png.bz2
+"
+S="${WORKDIR}/${PN}-${COMMIT_HASH}"
+
+LICENSE="GPL-2+ IJG"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv 
~sparc ~x86"
+IUSE="fbcon +gif pdf +png systemd +tiff +webp X"
+
+RDEPEND="
+       dev-libs/libinput:=
+       media-libs/fontconfig
+       media-libs/freetype
+       media-libs/libexif
+       media-libs/libjpeg-turbo:=
+       sys-apps/systemd-utils[udev]
+       virtual/ttf-fonts
+       x11-libs/cairo
+       x11-libs/libdrm
+       x11-libs/libxkbcommon
+       x11-libs/pixman
+       fbcon? (
+               dev-libs/glib:2
+               dev-libs/libtsm:=
+       )
+       gif? ( media-libs/giflib:= )
+       pdf? ( app-text/poppler[cairo] )
+       png? ( media-libs/libpng:= )
+       tiff? ( media-libs/tiff:= )
+       webp? ( media-libs/libwebp:= )
+       X? (
+               x11-libs/libX11
+               x11-libs/libXext
+               x11-libs/libXpm
+               x11-libs/libXt
+               x11-libs/motif[xft]
+       )
+"
+DEPEND="${RDEPEND}
+       X? ( x11-base/xorg-proto )
+"
+
+PATCHES=(
+       "${FILESDIR}"/ida-desktop.patch
+       "${FILESDIR}"/${PN}-2.14-rm_automagic.patch
+       "${FILESDIR}"/${PN}-2.14-cpp.patch
+       "${FILESDIR}"/${PN}-2.14-libtsm4.patch
+       "${FILESDIR}"/${PN}-2.14-fix_c23.patch
+)
+
+src_configure() {
+       # 955090
+       append-cppflags -DHAVE_PROTOTYPES
+
+       export CPP="$(tc-getCPP)"
+       local emesonargs=(
+               $(meson_feature fbcon)
+               $(meson_feature gif)
+               $(meson_feature X motif)
+               $(meson_feature pdf)
+               $(meson_feature png)
+               $(meson_feature systemd)
+               $(meson_feature tiff)
+               $(meson_feature webp)
+       )
+
+       meson_src_configure
+}
+
+src_install() {
+       meson_src_install
+
+       dodoc Changes README.{ida,md} TODO
+
+       doicon "${WORKDIR}"/ida.png
+       domenu desktop/ida.desktop
+}

diff --git a/media-gfx/fbida/files/fbida-2.14-fix_c23.patch 
b/media-gfx/fbida/files/fbida-2.14-fix_c23.patch
new file mode 100644
index 000000000000..3a60709801e5
--- /dev/null
+++ b/media-gfx/fbida/files/fbida-2.14-fix_c23.patch
@@ -0,0 +1,591 @@
+Rebased from an maintained fork of motif :
+https://github.com/dimmus/motif/blob/master/src/examples/lib/Xmd/RegEdit.c
+https://github.com/kraxel/fbida/pull/6.patch
+--- a/RegEdit.c
++++ b/RegEdit.c
+@@ -34,19 +34,19 @@
+ 
+ 
+ /* static forward. move from global in the original Editres code */
+-static void _XEditResCheckMessages();
+-static void _XEditResPutString8();
+-static void _XEditResPut8();
+-static void _XEditResPut16();
+-static void _XEditResPut32();
+-static void _XEditResPutWidgetInfo();
+-static void _XEditResResetStream();
+-static Boolean _XEditResGet8();
+-static Boolean _XEditResGet16();
+-static Boolean _XEditResGetSigned16();
+-static Boolean _XEditResGet32();
+-static Boolean _XEditResGetString8(); 
+-static Boolean _XEditResGetWidgetInfo();
++static void _XEditResCheckMessages(Widget w, XtPointer data, XEvent *event, 
Boolean *cont);
++static void _XEditResPutString8(ProtocolStream *stream, char *str);
++static void _XEditResPut8(ProtocolStream *stream, unsigned int value);
++static void _XEditResPut16(ProtocolStream *stream, unsigned int value);
++static void _XEditResPut32(ProtocolStream *stream, unsigned long value);
++static void _XEditResPutWidgetInfo(ProtocolStream *stream, WidgetInfo *info);
++static void _XEditResResetStream(ProtocolStream *stream);
++static Boolean _XEditResGet8(ProtocolStream *stream, unsigned char *val);
++static Boolean _XEditResGet16(ProtocolStream *stream, unsigned short *val);
++static Boolean _XEditResGetSigned16(ProtocolStream *stream, short *val);
++static Boolean _XEditResGet32(ProtocolStream *stream, unsigned long *val);
++static Boolean _XEditResGetString8(ProtocolStream *stream, char **str);
++static Boolean _XEditResGetWidgetInfo(ProtocolStream *stream, WidgetInfo 
*info);
+ 
+ /* the only entry point here */
+ void 
+@@ -140,16 +140,24 @@ static Atom res_editor_command, res_editor_protocol, 
client_value;
+ 
+ static Globals globals;
+ 
+-static void SendFailure(), SendCommand(), InsertWidget(), ExecuteCommand();
+-static void FreeEvent(), ExecuteSetValues(), ExecuteGetGeometry();
+-static void ExecuteGetResources();
+-
+-static void GetCommand();
+-static void LoadResources();
+-static Boolean IsChild();
+-static void DumpChildren();
+-static char *DumpWidgets(), *DoSetValues(), *DoFindChild();
+-static char *DoGetGeometry(), *DoGetResources();
++static void SendFailure(Widget w, Atom sel, ResIdent ident, char *message);
++static void SendCommand(Widget w, Atom sel, ResIdent ident, EditresCommand 
command, ProtocolStream *stream);
++static void InsertWidget(ProtocolStream *stream, Widget w);
++static void ExecuteCommand(Widget w, Atom sel, ResIdent ident, EditresEvent 
*event);
++static void FreeEvent(EditresEvent *event);
++static void ExecuteSetValues(Widget w, SetValuesEvent *sv_event, WidgetInfo 
*entry, ProtocolStream *stream, unsigned short *count);
++static void ExecuteGetGeometry(Widget w, ProtocolStream *stream);
++static void ExecuteGetResources(Widget w, ProtocolStream *stream);
++
++static void GetCommand(Widget w, XtPointer data, Atom *selection, Atom *type, 
XtPointer value, unsigned long *length, int *format);
++static void LoadResources(Widget w);
++static Boolean IsChild(Widget top, Widget parent, Widget child);
++static void DumpChildren(Widget w, ProtocolStream *stream, unsigned short 
*count);
++static char *DumpWidgets(Widget w, EditresEvent *event, ProtocolStream 
*stream);
++static char *DoSetValues(Widget w, EditresEvent *event, ProtocolStream 
*stream);
++static char *DoFindChild(Widget w, EditresEvent *event, ProtocolStream 
*stream);
++static char *DoGetGeometry(Widget w, EditresEvent *event, ProtocolStream 
*stream);
++static char *DoGetResources(Widget w, EditresEvent *event, ProtocolStream 
*stream);
+ 
+ /************************************************************
+  *
+@@ -170,11 +178,7 @@ static char *DoGetGeometry(), *DoGetResources();
+ 
+ /* ARGSUSED */
+ static void
+-_XEditResCheckMessages(w, data, event, cont)
+-Widget w;
+-XtPointer data;
+-XEvent *event;
+-Boolean *cont;
++_XEditResCheckMessages(Widget w, XtPointer data, XEvent *event, Boolean *cont)
+ {
+     Time time;
+     ResIdent ident;
+@@ -208,7 +212,7 @@ Boolean *cont;
+       if (c_event->data.l[3] != CURRENT_PROTOCOL_VERSION) {
+           _XEditResResetStream(&globals.stream);
+           _XEditResPut8(&globals.stream, CURRENT_PROTOCOL_VERSION);
+-          SendCommand(w, res_comm, ident, ProtocolMismatch, &globals.stream);
++          SendCommand(w, res_comm, ident, (EditresCommand)ProtocolMismatch, 
&globals.stream);
+           return;
+       }
+ 
+@@ -231,12 +235,7 @@ Boolean *cont;
+ #define ERROR_MESSAGE ("Client: Improperly formatted protocol request")
+ 
+ static EditresEvent *
+-BuildEvent(w, sel, data, ident, length)
+-Widget w;
+-Atom sel;
+-XtPointer data;
+-ResIdent ident;
+-unsigned long length;
++BuildEvent(Widget w, Atom sel, XtPointer data, ResIdent ident, unsigned long 
length)
+ {
+     EditresEvent * event;
+     ProtocolStream alloc_stream, *stream;
+@@ -253,7 +252,7 @@ unsigned long length;
+      */
+ 
+     if (length < HEADER_SIZE) {
+-      SendFailure(w, sel, ident, Failure, ERROR_MESSAGE);
++      SendFailure(w, sel, ident, ERROR_MESSAGE);
+       return(NULL);
+     }
+ 
+@@ -375,8 +374,7 @@ unsigned long length;
+  */
+ 
+ static void
+-FreeEvent(event)
+-EditresEvent * event;
++FreeEvent(EditresEvent *event)
+ {
+     if (event->any_event.widgets != NULL) {
+       XtFree((char *)event->any_event.widgets->ids);
+@@ -401,12 +399,7 @@ EditresEvent * event;
+ 
+ /* ARGSUSED */
+ static void
+-GetCommand(w, data, selection, type, value, length, format)
+-Widget w;
+-XtPointer data, value;
+-Atom *selection, *type;
+-unsigned long *length;
+-int * format;
++GetCommand(Widget w, XtPointer data, Atom *selection, Atom *type, XtPointer 
value, unsigned long *length, int *format)
+ {
+     ResIdent ident = (ResIdent) (long) data;
+     EditresEvent * event;
+@@ -433,13 +426,9 @@ int * format;
+ 
+ /* ARGSUSED */    
+ static void
+-ExecuteCommand(w, sel, ident, event)
+-Widget w;
+-Atom sel;
+-ResIdent ident;
+-EditresEvent * event;
++ExecuteCommand(Widget w, Atom sel, ResIdent ident, EditresEvent *event)
+ {
+-    char * (*func)();
++    char * (*func)(Widget w, EditresEvent *event, ProtocolStream *stream);
+     char * str;
+ 
+     if (globals.block == BlockAll) {
+@@ -481,7 +470,7 @@ EditresEvent * event;
+ 
+     _XEditResResetStream(&globals.stream);
+     if ((str = (*func)(w, event, &globals.stream)) == NULL)
+-      SendCommand(w, sel, ident, PartialSuccess, &globals.stream);
++              SendCommand(w, sel, ident, (EditresCommand)PartialSuccess, 
&globals.stream);
+     else {
+       SendFailure(w, sel, ident, str);
+       XtFree(str);
+@@ -502,13 +491,8 @@ EditresEvent * event;
+     
+ /* ARGSUSED */
+ static Boolean
+-ConvertReturnCommand(w, selection, target,
+-                   type_ret, value_ret, length_ret, format_ret)
+-Widget w;
+-Atom * selection, * target, * type_ret;
+-XtPointer *value_ret;
+-unsigned long * length_ret;
+-int * format_ret;
++ConvertReturnCommand(Widget w, Atom *selection, Atom *target,
++      Atom *type_ret, XtPointer *value_ret, unsigned long *length_ret, int 
*format_ret)
+ {
+     /*
+      * I assume the intrinsics give me the correct selection back.
+@@ -533,10 +517,7 @@ int * format_ret;
+ 
+ /* ARGSUSED */
+ static void
+-CommandDone(widget, selection, target)
+-Widget widget;
+-Atom *selection;
+-Atom *target;    
++CommandDone(Widget widget, Atom *selection, Atom *target)
+ {
+     /* Keep the toolkit from automaticaly freeing the selection value */
+ }
+@@ -551,15 +532,11 @@ Atom *target;
+  */
+ 
+ static void
+-SendFailure(w, sel, ident, str) 
+-Widget w;
+-Atom sel;
+-ResIdent ident;
+-char * str;
++SendFailure(Widget w, Atom sel, ResIdent ident, char *str)
+ {
+     _XEditResResetStream(&globals.stream);
+     _XEditResPutString8(&globals.stream, str);
+-    SendCommand(w, sel, ident, Failure, &globals.stream);
++    SendCommand(w, sel, ident, (EditresCommand)Failure, &globals.stream);
+ }
+ 
+ /*    Function Name: BuildReturnPacket
+@@ -571,10 +548,7 @@ char * str;
+  */
+ 
+ static XtPointer
+-BuildReturnPacket(ident, command, stream)
+-ResIdent ident;
+-EditresCommand command;
+-ProtocolStream * stream;
++BuildReturnPacket(ResIdent ident, EditresCommand command, ProtocolStream 
*stream)
+ {
+     long old_alloc, old_size;
+     unsigned char * old_current;
+@@ -619,12 +593,7 @@ ProtocolStream * stream;
+  */
+ 
+ static void
+-SendCommand(w, sel, ident, command, stream)
+-Widget w;
+-Atom sel;
+-ResIdent ident;
+-EditresCommand command;
+-ProtocolStream * stream;
++SendCommand(Widget w, Atom sel, ResIdent ident, EditresCommand command, 
ProtocolStream *stream)
+ {
+     BuildReturnPacket(ident, command, stream);
+     globals.command_stream = stream;  
+@@ -656,9 +625,7 @@ ProtocolStream * stream;
+  */
+ 
+ static int
+-FindChildren(parent, children, normal, popup)
+-Widget parent, **children;
+-Boolean normal, popup;
++FindChildren(Widget parent, Widget **children, Boolean normal, Boolean popup)
+ {
+     CompositeWidget cw = (CompositeWidget) parent;
+     int i, num_children, current = 0;
+@@ -698,8 +665,7 @@ Boolean normal, popup;
+  */
+ 
+ static Boolean
+-IsChild(top, parent, child)
+-Widget top, parent, child;
++IsChild(Widget top, Widget parent, Widget child)
+ {
+     int i, num_children;
+     Widget * children;
+@@ -728,9 +694,7 @@ Widget top, parent, child;
+  */
+ 
+ static char * 
+-VerifyWidget(w, info)
+-Widget w;
+-WidgetInfo *info;
++VerifyWidget(Widget w, WidgetInfo *info)
+ {
+     Widget top;
+ 
+@@ -774,10 +738,7 @@ WidgetInfo *info;
+  */
+ 
+ static char *
+-DoSetValues(w, event, stream)
+-Widget w;
+-EditresEvent * event;
+-ProtocolStream * stream;
++DoSetValues(Widget w, EditresEvent *event, ProtocolStream *stream)
+ {
+     char * str;
+     register unsigned i;
+@@ -819,9 +780,7 @@ ProtocolStream * stream;
+ 
+ /* ARGSUSED */
+ static void
+-HandleToolkitErrors(name, type, class, msg, params, num_params)
+-String name, type, class, msg, *params;
+-Cardinal * num_params;
++HandleToolkitErrors(String name, String type, String class, String msg, 
String *params, Cardinal *num_params)
+ {
+     SVErrorInfo * info = &globals.error_info; 
+     char buf[BUFSIZ];
+@@ -863,12 +822,7 @@ Cardinal * num_params;
+  */
+ 
+ static void
+-ExecuteSetValues(w, sv_event, entry, stream, count)
+-Widget w;
+-SetValuesEvent * sv_event;
+-WidgetInfo * entry;
+-ProtocolStream * stream;
+-unsigned short * count;
++ExecuteSetValues(Widget w, SetValuesEvent *sv_event, WidgetInfo *entry, 
ProtocolStream *stream, unsigned short *count)
+ {
+     XtErrorMsgHandler old;
+     
+@@ -907,10 +861,7 @@ unsigned short * count;
+ 
+ /* ARGSUSED */
+ static char * 
+-DumpWidgets(w, event, stream)
+-Widget w;
+-EditresEvent * event;         /* UNUSED */
+-ProtocolStream * stream;
++DumpWidgets(Widget w, EditresEvent *event, ProtocolStream *stream)
+ {
+     unsigned short count = 0;
+         
+@@ -950,8 +901,7 @@ ProtocolStream * stream;
+  * go that far.  Then, we test whether it is an applicationShellWidget
+  * class by looking for an explicit class name.  Seems pretty safe.
+  */
+-static Bool isApplicationShell(w)
+-    Widget w;
++static Bool isApplicationShell(Widget w)
+ {
+     register WidgetClass c;
+ 
+@@ -965,10 +915,7 @@ static Bool isApplicationShell(w)
+ }
+ 
+ static void
+-DumpChildren(w, stream, count)
+-Widget w;
+-ProtocolStream * stream;
+-unsigned short *count;
++DumpChildren(Widget w, ProtocolStream *stream, unsigned short *count)
+ {
+     int i, num_children;
+     Widget *children;
+@@ -1024,10 +971,7 @@ unsigned short *count;
+  */
+ 
+ static char *
+-DoGetGeometry(w, event, stream)
+-Widget w;
+-EditresEvent * event;
+-ProtocolStream * stream;
++DoGetGeometry(Widget w, EditresEvent *event, ProtocolStream *stream)
+ {
+     unsigned i;
+     char * str;
+@@ -1061,9 +1005,7 @@ ProtocolStream * stream;
+  */
+ 
+ static void
+-ExecuteGetGeometry(w, stream)
+-Widget w;
+-ProtocolStream * stream;
++ExecuteGetGeometry(Widget w, ProtocolStream *stream)
+ {
+     int i;
+     Boolean mapped_when_man;
+@@ -1137,9 +1079,7 @@ ProtocolStream * stream;
+  */
+ 
+ static Boolean
+-PositionInChild(child, x, y)
+-Widget child;
+-int x, y;
++PositionInChild(Widget child, int x, int y)
+ {
+     Arg args[6];
+     Cardinal num;
+@@ -1192,9 +1132,7 @@ int x, y;
+  */
+ 
+ static Widget 
+-_FindChild(parent, x, y)
+-Widget parent;
+-int x, y;
++_FindChild(Widget parent, int x, int y)
+ {
+     Widget * children;
+     int i = FindChildren(parent, &children, TRUE, FALSE);
+@@ -1224,10 +1162,7 @@ int x, y;
+  */
+ 
+ static char *
+-DoFindChild(w, event, stream)
+-Widget w;
+-EditresEvent * event;
+-ProtocolStream * stream;
++DoFindChild(Widget w, EditresEvent *event, ProtocolStream *stream)
+ {
+     char * str;
+     Widget parent, child;
+@@ -1264,10 +1199,7 @@ ProtocolStream * stream;
+  */
+ 
+ static char *
+-DoGetResources(w, event, stream)
+-Widget w;
+-EditresEvent * event;
+-ProtocolStream * stream;
++DoGetResources(Widget w, EditresEvent *event, ProtocolStream *stream)
+ {
+     unsigned int i;
+     char * str;
+@@ -1302,9 +1234,7 @@ ProtocolStream * stream;
+  */
+ 
+ static void
+-ExecuteGetResources(w, stream)
+-Widget w;
+-ProtocolStream * stream;
++ExecuteGetResources(Widget w, ProtocolStream *stream)
+ {
+     XtResourceList norm_list, cons_list;
+     Cardinal num_norm, num_cons;
+@@ -1365,9 +1295,7 @@ ProtocolStream * stream;
+  */
+ 
+ static void
+-InsertWidget(stream, w)
+-ProtocolStream * stream;
+-Widget w;
++InsertWidget(ProtocolStream *stream, Widget w)
+ {
+     Widget temp;
+     unsigned long * widget_list;
+@@ -1408,9 +1336,7 @@ Widget w;
+  */
+ 
+ static void
+-_XEditResPutString8(stream, str)
+-ProtocolStream * stream;
+-char * str;
++_XEditResPutString8(ProtocolStream *stream, char *str)
+ {
+     int i, len = strlen(str);
+ 
+@@ -1427,9 +1353,7 @@ char * str;
+  */
+ 
+ static void
+-_XEditResPut8(stream, value)
+-ProtocolStream * stream;
+-unsigned int value;
++_XEditResPut8(ProtocolStream *stream, unsigned int value)
+ {
+     unsigned char temp;
+ 
+@@ -1455,9 +1379,7 @@ unsigned int value;
+  */
+ 
+ static void
+-_XEditResPut16(stream, value)
+-ProtocolStream * stream;
+-unsigned int value;
++_XEditResPut16(ProtocolStream *stream, unsigned int value)
+ {
+     _XEditResPut8(stream, (value >> XER_NBBY) & BYTE_MASK);
+     _XEditResPut8(stream, value & BYTE_MASK);
+@@ -1471,9 +1393,7 @@ unsigned int value;
+  */
+ 
+ static void
+-_XEditResPut32(stream, value)
+-ProtocolStream * stream;
+-unsigned long value;
++_XEditResPut32(ProtocolStream *stream, unsigned long value)
+ {
+     int i;
+ 
+@@ -1489,9 +1409,7 @@ unsigned long value;
+  */
+ 
+ static void
+-_XEditResPutWidgetInfo(stream, info)
+-ProtocolStream * stream;
+-WidgetInfo * info;
++_XEditResPutWidgetInfo(ProtocolStream *stream, WidgetInfo *info)
+ {
+     unsigned int i;
+ 
+@@ -1513,8 +1431,7 @@ WidgetInfo * info;
+  */
+ 
+ static void
+-_XEditResResetStream(stream)
+-ProtocolStream * stream;
++_XEditResResetStream(ProtocolStream *stream)
+ {
+     stream->current = stream->top;
+     stream->size = 0;
+@@ -1545,9 +1462,7 @@ ProtocolStream * stream;
+  */
+ 
+ static Boolean
+-_XEditResGet8(stream, val)
+-ProtocolStream * stream;
+-unsigned char * val;
++_XEditResGet8(ProtocolStream *stream, unsigned char *val)
+ {
+     if (stream->size < (stream->current - stream->top)) 
+       return(FALSE);
+@@ -1565,9 +1480,7 @@ unsigned char * val;
+  */
+ 
+ static Boolean
+-_XEditResGet16(stream, val)
+-ProtocolStream * stream;
+-unsigned short * val;
++_XEditResGet16(ProtocolStream *stream, unsigned short *val)
+ {
+     unsigned char temp1, temp2;
+ 
+@@ -1586,9 +1499,7 @@ unsigned short * val;
+  */
+ 
+ static Boolean
+-_XEditResGetSigned16(stream, val)
+-ProtocolStream * stream;
+-short * val;
++_XEditResGetSigned16(ProtocolStream *stream, short *val)
+ {
+     unsigned char temp1, temp2;
+ 
+@@ -1615,9 +1526,7 @@ short * val;
+  */
+ 
+ static Boolean
+-_XEditResGet32(stream, val)
+-ProtocolStream * stream;
+-unsigned long * val;
++_XEditResGet32(ProtocolStream *stream, unsigned long *val)
+ {
+     unsigned short temp1, temp2;
+ 
+@@ -1637,9 +1546,7 @@ unsigned long * val;
+  */
+ 
+ static Boolean
+-_XEditResGetString8(stream, str)
+-ProtocolStream * stream;
+-char ** str;
++_XEditResGetString8(ProtocolStream *stream, char **str)
+ {
+     unsigned short len;
+     register unsigned i;
+@@ -1670,9 +1577,7 @@ char ** str;
+  */
+ 
+ static Boolean
+-_XEditResGetWidgetInfo(stream, info)
+-ProtocolStream * stream;
+-WidgetInfo * info;
++_XEditResGetWidgetInfo(ProtocolStream *stream, WidgetInfo *info)
+ {
+     unsigned int i;
+ 
+@@ -1708,14 +1613,10 @@ WidgetInfo * info;
+ 
+ /* ARGSUSED */
+ static Boolean
+-CvtStringToBlock(dpy, args, num_args, from_val, to_val, converter_data)
+-Display * dpy;
+-XrmValue * args;
+-Cardinal * num_args;
+-XrmValue * from_val, * to_val;
+-XtPointer * converter_data;
++CvtStringToBlock(Display *dpy, XrmValue *args, Cardinal *num_args, XrmValue 
*from_val, XrmValue *to_val, XtPointer *converter_data)
+ {
+     char ptr[BUFSIZ];
++    ptr[0]='\0';
+     static EditresBlock block;
+ 
+ /*    XmuCopyISOLatin1Lowered(ptr, from_val->addr);*/
+@@ -1763,8 +1664,7 @@ XtPointer * converter_data;
+  */
+ 
+ static void
+-LoadResources(w)
+-Widget w;
++LoadResources(Widget w)
+ {
+     static XtResource resources[] = {
+         {"editresBlock", "EditresBlock", XtREditresBlock, 
sizeof(EditresBlock),

diff --git a/media-gfx/fbida/files/fbida-2.14-libtsm4.patch 
b/media-gfx/fbida/files/fbida-2.14-libtsm4.patch
new file mode 100644
index 000000000000..098e8700f0e4
--- /dev/null
+++ b/media-gfx/fbida/files/fbida-2.14-libtsm4.patch
@@ -0,0 +1,13 @@
+fix API libtsm-4.0.0 
(https://github.com/Aetf/libtsm/commit/78a34f9b0d338064e29935d5d7470e1c541ee741)
+https://github.com/kraxel/fbida/pull/5.patch
+--- a/fbcon.c
++++ b/fbcon.c
+@@ -241,7 +241,7 @@ struct color fbcon_tsm_color(const struct tsm_screen_attr 
*attr,
+     return c;
+ }
+ 
+-int fbcon_tsm_draw_cb(struct tsm_screen *con, uint32_t id,
++int fbcon_tsm_draw_cb(struct tsm_screen *con, uint64_t id,
+                       const uint32_t *ch, size_t len,
+                       unsigned int width, unsigned int posx, unsigned int 
posy,
+                       const struct tsm_screen_attr *attr,

diff --git a/media-gfx/fbida/files/fbida-2.14-rm_automagic.patch 
b/media-gfx/fbida/files/fbida-2.14-rm_automagic.patch
new file mode 100644
index 000000000000..82d50b548448
--- /dev/null
+++ b/media-gfx/fbida/files/fbida-2.14-rm_automagic.patch
@@ -0,0 +1,42 @@
+make fbcon and systemd optional
+--- a/meson.build
++++ b/meson.build
+@@ -24,9 +24,9 @@ webp_dep     = dependency('libwebp', required : 
get_option('webp'))
+ udev_dep     = dependency('libudev')
+ input_dep    = dependency('libinput')
+ xkb_dep      = dependency('xkbcommon')
+-glib_dep     = dependency('glib-2.0')
+-tsm_dep      = dependency('libtsm', required : false)
+-systemd_dep  = dependency('libsystemd', required : false, version : '>=237')
++glib_dep     = dependency('glib-2.0', required : get_option('fbcon'))
++tsm_dep      = dependency('libtsm', required : get_option('fbcon'))
++systemd_dep  = dependency('libsystemd', required : get_option('systemd'), 
version : '>=237')
+ 
+ # other library deps
+ cc           = meson.get_compiler('c')
+@@ -74,7 +74,7 @@ if get_option('webp').enabled()
+     read_srcs += 'rd/read-webp.c'
+     config.set('HAVE_LIBWEBP', true)
+ endif
+-if systemd_dep.found()
++if systemd_dep.found() and get_option('systemd').enabled()
+     config.set('HAVE_SYSTEMD', true)
+ endif
+ 
+@@ -155,7 +155,7 @@ fbcon_srcs   = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 
'gfx.c',
+ fbcon_deps   = [ drm_dep, cairo_dep, util_dep, udev_dep, input_dep, xkb_dep, 
glib_dep,
+                  tsm_dep, systemd_dep ]
+ 
+-if tsm_dep.found() and target_machine.system() == 'linux'
++if tsm_dep.found() and target_machine.system() == 'linux' and 
get_option('fbcon').enabled()
+     executable('fbcon',
+                sources             : fbcon_srcs,
+                dependencies        : fbcon_deps,
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -4,3 +4,5 @@ option('tiff', type: 'feature', value : 'enabled')
+ option('webp', type: 'feature', value : 'auto')
+ option('motif', type: 'feature', value : 'auto')
+ option('pdf', type: 'feature', value : 'enabled')
++option('fbcon', type: 'feature', value : 'auto')
++option('systemd', type: 'feature', value : 'auto')

Reply via email to