summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-01-13 23:39:52 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-01-13 23:45:53 -0500
commit01f0707207741ce2a5d7509a175464799b08aea6 (patch)
tree08e8f4da56f26363c3b53e0442a21b286b55e0e5 /gnu/packages/patches
parent734bcf13139119daf8685f93b056c3422dbfa264 (diff)
parent6985a1acb3e9cc4cad8b6f63d77154842d25c929 (diff)
Merge branch 'staging' into 'core-updates'.
Conflicts: gnu/local.mk gnu/packages/cmake.scm gnu/packages/curl.scm gnu/packages/gl.scm gnu/packages/glib.scm gnu/packages/guile.scm gnu/packages/node.scm gnu/packages/openldap.scm gnu/packages/package-management.scm gnu/packages/python-xyz.scm gnu/packages/python.scm gnu/packages/tls.scm gnu/packages/vpn.scm gnu/packages/xorg.scm
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch522
-rw-r--r--gnu/packages/patches/audacity-add-include.patch15
-rw-r--r--gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-checksums-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/bear-disable-preinstall-tests.patch40
-rw-r--r--gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch68
-rw-r--r--gnu/packages/patches/cl-asdf-config-directories.patch44
-rw-r--r--gnu/packages/patches/clisp-remove-failing-test.patch43
-rw-r--r--gnu/packages/patches/combinatorial-blas-awpm.patch218
-rw-r--r--gnu/packages/patches/dbxfs-remove-sentry-sdk.patch2
-rw-r--r--gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch14
-rw-r--r--gnu/packages/patches/ghostscript-CVE-2020-15900.patch36
-rw-r--r--gnu/packages/patches/ghostscript-freetype-compat.patch35
-rw-r--r--gnu/packages/patches/gpsbabel-fix-i686-test.patch46
-rw-r--r--gnu/packages/patches/gpsbabel-minizip.patch13
-rw-r--r--gnu/packages/patches/gpsbabel-qstring.patch69
-rw-r--r--gnu/packages/patches/hplip-fix-bug-1898438.patch19
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch4
-rw-r--r--gnu/packages/patches/libexpected-nofetch.patch27
-rw-r--r--gnu/packages/patches/libffi-float128-powerpc64le.patch58
-rw-r--r--gnu/packages/patches/libssh2-CVE-2019-17498.patch126
-rw-r--r--gnu/packages/patches/minimap2-aarch64-support.patch52
-rw-r--r--gnu/packages/patches/pam-mount-luks2-support.patch51
-rw-r--r--gnu/packages/patches/pciutils-hurd-fix.patch23
-rw-r--r--gnu/packages/patches/pidgin-libnm.patch60
-rw-r--r--gnu/packages/patches/pidgin-vv-gst.patch48
-rw-r--r--gnu/packages/patches/pulseview-qt515-compat.patch145
-rw-r--r--gnu/packages/patches/purescript-relax-dependencies.patch28
-rw-r--r--gnu/packages/patches/python-3.9-fix-tests.patch370
-rw-r--r--gnu/packages/patches/python-CVE-2020-26116.patch47
-rw-r--r--gnu/packages/patches/python-cairocffi-dlopen-path.patch10
-rw-r--r--gnu/packages/patches/python-tinycss2-flake8-compat.patch36
-rw-r--r--gnu/packages/patches/qtbase-fix-krita-deadlock.patch110
-rw-r--r--gnu/packages/patches/renpy-use-system-fribidi.patch52
-rw-r--r--gnu/packages/patches/rust-1.48-linker-locale.patch14
-rw-r--r--gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch36
-rw-r--r--gnu/packages/patches/sbc-fix-build-non-x86.patch17
-rw-r--r--gnu/packages/patches/sbcl-clml-fix-types.patch280
-rw-r--r--gnu/packages/patches/sbcl-geco-fix-organism-class.patch13
-rw-r--r--gnu/packages/patches/sdcc-disable-non-free-code.patch721
-rw-r--r--gnu/packages/patches/serf-python3.patch29
-rw-r--r--gnu/packages/patches/shakespeare-spl-fix-grammar.patch16
-rw-r--r--gnu/packages/patches/smalltalk-multiplication-overflow.patch121
-rw-r--r--gnu/packages/patches/superlu-dist-awpm-grid.patch31
-rw-r--r--gnu/packages/patches/vlc-qt-5.15.patch56
-rw-r--r--gnu/packages/patches/weasyprint-library-paths.patch43
46 files changed, 2373 insertions, 1461 deletions
diff --git a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
deleted file mode 100644
index 33a68a1dd8..0000000000
--- a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
+++ /dev/null
@@ -1,522 +0,0 @@
-This patch was taken from Debian.
-https://salsa.debian.org/multimedia-team/ams/-/raw/master/debian/patches/0007-Make-vocoder-module-compatible-to-C-11.patch
-
-From: Guido Scholz <gscholz@users.sourceforge.net>
-Date: Tue, 6 Nov 2018 21:55:38 +0100
-Subject: Make vocoder module compatible to C++11
-
----
- src/m_vocoder.cpp | 218 +++++++++++++++++++++++++++---------------------------
- src/m_vocoder.h | 31 ++++----
- 2 files changed, 124 insertions(+), 125 deletions(-)
-
-diff --git a/src/m_vocoder.cpp b/src/m_vocoder.cpp
-index 572cf65..371e2cf 100644
---- a/src/m_vocoder.cpp
-+++ b/src/m_vocoder.cpp
-@@ -18,10 +18,6 @@
- along with ams. If not, see <http://www.gnu.org/licenses/>.
- */
-
--#include <stdio.h>
--#include <stdlib.h>
--#include <unistd.h>
--#include <math.h>
- #include <qwidget.h>
- #include <qstring.h>
- #include <qslider.h>
-@@ -36,16 +32,13 @@
- #include "synthdata.h"
- #include "midicheckbox.h"
- #include "midislider.h"
--// For FFTW to be happy we must include complex.h before fftw3.h
--#include <complex.h>
--#include <fftw3.h>
- #include "port.h"
- #include "m_vocoder.h"
-
- // Window function - One way to make the FFT behave
- // and give more continuous results over edge steps.
-
--float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
-+float M_vocoder::windowcurve (int windowfunc, unsigned int len, int elem, float alpha)
- {
- float out;
- out = 1.0;
-@@ -98,6 +91,7 @@ float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
- return (out);
- }
-
-+
- M_vocoder::M_vocoder(QWidget* parent, int id)
- : Module(M_type_vocoder, id, 5, parent, tr("FFT Vocoder"))
- {
-@@ -160,6 +154,7 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
- modbuf[l1] = (float *)malloc( fftsize * sizeof(float));
- memset( modbuf[l1], 0, fftsize * sizeof(float));
- }
-+
- carrbuf = (float **)malloc(synthdata->poly * sizeof(float *));
- for (l1 = 0; l1 < synthdata->poly; l1++) {
- carrbuf[l1] = (float *)malloc( fftsize * sizeof(float));
-@@ -175,38 +170,48 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
- window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
-
- // FFTW setup stuff
-- carrinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- carrinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- carroutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- carroutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- modinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- modinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- modoutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- modoutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
-- * fftsize);
-- fftw_set_timelimit (5.0);
-- planmodforward = fftw_plan_dft_1d (fftsize, modinforward,
-- modoutforward, FFTW_FORWARD, FFTW_MEASURE);
-- planmodbackward = fftw_plan_dft_1d (fftsize, modinbackward,
-- modoutbackward, FFTW_BACKWARD, FFTW_MEASURE);
-- plancarrforward = fftw_plan_dft_1d (fftsize, carrinforward,
-- carroutforward, FFTW_FORWARD, FFTW_MEASURE);
-- plancarrbackward = fftw_plan_dft_1d (fftsize, carrinbackward,
-- carroutbackward, FFTW_BACKWARD, FFTW_MEASURE);
-+ carrinforward.reserve(fftsize);
-+ carrinbackward.reserve(fftsize);
-+ carroutforward.reserve(fftsize);
-+ carroutbackward.reserve(fftsize);
-+ modinforward.reserve(fftsize);
-+ modinbackward.reserve(fftsize);
-+ modoutforward.reserve(fftsize);
-+ modoutbackward.reserve(fftsize);
-+
-+ fftw_set_timelimit(5.0);
-+
-+ planmodforward = fftw_plan_dft_1d(fftsize,
-+ reinterpret_cast<fftw_complex*> (modinforward.data()),
-+ reinterpret_cast<fftw_complex*> (modoutforward.data()),
-+ FFTW_FORWARD, FFTW_MEASURE);
-+
-+ planmodbackward = fftw_plan_dft_1d(fftsize,
-+ reinterpret_cast<fftw_complex*> (modinbackward.data()),
-+ reinterpret_cast<fftw_complex*> (modoutbackward.data()),
-+ FFTW_BACKWARD, FFTW_MEASURE);
-+
-+ plancarrforward = fftw_plan_dft_1d(fftsize,
-+ reinterpret_cast<fftw_complex*> (carrinforward.data()),
-+ reinterpret_cast<fftw_complex*> (carroutforward.data()),
-+ FFTW_FORWARD, FFTW_MEASURE);
-+
-+ plancarrbackward = fftw_plan_dft_1d(fftsize,
-+ reinterpret_cast<fftw_complex*> (carrinbackward.data()),
-+ reinterpret_cast<fftw_complex*> (carroutbackward.data()),
-+ FFTW_BACKWARD, FFTW_MEASURE);
- }
-
-+
- M_vocoder::~M_vocoder() {
-
-- int l1;
-+ // Clean up FFTW stuff.
-+ fftw_destroy_plan (plancarrforward);
-+ fftw_destroy_plan (plancarrbackward);
-+ fftw_destroy_plan (planmodforward);
-+ fftw_destroy_plan (planmodbackward);
-
-- for (l1 = 0; l1 < synthdata->poly; l1++) {
-+ for (int l1 = 0; l1 < synthdata->poly; l1++) {
- free(modbuf[l1]);
- free(carrbuf[l1]);
- }
-@@ -215,29 +220,14 @@ M_vocoder::~M_vocoder() {
- free (window);
- free (modmap);
- free (armodmap);
--
-- //#define FFTW_CLEANUP
--#ifdef FFTW_CLEANUP
-- // Clean up FFTW stuff.
-- fftw_destroy_plan (plancarrforward);
-- fftw_destroy_plan (plancarrbackward);
-- fftw_destroy_plan (planmodforward);
-- fftw_destroy_plan (planmodbackward);
-- fftw_free (carrinforward);
-- fftw_free (carrinbackward);
-- fftw_free (carroutforward);
-- fftw_free (carroutbackward);
-- fftw_free (modinforward);
-- fftw_free (modinbackward);
-- fftw_free (modoutforward);
-- fftw_free (modoutbackward);
--#endif
- }
-
-+
- void M_vocoder::generateCycle() {
-
- int l1; // l1 indexes along polyphony.
- unsigned int l2; // l2 indexes along the cycle
-+ const std::complex<double> I(0.0, 1.0);
-
- inModulator = port_M_modulator->getinputdata();
- inPitchShift = port_M_pitchshift->getinputdata();
-@@ -272,7 +262,7 @@ void M_vocoder::generateCycle() {
- // Did the user change the FFT windowing function?
- if (myFFTWindowFunc != whichwin) {
- whichwin = myFFTWindowFunc;
-- for (l2 = 0; l2 < (unsigned int) fftsize; l2++)
-+ for (l2 = 0; l2 < fftsize; l2++)
- window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
- }
-
-@@ -294,7 +284,7 @@ void M_vocoder::generateCycle() {
- }
-
- // window the input buffer to modinforward
-- for (l2 = 0; l2 < (unsigned int)fftsize ; l2++) {
-+ for (l2 = 0; l2 < fftsize ; l2++) {
- modinforward[l2] = modbuf[l1][l2] * window[l2];
- }
-
-@@ -310,17 +300,18 @@ void M_vocoder::generateCycle() {
- fftw_execute (planmodforward);
-
- // copy the FFT of the modulator to modinbackward.
-- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
-- modinbackward[l2] = modoutforward[l2];
-+ //for (l2 = 0; l2 < fftsize; l2++)
-+ // modinbackward[l2] = modoutforward[l2];
-+ modinbackward = modoutforward;
-
- // Send the FFT of the modulator to the output for giggles
- // and get an approximation of the first harmonic too.
- float firstharmonicval;
- int firstharmonicindex;
- firstharmonicval = 0.0;
-- firstharmonicindex = 1.0;
-+ firstharmonicindex = 1;
- for (l2 = 1; l2 < (unsigned int) synthdata->cyclesize; l2++) {
-- data[2][l1][l2] = logf(fabs (creal (modoutforward[l2])) + 1.0);
-+ data[2][l1][l2] = logf(fabs(modoutforward[l2].real()) + 1.0);
- if (data[2][l1][l2] > firstharmonicval) {
- firstharmonicindex = l2;
- firstharmonicval = data[2][l1][l2] ;
-@@ -333,35 +324,38 @@ void M_vocoder::generateCycle() {
-
- // intermediate frequency-domain munging of modulator
- // Frequency (additive, Bode-style) shifting first
-- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
-- modinbackward[l2] = 0;
-+ for (l2 = 0; l2 < fftsize; l2++)
-+ modinbackward[l2] = 0.0;
-+
- int lclfrq;
-- for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+ for (l2 = 0; l2 < fftsize/2; l2++) {
- // positive frequencies (first half) of the FFT result
- lclfrq = l2 + (int)freqshift + vcfreqshift * inFreqShift[l1][0];
- lclfrq = lclfrq > 0 ? lclfrq : 0;
-- lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+ lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
- modinbackward [lclfrq] = modoutforward [l2];
- // Negative frequencies (second half of the fft result)
-- modinbackward [fftsize - lclfrq] = modoutforward [ fftsize - l2];
-+ modinbackward [fftsize - lclfrq] = modoutforward [fftsize - l2];
- }
-
-- // Pitchshifting (multiplicative, harmonic-retaining) shifting.
-- // Note that we reuse the modoutforward as working space
-- for (l2 = 0; l2 < (unsigned int) fftsize; l2++) {
-- modoutforward[l2] = modinbackward[l2];
-- };
-- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
-- modinbackward[l2] = 0;
-+ // Pitchshifting (multiplicative, harmonic-retaining) shifting.
-+ // Note that we reuse the modoutforward as working space
-+ //for (l2 = 0; l2 < fftsize; l2++) {
-+ // modoutforward[l2] = modinbackward[l2];
-+ //};
-+ modoutforward = modinbackward;
-+
-+ for (l2 = 0; l2 < fftsize; l2++)
-+ modinbackward[l2] = 0.0;
-
- float psmod, psfactor;
- psmod = (pitchshift + vcpitch * inPitchShift[l1][0]);
- psfactor = pow (2.0, psmod);
-- for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
-+ for (l2 = 0; l2 < fftsize/2; l2++) {
- // positive frequencies (first half) of the FFT result
- lclfrq = l2 * psfactor;
- lclfrq = lclfrq > 0 ? lclfrq : 0;
-- lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
-+ lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
- // Old way to pitch shift: just move the bucket. But this puts
- // nulls wherever the energy is split between two buckets with
- // a 180 degree phase difference.
-@@ -375,12 +369,12 @@ void M_vocoder::generateCycle() {
- // Better way: move freq. bin, multiply angle by octave motion.
- //
- modinbackward[lclfrq] +=
-- cabs (modoutforward [l2])
-- * cexp (I * ( carg (modoutforward [l2])
-+ std::abs(modoutforward[l2])
-+ * std::exp (I * ( std::arg (modoutforward [l2])
- + (l2 * phaseshift * psfactor)));
- modinbackward[fftsize - lclfrq] +=
-- cabs (modoutforward [ fftsize - l2])
-- * cexp (I * ( carg (modoutforward [ fftsize - l2])
-+ std::abs (modoutforward [ fftsize - l2])
-+ * std::exp (I * ( std::arg (modoutforward [ fftsize - l2])
- + (l2 * phaseshift * psfactor)));
- };
- }
-@@ -389,9 +383,9 @@ void M_vocoder::generateCycle() {
- fftw_execute (planmodbackward);
-
- // renormalize the time-domain modulator output
-- for (l2 = 0; l2 < (unsigned)fftsize; l2++) {
-- modoutbackward [l2] = modoutbackward[l2] / float (fftsize) ;
-- modoutbackward [l2] = modoutbackward[l2] / window[l2];
-+ for (l2 = 0; l2 < fftsize; l2++) {
-+ modoutbackward [l2] = modoutbackward[l2] / (double) fftsize;
-+ modoutbackward [l2] = modoutbackward[l2] / (double) window[l2];
- }
-
- unsigned int i;
-@@ -400,13 +394,11 @@ void M_vocoder::generateCycle() {
-
-
- // Splicing the new output to the results
-- if (dynsplice == 0.0)
-- {
-+ if (dynsplice == 0.0) {
- // output it as the altered modulator.
- for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-- data[0][l1][l2] = creal ( modoutbackward [l2 +
-- fftsize/2 -
-- synthdata->cyclesize/2 ]);
-+ data[0][l1][l2] =
-+ modoutbackward[l2 + fftsize/2 - synthdata->cyclesize/2].real();
- }
- clomatch_index = fftsize - synthdata->cyclesize;
- }
-@@ -421,18 +413,21 @@ void M_vocoder::generateCycle() {
- float tval, dtval;
- int searchstart;
- float spliceval, dspliceval;
-- searchstart = fftsize/2 - synthdata->cyclesize;
-- if (searchstart < 1) searchstart = 1;
-- clomatch_index = searchstart;
-+
-+ searchstart = fftsize/2 - synthdata->cyclesize;
-+ if (searchstart < 1)
-+ searchstart = 1;
-+
-+ clomatch_index = searchstart;
- spliceval = data[0][l1][synthdata->cyclesize - 1];
- dspliceval = spliceval - data[0][l1][synthdata->cyclesize - 2];
-- clov_sofar= fabs(creal(modoutbackward[clomatch_index])-spliceval );
-+ clov_sofar= fabs(modoutbackward[clomatch_index].real()-spliceval);
- for (l2 = searchstart;
- l2 < (searchstart + synthdata->cyclesize);
- l2++)
- {
-- tval = creal (modoutbackward[l2]);
-- dtval = tval - creal (modoutbackward [l2-1]);
-+ tval = modoutbackward[l2].real();
-+ dtval = tval - modoutbackward [l2-1].real();
- if (
- ((fabs (tval - spliceval )) < clov_sofar )
- && ((dtval * dspliceval ) >= 0)
-@@ -445,15 +440,15 @@ void M_vocoder::generateCycle() {
- };
- // fprintf (stderr, "%d %f %f ",
- // clomatch_index, clov_sofar, clodv_sofar);
--
-+
- // What's our residual error, so that we can splice this
- // with minimal "click"?
-- residual = + spliceval - creal( modoutbackward[clomatch_index]);
-+ residual = + spliceval - modoutbackward[clomatch_index].real();
-
- // Move our wave, with the best match so far established, to
- // the output buffer area.
- for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
-- data[0][l1][l2] = creal ( modoutbackward [ clomatch_index + l2])
-+ data[0][l1][l2] = modoutbackward[clomatch_index + l2].real()
- + ((1.0 - (float(l2) / float(synthdata->cyclesize))) * residual);
- };
-
-@@ -466,17 +461,18 @@ void M_vocoder::generateCycle() {
- for (l2 = 0; l2 < fftsize - synthdata->cyclesize; l2++) {
- carrbuf [l1][l2] = carrbuf [l1][l2 + synthdata->cyclesize];
- }
-+
- for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
- carrbuf [l1][l2 + fftsize - synthdata->cyclesize] = inCarrier[l1][l2];
- }
-
-- for (l2 = 0; l2 < unsigned (fftsize); l2++) {
-+ for (l2 = 0; l2 < fftsize; l2++) {
- carrinforward [l2] = carrbuf [l1][l2] * window[l2];
- }
-
- fftw_execute (plancarrforward);
-
-- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+ for (l2 = 0; l2 < fftsize; l2++) {
- carrinbackward[l2] = carroutforward[l2];
- };
-
-@@ -486,34 +482,37 @@ void M_vocoder::generateCycle() {
- // Group the modulator into channels, and multipy the channels
- // over the carrier.
-
-- int localchannels;
-- localchannels = channels + vcchannels * inChannels[l1][0];
-- if (localchannels < 1) localchannels = 1;
-- if (localchannels > fftsize - 1) localchannels = fftsize - 1;
-- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+ unsigned int localchannels = channels + vcchannels * inChannels[l1][0];
-+ if (localchannels < 1)
-+ localchannels = 1;
-+
-+ if (localchannels > fftsize - 1)
-+ localchannels = fftsize - 1;
-+
-+ for (l2 = 0; l2 < fftsize; l2++) {
- modmap[l2] = 0;
- // initial conditions...
- if (l2 == 0)
- for (i = 0; i < channels; i++)
-- modmap[l2] += cabs (modoutforward[l2 + i]);
-+ modmap[l2] += std::abs(modoutforward[l2 + i]);
- else
- modmap [l2] = modmap[l2 - 1];
-
- // add the heads, subtract the tails
- i = l2 + channels;
-- if (l2 < (unsigned)fftsize - 2)
-- modmap[l2] += cabs( modoutforward [i] );
-+ if (l2 < fftsize - 2)
-+ modmap[l2] += std::abs(modoutforward[i]);
- i = l2 - channels;
- if (l2 >= channels)
-- modmap[l2] -= cabs( modoutforward [i] );
-+ modmap[l2] -= std::abs(modoutforward[i]);
- }
-
- // Normalize the modmap
-- for (l2 = 0; l2 < (unsigned) fftsize; l2++)
-+ for (l2 = 0; l2 < fftsize; l2++)
- modmap[l2] = modmap[l2] / localchannels;
-
- // Do attack/release
-- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-+ for (l2 = 0; l2 < fftsize; l2++) {
- if (modmap [l2] > armodmap[l2])
- armodmap [l2] += (1 - attack) * (modmap[l2] - armodmap[l2]);
- if (modmap [l2] < armodmap[l2])
-@@ -521,8 +520,8 @@ void M_vocoder::generateCycle() {
- }
-
- // multiply the carrier by the modulation map.
-- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
-- carrinbackward[l2] = carroutforward[l2] * armodmap[l2];
-+ for (l2 = 0; l2 < fftsize; l2++) {
-+ carrinbackward[l2] = carroutforward[l2] * (double) armodmap[l2];
- }
-
- // reverse transform to final output, and renormalize by 1/fftsize.
-@@ -532,8 +531,7 @@ void M_vocoder::generateCycle() {
- for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
- offset = l2 + (fftsize/2) - (synthdata->cyclesize / 2);
- data[1][l1][l2]=
-- (creal(carroutbackward[offset]/window[offset])) / (fftsize * 100);
-+ (carroutbackward[offset].real()/window[offset]) / (fftsize * 100);
- };
- };
- }
--
-diff --git a/src/m_vocoder.h b/src/m_vocoder.h
-index 38eac58..32c8521 100644
---- a/src/m_vocoder.h
-+++ b/src/m_vocoder.h
-@@ -1,4 +1,4 @@
--/*
-+/*
- Vocoder - derived from m_delay.cpp
-
- Copyright (C) 2011 Bill Yerazunis <yerazunis@yahoo.com>
-@@ -22,7 +22,9 @@
- #define M_VOCODER_H
-
- #include "module.h"
--#include <complex.h>
-+
-+#include <vector>
-+#include <ccomplex>
- #include <fftw3.h>
-
- #define MODULE_VOCODER_WIDTH 105
-@@ -30,7 +32,7 @@
-
- class M_vocoder : public Module
- {
-- Q_OBJECT
-+ Q_OBJECT
-
- float channels, vcchannels;
- float attack, release;
-@@ -42,21 +44,20 @@ class M_vocoder : public Module
-
- Port *port_M_modulator, *port_M_pitchshift, *port_M_freqshift,
- *port_M_channels, *port_M_carrier;
-+
- Port *port_modfft_out, *port_firstharmonic_out,
-- *port_altmodulator_out,
-- *port_vocoder_out;
-+ *port_altmodulator_out, *port_vocoder_out;
-
-- fftw_plan planmodforward, planmodbackward,
-+ fftw_plan planmodforward, planmodbackward,
- plancarrforward, plancarrbackward;
-
-- fftw_complex *carrinforward, *carroutforward,
-- *carrinbackward, *carroutbackward,
-- *modinforward, *modoutforward,
-- *modinbackward, *modoutbackward;
-+ std::vector<std::complex<double>> carrinforward, carroutforward,
-+ carrinbackward, carroutbackward,
-+ modinforward, modoutforward,
-+ modinbackward, modoutbackward;
-
-- public:
-- int fftsize;
-- float **inModulator, **inPitchShift, **inFreqShift,
-+ unsigned int fftsize;
-+ float **inModulator, **inPitchShift, **inFreqShift,
- **inChannels, **inCarrier;
- // the previous time-based samples, for overlapping
- float **modbuf, **carrbuf;
-@@ -68,10 +69,10 @@ class M_vocoder : public Module
- float *armodmap;
-
- public:
-- float windowcurve (int windowfunc, int len, int elem, float alpha );
-+ float windowcurve (int windowfunc, unsigned int len, int elem, float alpha );
- M_vocoder(QWidget* parent=0, int id = 0);
- ~M_vocoder();
- void generateCycle();
- };
--
-+
- #endif
diff --git a/gnu/packages/patches/audacity-add-include.patch b/gnu/packages/patches/audacity-add-include.patch
new file mode 100644
index 0000000000..a7f27918e7
--- /dev/null
+++ b/gnu/packages/patches/audacity-add-include.patch
@@ -0,0 +1,15 @@
+Without <sys/time.h>, gettimeofday is undefined.
+
+diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp
+index 0187e3962..e15d55f4c 100644
+--- a/src/AudioIO.cpp
++++ b/src/AudioIO.cpp
+@@ -479,6 +479,8 @@ time warp info and AudioIOListener and whether the playback is looped.
+ #include "../lib-src/portmidi/porttime/porttime.h"
+ #include "../lib-src/header-substitutes/allegro.h"
+
++#include <sys/time.h>
++
+ #define MIDI_SLEEP 10 /* milliseconds */
+ // how long do we think the thread that fills MIDI buffers,
+ // if it is separate from the portaudio thread,
diff --git a/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
new file mode 100644
index 0000000000..79655a910b
--- /dev/null
+++ b/gnu/packages/patches/aws-c-event-stream-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,6 +3,10 @@
+ cmake_minimum_required (VERSION 3.1)
+ project (aws-c-event-stream C)
+
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++ set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+ file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-checksums-cmake-prefix.patch b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
new file mode 100644
index 0000000000..f6a5c9ad9c
--- /dev/null
+++ b/gnu/packages/patches/aws-checksums-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,10 @@
+ cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++ set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+ file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/bear-disable-preinstall-tests.patch b/gnu/packages/patches/bear-disable-preinstall-tests.patch
new file mode 100644
index 0000000000..c65095405f
--- /dev/null
+++ b/gnu/packages/patches/bear-disable-preinstall-tests.patch
@@ -0,0 +1,40 @@
+From d7d0cdd48017679e8529f8475d1b9902944cf243 Mon Sep 17 00:00:00 2001
+From: Brett Gilio <brettg@gnu.org>
+Date: Sun, 20 Dec 2020 14:43:30 -0600
+Subject: [PATCH] Disallow Pre-install Checks
+
+---
+ CMakeLists.txt | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 45c6d27..73b4ace 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,10 +58,6 @@ ExternalProject_Add(BearSource
+ -DROOT_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DENABLE_UNIT_TESTS:BOOL=${ENABLE_UNIT_TESTS}
+- TEST_BEFORE_INSTALL
+- 1
+- TEST_COMMAND
+- ctest # or `ctest -T memcheck`
+ )
+
+ # Run the functional tests
+@@ -73,12 +69,8 @@ if (ENABLE_FUNC_TESTS)
+ BearSource
+ CMAKE_CACHE_ARGS
+ -DSTAGED_INSTALL_PREFIX:PATH=${STAGED_INSTALL_PREFIX}
+- TEST_BEFORE_INSTALL
+- 1
+ INSTALL_COMMAND
+ ""
+- TEST_COMMAND
+- ctest --verbose
+ )
+ endif ()
+
+--
+2.29.2
+
diff --git a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
deleted file mode 100644
index 1518df067f..0000000000
--- a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-See: https://bugs.gentoo.org/708350
-Author: Patrick McLean <patrick.mclean@sony.com>
-Date: 2020-02-06 23:06:22 +0000
-diff --git a/coreutils/date.c b/coreutils/date.c
-index 3414d38ae..4ade6abb4 100644
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- time(&ts.tv_sec);
- #endif
- }
-+#if !ENABLE_FEATURE_DATE_NANO
-+ ts.tv_nsec = 0;
-+#endif
- localtime_r(&ts.tv_sec, &tm_time);
-
- /* If date string is given, update tm_time, and maybe set date */
-@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- if (date_str[0] != '@')
- tm_time.tm_isdst = -1;
- ts.tv_sec = validate_tm_time(date_str, &tm_time);
-+ ts.tv_nsec = 0;
-
- /* if setting time, set it */
-- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- bb_perror_msg("can't set date");
- }
- }
-diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
-index 87cf59b3d..dc40d9155 100644
---- a/libbb/missing_syscalls.c
-+++ b/libbb/missing_syscalls.c
-@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
- return syscall(__NR_getsid, pid);
- }
-
--int stime(const time_t *t)
--{
-- struct timeval tv;
-- tv.tv_sec = *t;
-- tv.tv_usec = 0;
-- return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- return syscall(__NR_sethostname, name, len);
-diff --git a/util-linux/rdate.c b/util-linux/rdate.c
-index 70f829e7f..878375d78 100644
---- a/util-linux/rdate.c
-+++ b/util-linux/rdate.c
-@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
- if (!(flags & 2)) { /* no -p (-s may be present) */
- if (time(NULL) == remote_time)
- bb_error_msg("current time matches remote time");
-- else
-- if (stime(&remote_time) < 0)
-+ else {
-+ struct timespec ts;
-+ ts.tv_sec = remote_time;
-+ ts.tv_nsec = 0;
-+ if (clock_settime(CLOCK_REALTIME, &ts) < 0)
- bb_perror_msg_and_die("can't set time of day");
-+ }
- }
-
- if (flags != 1) /* not lone -s */
diff --git a/gnu/packages/patches/cl-asdf-config-directories.patch b/gnu/packages/patches/cl-asdf-config-directories.patch
new file mode 100644
index 0000000000..2b1b51932c
--- /dev/null
+++ b/gnu/packages/patches/cl-asdf-config-directories.patch
@@ -0,0 +1,44 @@
+Search for ASDF configuration files first in user directories, and then in
+Guix profiles.
+
+diff -ru a/asdf-3.3.4.lisp b/asdf-3.3.4.lisp
+--- a/asdf-3.3.4.lisp 2020-02-14 20:16:22.000000000 +0100
++++ b/asdf-3.3.4.lisp 2020-12-05 11:09:56.066229482 +0100
+@@ -12535,10 +12535,15 @@
+ (find-preferred-file (system-config-pathnames *output-translations-file*)
+ :direction direction))
+ (defun user-output-translations-directory-pathname (&key (direction :input))
+- (xdg-config-pathname *output-translations-directory* direction))
+- (defun system-output-translations-directory-pathname (&key (direction :input))
+- (find-preferred-file (system-config-pathnames *output-translations-directory*)
++ (find-preferred-file (list (xdg-config-home *output-translations-directory*))
+ :direction direction))
++ (defun system-output-translations-directory-pathname (&key (direction :input))
++ `(:output-translations
++ ,@(loop :for dir :in (filter-pathname-set
++ (xdg-config-dirs
++ "common-lisp/asdf-output-translations.conf.d/"))
++ :collect `(:include ,dir))
++ :inherit-configuration))
+ (defun environment-output-translations ()
+ (getenv "ASDF_OUTPUT_TRANSLATIONS"))
+
+@@ -12921,10 +12926,15 @@
+ (find-preferred-file (system-config-pathnames *source-registry-file*)
+ :direction direction))
+ (defun user-source-registry-directory (&key (direction :input))
+- (xdg-config-pathname *source-registry-directory* direction))
+- (defun system-source-registry-directory (&key (direction :input))
+- (find-preferred-file (system-config-pathnames *source-registry-directory*)
++ (find-preferred-file (list (xdg-config-home *source-registry-directory*))
+ :direction direction))
++ (defun system-source-registry-directory (&key (direction :input))
++ `(:source-registry
++ ,@(loop :for dir :in (filter-pathname-set
++ (xdg-config-dirs
++ "common-lisp/source-registry.conf.d/"))
++ :collect `(:include ,dir))
++ :inherit-configuration))
+ (defun environment-source-registry ()
+ (getenv "CL_SOURCE_REGISTRY"))
+
diff --git a/gnu/packages/patches/clisp-remove-failing-test.patch b/gnu/packages/patches/clisp-remove-failing-test.patch
deleted file mode 100644
index e44ce80f74..0000000000
--- a/gnu/packages/patches/clisp-remove-failing-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-This test doesn't ever complete or timeout
-
----
- tests/socket.tst | 24 ------------------------
- 1 file changed, 24 deletions(-)
-
-diff --git a/tests/socket.tst b/tests/socket.tst
-index 93c6310..1d976ff 100644
---- a/tests/socket.tst
-+++ b/tests/socket.tst
-@@ -551,30 +551,6 @@ T
- interfaces))
- ("0.0.0.0" "127.0.0.1" "0.0.0.0" "127.0.0.1")
-
--(multiple-value-bind (run args) (cmd-args)
-- (let ((se (socket:socket-server)))
-- (ext:run-program run :arguments (append args (list "-q" "-q" "-x" (format nil "(close (socket:socket-connect ~D))" (socket:socket-server-port se))))
-- :wait nil :input nil :output nil)
-- (unwind-protect
-- (with-open-stream (so (socket:socket-accept se))
-- (list
-- (socket:socket-status so)
-- (write-line "foo" so)
-- (socket:socket-status so)
-- #+macos (handler-case (read-char so)
-- (end-of-file (c)
-- (princ 'read-char) (princ-error c) t))
-- #-macos (check-os-error (read-char so) (:ECONNRESET 104))
-- (null (member (socket:socket-status so) '(:EOF :APPEND)))
-- #+macos (string= (write-line "bar" so) "bar")
-- #-macos (check-os-error (write-line "bar" so) (:EPIPE 32))
-- (null (member (socket:socket-status so) '(:EOF :APPEND)))
-- (handler-case (read-char so)
-- (end-of-file (c)
-- (princ 'read-char) (princ-error c) 'end-of-file))))
-- (socket:socket-server-close se))))
--(:OUTPUT "foo" :OUTPUT T NIL T NIL END-OF-FILE)
--
- ;; https://sourceforge.net/p/clisp/feature-requests/46/
- (check-os-error (socket:socket-connect 0)
- #-(or win32 macos) (:ECONNREFUSED 111)
---
-
diff --git a/gnu/packages/patches/combinatorial-blas-awpm.patch b/gnu/packages/patches/combinatorial-blas-awpm.patch
index 86d4ab2dcf..d44a6f28ba 100644
--- a/gnu/packages/patches/combinatorial-blas-awpm.patch
+++ b/gnu/packages/patches/combinatorial-blas-awpm.patch
@@ -1,4 +1,6 @@
-Install BipartiteMatchings headers for SuperLU_DIST.
+Install BipartiteMatchings headers for SuperLU_DIST. Removes global variables
+and code related to performance measurement that is not useful when used in a
+library setting.
--- a/BipartiteMatchings/ApproxWeightPerfectMatching.h
+++ b/BipartiteMatchings/ApproxWeightPerfectMatching.h
@@ -11,6 +13,167 @@ Install BipartiteMatchings headers for SuperLU_DIST.
#include "BPMaximalMatching.h"
#include "BPMaximumMatching.h"
#include <parallel/algorithm>
+@@ -39,9 +39,6 @@
+ std::shared_ptr<CommGrid> commGrid;
+ };
+
+-double t1Comp, t1Comm, t2Comp, t2Comm, t3Comp, t3Comm, t4Comp, t4Comm, t5Comp, t5Comm, tUpdateMateComp;
+-
+-
+ template <class IT, class NT>
+ std::vector<std::tuple<IT,IT,NT>> ExchangeData(std::vector<std::vector<std::tuple<IT,IT,NT>>> & tempTuples, MPI_Comm World)
+ {
+@@ -391,7 +388,7 @@
+
+
+
+-int ThreadBuffLenForBinning(int itemsize, int nbins)
++inline int ThreadBuffLenForBinning(int itemsize, int nbins)
+ {
+ // 1MB shared cache (per 2 cores) in KNL
+ #ifndef L2_CACHE_SIZE
+@@ -417,7 +414,6 @@
+
+
+
+- double tstart = MPI_Wtime();
+
+
+ MPI_Comm World = param.commGrid->GetWorld();
+@@ -528,9 +524,6 @@
+ }
+ }
+
+- t1Comp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+-
+ // Step 3: Communicate data
+
+ std::vector<int> recvcnt (param.nprocs);
+@@ -548,7 +541,6 @@
+ std::vector< std::tuple<IT,IT,NT> > recvTuples1(totrecv);
+ MPI_Alltoallv(sendTuples.data(), sendcnt.data(), sdispls.data(), MPI_tuple, recvTuples1.data(), recvcnt.data(), rdispls.data(), MPI_tuple, World);
+ MPI_Type_free(&MPI_tuple);
+- t1Comm = MPI_Wtime() - tstart;
+ return recvTuples1;
+ }
+
+@@ -730,9 +722,6 @@
+
+ // Step 4: Communicate data
+
+- t2Comp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+-
+ std::vector<int> recvcnt (param.nprocs);
+ std::vector<int> rdispls (param.nprocs, 0);
+
+@@ -748,7 +737,6 @@
+ std::vector< std::tuple<IT,IT,IT,NT> > recvTuples1(totrecv);
+ MPI_Alltoallv(sendTuples.data(), sendcnt.data(), sdispls.data(), MPI_tuple, recvTuples1.data(), recvcnt.data(), rdispls.data(), MPI_tuple, World);
+ MPI_Type_free(&MPI_tuple);
+- t2Comm = MPI_Wtime() - tstart;
+ return recvTuples1;
+ }
+
+@@ -836,7 +824,6 @@
+ param.myrank = myrank;
+ param.commGrid = commGrid;
+
+- double t1CompAll = 0, t1CommAll = 0, t2CompAll = 0, t2CommAll = 0, t3CompAll = 0, t3CommAll = 0, t4CompAll = 0, t4CommAll = 0, t5CompAll = 0, t5CommAll = 0, tUpdateMateCompAll = 0, tUpdateWeightAll = 0;
+
+ // -----------------------------------------------------------
+ // replicate mate vectors for mateCol2Row
+@@ -975,11 +962,7 @@
+ }
+
+ //vector< tuple<IT,IT,IT, NT> >().swap(recvTuples1);
+- double t3Comp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+ recvTuples1 = ExchangeData1(tempTuples1, World);
+- double t3Comm = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+
+ std::vector<std::tuple<IT,IT,IT,IT, NT>> bestTuplesPhase4 (lncol);
+ // we could have used lnrow in both bestTuplesPhase3 and bestTuplesPhase4
+@@ -1041,14 +1024,9 @@
+
+
+ //vector< tuple<IT,IT,IT, NT> >().swap(recvTuples1);
+- double t4Comp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+
+ std::vector<std::tuple<IT,IT,IT,IT>> recvWinnerTuples = ExchangeData1(winnerTuples, World);
+
+- double t4Comm = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+-
+ // at the owner of (mj,j)
+ std::vector<std::tuple<IT,IT>> rowBcastTuples(recvWinnerTuples.size()); //(mi,mj)
+ std::vector<std::tuple<IT,IT>> colBcastTuples(recvWinnerTuples.size()); //(j,i)
+@@ -1065,15 +1043,10 @@
+ colBcastTuples[k] = std::make_tuple(j,i);
+ rowBcastTuples[k] = std::make_tuple(mj,mi);
+ }
+- double t5Comp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+
+ std::vector<std::tuple<IT,IT>> updatedR2C = MateBcast(rowBcastTuples, RowWorld);
+ std::vector<std::tuple<IT,IT>> updatedC2R = MateBcast(colBcastTuples, ColWorld);
+
+- double t5Comm = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+-
+ #ifdef THREADED
+ #pragma omp parallel for
+ #endif
+@@ -1095,13 +1068,9 @@
+ }
+
+
+- double tUpdateMateComp = MPI_Wtime() - tstart;
+- tstart = MPI_Wtime();
+ // update weights of matched edges
+ // we can do better than this since we are doing sparse updates
+ ReplicateMateWeights(param, dcsc, colptr, RepMateC2R, RepMateWR2C, RepMateWC2R);
+- double tUpdateWeight = MPI_Wtime() - tstart;
+-
+
+ weightPrev = weightCur;
+ weightCur = MatchingWeight(RepMateWC2R, RowWorld, minw);
+@@ -1110,32 +1079,8 @@
+ //UpdateMatching(mateRow2Col, mateCol2Row, RepMateR2C, RepMateC2R);
+ //CheckMatching(mateRow2Col,mateCol2Row);
+
+- if(myrank==0)
+- {
+- std::cout << t1Comp << " " << t1Comm << " "<< t2Comp << " " << t2Comm << " " << t3Comp << " " << t3Comm << " " << t4Comp << " " << t4Comm << " " << t5Comp << " " << t5Comm << " " << tUpdateMateComp << " " << tUpdateWeight << std::endl;
+-
+- t1CompAll += t1Comp;
+- t1CommAll += t1Comm;
+- t2CompAll += t2Comp;
+- t2CommAll += t2Comm;
+- t3CompAll += t3Comp;
+- t3CommAll += t3Comm;
+- t4CompAll += t4Comp;
+- t4CommAll += t4Comm;
+- t5CompAll += t5Comp;
+- t5CommAll += t5Comm;
+- tUpdateMateCompAll += tUpdateMateComp;
+- tUpdateWeightAll += tUpdateWeight;
+-
+- }
+ }
+
+- if(myrank==0)
+- {
+- std::cout << "=========== overal timing ==========" << std::endl;
+- std::cout << t1CompAll << " " << t1CommAll << " " << t2CompAll << " " << t2CommAll << " " << t3CompAll << " " << t3CommAll << " " << t4CompAll << " " << t4CommAll << " " << t5CompAll << " " << t5CommAll << " " << tUpdateMateCompAll << " " << tUpdateWeightAll << std::endl;
+- }
+-
+ // update the distributed mate vectors from replicated mate vectors
+ UpdateMatching(mateRow2Col, mateCol2Row, RepMateR2C, RepMateC2R);
+ //weightCur = MatchingWeight(RepMateWC2R, RowWorld);
--- a/BipartiteMatchings/BPMaximalMatching.h
+++ b/BipartiteMatchings/BPMaximalMatching.h
@@ -1,7 +1,7 @@
@@ -22,6 +185,33 @@ Install BipartiteMatchings headers for SuperLU_DIST.
#include <iostream>
#include <functional>
#include <algorithm>
+@@ -14,8 +14,6 @@
+ #define GREEDY 1
+ #define KARP_SIPSER 2
+ #define DMD 3
+-MTRand GlobalMT(123); // for reproducible result
+-double tTotalMaximal;
+
+ namespace combblas {
+
+@@ -25,7 +25,7 @@
+ void MaximalMatching(Par_DCSC_Bool & A, Par_DCSC_Bool & AT, FullyDistVec<IT, IT>& mateRow2Col,
+ FullyDistVec<IT, IT>& mateCol2Row, FullyDistVec<IT, IT>& degColRecv, int type, bool rand=true)
+ {
+-
++ static MTRand GlobalMT(123); // for reproducible result
+ typedef VertexTypeML < IT, IT> VertexType;
+ int nprocs, myrank;
+ MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
+@@ -354,8 +354,6 @@
+
+ }
+
+- tTotalMaximal = MPI_Wtime() - tStart;
+-
+ IT cardinality = mateRow2Col.Count([](IT mate){return mate!=-1;});
+ std::vector<double> totalTimes(timing[0].size(),0);
+ for(int i=0; i<timing.size(); i++)
--- a/BipartiteMatchings/BPMaximumMatching.h
+++ b/BipartiteMatchings/BPMaximumMatching.h
@@ -1,7 +1,7 @@
@@ -33,6 +223,32 @@ Install BipartiteMatchings headers for SuperLU_DIST.
#include <mpi.h>
#include <sys/time.h>
#include <iostream>
+@@ -11,7 +11,6 @@
+ #include <string>
+ #include <sstream>
+ #include "MatchingDefs.h"
+-double tTotalMaximum;
+
+ namespace combblas {
+
+@@ -231,7 +231,7 @@
+ void maximumMatching(SpParMat < IT, NT, DER > & A, FullyDistVec<IT, IT>& mateRow2Col,
+ FullyDistVec<IT, IT>& mateCol2Row, bool prune=true, bool randMM = false, bool maximizeWeight = false)
+ {
+-
++ static MTRand GlobalMT(123); // for reproducible result
+ typedef VertexTypeMM <IT> VertexType;
+
+ int nthreads=1;
+@@ -420,8 +420,6 @@
+
+ MPI_Win_free(&winLeaves);
+
+- tTotalMaximum = MPI_Wtime() - tstart;
+-
+ //isMaximalmatching(A, mateRow2Col, mateCol2Row, unmatchedRow, unmatchedCol);
+ //isMatching(mateCol2Row, mateRow2Col); //todo there is a better way to check this
+
--- a/BipartiteMatchings/MatchingDefs.h
+++ b/BipartiteMatchings/MatchingDefs.h
@@ -9,7 +9,7 @@
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
index 7079fa8c3c..e4f660000d 100644
--- a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
+++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
@@ -54,7 +54,7 @@ index 89e25c6..f940d47 100644
@@ -43,7 +43,6 @@ setup(
"privy>=6.0,<7",
"keyring>=15.1.0",
- "keyrings.alt>=3.1,<4",
+ "keyrings.alt>=3.1,<5",
- "sentry_sdk>=0.3,<1",
],
extras_require={
diff --git a/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch b/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch
deleted file mode 100644
index 6c49bdcdde..0000000000
--- a/gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix completion for R5RS Scheme.
-See https://github.com/ashinn/scheme-complete/issues/1
-
---- scheme-complete-master/scheme-complete.el.orig 2015-12-25 21:59:09.896909029 +0100
-+++ scheme-complete-master/scheme-complete.el 2015-12-25 21:59:17.924993998 +0100
-@@ -591,7 +591,7 @@
- '((exact->inexact (lambda (z) z))
- (inexact->exact (lambda (z) z)))
- (mapcar #'(lambda (x)
-- (list x (scheme-env-lookup *scheme-r7rs-info* x)))
-+ (scheme-env-lookup *scheme-r7rs-info* x))
- *scheme-r5rs-bindings*))))
- *scheme-r5rs-info*)
-
diff --git a/gnu/packages/patches/ghostscript-CVE-2020-15900.patch b/gnu/packages/patches/ghostscript-CVE-2020-15900.patch
new file mode 100644
index 0000000000..b6658d7c7f
--- /dev/null
+++ b/gnu/packages/patches/ghostscript-CVE-2020-15900.patch
@@ -0,0 +1,36 @@
+Fix CVE-2020-15900.
+
+https://cve.circl.lu/cve/CVE-2020-15900
+https://artifex.com/security-advisories/CVE-2020-15900
+
+Taken from upstream:
+https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d499272b95a6b890a1397e11d20937de000d31b
+
+diff --git a/psi/zstring.c b/psi/zstring.c
+--- a/psi/zstring.c
++++ b/psi/zstring.c
+@@ -142,13 +142,18 @@ search_impl(i_ctx_t *i_ctx_p, bool forward)
+ return 0;
+ found:
+ op->tas.type_attrs = op1->tas.type_attrs;
+- op->value.bytes = ptr;
+- r_set_size(op, size);
++ op->value.bytes = ptr; /* match */
++ op->tas.rsize = size; /* match */
+ push(2);
+- op[-1] = *op1;
+- r_set_size(op - 1, ptr - op[-1].value.bytes);
+- op1->value.bytes = ptr + size;
+- r_set_size(op1, count + (!forward ? (size - 1) : 0));
++ op[-1] = *op1; /* pre */
++ op[-3].value.bytes = ptr + size; /* post */
++ if (forward) {
++ op[-1].tas.rsize = ptr - op[-1].value.bytes; /* pre */
++ op[-3].tas.rsize = count; /* post */
++ } else {
++ op[-1].tas.rsize = count; /* pre */
++ op[-3].tas.rsize -= count + size; /* post */
++ }
+ make_true(op);
+ return 0;
+ }
diff --git a/gnu/packages/patches/ghostscript-freetype-compat.patch b/gnu/packages/patches/ghostscript-freetype-compat.patch
new file mode 100644
index 0000000000..cc225b5ad6
--- /dev/null
+++ b/gnu/packages/patches/ghostscript-freetype-compat.patch
@@ -0,0 +1,35 @@
+Fix build with FreeType 2.10.3 and newer.
+
+Taken from upstream:
+https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db7115fbe9623f989bfb47bbade
+
+diff --git a/base/fapi_ft.c b/base/fapi_ft.c
+--- a/base/fapi_ft.c
++++ b/base/fapi_ft.c
+@@ -125,7 +125,7 @@ static void
+ delete_inc_int_info(gs_fapi_server * a_server,
+ FT_IncrementalRec * a_inc_int_info);
+
+-FT_CALLBACK_DEF(void *)
++static void *
+ FF_alloc(FT_Memory memory, long size)
+ {
+ gs_memory_t *mem = (gs_memory_t *) memory->user;
+@@ -133,7 +133,7 @@ FF_alloc(FT_Memory memory, long size)
+ return (gs_malloc(mem, size, 1, "FF_alloc"));
+ }
+
+-FT_CALLBACK_DEF(void *)
++static void *
+ FF_realloc(FT_Memory memory, long cur_size, long new_size, void *block)
+ {
+ gs_memory_t *mem = (gs_memory_t *) memory->user;
+@@ -153,7 +153,7 @@ FT_CALLBACK_DEF(void *)
+ return (tmp);
+ }
+
+-FT_CALLBACK_DEF(void)
++static void
+ FF_free(FT_Memory memory, void *block)
+ {
+ gs_memory_t *mem = (gs_memory_t *) memory->user;
diff --git a/gnu/packages/patches/gpsbabel-fix-i686-test.patch b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
new file mode 100644
index 0000000000..5ba0305113
--- /dev/null
+++ b/gnu/packages/patches/gpsbabel-fix-i686-test.patch
@@ -0,0 +1,46 @@
+https://github.com/gpsbabel/gpsbabel/commit/465a74194d53acea5c8d74c5cf3cb2940546ec92.patch
+Can be removed next release
+
+From 465a74194d53acea5c8d74c5cf3cb2940546ec92 Mon Sep 17 00:00:00 2001
+From: tsteven4 <13596209+tsteven4@users.noreply.github.com>
+Date: Fri, 7 Aug 2020 11:29:22 -0600
+Subject: [PATCH] fix i386 regression error with engima. (#620)
+
+this was motivated by the test failure seen at
+https://buildd.debian.org/status/fetch.php?pkg=gpsbabel&arch=i386&ver=1.7.0%2Bds-4&stamp=1596794554&raw=0
+---
+ enigma.cc | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/enigma.cc b/enigma.cc
+index 850f27b4e..32fea92d6 100644
+--- a/enigma.cc
++++ b/enigma.cc
+@@ -21,9 +21,16 @@
+
+ */
+
++#include <cmath> // for fabs, lround
++#include <cstdint> // for int32_t, uint8_t, uint32_t
++#include <cstdlib> // for abs
++#include <cstring> // for strlen, memcpy, memset
++
++#include <QtCore/QString> // for QString
++
+ #include "defs.h"
+-#include <cmath>
+-#include <cstdlib>
++#include "gbfile.h" // for gbfclose, gbfopen_le, gbfread, gbfwrite, gbfile
++
+
+ #define MYNAME "Enigma binary route and waypoint file format"
+
+@@ -177,7 +184,7 @@ enigma_waypt_disp(const Waypoint* wpt)
+ le_write32(&ewpt.longitude, decToEnigmaPosition(wpt->longitude));
+ ewpt.waypoint_type = WTYPE_WAYPOINT;
+ if (wpt->altitude != unknown_alt) {
+- le_write32(&ewpt.data.wp_altitude, METERS_TO_FEET(wpt->altitude) + 1000);
++ le_write32(&ewpt.data.wp_altitude, lround(METERS_TO_FEET(wpt->altitude)) + 1000);
+ }
+ if (wpt->shortname != nullptr) {
+ ewpt.shortname_len = (uint8_t) min(6, strlen(CSTRc(wpt->shortname)));
diff --git a/gnu/packages/patches/gpsbabel-minizip.patch b/gnu/packages/patches/gpsbabel-minizip.patch
deleted file mode 100644
index 8f3bb36f57..0000000000
--- a/gnu/packages/patches/gpsbabel-minizip.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Patch taken from https://sources.debian.org/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip.
-
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -120,7 +120,7 @@ LIBOBJS = queue.o route.o waypt.o filter
- src/core/usasciicodec.o\
- src/core/ziparchive.o \
- $(GARMIN) $(JEEPS) $(SHAPE) @ZLIB@ $(FMTS) $(FILTERS)
--OBJS = main.o globals.o $(LIBOBJS) @FILEINFO@
-+OBJS = main.o globals.o $(MINIZIP) $(LIBOBJS) @FILEINFO@
-
- DEPFILES = $(OBJS:.o=.d)
- \ No newline at end of file
diff --git a/gnu/packages/patches/gpsbabel-qstring.patch b/gnu/packages/patches/gpsbabel-qstring.patch
deleted file mode 100644
index 8ba1a7213b..0000000000
--- a/gnu/packages/patches/gpsbabel-qstring.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Extracted from following patch of gpsbabel:
-https://github.com/gpsbabel/gpsbabel/commit/604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3
-
-From 604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 Mon Sep 17 00:00:00 2001
-From: Harel Mazor <harel.mazor@gmail.com>
-Date: Tue, 24 Jan 2017 00:35:04 +0200
-Subject: [PATCH] Added geojson read capablity, moved magic strings to
- constants, fixed windows compilation issues.
-
---- a/tef_xml.cc
-+++ b/tef_xml.cc
-@@ -72,11 +72,11 @@ tef_start(xg_string args, const QXmlStreamAttributes* attrv)
- bool valid = false;
-
- foreach(QXmlStreamAttribute attr, *attrv) {
-- if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) {
-- if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) {
-+ if (attr.name().compare(QString("Comment"), Qt::CaseInsensitive) == 0) {
-+ if (attr.value().compare(QString("TourExchangeFormat"), Qt::CaseInsensitive) == 0) {
- valid = true;
- }
-- } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("Version"), Qt::CaseInsensitive) == 0) {
- version = attr.value().toString().toDouble();
- }
- }
-@@ -95,9 +95,9 @@ tef_header(xg_string args, const QXmlStreamAttributes* attrv)
- {
- route = route_head_alloc();
- foreach(QXmlStreamAttribute attr, *attrv) {
-- if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) {
-+ if (attr.name().compare(QString("Name"), Qt::CaseInsensitive) == 0) {
- route->rte_name = attr.value().toString().trimmed();
-- } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("Software"), Qt::CaseInsensitive) == 0) {
- route->rte_desc = attr.value().toString().trimmed();
- }
- }
-@@ -248,20 +248,20 @@ tef_item_start(xg_string args, const QXmlStreamAttributes* attrv)
- QString attrstr = attr.value().toString();
- QByteArray attrtext = attrstr.toUtf8();
-
-- if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) {
-+ if (attr.name().compare(QString("SegDescription"), Qt::CaseInsensitive) == 0) {
- wpt_tmp->shortname = attrstr.trimmed();
-- } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("PointDescription"), Qt::CaseInsensitive) == 0) {
- wpt_tmp->description = attrstr.trimmed();
-- } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 &&
-- attr.value().compare("true", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("ViaStation"), Qt::CaseInsensitive) == 0 &&
-+ attr.value().compare(QString("true"), Qt::CaseInsensitive) == 0) {
- wpt_tmp->wpt_flags.fmt_use = 1; /* only a flag */
-
- /* new in TEF V2 */
-- } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("Instruction"), Qt::CaseInsensitive) == 0) {
- wpt_tmp->description = attrstr.trimmed();
-- } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("Altitude"), Qt::CaseInsensitive) == 0) {
- wpt_tmp->altitude = attrstr.toDouble();
-- } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) {
-+ } else if (attr.name().compare(QString("TimeStamp"), Qt::CaseInsensitive) == 0) {
- /* nothing for the moment */
- }
- }
---
-2.16.1
-
diff --git a/gnu/packages/patches/hplip-fix-bug-1898438.patch b/gnu/packages/patches/hplip-fix-bug-1898438.patch
deleted file mode 100644
index 7c095f9b2a..0000000000
--- a/gnu/packages/patches/hplip-fix-bug-1898438.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Sun, 04 Oct 2020 13:28:49 +0200
-Subject: [PATCH] gnu: hplip: Fix non-network builds (bug #1898438)
-
-Reported as <https://bugs.launchpad.net/hplip/+bug/1898438>.
-
-diff -Naur a/scan/sane/hpaio.c b/scan/sane/hpaio.c
---- a/scan/sane/hpaio.c 1970-01-01 01:00:01.000000000 +0100
-+++ b/scan/sane/hpaio.c 2020-10-04 13:26:34.665244052 +0200
-@@ -36,7 +36,9 @@
- #include <string.h>
- #include <cups/cups.h>
- #include "hpmud.h"
-+#ifdef HAVE_LIBNETSNMP
- #include "avahiDiscovery.h"
-+#endif
- #include "hp_ipp.h"
- #include "soap.h"
- #include "soapht.h"
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index 9a6e40df4b..3f16880260 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 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+-echo -n 0d07b74cb66b94018e3d7f11531f95c76a955e0016a3c401241d0d85062ae7ce 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 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
++# echo -n 0d07b74cb66b94018e3d7f11531f95c76a955e0016a3c401241d0d85062ae7ce 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/libexpected-nofetch.patch b/gnu/packages/patches/libexpected-nofetch.patch
new file mode 100644
index 0000000000..e1d104f6f4
--- /dev/null
+++ b/gnu/packages/patches/libexpected-nofetch.patch
@@ -0,0 +1,27 @@
+Description: Disable FetchContent module
+ No online operations are permitted during build package.
+Author: Nicholas Guriev <guriev-ns@ya.ru>
+Last-Update: Wed, 22 Jan 2020 21:51:33 +0300
+
+Modified by Brett Gilio <brettg@gnu.org> on Dec 5, 2020
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,16 +4,7 @@ project(tl-expected VERSION 1.0.0 LANGUAGES CXX)
+
+ option(EXPECTED_ENABLE_TESTS "Enable tests." ON)
+
+-include(FetchContent)
+-FetchContent_Declare(
+- tl_cmake
+- GIT_REPOSITORY https://github.com/TartanLlama/tl-cmake.git
+-)
+-FetchContent_GetProperties(tl_cmake)
+-if(NOT tl_cmake_POPULATED)
+- FetchContent_Populate(tl_cmake)
+- set(CMAKE_MODULE_PATH ${tl_cmake_SOURCE_DIR} ${CMAKE_MODULE_PATH})
+-endif()
++set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/tl-cmake ${CMAKE_MODULE_PATH})
+ include(add-tl)
+
+ tl_add_library(expected SOURCES
diff --git a/gnu/packages/patches/libffi-float128-powerpc64le.patch b/gnu/packages/patches/libffi-float128-powerpc64le.patch
new file mode 100644
index 0000000000..4fd32b0102
--- /dev/null
+++ b/gnu/packages/patches/libffi-float128-powerpc64le.patch
@@ -0,0 +1,58 @@
+From de93adfb6f48100946bba2c3abad2a77a0cfde0b Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 24 Nov 2019 09:52:01 +0100
+Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7
+
+This is a patch pulled down from the following:
+https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+
+This issue is being hit on OpenBMC code when pulling the latest
+libffi tag and building on a P8 ppc64le machine. I verified this
+patch fixes the issue we are seeing.
+
+Below is the original commit message:
+
+Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
+fails on:
+
+In file included from ../src/powerpc/ffi.c:33:0:
+../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
+ typedef _Float128 float128;
+ ^~~~~~~~~
+
+Fix this build failure by checking for __HAVE_FLOAT128 before using
+_Float128, as _Float128 is enabled only on specific conditions, see
+output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
+
+ /* Defined to 1 if the current compiler invocation provides a
+ floating-point type with the IEEE 754 binary128 format, and this glibc
+ includes corresponding *f128 interfaces for it. */
+ #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
+ && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+ #endif
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+ src/powerpc/ffi_powerpc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 8e2f2f0e..960a5c42 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -57,7 +57,7 @@ typedef union
+ double d;
+ } ffi_dblfl;
+
+-#if defined(__FLOAT128_TYPE__)
++#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
+ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
diff --git a/gnu/packages/patches/libssh2-CVE-2019-17498.patch b/gnu/packages/patches/libssh2-CVE-2019-17498.patch
new file mode 100644
index 0000000000..6f69e562e2
--- /dev/null
+++ b/gnu/packages/patches/libssh2-CVE-2019-17498.patch
@@ -0,0 +1,126 @@
+https://github.com/libssh2/libssh2/commit/dedcbd106f8e52d5586b0205bc7677e4c9868f9c.patch
+
+From dedcbd106f8e52d5586b0205bc7677e4c9868f9c Mon Sep 17 00:00:00 2001
+From: Will Cosgrove <will@panic.com>
+Date: Fri, 30 Aug 2019 09:57:38 -0700
+Subject: [PATCH] packet.c: improve message parsing (#402)
+
+* packet.c: improve parsing of packets
+
+file: packet.c
+
+notes:
+Use _libssh2_get_string API in SSH_MSG_DEBUG/SSH_MSG_DISCONNECT. Additional uint32 bounds check in SSH_MSG_GLOBAL_REQUEST.
+---
+ src/packet.c | 68 ++++++++++++++++++++++------------------------------
+ 1 file changed, 29 insertions(+), 39 deletions(-)
+
+diff --git a/src/packet.c b/src/packet.c
+index 38ab62944..2e01bfc5d 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -419,8 +419,8 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+ size_t datalen, int macstate)
+ {
+ int rc = 0;
+- char *message = NULL;
+- char *language = NULL;
++ unsigned char *message = NULL;
++ unsigned char *language = NULL;
+ size_t message_len = 0;
+ size_t language_len = 0;
+ LIBSSH2_CHANNEL *channelp = NULL;
+@@ -472,33 +472,23 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+
+ case SSH_MSG_DISCONNECT:
+ if(datalen >= 5) {
+- size_t reason = _libssh2_ntohu32(data + 1);
++ uint32_t reason = 0;
++ struct string_buf buf;
++ buf.data = (unsigned char *)data;
++ buf.dataptr = buf.data;
++ buf.len = datalen;
++ buf.dataptr++; /* advance past type */
+
+- if(datalen >= 9) {
+- message_len = _libssh2_ntohu32(data + 5);
++ _libssh2_get_u32(&buf, &reason);
++ _libssh2_get_string(&buf, &message, &message_len);
++ _libssh2_get_string(&buf, &language, &language_len);
+
+- if(message_len < datalen-13) {
+- /* 9 = packet_type(1) + reason(4) + message_len(4) */
+- message = (char *) data + 9;
+-
+- language_len =
+- _libssh2_ntohu32(data + 9 + message_len);
+- language = (char *) data + 9 + message_len + 4;
+-
+- if(language_len > (datalen-13-message_len)) {
+- /* bad input, clear info */
+- language = message = NULL;
+- language_len = message_len = 0;
+- }
+- }
+- else
+- /* bad size, clear it */
+- message_len = 0;
+- }
+ if(session->ssh_msg_disconnect) {
+- LIBSSH2_DISCONNECT(session, reason, message,
+- message_len, language, language_len);
++ LIBSSH2_DISCONNECT(session, reason, (const char *)message,
++ message_len, (const char *)language,
++ language_len);
+ }
++
+ _libssh2_debug(session, LIBSSH2_TRACE_TRANS,
+ "Disconnect(%d): %s(%s)", reason,
+ message, language);
+@@ -539,24 +529,24 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+ int always_display = data[1];
+
+ if(datalen >= 6) {
+- message_len = _libssh2_ntohu32(data + 2);
+-
+- if(message_len <= (datalen - 10)) {
+- /* 6 = packet_type(1) + display(1) + message_len(4) */
+- message = (char *) data + 6;
+- language_len = _libssh2_ntohu32(data + 6 +
+- message_len);
+-
+- if(language_len <= (datalen - 10 - message_len))
+- language = (char *) data + 10 + message_len;
+- }
++ struct string_buf buf;
++ buf.data = (unsigned char *)data;
++ buf.dataptr = buf.data;
++ buf.len = datalen;
++ buf.dataptr += 2; /* advance past type & always display */
++
++ _libssh2_get_string(&buf, &message, &message_len);
++ _libssh2_get_string(&buf, &language, &language_len);
+ }
+
+ if(session->ssh_msg_debug) {
+- LIBSSH2_DEBUG(session, always_display, message,
+- message_len, language, language_len);
++ LIBSSH2_DEBUG(session, always_display,
++ (const char *)message,
++ message_len, (const char *)language,
++ language_len);
+ }
+ }
++
+ /*
+ * _libssh2_debug will actually truncate this for us so
+ * that it's not an inordinate about of data
+@@ -579,7 +569,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+ uint32_t len = 0;
+ unsigned char want_reply = 0;
+ len = _libssh2_ntohu32(data + 1);
+- if(datalen >= (6 + len)) {
++ if((len <= (UINT_MAX - 6)) && (datalen >= (6 + len))) {
+ want_reply = data[5 + len];
+ _libssh2_debug(session,
+ LIBSSH2_TRACE_CONN,
diff --git a/gnu/packages/patches/minimap2-aarch64-support.patch b/gnu/packages/patches/minimap2-aarch64-support.patch
new file mode 100644
index 0000000000..95db8579d6
--- /dev/null
+++ b/gnu/packages/patches/minimap2-aarch64-support.patch
@@ -0,0 +1,52 @@
+This patch should be removed with the next release. There is WIP upstream
+support for proper support of more architectures, including aarch64 and powerpc64le.
+
+diff --git a/Makefile b/Makefile
+index ed341f6..94dbd85 100644
+--- a/Makefile
++++ b/Makefile
+@@ -6,20 +6,18 @@ PROG= minimap2
+ PROG_EXTRA= sdust minimap2-lite
+ LIBS= -lm -lz -lpthread
+
+-ifeq ($(arm_neon),) # if arm_neon is not defined
+-ifeq ($(sse2only),) # if sse2only is not defined
+- OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
+-else # if sse2only is defined
+- OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
+-endif
+-else # if arm_neon is defined
++ifneq ($(arm_neon),) # if arm_neon is defined
+ OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
+- INCLUDES+=-Isse2neon
+-ifeq ($(aarch64),) #if aarch64 is not defined
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -mfpu=neon -fsigned-char
+-else #if aarch64 is defined
++ INCLUDES+=-Isse2neon
++else ifneq ($(aarch64),) #if aarch64 is defined
++ OBJS+=ksw2_extz2_neon.o ksw2_extd2_neon.o ksw2_exts2_neon.o
+ CFLAGS+=-D_FILE_OFFSET_BITS=64 -fsigned-char
+-endif
++ INCLUDES+=-Isse2neon
++else ifneq ($(sse2only),) # if sse2only is defined
++ OBJS+=ksw2_extz2_sse.o ksw2_extd2_sse.o ksw2_exts2_sse.o
++else # none of the above
++ OBJS+=ksw2_extz2_sse41.o ksw2_extd2_sse41.o ksw2_exts2_sse41.o ksw2_extz2_sse2.o ksw2_extd2_sse2.o ksw2_exts2_sse2.o ksw2_dispatch.o
+ endif
+
+ .PHONY:all extra clean depend
+@@ -46,9 +44,12 @@ sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
+
+ # SSE-specific targets on x86/x86_64
+
+-ifeq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
++ifneq ($(arm_neon),) # if arm_neon is defined, compile this target with the default setting (i.e. no -msse2)
++ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
++else ifneq ($(aarch64),)
+ ksw2_ll_sse.o:ksw2_ll_sse.c ksw2.h kalloc.h
+- $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
++else
++ $(CC) -c $(CFLAGS) -msse2 $(CPPFLAGS) $(INCLUDES) $< -o $@
+ endif
+
+ ksw2_extz2_sse41.o:ksw2_extz2_sse.c ksw2.h kalloc.h
diff --git a/gnu/packages/patches/pam-mount-luks2-support.patch b/gnu/packages/patches/pam-mount-luks2-support.patch
deleted file mode 100644
index b59daf5ce1..0000000000
--- a/gnu/packages/patches/pam-mount-luks2-support.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d4434c05e7c0cf05d87089404cfa2deedc60811a Mon Sep 17 00:00:00 2001
-From: Ingo Franzki <ifranzki@linux.ibm.com>
-Date: Mon, 29 Oct 2018 16:47:40 +0100
-Subject: [PATCH] crypto: Add support for LUKS2
-
-Cryptsetup version 2.0 added support for LUKS2.
-This patch adds support for mounting LUKS2 volumes with
-pam_mount.
-
-Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
----
- src/crypto-dmc.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/crypto-dmc.c b/src/crypto-dmc.c
-index d0ab6ca..abd0358 100644
---- a/src/crypto-dmc.c
-+++ b/src/crypto-dmc.c
-@@ -21,6 +21,12 @@
- #include "libcryptmount.h"
- #include "pam_mount.h"
-
-+#ifndef CRYPT_LUKS
-+ #define CRYPT_LUKS NULL /* Passing NULL to crypt_load will
-+ default to LUKS(1) on older
-+ libcryptsetup versions. */
-+#endif
-+
- /**
- * dmc_is_luks - check if @path points to a LUKS volume (cf. normal dm-crypt)
- * @path: path to the crypto container
-@@ -48,7 +54,7 @@ EXPORT_SYMBOL int ehd_is_luks(const char *path, bool blkdev)
-
- ret = crypt_init(&cd, device);
- if (ret == 0) {
-- ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+ ret = crypt_load(cd, CRYPT_LUKS, NULL);
- if (ret == -EINVAL)
- ret = false;
- else if (ret == 0)
-@@ -106,7 +112,7 @@ static bool dmc_run(const struct ehd_mount_request *req,
- #endif
- }
-
-- ret = crypt_load(cd, CRYPT_LUKS1, NULL);
-+ ret = crypt_load(cd, CRYPT_LUKS, NULL);
- if (ret == 0) {
- ret = crypt_activate_by_passphrase(cd, mt->crypto_name,
- CRYPT_ANY_SLOT, req->key_data, req->key_size, flags);
---
-2.21.0
diff --git a/gnu/packages/patches/pciutils-hurd-fix.patch b/gnu/packages/patches/pciutils-hurd-fix.patch
new file mode 100644
index 0000000000..f1979d4352
--- /dev/null
+++ b/gnu/packages/patches/pciutils-hurd-fix.patch
@@ -0,0 +1,23 @@
+Fix a build error on GNU/Hurd for pciutils 3.7.0.
+
+commit 053cf6c8b2acafadf828912828336d90fe9b8696
+Author: Martin Mares <mj@ucw.cz>
+Date: Sun May 31 11:53:28 2020 +0200
+
+ HURD backend should compile again
+
+ Fixes a bug introduced by commit 82c06b47dea5a38075ce9d56f743360bc47b4c78.
+
+diff --git a/lib/hurd.c b/lib/hurd.c
+index 7b3b2ae..ccd92f6 100644
+--- a/lib/hurd.c
++++ b/lib/hurd.c
+@@ -307,7 +307,6 @@ hurd_fill_regions(struct pci_dev *d)
+ d->base_addr[i] |= regions[i].is_64 << 2;
+ d->base_addr[i] |= regions[i].is_prefetchable << 3;
+
+- if (flags & PCI_FILL_SIZES)
+- d->size[i] = regions[i].size;
++ d->size[i] = regions[i].size;
+ }
+ }
diff --git a/gnu/packages/patches/pidgin-libnm.patch b/gnu/packages/patches/pidgin-libnm.patch
deleted file mode 100644
index d34af749af..0000000000
--- a/gnu/packages/patches/pidgin-libnm.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Sun, 24 May 2020 16:11:01 +0200
-Subject: [PATCH] gnu: pidgin: Find libnm.
-
-Copied verbatim from[0].
-
-[0]: https://git.archlinux.org/svntogit/packages.git/plain/trunk/pidgin-nm-1.0.patch?h=packages/pidgin
-
-diff --git a/configure.ac b/configure.ac
-index 04836fa..0a2d451 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1423,18 +1423,24 @@ fi
- dnl Check for NetworkManager.h; if we don't have it, oh well
- if test "x$enable_dbus" = "xyes" ; then
- if test "x$enable_nm" = "xyes" ; then
-- PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
-+ PKG_CHECK_MODULES(NETWORKMANAGER, [libnm], [
- AC_SUBST(NETWORKMANAGER_CFLAGS)
- AC_SUBST(NETWORKMANAGER_LIBS)
- AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
- ], [
-- enable_nm=no
-- if test "x$force_deps" = "xyes" ; then
-- AC_MSG_ERROR([
-+ PKG_CHECK_MODULES(NETWORKMANAGER, [NetworkManager >= 0.5.0], [
-+ AC_SUBST(NETWORKMANAGER_CFLAGS)
-+ AC_SUBST(NETWORKMANAGER_LIBS)
-+ AC_DEFINE(HAVE_NETWORKMANAGER, 1, [Define if we have NetworkManager.])
-+ ], [
-+ enable_nm=no
-+ if test "x$force_deps" = "xyes" ; then
-+ AC_MSG_ERROR([
- NetworkManager development headers not found.
- Use --disable-nm if you do not need NetworkManager support.
- ])
-- fi])
-+ fi])
-+ ])
- fi
- else
- enable_nm=no
-diff --git a/libpurple/network.c b/libpurple/network.c
-index c43e3c7..b17e439 100644
---- a/libpurple/network.c
-+++ b/libpurple/network.c
-@@ -939,8 +939,13 @@ nm_update_state(NMState state)
- #if NM_CHECK_VERSION(0,8,992)
- case NM_STATE_DISCONNECTING:
- #endif
-+#if NM_CHECK_VERSION(1,0,0)
-+ if (prev != NM_STATE_CONNECTED_GLOBAL && prev != NM_STATE_UNKNOWN)
-+ break;
-+#else
- if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
- break;
-+#endif
- if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
- ui_ops->network_disconnected();
- break;
diff --git a/gnu/packages/patches/pidgin-vv-gst.patch b/gnu/packages/patches/pidgin-vv-gst.patch
new file mode 100644
index 0000000000..e0553dd119
--- /dev/null
+++ b/gnu/packages/patches/pidgin-vv-gst.patch
@@ -0,0 +1,48 @@
+Name: Gary Kramlich
+Date: 2020-07-12
+Source: https://keep.imfreedom.org/pidgin/pidgin/rev/39ac50435cfb
+
+diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
+--- a/libpurple/mediamanager.c
++++ b/libpurple/mediamanager.c
+@@ -2231,6 +2231,7 @@
+ purple_media_manager_unregister_gst_device(PurpleMediaManager *manager,
+ GstDevice *device)
+ {
++#ifdef USE_VV
+ GList *i;
+ gchar *name;
+ gchar *device_class;
+@@ -2277,6 +2278,7 @@
+
+ g_free(name);
+ g_free(device_class);
++#endif /* USE_VV */
+ }
+
+ static gboolean
+@@ -2304,7 +2306,7 @@
+ static void
+ purple_media_manager_init_device_monitor(PurpleMediaManager *manager)
+ {
+-#if GST_CHECK_VERSION(1, 4, 0)
++#if GST_CHECK_VERSION(1, 4, 0) && defined(USE_VV)
+ GstBus *bus;
+ GList *i;
+
+@@ -2334,6 +2336,7 @@
+ PurpleMediaElementType type)
+ {
+ GList *result = NULL;
++#ifdef USE_VV
+ GList *i;
+
+ for (i = manager->priv->elements; i; i = i->next) {
+@@ -2347,6 +2350,7 @@
+ result = g_list_prepend(result, info);
+ }
+ }
++#endif /* USE_VV */
+
+ return result;
+ }
diff --git a/gnu/packages/patches/pulseview-qt515-compat.patch b/gnu/packages/patches/pulseview-qt515-compat.patch
new file mode 100644
index 0000000000..a7156b2018
--- /dev/null
+++ b/gnu/packages/patches/pulseview-qt515-compat.patch
@@ -0,0 +1,145 @@
+https://sigrok.org/gitweb/?p=pulseview.git;a=patch;h=ae726b70a7ada9a4be5808e00f0c951318479684
+
+From ae726b70a7ada9a4be5808e00f0c951318479684 Mon Sep 17 00:00:00 2001
+From: Valentin Ochs <a@0au.de>
+Date: Sat, 20 Jun 2020 16:01:27 +0200
+Subject: [PATCH] Replace obsolete/deprecated Qt methods
+
+---
+ pv/subwindows/decoder_selector/subwindow.cpp | 2 +-
+ pv/util.cpp | 21 ++++++++++++++++++--
+ pv/util.hpp | 10 ++++++++++
+ pv/views/trace/decodetrace.cpp | 3 ++-
+ pv/views/trace/ruler.cpp | 2 +-
+ pv/widgets/timestampspinbox.cpp | 2 +-
+ 6 files changed, 34 insertions(+), 6 deletions(-)
+
+diff --git a/pv/subwindows/decoder_selector/subwindow.cpp b/pv/subwindows/decoder_selector/subwindow.cpp
+index 94ed6f4b..2c65dcf2 100644
+--- a/pv/subwindows/decoder_selector/subwindow.cpp
++++ b/pv/subwindows/decoder_selector/subwindow.cpp
+@@ -185,7 +185,7 @@ QToolBar* SubWindow::create_toolbar(QWidget *parent) const
+ int SubWindow::minimum_width() const
+ {
+ QFontMetrics m(info_label_body_->font());
+- const int label_width = m.width(QString(tr(initial_notice)));
++ const int label_width = util::text_width(m, tr(initial_notice));
+
+ return label_width + min_width_margin;
+ }
+diff --git a/pv/util.cpp b/pv/util.cpp
+index 897254e1..dfb8c72b 100644
+--- a/pv/util.cpp
++++ b/pv/util.cpp
+@@ -143,7 +143,7 @@ QString format_time_si(const Timestamp& v, SIPrefix prefix,
+ QString s;
+ QTextStream ts(&s);
+ if (sign && !v.is_zero())
+- ts << forcesign;
++ ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign);
+ ts << qSetRealNumberPrecision(precision) << (v * multiplier);
+ ts << ' ' << prefix << unit;
+
+@@ -169,7 +169,7 @@ QString format_value_si(double v, SIPrefix prefix, unsigned precision,
+ QString s;
+ QTextStream ts(&s);
+ if (sign && (v != 0))
+- ts << forcesign;
++ ts.setNumberFlags(ts.numberFlags() | QTextStream::ForceSign);
+ ts.setRealNumberNotation(QTextStream::FixedNotation);
+ ts.setRealNumberPrecision(precision);
+ ts << (v * multiplier) << ' ' << prefix << unit;
+@@ -279,5 +279,22 @@ vector<string> split_string(string text, string separator)
+ return result;
+ }
+
++/**
++ * Return the width of a string in a given font.
++ *
++ * @param[in] metric metrics of the font
++ * @param[in] string the string whose width should be determined
++ *
++ * @return width of the string in pixels
++ */
++std::streamsize text_width(const QFontMetrics &metric, const QString &string)
++{
++#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
++ return metric.horizontalAdvance(string);
++#else
++ return metric.width(string);
++#endif
++}
++
+ } // namespace util
+ } // namespace pv
+diff --git a/pv/util.hpp b/pv/util.hpp
+index fab29a14..49ae04b2 100644
+--- a/pv/util.hpp
++++ b/pv/util.hpp
+@@ -30,6 +30,7 @@
+
+ #include <QMetaType>
+ #include <QString>
++#include <QFontMetrics>
+
+ using std::string;
+ using std::vector;
+@@ -143,6 +144,15 @@ QString format_time_minutes(const Timestamp& t, signed precision = 0,
+
+ vector<string> split_string(string text, string separator);
+
++/**
++ * Return the width of a string in a given font.
++ * @param[in] metric metrics of the font
++ * @param[in] string the string whose width should be determined
++ *
++ * @return width of the string in pixels
++ */
++std::streamsize text_width(const QFontMetrics &metric, const QString &string);
++
+ } // namespace util
+ } // namespace pv
+
+diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp
+index 67c9b1c4..93c7c5a9 100644
+--- a/pv/views/trace/decodetrace.cpp
++++ b/pv/views/trace/decodetrace.cpp
+@@ -161,7 +161,8 @@ DecodeTrace::DecodeTrace(pv::Session &session,
+
+ // Determine shortest string we want to see displayed in full
+ QFontMetrics m(QApplication::font());
+- min_useful_label_width_ = m.width("XX"); // e.g. two hex characters
++ // e.g. two hex characters
++ min_useful_label_width_ = util::text_width(m, "XX");
+
+ default_row_height_ = (ViewItemPaintParams::text_height() * 6) / 4;
+ annotation_height_ = (ViewItemPaintParams::text_height() * 5) / 4;
+diff --git a/pv/views/trace/ruler.cpp b/pv/views/trace/ruler.cpp
+index 555794fc..83ffed28 100644
+--- a/pv/views/trace/ruler.cpp
++++ b/pv/views/trace/ruler.cpp
+@@ -283,7 +283,7 @@ void Ruler::paintEvent(QPaintEvent*)
+ const int rightedge = width();
+ const int x_tick = tick.first;
+ if ((x_tick > leftedge) && (x_tick < rightedge)) {
+- const int x_left_bound = QFontMetrics(font()).width(tick.second) / 2;
++ const int x_left_bound = util::text_width(QFontMetrics(font()), tick.second) / 2;
+ const int x_right_bound = rightedge - x_left_bound;
+ const int x_legend = min(max(x_tick, x_left_bound), x_right_bound);
+ p.drawText(x_legend, ValueMargin, 0, text_height,
+diff --git a/pv/widgets/timestampspinbox.cpp b/pv/widgets/timestampspinbox.cpp
+index fea8175e..01424a5b 100644
+--- a/pv/widgets/timestampspinbox.cpp
++++ b/pv/widgets/timestampspinbox.cpp
+@@ -76,7 +76,7 @@ QSize TimestampSpinBox::minimumSizeHint() const
+ {
+ const QFontMetrics fm(fontMetrics());
+ const int l = round(value_).str().size() + precision_ + 10;
+- const int w = fm.width(QString(l, '0'));
++ const int w = util::text_width(fm, QString(l, '0'));
+ const int h = lineEdit()->minimumSizeHint().height();
+ return QSize(w, h);
+ }
+--
+2.24.0.rc2
+
diff --git a/gnu/packages/patches/purescript-relax-dependencies.patch b/gnu/packages/patches/purescript-relax-dependencies.patch
index 11c4a3c3fc..6ab4716fc4 100644
--- a/gnu/packages/patches/purescript-relax-dependencies.patch
+++ b/gnu/packages/patches/purescript-relax-dependencies.patch
@@ -1,41 +1,39 @@
Allow the purescript dependencies to better match the available packages in
Guix.
-diff --git purescript-0.13.6/purescript.cabal purescript-0.13.6/purescript.cabal.orig
-index 7e38070..0724a0b 100644
---- purescript-0.13.6/purescript.cabal
-+++ purescript-0.13.6/purescript.cabal.orig
-@@ -1167,1 +1167,1 @@ library
+--- purescript-0.13.8/purescript.cabal
++++ purescript-0.13.8/purescript.cabal.orig
+@@ -1091 +1091 @@ library
- Glob ==0.9.*,
+ Glob ==0.10.*,
-@@ -1171,1 +1171,1 @@ library
+@@ -1095 +1095 @@ library
- ansi-terminal >=0.7.1 && <0.9,
+ ansi-terminal ==0.9.*,
-@@ -1180,1 +1180,1 @@ library
+@@ -1105 +1105 @@ library
- clock <0.8,
+ clock ==0.8.*,
-@@ -1246,1 +1246,1 @@ executable purs
+@@ -1173 +1173 @@ executable purs
- Glob ==0.9.*,
+ Glob ==0.10.*,
-@@ -1250,1 +1250,1 @@ executable purs
+@@ -1177 +1177 @@ executable purs
- ansi-terminal >=0.7.1 && <0.9,
+ ansi-terminal ==0.9.*,
-@@ -1260,1 +1260,1 @@ executable purs
+@@ -1188 +1188 @@ executable purs
- clock <0.8,
+ clock ==0.8.*,
-@@ -1281,1 +1281,1 @@ executable purs
+@@ -1209 +1209 @@ executable purs
- network >=3.0.1.1 && <3.1,
+ network >=2.8 && <3.1,
-@@ -1358,1 +1358,1 @@ test-suite tests
+@@ -1288 +1288 @@ test-suite tests
- Glob ==0.9.*,
+ Glob ==0.10.*,
-@@ -1363,1 +1363,1 @@ test-suite tests
+@@ -1293 +1293 @@ test-suite tests
- ansi-terminal >=0.7.1 && <0.9,
+ ansi-terminal ==0.9.*,
-@@ -1372,1 +1372,1 @@ test-suite tests
+@@ -1303 +1303 @@ test-suite tests
- clock <0.8,
+ clock ==0.8.*,
-@@ -1384,2 +1384,2 @@ test-suite tests
+@@ -1315,2 +1315,2 @@ test-suite tests
- hspec <2.7,
- hspec-discover <2.7,
+ hspec ==2.7.*,
diff --git a/gnu/packages/patches/python-3.9-fix-tests.patch b/gnu/packages/patches/python-3.9-fix-tests.patch
new file mode 100644
index 0000000000..dc6b8c4cc8
--- /dev/null
+++ b/gnu/packages/patches/python-3.9-fix-tests.patch
@@ -0,0 +1,370 @@
+See the discussion about the issues fixed here at:
+http://bugs.python.org/issue20868 .
+
+diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py
+--- a/Lib/ctypes/test/test_callbacks.py
++++ b/Lib/ctypes/test/test_callbacks.py
+@@ -3,6 +3,7 @@ import unittest
+ from ctypes import *
+ from ctypes.test import need_symbol
+ import _ctypes_test
++import platform
+
+ class Callbacks(unittest.TestCase):
+ functype = CFUNCTYPE
+@@ -176,6 +177,8 @@ class SampleCallbacksTestCase(unittest.TestCase):
+
+ self.assertLess(diff, 0.01, "%s not less than 0.01" % diff)
+
++ @unittest.skipIf(platform.machine() in ['mips64'],
++ "This test fails on this platform")
+ def test_issue_8959_a(self):
+ from ctypes.util import find_library
+ libc_path = find_library("c")
+diff --git a/Lib/ctypes/test/test_libc.py b/Lib/ctypes/test/test_libc.py
+--- a/Lib/ctypes/test/test_libc.py
++++ b/Lib/ctypes/test/test_libc.py
+@@ -2,6 +2,7 @@ import unittest
+
+ from ctypes import *
+ import _ctypes_test
++import platform
+
+ lib = CDLL(_ctypes_test.__file__)
+
+@@ -17,6 +18,8 @@ class LibTest(unittest.TestCase):
+ import math
+ self.assertEqual(lib.my_sqrt(2.0), math.sqrt(2.0))
+
++ @unittest.skipIf(platform.machine() in ['mips64'],
++ "This test fails on this platform")
+ def test_qsort(self):
+ comparefunc = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_char))
+ lib.my_qsort.argtypes = c_void_p, c_size_t, c_size_t, comparefunc
+diff --git a/Lib/distutils/tests/test_archive_util.py b/Lib/distutils/tests/test_archive_util.py
+--- a/Lib/distutils/tests/test_archive_util.py
++++ b/Lib/distutils/tests/test_archive_util.py
+@@ -333,6 +333,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+ self.assertEqual(os.path.basename(res), 'archive.tar.xz')
+ self.assertEqual(self._tarinfo(res), self._created_files)
+
++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+ def test_make_archive_owner_group(self):
+ # testing make_archive with owner and group, with various combinations
+ # this works even if there's not gid/uid support
+@@ -362,6 +363,7 @@ class ArchiveUtilTestCase(support.TempdirManager,
+
+ @unittest.skipUnless(ZLIB_SUPPORT, "Requires zlib")
+ @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+ def test_tarfile_root_owner(self):
+ tmpdir = self._create_files()
+ base_name = os.path.join(self.mkdtemp(), 'archive')
+diff --git a/Lib/distutils/tests/test_sdist.py b/Lib/distutils/tests/test_sdist.py
+--- a/Lib/distutils/tests/test_sdist.py
++++ b/Lib/distutils/tests/test_sdist.py
+@@ -443,6 +443,7 @@ class SDistTestCase(BasePyPIRCCommandTestCase):
+ "The tar command is not found")
+ @unittest.skipIf(find_executable('gzip') is None,
+ "The gzip command is not found")
++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+ def test_make_distribution_owner_group(self):
+ # now building a sdist
+ dist, cmd = self.get_cmd()
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -1473,6 +1473,7 @@ class _TestCondition(BaseTestCase):
+ if pid is not None:
+ os.kill(pid, signal.SIGINT)
+
++ @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+ def test_wait_result(self):
+ if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
+ pid = os.getpid()
+diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
+--- a/Lib/test/test_asyncio/test_base_events.py
++++ b/Lib/test/test_asyncio/test_base_events.py
+@@ -1323,6 +1323,8 @@ class BaseEventLoopWithSelectorTests(test_utils.TestCase):
+ self._test_create_connection_ip_addr(m_socket, False)
+
+ @patch_socket
++ @unittest.skipUnless(support.is_resource_enabled('network'),
++ 'network is not enabled')
+ def test_create_connection_service_name(self, m_socket):
+ m_socket.getaddrinfo = socket.getaddrinfo
+ sock = m_socket.socket.return_value
+diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
+--- a/Lib/test/test_generators.py
++++ b/Lib/test/test_generators.py
+@@ -34,6 +34,7 @@ class SignalAndYieldFromTest(unittest.TestCase):
+ else:
+ return "FAILED"
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
+ def test_raise_and_yield_from(self):
+ gen = self.generator1()
+ gen.send(None)
+diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
+--- a/Lib/test/test_pathlib.py
++++ b/Lib/test/test_pathlib.py
+@@ -2134,8 +2134,7 @@ class PosixPathTest(_BasePathTest, unittest.TestCase):
+ self.assertEqual(given, expect)
+ self.assertEqual(set(p.rglob("FILEd*")), set())
+
+- @unittest.skipUnless(hasattr(pwd, 'getpwall'),
+- 'pwd module does not expose getpwall()')
++ @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
+ def test_expanduser(self):
+ P = self.cls
+ support.import_module('pwd')
+diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
+--- a/Lib/test/test_pdb.py
++++ b/Lib/test/test_pdb.py
+@@ -1150,11 +1150,11 @@ def test_pdb_issue_20766():
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+ -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+ (Pdb) continue
+- pdb 1: <built-in function default_int_handler>
++ pdb 1: Handlers.SIG_IGN
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function()
+ -> sess.set_trace(sys._getframe())
+ (Pdb) continue
+- pdb 2: <built-in function default_int_handler>
++ pdb 2: Handlers.SIG_IGN
+ """
+
+
+diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
+--- a/Lib/test/test_regrtest.py
++++ b/Lib/test/test_regrtest.py
+@@ -762,6 +762,7 @@ class ArgsTestCase(BaseTestCase):
+ output = self.run_tests('--fromfile', filename)
+ self.check_executed_tests(output, tests)
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+ def test_interrupted(self):
+ code = TEST_INTERRUPTED
+ test = self.create_test('sigint', code=code)
+@@ -779,6 +780,7 @@ class ArgsTestCase(BaseTestCase):
+ % (self.TESTNAME_REGEX, len(tests)))
+ self.check_line(output, regex)
+
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
+ def test_slowest_interrupted(self):
+ # Issue #25373: test --slowest with an interrupted test
+ code = TEST_INTERRUPTED
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -145,6 +145,7 @@ class ResourceTest(unittest.TestCase):
+
+ @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
+ @support.requires_linux_version(2, 6, 36)
++ @unittest.skipIf(True, "Bug: the PermissionError is not raised")
+ def test_prlimit(self):
+ self.assertRaises(TypeError, resource.prlimit)
+ self.assertRaises(ProcessLookupError, resource.prlimit,
+diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
+--- a/Lib/test/test_shutil.py
++++ b/Lib/test/test_shutil.py
+@@ -1428,6 +1428,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+ self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+
+ @support.requires_zlib()
++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+ def test_make_archive_owner_group(self):
+ # testing make_archive with owner and group, with various combinations
+ # this works even if there's not gid/uid support
+@@ -1456,6 +1457,7 @@ class TestArchives(BaseTest, unittest.TestCase):
+
+
+ @support.requires_zlib()
++ @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
+ @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
+ def test_tarfile_root_owner(self):
+ root_dir, base_dir = self._create_files()
+diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
+--- a/Lib/test/test_unicodedata.py
++++ b/Lib/test/test_unicodedata.py
+@@ -320,6 +320,7 @@ class NormalizationTest(unittest.TestCase):
+ data = [int(x, 16) for x in data.split(" ")]
+ return "".join([chr(x) for x in data])
+
++ @unittest.skipIf(True, 'Network is not available in the Guix build environment')
+ def test_normalization(self):
+ TESTDATAFILE = "NormalizationTest.txt"
+ TESTDATAURL = f"http://www.pythontest.net/unicode/{unicodedata.unidata_version}/{TESTDATAFILE}"
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -875,6 +875,8 @@ class GeneralModuleTests(unittest.TestCase):
+ if not fqhn in all_host_names:
+ self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+
++ @unittest.skipUnless(support.is_resource_enabled('network'),
++ 'network is not enabled')
+ def test_host_resolution(self):
+ for addr in [support.HOSTv4, '10.0.0.1', '255.255.255.255']:
+ self.assertEqual(socket.gethostbyname(addr), addr)
+@@ -1004,6 +1006,8 @@ class GeneralModuleTests(unittest.TestCase):
+ self.assertWarns(DeprecationWarning, socket.ntohs, k)
+ self.assertWarns(DeprecationWarning, socket.htons, k)
+
++ @unittest.skipUnless(os.path.exists("/etc/services"),
++ "getservbyname uses /etc/services, which is not in the chroot")
+ def testGetServBy(self):
+ eq = self.assertEqual
+ # Find one service that exists, then check all the related interfaces.
+@@ -1358,6 +1362,8 @@ class GeneralModuleTests(unittest.TestCase):
+ raise
+ self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+
++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++ "getaddrinfo() will fail")
+ def testGetaddrinfo(self):
+ try:
+ socket.getaddrinfo('localhost', 80)
+@@ -1440,6 +1446,8 @@ class GeneralModuleTests(unittest.TestCase):
+ # only IP addresses are allowed
+ self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+
++ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
++ "getaddrinfo() will fail")
+ @unittest.skipUnless(support.is_resource_enabled('network'),
+ 'network is not enabled')
+ def test_idna(self):
+diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
+--- a/Lib/test/test_spwd.py
++++ b/Lib/test/test_spwd.py
+@@ -5,8 +5,7 @@ from test import support
+ spwd = support.import_module('spwd')
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+- 'root privileges required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdRoot(unittest.TestCase):
+
+ def test_getspall(self):
+@@ -56,8 +55,7 @@ class TestSpwdRoot(unittest.TestCase):
+ self.assertRaises(TypeError, spwd.getspnam, bytes_name)
+
+
+-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
+- 'non-root user required')
++@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
+ class TestSpwdNonRoot(unittest.TestCase):
+
+ def test_getspnam_exception(self):
+diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
+--- a/Lib/test/test_tarfile.py
++++ b/Lib/test/test_tarfile.py
+@@ -2509,9 +2509,12 @@ def root_is_uid_gid_0():
+ import pwd, grp
+ except ImportError:
+ return False
+- if pwd.getpwuid(0)[0] != 'root':
+- return False
+- if grp.getgrgid(0)[0] != 'root':
++ try:
++ if pwd.getpwuid(0)[0] != 'root':
++ return False
++ if grp.getgrgid(0)[0] != 'root':
++ return False
++ except KeyError:
+ return False
+ return True
+
+diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
+--- a/Lib/test/test_threading.py
++++ b/Lib/test/test_threading.py
+@@ -1249,6 +1249,7 @@ class MiscTestCase(unittest.TestCase):
+
+
+ class InterruptMainTests(unittest.TestCase):
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+ def test_interrupt_main_subthread(self):
+ # Calling start_new_thread with a function that executes interrupt_main
+ # should raise KeyboardInterrupt upon completion.
+@@ -1260,6 +1261,8 @@ class InterruptMainTests(unittest.TestCase):
+ t.join()
+ t.join()
+
++
++ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
+ def test_interrupt_main_mainthread(self):
+ # Make sure that if interrupt_main is called in main thread that
+ # KeyboardInterrupt is raised instantly.
+diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
+--- a/Tools/scripts/run_tests.py
++++ b/Tools/scripts/run_tests.py
+@@ -39,7 +39,7 @@ def main(regrtest_args):
+ if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
+ args.extend(['-j', '0']) # Use all CPU cores
+ if not any(is_resource_use_flag(arg) for arg in regrtest_args):
+- args.extend(['-u', 'all,-largefile,-audio,-gui'])
++ args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
+ args.extend(regrtest_args)
+ print(' '.join(args))
+ if sys.platform == 'win32':
+diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
+index 1474624..887f8ee 100644
+--- a/Lib/test/_test_multiprocessing.py
++++ b/Lib/test/_test_multiprocessing.py
+@@ -3801,6 +3801,7 @@ class _TestSharedMemory(BaseTestCase):
+ sms.close()
+
+ @unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
+ # bpo-36368: protect SharedMemoryManager server process from
+ # KeyboardInterrupt signals.
+diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
+index d41e94b..a1c15e7 100644
+--- a/Lib/test/test_signal.py
++++ b/Lib/test/test_signal.py
+@@ -78,6 +78,7 @@ class PosixTests(unittest.TestCase):
+ self.assertLess(len(s), signal.NSIG)
+
+ @unittest.skipUnless(sys.executable, "sys.executable required.")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_keyboard_interrupt_exit_code(self):
+ """KeyboardInterrupt triggers exit via SIGINT."""
+ process = subprocess.run(
+@@ -128,6 +129,7 @@ class WindowsSignalTests(unittest.TestCase):
+ signal.signal(7, handler)
+
+ @unittest.skipUnless(sys.executable, "sys.executable required.")
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_keyboard_interrupt_exit_code(self):
+ """KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
+ # We don't test via os.kill(os.getpid(), signal.CTRL_C_EVENT) here
+@@ -1245,6 +1247,7 @@ class StressTest(unittest.TestCase):
+
+ class RaiseSignalTest(unittest.TestCase):
+
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_sigint(self):
+ with self.assertRaises(KeyboardInterrupt):
+ signal.raise_signal(signal.SIGINT)
+@@ -1279,6 +1279,7 @@ class PidfdSignalTest(unittest.TestCase):
+ hasattr(signal, "pidfd_send_signal"),
+ "pidfd support not built in",
+ )
++ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
+ def test_pidfd_send_signal(self):
+ with self.assertRaises(OSError) as cm:
+ signal.pidfd_send_signal(0, signal.SIGINT)
+diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
+index 92ac184..49eec2c 100644
+--- a/Lib/ctypes/test/test_find.py
++++ b/Lib/ctypes/test/test_find.py
+@@ -116,6 +116,7 @@ class FindLibraryLinux(unittest.TestCase):
+ with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
+ self.assertNotEqual(find_library('c'), None)
+
++ @unittest.skipIf(True, "This fails for unknown reasons on Guix")
+ def test_find_library_with_ld(self):
+ with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
+ unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
diff --git a/gnu/packages/patches/python-CVE-2020-26116.patch b/gnu/packages/patches/python-CVE-2020-26116.patch
new file mode 100644
index 0000000000..dc0571e964
--- /dev/null
+++ b/gnu/packages/patches/python-CVE-2020-26116.patch
@@ -0,0 +1,47 @@
+Fix CVE-2020-26116:
+
+https://cve.circl.lu/cve/CVE-2020-26116
+https://bugs.python.org/issue39603
+
+Taken from upstream (sans test and NEWS update):
+https://github.com/python/cpython/commit/668d321476d974c4f51476b33aaca870272523bf
+
+diff --git a/Lib/http/client.py b/Lib/http/client.py
+--- a/Lib/http/client.py
++++ b/Lib/http/client.py
+@@ -147,6 +147,10 @@
+ # _is_allowed_url_pchars_re = re.compile(r"^[/!$&'()*+,;=:@%a-zA-Z0-9._~-]+$")
+ # We are more lenient for assumed real world compatibility purposes.
+
++# These characters are not allowed within HTTP method names
++# to prevent http header injection.
++_contains_disallowed_method_pchar_re = re.compile('[\x00-\x1f]')
++
+ # We always set the Content-Length header for these methods because some
+ # servers will otherwise respond with a 411
+ _METHODS_EXPECTING_BODY = {'PATCH', 'POST', 'PUT'}
+@@ -1087,6 +1091,8 @@ def putrequest(self, method, url, skip_host=False,
+ else:
+ raise CannotSendRequest(self.__state)
+
++ self._validate_method(method)
++
+ # Save the method for use later in the response phase
+ self._method = method
+
+@@ -1177,6 +1183,15 @@ def _encode_request(self, request):
+ # ASCII also helps prevent CVE-2019-9740.
+ return request.encode('ascii')
+
++ def _validate_method(self, method):
++ """Validate a method name for putrequest."""
++ # prevent http header injection
++ match = _contains_disallowed_method_pchar_re.search(method)
++ if match:
++ raise ValueError(
++ f"method can't contain control characters. {method!r} "
++ f"(found at least {match.group()!r})")
++
+ def _validate_path(self, url):
+ """Validate a url for putrequest."""
+ # Prevent CVE-2019-9740.
diff --git a/gnu/packages/patches/python-cairocffi-dlopen-path.patch b/gnu/packages/patches/python-cairocffi-dlopen-path.patch
deleted file mode 100644
index e7a7fe3737..0000000000
--- a/gnu/packages/patches/python-cairocffi-dlopen-path.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- cairocffi-0.8.0/cairocffi/__init__.py.orig 2018-07-16 11:00:59.075664158 +0200
-+++ cairocffi-0.8.0/cairocffi/__init__.py 2018-07-16 17:09:42.471958015 +0200
-@@ -35,6 +35,7 @@
- return lib
- except OSError:
- pass
-+ return ffi.dlopen(name)
- raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
-
-
diff --git a/gnu/packages/patches/python-tinycss2-flake8-compat.patch b/gnu/packages/patches/python-tinycss2-flake8-compat.patch
deleted file mode 100644
index a66eb42fa1..0000000000
--- a/gnu/packages/patches/python-tinycss2-flake8-compat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix test failure that occurs with recent versions of Flake8.
-
-Taken from upstream:
-https://github.com/Kozea/tinycss2/commit/6556604fb98c2153412384d6f0f705db2da1aa60
-
-diff --git a/tinycss2/css-parsing-tests/make_color3_hsl.py b/tinycss2/css-parsing-tests/make_color3_hsl.py
-index d1fd3a6..56fda0c 100644
---- a/tinycss2/css-parsing-tests/make_color3_hsl.py
-+++ b/tinycss2/css-parsing-tests/make_color3_hsl.py
-@@ -8,16 +8,17 @@ def trim(s):
- print('[')
- print(',\n'.join(
- '"hsl%s(%s, %s%%, %s%%%s)", [%s, %s, %s, %s]' % (
-- ('a' if a is not None else '', h,
-- trim(str(s / 10.)), trim(str(l / 10.)),
-- ', %s' % a if a is not None else '') +
-+ ('a' if alpha is not None else '', hue,
-+ trim(str(saturation / 10.)), trim(str(light / 10.)),
-+ ', %s' % alpha if alpha is not None else '') +
- tuple(trim(str(round(v, 10)))
-- for v in colorsys.hls_to_rgb(h / 360., l / 1000., s / 1000.)) +
-- (a if a is not None else 1,)
-+ for v in colorsys.hls_to_rgb(
-+ hue / 360., light / 1000., saturation / 1000.)) +
-+ (alpha if alpha is not None else 1,)
- )
-- for a in [None, 1, .2, 0]
-- for l in range(0, 1001, 125)
-- for s in range(0, 1001, 125)
-- for h in range(0, 360, 30)
-+ for alpha in [None, 1, .2, 0]
-+ for light in range(0, 1001, 125)
-+ for saturation in range(0, 1001, 125)
-+ for hue in range(0, 360, 30)
- ))
- print(']')
diff --git a/gnu/packages/patches/qtbase-fix-krita-deadlock.patch b/gnu/packages/patches/qtbase-fix-krita-deadlock.patch
deleted file mode 100644
index d3554be3c9..0000000000
--- a/gnu/packages/patches/qtbase-fix-krita-deadlock.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-Fix a deadlock in Krita:
-
-https://bugreports.qt.io/browse/QTBUG-83207
-
-Patch copied from Qt bug tracker:
-
-https://codereview.qt-project.org/c/qt/qtbase/+/296034
-
-From 276fa8383a7535765be7182883ef4aade17ce013 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Thu, 02 Apr 2020 12:08:41 -0300
-Subject: [PATCH] QLibrary: fix deadlock caused by fix to QTBUG-39642
-
-Commit ae6f73e8566fa76470937aca737141183929a5ec inserted a mutex around
-the entire load_sys(). We had reasoed that deadlocks would only occur if
-the object creation in instance() recursed into its own instance(),
-which was already a bug. But we had forgotten that dlopen()/
-LoadLibrary() executes initialization code from the module being loaded,
-which could cause a recursion back into the same QPluginLoader or
-QLibrary object. This recursion is benign because the module *is* loaded
-and dlopen()/LoadLibrary() returns the same handle.
-
-[ChangeLog][QtCore][QLibrary and QPluginLoader] Fixed a deadlock that
-would happen if the plugin or library being loaded has load-time
-initialization code (C++ global variables) that recursed back into the
-same QLibrary or QPluginLoader object.
-
-PS: QLibraryPrivate::loadPlugin() updates pluginState outside a mutex
-lock, so pluginState should be made an atomic variable. Once that is
-done, we'll only need locking the mutex to update errorString (no
-locking before loading).
-
-Fixes: QTBUG-83207
-Task-number: QTBUG-39642
-Change-Id: Ibdc95e9af7bd456a94ecfffd160209304e5ab2eb
-Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-Reviewed-by: David Faure <david.faure@kdab.com>
----
-
-diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
-index ddb053c..be9d92b 100644
---- a/src/corelib/plugin/qlibrary.cpp
-+++ b/src/corelib/plugin/qlibrary.cpp
-@@ -576,9 +576,7 @@
-
- Q_TRACE(QLibraryPrivate_load_entry, fileName);
-
-- mutex.lock();
- bool ret = load_sys();
-- mutex.unlock();
- if (qt_debug_component()) {
- if (ret) {
- qDebug() << "loaded library" << fileName;
-diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp
-index 017aa97..a5c72f8 100644
---- a/src/corelib/plugin/qlibrary_unix.cpp
-+++ b/src/corelib/plugin/qlibrary_unix.cpp
-@@ -123,6 +123,7 @@
-
- bool QLibraryPrivate::load_sys()
- {
-+ QMutexLocker locker(&mutex);
- QString attempt;
- QFileSystemEntry fsEntry(fileName);
-
-@@ -213,6 +214,7 @@
- }
- #endif
-
-+ locker.unlock();
- bool retry = true;
- Handle hnd = nullptr;
- for (int prefix = 0; retry && !hnd && prefix < prefixes.size(); prefix++) {
-@@ -273,6 +275,8 @@
- }
- }
- #endif
-+
-+ locker.relock();
- if (!hnd) {
- errorString = QLibrary::tr("Cannot load library %1: %2").arg(fileName, qdlerror());
- }
-diff --git a/src/corelib/plugin/qlibrary_win.cpp b/src/corelib/plugin/qlibrary_win.cpp
-index 000bf76..ef58724 100644
---- a/src/corelib/plugin/qlibrary_win.cpp
-+++ b/src/corelib/plugin/qlibrary_win.cpp
-@@ -78,6 +78,7 @@
- // fileName
- //
- // NB If it's a plugin we do not ever try the ".dll" extension
-+ QMutexLocker locker(&mutex);
- QStringList attempts;
-
- if (pluginState != IsAPlugin)
-@@ -95,6 +96,7 @@
- attempts.prepend(QDir::rootPath() + fileName);
- #endif
-
-+ locker.unlock();
- Handle hnd = nullptr;
- for (const QString &attempt : qAsConst(attempts)) {
- #ifndef Q_OS_WINRT
-@@ -115,6 +117,7 @@
- #ifndef Q_OS_WINRT
- SetErrorMode(oldmode);
- #endif
-+ locker.relock();
- if (!hnd) {
- errorString = QLibrary::tr("Cannot load library %1: %2").arg(
- QDir::toNativeSeparators(fileName), qt_error_string());
diff --git a/gnu/packages/patches/renpy-use-system-fribidi.patch b/gnu/packages/patches/renpy-use-system-fribidi.patch
new file mode 100644
index 0000000000..1437274bcc
--- /dev/null
+++ b/gnu/packages/patches/renpy-use-system-fribidi.patch
@@ -0,0 +1,52 @@
+See also [Arch] and [Gentoo] for similar patches in other distros.
+[Arch] https://github.com/archlinux/svntogit-community/blob/packages/renpy/trunk/renpy-system-fribidi.patch
+[Gentoo] https://gitweb.gentoo.org/repo/gentoo.git/tree/games-engines/renpy/files/renpy-7.3.5-use-system-fribidi.patch
+
+Index: renpy-7.3.5-source/module/renpybidicore.c
+===================================================================
+--- renpy-7.3.5-source.orig/module/renpybidicore.c
++++ renpy-7.3.5-source/module/renpybidicore.c
+@@ -1,5 +1,5 @@
+ #include <Python.h>
+-#include <fribidi-src/lib/fribidi.h>
++#include <fribidi.h>
+ #include <stdlib.h>
+
+ #ifndef alloca
+Index: renpy-7.3.5-source/module/setup.py
+===================================================================
+--- renpy-7.3.5-source.orig/module/setup.py
++++ renpy-7.3.5-source/module/setup.py
+@@ -119,30 +119,13 @@ cython(
+ sdl + [ png, 'z', 'm' ])
+
+ FRIBIDI_SOURCES = """
+-fribidi-src/lib/fribidi.c
+-fribidi-src/lib/fribidi-arabic.c
+-fribidi-src/lib/fribidi-bidi.c
+-fribidi-src/lib/fribidi-bidi-types.c
+-fribidi-src/lib/fribidi-deprecated.c
+-fribidi-src/lib/fribidi-joining.c
+-fribidi-src/lib/fribidi-joining-types.c
+-fribidi-src/lib/fribidi-mem.c
+-fribidi-src/lib/fribidi-mirroring.c
+-fribidi-src/lib/fribidi-run.c
+-fribidi-src/lib/fribidi-shape.c
+ renpybidicore.c
+ """.split()
+ cython(
+ "_renpybidi",
+ FRIBIDI_SOURCES,
+- includes=[
+- BASE + "/fribidi-src/",
+- BASE + "/fribidi-src/lib/",
+- ],
+- define_macros=[
+- ("FRIBIDI_ENTRY", ""),
+- ("HAVE_CONFIG_H", "1"),
+- ])
++ includes=["/usr/include/fribidi"],
++ libs=["fribidi"])
+
+
+ cython("_renpysteam", language="c++", compile_if=steam_sdk, libs=["steam_api"])
diff --git a/gnu/packages/patches/rust-1.48-linker-locale.patch b/gnu/packages/patches/rust-1.48-linker-locale.patch
new file mode 100644
index 0000000000..d06dcbe682
--- /dev/null
+++ b/gnu/packages/patches/rust-1.48-linker-locale.patch
@@ -0,0 +1,14 @@
+https://github.com/rust-lang/rust/pull/74416
+diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
+index 3df956c465e..f45fee45be4 100644
+--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
++++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
+@@ -28,7 +28,7 @@
+ pub fn disable_localization(linker: &mut Command) {
+ // No harm in setting both env vars simultaneously.
+ // Unix-style linkers.
+- linker.env("LC_ALL", "C");
++ linker.env("LC_ALL", "en_US.UTF-8");
+ // MSVC's `link.exe`.
+ linker.env("VSLANG", "1033");
+ }
diff --git a/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
new file mode 100644
index 0000000000..7221fdd608
--- /dev/null
+++ b/gnu/packages/patches/rust-ndarray-remove-blas-src-dep.patch
@@ -0,0 +1,36 @@
+From ed09f3c91e915c3b436854a7936566edceb3e8de Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Tue, 15 Dec 2020 10:09:45 +0200
+Subject: [PATCH] remove blas-src dependency
+
+---
+ Cargo.toml | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1f3e1b6..36bc816 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -37,10 +37,6 @@ debug = true
+ name = "ndarray"
+ test = true
+ bench = false
+-[dependencies.blas-src]
+-version = "0.2.0"
+-optional = true
+-default-features = false
+
+ [dependencies.cblas-sys]
+ version = "0.1.4"
+@@ -78,7 +74,7 @@ default-features = false
+ version = "0.1"
+
+ [features]
+-blas = ["cblas-sys", "blas-src"]
++blas = ["cblas-sys"]
+ docs = ["rustc-serialize", "serde-1"]
+ serde-1 = ["serde"]
+ test = ["test-blas-openblas-sys"]
+--
+2.29.2
+
diff --git a/gnu/packages/patches/sbc-fix-build-non-x86.patch b/gnu/packages/patches/sbc-fix-build-non-x86.patch
new file mode 100644
index 0000000000..56ea916d42
--- /dev/null
+++ b/gnu/packages/patches/sbc-fix-build-non-x86.patch
@@ -0,0 +1,17 @@
+Don't refer to x86-specific function on other architectures to avoid linker error.
+
+Submitted upstream at <https://marc.info/?l=linux-bluetooth&m=160857625608440&w=2>
+
+diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c
+--- a/sbc/sbc_primitives.c
++++ b/sbc/sbc_primitives.c
+@@ -593,7 +593,9 @@ static int sbc_calc_scalefactors_j(
+
+ static void sbc_init_primitives_x86(struct sbc_encoder_state *state)
+ {
++#if defined(__x86_64__) || defined(__i386__)
+ __builtin_cpu_init();
++#endif
+
+ #ifdef SBC_BUILD_WITH_MMX_SUPPORT
+ if (__builtin_cpu_supports("mmx"))
diff --git a/gnu/packages/patches/sbcl-clml-fix-types.patch b/gnu/packages/patches/sbcl-clml-fix-types.patch
new file mode 100644
index 0000000000..689a2fbfc2
--- /dev/null
+++ b/gnu/packages/patches/sbcl-clml-fix-types.patch
@@ -0,0 +1,280 @@
+commit 9920bf86604b536c735b6478488a3cb89413e000
+Author: Guillaume Le Vaillant <glv@posteo.net>
+Date: Tue Dec 1 09:38:41 2020 +0100
+
+ Fix some type declarations
+
+ This allows compiling with SBCL 2.0.11 which is less tolerant with wrong type
+ declarations.
+
+diff --git a/som/src/lvq_pak.lisp b/som/src/lvq_pak.lisp
+index 1a062cc..4006ed6 100644
+--- a/som/src/lvq_pak.lisp
++++ b/som/src/lvq_pak.lisp
+@@ -53,7 +53,7 @@
+ (current :accessor entries-current :initarg :current :initform 0
+ :documentation "index of current data-entry inside data-entries")
+ (entries :accessor entries-entries :initarg :entries :initform nil
+- :type #-ccl cons #+ccl list
++ :type #-ccl (or null cons) #+ccl list
+ :documentation "list of data-entries")
+ (num-loaded :accessor entries-num-loaded :initarg :num-loaded :initform nil
+ :documentation "number of lines loaded in entries list")
+diff --git a/statistics/src/rand/rand.lisp b/statistics/src/rand/rand.lisp
+index 3cd806a..c8f9952 100644
+--- a/statistics/src/rand/rand.lisp
++++ b/statistics/src/rand/rand.lisp
+@@ -154,7 +154,7 @@
+ (xn (make-array (1+ n) :element-type 'double-float)))
+ (declare (type double-float r v d)
+ (type fixnum k n n-minus-1)
+- (type (vector double-float *) xn))
++ (type (simple-array double-float (*)) xn))
+ ;; build xn
+ (setf (aref xn n) (* v (exp (/ (* r r) 2))))
+ (setf (aref xn (1- n)) r)
+@@ -233,8 +233,8 @@
+ (base (expt 2 (- +bit-operation-m+ k 1))))
+ (declare (type double-float r v d)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* v (exp (/ (* r r) 2))) base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -347,8 +347,8 @@
+ (base (expt 2 (- +bit-operation-m+ k))))
+ (declare (type double-float r v d)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* v (exp (/ (* r r) 2))) base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -546,8 +546,8 @@
+ (base (expt 2 (- +bit-operation-m+ k 1))))
+ (declare (type double-float r v tr1 tr2)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* v (+ 1 (* r r))) base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -663,8 +663,8 @@
+ (base (expt 2 (- +bit-operation-m+ k))))
+ (declare (type double-float r v)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* v (exp r)) base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -804,8 +804,8 @@
+ (base (expt 2 (- +bit-operation-m+ k 1))))
+ (declare (type double-float r v)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* v (exp r)) base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -2083,8 +2083,8 @@
+ (base (expt 2 (- +bit-operation-m+ k 1))))
+ (declare (type double-float r v tr)
+ (type fixnum k n n-minus-1 base)
+- (type (vector double-float *) wn fn)
+- (type (vector fixnum *) kn))
++ (type (simple-array double-float (*)) wn fn)
++ (type (simple-array fixnum (*)) kn))
+ ;; build arrays
+ (setf (aref wn (- n 1)) (/ (* (expt (+ 1d0 tr) 2) v) tr base))
+ (setf (aref wn (- n 2)) (/ r base))
+@@ -2383,7 +2383,7 @@
+ ans)))
+ (declare (type double-float s a d)
+ (type vector tix)
+- (type (vector fixnum *) si))
++ (type (simple-array fixnum (*)) si))
+ (values tix si)))
+
+ (defun binomial-table-lookup (tix si)
+@@ -2415,7 +2415,7 @@
+ (b (expt 2 k)))
+ (declare (type double-float s a)
+ (type fixnum nsq k b)
+- (type (vector double-float *) pbins))
++ (type (simple-array double-float (*)) pbins))
+ ;; build pbins
+ (setf (aref pbins 0) (int-power (- 1d0 probability) size))
+ (loop for i from 1 to size do
+@@ -2438,7 +2438,7 @@
+ do (incf j tx)) :initial-element -1 :element-type 'fixnum))
+ (thetan 0d0))
+ (declare (type double-float w thetan)
+- (type (vector fixnum *) table))
++ (type (simple-array fixnum (*)) table))
+ (loop with j = 0
+ for x from 0
+ for pbin across pbins
+@@ -2454,8 +2454,8 @@
+ (vi (make-array nsq :element-type 'double-float
+ :initial-contents (loop for i from 0 to size collect (dfloat (/ (+ i 1) nsq)))))
+ (c (dfloat (/ nsq))))
+- (declare (type (vector fixnum *) ki)
+- (type (vector double-float *) vi)
++ (declare (type (simple-array fixnum (*)) ki)
++ (type (simple-array double-float (*)) vi)
+ (type double-float c))
+ (loop repeat size do
+ (let ((maxp 0)
+@@ -2658,7 +2658,7 @@
+ (thetan 0d0)
+ (sum 0d0))
+ (declare (type double-float w thetan sum)
+- (type (vector fixnum *) table))
++ (type (simple-array fixnum (*)) table))
+ (loop with j = 0
+ for x from 0
+ for pgeo across pgeos
+@@ -2675,8 +2675,8 @@
+ (vi (make-array nsq :element-type 'double-float
+ :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+ (c (dfloat (/ nsq))))
+- (declare (type (vector fixnum *) ki)
+- (type (vector double-float *) vi)
++ (declare (type (simple-array fixnum (*)) ki)
++ (type (simple-array double-float (*)) vi)
+ (type double-float c))
+ (loop repeat (1- nsq) do
+ (let ((maxp 0)
+@@ -2911,7 +2911,7 @@
+ (sum 0d0))
+ (declare (type double-float w thetan sum pl pu)
+ (type fixnum nsq d)
+- (type (vector fixnum *) table))
++ (type (simple-array fixnum (*)) table))
+ (unless (= xl 0)
+ (setf pps (subseq pps xl)))
+ (loop with j = 0
+@@ -2930,8 +2930,8 @@
+ (vi (make-array nsq :element-type 'double-float
+ :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+ (c (dfloat (/ nsq))))
+- (declare (type (vector fixnum *) ki)
+- (type (vector double-float *) vi)
++ (declare (type (simple-array fixnum (*)) ki)
++ (type (simple-array double-float (*)) vi)
+ (type double-float c))
+ (loop repeat (1- nsq) do
+ (let ((maxp 0)
+@@ -3174,7 +3174,7 @@
+ (k 7)
+ (b (expt 2 k)))
+ (declare (type fixnum a1 a2 nsq k b)
+- (type (vector double-float *) phs))
++ (type (simple-array double-float (*)) phs))
+ ;; build phs
+ (setf (aref phs 0)
+ (/ (dfloat (the fixnum (* (combination successes a1) (combination (- elements successes) (- samples a1)))))
+@@ -3200,7 +3200,7 @@
+ (table (make-array b :initial-element -1 :element-type 'fixnum))
+ (thetan 0d0))
+ (declare (type double-float w thetan)
+- (type (vector fixnum *) table))
++ (type (simple-array fixnum (*)) table))
+ (loop with j = 0
+ for x from a1
+ for i from 0
+@@ -3217,8 +3217,8 @@
+ (vi (make-array nsq :element-type 'double-float
+ :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+ (c (dfloat (/ nsq))))
+- (declare (type (vector fixnum *) ki)
+- (type (vector double-float *) vi)
++ (declare (type (simple-array fixnum (*)) ki)
++ (type (simple-array double-float (*)) vi)
+ (type double-float c))
+ (loop repeat (1- nsq) do
+ (let ((maxp 0)
+@@ -3442,7 +3442,7 @@
+ (sum 0d0))
+ (declare (type double-float w thetan sum pl pu)
+ (type fixnum nsq d)
+- (type (vector fixnum *) table))
++ (type (simple-array fixnum (*)) table))
+ (unless (= xl 0)
+ (setf pnbs (subseq pnbs xl)))
+ (loop with j = 0
+@@ -3461,8 +3461,8 @@
+ (vi (make-array nsq :element-type 'double-float
+ :initial-contents (loop for i from 0 below nsq collect (dfloat (/ (+ i 1) nsq)))))
+ (c (dfloat (/ nsq))))
+- (declare (type (vector fixnum *) ki)
+- (type (vector double-float *) vi)
++ (declare (type (simple-array fixnum (*)) ki)
++ (type (simple-array double-float (*)) vi)
+ (type double-float c))
+ (loop repeat (1- nsq) do
+ (let ((maxp 0)
+diff --git a/time-series/src/ts-read-data.lisp b/time-series/src/ts-read-data.lisp
+index 09ad933..a692514 100644
+--- a/time-series/src/ts-read-data.lisp
++++ b/time-series/src/ts-read-data.lisp
+@@ -5,7 +5,7 @@
+ ((frequency :initarg :frequency
+ :accessor ts-freq
+ :initform nil
+- :type number)
++ :type (or null number))
+ (start :initarg :start :accessor ts-start :initform nil)
+ (end :initarg :end :accessor ts-end :initform nil)
+ (ts-type :initarg :ts-type :accessor ts-type :initform nil)
+diff --git a/time-series/src/ts-state-space-model.lisp b/time-series/src/ts-state-space-model.lisp
+index 4dbf56a..ad9e5cc 100644
+--- a/time-series/src/ts-state-space-model.lisp
++++ b/time-series/src/ts-state-space-model.lisp
+@@ -348,8 +348,8 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (eval-when (:execute :compile-toplevel :load-toplevel)
+ (defclass trend-model (gaussian-stsp-model)
+- ((diff-k :initarg :diff-k :initform nil :type integer :accessor diff-k)
+- (tau^2 :initarg :tau^2 :initform nil :type number :accessor tau^2)
++ ((diff-k :initarg :diff-k :initform nil :type (or null integer) :accessor diff-k)
++ (tau^2 :initarg :tau^2 :initform nil :type (or null number) :accessor tau^2)
+ (aic :initarg :aic :initform +nan+ :type number))
+ (:documentation "- parent: gaussian-stsp-model
+ - accessors:
+@@ -492,9 +492,9 @@
+ ; seasonal model ;
+ ;;;;;;;;;;;;;;;;;;
+ (defclass seasonal-model (gaussian-stsp-model)
+- ((s-deg :initarg :s-deg :initform nil :type fixnum :accessor s-deg)
+- (s-freq :initarg :s-freq :initform nil :type fixnum :accessor s-freq)
+- (tau^2 :initarg :tau^2 :initform nil :type number :accessor tau^2))
++ ((s-deg :initarg :s-deg :initform nil :type (or null fixnum) :accessor s-deg)
++ (s-freq :initarg :s-freq :initform nil :type (or null fixnum) :accessor s-freq)
++ (tau^2 :initarg :tau^2 :initform nil :type (or null number) :accessor tau^2))
+ (:documentation "- parent: gaussian-stsp-model
+ - accessors
+ - s-deg : Degree for seasonal model
+@@ -593,8 +593,8 @@
+ ; seasonal-adjustment-model ;
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (defclass seasonal-adjustment-model (gaussian-stsp-model)
+- ((trend :initarg :trend :initform nil :type trend-model :accessor trend-model)
+- (seasonal :initarg :seasonal :initform nil :type seasonal-model :accessor seasonal-model))
++ ((trend :initarg :trend :initform nil :type (or null trend-model) :accessor trend-model)
++ (seasonal :initarg :seasonal :initform nil :type (or null seasonal-model) :accessor seasonal-model))
+ (:documentation "Standard seasonal adjustment model ( Trend + Seasonal )
+ - parent: gaussian-stsp-model
+ - accessors
diff --git a/gnu/packages/patches/sbcl-geco-fix-organism-class.patch b/gnu/packages/patches/sbcl-geco-fix-organism-class.patch
deleted file mode 100644
index 817596241e..0000000000
--- a/gnu/packages/patches/sbcl-geco-fix-organism-class.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix the ORGANISM class so that SBCL >= 2.0.9 can compile it without error.
-
---- a/classes.lisp 2020-10-28 12:11:10.725659464 +0100
-+++ b/classes.lisp 2020-10-31 17:34:36.822752447 +0100
-@@ -148,7 +148,7 @@
- :accessor score
- :initarg :score
- :initform 'nil
-- :type number)
-+ :type (or number null))
- (NORMALIZED-SCORE
- :accessor normalized-score
- :initarg :normalized-score
diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch
index 545f0cbd69..ad9a3e7a9e 100644
--- a/gnu/packages/patches/sdcc-disable-non-free-code.patch
+++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch
@@ -15,10 +15,10 @@ remove instructions that encourage the use of SDCC with non-free
software.
diff --git a/Makefile.common.in b/Makefile.common.in
-index 4c75cfa..9fa306d 100644
+index 412fd5a..81bbd61 100644
--- a/Makefile.common.in
+++ b/Makefile.common.in
-@@ -65,7 +65,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@
+@@ -69,7 +69,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@
OPT_DISABLE_SDBINUTILS = @OPT_DISABLE_SDBINUTILS@
OPT_DISABLE_SDCPP = @OPT_DISABLE_SDCPP@
OPT_DISABLE_UCSIM = @OPT_DISABLE_UCSIM@
@@ -27,10 +27,10 @@ index 4c75cfa..9fa306d 100644
SLIB = $(top_builddir)/support/util
diff --git a/Makefile.in b/Makefile.in
-index aac442e..dd73e40 100644
+index f3b028d..cfdf06d 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -82,9 +82,6 @@ endif
+@@ -100,9 +100,6 @@ endif
ifeq ($(OPT_DISABLE_DEVICE_LIB), 0)
TARGETS += sdcc-device-lib
PKGS += device/lib
@@ -40,17 +40,17 @@ index aac442e..dd73e40 100644
endif
ifeq ($(OPT_DISABLE_PACKIHX), 0)
-@@ -105,9 +102,6 @@ endif
+@@ -123,9 +120,6 @@ endif
TARGETS += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts
PKGS += $(SDCC_LIBS) src device/include
-ifeq ($(OPT_DISABLE_NON_FREE), 0)
-PKGS += device/non-free/include
-endif
- PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_LIBRARIAN) $(SDCC_SCRIPTS)
+ PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS)
PORTS = $(shell cat ports.build)
-@@ -156,21 +150,12 @@ sdcc-sdbinutils:
+@@ -171,21 +165,12 @@ sdcc-sdbinutils:
sdcc-device-inc:
$(MAKE) -C device/include
@@ -73,7 +73,7 @@ index aac442e..dd73e40 100644
# doc depends on latex and latex2html
diff --git a/configure b/configure
-index 42b1c7d..00ecb51 100755
+index 43ccb6f..d345f54 100755
--- a/configure
+++ b/configure
@@ -632,7 +632,6 @@ LATEX
@@ -84,7 +84,7 @@ index 42b1c7d..00ecb51 100755
OPT_DISABLE_SDBINUTILS
OPT_DISABLE_SDCDB
OPT_DISABLE_SDCPP
-@@ -654,10 +653,7 @@ OPT_DISABLE_R2K
+@@ -659,10 +658,7 @@ OPT_DISABLE_R2K
OPT_DISABLE_Z180
OPT_DISABLE_Z80
OPT_DISABLE_MCS51
@@ -95,7 +95,7 @@ index 42b1c7d..00ecb51 100755
include_dir_suffix
inclib_dir_suffix
LIB_TYPE
-@@ -771,7 +767,6 @@ enable_packihx
+@@ -780,7 +776,6 @@ enable_packihx
enable_sdcpp
enable_sdcdb
enable_sdbinutils
@@ -103,7 +103,7 @@ index 42b1c7d..00ecb51 100755
enable_doc
enable_libgc
'
-@@ -792,10 +787,7 @@ sdccconf_h_dir_separator
+@@ -801,10 +796,7 @@ sdccconf_h_dir_separator
LIB_TYPE
inclib_dir_suffix
include_dir_suffix
@@ -114,7 +114,7 @@ index 42b1c7d..00ecb51 100755
docdir'
ac_subdirs_all='support/cpp
support/packihx
-@@ -803,9 +795,7 @@ sim/ucsim
+@@ -812,9 +804,7 @@ sim/ucsim
debugger/mcs51
support/sdbinutils
device/lib/pic14
@@ -125,7 +125,7 @@ index 42b1c7d..00ecb51 100755
# Initialize some variables set by options.
ac_init_help=
-@@ -1452,7 +1442,6 @@ Optional Features:
+@@ -1455,7 +1445,6 @@ Optional Features:
--disable-sdcpp Disables building sdcpp
--disable-sdcdb Disables building sdcdb
--disable-sdbinutils Disables configuring and building of sdbinutils
@@ -133,7 +133,7 @@ index 42b1c7d..00ecb51 100755
--enable-doc Enables building the documentation
--enable-libgc Use the Bohem memory allocator. Lower runtime
footprint.
-@@ -1481,16 +1470,8 @@ Some influential environment variables:
+@@ -1484,16 +1473,8 @@ Some influential environment variables:
appended to datadir to define SDCC's include/lib directory
include_dir_suffix
appended to datadir to define SDCC's include directory
@@ -150,7 +150,7 @@ index 42b1c7d..00ecb51 100755
docdir documentation installation directory
Use these variables to override the choices made by `configure' or to help
-@@ -7236,19 +7217,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -7134,19 +7115,6 @@ if test "${include_dir_suffix}" = ""; then
include_dir_suffix="${inclib_dir_suffix}/include"
fi
@@ -170,7 +170,7 @@ index 42b1c7d..00ecb51 100755
# lib_dir_suffix:
# *nix default: "sdcc/lib"
-@@ -7256,13 +7224,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -7154,13 +7122,6 @@ if test "${lib_dir_suffix}" = ""; then
lib_dir_suffix="${inclib_dir_suffix}/lib"
fi
@@ -184,7 +184,7 @@ index 42b1c7d..00ecb51 100755
# docdir:
# *nix default: "${datadir}/sdcc/doc"
-@@ -7429,24 +7390,6 @@ cat >>confdefs.h <<_ACEOF
+@@ -7327,24 +7288,6 @@ cat >>confdefs.h <<_ACEOF
#define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}"
_ACEOF
@@ -209,7 +209,7 @@ index 42b1c7d..00ecb51 100755
norm_lib_dir_suffix=${lib_dir_suffix}
case ":$norm_lib_dir_suffix:" in
-@@ -7466,24 +7409,6 @@ cat >>confdefs.h <<_ACEOF
+@@ -7364,24 +7307,6 @@ cat >>confdefs.h <<_ACEOF
#define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}"
_ACEOF
@@ -234,7 +234,7 @@ index 42b1c7d..00ecb51 100755
# relative paths
for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do
-@@ -8411,28 +8336,6 @@ _ACEOF
+@@ -8439,28 +8364,6 @@ _ACEOF
@@ -263,7 +263,7 @@ index 42b1c7d..00ecb51 100755
# Check whether --enable-doc was given.
if test "${enable_doc+set}" = set; then :
-@@ -8827,20 +8730,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
+@@ -8855,20 +8758,12 @@ if test $OPT_DISABLE_PIC14 = 0; then
test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14"
@@ -283,15 +283,15 @@ index 42b1c7d..00ecb51 100755
-
fi
- if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then
-@@ -8885,15 +8780,9 @@ fi
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
+@@ -8945,15 +8840,9 @@ fi
test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile"
-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile"
-
- ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/librarian/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
+ ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in"
-if test $OPT_DISABLE_NON_FREE = 0; then
- ac_config_files="$ac_config_files device/non-free/include/Makefile"
@@ -300,15 +300,15 @@ index 42b1c7d..00ecb51 100755
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
-@@ -9621,7 +9510,6 @@ do
- "sdas/asstm8/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/asstm8/Makefile" ;;
- "device/lib/stm8/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/stm8/Makefile" ;;
+@@ -9692,7 +9581,6 @@ do
+ "device/lib/pdk15-stack-auto/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/pdk15-stack-auto/Makefile" ;;
+ "sdas/aspdk16/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/aspdk16/Makefile" ;;
"device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;;
- "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;;
"main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;;
-@@ -9634,7 +9522,6 @@ do
+@@ -9704,7 +9592,6 @@ do
"support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;;
@@ -316,7 +316,7 @@ index 42b1c7d..00ecb51 100755
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
-@@ -10443,54 +10330,6 @@ esac
+@@ -10513,54 +10400,6 @@ esac
incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'`
@@ -371,7 +371,7 @@ index 42b1c7d..00ecb51 100755
libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'`
case ":$libPath1:" in
-@@ -10540,54 +10379,6 @@ esac
+@@ -10610,54 +10449,6 @@ esac
libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'`
@@ -426,15 +426,15 @@ index 42b1c7d..00ecb51 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
sdcc ${VERSION} is now configured for
-@@ -10618,7 +10409,6 @@ sdcc ${VERSION} is now configured for
- tlcs90 ${enable_tlcs90_port}
- stm8 ${enable_stm8_port}
+@@ -10694,7 +10485,6 @@ sdcc ${VERSION} is now configured for
+ pdk15 ${enable_pdk15_port}
+ pdk16 ${enable_pdk16_port}
- Disable non-free lib: ${OPT_DISABLE_NON_FREE}
Disable packihx: ${OPT_DISABLE_PACKIHX}
Disable ucsim: ${OPT_DISABLE_UCSIM}
Disable device lib: ${OPT_DISABLE_DEVICE_LIB}
-@@ -10633,9 +10423,6 @@ sdcc ${VERSION} is now configured for
+@@ -10709,9 +10499,6 @@ sdcc ${VERSION} is now configured for
include/library files: ${datadir}/${inclib_dir_suffix}
include files: ${datadir}/${include_dir_suffix}
library files: ${datadir}/${lib_dir_suffix}
@@ -444,7 +444,7 @@ index 42b1c7d..00ecb51 100755
documentation: ${docdir}
prefix: ${prefix}
-@@ -10647,15 +10434,9 @@ sdcc ${VERSION} is now configured for
+@@ -10723,15 +10510,9 @@ sdcc ${VERSION} is now configured for
include files: ${incPath1}
path(argv[0])${incPath2}
${incPath3}
@@ -460,15 +460,15 @@ index 42b1c7d..00ecb51 100755
" >&5
$as_echo "
sdcc ${VERSION} is now configured for
-@@ -10687,7 +10468,6 @@ sdcc ${VERSION} is now configured for
- tlcs90 ${enable_tlcs90_port}
- stm8 ${enable_stm8_port}
+@@ -10769,7 +10550,6 @@ sdcc ${VERSION} is now configured for
+ pdk15 ${enable_pdk15_port}
+ pdk16 ${enable_pdk16_port}
- Disable non-free lib: ${OPT_DISABLE_NON_FREE}
Disable packihx: ${OPT_DISABLE_PACKIHX}
Disable ucsim: ${OPT_DISABLE_UCSIM}
Disable device lib: ${OPT_DISABLE_DEVICE_LIB}
-@@ -10702,9 +10482,6 @@ sdcc ${VERSION} is now configured for
+@@ -10784,9 +10564,6 @@ sdcc ${VERSION} is now configured for
include/library files: ${datadir}/${inclib_dir_suffix}
include files: ${datadir}/${include_dir_suffix}
library files: ${datadir}/${lib_dir_suffix}
@@ -478,7 +478,7 @@ index 42b1c7d..00ecb51 100755
documentation: ${docdir}
prefix: ${prefix}
-@@ -10716,14 +10493,8 @@ sdcc ${VERSION} is now configured for
+@@ -10798,14 +10575,8 @@ sdcc ${VERSION} is now configured for
include files: ${incPath1}
path(argv[0])${incPath2}
${incPath3}
@@ -494,10 +494,10 @@ index 42b1c7d..00ecb51 100755
" >&6; }
# End of configure/configure.in
diff --git a/configure.ac b/configure.ac
-index 3a16e42..bfba129 100644
+index 2185793..76ab155 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -588,19 +588,6 @@ if test "${include_dir_suffix}" = ""; then
+@@ -544,19 +544,6 @@ if test "${include_dir_suffix}" = ""; then
include_dir_suffix="${inclib_dir_suffix}/include"
fi
@@ -517,7 +517,7 @@ index 3a16e42..bfba129 100644
# lib_dir_suffix:
# *nix default: "sdcc/lib"
AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory])
-@@ -608,13 +595,6 @@ if test "${lib_dir_suffix}" = ""; then
+@@ -564,13 +551,6 @@ if test "${lib_dir_suffix}" = ""; then
lib_dir_suffix="${inclib_dir_suffix}/lib"
fi
@@ -531,7 +531,7 @@ index 3a16e42..bfba129 100644
# docdir:
# *nix default: "${datadir}/sdcc/doc"
AC_ARG_VAR([docdir], [documentation installation directory])
-@@ -655,19 +635,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
+@@ -611,19 +591,11 @@ norm_inc_dir_suffix=${include_dir_suffix}
adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator])
AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX,
DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX])
@@ -551,7 +551,7 @@ index 3a16e42..bfba129 100644
# relative paths
adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir])
-@@ -836,7 +808,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx])
+@@ -797,7 +769,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx])
AC_DO_DISABLER(sdcpp, SDCPP, [Disables building sdcpp])
AC_DO_DISABLER(sdcdb, SDCDB, [Disables building sdcdb])
AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils])
@@ -559,7 +559,7 @@ index 3a16e42..bfba129 100644
AC_DO_ENABLER(doc, DOC, [Enables building the documentation])
AC_CHECK_PROG([LYX], [lyx], [lyx], [:])
-@@ -907,16 +878,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
+@@ -868,16 +839,10 @@ if test $OPT_DISABLE_PIC14 = 0; then
AC_CONFIG_FILES(src/pic14/Makefile)
test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14)
fi
@@ -574,17 +574,17 @@ index 3a16e42..bfba129 100644
- test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic16)
-fi
- if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then
+ if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0; then
AC_CONFIG_FILES([src/z80/Makefile])
-@@ -951,7 +916,6 @@ if test $OPT_DISABLE_STM8 = 0; then
- fi
+@@ -939,7 +904,6 @@ fi
+
test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile])
-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && AC_CONFIG_FILES([device/non-free/lib/Makefile])
AC_CONFIG_FILES([main.mk:main_in.mk
src/Makefile
-@@ -966,9 +930,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
+@@ -953,9 +917,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in
Makefile
Makefile.common:Makefile.common.in
])
@@ -594,7 +594,7 @@ index 3a16e42..bfba129 100644
AC_OUTPUT
# I found no better place
-@@ -986,16 +947,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [
+@@ -973,16 +934,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [
adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch])
adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix}, [incPath2], [$dirch])
adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch])
@@ -611,15 +611,15 @@ index 3a16e42..bfba129 100644
AC_MSG_RESULT([
sdcc ${VERSION} is now configured for
-@@ -1027,7 +982,6 @@ sdcc ${VERSION} is now configured for
- tlcs90 ${enable_tlcs90_port}
- stm8 ${enable_stm8_port}
+@@ -1020,7 +975,6 @@ sdcc ${VERSION} is now configured for
+ pdk15 ${enable_pdk15_port}
+ pdk16 ${enable_pdk16_port}
- Disable non-free lib: ${OPT_DISABLE_NON_FREE}
Disable packihx: ${OPT_DISABLE_PACKIHX}
Disable ucsim: ${OPT_DISABLE_UCSIM}
Disable device lib: ${OPT_DISABLE_DEVICE_LIB}
-@@ -1042,9 +996,6 @@ sdcc ${VERSION} is now configured for
+@@ -1035,9 +989,6 @@ sdcc ${VERSION} is now configured for
include/library files: ${datadir}/${inclib_dir_suffix}
include files: ${datadir}/${include_dir_suffix}
library files: ${datadir}/${lib_dir_suffix}
@@ -629,7 +629,7 @@ index 3a16e42..bfba129 100644
documentation: ${docdir}
prefix: ${prefix}
-@@ -1056,14 +1007,8 @@ sdcc ${VERSION} is now configured for
+@@ -1049,14 +1000,8 @@ sdcc ${VERSION} is now configured for
include files: ${incPath1}
path(argv[[0]])${incPath2}
${incPath3}
@@ -645,193 +645,211 @@ index 3a16e42..bfba129 100644
])
# End of configure/configure.in
diff --git a/device/lib/pic14/Makefile.common b/device/lib/pic14/Makefile.common
-index e456838..8179255 100644
+index 019fe0f..da3389d 100644
--- a/device/lib/pic14/Makefile.common
+++ b/device/lib/pic14/Makefile.common
-@@ -3,11 +3,10 @@ EARCH ?= @EARCH@
-
+@@ -68,14 +68,14 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
AM_CPPFLAGS =
AM_CPPFLAGS += -I.
--AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14
+ AM_CPPFLAGS += -I$(top_srcdir)
+-AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14 -I$(DEVICE_TOP_DIR)/include
++AM_CPPFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/include
- AM_CFLAGS =
- AM_CFLAGS += -mpic14 -p$(ARCH)
--AM_CFLAGS += --no-warn-non-free
- AM_CFLAGS += --std-c99
- #AM_CFLAGS += --asm="$(CCAS)"
- ##AM_CFLAGS += -Wa,-q
-@@ -29,7 +28,7 @@ AM_CFLAGS += --i-code-in-asm
+ ############################################################
+ # C compiler flags
+ ############################################################
+ SDCC_FLAGS =
+-SDCC_FLAGS += -mpic14 --less-pedantic --no-warn-non-free --i-code-in-asm --fverbose-asm
++SDCC_FLAGS += -mpic14 --less-pedantic --i-code-in-asm --fverbose-asm
+ SDCC_FLAGS += --std-c11
+
+ # extra flags for enhanced cores
+@@ -113,7 +113,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
AM_CCASFLAGS =
AM_CCASFLAGS += -p$(ARCH)
--AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14
AM_CCASFLAGS += -I$(srcdir)
+-AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14 -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS += -I$(DEVICE_TOP_DIR)/include/pic14
- clean-local:
+ ############################################################
+ # Common actions
diff --git a/device/lib/pic14/Makefile.in b/device/lib/pic14/Makefile.in
-index f1c9940..de47dbe 100644
+index 39b6cb0..ae3e37b 100644
--- a/device/lib/pic14/Makefile.in
+++ b/device/lib/pic14/Makefile.in
-@@ -297,15 +297,13 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- SUBDIRS = libm libsdcc/regular $(am__append_1) $(am__append_2)
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
-
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
-- --i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
-
- #AM_CFLAGS += --no-pcode-opt
-
-@@ -316,8 +314,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- DISTCLEANFILES = a.cod a.hex ./.checkdevices/*
- all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
+@@ -335,13 +335,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_4)
+
+ # extra flags for enhanced cores
+@@ -366,8 +365,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
+diff --git a/device/lib/pic14/libc/Makefile.in b/device/lib/pic14/libc/Makefile.in
+index 0efeeb0..d4dd8e6 100644
+--- a/device/lib/pic14/libc/Makefile.in
++++ b/device/lib/pic14/libc/Makefile.in
+@@ -878,13 +878,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+
+ # extra flags for enhanced cores
+@@ -909,8 +908,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
diff --git a/device/lib/pic14/libm/Makefile.in b/device/lib/pic14/libm/Makefile.in
-index fd9fd2e..4a7d250 100644
+index f0dc9ca..98ed2cf 100644
--- a/device/lib/pic14/libm/Makefile.in
+++ b/device/lib/pic14/libm/Makefile.in
-@@ -299,15 +299,13 @@ libm_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c ceilf.c \
- libm_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS)
- libme_a_SOURCES = $(libm_a_SOURCES)
- libme_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS) $(am__append_2)
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
-
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
-- --i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
-
- #AM_CFLAGS += --no-pcode-opt
-
-@@ -318,8 +316,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
-
- .SUFFIXES:
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_9)
+
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
diff --git a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
-index e946da7..bced941 100644
+index 098ec94..d1240ba 100644
--- a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
+++ b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in
-@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- _gptrput3.S _gptrput4.S macros.inc
- libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
-
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
-- --i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
-
- #AM_CFLAGS += --no-pcode-opt
-
-@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
-
- .SUFFIXES:
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
diff --git a/device/lib/pic14/libsdcc/enhanced/Makefile.in b/device/lib/pic14/libsdcc/enhanced/Makefile.in
-index 7fe1e25..854f87f 100644
+index d2dba9c..0857601 100644
--- a/device/lib/pic14/libsdcc/enhanced/Makefile.in
+++ b/device/lib/pic14/libsdcc/enhanced/Makefile.in
-@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- _gptrput3.S _gptrput4.S macros.inc
- libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
-
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
-- --i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
-
- #AM_CFLAGS += --no-pcode-opt
-
-@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
-
- .SUFFIXES:
+@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+
+ # extra flags for enhanced cores
+@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
diff --git a/device/lib/pic14/libsdcc/regular/Makefile.in b/device/lib/pic14/libsdcc/regular/Makefile.in
-index 29a5924..8c60a49 100644
+index 3c9bccd..9430fb5 100644
--- a/device/lib/pic14/libsdcc/regular/Makefile.in
+++ b/device/lib/pic14/libsdcc/regular/Makefile.in
-@@ -304,15 +304,13 @@ libsdcc_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \
- _gptrput3.S _gptrput4.S macros.inc shadowregs.c
- libsdcc_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS)
- CLEANFILES = ../*.asm ../*.lst
--AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14
-+AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14
- #AM_CFLAGS += --asm="$(CCAS)"
-
- #AM_CFLAGS += --debug-ralloc
- #AM_CFLAGS += --debug-xtra
- #AM_CFLAGS += --pcode-verbose
--AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
-- --i-code-in-asm
-+AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm
-
- #AM_CFLAGS += --no-pcode-opt
-
-@@ -323,8 +321,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \
- #AM_CFLAGS += --noinduction
- #AM_CFLAGS += --nojtbound
- #AM_CFLAGS += --noloopreverse
--AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \
-- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir)
-+AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir)
- all: all-am
-
- .SUFFIXES:
+@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR))
+ # C preprocessor flags
+ ############################################################
+ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14 \
+ -I$(DEVICE_TOP_DIR)/include
+
+ ############################################################
+ # C compiler flags
+ ############################################################
+-SDCC_FLAGS = -mpic14 --less-pedantic --no-warn-non-free \
++SDCC_FLAGS = -mpic14 --less-pedantic \
+ --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5)
+
+ # extra flags for enhanced cores
+@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO
+ ############################################################
+ # Assembler flags
+ ############################################################
+-AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \
+- -I$(DEVICE_TOP_DIR)/non-free/include/pic14
++AM_CCASFLAGS = -p$(ARCH) -I$(srcdir) -I$(DEVICE_TOP_DIR)/include/pic14
+
+ # extensions generated by the build process
+ CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb
diff --git a/device/lib/pic16/Makefile.common b/device/lib/pic16/Makefile.common
-index 73200d7..e298bf5 100644
+index 01ad950..62839b9 100644
--- a/device/lib/pic16/Makefile.common
+++ b/device/lib/pic16/Makefile.common
@@ -1,11 +1,10 @@
@@ -841,7 +859,7 @@ index 73200d7..e298bf5 100644
+AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16
AM_CFLAGS =
- AM_CFLAGS += --std-c99
+ AM_CFLAGS += --std-c11
AM_CFLAGS += --asm="$(CCAS)"
-AM_CFLAGS += --no-warn-non-free
##AM_CFLAGS += -Wa,-q
@@ -857,7 +875,7 @@ index 73200d7..e298bf5 100644
clean-local:
diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in
-index b17f151..31ecfa4 100644
+index 15d2e1d..9664ad4 100644
--- a/device/lib/pic16/Makefile.in
+++ b/device/lib/pic16/Makefile.in
@@ -87,10 +87,7 @@ PRE_UNINSTALL = :
@@ -886,8 +904,8 @@ index b17f151..31ecfa4 100644
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -897,7 +915,7 @@ index b17f151..31ecfa4 100644
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure
-index d8760a0..eaea231 100755
+index c8f5b98..76f93a8 100755
--- a/device/lib/pic16/configure
+++ b/device/lib/pic16/configure
@@ -3657,7 +3657,6 @@ fi
@@ -924,7 +942,7 @@ index 3966c11..cdbffc7 100644
# Checks for header files.
diff --git a/device/lib/pic16/debug/Makefile.in b/device/lib/pic16/debug/Makefile.in
-index bc77b98..724a443 100644
+index df593e3..8cb5137 100644
--- a/device/lib/pic16/debug/Makefile.in
+++ b/device/lib/pic16/debug/Makefile.in
@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -939,7 +957,7 @@ index bc77b98..724a443 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -290,8 +287,7 @@ top_builddir = @top_builddir@
+@@ -291,8 +288,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
lib_LIBRARIES = libdebug.a
libdebug_a_SOURCES = gstack/gstack.c
@@ -949,12 +967,12 @@ index bc77b98..724a443 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -305,11 +301,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -306,11 +302,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -964,7 +982,7 @@ index bc77b98..724a443 100644
.SUFFIXES:
diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in
-index 6d2699f..5546319 100644
+index 85bec90..c0ea488 100644
--- a/device/lib/pic16/libc/Makefile.in
+++ b/device/lib/pic16/libc/Makefile.in
@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -979,7 +997,7 @@ index 6d2699f..5546319 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -344,8 +341,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
+@@ -381,8 +378,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \
string/strpbrk.c string/strrchr.c string/strspn.c \
string/strstr.c string/strtok.c string/strupr.c \
utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S
@@ -989,12 +1007,12 @@ index 6d2699f..5546319 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -359,11 +355,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -396,11 +392,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1004,7 +1022,7 @@ index 6d2699f..5546319 100644
.SUFFIXES:
diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in
-index 0d7c731..64b56c8 100644
+index 06fff29..78fe388 100644
--- a/device/lib/pic16/libio/Makefile.in
+++ b/device/lib/pic16/libio/Makefile.in
@@ -481,10 +481,7 @@ POST_UNINSTALL = :
@@ -1019,7 +1037,7 @@ index 0d7c731..64b56c8 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -9826,8 +9823,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
+@@ -15600,8 +15597,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \
libio18lf8722_a_CFLAGS = -p18lf8722 $(AM_CFLAGS)
libio18lf8723_a_SOURCES = dummy.c
libio18lf8723_a_CFLAGS = -p18lf8723 $(AM_CFLAGS)
@@ -1029,12 +1047,12 @@ index 0d7c731..64b56c8 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -9841,11 +9837,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -15615,11 +15611,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1089,7 +1107,7 @@ index 211604e..e8896bf 100755
include \$(top_srcdir)/Makefile.common
diff --git a/device/lib/pic16/libm/Makefile.in b/device/lib/pic16/libm/Makefile.in
-index 7f90e89..94cd985 100644
+index 6728a39..495459e 100644
--- a/device/lib/pic16/libm/Makefile.in
+++ b/device/lib/pic16/libm/Makefile.in
@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1104,7 +1122,7 @@ index 7f90e89..94cd985 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -299,8 +296,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
+@@ -312,8 +309,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \
frexpf.c isinf.c isnan.c ldexpf.c log10f.c logf.c modff.c \
powf.c sincosf.c sincoshf.c sinf.c sinhf.c sqrtf.c tancotf.c \
tanf.c tanhf.c
@@ -1114,12 +1132,12 @@ index 7f90e89..94cd985 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -314,11 +310,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -327,11 +323,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1129,7 +1147,7 @@ index 7f90e89..94cd985 100644
.SUFFIXES:
diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in
-index e58bad0..b318b70 100644
+index 331aea0..63565be 100644
--- a/device/lib/pic16/libsdcc/Makefile.in
+++ b/device/lib/pic16/libsdcc/Makefile.in
@@ -88,10 +88,7 @@ PRE_UNINSTALL = :
@@ -1144,7 +1162,7 @@ index e58bad0..b318b70 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -364,8 +361,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
+@@ -413,8 +410,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \
int/modsint.c int/moduint.c int/mulint.c long/divslong.c \
long/divulong.c long/modslong.c long/modulong.c long/mullong.c \
lregs/lrrest.c lregs/lrst.c stack/stack.S
@@ -1154,12 +1172,12 @@ index e58bad0..b318b70 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -379,11 +375,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -428,11 +424,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1169,7 +1187,7 @@ index e58bad0..b318b70 100644
.SUFFIXES:
diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in
-index 3c44c6f..274acde 100644
+index 2e59220..b213866 100644
--- a/device/lib/pic16/startup/Makefile.in
+++ b/device/lib/pic16/startup/Makefile.in
@@ -89,10 +89,7 @@ PRE_UNINSTALL = :
@@ -1184,7 +1202,7 @@ index 3c44c6f..274acde 100644
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-@@ -306,8 +303,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
+@@ -308,8 +305,7 @@ libcrt0iz_a_SOURCES = crt0iz.c
# Force installation of .o files into $libdir
crtdir = $(libdir)
crt_DATA = crt0.o crt0i.o crt0iz.o
@@ -1194,12 +1212,12 @@ index 3c44c6f..274acde 100644
#AM_CFLAGS += --no-optimize-goto
#AM_CFLAGS += --debug-ralloc
-@@ -321,11 +317,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
+@@ -323,11 +319,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \
#AM_CFLAGS += --noinduction
#AM_CFLAGS += --nojtbound
#AM_CFLAGS += --noloopreverse
--AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \
-+AM_CFLAGS = --std-c99 --asm="$(CCAS)" \
+-AM_CFLAGS = --std-c11 --asm="$(CCAS)" --no-warn-non-free \
++AM_CFLAGS = --std-c11 --asm="$(CCAS)" \
--fomit-frame-pointer --obanksel=9 --denable-peeps \
--optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@
-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \
@@ -1209,7 +1227,7 @@ index 3c44c6f..274acde 100644
.SUFFIXES:
diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
-index 7d83ef7..5bd71d3 100644
+index 76a6f42..0f92463 100644
--- a/doc/INSTALL.txt
+++ b/doc/INSTALL.txt
@@ -18,9 +18,7 @@ To install:
@@ -1243,7 +1261,7 @@ index 7d83ef7..5bd71d3 100644
You can test the install by entering:
diff --git a/doc/README.txt b/doc/README.txt
-index 86ed809..69e16e2 100644
+index 88f8c98..a36db81 100644
--- a/doc/README.txt
+++ b/doc/README.txt
@@ -35,10 +35,9 @@ Exception are pic device libraries and header files which are derived
@@ -1261,13 +1279,13 @@ index 86ed809..69e16e2 100644
See:
diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx
-index 41e8db0..9a971fa 100644
+index d18a509..b95bf61 100644
--- a/doc/sdccman.lyx
+++ b/doc/sdccman.lyx
-@@ -1083,54 +1083,9 @@ Exception are pic device libraries and header files which are derived from
- Microchip requires that "The header files should state that they are only
+@@ -1092,54 +1092,9 @@ A possible exception are pic device libraries and header files which are
to be used with authentic Microchip devices" which makes them incompatible
- with the GPL.
+ with the GPL, if Microchip has any copyright in them (which might depend
+ on local copyright laws).
- Pic device libraries and header files are located at non-free/lib and non-free/
-include directories respectively.
- SDCC should be run with the
@@ -1322,7 +1340,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\begin_layout Itemize
-@@ -2890,18 +2845,6 @@ include_dir_suffix environment variable, see table below
+@@ -2870,18 +2825,6 @@ include_dir_suffix environment variable, see table below
\end_inset
@@ -1341,7 +1359,7 @@ index 41e8db0..9a971fa 100644
\begin_inset space ~
\end_inset
-@@ -2914,22 +2857,6 @@ lib_dir_suffix environment variable, see table below
+@@ -2894,22 +2837,6 @@ lib_dir_suffix environment variable, see table below
\end_inset
@@ -1364,7 +1382,7 @@ index 41e8db0..9a971fa 100644
\begin_inset space ~
\end_inset
-@@ -3410,7 +3337,7 @@ These defaults are:
+@@ -3408,7 +3335,7 @@ These defaults are:
\begin_layout Standard
\align center
\begin_inset Tabular
@@ -1373,7 +1391,7 @@ index 41e8db0..9a971fa 100644
<features tabularvalignment="middle">
<column alignment="block" valignment="top" width="0in">
<column alignment="block" valignment="top" width="0in">
-@@ -3694,68 +3621,6 @@ sdcc/include
+@@ -3692,68 +3619,6 @@ sdcc/include
include
\end_layout
@@ -1442,7 +1460,7 @@ index 41e8db0..9a971fa 100644
\end_inset
</cell>
</row>
-@@ -3766,7 +3631,7 @@ lib
+@@ -3764,7 +3629,7 @@ lib
\begin_layout Plain Layout
\emph on
@@ -1451,7 +1469,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\end_inset
-@@ -3775,7 +3640,7 @@ NON_FREE_LIB_DIR_SUFFIX
+@@ -3773,7 +3638,7 @@ NON_FREE_LIB_DIR_SUFFIX
\begin_inset Text
\begin_layout Plain Layout
@@ -1460,7 +1478,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\end_inset
-@@ -3784,7 +3649,7 @@ sdcc/non-free/lib
+@@ -3782,7 +3647,7 @@ sdcc/non-free/lib
\begin_inset Text
\begin_layout Plain Layout
@@ -1469,7 +1487,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\end_inset
-@@ -4183,20 +4048,6 @@ include
+@@ -4181,20 +4046,6 @@ include
\end_inset
@@ -1490,7 +1508,7 @@ index 41e8db0..9a971fa 100644
\backslash
\begin_inset Newline newline
-@@ -4211,20 +4062,6 @@ lib
+@@ -4209,20 +4060,6 @@ lib
\end_inset
@@ -1511,7 +1529,7 @@ index 41e8db0..9a971fa 100644
\backslash
\begin_inset Newline newline
-@@ -4405,20 +4242,6 @@ include
+@@ -4403,20 +4240,6 @@ include
\end_inset
@@ -1532,7 +1550,7 @@ index 41e8db0..9a971fa 100644
\backslash
\begin_inset Newline newline
-@@ -4433,20 +4256,6 @@ lib
+@@ -4431,20 +4254,6 @@ lib
\end_inset
@@ -1553,7 +1571,7 @@ index 41e8db0..9a971fa 100644
\backslash
\begin_inset Newline newline
-@@ -4543,7 +4352,7 @@ Install paths
+@@ -4541,7 +4350,7 @@ Install paths
\begin_layout Standard
\align center
\begin_inset Tabular
@@ -1562,7 +1580,7 @@ index 41e8db0..9a971fa 100644
<features tabularvalignment="middle">
<column alignment="left" valignment="top">
<column alignment="left" valignment="top" width="4.5cm">
-@@ -4699,64 +4508,6 @@ include
+@@ -4697,64 +4506,6 @@ include
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
@@ -1627,7 +1645,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Plain Layout
Library file**
\end_layout
-@@ -4806,64 +4557,6 @@ sdcc
+@@ -4804,64 +4555,6 @@ sdcc
lib
\end_layout
@@ -1692,7 +1710,7 @@ index 41e8db0..9a971fa 100644
\end_inset
</cell>
</row>
-@@ -5186,7 +4879,7 @@ $PATH
+@@ -5184,7 +4877,7 @@ $PATH
\begin_layout Standard
\align center
\begin_inset Tabular
@@ -1701,7 +1719,7 @@ index 41e8db0..9a971fa 100644
<features tabularvalignment="middle">
<column alignment="block" valignment="top" width="0.5cm">
<column alignment="block" valignment="top" width="4.8cm">
-@@ -5464,203 +5157,13 @@ include
+@@ -5462,203 +5155,13 @@ include
</cell>
</row>
<row>
@@ -1906,7 +1924,7 @@ index 41e8db0..9a971fa 100644
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-@@ -5676,21 +5179,13 @@ $DATADIR/
+@@ -5674,21 +5177,13 @@ $DATADIR/
\end_inset
@@ -1929,7 +1947,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Text
\begin_layout Plain Layout
-@@ -5698,7 +5193,7 @@ $INCLUDE_DIR_SUFFIX
+@@ -5696,7 +5191,7 @@ $INCLUDE_DIR_SUFFIX
\begin_inset Newline newline
\end_inset
@@ -1938,7 +1956,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\end_inset
-@@ -5796,7 +5291,7 @@ model
+@@ -5794,7 +5289,7 @@ model
\begin_layout Standard
\align center
\begin_inset Tabular
@@ -1947,7 +1965,7 @@ index 41e8db0..9a971fa 100644
<features tabularvalignment="middle">
<column alignment="block" valignment="top" width="0.5cm">
<column alignment="block" valignment="top" width="4.5cm">
-@@ -6076,7 +5571,7 @@ lib
+@@ -6074,7 +5569,7 @@ lib
</cell>
</row>
<row>
@@ -1956,7 +1974,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Text
\begin_layout Plain Layout
-@@ -6085,7 +5580,7 @@ lib
+@@ -6083,7 +5578,7 @@ lib
\end_inset
</cell>
@@ -1965,7 +1983,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Text
\begin_layout Plain Layout
-@@ -6116,7 +5611,7 @@ $LIB_DIR_SUFFIX/
+@@ -6114,7 +5609,7 @@ $LIB_DIR_SUFFIX/
\end_inset
</cell>
@@ -1974,7 +1992,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Text
\begin_layout Plain Layout
-@@ -6131,7 +5626,7 @@ lib/
+@@ -6129,7 +5624,7 @@ lib/
\end_inset
</cell>
@@ -1983,7 +2001,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Text
\begin_layout Plain Layout
-@@ -6154,308 +5649,6 @@ lib
+@@ -6152,308 +5647,6 @@ lib
<model>
\end_layout
@@ -2292,7 +2310,7 @@ index 41e8db0..9a971fa 100644
\end_inset
</cell>
</row>
-@@ -8723,14 +7916,6 @@ In <installdir>/share/sdcc/include
+@@ -8717,14 +7910,6 @@ In <installdir>/share/sdcc/include
the include files
\end_layout
@@ -2307,7 +2325,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Standard
In <installdir>/share/sdcc/lib
\end_layout
-@@ -8739,14 +7924,6 @@ In <installdir>/share/sdcc/lib
+@@ -8733,14 +7918,6 @@ In <installdir>/share/sdcc/lib
the src and target subdirectories with the precompiled relocatables.
\end_layout
@@ -2322,7 +2340,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Standard
In <installdir>/share/sdcc/doc
\end_layout
-@@ -15589,66 +14766,6 @@ splint
+@@ -15254,66 +14431,6 @@ splint
myprogram.c
\end_layout
@@ -2389,7 +2407,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Subsection
Linker Options
\begin_inset Index idx
-@@ -44653,66 +43770,9 @@ http://sourceforge.net/projects/gputils
+@@ -44656,66 +43773,9 @@ http://sourceforge.net/projects/gputils
Pic device specific header and c source files are automatically generated
from MPLAB include files, which are published by Microchip with a special
requirement that they are only to be used with authentic Microchip devices.
@@ -2459,7 +2477,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Newline newline
\end_inset
-@@ -44766,7 +43826,7 @@ Makefile
+@@ -44769,7 +43829,7 @@ Makefile
\begin_inset space ~
\end_inset
@@ -2468,7 +2486,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Newline newline
\end_inset
-@@ -44860,7 +43920,7 @@ Makefile
+@@ -44863,7 +43923,7 @@ Makefile
\begin_inset space ~
\end_inset
@@ -2477,7 +2495,7 @@ index 41e8db0..9a971fa 100644
\begin_inset Newline newline
\end_inset
-@@ -45142,47 +44202,6 @@ status collapsed
+@@ -45145,47 +44205,6 @@ status collapsed
\begin_layout Plain Layout
@@ -2525,7 +2543,7 @@ index 41e8db0..9a971fa 100644
\backslash
/
\end_layout
-@@ -46055,47 +45074,6 @@ status collapsed
+@@ -46058,47 +45077,6 @@ status collapsed
-all-callee-saves
\end_layout
@@ -2573,7 +2591,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Subsection
Port Specific Options
\begin_inset Index idx
-@@ -47372,188 +46350,6 @@ Linker
+@@ -47375,188 +46353,6 @@ Linker
\end_inset
@@ -2762,7 +2780,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\begin_layout Subsection
-@@ -48249,66 +47045,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
+@@ -48252,66 +47048,9 @@ name "subsec:PIC16_Header-Files-and-Libraries"
Pic device specific header and c source files are automatically generated
from MPLAB include files, which are published by Microchip with a special
requirement that they are only to be used with authentic Microchip devices.
@@ -2832,7 +2850,7 @@ index 41e8db0..9a971fa 100644
\end_layout
\begin_layout Subsection
-@@ -48554,195 +47293,6 @@ vfprintf.c
+@@ -48557,195 +47296,6 @@ vfprintf.c
should also work, but is untested.
\end_layout
@@ -3028,7 +3046,7 @@ index 41e8db0..9a971fa 100644
\begin_layout Subsection
Memory Models
\end_layout
-@@ -73525,6 +72075,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
+@@ -73531,6 +72081,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC
developers.
\end_layout
@@ -3042,7 +3060,7 @@ index 41e8db0..9a971fa 100644
All product names mentioned herein may be trademarks
\begin_inset Index idx
diff --git a/sdcc.spec b/sdcc.spec
-index 9f1eeff..3686228 100644
+index b8baa92..be90a84 100644
--- a/sdcc.spec
+++ b/sdcc.spec
@@ -83,15 +83,15 @@ rm -rf $RPM_BUILD_ROOT
@@ -3058,11 +3076,11 @@ index 9f1eeff..3686228 100644
%doc %{_defaultdocdir}
%changelog
-+* Sat Oct 31 2020 - simon AT simonsouth.net
++* Tue Dec 08 2020 - simon AT simonsouth.net
+- removed non-free include and lib directories
- * Wed Feb 07 2018 - pkk AT spth.de
- - version updated to 3.7.0
- * Sun May 29 2016 - sourceforge.brock AT dse.nl
+ * Sat Jan 18 2029 - pkk AT spth.de
+ - version updated to 4.0.0
+ * Fri Apr 05 2019 - krauseph AT informatik.uni-freiburg.de
diff --git a/sdcc_vc.h.in b/sdcc_vc.h.in
index 06d8cca..736c325 100644
--- a/sdcc_vc.h.in
@@ -3077,10 +3095,10 @@ index 06d8cca..736c325 100644
#define BIN2DATA_DIR "\\.."
#define PREFIX2BIN_DIR "\\bin"
diff --git a/sdccconf_in.h b/sdccconf_in.h
-index 29619bd..dadf310 100644
+index aeb2724..9c1df9d 100644
--- a/sdccconf_in.h
+++ b/sdccconf_in.h
-@@ -106,12 +106,6 @@
+@@ -97,12 +97,6 @@
/* XXX */
#undef LIB_DIR_SUFFIX
@@ -3093,7 +3111,7 @@ index 29619bd..dadf310 100644
/* Define to 1 to disable the AVR port */
#undef OPT_DISABLE_AVR
-@@ -133,9 +127,6 @@
+@@ -127,9 +121,6 @@
/* XXX */
#undef OPT_DISABLE_MCS51
@@ -3104,10 +3122,10 @@ index 29619bd..dadf310 100644
#undef OPT_DISABLE_PACKIHX
diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h
-index 2ce040b..d72d3b8 100644
+index b8d156b..db81fd7 100644
--- a/src/SDCCglobl.h
+++ b/src/SDCCglobl.h
-@@ -315,7 +315,6 @@ struct options
+@@ -288,7 +288,6 @@ struct options
int no_pack_iram; /* MCS51/DS390 - Deprecated: Tells the linker not to pack variables in internal ram */
int acall_ajmp; /* MCS51 - Use acall/ajmp instead of lcall/ljmp */
int no_ret_without_call; /* MCS51 - Do not use ret independent of acall/lcall */
@@ -3116,10 +3134,10 @@ index 2ce040b..d72d3b8 100644
int xstack_loc; /* initial location of external stack */
int stack_loc; /* initial value of internal stack pointer */
diff --git a/src/SDCCmain.c b/src/SDCCmain.c
-index a523164..a279d3d 100644
+index d4598a5..cd36f3d 100644
--- a/src/SDCCmain.c
+++ b/src/SDCCmain.c
-@@ -144,7 +144,6 @@ char buffer[PATH_MAX * 2];
+@@ -142,7 +142,6 @@ char buffer[PATH_MAX * 2];
#define OPTION_DATA_SEG "--dataseg"
#define OPTION_DOLLARS_IN_IDENT "--fdollars-in-identifiers"
#define OPTION_SIGNED_CHAR "--fsigned-char"
@@ -3127,15 +3145,15 @@ index a523164..a279d3d 100644
#define OPTION_PEEP_RETURN "--peep-return"
#define OPTION_NO_PEEP_RETURN "--no-peep-return"
#define OPTION_NO_OPTSDCC_IN_ASM "--no-optsdcc-in-asm"
-@@ -192,7 +191,6 @@ static const OPTION optionsTable[] = {
- {0, OPTION_STD_SDCC11, NULL, "Use ISO C11 standard with SDCC extensions (default)"},
+@@ -197,7 +196,6 @@ static const OPTION optionsTable[] = {
+ {0, OPTION_STD_SDCC2X, NULL, "Use ISO C2X standard with SDCC extensions"},
{0, OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"},
{0, OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"},
- {0, OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"},
{0, NULL, NULL, "Code generation options"},
{'m', NULL, NULL, "Set the port to use e.g. -mz80."},
-@@ -2045,10 +2043,6 @@ preProcess (char **envp)
+@@ -2084,10 +2082,6 @@ preProcess (char **envp)
else
addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED"));
@@ -3146,7 +3164,7 @@ index a523164..a279d3d 100644
/* set the macro for large model */
switch (options.model)
{
-@@ -2262,12 +2256,6 @@ setIncludePath (void)
+@@ -2301,12 +2295,6 @@ setIncludePath (void)
* 6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX
* 7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX
* 8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix)
@@ -3159,7 +3177,7 @@ index a523164..a279d3d 100644
*/
if (!options.nostdinc)
-@@ -2280,17 +2268,6 @@ setIncludePath (void)
+@@ -2319,17 +2307,6 @@ setIncludePath (void)
includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL);
mergeSets (&includeDirsSet, tempSet);
@@ -3177,7 +3195,7 @@ index a523164..a279d3d 100644
if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL)
{
struct dbuf_s dbuf;
-@@ -2315,9 +2292,6 @@ setLibPath (void)
+@@ -2354,9 +2331,6 @@ setLibPath (void)
* 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/<model>
* 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/<model>
* 5. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix)
@@ -3187,7 +3205,7 @@ index a523164..a279d3d 100644
*/
if (!options.nostdlib)
-@@ -2334,13 +2308,6 @@ setLibPath (void)
+@@ -2373,13 +2347,6 @@ setLibPath (void)
dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname);
libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL);
@@ -3202,7 +3220,7 @@ index a523164..a279d3d 100644
{
addSetHead (&libDirsSet, Safe_strdup (p));
diff --git a/src/pic14/main.c b/src/pic14/main.c
-index 3d868cc..e8ecaaf 100644
+index ee90470..519ccfc 100644
--- a/src/pic14/main.c
+++ b/src/pic14/main.c
@@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] =
@@ -3213,9 +3231,9 @@ index 3d868cc..e8ecaaf 100644
{ 0, NULL, NULL, NULL }
};
-@@ -153,16 +152,6 @@ _pic14_finaliseOptions (void)
- addSet (&preArgvSet, dbuf_detach_c_str (&dbuf));
- }
+@@ -176,16 +175,6 @@ _pic14_finaliseOptions (void)
+ addSet (&preArgvSet, Safe_strdup (dbuf_detach_c_str (&dbuf)));
+ }
- if (!pic14_options.no_warn_non_free && !options.use_non_free)
- {
@@ -3255,7 +3273,7 @@ index cdfbba0..5877f09 100644
extern pic16_options_t pic16_options;
diff --git a/src/pic16/main.c b/src/pic16/main.c
-index 6f194c1..7f7b2f0 100644
+index 61d9cfb..75d1182 100644
--- a/src/pic16/main.c
+++ b/src/pic16/main.c
@@ -655,7 +655,6 @@ OPTION pic16_optionsTable[]= {
@@ -3292,23 +3310,25 @@ index 6f194c1..7f7b2f0 100644
static const char *
diff --git a/src/regression/Makefile b/src/regression/Makefile
-index 26a7ff3..4547295 100644
+index d8dae7c..1a32355 100644
--- a/src/regression/Makefile
+++ b/src/regression/Makefile
-@@ -65,10 +65,10 @@ TARGETPIC = 18f452
- CFLAGS = -mpic16 -p$(TARGETPIC)
- DIR = pic16
- endif
--CFLAGS += -Wl,-q --no-warn-non-free
-+CFLAGS += -Wl,-q
- CFLAGS += -Wl,--map
--CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR) -I $(SDCC_SRC)/device/non-free/include/$(DIR)
--CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR) -L $(SDCC_BIN)/device/non-free/lib/build/$(DIR)
-+CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR)
-+CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR)
- #CFLAGS += --no-pcode-opt
- #CFLAGS += -V
-
+@@ -107,12 +107,12 @@ endif
+ CC = $(top_builddir)/bin/sdcc
+
+ # compiler options
+-CFLAGS = --no-warn-non-free -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
+-CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/non-free/include/$(ARCH) -I$(top_srcdir)/device/include
++CFLAGS = -m$(ARCH) -p$(DEV) --fsigned-char --i-code-in-asm --fverbose-asm --std-c99
++CFLAGS += --nostdinc -I$(top_srcdir)/device/include/$(ARCH) -I$(top_srcdir)/device/include
+
+ # linker options (for sdcc)
+ CFLAGS += -Wl,-l,-O2
+-CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH) -L$(top_builddir)/device/non-free/lib/build/$(ARCH)
++CFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/$(ARCH)
+
+ # linker libraries
+ LIB_SUFFIX = $(LIB_E)$(LIB_O)$(LIB_X)
diff --git a/support/regression/ports/pic14/spec.mk b/support/regression/ports/pic14/spec.mk
index a3dcc05..bef1c45 100644
--- a/support/regression/ports/pic14/spec.mk
@@ -3475,10 +3495,10 @@ index 6db417a..4b35225 100755
);
diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi
-index 5086181..9527244 100644
+index 68e9035..92e5784 100644
--- a/support/scripts/sdcc.nsi
+++ b/support/scripts/sdcc.nsi
-@@ -477,11 +477,6 @@ ${Section} "SDCC include files" SEC05
+@@ -483,11 +483,6 @@ ${Section} "SDCC include files" SEC05
SetOutPath "$INSTDIR\include"
File "${DEV_ROOT}\include\*.h"
@@ -3490,7 +3510,7 @@ index 5086181..9527244 100644
${SectionEnd}
${Section} "SDCC DS390 library" SEC06
-@@ -579,18 +574,12 @@ ${Section} "SDCC PIC16 library" SEC21
+@@ -585,18 +580,12 @@ ${Section} "SDCC PIC16 library" SEC21
SetOutPath "$INSTDIR\lib\pic16"
File "${DEV_ROOT}\lib\pic16\*.o"
File "${DEV_ROOT}\lib\pic16\*.lib"
@@ -3508,8 +3528,8 @@ index 5086181..9527244 100644
- File "${DEV_ROOT}\non-free\lib\pic14\*.lib"
${SectionEnd}
- ${Section} "SDCC STM8 library" SEC23
-@@ -691,10 +680,6 @@ ${Section} "SDCC library sources" SEC25
+ ${Section} "SDCC STM8 small model library" SEC23
+@@ -697,10 +686,6 @@ ${Section} "SDCC library sources" SEC25
File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc"
# File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
@@ -3518,9 +3538,9 @@ index 5086181..9527244 100644
-# File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\Makefile"
-
SetOutPath "$INSTDIR\lib\src\pic14\libm"
- File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
+ # File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
-@@ -746,10 +731,6 @@ ${Section} "SDCC library sources" SEC25
+@@ -752,10 +737,6 @@ ${Section} "SDCC library sources" SEC25
File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S"
# File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile"
@@ -3531,7 +3551,7 @@ index 5086181..9527244 100644
SetOutPath "$INSTDIR\lib\src\pic16\libio"
File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore"
# File "${DEV_ROOT}\lib\src\pic16\libio\Makefile"
-@@ -1003,13 +984,9 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1074,13 +1055,9 @@ ${Section} Uninstall SECUNINSTALL
Delete "$INSTDIR\lib\pic14\*.lib"
@@ -3545,7 +3565,7 @@ index 5086181..9527244 100644
Delete "$INSTDIR\lib\hc08\*.lib"
Delete "$INSTDIR\lib\s08\*.lib"
-@@ -1059,9 +1036,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1144,9 +1121,7 @@ ${Section} Uninstall SECUNINSTALL
Delete "$INSTDIR\include\pic14\*.h"
Delete "$INSTDIR\include\pic14\*.txt"
Delete "$INSTDIR\include\pic14\*.inc"
@@ -3555,7 +3575,7 @@ index 5086181..9527244 100644
Delete "$INSTDIR\include\pic16\*.txt"
Delete "$INSTDIR\include\mcs51\*.h"
Delete "$INSTDIR\include\hc08\*.h"
-@@ -1119,9 +1094,7 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1208,9 +1183,7 @@ ${Section} Uninstall SECUNINSTALL
Delete "$INSTDIR\uninstall.exe"
RMDir /r "$INSTDIR\lib\src\pic14"
@@ -3565,9 +3585,9 @@ index 5086181..9527244 100644
RMDir "$INSTDIR\lib\src\small"
RMDir "$INSTDIR\lib\src\medium"
RMDir "$INSTDIR\lib\src\large"
-@@ -1138,12 +1111,9 @@ ${Section} Uninstall SECUNINSTALL
- RMDir "$INSTDIR\lib\src\s08"
- RMDir "$INSTDIR\lib\src\stm8"
+@@ -1233,12 +1206,9 @@ ${Section} Uninstall SECUNINSTALL
+ RMDir "$INSTDIR\lib\src\pdk15"
+ RMDir "$INSTDIR\lib\src\pdk15-stack-auto"
RMDir "$INSTDIR\lib\src"
- RMDir "$INSTDIR\non-free\lib\src"
@@ -3578,16 +3598,17 @@ index 5086181..9527244 100644
RMDir "$INSTDIR\lib\z80"
RMDir "$INSTDIR\lib\z180"
RMDir "$INSTDIR\lib\r2k"
-@@ -1160,16 +1130,13 @@ ${Section} Uninstall SECUNINSTALL
- RMDir "$INSTDIR\lib\s08"
- RMDir "$INSTDIR\lib\stm8"
+@@ -1261,7 +1231,6 @@ ${Section} Uninstall SECUNINSTALL
+ RMDir "$INSTDIR\lib\pdk15"
+ RMDir "$INSTDIR\lib\pdk15-stack-auto"
RMDir "$INSTDIR\lib"
- RMDir "$INSTDIR\non-free\lib"
RMDir "$INSTDIR\include\asm\z80"
RMDir "$INSTDIR\include\asm\z180"
- RMDir "$INSTDIR\include\asm\r2k"
+@@ -1269,9 +1238,7 @@ ${Section} Uninstall SECUNINSTALL
RMDir "$INSTDIR\include\asm\r3ka"
+ RMDir "$INSTDIR\include\asm\ez80_z80"
RMDir "$INSTDIR\include\asm\pic16"
- RMDir "$INSTDIR\non-free\include\asm\pic16"
RMDir "$INSTDIR\include\asm\pic14"
@@ -3595,7 +3616,7 @@ index 5086181..9527244 100644
RMDir "$INSTDIR\include\asm\mcs51"
RMDir "$INSTDIR\include\asm\gbz80"
RMDir "$INSTDIR\include\asm\ds390"
-@@ -1178,17 +1145,12 @@ ${Section} Uninstall SECUNINSTALL
+@@ -1280,17 +1247,12 @@ ${Section} Uninstall SECUNINSTALL
RMDir "$INSTDIR\include\asm"
RMDir "$INSTDIR\include\z180"
RMDir "$INSTDIR\include\pic14"
diff --git a/gnu/packages/patches/serf-python3.patch b/gnu/packages/patches/serf-python3.patch
new file mode 100644
index 0000000000..636f51ed1e
--- /dev/null
+++ b/gnu/packages/patches/serf-python3.patch
@@ -0,0 +1,29 @@
+Fix build with Python 3 scons.
+
+Patch taken from Arch Linux:
+https://github.com/archlinux/svntogit-packages/blob/packages/serf/trunk/scons-python3.patch
+
+--- serf-1.3.9/SConstruct.orig 2019-07-26 17:49:30.910189251 +0000
++++ serf-1.3.9/SConstruct 2019-07-26 17:49:54.073821735 +0000
+@@ -163,9 +163,9 @@
+ suffix='.def', src_suffix='.h')
+ })
+
+-match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
+- 'SERF_MINOR_VERSION ([0-9]+).*'
+- 'SERF_PATCH_VERSION ([0-9]+)',
++match = re.search(b'SERF_MAJOR_VERSION ([0-9]+).*'
++ b'SERF_MINOR_VERSION ([0-9]+).*'
++ b'SERF_PATCH_VERSION ([0-9]+)',
+ env.File('serf.h').get_contents(),
+ re.DOTALL)
+ MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
+@@ -183,7 +183,7 @@
+
+ unknown = opts.UnknownVariables()
+ if unknown:
+- print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
++ print ('Warning: Used unknown variables:', ', '.join(unknown.keys()))
+
+ apr = str(env['APR'])
+ apu = str(env['APU'])
diff --git a/gnu/packages/patches/shakespeare-spl-fix-grammar.patch b/gnu/packages/patches/shakespeare-spl-fix-grammar.patch
new file mode 100644
index 0000000000..737c0eb8c1
--- /dev/null
+++ b/gnu/packages/patches/shakespeare-spl-fix-grammar.patch
@@ -0,0 +1,16 @@
+ROMAN_HUNDREDS, ROMAN_TENS and ROMAN_ONES seem to use syntax, that is not
+recognized (any longer?) by flex, so let's expand their definitions.
+
+Index: spl-1.2.1/include/roman_numbers.metaflex
+===================================================================
+--- spl-1.2.1.orig/include/roman_numbers.metaflex
++++ spl-1.2.1/include/roman_numbers.metaflex
+@@ -1,5 +1,5 @@
+ ROMAN_THOUSANDS m+
+-ROMAN_HUNDREDS (c(d|m)|dc{0,3}|c{1,3})
+-ROMAN_TENS (x(l|c)|lx{0,3}|x{1,3})
+-ROMAN_ONES (i(v|x)|vi{0,3}|i{1,3})
++ROMAN_HUNDREDS (c(d|m|c?c?)|dc?c?c?)
++ROMAN_TENS (x(l|c|x?x?)|lx?x?x?)
++ROMAN_ONES (i(v|x|i?i?)|vi?i?i?)
+ ROMAN_NUMBER {ROMAN_ONES}|{ROMAN_TENS}{ROMAN_ONES}?|{ROMAN_HUNDREDS}{ROMAN_TENS}?{ROMAN_ONES}?|{ROMAN_THOUSANDS}{ROMAN_HUNDREDS}?{ROMAN_TENS}?{ROMAN_ONES}?
diff --git a/gnu/packages/patches/smalltalk-multiplication-overflow.patch b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
new file mode 100644
index 0000000000..7a0b4d02f7
--- /dev/null
+++ b/gnu/packages/patches/smalltalk-multiplication-overflow.patch
@@ -0,0 +1,121 @@
+Extracted from this commit without the ChangeLog to avoid conflicts:
+http://git.savannah.gnu.org/cgit/smalltalk.git/commit/?id=72ada189aba0283c551ead16635c1983968080b8
+
+The upstream commit message is
+From 72ada189aba0283c551ead16635c1983968080b8 Mon Sep 17 00:00:00 2001
+From: Holger Hans Peter Freyther <holger@moiji-mobile.com>
+Date: Sat, 7 Nov 2015 18:09:31 +0100
+Subject: libgst: Add alternative multiplication overflow check
+
+Apple clang on OSX and the version on FreeBSD optimize the
+multiplication check away. Clang introduced a family of
+builtins to do the multiplication and check for the overflow
+and GCC made the API usable. For clang we would need to know
+if intptr_t is of type int, long int, long long int and
+then use the smul, smull smulll.
+Luckily clang is adopting the better interface and this is
+what we are starting to use now. This means the new code
+will be used on GCC5 (and later) and some future versions of
+clang.
+
+2015-11-07 Holger Hans Peter Freyther <holger@freyther.de>
+
+ * build-aux/overflow-builtins.m4: Add new macro.
+ * configure.ac: Use GST_C_OVERFLOW_BUILTINS macro.
+
+2015-11-07 Holger Hans Peter Freyther <holger@freyther.de>
+
+ * interp.inl: Add alternative mul_with_check implementation.
+---
+ ChangeLog | 5 +++++
+ build-aux/overflow-builtins.m4 | 23 +++++++++++++++++++++++
+ configure.ac | 1 +
+ libgst/ChangeLog | 4 ++++
+ libgst/interp.inl | 22 ++++++++++++++++++++++
+ 5 files changed, 55 insertions(+)
+ create mode 100644 build-aux/overflow-builtins.m4
+
+diff --git a/build-aux/overflow-builtins.m4 b/build-aux/overflow-builtins.m4
+new file mode 100644
+index 00000000..9d050196
+--- /dev/null
++++ b/build-aux/overflow-builtins.m4
+@@ -0,0 +1,23 @@
++dnl Check whether the host supports synchronization builtins.
++
++AC_DEFUN([GST_C_OVERFLOW_BUILTINS], [
++ AC_REQUIRE([AC_CANONICAL_HOST])
++ AC_CACHE_CHECK([whether the host supports __builtin_mul_overflow],
++ gst_cv_have_builtin_mul_overflow, [
++ save_CFLAGS="$CFLAGS"
++ case $host in
++ i?86-apple-darwin*) ;;
++ i?86-*-*) CFLAGS="$CFLAGS -march=i486" ;;
++ esac
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foovar = 0;]], [[
++if (__builtin_mul_overflow(44444, 55555, &foovar))
++ return 23;]])],
++ [gst_cv_have_builtin_mul_overflow=yes],
++ [gst_cv_have_builtin_mul_overflow=no])
++ CFLAGS="$save_CFLAGS"
++ ])
++ if test $gst_cv_have_builtin_mul_overflow = yes; then
++ AC_DEFINE(HAVE_OVERFLOW_BUILTINS, 1,
++ [Define to 1 if the host supports __builtin_*_overflow builtins])
++ fi
++])
+diff --git a/configure.ac b/configure.ac
+index e789be45..0bac23ef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -243,6 +243,7 @@ GST_C_SYNC_BUILTINS
+ if test $gst_cv_have_sync_fetch_and_add = no; then
+ AC_MSG_ERROR([Synchronization primitives not found, please use a newer compiler.])
+ fi
++GST_C_OVERFLOW_BUILTINS
+
+ GST_LOCK
+ AC_SYS_LARGEFILE
+diff --git a/libgst/interp.inl b/libgst/interp.inl
+index e18e27c7..dbc631bc 100644
+--- a/libgst/interp.inl
++++ b/libgst/interp.inl
+@@ -159,6 +159,27 @@ sub_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ OOP
+ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ {
++#ifdef HAVE_OVERFLOW_BUILTINS
++ intptr_t a = TO_INT (op1);
++ intptr_t b = TO_INT (op2);
++ intptr_t result;
++
++ if (__builtin_mul_overflow(a, b, &result))
++ {
++ *overflow = true;
++ return FROM_INT(0);
++ }
++
++
++ if (result < MIN_ST_INT || result > MAX_ST_INT)
++ {
++ *overflow = true;
++ return FROM_INT(0);
++ }
++
++ *overflow = false;
++ return FROM_INT(result);
++#else
+ intptr_t a = TO_INT (op1);
+ intptr_t b = TO_INT (op2);
+ intmax_t result = (intmax_t)a * b;
+@@ -188,6 +209,7 @@ mul_with_check (OOP op1, OOP op2, mst_Boolean *overflow)
+ }
+
+ return FROM_INT (0);
++#endif
+ }
+
+ /* State of the random generator.
+--
+2.29.2
+
diff --git a/gnu/packages/patches/superlu-dist-awpm-grid.patch b/gnu/packages/patches/superlu-dist-awpm-grid.patch
index d6cb8e521d..42d1683cc4 100644
--- a/gnu/packages/patches/superlu-dist-awpm-grid.patch
+++ b/gnu/packages/patches/superlu-dist-awpm-grid.patch
@@ -1,8 +1,8 @@
Create the CombBLAS::SpParMat with the MPI_Comm from the input 'gridinfo_t'.
This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD.
---- a/SRC/AWPM_CombBLAS.hpp
-+++ b/SRC/AWPM_CombBLAS.hpp
+--- a/SRC/dHWPM_CombBLAS.hpp
++++ b/SRC/dHWPM_CombBLAS.hpp
@@ -52,7 +52,7 @@
{
printf("AWPM only supports square process grid. Retuning without a permutation.\n");
@@ -12,25 +12,14 @@ This prevents a warning/error from CombBLAS about using MPI_COMM_WORLD.
std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs);
/* ------------------------------------------------------------
-@@ -100,11 +100,10 @@
- combblas::AWPM(Adcsc, mateRow2Col, mateCol2Row,true);
-
- // now gather the matching vector
-- MPI_Comm World = mateRow2Col.getcommgrid()->GetWorld();
- int * rdispls = new int[procs];
- int sendcnt = mateRow2Col.LocArrSize();
- int * recvcnt = new int[procs];
-- MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, World);
-+ MPI_Allgather(&sendcnt, 1, MPI_INT, recvcnt, 1, MPI_INT, grid->comm);
- rdispls[0] = 0;
- for(int i=0; i<procs-1; ++i)
+--- a/SRC/zHWPM_CombBLAS.hpp
++++ b/SRC/zHWPM_CombBLAS.hpp
+@@ -52,7 +52,7 @@
{
-@@ -112,7 +111,7 @@
+ printf("AWPM only supports square process grid. Retuning without a permutation.\n");
}
- int_t *senddata = (int_t *)mateRow2Col.GetLocArr();
-
-- MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), World);
-+ MPI_Allgatherv(senddata, sendcnt, combblas::MPIType<int_t>(), ScalePermstruct->perm_r, recvcnt, rdispls, combblas::MPIType<int_t>(), grid->comm);
+- combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc;
++ combblas::SpParMat < int_t, double, combblas::SpDCCols<int_t,double> > Adcsc(grid->comm);
+ std::vector< std::vector < std::tuple<int_t,int_t,double> > > data(procs);
- delete[] rdispls;
- delete[] recvcnt;
+ /* ------------------------------------------------------------
diff --git a/gnu/packages/patches/vlc-qt-5.15.patch b/gnu/packages/patches/vlc-qt-5.15.patch
new file mode 100644
index 0000000000..e986a99861
--- /dev/null
+++ b/gnu/packages/patches/vlc-qt-5.15.patch
@@ -0,0 +1,56 @@
+Fix build of VLC with Qt 5.15. Otherwise it fails like this:
+
+------
+In file included from gui/qt/util/timetooltip.moc.cpp:10:0:
+gui/qt/util/timetooltip.hpp:49:18: error: field ‘mPainterPath’ has incomplete type ‘QPainterPath’
+ QPainterPath mPainterPath;
+ ^~~~~~~~~~~~
+In file included from /gnu/store/jsxxnsdvij5mrrv6c0kj0261k0f44xlz-qtbase-5.15.2/include/qt5/QtGui/qbrush.h:49:0,
+ from /gnu/store/jsxxnsdvij5mrrv6c0kj0261k0f44xlz-qtbase-5.15.2/include/qt5/QtGui/qpalette.h:46,
+ from /gnu/store/jsxxnsdvij5mrrv6c0kj0261k0f44xlz-qtbase-5.15.2/include/qt5/QtWidgets/qwidget.h:48,
+ from /gnu/store/jsxxnsdvij5mrrv6c0kj0261k0f44xlz-qtbase-5.15.2/include/qt5/QtWidgets/QWidget:1,
+ from gui/qt/util/timetooltip.hpp:27,
+ from gui/qt/util/timetooltip.moc.cpp:10:
+/gnu/store/jsxxnsdvij5mrrv6c0kj0261k0f44xlz-qtbase-5.15.2/include/qt5/QtGui/qmatrix.h:54:7: note: forward declaration of ‘class QPainterPath’
+ class QPainterPath;
+ ^~~~~~~~~~~~
+make[4]: *** [Makefile:25852: gui/qt/util/libqt_plugin_la-timetooltip.moc.lo] Error 1
+------
+
+diff --git a/modules/gui/qt/components/playlist/views.cpp b/modules/gui/qt/components/playlist/views.cpp
+index 24db9d9..73c1779 100644
+--- a/modules/gui/qt/components/playlist/views.cpp
++++ b/modules/gui/qt/components/playlist/views.cpp
+@@ -27,6 +27,7 @@
+ #include "input_manager.hpp" /* THEMIM */
+
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QRect>
+ #include <QStyleOptionViewItem>
+ #include <QFontMetrics>
+diff --git a/modules/gui/qt/dialogs/plugins.cpp b/modules/gui/qt/dialogs/plugins.cpp
+index d233382..69728eb 100644
+--- a/modules/gui/qt/dialogs/plugins.cpp
++++ b/modules/gui/qt/dialogs/plugins.cpp
+@@ -53,6 +53,7 @@
+ #include <QListView>
+ #include <QListWidget>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QStyleOptionViewItem>
+ #include <QKeyEvent>
+ #include <QPushButton>
+diff --git a/modules/gui/qt/util/timetooltip.hpp b/modules/gui/qt/util/timetooltip.hpp
+index 6a1329e..9f50b18 100644
+--- a/modules/gui/qt/util/timetooltip.hpp
++++ b/modules/gui/qt/util/timetooltip.hpp
+@@ -25,6 +25,7 @@
+ #include "qt.hpp"
+
+ #include <QWidget>
++#include <QPainterPath>
+
+ class TimeTooltip : public QWidget
+ {
+
diff --git a/gnu/packages/patches/weasyprint-library-paths.patch b/gnu/packages/patches/weasyprint-library-paths.patch
deleted file mode 100644
index 317f0c542e..0000000000
--- a/gnu/packages/patches/weasyprint-library-paths.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Make weasyprint load dynamic libraries from hard-coded path.
-
-From NixOS
-pkgs/development/python-modules/weasyprint/library-paths.patch
-
-diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
-index 377716c1..2016e01c 100644
---- a/weasyprint/fonts.py
-+++ b/weasyprint/fonts.py
-@@ -48,11 +48,8 @@ else:
- # with OSError: dlopen() failed to load a library: cairo / cairo-2
- # So let's hope we find the same file as cairo already did ;)
- # Same applies to pangocairo requiring pangoft2
-- fontconfig = dlopen(ffi, 'fontconfig', 'libfontconfig',
-- 'libfontconfig-1.dll',
-- 'libfontconfig.so.1', 'libfontconfig-1.dylib')
-- pangoft2 = dlopen(ffi, 'pangoft2-1.0', 'libpangoft2-1.0-0',
-- 'libpangoft2-1.0.so', 'libpangoft2-1.0.dylib')
-+ fontconfig = dlopen(ffi, '@fontconfig@')
-+ pangoft2 = dlopen(ffi, '@pangoft2@')
-
- ffi.cdef('''
- // FontConfig
-diff --git a/weasyprint/text.py b/weasyprint/text.py
-index 035074e9..08e40395 100644
---- a/weasyprint/text.py
-+++ b/weasyprint/text.py
-@@ -243,12 +243,9 @@ def dlopen(ffi, *names):
- return ffi.dlopen(names[0]) # pragma: no cover
-
-
--gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so',
-- 'libgobject-2.0.dylib')
--pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so',
-- 'libpango-1.0.dylib')
--pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0',
-- 'libpangocairo-1.0.so', 'libpangocairo-1.0.dylib')
-+gobject = dlopen(ffi, '@gobject@')
-+pango = dlopen(ffi, '@pango@')
-+pangocairo = dlopen(ffi, '@pangocairo@')
-
- gobject.g_type_init()
-