Skip to content

Instantly share code, notes, and snippets.

@runlevel5
Created August 12, 2025 02:52
Show Gist options
  • Save runlevel5/6017be6a89d79a2a9c8eadf55aaae9e2 to your computer and use it in GitHub Desktop.
Save runlevel5/6017be6a89d79a2a9c8eadf55aaae9e2 to your computer and use it in GitHub Desktop.
fedora-rpm-motif-2.3.8.patch for https://bugzilla.redhat.com/show_bug.cgi?id=1318636
commit 3b6664a217eaea1ddb00dd978a5326b14ca57fa4
Author: Trung Lê <[email protected]>
Date: Tue Aug 12 11:27:43 2025 +1000
new version 2.3.8
diff --git a/.gitignore b/.gitignore
index 8a39d88..d6d11eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/motif-2.3.4-src.tgz
+/motif-2.3.8.tar.gz
diff --git a/fix-wml-makefile.patch b/fix-wml-makefile.patch
new file mode 100644
index 0000000..6f3fbf8
--- /dev/null
+++ b/fix-wml-makefile.patch
@@ -0,0 +1,28 @@
+diff --git a/configure.ac b/configure.ac
+index 9d1d11e..5aa57a3 100644
+@@ -1,5 +1,5 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT
++AC_INIT([motif], [2.3.8])
+ AC_CONFIG_SRCDIR([lib/Xm/Form.c])
+ AC_PREREQ(2.52)
+ AC_CONFIG_AUX_DIR(.)
+@@ -13,6 +13,8 @@ AC_CHECK_FILE(/usr/X11R6/include/X11/X.h,
+ dnl AM_MAINTAINER_MODE
+ AC_CANONICAL_TARGET
+
++AM_INIT_AUTOMAKE([foreign subdir-objects])
++
+ dnl The version of the Motif libraries
+ CURRENT=4
+ REVISION=4
+@@ -21,9 +23,6 @@ AC_SUBST(CURRENT)
+ AC_SUBST(REVISION)
+ AC_SUBST(AGE)
+
+-dnl This is really dumb but it seems to be bug
+-AM_INIT_AUTOMAKE(motif,2.3.8,no-define)
+-
+ LIBTOOL_VERSION=$CURRENT:$REVISION:$AGE
+
+ dnl
diff --git a/motif-c99-bug1599.patch b/motif-c99-bug1599.patch
deleted file mode 100644
index 244340d..0000000
--- a/motif-c99-bug1599.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-commit 23d12d1f25b33773018bb873c21547b0f4aab14c
-Author: Mykola Vshyvkov <[email protected]>
-Date: Wed Jun 26 15:34:53 2013 +0300
-
- Fixed bug #1599 (Eliminates 14 warnings of incompatible type argument from some modules).
-
-diff --git a/lib/Xm/ColorObj.c b/lib/Xm/ColorObj.c
-index 63ed4748721a807e..b3a51eb99ffca232 100644
---- a/lib/Xm/ColorObj.c
-+++ b/lib/Xm/ColorObj.c
-@@ -62,7 +62,7 @@
- #define WARNING2 _XmMMsgColObj_0002
-
- #ifdef FIX_1400
--static void trap_XCloseDisplay(Display *disp, XExtCodes *codes);
-+static int trap_XCloseDisplay(Display *disp, XExtCodes *codes);
- #endif
-
- /** default should not be killed unless application is dying **/
-@@ -1543,9 +1543,10 @@ XmeGetDesktopColorCells (Screen * screen,
- }
-
- #ifdef FIX_1400
--static void trap_XCloseDisplay(Display *disp, XExtCodes *codes)
-+static int trap_XCloseDisplay(Display *disp, XExtCodes *codes)
- {
- if (disp == _XmColorObjCacheDisplay)
- _XmColorObjCacheDisplay = NULL;
-+ return 0;
- }
- #endif
-diff --git a/lib/Xm/Container.c b/lib/Xm/Container.c
-index f0b35a919d3e36a3..6576783f055a86f9 100644
---- a/lib/Xm/Container.c
-+++ b/lib/Xm/Container.c
-@@ -3234,7 +3234,7 @@ ConstraintSetValues(
- ContainerResetDepths(nc);
-
- #ifdef FIX_1425
-- FindMaxDepths(cc, cw);
-+ FindMaxDepths(cc, (Widget)cw);
- #else
- cw->container.max_depth = MAX(cw->container.max_depth,nc->depth);
- #endif
-@@ -7181,7 +7181,7 @@ static void FindMaxDepths(XmContainerConstraint c, Widget w)
- Widget child = node->widget_ptr;
- XmContainerConstraint cc = GetContainerConstraint(child);
- cw->container.max_depth = MAX(cw->container.max_depth, cc->depth);
-- FindMaxDepths(cc, cw);
-+ FindMaxDepths(cc, (Widget)cw);
- node = node->next_ptr;
- }
- }
-diff --git a/lib/Xm/DataF.c b/lib/Xm/DataF.c
-index 622ee61a309c38af..a780c972e49069ba 100644
---- a/lib/Xm/DataF.c
-+++ b/lib/Xm/DataF.c
-@@ -8867,7 +8867,7 @@ df_LoadFontMetrics(
- #ifdef USE_XFT
- } else if (XmTextF_use_xft(tf)) {
- #ifdef FIX_1415
-- _XmXftFontAverageWidth((Widget) tf, TextF_XftFont(tf), &charwidth);
-+ _XmXftFontAverageWidth((Widget) tf, TextF_XftFont(tf), (int *)&charwidth);
- #else
- charwidth = XmTextF_xft_font(tf)->max_advance_width;
- #endif
-diff --git a/lib/Xm/IconButton.c b/lib/Xm/IconButton.c
-index 2cd206347b0bd895..5f2cae7a23853167 100644
---- a/lib/Xm/IconButton.c
-+++ b/lib/Xm/IconButton.c
-@@ -1870,7 +1870,7 @@ CreateGCs(Widget w)
-
- #ifdef FIX_1381
- /*generally gray insensitive foreground (instead stipple)*/
-- values.foreground = _XmAssignInsensitiveColor(iw);
-+ values.foreground = _XmAssignInsensitiveColor((Widget)iw);
- XmIconButton_insensitive_text_gc(iw) = XtGetGC(w, smask, &values);
- #else
- XmIconButton_stippled_text_gc(iw) = XtGetGC(w, smask, &values);
-diff --git a/lib/Xm/Label.c b/lib/Xm/Label.c
-index 8f5621229d4314a6..fd4c63abb5747050 100644
---- a/lib/Xm/Label.c
-+++ b/lib/Xm/Label.c
-@@ -1562,7 +1562,7 @@ Redisplay(
- #ifdef FIX_1505
- if (pix_use == Pix(lw)) {
- XSetFillStyle(XtDisplay(lw), gc, FillStippled);
-- XSetStipple(XtDisplay(lw), gc, _XmGetInsensitiveStippleBitmap(lw));
-+ XSetStipple(XtDisplay(lw), gc, _XmGetInsensitiveStippleBitmap((Widget)lw));
- XFillRectangle(XtDisplay(lw), XtWindow(lw), gc,
- lp->TextRect.x + lp->PixmapRect.x,
- lp->TextRect.y + lp->PixmapRect.y,
-diff --git a/lib/Xm/LabelG.c b/lib/Xm/LabelG.c
-index d574e436df53a764..b674041fc9bc1f87 100644
---- a/lib/Xm/LabelG.c
-+++ b/lib/Xm/LabelG.c
-@@ -2452,7 +2452,7 @@ LRectangle *background_box)
- #ifdef FIX_1505
- if (pix_use == Pix(lw)) {
- XSetFillStyle(XtDisplay(lw), gc, FillStippled);
-- XSetStipple(XtDisplay(lw), gc, _XmGetInsensitiveStippleBitmap(lw));
-+ XSetStipple(XtDisplay(lw), gc, _XmGetInsensitiveStippleBitmap((Widget)lw));
- XFillRectangle(XtDisplay(lw), XtWindow(lw), gc,
- lw->rectangle.x + LabG_TextRect(lw).x +
- LabG_PixmapRect(lw).x,
-diff --git a/lib/Xm/List.c b/lib/Xm/List.c
-index 1dd16d2880f84ceb..98aec0e47c01c343 100644
---- a/lib/Xm/List.c
-+++ b/lib/Xm/List.c
-@@ -2486,7 +2486,7 @@ DrawItems(XmListWidget lw,
- #ifdef FIX_1381
- {
- gc = lw->list.InsensitiveGC;
-- _XmRendFG(lw->list.scratchRend) = _XmAssignInsensitiveColor(lw);
-+ _XmRendFG(lw->list.scratchRend) = _XmAssignInsensitiveColor((Widget)lw);
- }
- #else
- gc = lw->list.InsensitiveGC;
-@@ -2831,7 +2831,7 @@ MakeGC(XmListWidget lw)
- values.background = lw->core.background_pixel;
- #ifdef FIX_1381
- /*generally gray insensitive foreground (instead stipple)*/
-- values.foreground = _XmAssignInsensitiveColor(lw);
-+ values.foreground = _XmAssignInsensitiveColor((Widget)lw);
- #else
- values.foreground = lw->primitive.foreground;
- valueMask |= GCStipple | GCFillStyle;
-diff --git a/lib/Xm/ResEncod.c b/lib/Xm/ResEncod.c
-index fdb44644c94be415..09d2d8f14d181379 100644
---- a/lib/Xm/ResEncod.c
-+++ b/lib/Xm/ResEncod.c
-@@ -2513,9 +2513,9 @@ processCharsetAndTextUtf8(XmStringCharSet tag,
-
- /* Now copy in the text */
- if (ctlen > 0) {
-- char *text = Convert(ctext, ctlen, "UTF-8", tag);
-+ char *text = Convert((char *)ctext, ctlen, "UTF-8", tag);
- if (text == NULL) return(False);
-- *outc = ctextConcat(*outc, *outlen, text, strlen(text));
-+ *outc = ctextConcat(*outc, *outlen, (const_OctetPtr)text, strlen(text));
- *outlen += ctlen;
- XtFree(text);
- };
-diff --git a/lib/Xm/Text.c b/lib/Xm/Text.c
-index 0cf37018bd68da52..427b613c97b12750 100644
---- a/lib/Xm/Text.c
-+++ b/lib/Xm/Text.c
-@@ -1745,7 +1745,7 @@ _XmTextUpdateLineTable(Widget widget,
- }
- _XmTextSetCursorPosition(widget, cursorPos);
- } else if (start == tw->text.cursor_position && tw->text.auto_show_cursor_position) {
-- _XmTextShowPosition(tw, cursorPos);
-+ _XmTextShowPosition((Widget)tw, cursorPos);
- }
- }
- #else
-diff --git a/lib/Xm/TextF.c b/lib/Xm/TextF.c
-index 6b7a85bd7a8fe836..e8f1c78a33cef5a2 100644
---- a/lib/Xm/TextF.c
-+++ b/lib/Xm/TextF.c
-@@ -6988,7 +6988,7 @@ LoadFontMetrics(XmTextFieldWidget tf)
- #ifdef USE_XFT
- } else if (TextF_UseXft(tf)) {
- #ifdef FIX_1415
-- _XmXftFontAverageWidth((Widget) tf, TextF_XftFont(tf), &charwidth);
-+ _XmXftFontAverageWidth((Widget) tf, TextF_XftFont(tf), (int *)&charwidth);
- #else
- charwidth = TextF_XftFont(tf)->max_advance_width;
- #endif
-diff --git a/lib/Xm/TextIn.c b/lib/Xm/TextIn.c
-index 40f2b5ad89d846da..b4f2d111f6277cdb 100644
---- a/lib/Xm/TextIn.c
-+++ b/lib/Xm/TextIn.c
-@@ -1345,7 +1345,7 @@ PrintableString(XmTextWidget tw,
- #ifdef USE_XFT
- } else if (o_data->use_xft) {
- XGlyphInfo ext;
-- XftTextExtentsUtf8(XtDisplay(tw), (XftFont*)o_data->font, str, n, &ext);
-+ XftTextExtentsUtf8(XtDisplay(tw), (XftFont*)o_data->font, (_Xconst FcChar8 *)str, n, &ext);
- return ext.xOff != 0;
- #endif
- } else {
diff --git a/motif-c99-bug1602.patch b/motif-c99-bug1602.patch
deleted file mode 100644
index b20340b..0000000
--- a/motif-c99-bug1602.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 56dae22f7c2e7446852af1d68116f1809edae633
-Author: Mykola Vshyvkov <[email protected]>
-Date: Wed Jun 26 19:21:20 2013 +0300
-
- Fixed bug #1602 (Eliminates 6 warnings "implicit declaration of function" in some modules).
-
-diff --git a/tools/wml/wml.c b/tools/wml/wml.c
-index d8ad382ebb93f0cc..723288a9c29cead2 100644
---- a/tools/wml/wml.c
-+++ b/tools/wml/wml.c
-@@ -80,6 +80,7 @@ static char rcsid[] = "$TOG: wml.c /main/8 1999/04/16 09:41:47 mgreess $"
- #endif
- #include <stdio.h>
- #include <stdlib.h>
-+#include <unistd.h>
-
-
- /*
-@@ -159,6 +160,7 @@ void wmlInit ();
- * External variables
- */
- extern int yyleng;
-+extern int yyparse();
-
-
-
-diff --git a/tools/wml/wmloutp1.c b/tools/wml/wmloutp1.c
-index c826c4f0fad65b68..ea6a8e2780d08d78 100644
---- a/tools/wml/wmloutp1.c
-+++ b/tools/wml/wmloutp1.c
-@@ -45,6 +45,11 @@ static char rcsid[] = "$XConsortium: wmloutp1.c /main/7 1995/07/13 21:04:31 drk
-
- #include "wml.h"
-
-+/* External functions declaraion */
-+extern void wmlOutputKeyWordFiles ();
-+extern void wmlOutputMmFiles();
-+
-+
-
- void wmlOutput ()
-
-diff --git a/tools/wml/wmlresolve.c b/tools/wml/wmlresolve.c
-index 3b8642c12474cfbd..c9bc84151f8a7902 100644
---- a/tools/wml/wmlresolve.c
-+++ b/tools/wml/wmlresolve.c
-@@ -58,6 +58,7 @@ static char rcsid[] = "$XConsortium: wmlresolve.c /main/9 1995/08/29 11:11:05 dr
- #include <stdlib.h>
- #endif
- #include <stdio.h>
-+#include <string.h>
-
- /*
- * Routines used only in this module
diff --git a/motif-c99-bug1605.patch b/motif-c99-bug1605.patch
deleted file mode 100644
index ac47267..0000000
--- a/motif-c99-bug1605.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-commit d094e8c4a6a1890520ade3e1900229454dc2eac2
-Author: Mykola Vshyvkov <[email protected]>
-Date: Mon Jul 1 19:02:25 2013 +0300
-
- Fixed bug #1605 (Eliminates 14 warnings of some types in WML tool).
-
-diff --git a/lib/Xm/XmRenderT.c b/lib/Xm/XmRenderT.c
-index 0abd71265fc901b9..5ecd38bef29d2c6b 100644
---- a/lib/Xm/XmRenderT.c
-+++ b/lib/Xm/XmRenderT.c
-@@ -1993,7 +1993,7 @@ GetSameRenditions(XmRendition *rend_cache, XmRendition rend, int count_rend)
- for (i=0; i<count_rend; i++){
-
- if ( rend_cache && (rend_cache[i])
-- && (((_XmRendFontName(rend) && _XmRendFontName(rend_cache[i]) ) && !strcmp(_XmRendFontName(rend_cache[i]), _XmRendFontName(rend))
-+ && ((((_XmRendFontName(rend) && _XmRendFontName(rend_cache[i]) ) && !strcmp(_XmRendFontName(rend_cache[i]), _XmRendFontName(rend)))
- || (!_XmRendFontName(rend) && !_XmRendFontName(rend_cache[i])))
- && (((_XmRendFontFoundry(rend) && _XmRendFontFoundry(rend_cache[i])) && !strcmp(_XmRendFontFoundry(rend_cache[i]), _XmRendFontFoundry(rend)))
- || (!_XmRendFontFoundry(rend) && !_XmRendFontFoundry(rend_cache[i])))
-diff --git a/tools/wml/wml.h b/tools/wml/wml.h
-index 91d3857d005b90ce..d4bd405d6f910cc8 100644
---- a/tools/wml/wml.h
-+++ b/tools/wml/wml.h
-@@ -678,6 +678,19 @@ extern void wmlCreateCharset ();
- extern void wmlAddCharsetAttribute ();
- extern void LexIssueError ();
-
-+/* May be, declaration of functions must be next:
-+extern void wmlAddClassChild ();
-+extern void wmlCreateChild ();
-+extern void wmlCreateOrAppendCtrlList ();
-+extern void wmlAddCtrlListControl ();
-+ But, we are using real function arguments type declaration:
-+*/
-+extern void wmlAddClassChild (char *);
-+extern void wmlCreateChild (char *, char *);
-+extern void wmlCreateOrAppendCtrlList (char *);
-+extern void wmlAddCtrlListControl (char *);
-+
-+
-
- /*
- * Defined in wmlresolve.c
-diff --git a/tools/wml/wmldbcreate.c b/tools/wml/wmldbcreate.c
-index 6de585ae8d12c17d..b6b12dca6aad399d 100644
---- a/tools/wml/wmldbcreate.c
-+++ b/tools/wml/wmldbcreate.c
-@@ -260,7 +260,7 @@ void emit_chars(table_id)
- int table_id;
- {
- _db_header header;
-- unsigned char *ptr;
-+ unsigned char *ptr = NULL;
- int i;
-
- switch (table_id)
-@@ -338,7 +338,7 @@ void emit_ints_and_string(table_id)
- int table_id;
- {
- _db_header header;
-- key_keytable_entry_type *table;
-+ key_keytable_entry_type *table = NULL;
- int i;
-
- switch (table_id)
-@@ -376,7 +376,7 @@ void emit_ints_and_string(table_id)
- void emit_char_table(table_id)
- int table_id;
- {
-- unsigned char **table;
-+ unsigned char **table = NULL;
- _db_header header;
- unsigned char *entry_vec;
- int i, j;
-@@ -437,7 +437,7 @@ int table_id;
- _db_header header;
- int *lengths;
- char *string_table;
-- char **table;
-+ char **table = NULL;
- int i;
-
- switch (table_id)
-@@ -558,7 +558,7 @@ void emit_shorts(table_id)
- int table_id;
- {
- _db_header header;
-- unsigned short int *ptr;
-+ unsigned short int *ptr = NULL;
- int i;
-
- switch (table_id)
-@@ -624,7 +624,7 @@ void emit_int_and_table_shorts(table_id)
- int table_id;
- {
- _db_header header;
-- UilEnumSetDescDef *table;
-+ UilEnumSetDescDef *table = NULL;
- int j, i;
- unsigned short int *value_vec;
-
-@@ -657,7 +657,7 @@ void emit_ints(table_id)
- int table_id;
- {
- _db_header header;
-- int *ptr;
-+ int *ptr = NULL;
- int i;
-
- switch (table_id)
-diff --git a/tools/wml/wmllex.l b/tools/wml/wmllex.l
-index ea21dfe64176e75f..5e3158d3a54e448c 100644
---- a/tools/wml/wmllex.l
-+++ b/tools/wml/wmllex.l
-@@ -95,7 +95,6 @@ int yytknval2; /* terminal token value 2 */
- "Gadget" { return GADGET;}
- "Argument" { return ARGUMENT;}
- "Reason" { return REASON;}
--"Constraint" { return CONSTRAINT;}
- "SubResource" { return SUBRESOURCE;}
- "True" { return ATTRTRUE; }
- "False" { return ATTRFALSE; }
-diff --git a/tools/wml/wmluiltok.l b/tools/wml/wmluiltok.l
-index d334e4f46302cde9..f02d9fec34d821ce 100644
---- a/tools/wml/wmluiltok.l
-+++ b/tools/wml/wmluiltok.l
-@@ -82,6 +82,7 @@ TokenRec token[1000];
- TokenRec temp;
-
- void add_token ();
-+int yywrap ();
-
- int phase = 0;
- int keyword_count;
diff --git a/motif-c99-bug1609.patch b/motif-c99-bug1609.patch
deleted file mode 100644
index 48d660c..0000000
--- a/motif-c99-bug1609.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-commit 7a52b1ea7e1ec88ba854db30a51d9f68f2f0078f
-Author: Mykola Vshyvkov <[email protected]>
-Date: Wed Jul 3 18:52:21 2013 +0300
-
- Fixed bug #1609 (Eliminates 18 warnings of "incompatible implicit declaration" in modules of "clients" catalog).
-
-diff --git a/clients/mwm/WmCmd.c b/clients/mwm/WmCmd.c
-index f21d41d541dc50a3..4d723aa4848314f6 100644
---- a/clients/mwm/WmCmd.c
-+++ b/clients/mwm/WmCmd.c
-@@ -48,6 +48,7 @@
- #include "WmWsm.h"
- #include "WmDebug.h"
- #include "WmWinConf.h"
-+#include "WmFeedback.h"
-
-
-
-diff --git a/clients/mwm/WmCmd.h b/clients/mwm/WmCmd.h
-index ff779defe240933b..e8bc104e850c5ec3 100644
---- a/clients/mwm/WmCmd.h
-+++ b/clients/mwm/WmCmd.h
-@@ -59,5 +59,8 @@ extern void AddWindowMenuEntry (ClientData *);
- extern void DeleteCommand (long, CmdTree **);
- extern void SendInvokeMessage (CARD32, CARD32, Atom, Time);
-
-+extern void
-+GetAutomationData (XtPointer input, Atom *outputType, XtPointer *output, unsigned long *outputLen, int *outputFmt);
-+
-
- #endif /* _WM_CMD_ */
-diff --git a/clients/mwm/WmFunction.c b/clients/mwm/WmFunction.c
-index 9a2102bcf80cbf08..94fb8cde2c0ec83d 100644
---- a/clients/mwm/WmFunction.c
-+++ b/clients/mwm/WmFunction.c
-@@ -112,6 +112,7 @@ extern pid_t vfork();
- #include "WmWinList.h"
- #include "WmWinState.h"
- #include "WmXSMP.h"
-+#include "WmCmd.h"
-
- #include <Xm/RowColumnP.h> /* for MS_LastManagedMenuTime */
- extern XmMenuState _XmGetMenuState();
-diff --git a/clients/mwm/WmInitWs.c b/clients/mwm/WmInitWs.c
-index aaa584cd3e4ce7b7..d29b5f96fec246fc 100644
---- a/clients/mwm/WmInitWs.c
-+++ b/clients/mwm/WmInitWs.c
-@@ -134,6 +134,7 @@ typedef struct
- #include <stdlib.h>
- #endif /* WSM */
- #include "WmXSMP.h"
-+#include "Xm/VirtKeysI.h"
-
- /*
- * Function Declarations:
-diff --git a/clients/mwm/WmResParse.c b/clients/mwm/WmResParse.c
-index 465f5b4d29e99411..a63e928acd643c54 100644
---- a/clients/mwm/WmResParse.c
-+++ b/clients/mwm/WmResParse.c
-@@ -63,6 +63,7 @@ static char rcsid[] = "$XConsortium: WmResParse.c /main/9 1996/11/01 10:17:34 dr
- #include "WmResource.h"
-
- #include <Xm/VirtKeysP.h>
-+#include "Xm/VirtKeysI.h"
-
- #include <X11/cursorfont.h>
- #include <X11/keysym.h>
-diff --git a/clients/mwm/WmWinList.c b/clients/mwm/WmWinList.c
-index a45a4fc9471ab21d..31472a5caa832d90 100644
---- a/clients/mwm/WmWinList.c
-+++ b/clients/mwm/WmWinList.c
-@@ -63,7 +63,7 @@ static char rcsid[] = "$TOG: WmWinList.c /main/8 1997/06/10 15:50:50 samborn $"
- #ifdef WSM
- #include "WmWrkspace.h"
- #endif /* WSM */
--
-+#include "WmEvent.h"
-
-
-
-diff --git a/clients/mwm/WmWsmLib/recv.c b/clients/mwm/WmWsmLib/recv.c
-index 8b2833fbc2ea756f..06908e24756b0e3c 100644
---- a/clients/mwm/WmWsmLib/recv.c
-+++ b/clients/mwm/WmWsmLib/recv.c
-@@ -38,6 +38,8 @@ XtPointer *, unsigned long *, int *
- );
- #endif /* JUNK */
-
-+extern Time GetTimestamp (Display *dpy);
-+
-
- /* Function Name: WSMDefaultOwnSelection
- * Description: This is the default routine that owns the proper
-diff --git a/clients/mwm/WmWsmLib/send.c b/clients/mwm/WmWsmLib/send.c
-index 8792e2c7c8ac82bb..c261da70bfff366a 100644
---- a/clients/mwm/WmWsmLib/send.c
-+++ b/clients/mwm/WmWsmLib/send.c
-@@ -45,6 +45,8 @@ static void ReplyReceived(
- Widget, XtPointer, Atom *, Atom *, XtPointer, unsigned long *, int *
- );
-
-+extern Time GetTimestamp (Display *dpy);
-+
- /* Function Name: WSMSendMessage
- * Description: Sends a message to WSM or WM on the screen
- * and display specified.
-diff --git a/clients/uil/UilDefI.h b/clients/uil/UilDefI.h
-index a0176b619e89f1eb..f17bff764bf6fd1e 100644
---- a/clients/uil/UilDefI.h
-+++ b/clients/uil/UilDefI.h
-@@ -608,7 +608,7 @@ extern void sym_dump_object_variant _ARGUMENTS(( sym_def_obj_entry_type *az_sym
- extern void sym_dump_root_entry _ARGUMENTS(( sym_root_entry_type *az_symbol_entry ));
- extern char *sym_section_text _ARGUMENTS(( int b_type ));
- extern void dump_free_list _ARGUMENTS(( void ));
--
-+extern int sar_get_units_type (yystype *parse_frame);
- #if defined(__cplusplus) || defined(c_plusplus)
- }
- #endif
-diff --git a/clients/uil/UilMain.c b/clients/uil/UilMain.c
-index 6120eda2fa176670..1864ba78597e2dd6 100644
---- a/clients/uil/UilMain.c
-+++ b/clients/uil/UilMain.c
-@@ -104,9 +104,10 @@ static void UilWrapup _ARGUMENTS((Uil_compile_desc_type *compile_desc));
- #endif
-
- externaldef(uilmsg) nl_catd uil_catd = NULL;
--
- #endif
-
-+extern int yyparse();
-+
- /*
- **
- ** MODULE Definitions
-diff --git a/clients/xmbind/xmbind.c b/clients/xmbind/xmbind.c
-index f3d5a67ce35dab84..a16e2d968c45f7f0 100644
---- a/clients/xmbind/xmbind.c
-+++ b/clients/xmbind/xmbind.c
-@@ -29,6 +29,7 @@ static char rcsid[] = "$TOG: xmbind.c /main/10 1997/06/18 17:34:48 samborn $"
- #endif
- #endif
- #include <stdio.h>
-+#include <stdlib.h>
- #include <Xm/Xm.h>
-
- /* Internal routines "borrowed" from libXm. Don't try this at home! */
diff --git a/motif-c99-void-sprintf.patch b/motif-c99-void-sprintf.patch
index 040c79e..44f7116 100644
--- a/motif-c99-void-sprintf.patch
+++ b/motif-c99-void-sprintf.patch
@@ -6,10 +6,10 @@ diff --git a/acinclude.m4 b/acinclude.m4
index 88edfce3d169a267..38409a28a65cb028 100644
--- a/acinclude.m4
+++ b/acinclude.m4
-@@ -45,19 +45,6 @@ if test $lt_cv_xthreads = yes; then
+@@ -46,18 +46,6 @@ if test $lt_cv_xthreads = yes; then
fi
])
-
+
-dnl This test is not very reliable probably ...
-AC_DEFUN([AM_FUNC_VOID_SPRINTF],
-[AC_CACHE_CHECK(whether sprintf returns void, ac_cv_func_void_sprintf,
@@ -22,15 +22,14 @@ index 88edfce3d169a267..38409a28a65cb028 100644
-fi
-])
-
--
- dnl
- dnl End of special macros.
- dnl
+ dnl This tests whether weak aliases are supported.
+ AC_DEFUN([WEAK_ALIAS_SUPPORT],
+ [AC_CACHE_CHECK(whether weak aliases are supported, ac_cv_weak_alias_support,
diff --git a/configure.ac b/configure.ac
index 3b412361e6f43da4..6cbeb2f5eea235eb 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -120,7 +120,6 @@ AC_FUNC_STRCOLL
+@@ -116,7 +116,6 @@ AC_FUNC_STRCOLL
AC_FUNC_STRFTIME
AC_FUNC_FORK([])
AC_FUNC_VPRINTF
diff --git a/motif.spec b/motif.spec
index 715591a..a185b82 100644
--- a/motif.spec
+++ b/motif.spec
@@ -1,10 +1,10 @@
Summary: Run-time libraries and programs
Name: motif
-Version: 2.3.4
-Release: 39%{?dist}
+Version: 2.3.8
+Release: 0%{?dist}
# Automatically converted from old format: LGPLv2+ - review is highly recommended.
License: LicenseRef-Callaway-LGPLv2+
-Source: http://downloads.sf.net/motif/motif-%{version}-src.tgz
+Source: https://downloads.sourceforge.net/project/motif/Motif%%20%{version}%%20Source%%20Code/motif-%{version}.tar.gz
Source1: xmbind
URL: http://www.motifzone.net/
Obsoletes: openmotif < 2.3.4
@@ -31,14 +31,10 @@ Patch48: motif-2.3.4-Fix-issues-with-Werror-format-security.patch
Patch49: motif-configure-c99.patch
Patch50: motif-c99-void-sprintf.patch
Patch51: motif-c99-string.patch
-Patch52: motif-c99-bug1602.patch
-Patch53: motif-c99-bug1605.patch
-Patch54: motif-c99-bug1609.patch
# CVE-2023-43788
Patch55: 0001-Fix-CVE-2023-43788-Out-of-bounds-read-in-XpmCreateXp.patch
# CVE-2023-43789
Patch56: 0001-Fix-CVE-2023-43789-Out-of-bounds-read-on-XPM-with-co.patch
-Patch57: motif-c99-bug1599.patch
# https://sourceforge.net/p/motif/code/merge-requests/9/
Patch58: 0001-build-Check-for-Xinerama-availability.patch
Patch59: 0002-Xm-Display-Add-optional-Xinerama-support.patch
@@ -48,6 +44,9 @@ Patch62: 0005-Xm-RCMenu-Use-Xinerama-for-placement.patch
Patch63: 0006-Xm-Tooltip-Use-Xinerama-for-placement.patch
Patch64: 0007-Xm-ComboBox-Use-Xinerama-for-placement.patch
+# https://sourceforge.net/p/motif/code/merge-requests/6/
+Patch65: fix-wml-makefile.patch
+
Conflicts: lesstif <= 0.92.32-6
%description
@@ -89,12 +88,8 @@ This package contains the static Motif libraries.
%patch -P49 -p1
%patch -P50 -p1
%patch -P51 -p1
-%patch -P52 -p1
-%patch -P53 -p1
-%patch -P54 -p1
%patch -P55 -p1
%patch -P56 -p1
-%patch -P 57 -p1
%patch -P 58 -p1 -b .xinerama
%patch -P 59 -p1 -b .xinerama
%patch -P 60 -p1 -b .xinerama
@@ -102,10 +97,11 @@ This package contains the static Motif libraries.
%patch -P 62 -p1 -b .xinerama
%patch -P 63 -p1 -b .xinerama
%patch -P 64 -p1 -b .xinerama
+%patch -P 65 -p1
%build
export CFLAGS="$CFLAGS -std=gnu17"
-./autogen.sh
+autoreconf --install
%configure --enable-static --enable-xft --enable-jpeg --enable-png
make clean %{?_smp_mflags}
@@ -152,6 +148,9 @@ rm -f %{buildroot}%{_libdir}/*.la
%{_libdir}/lib*.a
%changelog
+* Tue Aug 12 2025 Trung Lê <[email protected]> - 2.3.8-0
+- new version 2.3.8
+
* Thu Jul 24 2025 Fedora Release Engineering <[email protected]> - 2.3.4-39
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
diff --git a/sources b/sources
index c891fa3..50b70d1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-612bb8127d0d31da6e5474edf8a5c247 motif-2.3.4-src.tgz
+SHA512 (motif-2.3.8.tar.gz) = 1ab8e8eece25ef97e948592b5fa3e19d98e932695290a18b7a8e90f1aa2766bc4f082bdbc3999dff5660e684821178a149040f76bb477163e53ca06474d02b55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment