From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:59255) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIpeO-00054b-RR for guix-patches@gnu.org; Mon, 30 Mar 2020 04:20:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIpeM-0007ik-EP for guix-patches@gnu.org; Mon, 30 Mar 2020 04:20:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:48862) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIpeM-0007iU-A6 for guix-patches@gnu.org; Mon, 30 Mar 2020 04:20:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jIpeM-0007kt-5g for guix-patches@gnu.org; Mon, 30 Mar 2020 04:20:02 -0400 Subject: [bug#40322] [PATCH] gnu: Add Xplanet Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:59210) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIpe5-0004ze-GO for guix-patches@gnu.org; Mon, 30 Mar 2020 04:19:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIpe2-00071f-Ul for guix-patches@gnu.org; Mon, 30 Mar 2020 04:19:45 -0400 Received: from vkten.in ([104.244.73.96]:39936) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1jIpe2-0006yL-Jn for guix-patches@gnu.org; Mon, 30 Mar 2020 04:19:42 -0400 Date: Mon, 30 Mar 2020 13:49:29 +0530 From: R Veera Kumar Message-ID: <20200330081929.GA7259@tulip> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 40322@debbugs.gnu.org Xplanet renders an image of a planet into an X window or file. Signed-off-by: R Veera Kumar --- 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 + #include + #include +- ++#include + #include + + /* +@@ -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 + #include + #include ++#include + 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(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