[packages/exim] - rel 3, upstream build fix for gcc 15

baggins baggins at pld-linux.org
Sat Oct 25 10:51:21 CEST 2025


commit 50a291d484115fb0188bdf8b17c809ab793e662d
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sat Oct 25 12:50:53 2025 +0200

    - rel 3, upstream build fix for gcc 15

 exim.spec   |   4 +-
 gcc15.patch | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 257 insertions(+), 1 deletion(-)
---
diff --git a/exim.spec b/exim.spec
index cecca81..19d3af2 100644
--- a/exim.spec
+++ b/exim.spec
@@ -22,7 +22,7 @@ Summary(pl.UTF-8):	Agent Transferu Poczty Uniwersytetu w Cambridge
 Summary(pt_BR.UTF-8):	Servidor de correio eletrônico exim
 Name:		exim
 Version:	4.98.2
-Release:	2
+Release:	3
 Epoch:		2
 License:	GPL v2+
 Group:		Networking/Daemons/SMTP
@@ -62,6 +62,7 @@ Patch7:		linelength-show.patch
 Patch8:		%{name}-spam-timeout.patch
 Patch9:		autoreply-return-path.patch
 Patch10:        unofficial-hotfix.patch
+Patch11:	gcc15.patch
 URL:		http://www.exim.org/
 %{?with_sasl:BuildRequires:	cyrus-sasl-devel >= 2.1.0}
 BuildRequires:	db-devel
@@ -187,6 +188,7 @@ Pliki nagłówkowe dla Exima.
 %patch -P8 -p1
 %patch -P9 -p2
 %patch -P10 -p2
+%patch -P11 -p2
 
 install %{SOURCE4} exim4.conf
 install %{SOURCE14} doc/config.samples.tar.bz2
