all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#40322] [PATCH] gnu: Add Xplanet
@ 2020-03-30  8:19 R Veera Kumar
  2020-03-30 10:54 ` Danny Milosavljevic
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: R Veera Kumar @ 2020-03-30  8:19 UTC (permalink / raw)
  To: 40322

Xplanet renders an image of a planet into an X window or file.

Signed-off-by: R Veera Kumar <vkor@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH] gnu: Add Xplanet
  2020-03-30  8:19 [bug#40322] [PATCH] gnu: Add Xplanet R Veera Kumar
@ 2020-03-30 10:54 ` Danny Milosavljevic
  2020-03-30 16:58 ` [bug#40322] [PATCH v2] " R Veera Kumar
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Danny Milosavljevic @ 2020-03-30 10:54 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40322

[-- Attachment #1: Type: text/plain, Size: 133 bytes --]

Hi,

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

Otherwise OK.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v2] gnu: Add Xplanet
  2020-03-30  8:19 [bug#40322] [PATCH] gnu: Add Xplanet R Veera Kumar
  2020-03-30 10:54 ` Danny Milosavljevic
@ 2020-03-30 16:58 ` R Veera Kumar
  2020-03-30 20:10   ` Jakub Kądziołka
  2020-03-31  7:57 ` [bug#40322] [PATCH v3] " R Veera Kumar
  2020-04-02 10:53 ` [bug#40322] [PATCH v4] gnu: Add xplanet R Veera Kumar
  3 siblings, 1 reply; 9+ messages in thread
From: R Veera Kumar @ 2020-03-30 16:58 UTC (permalink / raw)
  To: 40322; +Cc: Danny Milosavljevic

Xplanet renders an image of a planet into an X window or file.

Signed-off-by: R Veera Kumar <vkor@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@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@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@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@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v2] gnu: Add Xplanet
  2020-03-30 16:58 ` [bug#40322] [PATCH v2] " R Veera Kumar
@ 2020-03-30 20:10   ` Jakub Kądziołka
  0 siblings, 0 replies; 9+ messages in thread
From: Jakub Kądziołka @ 2020-03-30 20:10 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40322, Danny Milosavljevic

[-- Attachment #1: Type: text/plain, Size: 1028 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v3] gnu: Add Xplanet.
  2020-03-30  8:19 [bug#40322] [PATCH] gnu: Add Xplanet R Veera Kumar
  2020-03-30 10:54 ` Danny Milosavljevic
  2020-03-30 16:58 ` [bug#40322] [PATCH v2] " R Veera Kumar
@ 2020-03-31  7:57 ` R Veera Kumar
  2020-03-31 14:50   ` Eric Bavier
  2020-04-02 10:53 ` [bug#40322] [PATCH v4] gnu: Add xplanet R Veera Kumar
  3 siblings, 1 reply; 9+ messages in thread
From: R Veera Kumar @ 2020-03-31  7:57 UTC (permalink / raw)
  To: 40322

* 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@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@gnu.org>
 # Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 # Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+# Copyright © 2020 R Veera Kumar <vkor@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@tobias.gr>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
+;;; Copyright © 2020 R Veera Kumar <vkor@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@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@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@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@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v3] gnu: Add Xplanet.
  2020-03-31  7:57 ` [bug#40322] [PATCH v3] " R Veera Kumar
@ 2020-03-31 14:50   ` Eric Bavier
  2020-04-01 17:08     ` R Veera Kumar
  0 siblings, 1 reply; 9+ messages in thread
From: Eric Bavier @ 2020-03-31 14:50 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40322, Guix-patches

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v3] gnu: Add Xplanet.
  2020-03-31 14:50   ` Eric Bavier
@ 2020-04-01 17:08     ` R Veera Kumar
  0 siblings, 0 replies; 9+ messages in thread
From: R Veera Kumar @ 2020-04-01 17:08 UTC (permalink / raw)
  To: Eric Bavier; +Cc: 40322, Guix-patches

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#40322] [PATCH v4] gnu: Add xplanet.
  2020-03-30  8:19 [bug#40322] [PATCH] gnu: Add Xplanet R Veera Kumar
                   ` (2 preceding siblings ...)
  2020-03-31  7:57 ` [bug#40322] [PATCH v3] " R Veera Kumar
@ 2020-04-02 10:53 ` R Veera Kumar
  2020-04-05  4:39   ` bug#40322: " Eric Bavier
  3 siblings, 1 reply; 9+ messages in thread
From: R Veera Kumar @ 2020-04-02 10:53 UTC (permalink / raw)
  To: 40322; +Cc: R Veera Kumar

* 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@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@gnu.org>
 # Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 # Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+# Copyright © 2020 R Veera Kumar <vkor@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@tobias.gr>
 ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
+;;; Copyright © 2020 R Veera Kumar <vkor@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@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@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@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* bug#40322: [PATCH v4] gnu: Add xplanet.
  2020-04-02 10:53 ` [bug#40322] [PATCH v4] gnu: Add xplanet R Veera Kumar
@ 2020-04-05  4:39   ` Eric Bavier
  0 siblings, 0 replies; 9+ messages in thread
From: Eric Bavier @ 2020-04-05  4:39 UTC (permalink / raw)
  To: R Veera Kumar; +Cc: 40322-done, Guix-patches

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-04-05  4:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-30  8:19 [bug#40322] [PATCH] gnu: Add Xplanet R Veera Kumar
2020-03-30 10:54 ` Danny Milosavljevic
2020-03-30 16:58 ` [bug#40322] [PATCH v2] " R Veera Kumar
2020-03-30 20:10   ` Jakub Kądziołka
2020-03-31  7:57 ` [bug#40322] [PATCH v3] " R Veera Kumar
2020-03-31 14:50   ` Eric Bavier
2020-04-01 17:08     ` R Veera Kumar
2020-04-02 10:53 ` [bug#40322] [PATCH v4] gnu: Add xplanet R Veera Kumar
2020-04-05  4:39   ` bug#40322: " Eric Bavier

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.