[PATCH] gnu: Add Xplanet

DoneSubmitted by R Veera Kumar.
Details
4 participants
  • Eric Bavier
  • Danny Milosavljevic
  • Jakub Kądziołka
  • R Veera Kumar
Owner
unassigned
Severity
normal
R
R
R Veera Kumar wrote on 30 Mar 2020 10:19
(address . guix-patches@gnu.org)
20200330081929.GA7259@tulip
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
Toggle diff (412 lines)diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scmindex 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.patchnew file mode 100644index 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 onlydiff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patchnew file mode 100644index 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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);+ }+ elsediff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patchnew file mode 100644index 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
D
D
Danny Milosavljevic wrote on 30 Mar 2020 12:54
(name . R Veera Kumar)(address . vkor@vkten.in)(address . 40322@debbugs.gnu.org)
20200330125418.24702631@scratchpost.org
Hi,
please add an extra line to each patch which records where you got it from (atleast the author and year).
Otherwise OK.
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6Bz9oACgkQ5xo1VCwwuqV5XQf8CG7PUIKP5/kDi8qp3TbG9txM5Izfgt44jaF1M20L8rQZJIMYdAxC0IHig35FKBj0bw2Qb6aHMCphaRoG4U3mip/j/wtzkF8bPPbCmpu9hI+H8EdcNDPlXtq0/Gq/Glt+GLnvrxfo7Al+MW57mCgFqNrqdq5PZjaQmuLodtI7SajETQj3Ve4TSxXWJNWoWyM/3JPslZj21rRvfi5TVUMzY1JlrFQvJZ47wat/Aeddh8AEqj3ETXsBTYtlSrTDTbYqifzG7VcpUHXD/YTPFwXQb6OqrXvlY7zw1Gk14fNaDZMp+eGy5C+7+sNCceM1aoTjeLKPRDFYk96deEVn9P61tw===HJ8P-----END PGP SIGNATURE-----

R
R
R Veera Kumar wrote on 30 Mar 2020 18:58
[PATCH v2] gnu: Add Xplanet
(address . 40322@debbugs.gnu.org)(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
20200330165808.GA10546@tulip
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
Toggle diff (432 lines)diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scmindex 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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);+ }+ elsediff --git a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patchnew file mode 100644index 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 onlydiff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patchnew file mode 100644index 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
J
J
Jakub Kądziołka wrote on 30 Mar 2020 22:10
(name . R Veera Kumar)(address . vkor@vkten.in)
20200330201032.ta53dlld3ybwggsa@gravity
On Mon, Mar 30, 2020 at 10:28:08PM +0530, R Veera Kumar wrote:
Toggle quote (13 lines)> 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
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE5Xa/ss9usT31cTO54xWnWEYTFWQFAl6CUjgACgkQ4xWnWEYTFWQxQxAAlADHVE33A2gSO34o1Ay48npLJDPXcvf2xL/LK5oE0y4mBRierS86ADQ+2lVryaaxTv8V36DyxiQVxVlgrcnxN+Q7n1p9ntDYE5JRCnS3eN6GsnqZH7YHKso7IDBLHDRKlsZvroWzfoANIouJVGxclXznd7GkUOuPWrsECxEEG/S0imsVQ1gNUg1SxNidSTbTtdgDl2vj1w24/vuEoIEiWEJUtevvlv2ZoF79TF4ou00DHZR5ZQZFE6LxbhF702ehm1yLs+YsXB+Iqp4G7DfjFOu4yONF0DKS/2TyBNu3AYILY1acR6C0FfNg79HX4ZFPfEI/XRa9ZIPM8j1cuSj4Nqs+2iQHuVQXkkScYjAuSSz8dsHEFMreWcueQd9gMyP7THUMjsMGo1UfrpLQ/bSd2FD/E9qUIlQoy22DLttz9UejeeSXxEZfeOwA0ltHUV+WgqAjkjHrXno1qxXlxLNYcb4Mehn+4EsJw/87dnYUiaRVEZx8BSLO6hXD3CwM5bhMxVGCmQ0tefpMHkUjOgnYqRo2RgGx0r6PtJsX5q2avIHzacpF1lf52HtNELcXpbk+m1P/EK082JNKiVhddwv8clHf7SDgAe3mxwwhXyb2jljGc58P5hAldaOBLkNoxuQJ+IgUEiNz96xiXnvrehZjR8a2ZCY9CCmstGtzZ/wZsuk==jZFv-----END PGP SIGNATURE-----

R
R
R Veera Kumar wrote on 31 Mar 2020 09:57
[PATCH v3] gnu: Add Xplanet.
(address . 40322@debbugs.gnu.org)
20200331075757.GA1219@tulip
* 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 filesChanges 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
Toggle diff (464 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 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.scmindex 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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);+ }+ elsediff --git a/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patch b/gnu/packages/patches/xplanet-1.3.1-remove-null-comparison.patchnew file mode 100644index 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 onlydiff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patchnew file mode 100644index 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
E
E
Eric Bavier wrote on 31 Mar 2020 16:50
(name . R Veera Kumar)(address . vkor@vkten.in)
0b0a249b0cdf15e14056c2c277e97187@posteo.net
On 31.03.2020 02:57, R Veera Kumar wrote:
Toggle quote (7 lines)> + (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?
Toggle quote (21 lines)> + "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.
Toggle quote (26 lines)> 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
R
R
R Veera Kumar wrote on 1 Apr 2020 19:08
(name . Eric Bavier)(address . bavier@posteo.net)
20200401170812.GB16198@tulip
On Tue, Mar 31, 2020 at 09:50:27AM -0500, Eric Bavier wrote:
Toggle quote (11 lines)> 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, itmight be useful in future. I will drop it.
Toggle quote (18 lines)> > + "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 xplanetconfigure 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 thereI will enable it.
Toggle quote (32 lines)> > 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
Toggle quote (2 lines)> -- > `~Eric
R
R
R Veera Kumar wrote on 2 Apr 2020 12:53
[PATCH v4] gnu: Add xplanet.
(address . 40322@debbugs.gnu.org)(name . R Veera Kumar)(address . vkor@vkten.in)
20200402105317.12941-1-vkor@vkten.in
* 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 oneChanges in v3: - Add patches to gnu/local.mk - Put Copyright marks in filesChanges 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
Toggle diff (375 lines)diff --git a/gnu/local.mk b/gnu/local.mkindex 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.scmindex 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.patchnew file mode 100644index 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 onlydiff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patchnew file mode 100644index 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.patchnew file mode 100644index 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.patchnew file mode 100644index 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
E
E
Eric Bavier wrote on 5 Apr 2020 06:39
(name . R Veera Kumar)(address . vkor@vkten.in)
943cd689f0ea133dcefb6c0e213f5bd0@posteo.net
On 02.04.2020 05:53, R Veera Kumar wrote:
Toggle quote (2 lines)> * gnu/packages/astronomy.scm (xplanet): New variable.
Pushed with slightly adjusted commit message in 77704cb13e5bebf412297dab764a00849a3cfdc0
Thanks!`~Eric
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 40322@debbugs.gnu.org