On Mon, Jan 05, 2026 at 02:07:14PM +0200, Adrian Bunk wrote:
> Control: tags 1096868 + patch
> Control: tags 1096868 + pending
> 
> Dear maintainer,
> 
> I've prepared an NMU for ispell (versioned as 3.4.06-1.1) and uploaded 
> it to DELAYED/2. Please feel free to tell me if I should cancel it.

Hi,

Attached patch by Petr Gajdos, borrowed from opensuse, makes package build here.

https://build.opensuse.org/projects/devel:libraries:c_c++/packages/ispell/files/ispell-3.4.06-gcc15.patch?expand=1

I attach two patches, first one has some quilt headers I added and second one
is plain original patch extracted from

https://download.opensuse.org/repositories/home:/dirkmueller:/Factory/p/src/ispell-3.4.06-176.2.src.rpm

According to

https://build.opensuse.org/package/revisions/devel:libraries:c_c++/ispell

this patch has been forwarded upstream.

Tested a bit and resulting ispell seems to work well.

Regards,

-- 
Agustin
From: Petr Gajdos
Subject: Fix FTBFS with GCC-15
Origin: opensuse, https://build.opensuse.org/projects/devel:libraries:c_c++/packages/ispell/files/ispell-3.4.06-gcc15.patch?expand=1
Forwarded: yes (from opensuse)

diff -upr ispell-3.4.06.orig/deformatters/defmt-c.c ispell-3.4.06/deformatters/defmt-c.c
--- ispell-3.4.06.orig/deformatters/defmt-c.c	2025-05-07 08:07:25.553071269 +0000
+++ ispell-3.4.06/deformatters/defmt-c.c	2025-05-07 08:32:06.505777537 +0000
@@ -79,7 +79,8 @@ static char Rcs_Id[] =
 #endif /* NO_FCNTL_H */
 
 
-int		main ();	/* Filter to select C/C++ comments */
+int		main (int argc, char * argv[]);
+                                /* Filter to select C/C++ comments */
 static int	igetchar ();	/* Read one character from stdin */
 static int	do_slashstar ();
 				/* Handle C-style comments */
diff -upr ispell-3.4.06.orig/deformatters/defmt-sh.c ispell-3.4.06/deformatters/defmt-sh.c
--- ispell-3.4.06.orig/deformatters/defmt-sh.c	2025-05-07 08:07:25.553144518 +0000
+++ ispell-3.4.06/deformatters/defmt-sh.c	2025-05-07 08:33:16.016934294 +0000
@@ -73,10 +73,11 @@ static char Rcs_Id[] =
 #endif /* O_BINARY */
 #endif /* NO_FCNTL_H */
 
-int		main ();	/* Filter to select sh/bash comments */
+int		main (int argc, char * argv[]);
+                                /* Filter to select sh/bash comments */
 static int	igetchar ();	/* Read one character from stdin */
 static int	do_comment ();	/* Handle comments */
-static int	do_quote ();	/* Handle quoted strings */
+static int	do_quote (int);	/* Handle quoted strings */
 
 int main (argc, argv)
     int		argc;		/* Argument count */
diff -upr ispell-3.4.06.orig/ijoin.c ispell-3.4.06/ijoin.c
--- ispell-3.4.06.orig/ijoin.c	2025-05-07 08:07:25.553693061 +0000
+++ ispell-3.4.06/ijoin.c	2025-05-07 08:29:30.551023141 +0000
@@ -159,7 +159,7 @@ typedef struct
  */
 #undef strcmp
 
-static int		(*compare) () = strcmp; /* Comparison function */
+static int		(*compare) (const char *, const char *) = strcmp; /* Comparison function */
 static char *		emptyfield = ""; /* Use this to replace empty fields */
 static FILE *		file1;		/* First file to join */
 static FILE *		file2;		/* Second file to join */
@@ -173,7 +173,7 @@ static char *		tabchar = " \t"; /* Field
 static int		unpairable1 = 0; /* NZ if -a1 */
 static int		unpairable2 = 0; /* NZ if -a2 */
 
-extern int	strcmp ();
+extern int	strcmp (const char *, const char *);
 
 int main (argc, argv)			/* Join files */
     int			argc;		/* Argument count */
@@ -250,10 +250,10 @@ int main (argc, argv)			/* Join files */
 		runs &= ~FLD_RUNS;
 		break;
 	    case 's':
-		compare = strscmp;
+		compare = (int (*) (const char *, const char *))strscmp;
 		break;
 	    case 'u':
-		compare = strucmp;
+		compare = (int (*) (const char *, const char *))strucmp;
 		break;
 	    default:
 		usage ();
diff -upr ispell-3.4.06.orig/term.c ispell-3.4.06/term.c
--- ispell-3.4.06.orig/term.c	2025-05-07 08:07:25.555695544 +0000
+++ ispell-3.4.06/term.c	2025-05-07 08:11:05.508653442 +0000
@@ -196,12 +196,12 @@ static struct ltchars	ltc;
 static struct ltchars	oltc;
 #endif
 #endif
