netpbm: fix build with gcc15
This commit is contained in:
@@ -18,6 +18,8 @@ def setup():
|
|||||||
shelltools.echo("config.mk", "JPEGLIB = libjpeg.so")
|
shelltools.echo("config.mk", "JPEGLIB = libjpeg.so")
|
||||||
shelltools.echo("config.mk", "PNGLIB = libpng.so")
|
shelltools.echo("config.mk", "PNGLIB = libpng.so")
|
||||||
shelltools.echo("config.mk", "ZLIB = libz.so")
|
shelltools.echo("config.mk", "ZLIB = libz.so")
|
||||||
|
shelltools.echo("config.mk", "JBIGLIB = /usr/lib/libjbig.a")
|
||||||
|
pisitools.cflags.add("-std=c17")
|
||||||
|
|
||||||
def build():
|
def build():
|
||||||
autotools.make("CFLAGS+='%s'" % get.CFLAGS())
|
autotools.make("CFLAGS+='%s'" % get.CFLAGS())
|
||||||
|
|||||||
@@ -0,0 +1,245 @@
|
|||||||
|
https://sourceforge.net/p/netpbm/code/4969/
|
||||||
|
https://bugs.gentoo.org/943971
|
||||||
|
|
||||||
|
Backport files/netpbm-11.8.2-fix-C23.patch to 11.2.11
|
||||||
|
|
||||||
|
--- a/buildtools/libopt.c
|
||||||
|
+++ b/buildtools/libopt.c
|
||||||
|
@@ -85,18 +85,11 @@
|
||||||
|
# define SHLIBPREFIXLIST "lib"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#include <stdbool.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
-typedef unsigned char bool;
|
||||||
|
-#ifndef TRUE
|
||||||
|
-#define TRUE (1)
|
||||||
|
-#endif
|
||||||
|
-#ifndef FALSE
|
||||||
|
-#define FALSE (0)
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#ifdef DLLVERSTR
|
||||||
|
static const char * dllverstr = DLLVERSTR;
|
||||||
|
#else
|
||||||
|
@@ -105,9 +98,9 @@ static const char * dllverstr = "";
|
||||||
|
|
||||||
|
bool const explicit =
|
||||||
|
#ifdef EXPLICIT
|
||||||
|
-TRUE
|
||||||
|
+true
|
||||||
|
#else
|
||||||
|
-FALSE
|
||||||
|
+false
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
|
@@ -131,17 +124,17 @@ parse_prefixlist(const char * const prefixlist,
|
||||||
|
there is guaranteed always to be one null string at the end of the
|
||||||
|
array.
|
||||||
|
|
||||||
|
- In case of error, return *errorP == TRUE and don't allocate any
|
||||||
|
- storage. Otherwise, return *errorP = FALSE.
|
||||||
|
+ In case of error, return *errorP == true and don't allocate any
|
||||||
|
+ storage. Otherwise, return *errorP = false.
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
char * prlist;
|
||||||
|
|
||||||
|
prlist = strdup(prefixlist);
|
||||||
|
if (prlist == NULL)
|
||||||
|
- *errorP = TRUE;
|
||||||
|
+ *errorP = true;
|
||||||
|
else {
|
||||||
|
- if (strlen(prlist) <= 0)
|
||||||
|
- *errorP = TRUE;
|
||||||
|
+ if (strlen(prlist) <= 0)
|
||||||
|
+ *errorP = true;
|
||||||
|
else {
|
||||||
|
/* NOTE: Mac OS X, at least, does not have strtok_r().
|
||||||
|
2001.09.24
|
||||||
|
@@ -155,18 +148,18 @@ parse_prefixlist(const char * const prefixlist,
|
||||||
|
}
|
||||||
|
num_tokens = 0;
|
||||||
|
token = strtok(prlist, " ");
|
||||||
|
- *errorP = FALSE; /* initial value */
|
||||||
|
+ *errorP = false; /* initial value */
|
||||||
|
while (token != NULL && num_tokens < MAX_PREFIXES && !*errorP) {
|
||||||
|
parsed_prefixes[num_tokens] = strdup (token);
|
||||||
|
- if (parsed_prefixes[num_tokens] == NULL)
|
||||||
|
- *errorP = TRUE;
|
||||||
|
+ if (parsed_prefixes[num_tokens] == NULL)
|
||||||
|
+ *errorP = true;
|
||||||
|
num_tokens++;
|
||||||
|
token = strtok(NULL, " ");
|
||||||
|
}
|
||||||
|
for (i = num_tokens; i < MAX_PREFIXES + 1 && !*errorP; i++) {
|
||||||
|
parsed_prefixes[i] = strdup("");
|
||||||
|
- if (parsed_prefixes[i] == NULL)
|
||||||
|
- *errorP = TRUE;
|
||||||
|
+ if (parsed_prefixes[i] == NULL)
|
||||||
|
+ *errorP = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (*errorP) {
|
||||||
|
@@ -194,7 +187,7 @@ parse_prefix(const char * const filename,
|
||||||
|
(The prefix always starts at the beginning of the filename).
|
||||||
|
|
||||||
|
Iff we don't find a valid library name prefix, return *prefix_good_p
|
||||||
|
- == FALSE.
|
||||||
|
+ == false.
|
||||||
|
|
||||||
|
The list of valid prefixes is compiled in as the blank-delimited
|
||||||
|
string which is the value of the SHLIBPREFIXLIST macro.
|
||||||
|
@@ -231,7 +224,7 @@ parse_prefix(const char * const filename,
|
||||||
|
i = 0; /* start with the first entry in shlibprefixlist[] */
|
||||||
|
prefix_length = 0; /* initial value */
|
||||||
|
prefix = shlibprefixlist[i];
|
||||||
|
- prefix_good = FALSE; /* initial value */
|
||||||
|
+ prefix_good = false; /* initial value */
|
||||||
|
while ( (*prefix != '\0' ) && !prefix_good ) {
|
||||||
|
/* stop condition: shlibprefixlist has MAX_PREFIXES+1 entries.
|
||||||
|
* we only ever put tokens in the 0..MAX_PREFIXES-1 positions.
|
||||||
|
@@ -242,7 +235,7 @@ parse_prefix(const char * const filename,
|
||||||
|
*/
|
||||||
|
prefix_length = strlen(prefix);
|
||||||
|
if (strncmp(filename, prefix, prefix_length) == 0) {
|
||||||
|
- prefix_good = TRUE;
|
||||||
|
+ prefix_good = true;
|
||||||
|
/* at this point, prefix is pointing to the correct
|
||||||
|
* entry, and prefix_length has the correct value.
|
||||||
|
* When we bail out of the while loop because of the
|
||||||
|
@@ -279,16 +272,16 @@ parse_filename(const char * const filename,
|
||||||
|
|
||||||
|
E.g. for "libxyz.so", return "xyz".
|
||||||
|
|
||||||
|
- return *valid_library_p == TRUE iff 'filename' validly names a library
|
||||||
|
+ return *valid_library_p == true iff 'filename' validly names a library
|
||||||
|
that can be expressed in a -l linker option.
|
||||||
|
|
||||||
|
- return *static_p == TRUE iff 'filename' indicates a static library.
|
||||||
|
- (but undefined if *valid_library_p != TRUE).
|
||||||
|
+ return *static_p == true iff 'filename' indicates a static library.
|
||||||
|
+ (but undefined if *valid_library_p != true).
|
||||||
|
|
||||||
|
- return *error_p == TRUE iff some error such as out of memory prevents
|
||||||
|
+ return *error_p == true iff some error such as out of memory prevents
|
||||||
|
parsing.
|
||||||
|
|
||||||
|
- Do not allocate any memory if *error_p == TRUE or *valid_library_p == FALSE.
|
||||||
|
+ Do not allocate any memory if *error_p == true or *valid_library_p == false.
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
char *lastdot;
|
||||||
|
/* Pointer to last period in 'filename'. Null if none */
|
||||||
|
@@ -305,21 +298,21 @@ parse_filename(const char * const filename,
|
||||||
|
/* This filename doesn't have any suffix, so we don't understand
|
||||||
|
it as a library filename.
|
||||||
|
*/
|
||||||
|
- *valid_library_p = FALSE;
|
||||||
|
- *error_p = FALSE;
|
||||||
|
+ *valid_library_p = false;
|
||||||
|
+ *error_p = false;
|
||||||
|
} else {
|
||||||
|
unsigned int prefix_length;
|
||||||
|
bool prefix_good;
|
||||||
|
|
||||||
|
if (strcmp(lastdot + 1, "a") == 0)
|
||||||
|
- *static_p = TRUE;
|
||||||
|
+ *static_p = true;
|
||||||
|
else
|
||||||
|
- *static_p = FALSE;
|
||||||
|
+ *static_p = false;
|
||||||
|
|
||||||
|
parse_prefix(filename, &prefix_good, &prefix_length, error_p);
|
||||||
|
if (!*error_p) {
|
||||||
|
if (!prefix_good) {
|
||||||
|
- *valid_library_p = FALSE;
|
||||||
|
+ *valid_library_p = false;
|
||||||
|
} else {
|
||||||
|
/* Extract everything between <prefix> and "." as
|
||||||
|
the library name root.
|
||||||
|
@@ -328,7 +321,7 @@ parse_filename(const char * const filename,
|
||||||
|
|
||||||
|
libname = strdup(filename + prefix_length);
|
||||||
|
if (libname == NULL)
|
||||||
|
- *error_p = TRUE;
|
||||||
|
+ *error_p = true;
|
||||||
|
else {
|
||||||
|
libname[lastdot - filename - prefix_length] = '\0';
|
||||||
|
if (strlen(dllverstr) > 0) {
|
||||||
|
@@ -341,10 +334,10 @@ parse_filename(const char * const filename,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strlen(libname) == 0) {
|
||||||
|
- *valid_library_p = FALSE;
|
||||||
|
+ *valid_library_p = false;
|
||||||
|
strfree(libname);
|
||||||
|
} else
|
||||||
|
- *valid_library_p = TRUE;
|
||||||
|
+ *valid_library_p = true;
|
||||||
|
}
|
||||||
|
*libname_p = libname;
|
||||||
|
}
|
||||||
|
@@ -377,14 +370,14 @@ parse_filepath(const char * const filepath,
|
||||||
|
*/
|
||||||
|
*filename_p = strdup(filepath);
|
||||||
|
if (*filename_p == NULL)
|
||||||
|
- *error_p = TRUE;
|
||||||
|
+ *error_p = true;
|
||||||
|
else {
|
||||||
|
directory = strdup("");
|
||||||
|
if (directory == NULL) {
|
||||||
|
- *error_p = TRUE;
|
||||||
|
+ *error_p = true;
|
||||||
|
strfree(*filename_p);
|
||||||
|
} else
|
||||||
|
- *error_p = FALSE;
|
||||||
|
+ *error_p = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Split the string at the slash we just found, into filename and
|
||||||
|
@@ -392,14 +385,14 @@ parse_filepath(const char * const filepath,
|
||||||
|
*/
|
||||||
|
*filename_p = strdup(lastslash+1);
|
||||||
|
if (*filename_p == NULL)
|
||||||
|
- *error_p = TRUE;
|
||||||
|
+ *error_p = true;
|
||||||
|
else {
|
||||||
|
directory = strdup(filepath);
|
||||||
|
if (directory == NULL) {
|
||||||
|
- *error_p = TRUE;
|
||||||
|
+ *error_p = true;
|
||||||
|
strfree(*filename_p);
|
||||||
|
} else {
|
||||||
|
- *error_p = FALSE;
|
||||||
|
+ *error_p = false;
|
||||||
|
directory[lastslash - filepath] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -503,12 +496,12 @@ main(int argc, char **argv) {
|
||||||
|
char outputLine[1024];
|
||||||
|
|
||||||
|
strcpy(outputLine, ""); /* initial value */
|
||||||
|
- runtime = FALSE; /* initial value */
|
||||||
|
- error = FALSE; /* no error yet */
|
||||||
|
+ runtime = false; /* initial value */
|
||||||
|
+ error = false; /* no error yet */
|
||||||
|
|
||||||
|
for (arg = 1; arg < argc && !error; arg++) {
|
||||||
|
if (strcmp(argv[arg], "-runtime") == 0)
|
||||||
|
- runtime = TRUE;
|
||||||
|
+ runtime = true;
|
||||||
|
else if (strcmp(argv[arg], "-quiet") == 0) {
|
||||||
|
/* Doesn't do anything today */
|
||||||
|
} else {
|
||||||
|
@@ -518,7 +511,7 @@ main(int argc, char **argv) {
|
||||||
|
if (!error) {
|
||||||
|
if (strlen(outputLine) + strlen(options) + 1 + 1 >
|
||||||
|
sizeof(outputLine))
|
||||||
|
- error = TRUE;
|
||||||
|
+ error = true;
|
||||||
|
else {
|
||||||
|
strcat(outputLine, " ");
|
||||||
|
strcat(outputLine, options);
|
||||||
@@ -20,10 +20,11 @@
|
|||||||
<Dependency>libpng-devel</Dependency>
|
<Dependency>libpng-devel</Dependency>
|
||||||
<Dependency>jasper-devel</Dependency>
|
<Dependency>jasper-devel</Dependency>
|
||||||
<Dependency>libxml2-devel</Dependency>
|
<Dependency>libxml2-devel</Dependency>
|
||||||
|
<Dependency>jbigkit-devel</Dependency>
|
||||||
<Dependency>libjpeg-turbo-devel</Dependency>
|
<Dependency>libjpeg-turbo-devel</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<!-- <Patch level="1"></Patch> -->
|
<Patch level="1">fix-C23.patch</Patch>
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
<Dependency>libpng</Dependency>
|
<Dependency>libpng</Dependency>
|
||||||
<Dependency>jasper</Dependency>
|
<Dependency>jasper</Dependency>
|
||||||
<Dependency>libxml2</Dependency>
|
<Dependency>libxml2</Dependency>
|
||||||
|
<Dependency>jbigkit</Dependency>
|
||||||
<Dependency>libjpeg-turbo</Dependency>
|
<Dependency>libjpeg-turbo</Dependency>
|
||||||
</RuntimeDependencies>
|
</RuntimeDependencies>
|
||||||
<Files>
|
<Files>
|
||||||
|
|||||||
Reference in New Issue
Block a user