GNU bug report logs - #40322
[PATCH] gnu: Add Xplanet

Previous Next

Package: guix-patches;

Reported by: R Veera Kumar <vkor <at> vkten.in>

Date: Mon, 30 Mar 2020 08:20:02 UTC

Severity: normal

Tags: patch

Done: Eric Bavier <bavier <at> posteo.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40322 in the body.
You can then email your comments to 40322 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Mon, 30 Mar 2020 08:20:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to R Veera Kumar <vkor <at> vkten.in>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 30 Mar 2020 08:20:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: R Veera Kumar <vkor <at> vkten.in>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add Xplanet
Date: Mon, 30 Mar 2020 13:49:29 +0530
Xplanet renders an image of a planet into an X window or file.

Signed-off-by: R Veera Kumar <vkor <at> vkten.in>
---
 gnu/packages/astronomy.scm                    |  51 ++++++
 .../patches/xplanet-1.3.1-c++11.patch         | 157 ++++++++++++++++++
 ...t-1.3.1-libdisplay_DisplayOutput.cpp.patch |  12 ++
 .../xplanet-1.3.1-libimage_gif.c.patch        |  50 ++++++
 ...planet-1.3.1-readConfig-fixclang.cpp.patch |  74 +++++++++
 ...t-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch |  11 ++
 6 files changed, 355 insertions(+)
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-c++11.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 3bb236fde9..efcba8f311 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -25,9 +25,11 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages pkg-config)
@@ -41,6 +43,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1))
@@ -289,3 +292,51 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public xplanet
+  (package
+    (name "xplanet")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://sourceforge/xplanet/xplanet/"
+         version "/xplanet-" version ".tar.gz"))
+       (sha256
+        (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
+       (patches
+        (search-patches
+         "xplanet-1.3.1-c++11.patch"
+         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
+         "xplanet-1.3.1-libimage_gif.c.patch"
+         "xplanet-1.3.1-readConfig-fixclang.cpp.patch"
+         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxext" ,libxext)
+       ("libice" ,libice)
+       ("freetype" ,freetype)
+       ("pango" ,pango)
+       ("giflib" ,giflib)
+       ("libjpeg", libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--without-pnm"       ;; no proper pnm library in guix
+        "--without-cspice"))) ;; no jpl cspice support
+    (home-page "http://xplanet.sourceforge.net/")
+    (synopsis "Planetary body renderer")
+    (description
+     "Xplanet renders an image of a planet into an X window or file.
+All of the major planets and most satellites can be drawn and different map
+projections are also supported, including azimuthal, hemisphere, Lambert,
+Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/xplanet-1.3.1-c++11.patch b/gnu/packages/patches/xplanet-1.3.1-c++11.patch
new file mode 100644
index 0000000000..3ead8872e0
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-c++11.patch
@@ -0,0 +1,157 @@
+Index: src/libannotate/addArcs.cpp
+===================================================================
+diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
+--- a/src/libannotate/addArcs.cpp	(revision 206)
++++ b/src/libannotate/addArcs.cpp	(revision 207)
+@@ -258,7 +258,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readArcFile(line, planet, view, projection,
+                             planetProperties, annotationMap);
+             
+@@ -292,7 +292,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[256];
+-            while (inFile.getline (line, 256, '\n') != NULL)
++            while (inFile.getline (line, 256, '\n'))
+                 readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+ 
+             inFile.close();
+Index: src/libannotate/addMarkers.cpp
+===================================================================
+diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp
+--- a/src/libannotate/addMarkers.cpp	(revision 206)
++++ b/src/libannotate/addMarkers.cpp	(revision 207)
+@@ -429,7 +429,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -475,7 +475,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, options->Color(), 3);
+Index: src/libannotate/addSatellites.cpp
+===================================================================
+diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp
+--- a/src/libannotate/addSatellites.cpp	(revision 206)
++++ b/src/libannotate/addSatellites.cpp	(revision 207)
+@@ -488,10 +488,10 @@
+         {
+             ifstream inFile(tleFile.c_str());
+             char lines[3][80];
+-            while (inFile.getline(lines[0], 80) != NULL)
++            while (inFile.getline(lines[0], 80))
+             {
+-                if ((inFile.getline(lines[1], 80) == NULL) 
+-                    || (inFile.getline(lines[2], 80) == NULL))
++                if ((!inFile.getline(lines[1], 80)) 
++                    || (!inFile.getline(lines[2], 80)))
+                 {
+                     ostringstream errStr;
+                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@
+         {
+             ifstream inFile(satFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readSatelliteFile(line, planet, view, projection,
+                                   planetProperties, annotationMap);
+             
+Index: src/libannotate/addSpiceObjects.cpp
+===================================================================
+diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp
+--- a/src/libannotate/addSpiceObjects.cpp	(revision 206)
++++ b/src/libannotate/addSpiceObjects.cpp	(revision 207)
+@@ -524,7 +524,7 @@
+         {
+             ifstream inFile(kernelFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+             {
+                 int ii = 0;
+                 while (isDelimiter(line[ii]))
+@@ -576,7 +576,7 @@
+         {
+             ifstream inFile(spiceFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+                 readSpiceFile(line, planetsFromSunMap, view, projection,
+                               annotationMap);
+             inFile.close();
+Index: src/libmultiple/RayleighScattering.cpp
+===================================================================
+diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
+--- a/src/libmultiple/RayleighScattering.cpp	(revision 206)
++++ b/src/libmultiple/RayleighScattering.cpp	(revision 207)
+@@ -369,7 +369,7 @@
+ 
+     diskTemplate_.clear();
+     limbTemplate_.clear();
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@
+     values.clear();
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@
+                               double &value)
+ {
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+Index: src/libmultiple/drawStars.cpp
+===================================================================
+diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp
+--- a/src/libmultiple/drawStars.cpp	(revision 206)
++++ b/src/libmultiple/drawStars.cpp	(revision 207)
+@@ -41,7 +41,7 @@
+     ifstream inFile(starMap.c_str());
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         if (line[0] == '#') continue;
+ 
+Index: src/readConfig.cpp
+===================================================================
+diff --git a/src/readConfig.cpp b/src/readConfig.cpp
+--- a/src/readConfig.cpp	(revision 206)
++++ b/src/readConfig.cpp	(revision 207)
+@@ -550,7 +550,7 @@
+ 
+         ifstream inFile(configFile.c_str());
+         char *line = new char[256];
+-        while (inFile.getline(line, 256, '\n') != NULL)
++        while (inFile.getline(line, 256, '\n'))
+             readConfig(line, planetProperties);
+         
+         // This condition will only be true if [default] is the only
diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
new file mode 100644
index 0000000000..2f6c5c77de
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
@@ -0,0 +1,12 @@
+diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp
+--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp	2020-03-28 22:08:44.432499170 +0530
+@@ -51,7 +51,7 @@
+     string outputFilename = options->OutputBase();
+     int startIndex = options->OutputStartIndex();
+     int stopIndex = options->NumTimes() + startIndex - 1;
+-    if (stopIndex > 1)
++    if (stopIndex > 0)
+     {
+         const int digits = (int) (log10((double) stopIndex) + 1);
+         char buffer[64];
diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
new file mode 100644
index 0000000000..d5b3d0cdef
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
@@ -0,0 +1,50 @@
+diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c
+--- xplanet-1.3.1/src/libimage/gif.c	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libimage/gif.c	2020-03-28 22:15:24.444309199 +0530
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-
++#include <stdbool.h>
+ #include <gif_lib.h>
+ 
+ /*
+@@ -178,8 +178,12 @@
+ 	    *BufferP++ = ColorMapEntry->Blue;
+ 	}
+     }
+-    
++
++#if GIFLIB_MAJOR >= 5
++    if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) {
++#else
+     if (DGifCloseFile(GifFile) == GIF_ERROR) {
++#endif
+ 	return(0);
+     }
+ 
+@@ -493,7 +497,11 @@
+ static void QuitGifError(GifFileType *GifFile)
+ {
+     fprintf(stderr, "Error writing GIF file\n");
++#if GIFLIB_MAJOR >= 5
++    if (GifFile != NULL) EGifCloseFile(GifFile, NULL);
++#else
+     if (GifFile != NULL) EGifCloseFile(GifFile);
++#endif
+ }
+ 
+ int 
+@@ -589,7 +597,11 @@
+ 	Ptr += width;
+     }
+ 
++#if GIFLIB_MAJOR >= 5
++    if (EGifCloseFile(GifFile, NULL) == GIF_ERROR)
++#else
+     if (EGifCloseFile(GifFile) == GIF_ERROR)
++#endif
+ 
+     {
+ 	QuitGifError(GifFile);
diff --git a/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
new file mode 100644
index 0000000000..2f018a03d2
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
@@ -0,0 +1,74 @@
+diff -uNr xplanet-1.3.1/src/readConfig.cpp xplanet-1.3.1.new/src/readConfig.cpp
+--- xplanet-1.3.1/src/readConfig.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/readConfig.cpp	2020-03-28 22:17:19.919078929 +0530
+@@ -4,6 +4,7 @@
+ #include <fstream>
+ #include <sstream>
+ #include <string>
++#include <clocale>
+ using namespace std;
+ 
+ #include "body.h"
+@@ -20,6 +21,8 @@
+ static PlanetProperties *defaultProperties;
+ static PlanetProperties *currentProperties;
+ 
++static inline unsigned char i2b( int x ) { return static_cast<unsigned int>(x) & 0xffU; }
++
+ static void
+ readConfig(const char *line, PlanetProperties *planetProperties[])
+ {
+@@ -49,7 +52,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->ArcColor(color);
+             }
+             else
+@@ -179,7 +182,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->Color(color);
+             }
+             else
+@@ -244,7 +247,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->GridColor(color);
+             }
+             else
+@@ -296,7 +299,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->MarkerColor(color);
+             }
+             else
+@@ -403,7 +406,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->OrbitColor(color);
+             }
+             else
+@@ -473,7 +476,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->TextColor(color);
+             }
+             else
diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
new file mode 100644
index 0000000000..fea2062f4a
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
@@ -0,0 +1,11 @@
+diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp
+--- xplanet-1.3.1/src/xpUtil.cpp	2016-03-12 08:36:47.000000000 +0530
++++ xplanet-1.3.1.new/src/xpUtil.cpp	2020-03-28 22:19:10.629891166 +0530
+@@ -434,6 +434,7 @@
+     if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34
+     if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35
+     if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36
++    if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37
+ 
+     const double J2000 = toJulian(2000, 1, 1, 12, 0, 0);
+     const double m = m0 + m1 * (jd - J2000) * 86400;
-- 
2.26.0





Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Mon, 30 Mar 2020 10:55:02 GMT) Full text and rfc822 format available.

Message #8 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: R Veera Kumar <vkor <at> vkten.in>
Cc: 40322 <at> debbugs.gnu.org
Subject: Re: [bug#40322] [PATCH] gnu: Add Xplanet
Date: Mon, 30 Mar 2020 12:54:18 +0200
[Message part 1 (text/plain, inline)]
Hi,

please add an extra line to each patch which records where you got it from (at
least the author and year).

Otherwise OK.
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Mon, 30 Mar 2020 17:00:02 GMT) Full text and rfc822 format available.

Message #11 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: R Veera Kumar <vkor <at> vkten.in>
To: 40322 <at> debbugs.gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH v2] gnu: Add Xplanet
Date: Mon, 30 Mar 2020 22:28:08 +0530
Xplanet renders an image of a planet into an X window or file.

Signed-off-by: R Veera Kumar <vkor <at> vkten.in>
---
Changes in v2:
 - Add origin, author and year in patches
---
 gnu/packages/astronomy.scm                    |  51 ++++++
 ...t-1.3.1-libdisplay_DisplayOutput.cpp.patch |  16 ++
 .../xplanet-1.3.1-libimage_gif.c.patch        |  54 ++++++
 ...planet-1.3.1-readConfig-fixclang.cpp.patch |  78 +++++++++
 ...xplanet-1.3.1-remove-null-comparison.patch | 161 ++++++++++++++++++
 ...t-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch |  15 ++
 6 files changed, 375 insertions(+)
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 3bb236fde9..b6ae59ba22 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -25,9 +25,11 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages pkg-config)
@@ -41,6 +43,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1))
@@ -289,3 +292,51 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public xplanet
+  (package
+    (name "xplanet")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://sourceforge/xplanet/xplanet/"
+         version "/xplanet-" version ".tar.gz"))
+       (sha256
+        (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
+       (patches
+        (search-patches
+         "xplanet-1.3.1-remove-null-comparison.patch"
+         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
+         "xplanet-1.3.1-libimage_gif.c.patch"
+         "xplanet-1.3.1-readConfig-fixclang.cpp.patch"
+         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxext" ,libxext)
+       ("libice" ,libice)
+       ("freetype" ,freetype)
+       ("pango" ,pango)
+       ("giflib" ,giflib)
+       ("libjpeg", libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--without-pnm"       ;; no proper pnm library in guix
+        "--without-cspice"))) ;; no jpl cspice support
+    (home-page "http://xplanet.sourceforge.net/")
+    (synopsis "Planetary body renderer")
+    (description
+     "Xplanet renders an image of a planet into an X window or file.
+All of the major planets and most satellites can be drawn and different map
+projections are also supported, including azimuthal, hemisphere, Lambert,
+Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
new file mode 100644
index 0000000000..bf52b0ca27
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
@@ -0,0 +1,16 @@
+Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp
+--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp	2020-03-28 22:08:44.432499170 +0530
+@@ -51,7 +51,7 @@
+     string outputFilename = options->OutputBase();
+     int startIndex = options->OutputStartIndex();
+     int stopIndex = options->NumTimes() + startIndex - 1;
+-    if (stopIndex > 1)
++    if (stopIndex > 0)
+     {
+         const int digits = (int) (log10((double) stopIndex) + 1);
+         char buffer[64];
diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
new file mode 100644
index 0000000000..58efc906dc
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
@@ -0,0 +1,54 @@
+Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c
+--- xplanet-1.3.1/src/libimage/gif.c	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libimage/gif.c	2020-03-28 22:15:24.444309199 +0530
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-
++#include <stdbool.h>
+ #include <gif_lib.h>
+ 
+ /*
+@@ -178,8 +178,12 @@
+ 	    *BufferP++ = ColorMapEntry->Blue;
+ 	}
+     }
+-    
++
++#if GIFLIB_MAJOR >= 5
++    if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) {
++#else
+     if (DGifCloseFile(GifFile) == GIF_ERROR) {
++#endif
+ 	return(0);
+     }
+ 
+@@ -493,7 +497,11 @@
+ static void QuitGifError(GifFileType *GifFile)
+ {
+     fprintf(stderr, "Error writing GIF file\n");
++#if GIFLIB_MAJOR >= 5
++    if (GifFile != NULL) EGifCloseFile(GifFile, NULL);
++#else
+     if (GifFile != NULL) EGifCloseFile(GifFile);
++#endif
+ }
+ 
+ int 
+@@ -589,7 +597,11 @@
+ 	Ptr += width;
+     }
+ 
++#if GIFLIB_MAJOR >= 5
++    if (EGifCloseFile(GifFile, NULL) == GIF_ERROR)
++#else
+     if (EGifCloseFile(GifFile) == GIF_ERROR)
++#endif
+ 
+     {
+ 	QuitGifError(GifFile);
diff --git a/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
new file mode 100644
index 0000000000..102887b780
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
@@ -0,0 +1,78 @@
+Origin: $NetBSD: patch-src_readConfig-fixclang.cpp,v 1.2 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/readConfig.cpp xplanet-1.3.1.new/src/readConfig.cpp
+--- xplanet-1.3.1/src/readConfig.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/readConfig.cpp	2020-03-28 22:17:19.919078929 +0530
+@@ -4,6 +4,7 @@
+ #include <fstream>
+ #include <sstream>
+ #include <string>
++#include <clocale>
+ using namespace std;
+ 
+ #include "body.h"
+@@ -20,6 +21,8 @@
+ static PlanetProperties *defaultProperties;
+ static PlanetProperties *currentProperties;
+ 
++static inline unsigned char i2b( int x ) { return static_cast<unsigned int>(x) & 0xffU; }
++
+ static void
+ readConfig(const char *line, PlanetProperties *planetProperties[])
+ {
+@@ -49,7 +52,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->ArcColor(color);
+             }
+             else
+@@ -179,7 +182,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->Color(color);
+             }
+             else
+@@ -244,7 +247,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->GridColor(color);
+             }
+             else
+@@ -296,7 +299,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->MarkerColor(color);
+             }
+             else
+@@ -403,7 +406,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->OrbitColor(color);
+             }
+             else
+@@ -473,7 +476,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->TextColor(color);
+             }
+             else
diff --git a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
new file mode 100644
index 0000000000..002701ed0c
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
@@ -0,0 +1,161 @@
+Origin: Gentoo Harri Nieminen 2017-02-28
+Url: https://gitweb.gentoo.org/repo/gentoo.git/log/x11-misc/xplanet/files/
++xplanet-1.3.1-remove-null-comparison.patch
+
+Index: src/libannotate/addArcs.cpp
+===================================================================
+diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
+--- a/src/libannotate/addArcs.cpp	(revision 206)
++++ b/src/libannotate/addArcs.cpp	(revision 207)
+@@ -258,7 +258,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readArcFile(line, planet, view, projection,
+                             planetProperties, annotationMap);
+             
+@@ -292,7 +292,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[256];
+-            while (inFile.getline (line, 256, '\n') != NULL)
++            while (inFile.getline (line, 256, '\n'))
+                 readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+ 
+             inFile.close();
+Index: src/libannotate/addMarkers.cpp
+===================================================================
+diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp
+--- a/src/libannotate/addMarkers.cpp	(revision 206)
++++ b/src/libannotate/addMarkers.cpp	(revision 207)
+@@ -429,7 +429,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -475,7 +475,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, options->Color(), 3);
+Index: src/libannotate/addSatellites.cpp
+===================================================================
+diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp
+--- a/src/libannotate/addSatellites.cpp	(revision 206)
++++ b/src/libannotate/addSatellites.cpp	(revision 207)
+@@ -488,10 +488,10 @@
+         {
+             ifstream inFile(tleFile.c_str());
+             char lines[3][80];
+-            while (inFile.getline(lines[0], 80) != NULL)
++            while (inFile.getline(lines[0], 80))
+             {
+-                if ((inFile.getline(lines[1], 80) == NULL) 
+-                    || (inFile.getline(lines[2], 80) == NULL))
++                if ((!inFile.getline(lines[1], 80)) 
++                    || (!inFile.getline(lines[2], 80)))
+                 {
+                     ostringstream errStr;
+                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@
+         {
+             ifstream inFile(satFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readSatelliteFile(line, planet, view, projection,
+                                   planetProperties, annotationMap);
+             
+Index: src/libannotate/addSpiceObjects.cpp
+===================================================================
+diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp
+--- a/src/libannotate/addSpiceObjects.cpp	(revision 206)
++++ b/src/libannotate/addSpiceObjects.cpp	(revision 207)
+@@ -524,7 +524,7 @@
+         {
+             ifstream inFile(kernelFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+             {
+                 int ii = 0;
+                 while (isDelimiter(line[ii]))
+@@ -576,7 +576,7 @@
+         {
+             ifstream inFile(spiceFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+                 readSpiceFile(line, planetsFromSunMap, view, projection,
+                               annotationMap);
+             inFile.close();
+Index: src/libmultiple/RayleighScattering.cpp
+===================================================================
+diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
+--- a/src/libmultiple/RayleighScattering.cpp	(revision 206)
++++ b/src/libmultiple/RayleighScattering.cpp	(revision 207)
+@@ -369,7 +369,7 @@
+ 
+     diskTemplate_.clear();
+     limbTemplate_.clear();
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@
+     values.clear();
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@
+                               double &value)
+ {
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+Index: src/libmultiple/drawStars.cpp
+===================================================================
+diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp
+--- a/src/libmultiple/drawStars.cpp	(revision 206)
++++ b/src/libmultiple/drawStars.cpp	(revision 207)
+@@ -41,7 +41,7 @@
+     ifstream inFile(starMap.c_str());
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         if (line[0] == '#') continue;
+ 
+Index: src/readConfig.cpp
+===================================================================
+diff --git a/src/readConfig.cpp b/src/readConfig.cpp
+--- a/src/readConfig.cpp	(revision 206)
++++ b/src/readConfig.cpp	(revision 207)
+@@ -550,7 +550,7 @@
+ 
+         ifstream inFile(configFile.c_str());
+         char *line = new char[256];
+-        while (inFile.getline(line, 256, '\n') != NULL)
++        while (inFile.getline(line, 256, '\n'))
+             readConfig(line, planetProperties);
+         
+         // This condition will only be true if [default] is the only
diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
new file mode 100644
index 0000000000..a47623fa00
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp
+--- xplanet-1.3.1/src/xpUtil.cpp	2016-03-12 08:36:47.000000000 +0530
++++ xplanet-1.3.1.new/src/xpUtil.cpp	2020-03-28 22:19:10.629891166 +0530
+@@ -434,6 +434,7 @@
+     if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34
+     if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35
+     if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36
++    if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37
+ 
+     const double J2000 = toJulian(2000, 1, 1, 12, 0, 0);
+     const double m = m0 + m1 * (jd - J2000) * 86400;
-- 
2.26.0





Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Mon, 30 Mar 2020 20:11:02 GMT) Full text and rfc822 format available.

Message #14 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: R Veera Kumar <vkor <at> vkten.in>
Cc: 40322 <at> debbugs.gnu.org, Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: [PATCH v2] gnu: Add Xplanet
Date: Mon, 30 Mar 2020 22:10:32 +0200
[Message part 1 (text/plain, inline)]
On Mon, Mar 30, 2020 at 10:28:08PM +0530, R Veera Kumar wrote:
>  gnu/packages/astronomy.scm                    |  51 ++++++
>  ...t-1.3.1-libdisplay_DisplayOutput.cpp.patch |  16 ++
>  .../xplanet-1.3.1-libimage_gif.c.patch        |  54 ++++++
>  ...planet-1.3.1-readConfig-fixclang.cpp.patch |  78 +++++++++
>  ...xplanet-1.3.1-remove-null-comparison.patch | 161 ++++++++++++++++++
>  ...t-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch |  15 ++
>  6 files changed, 375 insertions(+)
>  create mode 100644 gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
>  create mode 100644 gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
>  create mode 100644 gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
>  create mode 100644 gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
>  create mode 100644 gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch

Veera,

don't forget to register your new files in gnu/local.mk

Regards,
Jakub Kądziołka
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Tue, 31 Mar 2020 07:59:02 GMT) Full text and rfc822 format available.

Message #17 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: R Veera Kumar <vkor <at> vkten.in>
To: 40322 <at> debbugs.gnu.org
Subject: [PATCH v3] gnu: Add Xplanet.
Date: Tue, 31 Mar 2020 13:27:57 +0530
* gnu/packages/astronomy.scm (xplanet): New variable.
* gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch: New file.
* gnu/packages/astronomy.scm (xplanet)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add them.

Signed-off-by: R Veera Kumar <vkor <at> vkten.in>
---
Changes in v3:
 - Add patches to gnu/local.mk
 - Put Copyright marks in files
Changes in v2:
 - Add origin, author and year in patches
---
 gnu/local.mk                                  |   6 +
 gnu/packages/astronomy.scm                    |  52 ++++++
 ...t-1.3.1-libdisplay_DisplayOutput.cpp.patch |  16 ++
 .../xplanet-1.3.1-libimage_gif.c.patch        |  54 ++++++
 ...planet-1.3.1-readConfig-fixclang.cpp.patch |  78 +++++++++
 ...xplanet-1.3.1-remove-null-comparison.patch | 161 ++++++++++++++++++
 ...t-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch |  15 ++
 7 files changed, 382 insertions(+)
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index eec65c6565..1470b227d9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -28,6 +28,7 @@
 # Copyright © 2019 Amin Bandali <bandali <at> gnu.org>
 # Copyright © 2020 Brendan Tildesley <mail <at> brendan.scot>
 # Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
+# Copyright © 2020 R Veera Kumar <vkor <at> vkten.in>
 #
 # This file is part of GNU Guix.
 #
@@ -1524,6 +1525,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/xmoto-utf8.patch				\
   %D%/packages/patches/xmoto-remove-glext.patch			\
   %D%/packages/patches/xmoto-reproducible.patch			\
+  %D%/packages/patches/xplanet-1.3.1-remove-null-comparison.patch	\
+  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
+  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
+  %D%/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch	\
+  %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch	\
   %D%/packages/patches/xsane-fix-memory-leak.patch		\
   %D%/packages/patches/xsane-fix-pdf-floats.patch		\
   %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 3bb236fde9..49fe76128e 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly <at> disroot.org>
+;;; Copyright © 2020 R Veera Kumar <vkor <at> vkten.in>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,9 +26,11 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages pkg-config)
@@ -41,6 +44,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1))
@@ -289,3 +293,51 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public xplanet
+  (package
+    (name "xplanet")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://sourceforge/xplanet/xplanet/"
+         version "/xplanet-" version ".tar.gz"))
+       (sha256
+        (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
+       (patches
+        (search-patches
+         "xplanet-1.3.1-remove-null-comparison.patch"
+         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
+         "xplanet-1.3.1-libimage_gif.c.patch"
+         "xplanet-1.3.1-readConfig-fixclang.cpp.patch"
+         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxext" ,libxext)
+       ("libice" ,libice)
+       ("freetype" ,freetype)
+       ("pango" ,pango)
+       ("giflib" ,giflib)
+       ("libjpeg", libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags
+       (list
+        "--without-pnm"       ;; no proper pnm library in guix
+        "--without-cspice"))) ;; no jpl cspice support
+    (home-page "http://xplanet.sourceforge.net/")
+    (synopsis "Planetary body renderer")
+    (description
+     "Xplanet renders an image of a planet into an X window or file.
+All of the major planets and most satellites can be drawn and different map
+projections are also supported, including azimuthal, hemisphere, Lambert,
+Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
new file mode 100644
index 0000000000..bf52b0ca27
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
@@ -0,0 +1,16 @@
+Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp
+--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp	2020-03-28 22:08:44.432499170 +0530
+@@ -51,7 +51,7 @@
+     string outputFilename = options->OutputBase();
+     int startIndex = options->OutputStartIndex();
+     int stopIndex = options->NumTimes() + startIndex - 1;
+-    if (stopIndex > 1)
++    if (stopIndex > 0)
+     {
+         const int digits = (int) (log10((double) stopIndex) + 1);
+         char buffer[64];
diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
new file mode 100644
index 0000000000..58efc906dc
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
@@ -0,0 +1,54 @@
+Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c
+--- xplanet-1.3.1/src/libimage/gif.c	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libimage/gif.c	2020-03-28 22:15:24.444309199 +0530
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-
++#include <stdbool.h>
+ #include <gif_lib.h>
+ 
+ /*
+@@ -178,8 +178,12 @@
+ 	    *BufferP++ = ColorMapEntry->Blue;
+ 	}
+     }
+-    
++
++#if GIFLIB_MAJOR >= 5
++    if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) {
++#else
+     if (DGifCloseFile(GifFile) == GIF_ERROR) {
++#endif
+ 	return(0);
+     }
+ 
+@@ -493,7 +497,11 @@
+ static void QuitGifError(GifFileType *GifFile)
+ {
+     fprintf(stderr, "Error writing GIF file\n");
++#if GIFLIB_MAJOR >= 5
++    if (GifFile != NULL) EGifCloseFile(GifFile, NULL);
++#else
+     if (GifFile != NULL) EGifCloseFile(GifFile);
++#endif
+ }
+ 
+ int 
+@@ -589,7 +597,11 @@
+ 	Ptr += width;
+     }
+ 
++#if GIFLIB_MAJOR >= 5
++    if (EGifCloseFile(GifFile, NULL) == GIF_ERROR)
++#else
+     if (EGifCloseFile(GifFile) == GIF_ERROR)
++#endif
+ 
+     {
+ 	QuitGifError(GifFile);
diff --git a/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
new file mode 100644
index 0000000000..102887b780
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-readConfig-fixclang.cpp.patch
@@ -0,0 +1,78 @@
+Origin: $NetBSD: patch-src_readConfig-fixclang.cpp,v 1.2 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/readConfig.cpp xplanet-1.3.1.new/src/readConfig.cpp
+--- xplanet-1.3.1/src/readConfig.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/readConfig.cpp	2020-03-28 22:17:19.919078929 +0530
+@@ -4,6 +4,7 @@
+ #include <fstream>
+ #include <sstream>
+ #include <string>
++#include <clocale>
+ using namespace std;
+ 
+ #include "body.h"
+@@ -20,6 +21,8 @@
+ static PlanetProperties *defaultProperties;
+ static PlanetProperties *currentProperties;
+ 
++static inline unsigned char i2b( int x ) { return static_cast<unsigned int>(x) & 0xffU; }
++
+ static void
+ readConfig(const char *line, PlanetProperties *planetProperties[])
+ {
+@@ -49,7 +52,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->ArcColor(color);
+             }
+             else
+@@ -179,7 +182,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->Color(color);
+             }
+             else
+@@ -244,7 +247,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->GridColor(color);
+             }
+             else
+@@ -296,7 +299,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->MarkerColor(color);
+             }
+             else
+@@ -403,7 +406,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->OrbitColor(color);
+             }
+             else
+@@ -473,7 +476,7 @@
+             int r, g, b;
+             if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3)
+             {
+-                unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff };
++                unsigned char color[3] = { i2b(r), i2b(g), i2b(b) };
+                 currentProperties->TextColor(color);
+             }
+             else
diff --git a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
new file mode 100644
index 0000000000..002701ed0c
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
@@ -0,0 +1,161 @@
+Origin: Gentoo Harri Nieminen 2017-02-28
+Url: https://gitweb.gentoo.org/repo/gentoo.git/log/x11-misc/xplanet/files/
++xplanet-1.3.1-remove-null-comparison.patch
+
+Index: src/libannotate/addArcs.cpp
+===================================================================
+diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
+--- a/src/libannotate/addArcs.cpp	(revision 206)
++++ b/src/libannotate/addArcs.cpp	(revision 207)
+@@ -258,7 +258,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readArcFile(line, planet, view, projection,
+                             planetProperties, annotationMap);
+             
+@@ -292,7 +292,7 @@
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[256];
+-            while (inFile.getline (line, 256, '\n') != NULL)
++            while (inFile.getline (line, 256, '\n'))
+                 readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+ 
+             inFile.close();
+Index: src/libannotate/addMarkers.cpp
+===================================================================
+diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp
+--- a/src/libannotate/addMarkers.cpp	(revision 206)
++++ b/src/libannotate/addMarkers.cpp	(revision 207)
+@@ -429,7 +429,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -475,7 +475,7 @@
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, options->Color(), 3);
+Index: src/libannotate/addSatellites.cpp
+===================================================================
+diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp
+--- a/src/libannotate/addSatellites.cpp	(revision 206)
++++ b/src/libannotate/addSatellites.cpp	(revision 207)
+@@ -488,10 +488,10 @@
+         {
+             ifstream inFile(tleFile.c_str());
+             char lines[3][80];
+-            while (inFile.getline(lines[0], 80) != NULL)
++            while (inFile.getline(lines[0], 80))
+             {
+-                if ((inFile.getline(lines[1], 80) == NULL) 
+-                    || (inFile.getline(lines[2], 80) == NULL))
++                if ((!inFile.getline(lines[1], 80)) 
++                    || (!inFile.getline(lines[2], 80)))
+                 {
+                     ostringstream errStr;
+                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@
+         {
+             ifstream inFile(satFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readSatelliteFile(line, planet, view, projection,
+                                   planetProperties, annotationMap);
+             
+Index: src/libannotate/addSpiceObjects.cpp
+===================================================================
+diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp
+--- a/src/libannotate/addSpiceObjects.cpp	(revision 206)
++++ b/src/libannotate/addSpiceObjects.cpp	(revision 207)
+@@ -524,7 +524,7 @@
+         {
+             ifstream inFile(kernelFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+             {
+                 int ii = 0;
+                 while (isDelimiter(line[ii]))
+@@ -576,7 +576,7 @@
+         {
+             ifstream inFile(spiceFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+                 readSpiceFile(line, planetsFromSunMap, view, projection,
+                               annotationMap);
+             inFile.close();
+Index: src/libmultiple/RayleighScattering.cpp
+===================================================================
+diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
+--- a/src/libmultiple/RayleighScattering.cpp	(revision 206)
++++ b/src/libmultiple/RayleighScattering.cpp	(revision 207)
+@@ -369,7 +369,7 @@
+ 
+     diskTemplate_.clear();
+     limbTemplate_.clear();
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@
+     values.clear();
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@
+                               double &value)
+ {
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+Index: src/libmultiple/drawStars.cpp
+===================================================================
+diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp
+--- a/src/libmultiple/drawStars.cpp	(revision 206)
++++ b/src/libmultiple/drawStars.cpp	(revision 207)
+@@ -41,7 +41,7 @@
+     ifstream inFile(starMap.c_str());
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         if (line[0] == '#') continue;
+ 
+Index: src/readConfig.cpp
+===================================================================
+diff --git a/src/readConfig.cpp b/src/readConfig.cpp
+--- a/src/readConfig.cpp	(revision 206)
++++ b/src/readConfig.cpp	(revision 207)
+@@ -550,7 +550,7 @@
+ 
+         ifstream inFile(configFile.c_str());
+         char *line = new char[256];
+-        while (inFile.getline(line, 256, '\n') != NULL)
++        while (inFile.getline(line, 256, '\n'))
+             readConfig(line, planetProperties);
+         
+         // This condition will only be true if [default] is the only
diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
new file mode 100644
index 0000000000..a47623fa00
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp
+--- xplanet-1.3.1/src/xpUtil.cpp	2016-03-12 08:36:47.000000000 +0530
++++ xplanet-1.3.1.new/src/xpUtil.cpp	2020-03-28 22:19:10.629891166 +0530
+@@ -434,6 +434,7 @@
+     if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34
+     if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35
+     if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36
++    if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37
+ 
+     const double J2000 = toJulian(2000, 1, 1, 12, 0, 0);
+     const double m = m0 + m1 * (jd - J2000) * 86400;
-- 
2.26.0





Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Tue, 31 Mar 2020 14:51:02 GMT) Full text and rfc822 format available.

Message #20 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: Eric Bavier <bavier <at> posteo.net>
To: R Veera Kumar <vkor <at> vkten.in>
Cc: 40322 <at> debbugs.gnu.org,
 Guix-patches <guix-patches-bounces+bavier=posteo.net <at> gnu.org>
Subject: Re: [bug#40322] [PATCH v3] gnu: Add Xplanet.
Date: Tue, 31 Mar 2020 09:50:27 -0500
On 31.03.2020 02:57, R Veera Kumar wrote:
> +       (patches
> +        (search-patches
> +         "xplanet-1.3.1-remove-null-comparison.patch"
> +         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
> +         "xplanet-1.3.1-libimage_gif.c.patch"
> +         "xplanet-1.3.1-readConfig-fixclang.cpp.patch"

Is this patch necessary if we're building with gcc?

> +         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (inputs
> +     `(("libx11" ,libx11)
> +       ("libxscrnsaver" ,libxscrnsaver)
> +       ("libxext" ,libxext)
> +       ("libice" ,libice)
> +       ("freetype" ,freetype)
> +       ("pango" ,pango)
> +       ("giflib" ,giflib)
> +       ("libjpeg", libjpeg)
> +       ("libpng" ,libpng)
> +       ("libtiff" ,libtiff)
> +       ("zlib" ,zlib)))
> +    (arguments
> +     `(#:configure-flags
> +       (list
> +        "--without-pnm"       ;; no proper pnm library in guix

The "netpbm" package provides a pnm library.

> diff --git
> a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> new file mode 100644
> index 0000000000..002701ed0c
> --- /dev/null
> +++ b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> @@ -0,0 +1,161 @@
> +Origin: Gentoo Harri Nieminen 2017-02-28
> +Url: 
> https://gitweb.gentoo.org/repo/gentoo.git/log/x11-misc/xplanet/files/
> ++xplanet-1.3.1-remove-null-comparison.patch
> +
> +Index: src/libannotate/addArcs.cpp
> +===================================================================
> +diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
> +--- a/src/libannotate/addArcs.cpp	(revision 206)
> ++++ b/src/libannotate/addArcs.cpp	(revision 207)
> +@@ -258,7 +258,7 @@
> +         {
> +             ifstream inFile(arcFile.c_str());
> +             char *line = new char[MAX_LINE_LENGTH];
> +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != 
> NULL)
> ++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))

I'm worried this might not be correct.  The "getline" function always 
returns it's first parameter, which, I think, can never evaluate to a 
falsy value.  The safer option would be to call ".eof()" on the result, 
and would match the intentions.  See e.g. 
https://notabug.org/bavier/guix-bavier/src/master/bavier/patches/xplanet-cxx11-eof.patch

-- 
`~Eric




Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Wed, 01 Apr 2020 17:09:01 GMT) Full text and rfc822 format available.

Message #23 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: R Veera Kumar <vkor <at> vkten.in>
To: Eric Bavier <bavier <at> posteo.net>
Cc: 40322 <at> debbugs.gnu.org,
 Guix-patches <guix-patches-bounces+bavier=posteo.net <at> gnu.org>
Subject: Re: [bug#40322] [PATCH v3] gnu: Add Xplanet.
Date: Wed, 1 Apr 2020 22:38:12 +0530
On Tue, Mar 31, 2020 at 09:50:27AM -0500, Eric Bavier wrote:
> On 31.03.2020 02:57, R Veera Kumar wrote:
> > +       (patches
> > +        (search-patches
> > +         "xplanet-1.3.1-remove-null-comparison.patch"
> > +         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
> > +         "xplanet-1.3.1-libimage_gif.c.patch"
> > +         "xplanet-1.3.1-readConfig-fixclang.cpp.patch"
> 
> Is this patch necessary if we're building with gcc?
>

No. It is to build with clang. I thought since Guix also has clang, it
might be useful in future. I will drop it.
 
> > +         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
> > +    (build-system gnu-build-system)
> > +    (native-inputs
> > +     `(("pkg-config" ,pkg-config)))
> > +    (inputs
> > +       ("giflib" ,giflib)
> > +       ("libjpeg", libjpeg)
> > +       ("libpng" ,libpng)
> > +       ("libtiff" ,libtiff)
> > +       ("zlib" ,zlib)))
> > +    (arguments
> > +     `(#:configure-flags
> > +       (list
> > +        "--without-pnm"       ;; no proper pnm library in guix
> 
> The "netpbm" package provides a pnm library.
> 

I know it. It does not compiles with the current netpbm.
The libnetpbm.so file is not installed by the pkg and xplanet
configure script marks it as not available.

I have filed bug report for this: #40376

It can be packaged without netpbm for now and when the fix is there
I will enable it.

> > diff --git
> > a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> > b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> > new file mode 100644
> > index 0000000000..002701ed0c
> > --- /dev/null
> > +++ b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch
> > @@ -0,0 +1,161 @@
> > +Origin: Gentoo Harri Nieminen 2017-02-28
> > +Url:
> > https://gitweb.gentoo.org/repo/gentoo.git/log/x11-misc/xplanet/files/
> > ++xplanet-1.3.1-remove-null-comparison.patch
> > +
> > +Index: src/libannotate/addArcs.cpp
> > +===================================================================
> > +diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
> > +--- a/src/libannotate/addArcs.cpp	(revision 206)
> > ++++ b/src/libannotate/addArcs.cpp	(revision 207)
> > +@@ -258,7 +258,7 @@
> > +         {
> > +             ifstream inFile(arcFile.c_str());
> > +             char *line = new char[MAX_LINE_LENGTH];
> > +-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') !=
> > NULL)
> > ++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
> 
> I'm worried this might not be correct.  The "getline" function always
> returns it's first parameter, which, I think, can never evaluate to a falsy
> value.  The safer option would be to call ".eof()" on the result, and would
> match the intentions.  See e.g. https://notabug.org/bavier/guix-bavier/src/master/bavier/patches/xplanet-cxx11-eof.patch
> 

Okay. I have tested with your patch and builds and works fine.

R Veera Kumar

> -- 
> `~Eric




Information forwarded to guix-patches <at> gnu.org:
bug#40322; Package guix-patches. (Thu, 02 Apr 2020 10:54:02 GMT) Full text and rfc822 format available.

Message #26 received at 40322 <at> debbugs.gnu.org (full text, mbox):

From: R Veera Kumar <vkor <at> vkten.in>
To: 40322 <at> debbugs.gnu.org
Cc: R Veera Kumar <vkor <at> vkten.in>
Subject: [PATCH v4] gnu: Add xplanet.
Date: Thu,  2 Apr 2020 16:23:17 +0530
* gnu/packages/astronomy.scm (xplanet): New variable.
* gnu/packages/astronomy.scm: Add missing modules.
* gnu/packages/astronomy.scm: Add copyright line.
* gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch: New file.
* gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch: New file.
* gnu/packages/astronomy.scm (xplanet)[source]: Use them.
* gnu/local.mk (dist_patch_DATA): Add them.

Signed-off-by: R Veera Kumar <vkor <at> vkten.in>
---
Changes in v4:
 - Add netpbm support
 - Drop patch for fix build with clang
 - Replace patch for cxx11 build fix with a correct one
Changes in v3:
 - Add patches to gnu/local.mk
 - Put Copyright marks in files
Changes in v2:
 - Add origin, author and year in patches
---
 gnu/local.mk                                  |   5 +
 gnu/packages/astronomy.scm                    |  55 +++++++
 .../patches/xplanet-1.3.1-cxx11-eof.patch     | 154 ++++++++++++++++++
 ...t-1.3.1-libdisplay_DisplayOutput.cpp.patch |  16 ++
 .../xplanet-1.3.1-libimage_gif.c.patch        |  54 ++++++
 ...t-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch |  15 ++
 6 files changed, 299 insertions(+)
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
 create mode 100644 gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 6c85e6e806..e049974908 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -28,6 +28,7 @@
 # Copyright © 2019 Amin Bandali <bandali <at> gnu.org>
 # Copyright © 2020 Brendan Tildesley <mail <at> brendan.scot>
 # Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
+# Copyright © 2020 R Veera Kumar <vkor <at> vkten.in>
 #
 # This file is part of GNU Guix.
 #
@@ -1526,6 +1527,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/xmoto-utf8.patch				\
   %D%/packages/patches/xmoto-remove-glext.patch			\
   %D%/packages/patches/xmoto-reproducible.patch			\
+  %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
+  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
+  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
+  %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch	\
   %D%/packages/patches/xsane-fix-memory-leak.patch		\
   %D%/packages/patches/xsane-fix-pdf-floats.patch		\
   %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 3bb236fde9..ec90eba974 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly <at> disroot.org>
+;;; Copyright © 2020 R Veera Kumar <vkor <at> vkten.in>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,9 +26,11 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages pkg-config)
@@ -41,6 +44,8 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages xorg)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1))
@@ -289,3 +294,53 @@ Mechanics, Astrometry and Astrodynamics library.")
     (license (list license:lgpl2.0+
                    license:gpl2+)))) ; examples/transforms.c & lntest/*.c
 
+(define-public xplanet
+  (package
+    (name "xplanet")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "mirror://sourceforge/xplanet/xplanet/"
+         version "/xplanet-" version ".tar.gz"))
+       (sha256
+        (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023"))
+       (patches
+        (search-patches
+         "xplanet-1.3.1-cxx11-eof.patch"
+         "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch"
+         "xplanet-1.3.1-libimage_gif.c.patch"
+         "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libice" ,libice)
+       ("freetype" ,freetype)
+       ("pango" ,pango)
+       ("giflib" ,giflib)
+       ("libjpeg", libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("netpbm" ,netpbm)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:configure-flags
+       (let ((netpbm (assoc-ref %build-inputs "netpbm")))
+         (append (list
+                  ;; Give correct path for pnm.h header to configure script
+                  (string-append "CPPFLAGS=-I" netpbm "/include/netpbm")
+                  ;; no nasa jpl cspice support
+                  "--without-cspice" )))))
+    (home-page "http://xplanet.sourceforge.net/")
+    (synopsis "Planetary body renderer")
+    (description
+     "Xplanet renders an image of a planet into an X window or file.
+All of the major planets and most satellites can be drawn and different map
+projections are also supported, including azimuthal, hemisphere, Lambert,
+Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch
new file mode 100644
index 0000000000..b4d5850f75
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch
@@ -0,0 +1,154 @@
+Author: Eric Bavier Date: 2020-01-13
+Url: https://notabug.org/bavier/guix-bavier/raw/master/bavier/patches/
++xplanet-cxx11-eof.patch
+
+diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
+index 2ee06c0..4fdb343 100644
+--- a/src/libannotate/addArcs.cpp
++++ b/src/libannotate/addArcs.cpp
+@@ -258,7 +258,7 @@ addArcs(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+                 readArcFile(line, planet, view, projection,
+                             planetProperties, annotationMap);
+             
+@@ -292,7 +292,7 @@ addArcs(View *view, multimap<double, Annotation *> &annotationMap)
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[256];
+-            while (inFile.getline (line, 256, '\n') != NULL)
++            while (!inFile.getline (line, 256, '\n').eof())
+                 readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+ 
+             inFile.close();
+diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp
+index dde51c1..b641e6a 100644
+--- a/src/libannotate/addMarkers.cpp
++++ b/src/libannotate/addMarkers.cpp
+@@ -429,7 +429,7 @@ addMarkers(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+             {
+                 unsigned char color[3];
+                 memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -475,7 +475,7 @@ addMarkers(View *view, const int width, const int height,
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+             {
+                 unsigned char color[3];
+                 memcpy(color, options->Color(), 3);
+diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp
+index 2634339..6d9d378 100644
+--- a/src/libannotate/addSatellites.cpp
++++ b/src/libannotate/addSatellites.cpp
+@@ -488,10 +488,10 @@ loadSatelliteVector(PlanetProperties *planetProperties)
+         {
+             ifstream inFile(tleFile.c_str());
+             char lines[3][80];
+-            while (inFile.getline(lines[0], 80) != NULL)
++            while (!inFile.getline(lines[0], 80).eof())
+             {
+-                if ((inFile.getline(lines[1], 80) == NULL) 
+-                    || (inFile.getline(lines[2], 80) == NULL))
++	        if ((inFile.getline(lines[1], 80).eof()) 
++                    || (inFile.getline(lines[2], 80).eof()))
+                 {
+                     ostringstream errStr;
+                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@ addSatellites(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(satFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+                 readSatelliteFile(line, planet, view, projection,
+                                   planetProperties, annotationMap);
+             
+diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp
+index 67b752c..eeadf6e 100644
+--- a/src/libannotate/addSpiceObjects.cpp
++++ b/src/libannotate/addSpiceObjects.cpp
+@@ -524,7 +524,7 @@ processSpiceKernels(const bool load)
+         {
+             ifstream inFile(kernelFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+             {
+                 int ii = 0;
+                 while (isDelimiter(line[ii]))
+@@ -576,7 +576,7 @@ addSpiceObjects(map<double, Planet *> &planetsFromSunMap,
+         {
+             ifstream inFile(spiceFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+                 readSpiceFile(line, planetsFromSunMap, view, projection,
+                               annotationMap);
+             inFile.close();
+diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
+index d885173..1be8ece 100644
+--- a/src/libmultiple/RayleighScattering.cpp
++++ b/src/libmultiple/RayleighScattering.cpp
+@@ -369,7 +369,7 @@ RayleighScattering::readConfigFile(string configFile)
+ 
+     diskTemplate_.clear();
+     limbTemplate_.clear();
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@ RayleighScattering::readBlock(ifstream &inFile,
+     values.clear();
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@ RayleighScattering::readValue(ifstream &inFile,
+                               double &value)
+ {
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp
+index ff07c49..aabdfed 100644
+--- a/src/libmultiple/drawStars.cpp
++++ b/src/libmultiple/drawStars.cpp
+@@ -41,7 +41,7 @@ drawStars(DisplayBase *display, View *view)
+     ifstream inFile(starMap.c_str());
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+     {
+         if (line[0] == '#') continue;
+ 
+diff --git a/src/readConfig.cpp b/src/readConfig.cpp
+index cc1964f..4650527 100644
+--- a/src/readConfig.cpp
++++ b/src/readConfig.cpp
+@@ -550,7 +550,7 @@ readConfigFile(string configFile, PlanetProperties *planetProperties[])
+ 
+         ifstream inFile(configFile.c_str());
+         char *line = new char[256];
+-        while (inFile.getline(line, 256, '\n') != NULL)
++        while (!inFile.getline(line, 256, '\n').eof())
+             readConfig(line, planetProperties);
+         
+         // This condition will only be true if [default] is the only
diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
new file mode 100644
index 0000000000..bf52b0ca27
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
@@ -0,0 +1,16 @@
+Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp
+--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp	2020-03-28 22:08:44.432499170 +0530
+@@ -51,7 +51,7 @@
+     string outputFilename = options->OutputBase();
+     int startIndex = options->OutputStartIndex();
+     int stopIndex = options->NumTimes() + startIndex - 1;
+-    if (stopIndex > 1)
++    if (stopIndex > 0)
+     {
+         const int digits = (int) (log10((double) stopIndex) + 1);
+         char buffer[64];
diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
new file mode 100644
index 0000000000..58efc906dc
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
@@ -0,0 +1,54 @@
+Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c
+--- xplanet-1.3.1/src/libimage/gif.c	2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libimage/gif.c	2020-03-28 22:15:24.444309199 +0530
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-
++#include <stdbool.h>
+ #include <gif_lib.h>
+ 
+ /*
+@@ -178,8 +178,12 @@
+ 	    *BufferP++ = ColorMapEntry->Blue;
+ 	}
+     }
+-    
++
++#if GIFLIB_MAJOR >= 5
++    if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) {
++#else
+     if (DGifCloseFile(GifFile) == GIF_ERROR) {
++#endif
+ 	return(0);
+     }
+ 
+@@ -493,7 +497,11 @@
+ static void QuitGifError(GifFileType *GifFile)
+ {
+     fprintf(stderr, "Error writing GIF file\n");
++#if GIFLIB_MAJOR >= 5
++    if (GifFile != NULL) EGifCloseFile(GifFile, NULL);
++#else
+     if (GifFile != NULL) EGifCloseFile(GifFile);
++#endif
+ }
+ 
+ int 
+@@ -589,7 +597,11 @@
+ 	Ptr += width;
+     }
+ 
++#if GIFLIB_MAJOR >= 5
++    if (EGifCloseFile(GifFile, NULL) == GIF_ERROR)
++#else
+     if (EGifCloseFile(GifFile) == GIF_ERROR)
++#endif
+ 
+     {
+ 	QuitGifError(GifFile);
diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
new file mode 100644
index 0000000000..a47623fa00
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor <at> vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp
+--- xplanet-1.3.1/src/xpUtil.cpp	2016-03-12 08:36:47.000000000 +0530
++++ xplanet-1.3.1.new/src/xpUtil.cpp	2020-03-28 22:19:10.629891166 +0530
+@@ -434,6 +434,7 @@
+     if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34
+     if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35
+     if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36
++    if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37
+ 
+     const double J2000 = toJulian(2000, 1, 1, 12, 0, 0);
+     const double m = m0 + m1 * (jd - J2000) * 86400;
-- 
2.26.0





Reply sent to Eric Bavier <bavier <at> posteo.net>:
You have taken responsibility. (Sun, 05 Apr 2020 04:40:02 GMT) Full text and rfc822 format available.

Notification sent to R Veera Kumar <vkor <at> vkten.in>:
bug acknowledged by developer. (Sun, 05 Apr 2020 04:40:02 GMT) Full text and rfc822 format available.

Message #31 received at 40322-done <at> debbugs.gnu.org (full text, mbox):

From: Eric Bavier <bavier <at> posteo.net>
To: R Veera Kumar <vkor <at> vkten.in>
Cc: 40322-done <at> debbugs.gnu.org,
 Guix-patches <guix-patches-bounces+bavier=posteo.net <at> gnu.org>
Subject: Re: [bug#40322] [PATCH v4] gnu: Add xplanet.
Date: Sat, 04 Apr 2020 23:39:19 -0500
On 02.04.2020 05:53, R Veera Kumar wrote:
> * gnu/packages/astronomy.scm (xplanet): New variable.

Pushed with slightly adjusted commit message in 
77704cb13e5bebf412297dab764a00849a3cfdc0

Thanks!
`~Eric




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 03 May 2020 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 359 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.