# HG changeset patch # User Pascal Bellard # Date 1583595471 -3600 # Node ID a3b001408630c1a1184d4250b31061a7119593af # Parent add4006354aab0d24e0480d30fc6a4522ae992bb xplanet: add giflib5 patch diff -r add4006354aa -r a3b001408630 giflib/receipt --- a/giflib/receipt Sat Mar 07 12:23:57 2020 +0100 +++ b/giflib/receipt Sat Mar 07 16:37:51 2020 +0100 @@ -18,6 +18,7 @@ # Rules to configure and make the package. compile_rules() { + patch -p0 < $stuff/restore-GifQuantizeBuffer.u sed -i 's|/local||' Makefile make && make DESTDIR=$DESTDIR install case "$ARCH" in diff -r add4006354aa -r a3b001408630 giflib/stuff/restore-GifQuantizeBuffer.u --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/giflib/stuff/restore-GifQuantizeBuffer.u Sat Mar 07 16:37:51 2020 +0100 @@ -0,0 +1,30 @@ +--- Makefile 2019-03-28 14:57:23.000000000 -0400 ++++ Makefile 2019-03-31 23:38:20.700603561 -0400 +@@ -67,8 +67,8 @@ + + $(UTILS):: libgif.a libutil.a + +-libgif.so: $(OBJECTS) $(HEADERS) +- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) ++libgif.so: $(OBJECTS) $(HEADERS) $(UOBJECTS) ++ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) $(UOBJECTS) + + libgif.a: $(OBJECTS) $(HEADERS) + $(AR) rcs libgif.a $(OBJECTS) +--- gif_lib.h ++++ gif_lib.h +@@ -295,6 +295,14 @@ extern void GifDrawBoxedText8x8(SavedIma + const char *legend, + const int border, const int bg, const int fg); + ++/****************************************************************************** ++ Color table quantization ++******************************************************************************/ ++int GifQuantizeBuffer(unsigned int Width, unsigned int Height, ++ int *ColorMapSize, GifByteType * RedInput, ++ GifByteType * GreenInput, GifByteType * BlueInput, ++ GifByteType * OutputBuffer, ++ GifColorType * OutputColorMap); + #ifdef __cplusplus + } + #endif /* __cplusplus */ diff -r add4006354aa -r a3b001408630 libgnomeprint/receipt --- a/libgnomeprint/receipt Sat Mar 07 12:23:57 2020 +0100 +++ b/libgnomeprint/receipt Sat Mar 07 16:37:51 2020 +0100 @@ -17,8 +17,8 @@ # Rules to configure and make the package. compile_rules() { - # YYPARSE_PARAM is no longer supported in Bison 3 - sed -e '/YYPARSE_PARAM/d' -e 's|yyerror (|yyerror (graph_t *g, |' \ + # Update for Bison 3 + sed -e '/YYPARSE_PARAM/d' -e 's|yyerror (|&graph_t *g, |' \ -e 's|%pure_parser|&\n%parse-param { graph_t *graph }|' \ -i libgnomeprint/grammar.y diff -r add4006354aa -r a3b001408630 xplanet/stuff/xplanet-giflib5.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xplanet/stuff/xplanet-giflib5.patch Sat Mar 07 16:37:51 2020 +0100 @@ -0,0 +1,214 @@ +--- xplanet-1.3.0.orig/src/libimage/gif.c 2006-03-25 14:50:51.000000000 -0800 ++++ xplanet-1.3.0/src/libimage/gif.c 2015-01-30 21:01:52.000000000 -0800 +@@ -28,6 +28,18 @@ + distribution. + */ + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++void ++PrintGifError(int ErrorCode) { ++ const char *Err = GifErrorString(ErrorCode); ++ if (Err != NULL) ++ fprintf(stderr, "GIF-LIB error: %s.\n", Err); ++ else ++ fprintf(stderr, "GIF-LIB undefined error %d.\n", ErrorCode); ++} ++#endif ++ ++ + int + read_gif(const char *filename, int *width, int *height, unsigned char **rgb) + { +@@ -41,12 +53,23 @@ + int i, j; + int color_index; + unsigned char *ptr = NULL; +- ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ int err; ++#endif ++ ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ infile = DGifOpenFileName(filename, NULL); ++#else + infile = DGifOpenFileName(filename); ++#endif + + if (infile == NULL) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(infile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + +@@ -54,7 +77,11 @@ + { + if (DGifGetRecordType(infile, &record_type) == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(infile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + +@@ -63,7 +90,11 @@ + case IMAGE_DESC_RECORD_TYPE: + if (DGifGetImageDesc(infile) == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(infile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + +@@ -107,14 +138,22 @@ + GifByteType *ext; + if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(infile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + while (ext != NULL) + { + if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(infile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + } +@@ -154,7 +193,11 @@ + + free(buffer); + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 ++ DGifCloseFile(infile, NULL); ++#else + DGifCloseFile(infile); ++#endif + return(1); + } + +@@ -166,6 +209,9 @@ + GifByteType *red, *green, *blue, *buffer, *ptr; + GifFileType *outfile; + ColorMapObject *colormap; ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ int err; ++#endif + + red = malloc(width * height * sizeof(GifByteType)); + green = malloc(width * height * sizeof(GifByteType)); +@@ -178,7 +224,11 @@ + return(0); + } + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ colormap = GifMakeMapObject(colormap_size, NULL); ++#else + colormap = MakeMapObject(colormap_size, NULL); ++#endif + + for (i = 0; i < width * height; i++) + { +@@ -187,10 +237,17 @@ + blue[i] = (GifByteType) rgb[3*i+2]; + } + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue, ++ buffer, colormap->Colors) == GIF_ERROR) ++ { ++ PrintGifError(-1); ++#else + if (QuantizeBuffer(width, height, &colormap_size, red, green, blue, + buffer, colormap->Colors) == GIF_ERROR) + { + PrintGifError(); ++#endif + return(0); + } + +@@ -198,24 +255,41 @@ + free(green); + free(blue); + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ outfile = EGifOpenFileName((char *) filename, 0, &err); ++ if (outfile == NULL) ++ { ++ PrintGifError(err); ++ return(0); ++ } ++#else + outfile = EGifOpenFileName((char *) filename, FALSE); + if (outfile == NULL) + { + PrintGifError(); + return(0); + } ++#endif + + if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap) + == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(outfile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + +- if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL) ++ if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL) + == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(outfile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + +@@ -224,7 +298,11 @@ + { + if (EGifPutLine(outfile, ptr, width) == GIF_ERROR) + { ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 ++ PrintGifError(outfile->Error); ++#else + PrintGifError(); ++#endif + return(0); + } + ptr += width; +@@ -232,8 +310,13 @@ + + EGifSpew(outfile); + ++#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 ++ if (EGifCloseFile(outfile, &err) == GIF_ERROR) ++ PrintGifError(err); ++#else + if (EGifCloseFile(outfile) == GIF_ERROR) + PrintGifError(); ++#endif + + free(buffer); +