wok-next rev 20241

xplanet: use patches
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Nov 06 22:53:21 2017 +0200 (2017-11-06)
parents 43bb045c66b6
children 28ea851f8c06
files xplanet/receipt xplanet/stuff/patches/fix_warnings.diff xplanet/stuff/patches/gcc-6.patch xplanet/stuff/patches/giflib5.diff xplanet/stuff/patches/series
line diff
     1.1 --- a/xplanet/receipt	Mon Nov 06 18:33:20 2017 +0100
     1.2 +++ b/xplanet/receipt	Mon Nov 06 22:53:21 2017 +0200
     1.3 @@ -1,38 +1,31 @@
     1.4 -# SliTaz package receipt.
     1.5 +# SliTaz package receipt v2.
     1.6  
     1.7  PACKAGE="xplanet"
     1.8 -VERSION="1.2.2"
     1.9 -CATEGORY="system-tools"
    1.10 -SHORT_DESC="Render major planets into the X root window."
    1.11 +VERSION="1.3.0"
    1.12 +CATEGORY="graphics"
    1.13 +SHORT_DESC="Render major planets into the X root window"
    1.14  MAINTAINER="pascal.bellard@slitaz.org"
    1.15  LICENSE="GPL2"
    1.16 +WEB_SITE="http://xplanet.sourceforge.net/"
    1.17 +
    1.18  TARBALL="$PACKAGE-$VERSION.tar.gz"
    1.19 -WEB_SITE="http://xplanet.sourceforge.net/"
    1.20  WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
    1.21  
    1.22 -DEPENDS="perl jpeg libpng zlib tiff xorg-libX11 freetype pango fontconfig \
    1.23 +BUILD_DEPENDS="patch xorg-libX11-dev xorg-libICE-dev xorg-libXext-dev \
    1.24 +xorg-libXScrnSaver-dev freetype-dev pango-dev giflib-dev libjpeg-turbo-dev \
    1.25 +libpng16-dev tiff-dev"
    1.26 +
    1.27 +compile_rules() {
    1.28 +	./configure \
    1.29 +		--with-freetype \
    1.30 +		$CONFIGURE_ARGS &&
    1.31 +	make -j1 &&
    1.32 +	make install
    1.33 +}
    1.34 +
    1.35 +genpkg_rules() {
    1.36 +	copy @std
    1.37 +	DEPENDS="perl jpeg libpng zlib tiff xorg-libX11 freetype pango fontconfig \
    1.38  glib xorg-libXau xorg-libXdmcp expat giflib xorg-libXScrnSaver gcc-lib-base \
    1.39   util-linux-uuid"
    1.40 -BUILD_DEPENDS="giflib-dev jpeg-dev libpng-dev zlib-dev tiff-dev \
    1.41 -xorg-libX11-dev freetype-dev pango-dev fontconfig-dev glib-dev \
    1.42 -xorg-libXau-dev xorg-libXdmcp-dev"
    1.43 -
    1.44 -# Rules to configure and make the package.
    1.45 -compile_rules()
    1.46 -{
    1.47 -	# Fix for gcc 4.4
    1.48 -	for file in src/Satellite.cpp src/Separation.cpp ; do
    1.49 -		grep -q cstdio $file || sed -i '2i\#include <cstdio>' $file
    1.50 -	done
    1.51 -	./configure --prefix=/usr --mandir=/usr/share/man $CONFIGURE_ARGS &&
    1.52 -	make &&
    1.53 -	make -j1 DESTDIR=$DESTDIR install
    1.54  }
    1.55 -
    1.56 -# Rules to gen a SliTaz package suitable for Tazpkg.
    1.57 -genpkg_rules()
    1.58 -{
    1.59 -	mkdir -p $fs/usr/share
    1.60 -	cp -a $install/usr/share/xplanet $fs/usr/share
    1.61 -	cp -a $install/usr/bin $fs/usr
    1.62 -}
    1.63 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/xplanet/stuff/patches/fix_warnings.diff	Mon Nov 06 22:53:21 2017 +0200
     2.3 @@ -0,0 +1,165 @@
     2.4 +diff --git a/src/libdisplay/DisplayBase.cpp b/src/libdisplay/DisplayBase.cpp
     2.5 +index 7287232..1fd086f 100644
     2.6 +--- a/src/libdisplay/DisplayBase.cpp
     2.7 ++++ b/src/libdisplay/DisplayBase.cpp
     2.8 +@@ -224,7 +224,7 @@ DisplayBase::drawLabel(PlanetProperties *planetProperties[])
     2.9 +                 tzSave = "TZ=";
    2.10 +                 tzSave += tzEnv;
    2.11 +             }
    2.12 +-            putenv("TZ=UTC");
    2.13 ++            putenv((char *)"TZ=UTC");
    2.14 +             tzset();
    2.15 +         }
    2.16 + 
    2.17 +diff --git a/src/libdisplay/DisplayX11.cpp b/src/libdisplay/DisplayX11.cpp
    2.18 +index ad5a47d..f5cbff1 100644
    2.19 +--- a/src/libdisplay/DisplayX11.cpp
    2.20 ++++ b/src/libdisplay/DisplayX11.cpp
    2.21 +@@ -97,8 +97,8 @@ DisplayX11::DisplayX11(const int tr) : DisplayBase(tr)
    2.22 + 		// contributed by Dragan Stanojevic - Nevidljivi <invisible@hidden-city.net>
    2.23 + 		XClassHint classHint;
    2.24 + 
    2.25 +-		classHint.res_name  = "xplanet";
    2.26 +-		classHint.res_class = "XPlanet";
    2.27 ++		classHint.res_name  = (char *)"xplanet";
    2.28 ++		classHint.res_class = (char *)"XPlanet";
    2.29 + 
    2.30 + 		XSetClassHint(display, window, &classHint);
    2.31 +             }
    2.32 +diff --git a/src/libimage/ReadImage.cpp b/src/libimage/ReadImage.cpp
    2.33 +index 0d07575..8a47dd2 100644
    2.34 +--- a/src/libimage/ReadImage.cpp
    2.35 ++++ b/src/libimage/ReadImage.cpp
    2.36 +@@ -45,6 +45,7 @@ ReadImage(const char *filename, int &width, int &height,
    2.37 + {
    2.38 +     char buf[4];
    2.39 +     unsigned char *ubuf = (unsigned char *) buf;
    2.40 ++    size_t ret = 0;
    2.41 +     int success = 0;
    2.42 + 
    2.43 +     FILE *file;
    2.44 +@@ -53,8 +54,10 @@ ReadImage(const char *filename, int &width, int &height,
    2.45 +   
    2.46 +     /* see what kind of file we have */
    2.47 + 
    2.48 +-    fread(buf, 1, 4, file);
    2.49 ++    ret = fread(buf, 1, 4, file);
    2.50 +     fclose(file);
    2.51 ++    if (ret != 4)
    2.52 ++        return 0;
    2.53 + 
    2.54 +     if (!strncmp("BM", buf, 2))
    2.55 +     {
    2.56 +diff --git a/src/libimage/png.c b/src/libimage/png.c
    2.57 +index 51bac8d..d5d6645 100644
    2.58 +--- a/src/libimage/png.c
    2.59 ++++ b/src/libimage/png.c
    2.60 +@@ -20,6 +20,7 @@
    2.61 + 
    2.62 + #include <stdio.h>
    2.63 + #include <stdlib.h>
    2.64 ++#include <string.h>
    2.65 + 
    2.66 + #include <png.h>
    2.67 + 
    2.68 +diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
    2.69 +index d885173..1b3f406 100644
    2.70 +--- a/src/libmultiple/RayleighScattering.cpp
    2.71 ++++ b/src/libmultiple/RayleighScattering.cpp
    2.72 +@@ -618,19 +618,28 @@ RayleighScattering::readBinaryTable(const char *filename)
    2.73 + 
    2.74 +     if (inFile != NULL)
    2.75 +     {
    2.76 +-        size_t dim0, dim1, dim2;
    2.77 +-        fread(&dim0, sizeof(size_t), 1, inFile);
    2.78 +-        fread(&dim1, sizeof(size_t), 1, inFile);
    2.79 +-        fread(&dim2, sizeof(size_t), 1, inFile);
    2.80 +-
    2.81 +-        size_t size = dim0*dim1*dim2;
    2.82 ++        size_t dim0, dim1, dim2, ret;
    2.83 ++        ret = fread(&dim0, sizeof(size_t), 1, inFile);
    2.84 ++        if (ret == sizeof(size_t))
    2.85 ++            ret = fread(&dim1, sizeof(size_t), 1, inFile);
    2.86 ++        if (ret == sizeof(size_t))
    2.87 ++            ret = fread(&dim2, sizeof(size_t), 1, inFile);
    2.88 ++
    2.89 ++        if (ret == sizeof(size_t))
    2.90 ++        {
    2.91 ++            size_t size = dim0*dim1*dim2;
    2.92 + 
    2.93 +-        dblArray = new double[size];
    2.94 +-        fread(dblArray, sizeof(double), size, inFile);
    2.95 ++            dblArray = new double[size];
    2.96 ++            ret = fread(dblArray, sizeof(double), size, inFile);
    2.97 ++            if (ret != size)
    2.98 ++            {
    2.99 ++                delete dblArray;
   2.100 ++		dblArray = NULL;
   2.101 ++            }
   2.102 ++        }
   2.103 ++        fclose(inFile);
   2.104 +     }
   2.105 + 
   2.106 +-    fclose(inFile);
   2.107 +-
   2.108 +     return dblArray;
   2.109 + }
   2.110 + 
   2.111 +diff --git a/src/readConfig.cpp b/src/readConfig.cpp
   2.112 +index cc1964f..3186534 100644
   2.113 +--- a/src/readConfig.cpp
   2.114 ++++ b/src/readConfig.cpp
   2.115 +@@ -49,7 +49,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.116 +             int r, g, b;
   2.117 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.118 +             {
   2.119 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.120 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.121 +                 currentProperties->ArcColor(color);
   2.122 +             }
   2.123 +             else
   2.124 +@@ -179,7 +179,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.125 +             int r, g, b;
   2.126 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.127 +             {
   2.128 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.129 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.130 +                 currentProperties->Color(color);
   2.131 +             }
   2.132 +             else
   2.133 +@@ -244,7 +244,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.134 +             int r, g, b;
   2.135 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.136 +             {
   2.137 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.138 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.139 +                 currentProperties->GridColor(color);
   2.140 +             }
   2.141 +             else
   2.142 +@@ -296,7 +296,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.143 +             int r, g, b;
   2.144 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.145 +             {
   2.146 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.147 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.148 +                 currentProperties->MarkerColor(color);
   2.149 +             }
   2.150 +             else
   2.151 +@@ -403,7 +403,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.152 +             int r, g, b;
   2.153 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.154 +             {
   2.155 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.156 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.157 +                 currentProperties->OrbitColor(color);
   2.158 +             }
   2.159 +             else
   2.160 +@@ -473,7 +473,7 @@ readConfig(const char *line, PlanetProperties *planetProperties[])
   2.161 +             int r, g, b;
   2.162 +             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
   2.163 +             {
   2.164 +-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
   2.165 ++                unsigned char color[3] = { (unsigned char)(r & 0xff), (unsigned char)(g & 0xff), (unsigned char)(b & 0xff) };
   2.166 +                 currentProperties->TextColor(color);
   2.167 +             }
   2.168 +             else
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/xplanet/stuff/patches/gcc-6.patch	Mon Nov 06 22:53:21 2017 +0200
     3.3 @@ -0,0 +1,214 @@
     3.4 +Description: Fix compilation with gcc/g++ 6
     3.5 + Multiple inFile.getline() calls within xplanet test the return
     3.6 + against NULL in a read loop, but g++ 6 doesn't like this. Replace
     3.7 + with checks for inFile.eof() and inFile.fail() instead.
     3.8 +Author: Steve McIntyre <93sam@debian.org>
     3.9 +Bug-Debian: https://bugs.debian.org/811820
    3.10 +Forwarded: Hari Nair <hari@alumni.caltech.edu>
    3.11 +Last-Update: 2016-07-18
    3.12 +
    3.13 +--- xplanet-1.3.0.orig/src/libannotate/addArcs.cpp
    3.14 ++++ xplanet-1.3.0/src/libannotate/addArcs.cpp
    3.15 +@@ -258,10 +258,14 @@ addArcs(PlanetProperties *planetProperti
    3.16 +         {
    3.17 +             ifstream inFile(arcFile.c_str());
    3.18 +             char *line = new char[MAX_LINE_LENGTH];
    3.19 +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
    3.20 +-                readArcFile(line, planet, view, projection,
    3.21 +-                            planetProperties, annotationMap);
    3.22 +-            
    3.23 ++	    while (1)
    3.24 ++	    {
    3.25 ++		inFile.getline (line, MAX_LINE_LENGTH, '\n');
    3.26 ++ 		if (inFile.eof() || inFile.fail())
    3.27 ++		    break;
    3.28 ++		readArcFile(line, planet, view, projection,
    3.29 ++			    planetProperties, annotationMap);
    3.30 ++	    }            
    3.31 +             inFile.close();
    3.32 +             delete [] line;
    3.33 +         }
    3.34 +@@ -292,9 +296,13 @@ addArcs(View *view, multimap<double, Ann
    3.35 +         {
    3.36 +             ifstream inFile(arcFile.c_str());
    3.37 +             char *line = new char[256];
    3.38 +-            while (inFile.getline (line, 256, '\n') != NULL)
    3.39 +-                readArcFile(line, NULL, view, NULL, NULL, annotationMap);
    3.40 +-
    3.41 ++	    while (1)
    3.42 ++	    {
    3.43 ++		inFile.getline (line, 256, '\n');
    3.44 ++ 		if (inFile.eof() || inFile.fail())
    3.45 ++		    break;
    3.46 ++		readArcFile(line, NULL, view, NULL, NULL, annotationMap);
    3.47 ++	    }            
    3.48 +             inFile.close();
    3.49 +             delete [] line;
    3.50 +         }
    3.51 +--- xplanet-1.3.0.orig/src/libannotate/addMarkers.cpp
    3.52 ++++ xplanet-1.3.0/src/libannotate/addMarkers.cpp
    3.53 +@@ -423,13 +423,16 @@ addMarkers(PlanetProperties *planetPrope
    3.54 +         {
    3.55 +             ifstream inFile(markerFile.c_str());
    3.56 +             char *line = new char[MAX_LINE_LENGTH];
    3.57 +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
    3.58 ++	    while (1)
    3.59 +             {
    3.60 +                 unsigned char color[3];
    3.61 +                 memcpy(color, planetProperties->MarkerColor(), 3);
    3.62 +                 string font(planetProperties->MarkerFont());
    3.63 +                 int fontSize(planetProperties->MarkerFontSize());
    3.64 +                 
    3.65 ++		inFile.getline (line, MAX_LINE_LENGTH, '\n');
    3.66 ++ 		if (inFile.eof() || inFile.fail())
    3.67 ++		    break;
    3.68 +                 readMarkerFile(line, planet, pixel_radius, X, Y, Z, 
    3.69 +                                view, projection, width, height, 
    3.70 +                                color, font, fontSize, 
    3.71 +@@ -469,13 +472,18 @@ addMarkers(View *view, const int width,
    3.72 +         {
    3.73 +             ifstream inFile(markerFile.c_str());
    3.74 +             char *line = new char[MAX_LINE_LENGTH];
    3.75 +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
    3.76 +-            {
    3.77 ++	    while (1)
    3.78 ++	    {
    3.79 ++		inFile.getline (line, MAX_LINE_LENGTH, '\n');
    3.80 ++
    3.81 +                 unsigned char color[3];
    3.82 +                 memcpy(color, options->Color(), 3);
    3.83 +                 string font(options->Font());
    3.84 +                 int fontSize(options->FontSize());
    3.85 +                 
    3.86 ++ 		if (inFile.eof() || inFile.fail())
    3.87 ++		    break;
    3.88 ++
    3.89 +                 readMarkerFile(line, NULL, 0, 0, 0, 0,
    3.90 +                                view, NULL, width, height, 
    3.91 +                                color, font, fontSize, 1.0, 
    3.92 +--- xplanet-1.3.0.orig/src/libannotate/addSatellites.cpp
    3.93 ++++ xplanet-1.3.0/src/libannotate/addSatellites.cpp
    3.94 +@@ -488,11 +488,23 @@ loadSatelliteVector(PlanetProperties *pl
    3.95 +         {
    3.96 +             ifstream inFile(tleFile.c_str());
    3.97 +             char lines[3][80];
    3.98 +-            while (inFile.getline(lines[0], 80) != NULL)
    3.99 +-            {
   3.100 +-                if ((inFile.getline(lines[1], 80) == NULL) 
   3.101 +-                    || (inFile.getline(lines[2], 80) == NULL))
   3.102 +-                {
   3.103 ++	    bool malformed_file = false;
   3.104 ++	    while (1)
   3.105 ++	    {
   3.106 ++                inFile.getline(lines[0], 80);
   3.107 ++ 		if (inFile.eof() || inFile.fail())
   3.108 ++		    break;
   3.109 ++		inFile.getline(lines[1], 80);
   3.110 ++ 		if (inFile.eof() || inFile.fail())
   3.111 ++		    malformed_file = true;
   3.112 ++		else
   3.113 ++		{
   3.114 ++                    inFile.getline(lines[2], 80);
   3.115 ++		    if (inFile.eof() || inFile.fail())
   3.116 ++		        malformed_file = true;
   3.117 ++                }
   3.118 ++		if (malformed_file)
   3.119 ++		{
   3.120 +                     ostringstream errStr;
   3.121 +                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
   3.122 +                     xpWarn(errStr.str(), __FILE__, __LINE__);
   3.123 +@@ -542,10 +554,14 @@ addSatellites(PlanetProperties *planetPr
   3.124 +         {
   3.125 +             ifstream inFile(satFile.c_str());
   3.126 +             char *line = new char[MAX_LINE_LENGTH];
   3.127 +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
   3.128 ++	    while (1)
   3.129 ++	    {
   3.130 ++		inFile.getline (line, MAX_LINE_LENGTH, '\n');
   3.131 ++ 		if (inFile.eof() || inFile.fail())
   3.132 ++		    break;
   3.133 +                 readSatelliteFile(line, planet, view, projection,
   3.134 +                                   planetProperties, annotationMap);
   3.135 +-            
   3.136 ++            }
   3.137 +             inFile.close();
   3.138 +             delete [] line;
   3.139 +         }
   3.140 +--- xplanet-1.3.0.orig/src/libmultiple/RayleighScattering.cpp
   3.141 ++++ xplanet-1.3.0/src/libmultiple/RayleighScattering.cpp
   3.142 +@@ -369,8 +369,12 @@ RayleighScattering::readConfigFile(strin
   3.143 + 
   3.144 +     diskTemplate_.clear();
   3.145 +     limbTemplate_.clear();
   3.146 +-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
   3.147 ++    while (1)
   3.148 +     {
   3.149 ++        inFile.getline(line, MAX_LINE_LENGTH, '\n');
   3.150 ++	if (inFile.eof() || inFile.fail())
   3.151 ++	    break;
   3.152 ++
   3.153 +         int i = 0;
   3.154 +         while (isDelimiter(line[i]))
   3.155 +         {
   3.156 +@@ -439,8 +443,12 @@ RayleighScattering::readBlock(ifstream &
   3.157 +     values.clear();
   3.158 + 
   3.159 +     char line[MAX_LINE_LENGTH];
   3.160 +-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
   3.161 ++    while (1)
   3.162 +     {
   3.163 ++        inFile.getline(line, MAX_LINE_LENGTH, '\n');
   3.164 ++	if (inFile.eof() || inFile.fail())
   3.165 ++	    break;
   3.166 ++
   3.167 +         int i = 0;
   3.168 +         while (isDelimiter(line[i]))
   3.169 +         {
   3.170 +@@ -470,8 +478,12 @@ RayleighScattering::readValue(ifstream &
   3.171 +                               double &value)
   3.172 + {
   3.173 +     char line[MAX_LINE_LENGTH];
   3.174 +-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
   3.175 ++    while (1)
   3.176 +     {
   3.177 ++        inFile.getline(line, MAX_LINE_LENGTH, '\n');
   3.178 ++	if (inFile.eof() || inFile.fail())
   3.179 ++	    break;
   3.180 ++
   3.181 +         int i = 0;
   3.182 +         while (isDelimiter(line[i]))
   3.183 +         {
   3.184 +--- xplanet-1.3.0.orig/src/libmultiple/drawStars.cpp
   3.185 ++++ xplanet-1.3.0/src/libmultiple/drawStars.cpp
   3.186 +@@ -41,8 +41,12 @@ drawStars(DisplayBase *display, View *vi
   3.187 +     ifstream inFile(starMap.c_str());
   3.188 + 
   3.189 +     char line[MAX_LINE_LENGTH];
   3.190 +-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
   3.191 ++    while (1)
   3.192 +     {
   3.193 ++	inFile.getline(line, MAX_LINE_LENGTH, '\n');
   3.194 ++	if (inFile.eof() || inFile.fail())
   3.195 ++	    break;
   3.196 ++
   3.197 +         if (line[0] == '#') continue;
   3.198 + 
   3.199 +         double Vmag, RA, Dec;
   3.200 +--- xplanet-1.3.0.orig/src/readConfig.cpp
   3.201 ++++ xplanet-1.3.0/src/readConfig.cpp
   3.202 +@@ -550,9 +550,13 @@ readConfigFile(string configFile, Planet
   3.203 + 
   3.204 +         ifstream inFile(configFile.c_str());
   3.205 +         char *line = new char[256];
   3.206 +-        while (inFile.getline(line, 256, '\n') != NULL)
   3.207 ++	while (1)
   3.208 ++	{
   3.209 ++	    inFile.getline(line, 256, '\n');
   3.210 ++	    if (inFile.eof() || inFile.fail())
   3.211 ++	        break;
   3.212 +             readConfig(line, planetProperties);
   3.213 +-        
   3.214 ++        }
   3.215 +         // This condition will only be true if [default] is the only
   3.216 +         // section in the config file.  In this case, set all planet
   3.217 +         // properties to the default values.
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/xplanet/stuff/patches/giflib5.diff	Mon Nov 06 22:53:21 2017 +0200
     4.3 @@ -0,0 +1,162 @@
     4.4 +Index: b/src/libimage/gif.c
     4.5 +===================================================================
     4.6 +--- a/src/libimage/gif.c
     4.7 ++++ b/src/libimage/gif.c
     4.8 +@@ -38,32 +38,34 @@ read_gif(const char *filename, int *widt
     4.9 +     GifRecordType record_type;
    4.10 +     GifRowType *buffer = NULL;
    4.11 + 
    4.12 +-    int i, j;
    4.13 ++    int i, j, err;
    4.14 +     int color_index;
    4.15 +     unsigned char *ptr = NULL;
    4.16 + 
    4.17 +-    infile = DGifOpenFileName(filename);
    4.18 ++    infile = DGifOpenFileName(filename, &err);
    4.19 + 
    4.20 +     if (infile == NULL)
    4.21 +     {
    4.22 +-        PrintGifError();
    4.23 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
    4.24 +         return(0);
    4.25 +     }
    4.26 + 
    4.27 +     do
    4.28 +     {
    4.29 +-        if (DGifGetRecordType(infile, &record_type) == GIF_ERROR) 
    4.30 ++        err = DGifGetRecordType(infile, &record_type);
    4.31 ++        if (err != GIF_OK) 
    4.32 +         {
    4.33 +-            PrintGifError();
    4.34 ++            fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
    4.35 +             return(0);
    4.36 +         }
    4.37 + 
    4.38 +         switch (record_type)
    4.39 +         {
    4.40 +         case IMAGE_DESC_RECORD_TYPE:
    4.41 +-            if (DGifGetImageDesc(infile) == GIF_ERROR)
    4.42 ++            err = DGifGetImageDesc(infile);
    4.43 ++            if (err != GIF_OK)
    4.44 +             {
    4.45 +-                PrintGifError();
    4.46 ++                fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
    4.47 +                 return(0);
    4.48 +             }
    4.49 + 
    4.50 +@@ -105,16 +107,18 @@ read_gif(const char *filename, int *widt
    4.51 +             /* Skip extension blocks */
    4.52 +             int ext_code;
    4.53 +             GifByteType *ext;
    4.54 +-            if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR) 
    4.55 ++            err = DGifGetExtension(infile, &ext_code, &ext);
    4.56 ++            if (err != GIF_OK) 
    4.57 +             {
    4.58 +-                PrintGifError();
    4.59 ++                fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
    4.60 +                 return(0);
    4.61 +             }
    4.62 +             while (ext != NULL) 
    4.63 +             {
    4.64 +-                if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR) 
    4.65 ++                err = DGifGetExtensionNext(infile, &ext);
    4.66 ++                if (err != GIF_OK) 
    4.67 +                 {
    4.68 +-                    PrintGifError();
    4.69 ++                    fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
    4.70 +                     return(0);
    4.71 +                 }
    4.72 +             }
    4.73 +@@ -154,14 +158,14 @@ read_gif(const char *filename, int *widt
    4.74 +     
    4.75 +     free(buffer);
    4.76 + 
    4.77 +-    DGifCloseFile(infile);
    4.78 ++    DGifCloseFile(infile, NULL);
    4.79 +     return(1);
    4.80 + }
    4.81 + 
    4.82 + int 
    4.83 + write_gif(const char *filename, int width, int height, char *rgb)
    4.84 + {
    4.85 +-    int i;
    4.86 ++    int i, err;
    4.87 +     int colormap_size = 256;
    4.88 +     GifByteType *red, *green, *blue, *buffer, *ptr;
    4.89 +     GifFileType *outfile;
    4.90 +@@ -178,7 +182,7 @@ write_gif(const char *filename, int widt
    4.91 +         return(0);
    4.92 +     }
    4.93 + 
    4.94 +-    colormap = MakeMapObject(colormap_size, NULL);
    4.95 ++    colormap = GifMakeMapObject(colormap_size, NULL);
    4.96 + 
    4.97 +     for (i = 0; i < width * height; i++)
    4.98 +     {
    4.99 +@@ -187,10 +191,11 @@ write_gif(const char *filename, int widt
   4.100 +         blue[i]  = (GifByteType) rgb[3*i+2];
   4.101 +     }
   4.102 +   
   4.103 +-    if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,   
   4.104 +-                       buffer, colormap->Colors) == GIF_ERROR)
   4.105 ++    err = GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,   
   4.106 ++                            buffer, colormap->Colors);
   4.107 ++    if (err != GIF_OK)
   4.108 +     {
   4.109 +-        PrintGifError();
   4.110 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.111 +         return(0);
   4.112 +     }
   4.113 + 
   4.114 +@@ -198,24 +203,24 @@ write_gif(const char *filename, int widt
   4.115 +     free(green);
   4.116 +     free(blue);
   4.117 + 
   4.118 +-    outfile = EGifOpenFileName((char *) filename, FALSE);
   4.119 ++    outfile = EGifOpenFileName((char *) filename, 0, &err);
   4.120 +     if (outfile == NULL)
   4.121 +     {
   4.122 +-        PrintGifError();
   4.123 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.124 +         return(0);
   4.125 +     }
   4.126 + 
   4.127 +-    if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
   4.128 +-        == GIF_ERROR)
   4.129 ++    err = EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap);
   4.130 ++    if (err != GIF_OK)
   4.131 +     {
   4.132 +-        PrintGifError();
   4.133 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.134 +         return(0);
   4.135 +     }
   4.136 + 
   4.137 +-    if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
   4.138 ++    if (EGifPutImageDesc(outfile, 0, 0, width, height, 0, NULL)
   4.139 +         == GIF_ERROR)
   4.140 +     {
   4.141 +-        PrintGifError();
   4.142 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.143 +         return(0);
   4.144 +     }
   4.145 + 
   4.146 +@@ -224,7 +229,7 @@ write_gif(const char *filename, int widt
   4.147 +     {
   4.148 +         if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
   4.149 +         {
   4.150 +-            PrintGifError();
   4.151 ++            fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.152 +             return(0);
   4.153 +         }
   4.154 +         ptr += width;
   4.155 +@@ -232,8 +237,8 @@ write_gif(const char *filename, int widt
   4.156 + 
   4.157 +     EGifSpew(outfile);
   4.158 + 
   4.159 +-    if (EGifCloseFile(outfile) == GIF_ERROR) 
   4.160 +-        PrintGifError();
   4.161 ++    if (EGifCloseFile(outfile, NULL) == GIF_ERROR) 
   4.162 ++        fprintf(stderr, "\nGIF-LIB error: %s.\n", GifErrorString(err));
   4.163 + 
   4.164 +     free(buffer);
   4.165 + 
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/xplanet/stuff/patches/series	Mon Nov 06 22:53:21 2017 +0200
     5.3 @@ -0,0 +1,4 @@
     5.4 +# Debian patches
     5.5 +giflib5.diff
     5.6 +gcc-6.patch
     5.7 +fix_warnings.diff