xplanet: fix build against giflib 5.*

This commit is contained in:
Evgeny Egorochkin 2013-12-07 13:12:31 +02:00
parent 2ce67ca947
commit 1f5d28001e
2 changed files with 132 additions and 0 deletions

View file

@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig freetype pango libpng libtiff giflib libjpeg netpbm ];
patches = [ ./giflib.patch ];
meta = {
description = "Renders an image of the earth or other planets into the X root window";
homepage = http://xplanet.sourceforge.net;

View file

@ -0,0 +1,130 @@
diff -wbBur xplanet-1.3.0/src/libimage/gif.c /home/sergej/tmp/BUILD/staging-i686/sergej/build/xplanet/src/xplanet-1.3.0/src/libimage/gif.c
--- xplanet-1.3.0/src/libimage/gif.c 2006-03-26 01:50:51.000000000 +0300
+++ /home/sergej/tmp/BUILD/staging-i686/sergej/build/xplanet/src/xplanet-1.3.0/src/libimage/gif.c 2013-07-30 18:21:17.412474692 +0400
@@ -20,7 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
-
+#define FALSE 0
#include <gif_lib.h>
/*
@@ -42,11 +42,11 @@
int color_index;
unsigned char *ptr = NULL;
- infile = DGifOpenFileName(filename);
+ infile = DGifOpenFileName(filename, NULL);
if (infile == NULL)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
@@ -54,7 +54,7 @@
{
if (DGifGetRecordType(infile, &record_type) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
@@ -63,7 +63,7 @@
case IMAGE_DESC_RECORD_TYPE:
if (DGifGetImageDesc(infile) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
@@ -107,14 +107,14 @@
GifByteType *ext;
if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
while (ext != NULL)
{
if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
}
@@ -178,7 +178,7 @@
return(0);
}
- colormap = MakeMapObject(colormap_size, NULL);
+ colormap = GifMakeMapObject(colormap_size, NULL);
for (i = 0; i < width * height; i++)
{
@@ -187,10 +187,10 @@
blue[i] = (GifByteType) rgb[3*i+2];
}
- if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,
+ if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,
buffer, colormap->Colors) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
@@ -198,24 +198,24 @@
free(green);
free(blue);
- outfile = EGifOpenFileName((char *) filename, FALSE);
+ outfile = EGifOpenFileName((char *) filename, FALSE, NULL);
if (outfile == NULL)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
== GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
== GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
@@ -224,7 +224,7 @@
{
if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
{
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
return(0);
}
ptr += width;
@@ -233,7 +233,7 @@
EGifSpew(outfile);
if (EGifCloseFile(outfile) == GIF_ERROR)
- PrintGifError();
+ printf("%s\n", GifErrorString(GIF_ERROR));
free(buffer);