-static SIGNAL_TYPE	(*oldint) ();
-static SIGNAL_TYPE	(*oldterm) ();
+static SIGNAL_TYPE	(*oldint) (int);
+static SIGNAL_TYPE	(*oldterm) (int);
 #ifdef SIGTSTP
-static SIGNAL_TYPE	(*oldttin) ();
-static SIGNAL_TYPE	(*oldttou) ();
-static SIGNAL_TYPE	(*oldtstp) ();
+static SIGNAL_TYPE	(*oldttin) (int);
+static SIGNAL_TYPE	(*oldttou) (int);
+static SIGNAL_TYPE	(*oldtstp) (int);
 #endif
 
 void terminit ()

diff -upr ispell-3.4.06.orig/deformatters/defmt-c.c ispell-3.4.06/deformatters/defmt-c.c
--- ispell-3.4.06.orig/deformatters/defmt-c.c	2025-05-07 08:07:25.553071269 +0000
+++ ispell-3.4.06/deformatters/defmt-c.c	2025-05-07 08:32:06.505777537 +0000
@@ -79,7 +79,8 @@ static char Rcs_Id[] =
 #endif /* NO_FCNTL_H */
 
 
-int		main ();	/* Filter to select C/C++ comments */
+int		main (int argc, char * argv[]);
+                                /* Filter to select C/C++ comments */
 static int	igetchar ();	/* Read one character from stdin */
 static int	do_slashstar ();
 				/* Handle C-style comments */
diff -upr ispell-3.4.06.orig/deformatters/defmt-sh.c ispell-3.4.06/deformatters/defmt-sh.c
--- ispell-3.4.06.orig/deformatters/defmt-sh.c	2025-05-07 08:07:25.553144518 +0000
+++ ispell-3.4.06/deformatters/defmt-sh.c	2025-05-07 08:33:16.016934294 +0000
@@ -73,10 +73,11 @@ static char Rcs_Id[] =
 #endif /* O_BINARY */
 #endif /* NO_FCNTL_H */
 
-int		main ();	/* Filter to select sh/bash comments */
+int		main (int argc, char * argv[]);
+                                /* Filter to select sh/bash comments */
 static int	igetchar ();	/* Read one character from stdin */
 static int	do_comment ();	/* Handle comments */
-static int	do_quote ();	/* Handle quoted strings */
+static int	do_quote (int);	/* Handle quoted strings */
 
 int main (argc, argv)
     int		argc;		/* Argument count */
diff -upr ispell-3.4.06.orig/ijoin.c ispell-3.4.06/ijoin.c
--- ispell-3.4.06.orig/ijoin.c	2025-05-07 08:07:25.553693061 +0000
+++ ispell-3.4.06/ijoin.c	2025-05-07 08:29:30.551023141 +0000
@@ -159,7 +159,7 @@ typedef struct
  */
 #undef strcmp
 
-static int		(*compare) () = strcmp; /* Comparison function */
+static int		(*compare) (const char *, const char *) = strcmp; /* Comparison function */
 static char *		emptyfield = ""; /* Use this to replace empty fields */
 static FILE *		file1;		/* First file to join */
 static FILE *		file2;		/* Second file to join */
@@ -173,7 +173,7 @@ static char *		tabchar = " \t"; /* Field
 static int		unpairable1 = 0; /* NZ if -a1 */
 static int		unpairable2 = 0; /* NZ if -a2 */
 
-extern int	strcmp ();
+extern int	strcmp (const char *, const char *);
 
 int main (argc, argv)			/* Join files */
     int			argc;		/* Argument count */
@@ -250,10 +250,10 @@ int main (argc, argv)			/* Join files */
 		runs &= ~FLD_RUNS;
 		break;
 	    case 's':
-		compare = strscmp;
+		compare = (int (*) (const char *, const char *))strscmp;
 		break;
 	    case 'u':
-		compare = strucmp;
+		compare = (int (*) (const char *, const char *))strucmp;
 		break;
 	    default:
 		usage ();
diff -upr ispell-3.4.06.orig/term.c ispell-3.4.06/term.c
--- ispell-3.4.06.orig/term.c	2025-05-07 08:07:25.555695544 +0000
+++ ispell-3.4.06/term.c	2025-05-07 08:11:05.508653442 +0000
@@ -196,12 +196,12 @@ static struct ltchars	ltc;
 static struct ltchars	oltc;
 #endif
 #endif
-static SIGNAL_TYPE	(*oldint) ();
-static SIGNAL_TYPE	(*oldterm) ();
+static SIGNAL_TYPE	(*oldint) (int);
+static SIGNAL_TYPE	(*oldterm) (int);
 #ifdef SIGTSTP
-static SIGNAL_TYPE	(*oldttin) ();
-static SIGNAL_TYPE	(*oldttou) ();
-static SIGNAL_TYPE	(*oldtstp) ();
+static SIGNAL_TYPE	(*oldttin) (int);
+static SIGNAL_TYPE	(*oldttou) (int);
+static SIGNAL_TYPE	(*oldtstp) (int);
 #endif
 
 void terminit ()

Reply via email to