diff --git a/gcc15.patch b/gcc15.patch
new file mode 100644
index 0000000..3eb67f2
--- /dev/null
+++ b/gcc15.patch
@@ -0,0 +1,254 @@
+@@ -, +, @@ 
+---
+ src/exim_monitor/em_StripChart.c | 86 ++++++++++++++++++++------------
+ src/exim_monitor/em_TextPop.c    | 17 ++++---
+ 2 files changed, 66 insertions(+), 37 deletions(-)
+--- a/src/exim_monitor/em_StripChart.c	
++++ a/src/exim_monitor/em_StripChart.c	
+@@ -71,18 +71,25 @@ static XtResource resources[] = {
+ 
+ #undef offset
+ 
+ /* Added argument types to these to shut picky compilers up. PH */
+ 
+-static void CreateGC(StripChartWidget, unsigned int);
+-static void DestroyGC(StripChartWidget, unsigned int);
+-static void Initialize(), Destroy(), Redisplay();
++static void CreateGC(StripChartWidget w, unsigned int which);
++static void DestroyGC(StripChartWidget w, unsigned int which);
++
++static void Initialize (Widget greq, Widget gnew, ArgList unused_Arglist,
++    Cardinal* unused_Cardinal);
++static void Destroy (Widget gw);
++static void Redisplay( Widget w, XEvent *event, Region region);
+ static void MoveChart(StripChartWidget, Boolean);
+-static void SetPoints(StripChartWidget);
+-static Boolean SetValues();
++static void SetPoints(StripChartWidget w);
++static Boolean SetValues (Widget current, Widget request, Widget new,
++    ArgList unused_Arglist,
++    Cardinal* unused_Cardinal
++		);
+ 
+-int repaint_window(StripChartWidget, int, int);     /* PH hack */
++int repaint_window(StripChartWidget w, int left, int width);  /* PH hack */
+ /* static int repaint_window(); */
+ 
+ StripChartClassRec stripChartClassRec = {
+     { /* core fields */
+     /* superclass		*/	(WidgetClass) &simpleClassRec,
+@@ -130,23 +137,27 @@ WidgetClass mystripChartWidgetClass = (WidgetClass) &stripChartClassRec;
+  *
+  * Private Procedures
+  *
+  ****************************************************************/
+ 
+-static void draw_it();
++static void
++draw_it(XtPointer client_data,
++XtIntervalId *id		/* unused */
++);
+ 
+ /*	Function Name: CreateGC
+  *	Description: Creates the GC's
+  *	Arguments: w - the strip chart widget.
+  *                 which - which GC's to create.
+  *	Returns: none
+  */
+ 
+ static void
+-CreateGC(w, which)
+-StripChartWidget w;
+-unsigned int which;
++CreateGC(
++StripChartWidget w,
++unsigned int which
++)
+ {
+   XGCValues	myXGCV;
+ 
+   if (which & FOREGROUND) {
+     myXGCV.foreground = w->strip_chart.fgpixel;
+@@ -165,24 +176,29 @@ unsigned int which;
+  *                 which - which GC's to destroy.
+  *	Returns: none
+  */
+ 
+ static void
+-DestroyGC(w, which)
+-StripChartWidget w;
+-unsigned int which;
++DestroyGC(
++StripChartWidget w,
++unsigned int which
++)
+ {
+   if (which & FOREGROUND)
+     XtReleaseGC((Widget) w, w->strip_chart.fgGC);
+ 
+   if (which & HIGHLIGHT)
+     XtReleaseGC((Widget) w, w->strip_chart.hiGC);
+ }
+ 
+ /* ARGSUSED */
+-static void Initialize (greq, gnew)
+-    Widget greq, gnew;
++static void Initialize (
++    Widget greq,
++    Widget gnew,
++    ArgList unused_Arglist,
++    Cardinal* unused_Cardinal
++    )
+ {
+     StripChartWidget w = (StripChartWidget)gnew;
+ 
+     if (w->strip_chart.update > 0)
+         w->strip_chart.interval_id = XtAppAddTimeOut(
+@@ -196,12 +212,13 @@ static void Initialize (greq, gnew)
+     w->strip_chart.max_value = 0.0;
+     w->strip_chart.points = NULL;
+     SetPoints(w);
+ }
+ 
+-static void Destroy (gw)
+-     Widget gw;
++static void Destroy (
++     Widget gw
++     )
+ {
+      StripChartWidget w = (StripChartWidget)gw;
+ 
+      if (w->strip_chart.update > 0)
+          XtRemoveTimeOut (w->strip_chart.interval_id);
+@@ -215,14 +232,15 @@ static void Destroy (gw)
+  *       events, but since this is not easily supported until R4 I am
+  *       going to hold off until then.
+  */
+ 
+ /* ARGSUSED */
+-static void Redisplay(w, event, region)
+-     Widget w;
+-     XEvent *event;
+-     Region region;
++static void Redisplay(
++     Widget w,
++     XEvent *event,
++     Region region
++     )
+ {
+     if (event->type == GraphicsExpose)
+ 	(void) repaint_window ((StripChartWidget)w, event->xgraphicsexpose.x,
+ 			       event->xgraphicsexpose.width);
+     else
+@@ -230,13 +248,13 @@ static void Redisplay(w, event, region)
+ 			       event->xexpose.width);
+ }
+ 
+ /* ARGSUSED */
+ static void
+-draw_it(client_data, id)
+-XtPointer client_data;
+-XtIntervalId *id;		/* unused */
++draw_it(XtPointer client_data,
++XtIntervalId *id		/* unused */
++)
+ {
+    StripChartWidget w = (StripChartWidget)client_data;
+    double value;
+ 
+    if (w->strip_chart.update > 0)
+@@ -301,13 +319,15 @@ XtIntervalId *id;		/* unused */
+  * largest data point.
+  */
+ 
+ /* static int */
+ int              /* PH hack */
+-repaint_window(w, left, width)
+-StripChartWidget w;
+-int left, width;
++repaint_window(
++StripChartWidget w,
++int left,
++int width
++)
+ {
+     register int i, j;
+     register int next = w->strip_chart.interval;
+     int scale = w->strip_chart.scale;
+     int scalewidth = 0;
+@@ -429,12 +449,15 @@ MoveChart(StripChartWidget w, Boolean blit)
+     }
+     return;
+ }
+ 
+ /* ARGSUSED */
+-static Boolean SetValues (current, request, new)
+-    Widget current, request, new;
++static Boolean SetValues (
++    Widget current, Widget request, Widget new,
++    ArgList unused_Arglist,
++    Cardinal* unused_Cardinal
++    )
+ {
+     StripChartWidget old = (StripChartWidget)current;
+     StripChartWidget w = (StripChartWidget)new;
+     Boolean ret_val = FALSE;
+     unsigned int new_gc = NO_GCS;
+@@ -476,12 +499,13 @@ static Boolean SetValues (current, request, new)
+  */
+ 
+ #define HEIGHT ( (unsigned int) w->core.height)
+ 
+ static void
+-SetPoints(w)
+-StripChartWidget w;
++SetPoints(
++StripChartWidget w
++)
+ {
+     XPoint * points;
+     Cardinal size;
+     int i;
+ 
+--- a/src/exim_monitor/em_TextPop.c	
++++ a/src/exim_monitor/em_TextPop.c	
+@@ -92,12 +92,16 @@ static void PopdownSearch(Widget, XtPointer, XtPointer);
+ static void InitializeSearchWidget(struct SearchAndReplace *,
+   XawTextScanDirection, Boolean);
+ static void  SetResource(Widget, char *, XtArgVal);
+ static void  SetSearchLabels(struct SearchAndReplace *, String, String,
+   Boolean);
+-static Widget CreateDialog(Widget, String, String,
+-  void (*)(Widget, char *, Widget));
++static Widget
++CreateDialog(
++		Widget parent,
++		String ptr, String name,
++		void (*func)(Widget form, String ptr, Widget parent)
++	    );
+ static Widget  GetShell(Widget);
+ static void SetWMProtocolTranslations(Widget w);
+ static Boolean DoSearch(struct SearchAndReplace *);
+ static String GetString(Widget);
+ 
+@@ -635,14 +639,15 @@ XEvent *event;
+  * ptr - the initial string for the dialog's text widget.
+  * parent - the parent of the dialog - the main text widget.
+  */
+ 
+ static Widget
+-CreateDialog(parent, ptr, name, func)
+-Widget parent;
+-String ptr, name;
+-void (*func)();
++CreateDialog(
++		Widget parent,
++		String ptr, String name,
++		void (*func)(Widget form, String ptr, Widget parent)
++	    )
+ {
+   Widget popup, form;
+   Arg args[5];
+   Cardinal num_args;
+ 
+-- 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/exim.git/commitdiff/50a291d484115fb0188bdf8b17c809ab793e662d



More information about the pld-cvs-commit mailing list