aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-04-08 13:00:50 +0200
committerMarius Bakke <mbakke@fastmail.com>2020-04-08 13:00:50 +0200
commit27783023993f9272ce422868d14529159c4a5218 (patch)
tree9013b08aa39e497b1fd8e01a05254278d83f0ff7 /gnu/packages/patches
parentbe1e842ad78ac6c52fc7790f4a3ffd716673c111 (diff)
parentba6f2bda18ed19fa486a9c3e2c3baea6c66c6867 (diff)
downloadguix-27783023993f9272ce422868d14529159c4a5218.tar
guix-27783023993f9272ce422868d14529159c4a5218.tar.gz
Merge branch 'master' into core-updates
Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/beancount-disable-googleapis-fonts.patch25
-rw-r--r--gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch22
-rw-r--r--gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch137
-rw-r--r--gnu/packages/patches/calibre-msgpack-compat.patch18
-rw-r--r--gnu/packages/patches/higan-remove-march-native-flag.patch12
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch4
-rw-r--r--gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch28
-rw-r--r--gnu/packages/patches/mediastreamer2-srtp2.patch155
-rw-r--r--gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch26
-rw-r--r--gnu/packages/patches/mingw-w64-reproducible-gendef.patch23
-rw-r--r--gnu/packages/patches/pam-krb5-CVE-2020-10595.patch42
-rw-r--r--gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch34
-rw-r--r--gnu/packages/patches/reprotest-support-guix.patch79
-rw-r--r--gnu/packages/patches/sdl2-mesa-compat.patch21
-rw-r--r--gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch154
-rw-r--r--gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch16
-rw-r--r--gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch54
-rw-r--r--gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch15
18 files changed, 751 insertions, 114 deletions
diff --git a/gnu/packages/patches/beancount-disable-googleapis-fonts.patch b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch
new file mode 100644
index 0000000000..d0fa47b59c
--- /dev/null
+++ b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch
@@ -0,0 +1,25 @@
+https://sources.debian.org/data/main/b/beancount/2.2.0-3/debian/patches/0001-Remove-fonts.googleapis.com-links-for-the-bean-web-t.patch
+
+From: Nicolas Dandrimont <nicolas@dandrimont.eu>
+Date: Tue, 1 May 2018 04:49:55 +0200
+Subject: Remove fonts.googleapis.com links for the bean-web template
+
+---
+ beancount/web/web.html | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/beancount/web/web.html b/beancount/web/web.html
+index 3995ce2..ec9e707 100644
+--- a/beancount/web/web.html
++++ b/beancount/web/web.html
+@@ -3,10 +3,6 @@
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+- <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400italic,700italic,700,400" rel="stylesheet" type="text/css" />
+- <link href="https://fonts.googleapis.com/css?family=Roboto:400italic,700italic,700,400" rel="stylesheet" type="text/css" />
+- <link href='https://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css' />
+-
+ <link href="/resources/web.css" rel="stylesheet" type="text/css" />
+ <title>{{title}}: {{pagetitle}}</title>
+ \ No newline at end of file
diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
new file mode 100644
index 0000000000..3e48b87935
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch
@@ -0,0 +1,22 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/reproducible-import-libraries.patch
+
+Description: Make DLL import libraries reproducible
+Author: Benjamin Moody <benjamin.moody@gmail.com>
+Bug-Debian: https://bugs.debian.org/915055
+
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -2844,6 +2844,7 @@
+
+ bfd_set_format (outarch, bfd_archive);
+ outarch->has_armap = 1;
++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT;
+
+ /* Work out a reasonable size of things to put onto one line. */
+ ar_head = make_head (outarch);
diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
new file mode 100644
index 0000000000..b785043b62
--- /dev/null
+++ b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch
@@ -0,0 +1,137 @@
+This following patch was originally found at the debian mingw-w64 team's
+binutils repo located here:
+https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show da63f6b:debian/patches/specify-timestamp.patch
+
+Description: Allow the PE timestamp to be specified
+Author: Stephen Kitt <skitt@debian.org>
+
+--- a/bfd/peXXigen.c
++++ b/bfd/peXXigen.c
+@@ -70,6 +70,9 @@
+ #include <wctype.h>
+ #endif
+
++#include <errno.h>
++#include <limits.h>
++
+ /* NOTE: it's strange to be including an architecture specific header
+ in what's supposed to be general (to PE/PEI) code. However, that's
+ where the definitions are, and they don't vary per architecture
+@@ -879,10 +882,38 @@
+
+ /* Use a real timestamp by default, unless the no-insert-timestamp
+ option was chosen. */
+- if ((pe_data (abfd)->insert_timestamp))
+- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+- else
++ if (pe_data (abfd)->insert_timestamp) {
++ time_t now;
++ char *source_date_epoch;
++ unsigned long long epoch;
++ char *endptr;
++
++ now = time(NULL);
++ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++ if (source_date_epoch) {
++ errno = 0;
++ epoch = strtoull(source_date_epoch, &endptr, 10);
++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
++ || (errno != 0 && epoch == 0)) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n",
++ strerror(errno));
++ } else if (endptr == source_date_epoch) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n",
++ endptr);
++ } else if (*endptr != '\0') {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n",
++ endptr);
++ } else if (epoch > ULONG_MAX) {
++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n",
++ ULONG_MAX, epoch);
++ } else {
++ now = epoch;
++ }
++ }
++ H_PUT_32 (abfd, now, filehdr_out->f_timdat);
++ } else {
+ H_PUT_32 (abfd, 0, filehdr_out->f_timdat);
++ }
+
+ PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
+ filehdr_out->f_symptr);
+--- a/ld/pe-dll.c
++++ b/ld/pe-dll.c
+@@ -26,6 +26,8 @@
+ #include "filenames.h"
+ #include "safe-ctype.h"
+
++#include <errno.h>
++#include <limits.h>
+ #include <time.h>
+
+ #include "ld.h"
+@@ -1202,8 +1204,36 @@
+
+ memset (edata_d, 0, edata_sz);
+
+- if (pe_data (abfd)->insert_timestamp)
+- H_PUT_32 (abfd, time (0), edata_d + 4);
++ if (pe_data (abfd)->insert_timestamp) {
++ time_t now;
++ char *source_date_epoch;
++ unsigned long long epoch;
++ char *endptr;
++
++ now = time(NULL);
++ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
++ if (source_date_epoch) {
++ errno = 0;
++ epoch = strtoull(source_date_epoch, &endptr, 10);
++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
++ || (errno != 0 && epoch == 0)) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n",
++ strerror(errno));
++ } else if (endptr == source_date_epoch) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n",
++ endptr);
++ } else if (*endptr != '\0') {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n",
++ endptr);
++ } else if (epoch > ULONG_MAX) {
++ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n",
++ ULONG_MAX, epoch);
++ } else {
++ now = epoch;
++ }
++ }
++ H_PUT_32 (abfd, now, edata_d + 4);
++ }
+
+ if (pe_def_file->version_major != -1)
+ {
+--- a/ld/emultempl/pe.em
++++ b/ld/emultempl/pe.em
+@@ -303,7 +303,7 @@
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
+ {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE},
+ {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ #ifdef DLL_SUPPORT
+ /* getopt allows abbreviations, so we do this to stop it
+--- a/ld/emultempl/pep.em
++++ b/ld/emultempl/pep.em
+@@ -321,7 +321,7 @@
+ {"no-bind", no_argument, NULL, OPTION_NO_BIND},
+ {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER},
+ {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE},
+- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP},
++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP},
+ {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP},
+ {"build-id", optional_argument, NULL, OPTION_BUILD_ID},
+ {NULL, no_argument, NULL, 0}
diff --git a/gnu/packages/patches/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch
new file mode 100644
index 0000000000..9920103bea
--- /dev/null
+++ b/gnu/packages/patches/calibre-msgpack-compat.patch
@@ -0,0 +1,18 @@
+Fix deserialization with msgpack 1.0.
+
+Patch copied from upstream source repository:
+https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3
+
+diff --git a/src/calibre/utils/serialize.py b/src/calibre/utils/serialize.py
+index f5d560c468..c35ae53849 100644
+--- a/src/calibre/utils/serialize.py
++++ b/src/calibre/utils/serialize.py
+@@ -110,7 +110,7 @@ def msgpack_decoder(code, data):
+ def msgpack_loads(dump, use_list=True):
+ # use_list controls whether msgpack arrays are unpacked as lists or tuples
+ import msgpack
+- return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list)
++ return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list, strict_map_key=False)
+
+
+ def json_loads(data):
diff --git a/gnu/packages/patches/higan-remove-march-native-flag.patch b/gnu/packages/patches/higan-remove-march-native-flag.patch
deleted file mode 100644
index 30d4cdd061..0000000000
--- a/gnu/packages/patches/higan-remove-march-native-flag.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Remove -march=native from build flags.
-
---- a/higan/GNUmakefile
-+++ b/higan/GNUmakefile
-@@ -26,7 +26,6 @@
- flags += -fopenmp
- link += -fopenmp
- ifeq ($(binary),application)
-- flags += -march=native
- link += -Wl,-export-dynamic
- link += -lX11 -lXext
- else ifeq ($(binary),library)
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index a90d7fdee8..c2c59ec855 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -25,7 +25,7 @@ index 8be2362..48716f2 100755
-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
-gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
--echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+-echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
-
-echo Extracting Firefox tarball
-tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -37,7 +37,7 @@ index 8be2362..48716f2 100755
+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
-+# echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
++# echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+#
+# echo Extracting Firefox tarball
+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
diff --git a/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch
new file mode 100644
index 0000000000..32dfd7b856
--- /dev/null
+++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch
@@ -0,0 +1,28 @@
+--- /dev/null
++++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch
+@@ -0,0 +1,22 @@
++Fix one of upstream non-determinism, tracked here:
++
++https://github.com/JuliaLang/julia/issues/34115
++https://github.com/JuliaLang/julia/issues/25900
++
++
++Patch by Nicoló Balzarotti <nicolo@nixo.xyz>.
++
++--- a/base/loading.jl
+++++ b/base/loading.jl
++@@ -807,7 +807,10 @@
++ path = normpath(joinpath(dirname(prev), _path))
++ end
++ if _track_dependencies[]
++- push!(_require_dependencies, (mod, path, mtime(path)))
+++ push!(_require_dependencies,
+++ (mod, path,
+++ haskey(ENV, "SOURCE_DATE_EPOCH") ?
+++ parse(Float64, ENV["SOURCE_DATE_EPOCH"]) : mtime(path)))
++ end
++ return path, prev
++ end
+--
+2.26.0
+
diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch
new file mode 100644
index 0000000000..f6d494facb
--- /dev/null
+++ b/gnu/packages/patches/mediastreamer2-srtp2.patch
@@ -0,0 +1,155 @@
+From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001
+From: Danmei Chen <danmei.chen@belledonne-communications.com>
+Date: Fri, 19 Jan 2018 10:04:07 +0100
+Subject: [PATCH] add compability with srtp2
+
+---
+ cmake/FindSRTP.cmake | 24 ++++++++++++++++++++----
+ src/CMakeLists.txt | 1 +
+ src/crypto/ms_srtp.c | 10 ++--------
+ src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 64 insertions(+), 12 deletions(-)
+ create mode 100644 src/utils/srtp_prefix.h
+
+diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake
+index 988b846a..f720ce7e 100644
+--- a/cmake/FindSRTP.cmake
++++ b/cmake/FindSRTP.cmake
+@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS
+ )
+
+ find_path(SRTP_INCLUDE_DIRS
+- NAMES srtp/srtp.h
++ NAMES srtp2/srtp.h
+ HINTS _SRTP_ROOT_PATHS
+ PATH_SUFFIXES include
+ )
+
+ if(SRTP_INCLUDE_DIRS)
+ set(HAVE_SRTP_SRTP_H 1)
+-endif()
+-
+-find_library(SRTP_LIBRARIES
++ set(SRTP_VERSION 2)
++ find_library(SRTP_LIBRARIES
++ NAMES srtp2
++ HINTS ${_SRTP_ROOT_PATHS}
++ PATH_SUFFIXES bin lib
++ )
++else()
++ find_path(SRTP_INCLUDE_DIRS
++ NAMES srtp/srtp.h
++ HINTS _SRTP_ROOT_PATHS
++ PATH_SUFFIXES include
++ )
++ if(SRTP_INCLUDE_DIRS)
++ set(HAVE_SRTP_SRTP_H 1)
++ set(SRTP_VERSION 1)
++ endif()
++ find_library(SRTP_LIBRARIES
+ NAMES srtp
+ HINTS ${_SRTP_ROOT_PATHS}
+ PATH_SUFFIXES bin lib
+ )
++endif()
++
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(SRTP
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index da429764..c46faa62 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C
+ utils/pcap_sender.c
+ utils/pcap_sender.h
+ utils/stream_regulator.c
++ utils/srtp_prefix.h
+ voip/audioconference.c
+ voip/audiostream.c
+ voip/bandwidthcontroller.c
+diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c
+index 5a510c99..67810316 100644
+--- a/src/crypto/ms_srtp.c
++++ b/src/crypto/ms_srtp.c
+@@ -25,6 +25,7 @@
+ #include "mediastreamer2/ms_srtp.h"
+ #include "mediastreamer2/mediastream.h"
+
++
+ #ifdef HAVE_SRTP
+
+ /*srtp defines all this stuff*/
+@@ -34,13 +35,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+
+-#if defined(MS2_WINDOWS_PHONE)
+-// Windows phone doesn't use make install
+-#include <srtp.h>
+-#else
+-#include <srtp/srtp.h>
+-#endif
+-
++#include "srtp_prefix.h"
+
+ #include "ortp/b64.h"
+
+@@ -352,7 +347,6 @@ int ms_srtp_init(void)
+ srtp_init_done++;
+ }else{
+ ms_fatal("Couldn't initialize SRTP library: %d.", st);
+- err_reporting_init("mediastreamer2");
+ }
+ }else srtp_init_done++;
+ return (int)st;
+diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h
+new file mode 100644
+index 00000000..68bde496
+--- /dev/null
++++ b/src/utils/srtp_prefix.h
+@@ -0,0 +1,41 @@
++/*
++ mediastreamer2 library - modular sound and video processing and streaming
++ Copyright (C) 2006-2014 Belledonne Communications, Grenoble
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++#ifndef __SRTP2_H__
++#define __SRTP2_H__
++
++#if defined(MS2_WINDOWS_PHONE)
++// Windows phone doesn't use make install
++#include <srtp.h>
++#elif SRTP_VERSION==1
++#include <srtp/srtp.h>
++#else
++#include <srtp2/srtp.h>
++#define err_status_t srtp_err_status_t
++#define err_status_ok srtp_err_status_ok
++#define crypto_policy_t srtp_crypto_policy_t
++#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80
++#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32
++#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth
++#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80
++#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80
++#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32
++#define ssrc_t srtp_ssrc_t
++#endif
++
++#endif
+--
+2.21.0
+
diff --git a/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch
new file mode 100644
index 0000000000..432cafc162
--- /dev/null
+++ b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch
@@ -0,0 +1,26 @@
+This following patch was originally found at the debian mingw-w64 team's
+mingw-w64 repo located here:
+https://salsa.debian.org/mingw-w64-team/mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show 4974e2c:debian/patches/dlltool-temp-prefix.patch
+
+Description: Specify dlltool's temp prefix
+Author: Stephen Kitt <steve@sk2.org>
+
+By default dlltool uses its pid for the object files it generates.
+Enforcing its temp prefix allows the files it generates to be
+reproducible.
+
+--- a/mingw-w64-crt/Makefile.am
++++ b/mingw-w64-crt/Makefile.am
+@@ -36,7 +36,7 @@
+ DTDEF32=$(GENLIB) $(DLLTOOLFLAGS32) $(AM_DLLTOOLFLAGS)
+ DTDEF64=$(GENLIB) $(DLLTOOLFLAGS64) $(AM_DLLTOOLFLAGS)
+ else
+- AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@
++ AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ --temp-prefix $$(basename $@ .a)
+ DLLTOOLFLAGSARM32=-m arm
+ DLLTOOLFLAGSARM64=-m arm64
+ DLLTOOLFLAGS32=--as-flags=--32 -m i386
diff --git a/gnu/packages/patches/mingw-w64-reproducible-gendef.patch b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch
new file mode 100644
index 0000000000..ee676af7a0
--- /dev/null
+++ b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch
@@ -0,0 +1,23 @@
+This following patch was originally found at the debian mingw-w64 team's
+mingw-w64 repo located here:
+https://salsa.debian.org/mingw-w64-team/mingw-w64.git
+
+Invoke the following in the aforementioned repo to see the original patch:
+
+ $ git show 4974e2c:debian/patches/reproducible-gendef.patch
+
+Description: Drop __DATE__ from gendef
+Author: Stephen Kitt <skitt@debian.org>
+
+This allows gendef to be built reproducibly.
+
+--- a/mingw-w64-tools/gendef/src/gendef.c
++++ b/mingw-w64-tools/gendef/src/gendef.c
+@@ -196,7 +196,6 @@
+ " By default, the output files are named after their DLL counterparts\n"
+ " gendef MYDLL.DLL Produces MYDLL.def\n"
+ " gendef - MYDLL.DLL Prints the exports to stdout\n");
+- fprintf (stderr, "\nBuilt on %s\n", __DATE__);
+ fprintf (stderr, "\nReport bugs to <mingw-w64-public@lists.sourceforge.net>\n");
+ exit (0);
+ }
diff --git a/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch
new file mode 100644
index 0000000000..4ca061230f
--- /dev/null
+++ b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch
@@ -0,0 +1,42 @@
+Fix CVE-2020-10595:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10595
+
+Patch copied from upstream advisory:
+
+https://seclists.org/oss-sec/2020/q1/128
+
+diff --git a/prompting.c b/prompting.c
+index e985d95..d81054f 100644
+--- a/prompting.c
++++ b/prompting.c
+@@ -314,26 +314,27 @@ pamk5_prompter_krb5(krb5_context context UNUSED, void *data, const char *name,
+ /*
+ * Reuse pam_prompts as a starting index and copy the data into the reply
+ * area of the krb5_prompt structs.
+ */
+ pam_prompts = 0;
+ if (name != NULL && !args->silent)
+ pam_prompts++;
+ if (banner != NULL && !args->silent)
+ pam_prompts++;
+ for (i = 0; i < num_prompts; i++, pam_prompts++) {
+- size_t len;
++ size_t len, allowed;
+
+ if (resp[pam_prompts].resp == NULL)
+ goto cleanup;
+ len = strlen(resp[pam_prompts].resp);
+- if (len > prompts[i].reply->length)
++ allowed = prompts[i].reply->length;
++ if (allowed == 0 || len > allowed - 1)
+ goto cleanup;
+
+ /*
+ * The trailing nul is not included in length, but other applications
+ * expect it to be there. Therefore, we copy one more byte than the
+ * actual length of the password, but set length to just the length of
+ * the password.
+ */
+ memcpy(prompts[i].reply->data, resp[pam_prompts].resp, len + 1);
+ prompts[i].reply->length = (unsigned int) len;
diff --git a/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch
new file mode 100644
index 0000000000..6cdddefd50
--- /dev/null
+++ b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch
@@ -0,0 +1,34 @@
+Do not fail test on runtime warning like: RuntimeWarning: coroutine 'noop2' was
+never awaited. This could be related to
+https://github.com/aio-libs/aiohttp/commit/60f01cca36b9f9d8d35dd351384eaae2f8fd0d4b,
+which does not fix this issue though.
+
+--- a/aiohttp/pytest_plugin.py 2019-10-09 18:52:31.000000000 +0200
++++ b/aiohttp/pytest_plugin.py 2020-03-05 08:35:48.230396025 +0100
+@@ -120,15 +120,6 @@
+ """
+ with warnings.catch_warnings(record=True) as _warnings:
+ yield
+- rw = ['{w.filename}:{w.lineno}:{w.message}'.format(w=w)
+- for w in _warnings # type: ignore
+- if w.category == RuntimeWarning]
+- if rw:
+- raise RuntimeError('{} Runtime Warning{},\n{}'.format(
+- len(rw),
+- '' if len(rw) == 1 else 's',
+- '\n'.join(rw)
+- ))
+
+
+ @contextlib.contextmanager
+--- a/tests/test_pytest_plugin.py 2020-03-05 09:26:58.502284893 +0100
++++ a/tests/test_pytest_plugin.py 2020-03-05 09:27:06.074284619 +0100
+@@ -170,7 +170,7 @@
+ expected_outcomes = (
+ {'failed': 0, 'passed': 2}
+ if IS_PYPY and bool(os.environ.get('PYTHONASYNCIODEBUG'))
+- else {'failed': 1, 'passed': 1}
++ else {'failed': 0, 'passed': 2}
+ )
+ """Under PyPy "coroutine 'foobar' was never awaited" does not happen."""
+ result.assert_outcomes(**expected_outcomes)
diff --git a/gnu/packages/patches/reprotest-support-guix.patch b/gnu/packages/patches/reprotest-support-guix.patch
deleted file mode 100644
index 621c4e3359..0000000000
--- a/gnu/packages/patches/reprotest-support-guix.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 31bd4fe777cbff3ebca74115e5735a8b8f584fa7 Mon Sep 17 00:00:00 2001
-From: Vagrant Cascadian <vagrant@reproducible-builds.org>
-Date: Thu, 6 Feb 2020 23:17:58 -0800
-Subject: [PATCH] Add support for GNU Guix.
-
----
- reprotest/lib/adt_testbed.py | 2 ++
- reprotest/lib/system_interface/guix.py | 39 ++++++++++++++++++++++++++
- 2 files changed, 41 insertions(+)
- create mode 100644 reprotest/lib/system_interface/guix.py
-
-diff --git a/reprotest/lib/adt_testbed.py b/reprotest/lib/adt_testbed.py
-index ef704d6..60bf763 100644
---- a/reprotest/lib/adt_testbed.py
-+++ b/reprotest/lib/adt_testbed.py
-@@ -40,6 +40,7 @@ import urllib.parse
- from reprotest.lib.system_interface.debian import DebianInterface
- from reprotest.lib.system_interface.arch import ArchInterface
- from reprotest.lib.system_interface.fedora import FedoraInterface
-+from reprotest.lib.system_interface.guix import GuixInterface
- from reprotest.lib import adtlog
- from reprotest.lib import VirtSubproc
-
-@@ -47,6 +48,7 @@ SYSTEM_INTERFACES = {
- 'debian': DebianInterface,
- 'arch': ArchInterface,
- 'fedora': FedoraInterface,
-+ 'guix': GuixInterface,
- }
-
- timeouts = {
-diff --git a/reprotest/lib/system_interface/guix.py b/reprotest/lib/system_interface/guix.py
-new file mode 100644
-index 0000000..2b06104
---- /dev/null
-+++ b/reprotest/lib/system_interface/guix.py
-@@ -0,0 +1,39 @@
-+# adt_testbed.py is part of autopkgtest
-+# autopkgtest is a tool for testing Debian binary packages. The
-+# system_interface module is an addition for reprotest to make
-+# this module distro-agnostic
-+#
-+# autopkgtest is Copyright (C) 2006-2015 Canonical Ltd.
-+# the system_interface module is Copyright (C) 2017 Santiago Torres-Arias
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+#
-+# See the file CREDITS for a full list of credits information (often
-+# installed as /usr/share/doc/autopkgtest/CREDITS).
-+import subprocess
-+
-+from . import SystemInterface
-+
-+class GuixInterface(SystemInterface):
-+ """
-+ SystemInterface implementation for GNU Guix hosts. Contains commands that
-+ are specific to the GNU Guix toolchain.
-+ """
-+
-+ def get_arch(self):
-+ return ['uname', '-m']
-+
-+ def can_query_packages(self):
-+ return False
---
-2.20.1
-
diff --git a/gnu/packages/patches/sdl2-mesa-compat.patch b/gnu/packages/patches/sdl2-mesa-compat.patch
deleted file mode 100644
index 8182e582e7..0000000000
--- a/gnu/packages/patches/sdl2-mesa-compat.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Do not include GLES header when OpenGL headers are already included.
-
-Taken from upstream:
-https://hg.libsdl.org/SDL/rev/369b01006eb2
-
-diff -r 4cbaffd0083b -r 369b01006eb2 src/video/SDL_video.c
---- a/src/video/SDL_video.c Fri Oct 11 06:18:24 2019 +0200
-+++ b/src/video/SDL_video.c Sat Oct 12 18:47:56 2019 +0200
-@@ -37,9 +37,9 @@
- #include "SDL_opengl.h"
- #endif /* SDL_VIDEO_OPENGL */
-
--#if SDL_VIDEO_OPENGL_ES
-+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL
- #include "SDL_opengles.h"
--#endif /* SDL_VIDEO_OPENGL_ES */
-+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */
-
- /* GL and GLES2 headers conflict on Linux 32 bits */
- #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
-
diff --git a/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch
new file mode 100644
index 0000000000..b4d5850f75
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch
@@ -0,0 +1,154 @@
+Author: Eric Bavier Date: 2020-01-13
+Url: https://notabug.org/bavier/guix-bavier/raw/master/bavier/patches/
++xplanet-cxx11-eof.patch
+
+diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp
+index 2ee06c0..4fdb343 100644
+--- a/src/libannotate/addArcs.cpp
++++ b/src/libannotate/addArcs.cpp
+@@ -258,7 +258,7 @@ addArcs(PlanetProperties *planetProperties, Planet *planet,
+ {
+ ifstream inFile(arcFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+ readArcFile(line, planet, view, projection,
+ planetProperties, annotationMap);
+
+@@ -292,7 +292,7 @@ addArcs(View *view, multimap<double, Annotation *> &annotationMap)
+ {
+ ifstream inFile(arcFile.c_str());
+ char *line = new char[256];
+- while (inFile.getline (line, 256, '\n') != NULL)
++ while (!inFile.getline (line, 256, '\n').eof())
+ readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+
+ inFile.close();
+diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp
+index dde51c1..b641e6a 100644
+--- a/src/libannotate/addMarkers.cpp
++++ b/src/libannotate/addMarkers.cpp
+@@ -429,7 +429,7 @@ addMarkers(PlanetProperties *planetProperties, Planet *planet,
+ {
+ ifstream inFile(markerFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ unsigned char color[3];
+ memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -475,7 +475,7 @@ addMarkers(View *view, const int width, const int height,
+ {
+ ifstream inFile(markerFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ unsigned char color[3];
+ memcpy(color, options->Color(), 3);
+diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp
+index 2634339..6d9d378 100644
+--- a/src/libannotate/addSatellites.cpp
++++ b/src/libannotate/addSatellites.cpp
+@@ -488,10 +488,10 @@ loadSatelliteVector(PlanetProperties *planetProperties)
+ {
+ ifstream inFile(tleFile.c_str());
+ char lines[3][80];
+- while (inFile.getline(lines[0], 80) != NULL)
++ while (!inFile.getline(lines[0], 80).eof())
+ {
+- if ((inFile.getline(lines[1], 80) == NULL)
+- || (inFile.getline(lines[2], 80) == NULL))
++ if ((inFile.getline(lines[1], 80).eof())
++ || (inFile.getline(lines[2], 80).eof()))
+ {
+ ostringstream errStr;
+ errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@ addSatellites(PlanetProperties *planetProperties, Planet *planet,
+ {
+ ifstream inFile(satFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof())
+ readSatelliteFile(line, planet, view, projection,
+ planetProperties, annotationMap);
+
+diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp
+index 67b752c..eeadf6e 100644
+--- a/src/libannotate/addSpiceObjects.cpp
++++ b/src/libannotate/addSpiceObjects.cpp
+@@ -524,7 +524,7 @@ processSpiceKernels(const bool load)
+ {
+ ifstream inFile(kernelFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ int ii = 0;
+ while (isDelimiter(line[ii]))
+@@ -576,7 +576,7 @@ addSpiceObjects(map<double, Planet *> &planetsFromSunMap,
+ {
+ ifstream inFile(spiceFile.c_str());
+ char *line = new char[MAX_LINE_LENGTH];
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ readSpiceFile(line, planetsFromSunMap, view, projection,
+ annotationMap);
+ inFile.close();
+diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp
+index d885173..1be8ece 100644
+--- a/src/libmultiple/RayleighScattering.cpp
++++ b/src/libmultiple/RayleighScattering.cpp
+@@ -369,7 +369,7 @@ RayleighScattering::readConfigFile(string configFile)
+
+ diskTemplate_.clear();
+ limbTemplate_.clear();
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ int i = 0;
+ while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@ RayleighScattering::readBlock(ifstream &inFile,
+ values.clear();
+
+ char line[MAX_LINE_LENGTH];
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ int i = 0;
+ while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@ RayleighScattering::readValue(ifstream &inFile,
+ double &value)
+ {
+ char line[MAX_LINE_LENGTH];
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ int i = 0;
+ while (isDelimiter(line[i]))
+diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp
+index ff07c49..aabdfed 100644
+--- a/src/libmultiple/drawStars.cpp
++++ b/src/libmultiple/drawStars.cpp
+@@ -41,7 +41,7 @@ drawStars(DisplayBase *display, View *view)
+ ifstream inFile(starMap.c_str());
+
+ char line[MAX_LINE_LENGTH];
+- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof())
+ {
+ if (line[0] == '#') continue;
+
+diff --git a/src/readConfig.cpp b/src/readConfig.cpp
+index cc1964f..4650527 100644
+--- a/src/readConfig.cpp
++++ b/src/readConfig.cpp
+@@ -550,7 +550,7 @@ readConfigFile(string configFile, PlanetProperties *planetProperties[])
+
+ ifstream inFile(configFile.c_str());
+ char *line = new char[256];
+- while (inFile.getline(line, 256, '\n') != NULL)
++ while (!inFile.getline(line, 256, '\n').eof())
+ readConfig(line, planetProperties);
+
+ // This condition will only be true if [default] is the only
diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
new file mode 100644
index 0000000000..bf52b0ca27
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch
@@ -0,0 +1,16 @@
+Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp
+--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp 2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp 2020-03-28 22:08:44.432499170 +0530
+@@ -51,7 +51,7 @@
+ string outputFilename = options->OutputBase();
+ int startIndex = options->OutputStartIndex();
+ int stopIndex = options->NumTimes() + startIndex - 1;
+- if (stopIndex > 1)
++ if (stopIndex > 0)
+ {
+ const int digits = (int) (log10((double) stopIndex) + 1);
+ char buffer[64];
diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
new file mode 100644
index 0000000000..58efc906dc
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch
@@ -0,0 +1,54 @@
+Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c
+--- xplanet-1.3.1/src/libimage/gif.c 2013-02-17 01:07:47.000000000 +0530
++++ xplanet-1.3.1.new/src/libimage/gif.c 2020-03-28 22:15:24.444309199 +0530
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-
++#include <stdbool.h>
+ #include <gif_lib.h>
+
+ /*
+@@ -178,8 +178,12 @@
+ *BufferP++ = ColorMapEntry->Blue;
+ }
+ }
+-
++
++#if GIFLIB_MAJOR >= 5
++ if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) {
++#else
+ if (DGifCloseFile(GifFile) == GIF_ERROR) {
++#endif
+ return(0);
+ }
+
+@@ -493,7 +497,11 @@
+ static void QuitGifError(GifFileType *GifFile)
+ {
+ fprintf(stderr, "Error writing GIF file\n");
++#if GIFLIB_MAJOR >= 5
++ if (GifFile != NULL) EGifCloseFile(GifFile, NULL);
++#else
+ if (GifFile != NULL) EGifCloseFile(GifFile);
++#endif
+ }
+
+ int
+@@ -589,7 +597,11 @@
+ Ptr += width;
+ }
+
++#if GIFLIB_MAJOR >= 5
++ if (EGifCloseFile(GifFile, NULL) == GIF_ERROR)
++#else
+ if (EGifCloseFile(GifFile) == GIF_ERROR)
++#endif
+
+ {
+ QuitGifError(GifFile);
diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
new file mode 100644
index 0000000000..a47623fa00
--- /dev/null
+++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $
+
+Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1
+
+diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp
+--- xplanet-1.3.1/src/xpUtil.cpp 2016-03-12 08:36:47.000000000 +0530
++++ xplanet-1.3.1.new/src/xpUtil.cpp 2020-03-28 22:19:10.629891166 +0530
+@@ -434,6 +434,7 @@
+ if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34
+ if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35
+ if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36
++ if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37
+
+ const double J2000 = toJulian(2000, 1, 1, 12, 0, 0);
+ const double m = m0 + m1 * (jd - J2000) * 86400;