diff options
Diffstat (limited to 'gnu/packages/patches')
8 files changed, 234 insertions, 175 deletions
diff --git a/gnu/packages/patches/dblatex-remove-multirow.patch b/gnu/packages/patches/dblatex-remove-multirow.patch deleted file mode 100644 index 62d1c64e08..0000000000 --- a/gnu/packages/patches/dblatex-remove-multirow.patch +++ /dev/null @@ -1,30 +0,0 @@ -This patch is needed to fix dblatex with newer versions of TeX Live. -It was taken from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840189 - ---- a/latex/style/dbk_table.sty Sun Oct 02 23:21:03 2016 +0200 -+++ b/latex/style/dbk_table.sty Mon Oct 10 21:31:00 2016 +0200 -@@ -9,7 +9,6 @@ - \usepackage{longtable} - \usepackage{lscape} - \usepackage{colortbl} --\usepackage{multirow} - \usepackage{calc} - \usepackage{hhline} - -@@ -21,16 +20,6 @@ - \expandafter[\expandafter3\expandafter]\expandafter{% - \multicolumn{#1}{#2}{#3}} - --% Make \@xmultirow long --\expandafter\long\expandafter\def% --\expandafter\@xmultirow% --\expandafter#\expandafter1% --\expandafter[\expandafter#\expandafter2\expandafter]% --\expandafter#\expandafter3% --\expandafter[\expandafter#\expandafter4\expandafter]% --\expandafter#\expandafter5% --\expandafter{\@xmultirow{#1}[#2]{#3}[#4]{#5}} -- - % For the newtbl code - \newdimen\newtblstarfactor% - \newdimen\newtblsparewidth% diff --git a/gnu/packages/patches/dovecot-CVE-2017-15132.patch b/gnu/packages/patches/dovecot-CVE-2017-15132.patch deleted file mode 100644 index 32666b8557..0000000000 --- a/gnu/packages/patches/dovecot-CVE-2017-15132.patch +++ /dev/null @@ -1,36 +0,0 @@ -Fix CVE-2017-15132: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15132 - -Patch copied from upstream source repository: - -https://github.com/dovecot/core/commit/1a29ed2f96da1be22fa5a4d96c7583aa81b8b060 - -From 1a29ed2f96da1be22fa5a4d96c7583aa81b8b060 Mon Sep 17 00:00:00 2001 -From: Timo Sirainen <timo.sirainen@dovecot.fi> -Date: Mon, 18 Dec 2017 16:50:51 +0200 -Subject: [PATCH] lib-auth: Fix memory leak in auth_client_request_abort() - -This caused memory leaks when authentication was aborted. For example -with IMAP: - -a AUTHENTICATE PLAIN -* - -Broken by 9137c55411aa39d41c1e705ddc34d5bd26c65021 ---- - src/lib-auth/auth-client-request.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/lib-auth/auth-client-request.c b/src/lib-auth/auth-client-request.c -index 480fb42b30..046f7c307d 100644 ---- a/src/lib-auth/auth-client-request.c -+++ b/src/lib-auth/auth-client-request.c -@@ -186,6 +186,7 @@ void auth_client_request_abort(struct auth_client_request **_request) - - auth_client_send_cancel(request->conn->client, request->id); - call_callback(request, AUTH_REQUEST_STATUS_ABORT, NULL, NULL); -+ pool_unref(&request->pool); - } - - unsigned int auth_client_request_get_id(struct auth_client_request *request) diff --git a/gnu/packages/patches/guile-linux-syscalls.patch b/gnu/packages/patches/guile-linux-syscalls.patch index 69970a3e60..12cddff47b 100644 --- a/gnu/packages/patches/guile-linux-syscalls.patch +++ b/gnu/packages/patches/guile-linux-syscalls.patch @@ -3,17 +3,21 @@ This patch adds bindings to Linux syscalls for which glibc has symbols. Using the FFI would have been nice, but that's not an option when using a statically-linked Guile in an initrd that doesn't have libc.so around. ---- guile-2.0.11/libguile/posix.c.orig 2014-02-28 15:01:27.000000000 -0500 -+++ guile-2.0.11/libguile/posix.c 2015-06-21 14:28:23.624251038 -0400 -@@ -2245,6 +2245,295 @@ +diff --git a/libguile/posix.c b/libguile/posix.c +index b0fcad5fd..1343186e3 100644 +--- a/libguile/posix.c ++++ b/libguile/posix.c +@@ -2341,6 +2341,335 @@ scm_init_popen (void) } - #endif + #endif /* HAVE_START_CHILD */ + +/* Linux! */ +#ifdef __linux__ + +#include <sys/mount.h> ++#include <sys/syscall.h> ++ +#include "libguile/foreign.h" +#include "libguile/bytevectors.h" + @@ -91,6 +95,16 @@ a statically-linked Guile in an initrd that doesn't have libc.so around. + ARGS, a space-separated list of options. */ +extern long init_module (void *module, unsigned long len, const char *args); + ++/* Load a kernel module from FD. FLAGS must be a bitwise or of ++ MODULE_INIT_* constants. The GNU libc doesn't provide a wrapper for ++ this one so we use 'syscall'. */ ++static int ++finit_module (int fd, const char *args, int flags) ++{ ++ return syscall (SYS_finit_module, fd, args, flags); ++} ++ ++ +SCM_DEFINE (scm_load_linux_module, "load-linux-module", 1, 1, 0, + (SCM data, SCM options), + "Load the Linux kernel module whose contents are in bytevector " @@ -121,6 +135,34 @@ a statically-linked Guile in an initrd that doesn't have libc.so around. +} +#undef FUNC_NAME + ++SCM_DEFINE (scm_load_linux_module_fd, "load-linux-module/fd", 1, 2, 0, ++ (SCM fd, SCM options, SCM flags), ++ "Load the Linux kernel module from the file at FD, " ++ "with the arguments from the OPTIONS string, and " ++ "optionally the given FLAGS.") ++#define FUNC_NAME s_scm_load_linux_module_fd ++{ ++ long err; ++ int c_fd, c_flags; ++ char *c_options; ++ ++ c_fd = scm_to_int (fd); ++ c_options = ++ scm_to_locale_string (SCM_UNBNDP (options) ? scm_nullstr : options); ++ c_flags = SCM_UNBNDP (flags) ? 0 : scm_to_int (flags); ++ ++ err = finit_module (c_fd, c_options, c_flags); ++ ++ free (c_options); ++ ++ if (err != 0) ++ SCM_SYSERROR; ++ ++ return SCM_UNSPECIFIED; ++} ++#undef FUNC_NAME ++ ++ +/* Rebooting, halting, and all that. */ + +#include <sys/reboot.h> diff --git a/gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch b/gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch deleted file mode 100644 index b2ff43c0d3..0000000000 --- a/gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch +++ /dev/null @@ -1,53 +0,0 @@ -This patch (adapted from nixpkgs for Build.PL) configures Getopt::Long to pass -options so they will be available at the second GetOptions call. - -Also an option to specify the search path for libfontconfig is added. - ---- GD-2.56/Build.PL 2014-10-27 20:34:54.000000000 -0500 -+++ GD-2.56/Build.PL 2015-02-22 10:08:12.569973657 -0600 -@@ -2,14 +2,14 @@ - - use strict; - use Module::Build; --use Getopt::Long; -+use Getopt::Long qw(:config pass_through); - use Config; - - # =====> PATHS: CHECK AND ADJUST <===== - my (@INC,@LIBPATH,@LIBS); - my $AUTOCONFIG = 0; # global set by try_to_autoconfigure() below - --my ($options,$lib_gd_path,$lib_ft_path,$lib_png_path,$lib_jpeg_path,$lib_xpm_path,$lib_zlib_path); -+my ($options,$lib_gd_path,$lib_ft_path,$lib_png_path,$lib_jpeg_path,$lib_xpm_path,$lib_zlib_path,$lib_fontconfig_path); - - unless (try_to_autoconfigure(\$options,\$lib_gd_path,\@INC,\@LIBPATH,\@LIBS)) { - die <<END; -@@ -38,6 +38,7 @@ - "lib_jpeg_path=s" => \$lib_jpeg_path, - "lib_xpm_path=s" => \$lib_xpm_path, - "lib_zlib_path=s" => \$lib_zlib_path, -+ "lib_fontconfig_path=s" => \$lib_fontconfig_path, - ); - unless ($result) { - die <<END; -@@ -53,6 +54,7 @@ - -lib_jpeg_path path path to libjpeg - -lib_xpm_path path path to libxpm - -lib_zlib_path path path to libpng -+ -lib_fontconfig_path path path to fontconfig - -ignore_missing_gd Ignore missing or old libgd installations and try to compile anyway - - If no options are passed on the command line. The program will -@@ -100,6 +102,12 @@ - @INC = ("-I$lib_zlib_path/include", @INC); - @LIBPATH = ("-L$lib_zlib_path/lib", @LIBPATH); - } -+if( defined($lib_fontconfig_path) ) -+{ -+ print "Fontconfig library used from: $lib_fontconfig_path\n"; -+ @INC = ("-I$lib_fontconfig_path/include", @INC); -+ @LIBPATH = ("-L$lib_fontconfig_path/lib", @LIBPATH); -+} - ############################################################################################# - - if ($^O eq 'VMS'){ diff --git a/gnu/packages/patches/python-mox3-python3.6-compat.patch b/gnu/packages/patches/python-mox3-python3.6-compat.patch new file mode 100644 index 0000000000..0426d07cf9 --- /dev/null +++ b/gnu/packages/patches/python-mox3-python3.6-compat.patch @@ -0,0 +1,43 @@ +Fix regex so that it works with Python 3.6. + +See <https://docs.python.org/3/library/re.html#re.LOCALE>. + +Copied from upstream bug report: +https://bugs.launchpad.net/python-mox3/+bug/1665266 + +From 05064cdb6ea7a16450c6beae2b6f7c6074212a69 Mon Sep 17 00:00:00 2001 +From: Zac Medico <zmedico@gentoo.org> +Date: Thu, 16 Feb 2017 00:24:10 -0800 +Subject: [PATCH] RegexTest: python3.6 compatibility + +These fixes are backward-compatible with older python versions: + +* raw strings fix invalid escape sequences +* flags=8 fixes ValueError: cannot use LOCALE flag with a str pattern +--- + mox3/tests/test_mox.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mox3/tests/test_mox.py b/mox3/tests/test_mox.py +index 15ac565..3a1af17 100644 +--- a/mox3/tests/test_mox.py ++++ b/mox3/tests/test_mox.py +@@ -312,12 +312,12 @@ class RegexTest(testtools.TestCase): + def testReprWithoutFlags(self): + """repr should return the regular expression pattern.""" + self.assertTrue( +- repr(mox.Regex(r"a\s+b")) == "<regular expression 'a\s+b'>") ++ repr(mox.Regex(r"a\s+b")) == r"<regular expression 'a\s+b'>") + + def testReprWithFlags(self): + """repr should return the regular expression pattern and flags.""" +- self.assertTrue(repr(mox.Regex(r"a\s+b", flags=4)) == +- "<regular expression 'a\s+b', flags=4>") ++ self.assertTrue(repr(mox.Regex(r"a\s+b", flags=8)) == ++ r"<regular expression 'a\s+b', flags=8>") + + + class IsTest(testtools.TestCase): +-- +2.10.2 + diff --git a/gnu/packages/patches/python-parse-too-many-fields.patch b/gnu/packages/patches/python-parse-too-many-fields.patch deleted file mode 100644 index 9db6b91a7f..0000000000 --- a/gnu/packages/patches/python-parse-too-many-fields.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 32f15cfefb7c7b6476360ac65cba807aa3dfccfa Mon Sep 17 00:00:00 2001 -From: David King <dking@redhat.com> -Date: Mon, 14 Dec 2015 09:58:19 +0000 -Subject: [PATCH] Fix test_too_many_fields with Python 3.5 - -taken from https://github.com/r1chardj0n3s/parse/pull/34 - -Python versions before 3.5 had a limit of 100 groups in regular -expressions. This limit was removed during 3.5 development: - -http://bugs.python.org/issue22437 -https://hg.python.org/cpython/rev/0b85ea4bd1af - -The test_too_many_fields test asserts that the limit exists by -attempting to parse a string with 15 fields, which triggers the 100 -named groups limit. - -Adjust the test so that if first checks to see whether the limit of 100 -named groups exists, and only assert that parsing 15 fields fails if -that is the case. ---- - test_parse.py | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/test_parse.py b/test_parse.py -index c524349..1d50568 100755 ---- a/test_parse.py -+++ b/test_parse.py -@@ -6,6 +6,7 @@ - - import unittest - from datetime import datetime, time -+import re - - import parse - -@@ -624,8 +625,13 @@ def test_mixed_type_variant(self): - self.assertEqual(r.fixed[21], 'spam') - - def test_too_many_fields(self): -- p = parse.compile('{:ti}' * 15) -- self.assertRaises(parse.TooManyFields, p.parse, '') -+ # Python 3.5 removed the limit of 100 named groups in a regular expression, -+ # so only test for the exception if the limit exists. -+ try: -+ re.compile("".join("(?P<n{n}>{n}-)".format(n=i) for i in range(101))) -+ except AssertionError: -+ p = parse.compile('{:ti}' * 15) -+ self.assertRaises(parse.TooManyFields, p.parse, '') - - - class TestSearch(unittest.TestCase): diff --git a/gnu/packages/patches/wavpack-CVE-2018-6767.patch b/gnu/packages/patches/wavpack-CVE-2018-6767.patch new file mode 100644 index 0000000000..f49a8f0fd6 --- /dev/null +++ b/gnu/packages/patches/wavpack-CVE-2018-6767.patch @@ -0,0 +1,119 @@ +Fix CVE-2018-6767: +https://nvd.nist.gov/vuln/detail/CVE-2018-6767 +https://security-tracker.debian.org/tracker/CVE-2018-6767 + +Patch copied from upstream source repository: +https://github.com/dbry/WavPack/commit/d5bf76b5a88d044a1be1d5656698e3ba737167e5 + +From d5bf76b5a88d044a1be1d5656698e3ba737167e5 Mon Sep 17 00:00:00 2001 +From: David Bryant <david@wavpack.com> +Date: Sun, 4 Feb 2018 11:28:15 -0800 +Subject: [PATCH] issue #27, do not overwrite stack on corrupt RF64 file + +--- + cli/riff.c | 39 ++++++++++++++++++++++++++++++++------- + 1 file changed, 32 insertions(+), 7 deletions(-) + +diff --git a/cli/riff.c b/cli/riff.c +index 8b1af45..de98c1e 100644 +--- a/cli/riff.c ++++ b/cli/riff.c +@@ -42,6 +42,7 @@ typedef struct { + + #pragma pack(pop) + ++#define CS64ChunkFormat "4D" + #define DS64ChunkFormat "DDDL" + + #define WAVPACK_NO_ERROR 0 +@@ -101,13 +102,13 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack + + if (!strncmp (chunk_header.ckID, "ds64", 4)) { + if (chunk_header.ckSize < sizeof (DS64Chunk) || +- !DoReadFile (infile, &ds64_chunk, chunk_header.ckSize, &bcount) || +- bcount != chunk_header.ckSize) { ++ !DoReadFile (infile, &ds64_chunk, sizeof (DS64Chunk), &bcount) || ++ bcount != sizeof (DS64Chunk)) { + error_line ("%s is not a valid .WAV file!", infilename); + return WAVPACK_SOFT_ERROR; + } + else if (!(config->qmode & QMODE_NO_STORE_WRAPPER) && +- !WavpackAddWrapper (wpc, &ds64_chunk, chunk_header.ckSize)) { ++ !WavpackAddWrapper (wpc, &ds64_chunk, sizeof (DS64Chunk))) { + error_line ("%s", WavpackGetErrorMessage (wpc)); + return WAVPACK_SOFT_ERROR; + } +@@ -315,10 +316,11 @@ int ParseRiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpack + + int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, int qmode) + { +- int do_rf64 = 0, write_junk = 1; ++ int do_rf64 = 0, write_junk = 1, table_length = 0; + ChunkHeader ds64hdr, datahdr, fmthdr; + RiffChunkHeader riffhdr; + DS64Chunk ds64_chunk; ++ CS64Chunk cs64_chunk; + JunkChunk junkchunk; + WaveHeader wavhdr; + uint32_t bcount; +@@ -380,6 +382,7 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, + strncpy (riffhdr.formType, "WAVE", sizeof (riffhdr.formType)); + total_riff_bytes = sizeof (riffhdr) + wavhdrsize + sizeof (datahdr) + ((total_data_bytes + 1) & ~(int64_t)1); + if (do_rf64) total_riff_bytes += sizeof (ds64hdr) + sizeof (ds64_chunk); ++ total_riff_bytes += table_length * sizeof (CS64Chunk); + if (write_junk) total_riff_bytes += sizeof (junkchunk); + strncpy (fmthdr.ckID, "fmt ", sizeof (fmthdr.ckID)); + strncpy (datahdr.ckID, "data", sizeof (datahdr.ckID)); +@@ -394,11 +397,12 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, + + if (do_rf64) { + strncpy (ds64hdr.ckID, "ds64", sizeof (ds64hdr.ckID)); +- ds64hdr.ckSize = sizeof (ds64_chunk); ++ ds64hdr.ckSize = sizeof (ds64_chunk) + (table_length * sizeof (CS64Chunk)); + CLEAR (ds64_chunk); + ds64_chunk.riffSize64 = total_riff_bytes; + ds64_chunk.dataSize64 = total_data_bytes; + ds64_chunk.sampleCount64 = total_samples; ++ ds64_chunk.tableLength = table_length; + riffhdr.ckSize = (uint32_t) -1; + datahdr.ckSize = (uint32_t) -1; + WavpackNativeToLittleEndian (&ds64hdr, ChunkHeaderFormat); +@@ -409,6 +413,14 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, + datahdr.ckSize = (uint32_t) total_data_bytes; + } + ++ // this "table" is just a dummy placeholder for testing (normally not written) ++ ++ if (table_length) { ++ strncpy (cs64_chunk.ckID, "dmmy", sizeof (cs64_chunk.ckID)); ++ cs64_chunk.chunkSize64 = 12345678; ++ WavpackNativeToLittleEndian (&cs64_chunk, CS64ChunkFormat); ++ } ++ + // write the RIFF chunks up to just before the data starts + + WavpackNativeToLittleEndian (&riffhdr, ChunkHeaderFormat); +@@ -418,8 +430,21 @@ int WriteRiffHeader (FILE *outfile, WavpackContext *wpc, int64_t total_samples, + + if (!DoWriteFile (outfile, &riffhdr, sizeof (riffhdr), &bcount) || bcount != sizeof (riffhdr) || + (do_rf64 && (!DoWriteFile (outfile, &ds64hdr, sizeof (ds64hdr), &bcount) || bcount != sizeof (ds64hdr))) || +- (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk))) || +- (write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) || ++ (do_rf64 && (!DoWriteFile (outfile, &ds64_chunk, sizeof (ds64_chunk), &bcount) || bcount != sizeof (ds64_chunk)))) { ++ error_line ("can't write .WAV data, disk probably full!"); ++ return FALSE; ++ } ++ ++ // again, this is normally not written except for testing ++ ++ while (table_length--) ++ if (!DoWriteFile (outfile, &cs64_chunk, sizeof (cs64_chunk), &bcount) || bcount != sizeof (cs64_chunk)) { ++ error_line ("can't write .WAV data, disk probably full!"); ++ return FALSE; ++ } ++ ++ ++ if ((write_junk && (!DoWriteFile (outfile, &junkchunk, sizeof (junkchunk), &bcount) || bcount != sizeof (junkchunk))) || + !DoWriteFile (outfile, &fmthdr, sizeof (fmthdr), &bcount) || bcount != sizeof (fmthdr) || + !DoWriteFile (outfile, &wavhdr, wavhdrsize, &bcount) || bcount != wavhdrsize || + !DoWriteFile (outfile, &datahdr, sizeof (datahdr), &bcount) || bcount != sizeof (datahdr)) { diff --git a/gnu/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch b/gnu/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch new file mode 100644 index 0000000000..345101bd3a --- /dev/null +++ b/gnu/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch @@ -0,0 +1,26 @@ +This fixes the wxplot2d plotting issue found at +https://github.com/andrejv/wxmaxima/issues/973. + +From 5a0693c97ceaa4935b908f1e478126896952f399 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Gunter=20K=C3=B6nigsmann?= <gunter@peterpall.de> +Date: Mon, 19 Feb 2018 05:37:35 +0100 +Subject: [PATCH] Seems I accidentally made wxMaxima to default to parameters + for old gnuplots. Resolves #973 + +--- + data/wxmathml.lisp.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/wxmathml.lisp.in b/data/wxmathml.lisp.in +index a32e3fc3..4e19acaf 100644 +--- a/data/wxmathml.lisp.in ++++ b/data/wxmathml.lisp.in +@@ -43,7 +43,7 @@ + (defvar $wxsubscripts t + "Recognize TeX-style subscripts") + (defvar $wxplot_pngcairo nil "Use gnuplot's pngcairo terminal for new plots?") +-(defmvar $wxplot_old_gnuplot t) ++(defmvar $wxplot_old_gnuplot nil) + + (defun $wxstatusbar (status) + (format t "<statusbar>~a</statusbar>~%" status)) |