From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:53588) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJBnd-00045J-Bz for guix-patches@gnu.org; Tue, 31 Mar 2020 03:59:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJBna-0002CB-9h for guix-patches@gnu.org; Tue, 31 Mar 2020 03:59:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:52159) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJBna-0002C1-4Z for guix-patches@gnu.org; Tue, 31 Mar 2020 03:59:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jJBna-0001CS-2r for guix-patches@gnu.org; Tue, 31 Mar 2020 03:59:02 -0400 Subject: [bug#40322] [PATCH v3] gnu: Add Xplanet. References: <20200330081929.GA7259@tulip> In-Reply-To: <20200330081929.GA7259@tulip> Resent-Message-ID: Date: Tue, 31 Mar 2020 13:27:57 +0530 From: R Veera Kumar Message-ID: <20200331075757.GA1219@tulip> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit 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 * 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 --- 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 # Copyright © 2020 Brendan Tildesley # Copyright © 2020 Vincent Legoll +# Copyright © 2020 R Veera Kumar # # 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 ;;; Copyright © 2018, 2019 Efraim Flashner ;;; Copyright © 2019 by Amar Singh +;;; Copyright © 2020 R Veera Kumar ;;; ;;; 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 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 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 + #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..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 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 + #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-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 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