diff options
Diffstat (limited to 'gnu/packages/patches')
54 files changed, 1982 insertions, 1953 deletions
diff --git a/gnu/packages/patches/akonadi-paths.patch b/gnu/packages/patches/akonadi-paths.patch index da250ee9e8..ac08ec5448 100644 --- a/gnu/packages/patches/akonadi-paths.patch +++ b/gnu/packages/patches/akonadi-paths.patch @@ -1,31 +1,31 @@ This is based on the respectve patch from NixPkgs, but with the parts pinning mysql and postgresql executables removed. The our package definition on why. - -Index: akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp -=================================================================== ---- akonadi-19.08.0.orig/src/akonadicontrol/agentmanager.cpp -+++ akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp -@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose, - mStorageController = new Akonadi::ProcessControl; - mStorageController->setShutdownTimeout(15 * 1000); // the server needs more time for shutdown if we are using an internal mysqld - connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure); -- mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); -+ mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); +diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp +--- a/src/akonadicontrol/agentmanager.cpp ++++ b/src/akonadicontrol/agentmanager.cpp +@@ -61,7 +61,7 @@ public: + []() { + QCoreApplication::instance()->exit(255); + }); +- start(QStringLiteral("akonadiserver"), args, RestartOnCrash); ++ start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash); + } - if (mAgentServerEnabled) { - mAgentServer = new Akonadi::ProcessControl; - connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure); -- mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); -+ mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash); + ~StorageProcessControl() override +@@ -84,7 +84,7 @@ public: + []() { + qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!"; + }); +- start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash); ++ start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash); } - } -Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp -=================================================================== ---- akonadi-19.08.0.orig/src/akonadicontrol/agentprocessinstance.cpp -+++ akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp -@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A + ~AgentServerProcessControl() override +diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp +--- a/src/akonadicontrol/agentprocessinstance.cpp ++++ b/src/akonadicontrol/agentprocessinstance.cpp +@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo) } else { Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher); const QStringList arguments = QStringList() << executable << identifier(); @@ -34,11 +34,10 @@ Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp mController->start(agentLauncherExec, arguments); } return true; -Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp -=================================================================== ---- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp -+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp -@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer( +diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp +--- a/src/server/storage/dbconfigmysql.cpp ++++ b/src/server/storage/dbconfigmysql.cpp +@@ -209,7 +209,7 @@ bool DbConfigMysql::startInternalServer() #endif // generate config file diff --git a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch new file mode 100644 index 0000000000..33a68a1dd8 --- /dev/null +++ b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch @@ -0,0 +1,522 @@ +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 <[email protected]> +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 <[email protected]> +@@ -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/biber-sortinithash.patch b/gnu/packages/patches/biber-sortinithash.patch index 1f054d25e4..5a626705e6 100644 --- a/gnu/packages/patches/biber-sortinithash.patch +++ b/gnu/packages/patches/biber-sortinithash.patch @@ -21,6 +21,15 @@ index b4f641e..c6f86c7 100644 \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{The Title} +@@ -116,7 +116,7 @@ my $ann2 = q| \entry{ann2}{misc}{} + \strng{authorfullhash}{90ae96c82de92e36949bc64254bbde0c} + \field{extraname}{2} + \field{sortinit}{L} +- \field{sortinithash}{2c7981aaabc885868aba60f0c09ee20f} ++ \field{sortinithash}{dad3efd0836470093a7b4a7bb756eb8c} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{The Title} diff --git a/t/basic-misc.t b/t/basic-misc.t index d4664b1..a9168cc 100644 --- a/t/basic-misc.t diff --git a/gnu/packages/patches/bluez-CVE-2020-0556.patch b/gnu/packages/patches/bluez-CVE-2020-0556.patch deleted file mode 100644 index 7c34459a3a..0000000000 --- a/gnu/packages/patches/bluez-CVE-2020-0556.patch +++ /dev/null @@ -1,180 +0,0 @@ -Fix CVE-2020-0556: - -https://lore.kernel.org/linux-bluetooth/[email protected]/ -https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.html -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0556 - -Patches copied from upstream source repository: - -https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=3cccdbab2324086588df4ccf5f892fb3ce1f1787 -https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=8cdbd3b09f29da29374e2f83369df24228da0ad1 - -From 3cccdbab2324086588df4ccf5f892fb3ce1f1787 Mon Sep 17 00:00:00 2001 -From: Alain Michaud <[email protected]> -Date: Tue, 10 Mar 2020 02:35:18 +0000 -Subject: [PATCH] HID accepts bonded device connections only. - -This change adds a configuration for platforms to choose a more secure -posture for the HID profile. While some older mice are known to not -support pairing or encryption, some platform may choose a more secure -posture by requiring the device to be bonded and require the -connection to be encrypted when bonding is required. - -Reference: -https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.html ---- - profiles/input/device.c | 23 ++++++++++++++++++++++- - profiles/input/device.h | 1 + - profiles/input/input.conf | 8 ++++++++ - profiles/input/manager.c | 13 ++++++++++++- - 4 files changed, 43 insertions(+), 2 deletions(-) - -diff --git a/profiles/input/device.c b/profiles/input/device.c -index 2cb3811c8..d89da2d7c 100644 ---- a/profiles/input/device.c -+++ b/profiles/input/device.c -@@ -92,6 +92,7 @@ struct input_device { - - static int idle_timeout = 0; - static bool uhid_enabled = false; -+static bool classic_bonded_only = false; - - void input_set_idle_timeout(int timeout) - { -@@ -103,6 +104,11 @@ void input_enable_userspace_hid(bool state) - uhid_enabled = state; - } - -+void input_set_classic_bonded_only(bool state) -+{ -+ classic_bonded_only = state; -+} -+ - static void input_device_enter_reconnect_mode(struct input_device *idev); - static int connection_disconnect(struct input_device *idev, uint32_t flags); - -@@ -970,8 +976,18 @@ static int hidp_add_connection(struct input_device *idev) - if (device_name_known(idev->device)) - device_get_name(idev->device, req->name, sizeof(req->name)); - -+ /* Make sure the device is bonded if required */ -+ if (classic_bonded_only && !device_is_bonded(idev->device, -+ btd_device_get_bdaddr_type(idev->device))) { -+ error("Rejected connection from !bonded device %s", dst_addr); -+ goto cleanup; -+ } -+ - /* Encryption is mandatory for keyboards */ -- if (req->subclass & 0x40) { -+ /* Some platforms may choose to require encryption for all devices */ -+ /* Note that this only matters for pre 2.1 devices as otherwise the */ -+ /* device is encrypted by default by the lower layers */ -+ if (classic_bonded_only || req->subclass & 0x40) { - if (!bt_io_set(idev->intr_io, &gerr, - BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM, - BT_IO_OPT_INVALID)) { -@@ -1203,6 +1219,11 @@ static void input_device_enter_reconnect_mode(struct input_device *idev) - DBG("path=%s reconnect_mode=%s", idev->path, - reconnect_mode_to_string(idev->reconnect_mode)); - -+ /* Make sure the device is bonded if required */ -+ if (classic_bonded_only && !device_is_bonded(idev->device, -+ btd_device_get_bdaddr_type(idev->device))) -+ return; -+ - /* Only attempt an auto-reconnect when the device is required to - * accept reconnections from the host. - */ -diff --git a/profiles/input/device.h b/profiles/input/device.h -index 51a9aee18..3044db673 100644 ---- a/profiles/input/device.h -+++ b/profiles/input/device.h -@@ -29,6 +29,7 @@ struct input_conn; - - void input_set_idle_timeout(int timeout); - void input_enable_userspace_hid(bool state); -+void input_set_classic_bonded_only(bool state); - - int input_device_register(struct btd_service *service); - void input_device_unregister(struct btd_service *service); -diff --git a/profiles/input/input.conf b/profiles/input/input.conf -index 3e1d65aae..166aff4a4 100644 ---- a/profiles/input/input.conf -+++ b/profiles/input/input.conf -@@ -11,3 +11,11 @@ - # Enable HID protocol handling in userspace input profile - # Defaults to false (HIDP handled in HIDP kernel module) - #UserspaceHID=true -+ -+# Limit HID connections to bonded devices -+# The HID Profile does not specify that devices must be bonded, however some -+# platforms may want to make sure that input connections only come from bonded -+# device connections. Several older mice have been known for not supporting -+# pairing/encryption. -+# Defaults to false to maximize device compatibility. -+#ClassicBondedOnly=true -diff --git a/profiles/input/manager.c b/profiles/input/manager.c -index 1d31b0652..5cd27b839 100644 ---- a/profiles/input/manager.c -+++ b/profiles/input/manager.c -@@ -96,7 +96,7 @@ static int input_init(void) - config = load_config_file(CONFIGDIR "/input.conf"); - if (config) { - int idle_timeout; -- gboolean uhid_enabled; -+ gboolean uhid_enabled, classic_bonded_only; - - idle_timeout = g_key_file_get_integer(config, "General", - "IdleTimeout", &err); -@@ -114,6 +114,17 @@ static int input_init(void) - input_enable_userspace_hid(uhid_enabled); - } else - g_clear_error(&err); -+ -+ classic_bonded_only = g_key_file_get_boolean(config, "General", -+ "ClassicBondedOnly", &err); -+ -+ if (!err) { -+ DBG("input.conf: ClassicBondedOnly=%s", -+ classic_bonded_only ? "true" : "false"); -+ input_set_classic_bonded_only(classic_bonded_only); -+ } else -+ g_clear_error(&err); -+ - } - - btd_profile_register(&input_profile); --- -2.25.1 - -From 8cdbd3b09f29da29374e2f83369df24228da0ad1 Mon Sep 17 00:00:00 2001 -From: Alain Michaud <[email protected]> -Date: Tue, 10 Mar 2020 02:35:16 +0000 -Subject: [PATCH] HOGP must only accept data from bonded devices. - -HOGP 1.0 Section 6.1 establishes that the HOGP must require bonding. - -Reference: -https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.htm ---- - profiles/input/hog.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/profiles/input/hog.c b/profiles/input/hog.c -index 83c017dcb..dfac68921 100644 ---- a/profiles/input/hog.c -+++ b/profiles/input/hog.c -@@ -186,6 +186,10 @@ static int hog_accept(struct btd_service *service) - return -EINVAL; - } - -+ /* HOGP 1.0 Section 6.1 requires bonding */ -+ if (!device_is_bonded(device, btd_device_get_bdaddr_type(device))) -+ return -ECONNREFUSED; -+ - /* TODO: Replace GAttrib with bt_gatt_client */ - bt_hog_attach(dev->hog, attrib); - --- -2.25.1 - 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 new file mode 100644 index 0000000000..1518df067f --- /dev/null +++ b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch @@ -0,0 +1,68 @@ +See: https://bugs.gentoo.org/708350 +Author: Patrick McLean <[email protected]> +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/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch deleted file mode 100644 index 9920103bea..0000000000 --- a/gnu/packages/patches/calibre-msgpack-compat.patch +++ /dev/null @@ -1,18 +0,0 @@ -Fix deserialization with msgpack 1.0. - -Patch copied from upstream source repository: -https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3 - -diff --git a/src/calibre/utils/serialize.py b/src/calibre/utils/serialize.py -index f5d560c468..c35ae53849 100644 ---- a/src/calibre/utils/serialize.py -+++ b/src/calibre/utils/serialize.py -@@ -110,7 +110,7 @@ def msgpack_decoder(code, data): - def msgpack_loads(dump, use_list=True): - # use_list controls whether msgpack arrays are unpacked as lists or tuples - import msgpack -- return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list) -+ return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list, strict_map_key=False) - - - def json_loads(data): diff --git a/gnu/packages/patches/calibre-remove-test-bs4.patch b/gnu/packages/patches/calibre-remove-test-bs4.patch deleted file mode 100644 index 77dd45d329..0000000000 --- a/gnu/packages/patches/calibre-remove-test-bs4.patch +++ /dev/null @@ -1,34 +0,0 @@ -In my efforts to fix all Calibre tests, this test would always complain about -backports.functools_lru_cache not existing even after I packaged and added -python2-soupsieve as an input and confirmed it was in the -PYTHONPATH. Currently Calibre does not actually use it for anything other than -testing it's there, so I assume they will start using it in future Calibre -versions. - -From 2738dd42caebe55326c76922a12ba8740bdb22e7 Mon Sep 17 00:00:00 2001 -From: Brendan Tildesley <[email protected]> -Date: Sat, 27 Apr 2019 00:42:39 +1000 -Subject: [PATCH] Remove test_bs4 - ---- - src/calibre/test_build.py | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py -index 73f1172e8c..07bdffd3e5 100644 ---- a/src/calibre/test_build.py -+++ b/src/calibre/test_build.py -@@ -73,10 +73,6 @@ class BuildTest(unittest.TestCase): - from html5_parser import parse - parse('<p>xxx') - -- def test_bs4(self): -- import soupsieve, bs4 -- del soupsieve, bs4 -- - def test_zeroconf(self): - if ispy3: - import zeroconf as z, ifaddr --- -2.21.0 - diff --git a/gnu/packages/patches/darkice-workaround-fpermissive-error.patch b/gnu/packages/patches/darkice-workaround-fpermissive-error.patch deleted file mode 100644 index 5ee29147c2..0000000000 --- a/gnu/packages/patches/darkice-workaround-fpermissive-error.patch +++ /dev/null @@ -1,62 +0,0 @@ -Copied from Debian: -<https://sources.debian.org/data/main/d/darkice/1.3-0.2/debian/patches/0001-Cast-float-in-SRC-lib-calls-to-delete-fpermissive-co.patch> - -From 1e2eb18d349f205c70cb2836232825442359b6e3 Mon Sep 17 00:00:00 2001 -From: belette <[email protected]> -Date: Wed, 26 Oct 2016 02:43:43 +0200 -Subject: Cast float* in SRC lib calls to delete fpermissive compilation error - ---- - darkice/trunk/src/FaacEncoder.cpp | 2 +- - darkice/trunk/src/OpusLibEncoder.cpp | 2 +- - darkice/trunk/src/VorbisLibEncoder.cpp | 2 +- - darkice/trunk/src/aacPlusEncoder.cpp | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - ---- a/src/FaacEncoder.cpp -+++ b/src/FaacEncoder.cpp -@@ -164,7 +164,7 @@ FaacEncoder :: write ( const void * buf, - if ( converter ) { - unsigned int converted; - #ifdef HAVE_SRC_LIB -- src_short_to_float_array ((short *) b, converterData.data_in, samples); -+ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples); - converterData.input_frames = nSamples; - converterData.data_out = resampledOffset + (resampledOffsetSize * channels); - int srcError = src_process (converter, &converterData); ---- a/src/OpusLibEncoder.cpp -+++ b/src/OpusLibEncoder.cpp -@@ -403,7 +403,7 @@ OpusLibEncoder :: write ( const void * buf, - #ifdef HAVE_SRC_LIB - (void)inCount; - converterData.input_frames = processed; -- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples); -+ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples); - int srcError = src_process (converter, &converterData); - if (srcError) - throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError)); ---- a/src/VorbisLibEncoder.cpp -+++ b/src/VorbisLibEncoder.cpp -@@ -337,7 +337,7 @@ VorbisLibEncoder :: write ( const void * buf, - int converted; - #ifdef HAVE_SRC_LIB - converterData.input_frames = nSamples; -- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples); -+ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples); - int srcError = src_process (converter, &converterData); - if (srcError) - throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError)); ---- a/src/aacPlusEncoder.cpp -+++ b/src/aacPlusEncoder.cpp -@@ -155,7 +155,7 @@ aacPlusEncoder :: write ( const void * buf, - if ( converter ) { - unsigned int converted; - #ifdef HAVE_SRC_LIB -- src_short_to_float_array ((short *) b, converterData.data_in, samples); -+ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples); - converterData.input_frames = nSamples; - converterData.data_out = resampledOffset + (resampledOffsetSize * channels); - int srcError = src_process (converter, &converterData); --- -2.11.0 - diff --git a/gnu/packages/patches/dbus-CVE-2020-12049.patch b/gnu/packages/patches/dbus-CVE-2020-12049.patch new file mode 100644 index 0000000000..71280144a1 --- /dev/null +++ b/gnu/packages/patches/dbus-CVE-2020-12049.patch @@ -0,0 +1,58 @@ +Fix CVE-2020-12049: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-12049 +https://lists.freedesktop.org/archives/ftp-release/2020-June/000753.html + +Taken from upstream: + +https://gitlab.freedesktop.org/dbus/dbus/-/commit/272d484283883fa9ff95b69d924fff6cd34842f5 + +diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c +--- a/dbus/dbus-sysdeps-unix.c ++++ b/dbus/dbus-sysdeps-unix.c +@@ -435,18 +435,6 @@ _dbus_read_socket_with_unix_fds (DBusSocket fd, + struct cmsghdr *cm; + dbus_bool_t found = FALSE; + +- if (m.msg_flags & MSG_CTRUNC) +- { +- /* Hmm, apparently the control data was truncated. The bad +- thing is that we might have completely lost a couple of fds +- without chance to recover them. Hence let's treat this as a +- serious error. */ +- +- errno = ENOSPC; +- _dbus_string_set_length (buffer, start); +- return -1; +- } +- + for (cm = CMSG_FIRSTHDR(&m); cm; cm = CMSG_NXTHDR(&m, cm)) + if (cm->cmsg_level == SOL_SOCKET && cm->cmsg_type == SCM_RIGHTS) + { +@@ -501,6 +489,26 @@ _dbus_read_socket_with_unix_fds (DBusSocket fd, + if (!found) + *n_fds = 0; + ++ if (m.msg_flags & MSG_CTRUNC) ++ { ++ unsigned int i; ++ ++ /* Hmm, apparently the control data was truncated. The bad ++ thing is that we might have completely lost a couple of fds ++ without chance to recover them. Hence let's treat this as a ++ serious error. */ ++ ++ /* We still need to close whatever fds we *did* receive, ++ * otherwise they'll never get closed. (CVE-2020-12049) */ ++ for (i = 0; i < *n_fds; i++) ++ close (fds[i]); ++ ++ *n_fds = 0; ++ errno = ENOSPC; ++ _dbus_string_set_length (buffer, start); ++ return -1; ++ } ++ + /* put length back (doesn't actually realloc) */ + _dbus_string_set_length (buffer, start + bytes_read); + diff --git a/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch b/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch deleted file mode 100644 index a03e0c5481..0000000000 --- a/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 5676766be5e845ccb6cdf46cfa8722497f151752 Mon Sep 17 00:00:00 2001 -From: Jeremy Bicha <[email protected]> -Date: Fri, 16 Jun 2017 15:11:37 -0400 -Subject: Use 'ref' keyword for iter, requires vala 0.36 - - -diff --git a/deja-dup/widgets/ConfigList.vala b/deja-dup/widgets/ConfigList.vala -index 15de2d6..02cd81a 100644 ---- a/deja-dup/widgets/ConfigList.vala -+++ b/deja-dup/widgets/ConfigList.vala -@@ -333,7 +333,7 @@ public class ConfigList : ConfigWidget - - model.row_deleted.disconnect(write_to_config); - foreach (Gtk.TreeIter iter in iters) { -- (model as Gtk.ListStore).remove(iter); -+ (model as Gtk.ListStore).remove(ref iter); - } - model.row_deleted.connect(write_to_config); - -diff --git a/deja-dup/widgets/ConfigLocation.vala b/deja-dup/widgets/ConfigLocation.vala -index 869e2a8..d21c556 100644 ---- a/deja-dup/widgets/ConfigLocation.vala -+++ b/deja-dup/widgets/ConfigLocation.vala -@@ -397,12 +397,12 @@ public class ConfigLocation : ConfigWidget - if (uuid == saved_uuid) - return; - -- store.remove(iter); -+ store.remove(ref iter); - - if (--num_volumes == 0) { - Gtk.TreeIter sep_iter; - if (store.get_iter_from_string(out sep_iter, index_vol_sep.to_string())) { -- store.remove(sep_iter); -+ store.remove(ref sep_iter); - index_vol_sep = -2; - } - } --- -cgit v0.10.2 - diff --git a/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch new file mode 100644 index 0000000000..4a5546b06b --- /dev/null +++ b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch @@ -0,0 +1,88 @@ +From de3c48d72ec7064e7f0522877fe759c729df0c50 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer <[email protected]> +Date: Wed, 25 Mar 2020 11:32:18 -0400 +Subject: [PATCH] Allow using a system provided libgit2 library + +Setting the USE_SYSTEM_LIBGIT2 Make or CMake variable (through the +BUILD_OPTIONS variable) to any value enables using the system library. +The default behavior of using a bundled copy of libgit2 is unchanged. +--- + CMakeLists.txt | 9 +++++++-- + Makefile | 11 +++++++++++ + src/CMakeLists.txt | 9 +++++++-- + 3 files changed, 25 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a393d7c..75d6ca6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,9 +7,14 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "shared" FORCE) + set(BUILD_CLAR OFF CACHE BOOL "clar" FORCE) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DEGIT_DEBUG") + +-add_subdirectory(libgit2) ++if(USE_SYSTEM_LIBGIT2) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(git2 REQUIRED IMPORTED_TARGET libgit2) ++else() ++ add_subdirectory(libgit2) ++ find_library(git2 libgit2.a) ++endif() + +-find_library(git2 libgit2.a) + add_subdirectory(src) + + enable_testing() +diff --git a/Makefile b/Makefile +index 8199532..6a6a4e1 100644 +--- a/Makefile ++++ b/Makefile +@@ -13,6 +13,13 @@ ifeq ($(UNAME),MSYS) + BUILD_OPTIONS+= -G "MSYS Makefiles" + endif + ++# If the variable USE_SYSTEM_LIBGIT2 is set to *any* value, use the ++# system provided libgit2 library. ++USE_SYSTEM_LIBGIT2? := \ ++ $(if $(or $(USE_SYSTEM_LIBGIT2),\ ++ $(findstring USE_SYSTEM_LIBGIT2,$(BUILD_OPTIONS))),\ ++ true) ++ + ifeq "$(TRAVIS)" "true" + ## Makefile for Travis ################################################### + # +@@ -87,7 +94,11 @@ submodule-update: + @git submodule update + + libgit2: ++ifeq ($(USE_SYSTEM_LIBGIT2?),) + @git submodule update --init ++else ++ @echo "Using the system provided libgit2 library" ++endif + + CLEAN = $(ELCS) $(PKG)-autoloads.el build + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index cfb5777..0dbad8a 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -13,8 +13,13 @@ if(WIN32) + set_target_properties(egit2 PROPERTIES PREFIX lib) + endif(WIN32) + +-target_link_libraries(egit2 git2) +-target_include_directories(egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include") ++if(USE_SYSTEM_LIBGIT2) ++ target_link_libraries(egit2 PRIVATE PkgConfig::git2) ++else() ++ target_link_libraries(egit2 git2) ++ target_include_directories( ++ egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include") ++endif() + + if(CMAKE_COMPILER_IS_GNUCC) + target_compile_options(egit2 PRIVATE -Wall -Wextra) +-- +2.26.2 + diff --git a/gnu/packages/patches/emacs-magit-log-format-author-margin.patch b/gnu/packages/patches/emacs-magit-log-format-author-margin.patch deleted file mode 100644 index fc52157a32..0000000000 --- a/gnu/packages/patches/emacs-magit-log-format-author-margin.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 94914ca4690c0cff12d600a0c8ba6bfb3fb38dc5 Mon Sep 17 00:00:00 2001 -From: Jonas Bernoulli <[email protected]> -Date: Tue, 25 Jun 2019 21:44:32 +0200 -Subject: [PATCH] magit-log-format-author-margin: New function - -Split it from `magit-log-format-margin'. ---- - lisp/magit-log.el | 48 +++++++++++++++++++++++++---------------------- - 1 file changed, 26 insertions(+), 22 deletions(-) - -diff --git a/lisp/magit-log.el b/lisp/magit-log.el -index c8e6ef63..c0a79b19 100644 ---- a/lisp/magit-log.el -+++ b/lisp/magit-log.el -@@ -1374,28 +1374,32 @@ The shortstat style is experimental and rather slow." - (when-let ((option (magit-margin-option))) - (if magit-log-margin-show-shortstat - (magit-log-format-shortstat-margin rev) -- (pcase-let ((`(,_ ,style ,width ,details ,details-width) -- (or magit-buffer-margin -- (symbol-value option)))) -- (magit-make-margin-overlay -- (concat (and details -- (concat (propertize (truncate-string-to-width -- (or author "") -- details-width -- nil ?\s (make-string 1 magit-ellipsis)) -- 'face 'magit-log-author) -- " ")) -- (propertize -- (if (stringp style) -- (format-time-string -- style -- (seconds-to-time (string-to-number date))) -- (pcase-let* ((abbr (eq style 'age-abbreviated)) -- (`(,cnt ,unit) (magit--age date abbr))) -- (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%is") -- (- width (if details (1+ details-width) 0))) -- cnt unit))) -- 'face 'magit-log-date))))))) -+ (magit-log-format-author-margin author date)))) -+ -+(defun magit-log-format-author-margin (author date &optional previous-line) -+ (pcase-let ((`(,_ ,style ,width ,details ,details-width) -+ (or magit-buffer-margin -+ (symbol-value option)))) -+ (magit-make-margin-overlay -+ (concat (and details -+ (concat (propertize (truncate-string-to-width -+ (or author "") -+ details-width -+ nil ?\s (make-string 1 magit-ellipsis)) -+ 'face 'magit-log-author) -+ " ")) -+ (propertize -+ (if (stringp style) -+ (format-time-string -+ style -+ (seconds-to-time (string-to-number date))) -+ (pcase-let* ((abbr (eq style 'age-abbreviated)) -+ (`(,cnt ,unit) (magit--age date abbr))) -+ (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%is") -+ (- width (if details (1+ details-width) 0))) -+ cnt unit))) -+ 'face 'magit-log-date)) -+ previous-line))) - - (defun magit-log-format-shortstat-margin (rev) - (magit-make-margin-overlay --- -2.23.0 - diff --git a/gnu/packages/patches/emacs-zones-called-interactively.patch b/gnu/packages/patches/emacs-zones-called-interactively.patch deleted file mode 100644 index eefcfdd12e..0000000000 --- a/gnu/packages/patches/emacs-zones-called-interactively.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 81603e53ebaae0f0b23c4c52c7dab83e808964ec Mon Sep 17 00:00:00 2001 -From: Brian Leung <[email protected]> -Date: Sun, 17 Mar 2019 01:32:04 +0100 -Subject: [PATCH] This patch silences the byte-compiler. - ---- - zones.el | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/zones.el b/zones.el -index ca88d48..594ea36 100644 ---- a/zones.el -+++ b/zones.el -@@ -1075,7 +1075,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. - - This is a destructive operation. The list structure of the variable - value can be modified." -- (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p 'interactive))) - - (defadvice narrow-to-defun (after zz-add-zone--defun activate) - "Push the defun limits to the current `zz-izones-var'. -@@ -1083,7 +1083,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. - - This is a destructive operation. The list structure of the variable - value can be modified." -- (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p 'interactive))) - - ;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'. - ;; -@@ -1093,7 +1093,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. - - This is a destructive operation. The list structure of the variable - value can be modified." -- (zz-narrow-advice (interactive-p))) -+ (zz-narrow-advice (called-interactively-p 'interactive))) - - ;;(@* "General Commands") - --- -2.22.0 - diff --git a/gnu/packages/patches/enlightenment-fix-setuid-path.patch b/gnu/packages/patches/enlightenment-fix-setuid-path.patch index c48f18c8ec..a0efb29857 100644 --- a/gnu/packages/patches/enlightenment-fix-setuid-path.patch +++ b/gnu/packages/patches/enlightenment-fix-setuid-path.patch @@ -1,34 +1,29 @@ diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c -index 00b0e5d84..98ab4518f 100644 +index 8b0aa6641..3dff0ad84 100644 --- a/src/bin/e_auth.c +++ b/src/bin/e_auth.c -@@ -9,8 +9,7 @@ e_auth_begin(char *passwd) +@@ -12,8 +12,7 @@ e_auth_begin(char *passwd) + if (pwlen == 0) goto out; - if (strlen(passwd) == 0) goto out; - -- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_ckpasswd", + snprintf(buf, sizeof(buf), +- "%s/enlightenment/utils/enlightenment_ckpasswd pw", - e_prefix_lib_get()); -+ snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd"); - ++ "/run/setuid-programs/enlightenment_ckpasswd pw"); exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL); - if (ecore_exe_send(exe, passwd, strlen(passwd)) != EINA_TRUE) goto out; -diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c -index 2bced6766..208e583ba 100644 ---- a/src/bin/e_backlight.c -+++ b/src/bin/e_backlight.c -@@ -521,8 +521,8 @@ _bl_sys_level_set(double val) - } - // fprintf(stderr, "SET: %1.3f\n", val); + if (!exe) goto out; + if (ecore_exe_send(exe, passwd, pwlen) != EINA_TRUE) goto out; +@@ -47,8 +46,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid) + if (pwlen == 0) goto out; + snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_backlight %i %s", -- e_prefix_lib_get(), (int)(val * 1000.0), bl_sysval); -+ "/run/setuid-programs/enlightenment_backlight %i %s", -+ (int)(val * 1000.0), bl_sysval); - bl_sys_set_exe = ecore_exe_run(buf, NULL); - } - #endif // HAVE_EEZE || __FreeBSD_kernel__ +- "%s/enlightenment/utils/enlightenment_ckpasswd pk", +- e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_ckpasswd pk"); + exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL); + if (!exe) goto out; + snprintf(buf, sizeof(buf), "%s %u %s", cookie, uid, passwd); diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c -index 0fcffa249..c1921121d 100644 +index 9b10b3117..74e6b72ad 100644 --- a/src/bin/e_fm/e_fm_main_eeze.c +++ b/src/bin/e_fm/e_fm_main_eeze.c @@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v) @@ -58,163 +53,29 @@ index 0fcffa249..c1921121d 100644 eeze_disk_mount_wrapper_set(v->disk, buf2); } v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v); -diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c -index 671fbcd9a..90ee04cf1 100644 ---- a/src/bin/e_sys.c -+++ b/src/bin/e_sys.c -@@ -702,20 +702,16 @@ _e_sys_cb_timer(void *data EINA_UNUSED) - - e_init_status_set(_("Checking System Permissions")); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys -t halt", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys -t halt"); - _e_sys_halt_check_exe = ecore_exe_run(buf, NULL); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys -t reboot", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys -t reboot"); - _e_sys_reboot_check_exe = ecore_exe_run(buf, NULL); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys -t suspend", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys -t suspend"); - _e_sys_suspend_check_exe = ecore_exe_run(buf, NULL); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys -t hibernate", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys -t hibernate"); - _e_sys_hibernate_check_exe = ecore_exe_run(buf, NULL); - return ECORE_CALLBACK_CANCEL; - } -@@ -1134,8 +1130,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) - if (e_util_immortal_check()) return 0; - e_fm2_die(); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys halt", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys halt"); - if (_e_sys_exe) - { - if ((ecore_time_get() - _e_sys_begin_time) > 2.0) -@@ -1170,8 +1165,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) - if (e_util_immortal_check()) return 0; - e_fm2_die(); - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys reboot", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys reboot"); - if (_e_sys_exe) - { - if ((ecore_time_get() - _e_sys_begin_time) > 2.0) -@@ -1204,8 +1198,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) - case E_SYS_SUSPEND: - /* /etc/acpi/sleep.sh force */ - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys suspend", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys suspend"); - if (_e_sys_exe) - { - if ((ecore_time_get() - _e_sys_begin_time) > 2.0) -@@ -1265,8 +1258,7 @@ _e_sys_action_do(E_Sys_Action a, char *param EINA_UNUSED, Eina_Bool raw) - case E_SYS_HIBERNATE: - /* /etc/acpi/hibernate.sh force */ - snprintf(buf, sizeof(buf), -- "%s/enlightenment/utils/enlightenment_sys hibernate", -- e_prefix_lib_get()); -+ "/run/setuid-programs/enlightenment_sys hibernate"); - if (_e_sys_exe) - { - if ((ecore_time_get() - _e_sys_begin_time) > 2.0) -diff --git a/src/modules/bluez4/e_mod_main.c b/src/modules/bluez4/e_mod_main.c -index 4b5148634..47d34b07f 100644 ---- a/src/modules/bluez4/e_mod_main.c -+++ b/src/modules/bluez4/e_mod_main.c -@@ -49,8 +49,8 @@ _ebluez_l2ping_poller(void *data EINA_UNUSED) - - if (tmp) - { -- eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys l2ping %s", -- e_prefix_lib_get(), tmp); -+ eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys l2ping %s", -+ tmp); - autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); - } - -@@ -692,8 +692,7 @@ e_modapi_init(E_Module *m) - autolock_desklock = ecore_event_handler_add(E_EVENT_DESKLOCK, _ebluez_desklock, NULL); - - buf = eina_strbuf_new(); -- eina_strbuf_append_printf(buf, "%s/enlightenment/utils/enlightenment_sys -t l2ping", -- e_prefix_lib_get()); -+ eina_strbuf_append_printf(buf, "/run/setuid-programs/enlightenment_sys -t l2ping"); - autolock_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); - eina_strbuf_free(buf); - -diff --git a/src/modules/bluez5/e_mod_main.c b/src/modules/bluez5/e_mod_main.c -index a581c466c..095d8f360 100644 ---- a/src/modules/bluez5/e_mod_main.c -+++ b/src/modules/bluez5/e_mod_main.c -@@ -321,8 +321,8 @@ ebluez5_rfkill_unblock(const char *name) - if (buf) - { - eina_strbuf_append_printf -- (buf, "%s/enlightenment/utils/enlightenment_sys rfkill-unblock %s", -- e_prefix_lib_get(), name); -+ (buf, "/run/setuid-programs/enlightenment_sys rfkill-unblock %s", -+ name); - _rfkill_exe = ecore_exe_run(eina_strbuf_string_get(buf), NULL); - eina_strbuf_free(buf); - } -diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c -index b66b365d8..bab0802cc 100644 ---- a/src/modules/cpufreq/e_mod_main.c -+++ b/src/modules/cpufreq/e_mod_main.c -@@ -1452,8 +1452,7 @@ e_modapi_init(E_Module *m) - } - E_CONFIG_LIMIT(cpufreq_config->poll_interval, 1, 1024); - -- snprintf(buf, sizeof(buf), "%s/%s/freqset", -- e_module_dir_get(m), MODULE_ARCH); -+ snprintf(buf, sizeof(buf), "/run/setuid-programs/freqset"); - cpufreq_config->set_exe_path = strdup(buf); - - if (stat(buf, &st) < 0) -diff --git a/src/modules/sysinfo/cpuclock/cpuclock.c b/src/modules/sysinfo/cpuclock/cpuclock.c -index 938916e53..00d5067d0 100644 ---- a/src/modules/sysinfo/cpuclock/cpuclock.c -+++ b/src/modules/sysinfo/cpuclock/cpuclock.c -@@ -80,8 +80,7 @@ _cpuclock_set_governor(const char *governor) - char buf[4096 + 100], exe[4096]; - struct stat st; - -- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs", -- e_module_dir_get(sysinfo_config->module), MODULE_ARCH); -+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs"); - if (stat(exe, &st) < 0) return; - - snprintf(buf, sizeof(buf), -@@ -108,8 +107,7 @@ _cpuclock_set_frequency(int frequency) - if (system(buf) != 0) - ERR("Error code from trying to run \"%s\"", buf); - #else -- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs", -- e_module_dir_get(sysinfo_config->module), MODULE_ARCH); -+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs"); - if (stat(exe, &st) < 0) return; - snprintf(buf, sizeof(buf), - "%s %s %i", exe, "frequency", frequency); -@@ -127,8 +125,7 @@ _cpuclock_set_pstate(int min, int max, int turbo) - char buf[4096 + 100], exe[4096]; - struct stat st; +diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c +index b2c439455..cb16c7bd4 100644 +--- a/src/bin/e_start_main.c ++++ b/src/bin/e_start_main.c +@@ -710,7 +710,7 @@ main(int argc, char **argv) + "E_ALERT_FONT_DIR=%s/data/fonts", eina_prefix_data_get(pfx)); + putenv(buf2); + snprintf(buf3, sizeof(buf3), +- "E_ALERT_SYSTEM_BIN=%s/enlightenment/utils/enlightenment_system", eina_prefix_lib_get(pfx)); ++ "E_ALERT_SYSTEM_BIN=/run/setuid-programs/enlightenment_system"); + putenv(buf3); -- snprintf(exe, 4096, "%s/%s/cpuclock_sysfs", -- e_module_dir_get(sysinfo_config->module), MODULE_ARCH); -+ snprintf(exe, 4096, "/run/setuid-programs/cpuclock_sysfs"); - if (stat(exe, &st) < 0) return; + if ((valgrind_mode || valgrind_tool) && +diff --git a/src/bin/e_system.c b/src/bin/e_system.c +index 1e7aabb64..dc0173219 100644 +--- a/src/bin/e_system.c ++++ b/src/bin/e_system.c +@@ -132,7 +132,7 @@ _system_spawn(void) + else _respawn_count = 0; + if (_respawn_count > 5) return; snprintf(buf, sizeof(buf), - "%s %s %i %i %i", exe, "pstate", min, max, turbo); --- -2.23.0 - +- "%s/enlightenment/utils/enlightenment_system", e_prefix_lib_get()); ++ "/run/setuid-programs/enlightenment_system"); + _system_exe = ecore_exe_pipe_run + (buf, ECORE_EXE_NOT_LEADER | ECORE_EXE_TERM_WITH_PARENT | + ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_WRITE, NULL); diff --git a/gnu/packages/patches/exercism-disable-self-update.patch b/gnu/packages/patches/exercism-disable-self-update.patch new file mode 100644 index 0000000000..a96cbfbc55 --- /dev/null +++ b/gnu/packages/patches/exercism-disable-self-update.patch @@ -0,0 +1,79 @@ +From bc22f7d43c12c5f79c71b0319666e71f29d61322 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <[email protected]> +Date: Mon, 25 May 2020 18:53:04 +0200 +Subject: [PATCH] Disable self-update. + +Based on a Fedora patch by Elliott Sales de Andrade. +--- + cli/cli.go | 44 +------------------------------------------- + 1 file changed, 1 insertion(+), 43 deletions(-) + +diff --git a/cli/cli.go b/cli/cli.go +index 4312eb0..5f62297 100644 +--- a/cli/cli.go ++++ b/cli/cli.go +@@ -10,13 +10,10 @@ import ( + "io" + "io/ioutil" + "net/http" +- "runtime" + "strings" + "time" + + "github.com/blang/semver" +- "github.com/exercism/cli/debug" +- update "github.com/inconshreveable/go-update" + ) + + var ( +@@ -95,46 +92,7 @@ func (c *CLI) IsUpToDate() (bool, error) { + + // Upgrade allows the user to upgrade to the latest version of the CLI. + func (c *CLI) Upgrade() error { +- var ( +- OS = osMap[runtime.GOOS] +- ARCH = archMap[runtime.GOARCH] +- ) +- +- if OS == "" || ARCH == "" { +- return fmt.Errorf("unable to upgrade: OS %s ARCH %s", OS, ARCH) +- } +- +- buildName := fmt.Sprintf("%s-%s", OS, ARCH) +- if BuildARCH == "arm" { +- if BuildARM == "" { +- return fmt.Errorf("unable to upgrade: arm version not found") +- } +- buildName = fmt.Sprintf("%s-v%s", buildName, BuildARM) +- } +- +- var downloadRC *bytes.Reader +- for _, a := range c.LatestRelease.Assets { +- if strings.Contains(a.Name, buildName) { +- debug.Printf("Downloading %s\n", a.Name) +- var err error +- downloadRC, err = a.download() +- if err != nil { +- return fmt.Errorf("error downloading executable: %s", err) +- } +- break +- } +- } +- if downloadRC == nil { +- return fmt.Errorf("no executable found for %s/%s%s", BuildOS, BuildARCH, BuildARM) +- } +- +- bin, err := extractBinary(downloadRC, OS) +- if err != nil { +- return err +- } +- defer bin.Close() +- +- return update.Apply(bin, update.Options{}) ++ return fmt.Errorf("Please use Guix to update Exercism") + } + + func (c *CLI) fetchLatestRelease() error { +-- +2.26.2 + diff --git a/gnu/packages/patches/git-annex-S3v4.patch b/gnu/packages/patches/git-annex-S3v4.patch deleted file mode 100644 index 9f7cea329e..0000000000 --- a/gnu/packages/patches/git-annex-S3v4.patch +++ /dev/null @@ -1,77 +0,0 @@ -From the upstream commit, with the changes to CHANGELOG and the docs -folder removed. - -From 1532d67c3ecf452b8c86bcc5928525398755cd01 Mon Sep 17 00:00:00 2001 -From: Joey Hess <[email protected]> -Date: Thu, 7 May 2020 13:18:11 -0400 -Subject: [PATCH] S3: Support signature=v4 - -To use S3 Signature Version 4. Some S3 services seem to require v4, while -others may only support v2, which remains the default. - -I'm also not sure if v4 works correctly in all cases, there is this -upstream bug report: https://github.com/aristidb/aws/issues/262 -I've only tested it against the default S3 endpoint. ---- - CHANGELOG | 3 +++ - Remote/S3.hs | 23 ++++++++++++++++++- - ..._3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment | 13 +++++++++++ - ..._854390b9a781da82ecb85ad85eecad04._comment | 13 +++++++++++ - doc/special_remotes/S3.mdwn | 4 ++++ - ..._cf57e8dbd9fdc7c487565b61808b6bb2._comment | 10 ++++++++ - 6 files changed, 65 insertions(+), 1 deletion(-) - create mode 100644 doc/bugs/S3_special_remote_support_for_DigitalOcean_Spaces/comment_2_3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment - create mode 100644 doc/forum/backblaze_s3/comment_1_854390b9a781da82ecb85ad85eecad04._comment - create mode 100644 doc/special_remotes/S3/comment_34_cf57e8dbd9fdc7c487565b61808b6bb2._comment - -diff --git a/Remote/S3.hs b/Remote/S3.hs -index cb345d1f8..e3ea492f2 100644 ---- a/Remote/S3.hs -+++ b/Remote/S3.hs -@@ -99,6 +99,8 @@ remote = specialRemoteType $ RemoteType - (FieldDesc "port to connect to") - , optionalStringParser requeststyleField - (FieldDesc "for path-style requests, set to \"path\"") -+ , signatureVersionParser signatureField -+ (FieldDesc "S3 signature version") - , optionalStringParser mungekeysField HiddenField - , optionalStringParser AWS.s3credsField HiddenField - ] -@@ -148,6 +150,22 @@ protocolField = Accepted "protocol" - requeststyleField :: RemoteConfigField - requeststyleField = Accepted "requeststyle" - -+signatureField :: RemoteConfigField -+signatureField = Accepted "signature" -+ -+newtype SignatureVersion = SignatureVersion Int -+ -+signatureVersionParser :: RemoteConfigField -> FieldDesc -> RemoteConfigFieldParser -+signatureVersionParser f fd = -+ genParser go f defver fd -+ (Just (ValueDesc "v2 or v4")) -+ where -+ go "v2" = Just (SignatureVersion 2) -+ go "v4" = Just (SignatureVersion 4) -+ go _ = Nothing -+ -+ defver = SignatureVersion 2 -+ - portField :: RemoteConfigField - portField = Accepted "port" - -@@ -877,7 +895,10 @@ s3Configuration c = cfg - Nothing - | port == 443 -> AWS.HTTPS - | otherwise -> AWS.HTTP -- cfg = S3.s3 proto endpoint False -+ cfg = case getRemoteConfigValue signatureField c of -+ Just (SignatureVersion 4) -> -+ S3.s3v4 proto endpoint False S3.SignWithEffort -+ _ -> S3.s3 proto endpoint False - - data S3Info = S3Info - { bucket :: S3.Bucket --- -2.26.2 - diff --git a/gnu/packages/patches/grub-setup-root.patch b/gnu/packages/patches/grub-setup-root.patch new file mode 100644 index 0000000000..1abe9c383a --- /dev/null +++ b/gnu/packages/patches/grub-setup-root.patch @@ -0,0 +1,124 @@ +This patch is taken from OpenWrt, see: + +https://github.com/openwrt/openwrt/blob/master/package/boot/grub2/patches/100-grub_setup_root.patch. + +It allows to use grub-bios-setup on a raw disk-images, without root permissions. + +--- a/util/grub-setup.c ++++ b/util/grub-setup.c +@@ -87,6 +87,8 @@ static struct argp_option options[] = { + N_("install even if problems are detected"), 0}, + {"skip-fs-probe",'s',0, 0, + N_("do not probe for filesystems in DEVICE"), 0}, ++ {"root-device", 'r', N_("DEVICE"), 0, ++ N_("use DEVICE as the root device"), 0}, + {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, + {"allow-floppy", 'a', 0, 0, + /* TRANSLATORS: The potential breakage isn't limited to floppies but it's +@@ -130,6 +132,7 @@ struct arguments + char *core_file; + char *dir; + char *dev_map; ++ char *root_dev; + int force; + int fs_probe; + int allow_floppy; +@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct + arguments->dev_map = xstrdup (arg); + break; + ++ case 'r': ++ if (arguments->root_dev) ++ free (arguments->root_dev); ++ ++ arguments->root_dev = xstrdup (arg); ++ break; ++ + case 'f': + arguments->force = 1; + break; +@@ -313,7 +323,7 @@ main (int argc, char *argv[]) + GRUB_SETUP_FUNC (arguments.dir ? : DEFAULT_DIRECTORY, + arguments.boot_file ? : DEFAULT_BOOT_FILE, + arguments.core_file ? : DEFAULT_CORE_FILE, +- dest_dev, arguments.force, ++ arguments.root_dev, dest_dev, arguments.force, + arguments.fs_probe, arguments.allow_floppy, + arguments.add_rs_codes); + +--- a/util/setup.c ++++ b/util/setup.c +@@ -252,13 +252,12 @@ identify_partmap (grub_disk_t disk __att + void + SETUP (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes __attribute__ ((unused))) /* unused on sparc64 */ + { + char *core_path; + char *boot_img, *core_img, *boot_path; +- char *root = 0; + size_t boot_size, core_size; + grub_uint16_t core_sectors; + grub_device_t root_dev = 0, dest_dev, core_dev; +@@ -307,7 +306,10 @@ SETUP (const char *dir, + + core_dev = dest_dev; + +- { ++ if (root) ++ root_dev = grub_device_open(root); ++ ++ if (!root_dev) { + char **root_devices = grub_guess_root_devices (dir); + char **cur; + int found = 0; +@@ -320,6 +322,8 @@ SETUP (const char *dir, + char *drive; + grub_device_t try_dev; + ++ if (root_dev) ++ break; + drive = grub_util_get_grub_dev (*cur); + if (!drive) + continue; +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -191,13 +191,13 @@ grub_install_get_image_target (const cha + void + grub_util_bios_setup (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes); + void + grub_util_sparc_setup (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes); + +--- a/util/grub-install.c ++++ b/util/grub-install.c +@@ -1712,7 +1712,7 @@ main (int argc, char *argv[]) + /* Now perform the installation. */ + if (install_bootsector) + grub_util_bios_setup (platdir, "boot.img", "core.img", +- install_drive, force, ++ NULL, install_drive, force, + fs_probe, allow_floppy, add_rs_codes); + break; + } +@@ -1738,7 +1738,7 @@ main (int argc, char *argv[]) + /* Now perform the installation. */ + if (install_bootsector) + grub_util_sparc_setup (platdir, "boot.img", "core.img", +- install_drive, force, ++ NULL, install_drive, force, + fs_probe, allow_floppy, + 0 /* unused */ ); + break; diff --git a/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch b/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch new file mode 100644 index 0000000000..8bb7153153 --- /dev/null +++ b/gnu/packages/patches/guile-fibers-destroy-peer-schedulers.patch @@ -0,0 +1,24 @@ +Fibers 1.0.0 has a bug in run-fibers in which peer schedulers aren't destroyed - +so if you had 4 cores, 1 would be destroyed when run-fibers returned, but the +other 3 would stay around. Each scheduler uses 3 file descriptors, so for +machines with many cores, this resource leak adds up quickly - quickly enough +that the test suite can even fail because of it. + +See https://github.com/wingo/fibers/issues/36. + +This fixes that. It should be safe to destroy the peer schedulers at the given +point because the threads that could be running them are all either dead or the +current thread. + +As of May 21, 2020, this bug still existed in the 1.0.0 (latest) release and in +git master. +--- a/fibers.scm 2020-05-21 18:38:06.890690154 -0500 ++++ b/fibers.scm 2020-05-21 18:38:56.395686693 -0500 +@@ -137,5 +137,6 @@ + (%run-fibers scheduler hz finished? affinity)) + (lambda () + (stop-auxiliary-threads scheduler))))) ++ (for-each destroy-scheduler (scheduler-remote-peers scheduler)) + (destroy-scheduler scheduler) + (apply values (atomic-box-ref ret)))))) + diff --git a/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch b/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch deleted file mode 100644 index 9ea9a47677..0000000000 --- a/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch +++ /dev/null @@ -1,55 +0,0 @@ -From a6e9e62a77ecc5012929613e20da23b2636450a5 Mon Sep 17 00:00:00 2001 -From: Mathieu Othacehe <[email protected]> -Date: Mon, 25 Mar 2019 11:00:38 +0100 -Subject: [PATCH] cross compile - ---- - build-aux/guile.am | 2 +- - configure.ac | 19 ++++++++++++------- - 2 files changed, 13 insertions(+), 8 deletions(-) - -diff --git a/build-aux/guile.am b/build-aux/guile.am -index dc1e63f..3126372 100644 ---- a/build-aux/guile.am -+++ b/build-aux/guile.am -@@ -16,4 +16,4 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES) - GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat - SUFFIXES = .scm .go - .scm.go: -- $(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<" -+ $(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" -diff --git a/configure.ac b/configure.ac -index f648fcb..2d34d0a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -21,15 +21,20 @@ PKG_CHECK_MODULES([SQLITE], [sqlite3]) - SQLITE_LIBDIR="`"$PKG_CONFIG" sqlite3 --variable libdir`" - AC_SUBST([SQLITE_LIBDIR]) - --AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable]) --GUILE_CHECK([retval], -- [(dynamic-func \"sqlite3_open_v2\" -+if test "$cross_compiling" = "no"; then -+ AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable]) -+ GUILE_CHECK([retval], -+ [(dynamic-func \"sqlite3_open_v2\" - (dynamic-link \"$SQLITE_LIBDIR/libsqlite3\"))]) --if test "$retval" != 0; then -- AC_MSG_RESULT([no]) -- AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3']) -+ if test "$retval" != 0; then -+ AC_MSG_RESULT([no]) -+ AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3']) -+ else -+ AC_MSG_RESULT([yes]) -+ fi - else -- AC_MSG_RESULT([yes]) -+ GUILE_TARGET="--target=$host_alias" -+ AC_SUBST([GUILE_TARGET]) - fi - - AC_CONFIG_FILES([Makefile sqlite3.scm]) --- -2.17.1 - diff --git a/gnu/packages/patches/haskell-mode-make-check.patch b/gnu/packages/patches/haskell-mode-make-check.patch deleted file mode 100644 index a4d4d525f2..0000000000 --- a/gnu/packages/patches/haskell-mode-make-check.patch +++ /dev/null @@ -1,35 +0,0 @@ -Copied from upstream repository. -Hunk #2 is removed since it cannot be applied and it is not needed. - -From 7cead7137bf54851c1b7df5a3854351296d21276 Mon Sep 17 00:00:00 2001 -From: Vasantha Ganesh K <[email protected]> -Date: Thu, 22 Jun 2017 23:38:40 +0530 -Subject: [PATCH] removed `check-conventions' from make - ---- - Makefile | 7 +- - tests/haskell-code-conventions.el | 165 ------------------------------ - 2 files changed, 1 insertion(+), 171 deletions(-) - delete mode 100644 tests/haskell-code-conventions.el - -diff --git a/Makefile b/Makefile -index b2c89d6..aa907c5 100644 ---- a/Makefile -+++ b/Makefile -@@ -79,12 +79,7 @@ build-$(EMACS_VERSION)/build-flag : build-$(EMACS_VERSION) $(patsubst %.el,build - check-%: tests/%-tests.el - $(BATCH) -l "$<" -f ert-run-tests-batch-and-exit; - --check: compile $(AUTOLOADS) check-ert check-conventions -- --check-conventions : -- $(BATCH) -l tests/haskell-code-conventions.el \ -- -f haskell-check-conventions-batch-and-exit -- @echo "conventions are okay" -+check: compile $(AUTOLOADS) check-ert - - check-ert: $(ELCHECKS) - $(BATCH) --eval "(when (= emacs-major-version 24) \ --- -2.18.0 - diff --git a/gnu/packages/patches/haskell-mode-unused-variables.patch b/gnu/packages/patches/haskell-mode-unused-variables.patch deleted file mode 100644 index b175fae28c..0000000000 --- a/gnu/packages/patches/haskell-mode-unused-variables.patch +++ /dev/null @@ -1,44 +0,0 @@ -Copied verbatim from upstream repository. - -From cee22450ee30e79952f594796721dc6b17798ee6 Mon Sep 17 00:00:00 2001 -From: Sascha Wilde <[email protected]> -Date: Fri, 23 Sep 2016 15:35:59 +0200 -Subject: [PATCH] Removed unused lexical variables. - ---- - haskell-lexeme.el | 3 +-- - haskell-process.el | 4 +--- - 2 files changed, 2 insertions(+), 5 deletions(-) - -diff --git a/haskell-lexeme.el b/haskell-lexeme.el -index 4256a79..b832560 100644 ---- a/haskell-lexeme.el -+++ b/haskell-lexeme.el -@@ -138,8 +138,7 @@ When match is successful, match-data will contain: - (match-text 2) - whole qualified identifier - (match-text 3) - unqualified part of identifier - (match-text 4) - closing backtick" -- (let ((begin (point)) -- (match-data-old (match-data)) -+ (let ((match-data-old (match-data)) - first-backtick-start - last-backtick-start - qid-start -diff --git a/haskell-process.el b/haskell-process.el -index b4efba2..4f3f859 100644 ---- a/haskell-process.el -+++ b/haskell-process.el -@@ -160,9 +160,7 @@ HPTYPE is the result of calling `'haskell-process-type`' function." - (defun haskell-process-log (msg) - "Effective append MSG to the process log (if enabled)." - (when haskell-process-log -- (let* ((append-to (get-buffer-create "*haskell-process-log*")) -- (windows (get-buffer-window-list append-to t t)) -- move-point-in-windows) -+ (let* ((append-to (get-buffer-create "*haskell-process-log*"))) - (with-current-buffer append-to - ;; point should follow insertion so that it stays at the end - ;; of the buffer --- -2.18.0 - diff --git a/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch b/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch new file mode 100644 index 0000000000..79bd3e8dbc --- /dev/null +++ b/gnu/packages/patches/http-parser-fix-assertion-on-armhf.patch @@ -0,0 +1,39 @@ +From: Tobias Geerinckx-Rice <[email protected]> +Date: Wed, 20 May 2020 19:17:13 +0200 +Subject: [PATCH] gnu: http-client: Fix assertion on armhf-linux. + +Copied verbatim from [0] to fix guix pull[1] on ARM systems. + +[0]: https://github.com/nodejs/http-parser/pull/510 +[1]: https://issues.guix.gnu.org/40604 + +From 0e5868aebb9eb92b078d27bb2774c2154dc167e2 Mon Sep 17 00:00:00 2001 +From: Ben Noordhuis <[email protected]> +Date: Thu, 30 Apr 2020 11:22:50 +0200 +Subject: [PATCH] Fix sizeof(http_parser) assert + +The result should be 32 on both 32 bits and 64 bits architectures +because of struct padding. + +Fixes: https://github.com/nodejs/http-parser/issues/507 +--- + test.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/test.c b/test.c +index 7983424..f60a84f 100644 +--- a/test.c ++++ b/test.c +@@ -4220,8 +4220,11 @@ main (void) + patch = version & 255; + printf("http_parser v%u.%u.%u (0x%06lx)\n", major, minor, patch, version); + ++ /* Should be 32 on both 32 bits and 64 bits architectures because of ++ * struct padding, see https://github.com/nodejs/http-parser/issues/507. ++ */ + printf("sizeof(http_parser) = %u\n", (unsigned int)sizeof(http_parser)); +- assert(sizeof(http_parser) == 4 + 4 + 8 + 2 + 2 + 4 + sizeof(void *)); ++ assert(sizeof(http_parser) == 32); + + //// API + test_preserve_data(); diff --git a/gnu/packages/patches/hurd-xattr.patch b/gnu/packages/patches/hurd-xattr.patch new file mode 100644 index 0000000000..0a922c91b5 --- /dev/null +++ b/gnu/packages/patches/hurd-xattr.patch @@ -0,0 +1,53 @@ +From 75cb948c575fca3962c4cce115d31dd178bc389f Mon Sep 17 00:00:00 2001 +From: "Jan (janneke) Nieuwenhuizen" <[email protected]> +Date: Tue, 12 May 2020 07:39:59 +0200 +Subject: [PATCH] ext2fs: Update to upstream Hurd-reserved xattr index for + "gnu.*". + +See + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3980bd3b406addb327d858aebd19e229ea340b9a + +This supports setting (and reading) of passive trasnlators from +GNU/Linux, e.g. + + dd if=/dev/zero of=file bs=1k count=1000 + losetup /dev/loop0 file + mke2fs -t ext2 -o hurd -O ext_attr /dev/loop0 + mount -t ext2 -o x-xattr-translator-records /dev/loop0 /mnt + mkdir -p /mnt/servers/socket + touch /mnt/servers/socket/1 + setfattr --name=gnu.translator --value='/hurd/pflocal\0' /mnt/servers/socket/1 + getfattr --name=gnu.translator /mnt/servers/socket/1 + # file: 1 + gnu.translator="/hurd/pflocal" + +* ext2fs/xattr.c (struct _xattr_prefix): For "gnu.*", use index for +the Hurd (10). +--- + ext2fs/xattr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext2fs/xattr.c b/ext2fs/xattr.c +index f6ea0f39..78458214 100644 +--- a/ext2fs/xattr.c ++++ b/ext2fs/xattr.c +@@ -1,6 +1,6 @@ + /* Ext2 support for extended attributes + +- Copyright (C) 2006, 2016 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2016, 2020 Free Software Foundation, Inc. + + Written by Thadeu Lima de Souza Cascardo <[email protected]> + and Shengyu Zhang <[email protected]> +@@ -39,7 +39,7 @@ xattr_prefixes[] = + { + 1, "user.", sizeof "user." - 1}, + { +- 7, "gnu.", sizeof "gnu." - 1}, ++ 10, "gnu.", sizeof "gnu." - 1}, + { + 0, NULL, 0} + }; +-- +2.26.0 + diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index 2978a5789e..d3d95cbf28 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 fa5b2266d225878d4b35694678f79fd7e7a6d3c62759a40326129bd90f63e842 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +-echo -n 935105e1a8a97d64daffb372690e2b566b5f07641f01470929dbbc82d20d4407 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 fa5b2266d225878d4b35694678f79fd7e7a6d3c62759a40326129bd90f63e842 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++# echo -n 935105e1a8a97d64daffb372690e2b566b5f07641f01470929dbbc82d20d4407 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/java-openjfx-build-jdk_version.patch b/gnu/packages/patches/java-openjfx-build-jdk_version.patch new file mode 100644 index 0000000000..7be954467a --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch @@ -0,0 +1,27 @@ +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME + +Icedtea contains guix in its version, so build.gradle failes to run. Openjfx +packaging is not trivial, so you will probably need to try build it with +gradlew. + +--- + build.gradle | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/build.gradle b/build.gradle +index df82f63..2c626cd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -742,9 +742,9 @@ try { + if (inStream.readLine() != null) { + String v = inStream.readLine(); + if (v != null) { +- int ib = v.indexOf(" (build "); ++ int ib = v.indexOf(" (guix build "); + if (ib != -1) { +- String ver = v.substring(ib + 8, v.size() - 1); ++ String ver = v.substring(ib + 13, v.size() - 1); + + defineProperty("jdkRuntimeVersion", ver) + defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) +2.24.1 diff --git a/gnu/packages/patches/kdepim-runtime-Fix-missing-link-libraries.patch b/gnu/packages/patches/kdepim-runtime-Fix-missing-link-libraries.patch deleted file mode 100644 index 13345c0038..0000000000 --- a/gnu/packages/patches/kdepim-runtime-Fix-missing-link-libraries.patch +++ /dev/null @@ -1,42 +0,0 @@ -From b84c4ba97cecf7304e99cafdd8a9c5866ce27050 Mon Sep 17 00:00:00 2001 -From: Hartmut Goebel <[email protected]> -Date: Tue, 21 Jan 2020 23:33:50 +0100 -Subject: [PATCH] Fix missing link libraries. - -See <https://phabricator.kde.org/D26819> - -These are only actually missing if the libraries reside in different -prefixes, as it is the case in Guix or Nix. ---- - resources/ews/test/CMakeLists.txt | 1 + - resources/facebook/CMakeLists.txt | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/resources/ews/test/CMakeLists.txt b/resources/ews/test/CMakeLists.txt -index b20eddcb8..6355eb994 100644 ---- a/resources/ews/test/CMakeLists.txt -+++ b/resources/ews/test/CMakeLists.txt -@@ -35,6 +35,7 @@ qt5_add_resources(isolatestestcommon_RSRCS isolatedtestcommon.qrc) - add_library(isolatedtestcommon STATIC ${isolatestestcommon_SRCS}) - target_link_libraries(isolatedtestcommon - KF5::AkonadiCore -+ KF5::AkonadiMime - Qt5::Core - Qt5::Network - Qt5::Test -diff --git a/resources/facebook/CMakeLists.txt b/resources/facebook/CMakeLists.txt -index bdd5eeaa7..27a9c83c1 100644 ---- a/resources/facebook/CMakeLists.txt -+++ b/resources/facebook/CMakeLists.txt -@@ -21,7 +21,8 @@ add_library(facebookresourcelib STATIC ${fbresource_SRCS}) - - target_link_libraries(facebookresourcelib - KF5::KIOWidgets -+ KF5::AkonadiCore - KF5::IconThemes - KF5::I18n - KF5::ConfigGui - KF5::CalendarCore --- -2.21.1 - diff --git a/gnu/packages/patches/kinit-kdeinit-extra_libs.patch b/gnu/packages/patches/kinit-kdeinit-extra_libs.patch index c3c4ce1161..1271f3df7d 100644 --- a/gnu/packages/patches/kinit-kdeinit-extra_libs.patch +++ b/gnu/packages/patches/kinit-kdeinit-extra_libs.patch @@ -42,12 +42,12 @@ pkgs/development/libraries/kde-frameworks/kinit/kdeinit-extra_libs.patch extern "C" { static void secondary_child_handler(int) -@@ -1689,7 +1693,7 @@ +@@ -1673,7 +1673,7 @@ + #if defined(Q_OS_UNIX) && !defined(Q_OS_OSX) if (!d.suicide && qEnvironmentVariableIsEmpty("KDE_IS_PRELINKED")) { - const int extrasCount = sizeof(extra_libs) / sizeof(extra_libs[0]); - for (int i = 0; i < extrasCount; i++) { -- const QString extra = findSharedLib(QString::fromLatin1(extra_libs[i])); -+ const QString extra = QString::fromLatin1(extra_libs[i]); + for (const char *extra_lib : extra_libs) { +- const QString extra = findSharedLib(QString::fromLatin1(extra_lib)); ++ const QString extra = QString::fromLatin1(extra_lib); if (!extra.isEmpty()) { QLibrary l(extra); l.setLoadHints(QLibrary::ExportExternalSymbolsHint); diff --git a/gnu/packages/patches/kpmcore-fix-tests.patch b/gnu/packages/patches/kpmcore-fix-tests.patch deleted file mode 100644 index 12043abe72..0000000000 --- a/gnu/packages/patches/kpmcore-fix-tests.patch +++ /dev/null @@ -1,30 +0,0 @@ -Git commit c02d59aa6d314678cef9683f96b28e2a1abd82b7 by Andrius Å tikonas, on behalf of Hartmut Goebel. -Committed on 07/11/2019 at 22:16. -Pushed by stikonas into branch '4.0'. - -Fix test for kpmcore: stop helper only if formerly started. - -See https://bugs.kde.org/413851 and https://phabricator.kde.org/D25161 - -diff --git a/src/util/externalcommand.cpp b/src/util/externalcommand.cpp ---- a/src/util/externalcommand.cpp -+++ b/src/util/externalcommand.cpp -@@ -433,14 +433,17 @@ - - void ExternalCommand::stopHelper() - { -+ if (!helperStarted) -+ return; - auto *interface = new org::kde::kpmcore::externalcommand(QStringLiteral("org.kde.kpmcore.externalcommand"), - QStringLiteral("/Helper"), QDBusConnection::systemBus()); - QByteArray request; - const quint64 nonce = interface->getNonce(); - request.setNum(nonce); - QByteArray hash = QCryptographicHash::hash(request, QCryptographicHash::Sha512); - interface->exit(privateKey->signMessage(hash, QCA::EMSA3_Raw), nonce); - -+ helperStarted = false; - delete privateKey; - delete init; - } - diff --git a/gnu/packages/patches/kpmcore-remove-broken-test.patch b/gnu/packages/patches/kpmcore-remove-broken-test.patch deleted file mode 100644 index d02cca7883..0000000000 --- a/gnu/packages/patches/kpmcore-remove-broken-test.patch +++ /dev/null @@ -1,139 +0,0 @@ -From c9a08a593bac8b8610a647db118fea6f2958156d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= <[email protected]> -Date: Thu, 7 Nov 2019 22:12:00 +0000 -Subject: [PATCH] Remove broken smart unit test. - -BUG: 413853 ---- - test/CMakeLists.txt | 9 ---- - test/testsmart.cpp | 102 -------------------------------------------- - 2 files changed, 111 deletions(-) - delete mode 100644 test/testsmart.cpp - -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 67f63a2..6a300d3 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -53,12 +53,3 @@ find_package (Threads) - # Execute external commands as root - kpm_test(testexternalcommand testexternalcommand.cpp) - add_test(NAME testexternalcommand COMMAND testexternalcommand ${BACKEND}) -- --# Including SMART files reference --set(SMARTPARSER ${CMAKE_SOURCE_DIR}/src/core/smartdiskinformation.cpp -- ${CMAKE_SOURCE_DIR}/src/core/smartattributeparseddata.cpp -- ${CMAKE_SOURCE_DIR}/src/core/smartparser.cpp) -- --# Test SMART support --kpm_test(testsmart testsmart.cpp ${SMARTPARSER}) --add_test(NAME testsmart COMMAND testsmart ${BACKEND}) -diff --git a/test/testsmart.cpp b/test/testsmart.cpp -deleted file mode 100644 -index 2236af7..0000000 ---- a/test/testsmart.cpp -+++ /dev/null -@@ -1,102 +0,0 @@ --#include "helpers.h" -- --#include "util/externalcommand.h" --#include "backend/corebackend.h" --#include "backend/corebackendmanager.h" --#include "core/smartstatus.h" --#include "core/smartparser.h" -- --#include <QCoreApplication> --#include <QDebug> -- --static QString getDefaultDevicePath(); --static bool testSmartStatus(); --static bool testSmartParser(); -- --int main(int argc, char **argv) --{ -- QCoreApplication app(argc, argv); -- -- KPMCoreInitializer i; -- -- if (argc == 2) -- i = KPMCoreInitializer(argv[1]); -- -- if (!i.isValid()) -- return 1; -- -- CoreBackend *backend = CoreBackendManager::self()->backend(); -- -- if (!backend) -- { -- qWarning() << "Couldn't get backend."; -- return 1; -- } -- -- if (!testSmartStatus() || !testSmartParser()) -- return 1; -- -- return app.exec(); --} -- --static QString getDefaultDevicePath() --{ -- // Getting default home partition using 'df -P /home | awk 'END{print $1}'' command -- ExternalCommand command(QStringLiteral("df"), { QStringLiteral("-P"), QStringLiteral("/home"), QStringLiteral("|"), -- QStringLiteral("awk"), QStringLiteral("\'END{print $1}\'") }); -- -- if (command.run() && command.exitCode() == 0) { -- QString output = command.output(); -- return output; -- } -- -- return QString(); --} -- --static bool testSmartStatus() --{ -- QString devicePath = getDefaultDevicePath(); -- -- SmartStatus smart(devicePath); -- -- if (smart.devicePath() != devicePath) -- return false; -- -- if (!smart.status()) -- return false; -- -- if (smart.modelName() == QString()) -- return false; -- -- if (smart.firmware() == QString()) -- return false; -- -- if (smart.serial() == QString()) -- return false; -- -- if (smart.selfTestStatus() != SmartStatus::SelfTestStatus::Success) -- return false; -- -- if (!smart.isValid()) -- return false; -- -- return true; --} -- --static bool testSmartParser() --{ -- QString devicePath = getDefaultDevicePath(); -- -- SmartParser parser(devicePath); -- -- if (!parser.init()) -- return false; -- -- if (parser.devicePath() != devicePath) -- return false; -- -- if (!parser.diskInformation()) -- return false; -- -- return true; --} --- -2.17.1 diff --git a/gnu/packages/patches/lib2geom-enable-assertions.patch b/gnu/packages/patches/lib2geom-enable-assertions.patch new file mode 100644 index 0000000000..8feb44acbf --- /dev/null +++ b/gnu/packages/patches/lib2geom-enable-assertions.patch @@ -0,0 +1,36 @@ +From 4aa78f52232682b353eb15c219171e466987bac7 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer <[email protected]> +Date: Thu, 16 Jan 2020 00:19:29 -0500 +Subject: [PATCH] build: Enable assertions for the RelWithDebugInfo build type. + +This fixes issue #5 (see: +https://gitlab.com/inkscape/lib2geom/issues/5). + +* CMakeLists.txt: Remove the "-DNDEBUG" CXX flag from the default +configuration for the RelWithDebugInfo build type. +--- + CMakeLists.txt | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bfeb8f03..a663a1b0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,14 @@ enable_testing() + + include(CheckCXXSourceCompiles) + ++# Enable assertions for the RelWithDebugInfo build type. This is ++# useful as some tests make use of it (see: ++# https://gitlab.com/inkscape/lib2geom/issues/5). ++if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") ++ string(REPLACE "-DNDEBUG" "" ++ CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") ++endif() ++ + # Find dependencies + find_package(Boost 1.40 REQUIRED) + find_package(DoubleConversion REQUIRED) +-- +2.24.1 + diff --git a/gnu/packages/patches/lib2geom-link-tests-against-glib.patch b/gnu/packages/patches/lib2geom-link-tests-against-glib.patch new file mode 100644 index 0000000000..2b4f7ca6bf --- /dev/null +++ b/gnu/packages/patches/lib2geom-link-tests-against-glib.patch @@ -0,0 +1,34 @@ +From f95925afef451755fc1449e57fbfdc2e7277f4b4 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer <[email protected]> +Date: Sat, 11 Jan 2020 00:44:55 -0500 +Subject: [PATCH 1/3] tests: Link against GLib. + +This resolves an error about not finding <glib.h> when linking the +tests that make use of GLib. + +* src/tests/CMakeLists.txt[2GEOM_GTESTS_SRC]: Add the glib library to +the link target libraries. +--- + src/tests/CMakeLists.txt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt +index 5ddf7f9c..626cfd87 100644 +--- a/src/tests/CMakeLists.txt ++++ b/src/tests/CMakeLists.txt +@@ -32,8 +32,10 @@ sbasis-test + + foreach(source ${2GEOM_GTESTS_SRC}) + add_executable(${source} ${source}.cpp) +- target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS}) +- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES}) ++ target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ++ ${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS}) ++ target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES} ++ ${GTK3_LIBRARIES} ${GLIB_LIBRARIES}) + add_test(NAME ${source} COMMAND ${source}) + endforeach() + +-- +2.24.1 + diff --git a/gnu/packages/patches/lib2geom-use-system-googletest.patch b/gnu/packages/patches/lib2geom-use-system-googletest.patch new file mode 100644 index 0000000000..16cce1799f --- /dev/null +++ b/gnu/packages/patches/lib2geom-use-system-googletest.patch @@ -0,0 +1,94 @@ +From 6693b9c8ff1ae1ec02c9002c0a8f5f416f0c88f0 Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer <[email protected]> +Date: Sun, 12 Jan 2020 23:23:33 -0500 +Subject: [PATCH 3/3] build: Prefer googletest from the system. + +Fixes issue #4. + +The build system now look for a system installed googletest or falls +back to the bundled copy of googletest otherwise. + +* CMakeLists.txt: Add call to find_package(GTest). +(include_directories): Remove "src/googletest/googletest/include" from +arg. +* src/CMakeLists.txt[NOT GTEST_FOUND]: Define the gtest and gtest_main +libraries when GTEST_FOUND is false. Globally include the googletest +headers here. Define aliases for the gtest and gtest_main libraries +that match those defined by the FindGTest module. +* src/tests/CMakeLists.txt: Replace references to gtest_main and gtest +by GTest::Main and GTest::GTest, respectively. +--- + CMakeLists.txt | 3 ++- + src/CMakeLists.txt | 15 +++++++++++---- + src/tests/CMakeLists.txt | 6 +++--- + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bfeb8f03..96fbd58c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,13 +25,14 @@ find_package(DoubleConversion REQUIRED) + find_package(PkgConfig REQUIRED) + find_package(Cython) + find_package(Threads) ++find_package(GTest) + pkg_check_modules(GTK3 gtk+-3.0) + pkg_check_modules(GLIB glib-2.0) + pkg_check_modules(CAIRO cairo) + pkg_check_modules(GSL gsl) + + # Add global include and link directories +-include_directories(src src/googletest/googletest/include ${CMAKE_CURRENT_BINARY_DIR}) ++include_directories(src ${CMAKE_CURRENT_BINARY_DIR}) + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/2geom) + + check_cxx_source_compiles("#include <math.h>\nint main() { double a=0.5,b=0.5,c=0.5; sincos(a, &b, &c); return 0; }" HAVE_SINCOS) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index eefb3ac5..941dc4c7 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -1,7 +1,14 @@ +-add_library(gtest SHARED googletest/googletest/src/gtest-all.cc) +-target_include_directories(gtest PRIVATE googletest/googletest) +-target_link_libraries(gtest Threads::Threads) +-add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc) ++if(NOT GTEST_FOUND) ++ message("No system googletest library: using bundled copy.") ++ add_library(gtest SHARED googletest/googletest/src/gtest-all.cc) ++ add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc) ++ target_include_directories(gtest PRIVATE googletest/googletest) ++ target_link_libraries(gtest Threads::Threads) ++ include_directories(SYSTEM googletest/googletest/include) ++ # Aliases to share the same nomenclature with FindGTest. ++ add_library(GTest::GTest ALIAS gtest) ++ add_library(GTest::Main ALIAS gtest_main) ++endif() + + add_subdirectory(2geom) + add_subdirectory(tests) +diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt +index 626cfd87..3538f8cf 100644 +--- a/src/tests/CMakeLists.txt ++++ b/src/tests/CMakeLists.txt +@@ -34,15 +34,15 @@ foreach(source ${2GEOM_GTESTS_SRC}) + add_executable(${source} ${source}.cpp) + target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} + ${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS}) +- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES} +- ${GTK3_LIBRARIES} ${GLIB_LIBRARIES}) ++ target_link_libraries(${source} 2geom GTest::Main GTest::GTest ++ ${GSL_LIBRARIES} ${GTK3_LIBRARIES} ${GLIB_LIBRARIES}) + add_test(NAME ${source} COMMAND ${source}) + endforeach() + + foreach(source ${2GEOM_TESTS_SRC}) + add_executable(${source} ${source}.cpp) + target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS}) +- target_link_libraries(${source} 2geom gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES}) ++ target_link_libraries(${source} 2geom GTest::GTest ${GSL_LIBRARIES} ${GTK3_LIBRARIES}) + add_test(NAME ${source} COMMAND ${source}) + endforeach(source) + +-- +2.24.1 + diff --git a/gnu/packages/patches/libdrm-realpath-virtio.patch b/gnu/packages/patches/libdrm-realpath-virtio.patch new file mode 100644 index 0000000000..b7d85160b4 --- /dev/null +++ b/gnu/packages/patches/libdrm-realpath-virtio.patch @@ -0,0 +1,42 @@ +Only check for for relative path on virtio devices. Otherwise it could +break driver loading in some circumstances, notably the IceCat sandbox. + +https://gitlab.freedesktop.org/mesa/drm/-/issues/39 + +Taken from upstream: +https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd + +diff --git a/xf86drm.c b/xf86drm.c +--- a/xf86drm.c ++++ b/xf86drm.c +@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min) + int subsystem_type; + + snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min); +- if (!realpath(path, real_path)) +- return -errno; +- snprintf(path, sizeof(path), "%s", real_path); + + subsystem_type = get_subsystem_type(path); ++ /* Try to get the parent (underlying) device type */ + if (subsystem_type == DRM_BUS_VIRTIO) { ++ /* Assume virtio-pci on error */ ++ if (!realpath(path, real_path)) ++ return DRM_BUS_VIRTIO; + strncat(path, "/..", PATH_MAX); + subsystem_type = get_subsystem_type(path); +- } ++ if (subsystem_type < 0) ++ return DRM_BUS_VIRTIO; ++ } + return subsystem_type; + #elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__) + return DRM_BUS_PCI; +@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name, + + switch (subsystem_type) { + case DRM_BUS_PCI: ++ case DRM_BUS_VIRTIO: + return drmProcessPciDevice(device, node, node_type, maj, min, + fetch_deviceinfo, flags); + case DRM_BUS_USB: diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch deleted file mode 100644 index 0a77763a4f..0000000000 --- a/gnu/packages/patches/libdrm-symbol-check.patch +++ /dev/null @@ -1,215 +0,0 @@ -Augment the list of expected symbols to fix the symbol-check tests on -mips64el-linux, armhf-linux and aarch64-linux. - ---- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400 -+++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - fd_bo_cpu_fini - fd_bo_cpu_prep - fd_bo_del ---- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/nouveau/nouveau-symbol-check 2015-10-18 23:55:26.078327118 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - nouveau_bo_map - nouveau_bo_name_get - nouveau_bo_name_ref ---- libdrm-2.4.65/libkms/kms-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/libkms/kms-symbol-check 2015-10-18 23:46:10.683869471 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.sources/LIBKMS_H_FILES - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - kms_bo_create - kms_bo_destroy - kms_bo_get_prop ---- libdrm-2.4.65/intel/intel-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/intel/intel-symbol-check 2015-10-18 23:55:53.309558508 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - drm_intel_bo_alloc - drm_intel_bo_alloc_for_render - drm_intel_bo_alloc_tiled ---- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig 2015-08-17 10:08:11.000000000 -0400 -+++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check 2015-10-18 23:56:10.606917723 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - amdgpu_bo_alloc - amdgpu_bo_cpu_map - amdgpu_bo_cpu_unmap ---- libdrm-2.4.65/exynos/exynos-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/exynos/exynos-symbol-check 2015-10-18 23:56:32.025486153 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - exynos_bo_create - exynos_bo_destroy - exynos_bo_from_name ---- libdrm-2.4.65/omap/omap-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/omap/omap-symbol-check 2015-10-18 23:56:44.834438626 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.am/libdrm_omap*HEADERS - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - omap_bo_cpu_fini - omap_bo_cpu_prep - omap_bo_del ---- libdrm-2.4.65/tegra/tegra-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/tegra/tegra-symbol-check 2015-10-18 23:57:00.756759698 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first nine) are taken from tegra.h. -+# The following symbols (past the first 12) are taken from tegra.h. - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do - ( grep -q "^$func$" || echo $func ) <<EOF -@@ -9,6 +9,9 @@ - __bss_start - __end__ - _bss_end__ -+_fbss -+_fdata -+_ftext - _edata - _end - _fini ---- libdrm-2.4.65/radeon/radeon-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 -+++ libdrm-2.4.65/radeon/radeon-symbol-check 2015-10-18 23:57:00.756759698 -0400 -@@ -1,6 +1,6 @@ - #!/bin/bash - --# The following symbols (past the first five) are taken from the public headers. -+# The following symbols (past the first 12) are taken from the public headers. - # A list of the latter should be available Makefile.sources/LIBDRM_RADEON_H_FILES - - FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do -@@ -10,6 +10,13 @@ - _end - _fini - _init -+_fbss -+_fdata -+_ftext -+__bss_start__ -+__bss_end__ -+_bss_end__ -+__end__ - radeon_bo_debug - radeon_bo_get_handle - radeon_bo_get_src_domain diff --git a/gnu/packages/patches/libexif-CVE-2016-6328.patch b/gnu/packages/patches/libexif-CVE-2016-6328.patch deleted file mode 100644 index 67fee0f528..0000000000 --- a/gnu/packages/patches/libexif-CVE-2016-6328.patch +++ /dev/null @@ -1,72 +0,0 @@ -Fix CVE-2016-6328: - -https://bugzilla.redhat.com/show_bug.cgi?id=1366239 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6328 - -Patch copied from upstream source repository: - -https://github.com/libexif/libexif/commit/41bd04234b104312f54d25822f68738ba8d7133d - -From 41bd04234b104312f54d25822f68738ba8d7133d Mon Sep 17 00:00:00 2001 -From: Marcus Meissner <[email protected]> -Date: Tue, 25 Jul 2017 23:44:44 +0200 -Subject: [PATCH] fixes some (not all) buffer overreads during decoding pentax - makernote entries. - -This should fix: -https://sourceforge.net/p/libexif/bugs/125/ CVE-2016-6328 ---- - libexif/pentax/mnote-pentax-entry.c | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/libexif/pentax/mnote-pentax-entry.c b/libexif/pentax/mnote-pentax-entry.c -index d03d159..ea0429a 100644 ---- a/libexif/pentax/mnote-pentax-entry.c -+++ b/libexif/pentax/mnote-pentax-entry.c -@@ -425,24 +425,34 @@ mnote_pentax_entry_get_value (MnotePentaxEntry *entry, - case EXIF_FORMAT_SHORT: - { - const unsigned char *data = entry->data; -- size_t k, len = strlen(val); -+ size_t k, len = strlen(val), sizeleft; -+ -+ sizeleft = entry->size; - for(k=0; k<entry->components; k++) { -+ if (sizeleft < 2) -+ break; - vs = exif_get_short (data, entry->order); - snprintf (val+len, maxlen-len, "%i ", vs); - len = strlen(val); - data += 2; -+ sizeleft -= 2; - } - } - break; - case EXIF_FORMAT_LONG: - { - const unsigned char *data = entry->data; -- size_t k, len = strlen(val); -+ size_t k, len = strlen(val), sizeleft; -+ -+ sizeleft = entry->size; - for(k=0; k<entry->components; k++) { -+ if (sizeleft < 4) -+ break; - vl = exif_get_long (data, entry->order); - snprintf (val+len, maxlen-len, "%li", (long int) vl); - len = strlen(val); - data += 4; -+ sizeleft -= 4; - } - } - break; -@@ -455,5 +465,5 @@ mnote_pentax_entry_get_value (MnotePentaxEntry *entry, - break; - } - -- return (val); -+ return val; - } --- -2.16.0 - diff --git a/gnu/packages/patches/libexif-CVE-2017-7544.patch b/gnu/packages/patches/libexif-CVE-2017-7544.patch deleted file mode 100644 index c4ea373dc5..0000000000 --- a/gnu/packages/patches/libexif-CVE-2017-7544.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fix CVE-2017-7544: - -https://sourceforge.net/p/libexif/bugs/130/ -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7544 - -Patch copied from upstream bug tracker: - -https://sourceforge.net/p/libexif/bugs/130/#489a - -Index: libexif/exif-data.c -=================================================================== -RCS file: /cvsroot/libexif/libexif/libexif/exif-data.c,v -retrieving revision 1.131 -diff -u -r1.131 exif-data.c ---- a/libexif/exif-data.c 12 Jul 2012 17:28:26 -0000 1.131 -+++ b/libexif/exif-data.c 25 Jul 2017 21:34:06 -0000 -@@ -255,6 +255,12 @@ - exif_mnote_data_set_offset (data->priv->md, *ds - 6); - exif_mnote_data_save (data->priv->md, &e->data, &e->size); - e->components = e->size; -+ if (exif_format_get_size (e->format) != 1) { -+ /* e->format is taken from input code, -+ * but we need to make sure it is a 1 byte -+ * entity due to the multiplication below. */ -+ e->format = EXIF_FORMAT_UNDEFINED; -+ } - } - } - diff --git a/gnu/packages/patches/libexif-CVE-2018-20030.patch b/gnu/packages/patches/libexif-CVE-2018-20030.patch deleted file mode 100644 index 57e4746b58..0000000000 --- a/gnu/packages/patches/libexif-CVE-2018-20030.patch +++ /dev/null @@ -1,120 +0,0 @@ -https://github.com/libexif/libexif/commit/6aa11df549114ebda520dde4cdaea2f9357b2c89.patch - -NEWS section was removed -'12' -> '30' on line 79 - -From 6aa11df549114ebda520dde4cdaea2f9357b2c89 Mon Sep 17 00:00:00 2001 -From: Dan Fandrich <[email protected]> -Date: Fri, 12 Oct 2018 16:01:45 +0200 -Subject: [PATCH] Improve deep recursion detection in - exif_data_load_data_content. - -The existing detection was still vulnerable to pathological cases -causing DoS by wasting CPU. The new algorithm takes the number of tags -into account to make it harder to abuse by cases using shallow recursion -but with a very large number of tags. This improves on commit 5d28011c -which wasn't sufficient to counter this kind of case. - -The limitation in the previous fix was discovered by Laurent Delosieres, -Secunia Research at Flexera (Secunia Advisory SA84652) and is assigned -the identifier CVE-2018-20030. ---- - NEWS | 1 + - libexif/exif-data.c | 45 +++++++++++++++++++++++++++++++++++++-------- - 2 files changed, 38 insertions(+), 8 deletions(-) - -diff --git a/libexif/exif-data.c b/libexif/exif-data.c -index e35403d..a6f9c94 100644 ---- a/libexif/exif-data.c -+++ b/libexif/exif-data.c -@@ -35,6 +35,7 @@ - #include <libexif/olympus/exif-mnote-data-olympus.h> - #include <libexif/pentax/exif-mnote-data-pentax.h> - -+#include <math.h> - #include <stdlib.h> - #include <stdio.h> - #include <string.h> -@@ -350,6 +351,20 @@ if (data->ifd[(i)]->count) { \ - break; \ - } - -+/*! Calculate the recursion cost added by one level of IFD loading. -+ * -+ * The work performed is related to the cost in the exponential relation -+ * work=1.1**cost -+ */ -+static unsigned int -+level_cost(unsigned int n) -+{ -+ static const double log_1_1 = 0.09531017980432493; -+ -+ /* Adding 0.1 protects against the case where n==1 */ -+ return ceil(log(n + 0.1)/log_1_1); -+} -+ - /*! Load data for an IFD. - * - * \param[in,out] data #ExifData -@@ -357,13 +372,13 @@ if (data->ifd[(i)]->count) { \ - * \param[in] d pointer to buffer containing raw IFD data - * \param[in] ds size of raw data in buffer at \c d - * \param[in] offset offset into buffer at \c d at which IFD starts -- * \param[in] recursion_depth number of times this function has been -- * recursively called without returning -+ * \param[in] recursion_cost factor indicating how expensive this recursive -+ * call could be - */ - static void - exif_data_load_data_content (ExifData *data, ExifIfd ifd, - const unsigned char *d, -- unsigned int ds, unsigned int offset, unsigned int recursion_depth) -+ unsigned int ds, unsigned int offset, unsigned int recursion_cost) - { - ExifLong o, thumbnail_offset = 0, thumbnail_length = 0; - ExifShort n; -@@ -378,9 +393,20 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, - if ((((int)ifd) < 0) || ( ((int)ifd) >= EXIF_IFD_COUNT)) - return; - -- if (recursion_depth > 30) { -+ if (recursion_cost > 170) { -+ /* -+ * recursion_cost is a logarithmic-scale indicator of how expensive this -+ * recursive call might end up being. It is an indicator of the depth of -+ * recursion as well as the potential for worst-case future recursive -+ * calls. Since it's difficult to tell ahead of time how often recursion -+ * will occur, this assumes the worst by assuming every tag could end up -+ * causing recursion. -+ * The value of 170 was chosen to limit typical EXIF structures to a -+ * recursive depth of about 6, but pathological ones (those with very -+ * many tags) to only 2. -+ */ - exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData", -- "Deep recursion detected!"); -+ "Deep/expensive recursion detected!"); - return; - } - -@@ -422,15 +448,18 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, - switch (tag) { - case EXIF_TAG_EXIF_IFD_POINTER: - CHECK_REC (EXIF_IFD_EXIF); -- exif_data_load_data_content (data, EXIF_IFD_EXIF, d, ds, o, recursion_depth + 1); -+ exif_data_load_data_content (data, EXIF_IFD_EXIF, d, ds, o, -+ recursion_cost + level_cost(n)); - break; - case EXIF_TAG_GPS_INFO_IFD_POINTER: - CHECK_REC (EXIF_IFD_GPS); -- exif_data_load_data_content (data, EXIF_IFD_GPS, d, ds, o, recursion_depth + 1); -+ exif_data_load_data_content (data, EXIF_IFD_GPS, d, ds, o, -+ recursion_cost + level_cost(n)); - break; - case EXIF_TAG_INTEROPERABILITY_IFD_POINTER: - CHECK_REC (EXIF_IFD_INTEROPERABILITY); -- exif_data_load_data_content (data, EXIF_IFD_INTEROPERABILITY, d, ds, o, recursion_depth + 1); -+ exif_data_load_data_content (data, EXIF_IFD_INTEROPERABILITY, d, ds, o, -+ recursion_cost + level_cost(n)); - break; - case EXIF_TAG_JPEG_INTERCHANGE_FORMAT: - thumbnail_offset = o; diff --git a/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch b/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch deleted file mode 100644 index df0571bf2b..0000000000 --- a/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Tobias Geerinckx-Rice <[email protected]> -Date: Tue, 10 Dec 2019 16:20:40 +0100 -Subject: gnu: libnftnl: Don't check NFTNL_FLOWTABLE_SIZE. - -Taken verbatim from the upstream commit[0] directly following the 1.1.5 -release. - -[0]: https://git.netfilter.org/libnftnl/commit/?id=b2388765e0c4405442faa13845419f6a35d0134c - -From b2388765e0c4405442faa13845419f6a35d0134c Mon Sep 17 00:00:00 2001 -From: Phil Sutter <[email protected]> -Date: Mon, 2 Dec 2019 18:29:56 +0100 -Subject: tests: flowtable: Don't check NFTNL_FLOWTABLE_SIZE - -Marshalling code around that attribute has been dropped by commit -d1c4b98c733a5 ("flowtable: remove NFTA_FLOWTABLE_SIZE") so it's value is -lost during the test. - -Assuming that NFTNL_FLOWTABLE_SIZE will receive kernel support at a -later point, leave the test code in place but just comment it out. - -Fixes: d1c4b98c733a5 ("flowtable: remove NFTA_FLOWTABLE_SIZE") -Signed-off-by: Phil Sutter <[email protected]> -Acked-by: Pablo Neira Ayuso <[email protected]> ---- - tests/nft-flowtable-test.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/nft-flowtable-test.c b/tests/nft-flowtable-test.c -index 3edb00d..8ab8d4c 100644 ---- a/tests/nft-flowtable-test.c -+++ b/tests/nft-flowtable-test.c -@@ -33,9 +33,11 @@ static void cmp_nftnl_flowtable(struct nftnl_flowtable *a, struct nftnl_flowtabl - if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_USE) != - nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_USE)) - print_err("Flowtable use mismatches"); -+#if 0 - if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_SIZE) != - nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_SIZE)) - print_err("Flowtable size mismatches"); -+#endif - if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_FLAGS) != - nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_FLAGS)) - print_err("Flowtable flags mismatches"); --- -cgit v1.2.1 - diff --git a/gnu/packages/patches/lxsession-use-gapplication.patch b/gnu/packages/patches/lxsession-use-gapplication.patch deleted file mode 100644 index 3f2269a42f..0000000000 --- a/gnu/packages/patches/lxsession-use-gapplication.patch +++ /dev/null @@ -1,152 +0,0 @@ -Upstream patch to remove libunique dependency, and use glib >= 2.28.0 -to handle unique apps both for GTK+ 2 and 3. -https://sourceforge.net/p/lxde/patches/539/ - - -From a7d3b40a79a7a16c1f5d50d2bd466570258dae29 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <[email protected]> -Date: Sun, 22 Jan 2017 01:09:59 +0100 -Subject: [PATCH] Use GApplication for unique app handling - -Remove libunique dependency, and use glib >= 2.28.0 to handle unique apps both for GTK+ 2 and 3. ---- - Makefile.am | 6 ------ - configure.ac | 7 +------ - lxclipboard/main.vala | 16 +--------------- - lxpolkit/main.vala | 16 +--------------- - 4 files changed, 3 insertions(+), 42 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index c2e1fe8..e3a3b97 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -90,9 +90,6 @@ if USE_GTK3 - lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK3 - else - lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK2 --lxclipboard_lxclipboard_VALAFLAGS += --pkg unique-1.0 --lxclipboard_lxclipboard_CPPFLAGS += $(UNIQUE_CFLAGS) --lxclipboard_lxclipboard_LDADD += $(UNIQUE_LIBS) - endif - - lxpolkit_lxpolkit_vala_SOURCES = \ -@@ -137,9 +134,6 @@ if USE_GTK3 - lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK3 - else - lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK2 --lxpolkit_lxpolkit_VALAFLAGS += --pkg unique-1.0 --lxpolkit_lxpolkit_CPPFLAGS += $(UNIQUE_CFLAGS) --lxpolkit_lxpolkit_LDADD += $(UNIQUE_LIBS) - endif - - lxsession_db_lxsession_db_SOURCES = \ -diff --git a/configure.ac b/configure.ac -index 06ddbb3..9126f4d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -45,7 +45,7 @@ PKG_CHECK_MODULES(X11, [x11]) - AC_SUBST(X11_CFLAGS) - AC_SUBST(X11_LIBS) - --PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6.0]) -+PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.28.0]) - AC_SUBST(GLIB_CFLAGS) - AC_SUBST(GLIB_LIBS) - -@@ -79,11 +79,6 @@ else - CFLAGS="$CFLAGS -D USE_GTK2" - gtk_modules="gtk+-2.0 >= 2.6.0" - VALA_GTK_LIBS="gtk+-2.0" -- -- PKG_CHECK_MODULES(UNIQUE, [unique-1.0]) -- AC_SUBST(UNIQUE_CFLAGS) -- AC_SUBST(UNIQUE_LIBS) -- - fi - PKG_CHECK_MODULES(GTK, [$gtk_modules]) - AC_SUBST(GTK_CFLAGS) -diff --git a/lxclipboard/main.vala b/lxclipboard/main.vala -index bee4044..3d4a8d7 100644 ---- a/lxclipboard/main.vala -+++ b/lxclipboard/main.vala -@@ -17,9 +17,6 @@ - * MA 02110-1301, USA. - */ - using Gtk; --#if USE_GTK2 --using Unique; --#endif - - namespace Lxsession - { -@@ -28,17 +25,7 @@ namespace Lxsession - public static int main(string[] args) - { - Gtk.init (ref args); --#if USE_GTK2 -- Unique.App app = new Unique.App("org.lxde.lxclipboard", null); -- -- if(app.is_running) -- { -- message("lxclipboard is already running. Existing"); -- return 0; -- } --#endif --# if USE_GTK3 -- Gtk.Application app = new Gtk.Application ( -+ GLib.Application app = new GLib.Application ( - "org.lxde.lxclipboard", - GLib.ApplicationFlags.FLAGS_NONE); - app.register (); -@@ -48,7 +35,6 @@ namespace Lxsession - message("lxclipboard is already running. Existing"); - return 0; - } --#endif - - clipboard_start (); - -diff --git a/lxpolkit/main.vala b/lxpolkit/main.vala -index c0d6ae2..50c3cb7 100644 ---- a/lxpolkit/main.vala -+++ b/lxpolkit/main.vala -@@ -17,9 +17,6 @@ - * MA 02110-1301, USA. - */ - using Gtk; --#if USE_GTK2 --using Unique; --#endif - - const string GETTEXT_PACKAGE = "lxsession"; - -@@ -33,17 +30,7 @@ namespace Lxsession - Intl.bind_textdomain_codeset(GETTEXT_PACKAGE, "utf-8"); - - Gtk.init (ref args); --#if USE_GTK2 -- Unique.App app = new Unique.App("org.lxde.lxpolkit", null); -- -- if(app.is_running) -- { -- message(_("lxpolkit is already running. Existing")); -- return 0; -- } --#endif --# if USE_GTK3 -- Gtk.Application app = new Gtk.Application ( -+ GLib.Application app = new GLib.Application ( - "org.lxde.lxpolkit", - GLib.ApplicationFlags.FLAGS_NONE); - app.register (); -@@ -53,7 +40,6 @@ namespace Lxsession - message(_("lxpolkit is already running. Existing")); - return 0; - } --#endif - - policykit_agent_init(); - --- -2.11.0 - diff --git a/gnu/packages/patches/netsurf-system-utf8proc.patch b/gnu/packages/patches/netsurf-system-utf8proc.patch index a2ee52ca05..04bf828f37 100644 --- a/gnu/packages/patches/netsurf-system-utf8proc.patch +++ b/gnu/packages/patches/netsurf-system-utf8proc.patch @@ -1,50 +1,13 @@ -Use upstream utf8proc package, as suggested in -http://source.netsurf-browser.org/libutf8proc.git/commit/?id=770e329cceaf0620c7b482589a9b17ed1d19c16d +Fix include directory for system utf8proc. -Work around upstream's lack of a pkg-config file and update API. - ---- netsurf-3.6/Makefile -+++ netsurf-3.6/Makefile -@@ -527,10 +527,9 @@ - $(eval $(call pkg_config_find_and_add,libcss,CSS)) - $(eval $(call pkg_config_find_and_add,libdom,DOM)) - $(eval $(call pkg_config_find_and_add,libnsutils,nsutils)) --$(eval $(call pkg_config_find_and_add,libutf8proc,utf8proc)) - - # Common libraries without pkg-config support --LDFLAGS += -lz -+LDFLAGS += -lz -lutf8proc +--- netsurf-3.10/utils/idna.c ++++ netsurf-3.10/utils/idna.c +@@ -167,7 +167,7 @@ - # Optional libraries with pkgconfig + #ifdef WITH_UTF8PROC ---- netsurf-3.8/utils/idna.c -+++ netsurf-3.8/utils/idna.c -@@ -27,7 +27,7 @@ - #include <stdlib.h> - #include <string.h> - #include <sys/types.h> -#include <libutf8proc/utf8proc.h> +#include <utf8proc.h> - #include "netsurf/inttypes.h" - ---- netsurf-3.8/test/Makefile -+++ netsurf-3.8/test/Makefile -@@ -142,14 +142,15 @@ - -Itest -Iinclude -Icontent/handlers -Ifrontends -I. -I.. \ - -Dnsgtk \ - $(SAN_FLAGS) \ -- $(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc) \ -+ $(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils) \ - $(LIB_CFLAGS) - TESTCFLAGS := $(BASE_TESTCFLAGS) \ - $(COV_CFLAGS) \ - $(COV_CPPFLAGS) - - TESTLDFLAGS := -L$(TESTROOT) \ -- $(shell pkg-config --libs libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc) -lz \ -+ $(shell pkg-config --libs libcurl libparserutils libwapcaplet libdom libnsutils) \ -+ $(LDFLAGS) \ - $(SAN_FLAGS) \ - $(LIB_LDFLAGS)\ - $(COV_LDFLAGS) + int32_t idna_contexto[] = { + /* CONTEXTO codepoints which have a rule defined */ diff --git a/gnu/packages/patches/nm-plugin-path.patch b/gnu/packages/patches/network-manager-plugin-path.patch index 505ae31534..505ae31534 100644 --- a/gnu/packages/patches/nm-plugin-path.patch +++ b/gnu/packages/patches/network-manager-plugin-path.patch diff --git a/gnu/packages/patches/openscad-parser-boost-1.72.patch b/gnu/packages/patches/openscad-parser-boost-1.72.patch new file mode 100644 index 0000000000..35311e6173 --- /dev/null +++ b/gnu/packages/patches/openscad-parser-boost-1.72.patch @@ -0,0 +1,26 @@ +https://github.com/openscad/openscad/commit/b6c170cc5d.patch + +From b6c170cc5dd1bc677176ee732cdb0ddae57e5cf0 Mon Sep 17 00:00:00 2001 +From: Jan Beich <[email protected]> +Date: Fri, 25 Oct 2019 15:10:26 +0000 +Subject: [PATCH] Add missing header bootlegged by Boost < 1.72 + +src/parser.y:76:6: error: no template named 'stack' in namespace 'std' +std::stack<LocalScope *> scope_stack; +~~~~~^ +--- + src/parser.y | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/parser.y b/src/parser.y +index 7f4fd56ca7..4c77c989ea 100644 +--- a/src/parser.y ++++ b/src/parser.y +@@ -46,6 +46,7 @@ + #include "printutils.h" + #include "memory.h" + #include <sstream> ++#include <stack> + #include <boost/filesystem.hpp> + #include "boost-utils.h" + #include "feature.h" diff --git a/gnu/packages/patches/pidgin-libnm.patch b/gnu/packages/patches/pidgin-libnm.patch new file mode 100644 index 0000000000..d34af749af --- /dev/null +++ b/gnu/packages/patches/pidgin-libnm.patch @@ -0,0 +1,60 @@ +From: Tobias Geerinckx-Rice <[email protected]> +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/plotutils-libpng-jmpbuf.patch b/gnu/packages/patches/plotutils-libpng-jmpbuf.patch deleted file mode 100644 index 07ef60996c..0000000000 --- a/gnu/packages/patches/plotutils-libpng-jmpbuf.patch +++ /dev/null @@ -1,23 +0,0 @@ -Use the `png_jmpbuf' accessor, as recommended since libpng 1.4.0: -http://www.libpng.org/pub/png/src/libpng-1.2.x-to-1.4.x-summary.txt . - ---- plotutils-2.6/libplot/z_write.c 2013-07-12 17:19:12.000000000 +0200 -+++ plotutils-2.6/libplot/z_write.c 2013-07-12 17:19:07.000000000 +0200 -@@ -164,7 +164,7 @@ _pl_z_maybe_output_image (S___(Plotter * - } - - /* cleanup after libpng errors (error handler does a longjmp) */ -- if (setjmp (png_ptr->jmpbuf)) -+ if (setjmp (png_jmpbuf (png_ptr))) - { - png_destroy_write_struct (&png_ptr, (png_info **)NULL); - return -1; -@@ -444,7 +444,7 @@ _our_error_fn_stdio (png_struct *png_ptr - #endif - } - -- longjmp (png_ptr->jmpbuf, 1); -+ longjmp (png_jmpbuf (png_ptr), 1); - } - - static void diff --git a/gnu/packages/patches/pypy3-7.3.1-fix-tests.patch b/gnu/packages/patches/pypy3-7.3.1-fix-tests.patch new file mode 100644 index 0000000000..464aad967f --- /dev/null +++ b/gnu/packages/patches/pypy3-7.3.1-fix-tests.patch @@ -0,0 +1,278 @@ +Fix a few testcases. Adapted from python-3-fix-tests.patch. + +diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_callbacks.py pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_callbacks.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_callbacks.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_callbacks.py 2020-05-21 14:19:14.827288853 +0200 +@@ -4,6 +4,7 @@ + from ctypes import * + from ctypes.test import need_symbol + import _ctypes_test ++import platform + + class Callbacks(unittest.TestCase): + functype = CFUNCTYPE +@@ -178,6 +179,8 @@ + + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_libc.py pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_libc.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_libc.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_libc.py 2020-05-21 14:19:14.827288853 +0200 +@@ -2,6 +2,7 @@ + + from ctypes import * + import _ctypes_test ++import platform + + lib = CDLL(_ctypes_test.__file__) + +@@ -17,6 +18,8 @@ + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_archive_util.py pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_archive_util.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_archive_util.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_archive_util.py 2020-05-21 14:19:14.827288853 +0200 +@@ -333,6 +333,7 @@ + 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 @@ + + @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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_sdist.py pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_sdist.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_sdist.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_sdist.py 2020-05-21 14:19:14.827288853 +0200 +@@ -443,6 +443,7 @@ + "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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_asyncio/test_base_events.py pypy3.6-v7.3.1-src/lib-python/3/test/test_asyncio/test_base_events.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_asyncio/test_base_events.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_asyncio/test_base_events.py 2020-05-21 14:19:14.827288853 +0200 +@@ -1296,6 +1296,8 @@ + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_generators.py pypy3.6-v7.3.1-src/lib-python/3/test/test_generators.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_generators.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_generators.py 2020-05-21 14:19:14.827288853 +0200 +@@ -35,6 +35,7 @@ + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/_test_multiprocessing.py pypy3.6-v7.3.1-src/lib-python/3/test/_test_multiprocessing.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/_test_multiprocessing.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/_test_multiprocessing.py 2020-05-21 14:19:14.827288853 +0200 +@@ -1212,6 +1212,7 @@ + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_normalization.py pypy3.6-v7.3.1-src/lib-python/3/test/test_normalization.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_normalization.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_normalization.py 2020-05-21 14:19:14.827288853 +0200 +@@ -2,6 +2,7 @@ + import unittest + + from http.client import HTTPException ++from urllib.error import URLError + import sys + from unicodedata import normalize, unidata_version + +@@ -43,6 +44,8 @@ + except PermissionError: + self.skipTest(f"Permission error when downloading {TESTDATAURL} " + f"into the test data directory") ++ except URLError: ++ self.skipTest("DNS lookups are not enabled.") + except (OSError, HTTPException): + self.fail(f"Could not retrieve {TESTDATAURL}") + +diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pathlib.py pypy3.6-v7.3.1-src/lib-python/3/test/test_pathlib.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pathlib.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_pathlib.py 2020-05-21 14:19:14.827288853 +0200 +@@ -2130,8 +2130,7 @@ + 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pdb.py pypy3.6-v7.3.1-src/lib-python/3/test/test_pdb.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pdb.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_pdb.py 2020-05-21 14:20:24.377203281 +0200 +@@ -1136,11 +1136,11 @@ + > <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]>(6)test_function() + -> print('pdb %d: %s' % (i, sess._previous_sigint_handler)) + (Pdb) continue +- pdb 2: <built-in function default_int_handler> ++ pdb 2: Handlers.SIG_IGN + """ + + class PdbTestCase(unittest.TestCase): +diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_regrtest.py pypy3.6-v7.3.1-src/lib-python/3/test/test_regrtest.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_regrtest.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_regrtest.py 2020-05-21 14:19:14.827288853 +0200 +@@ -766,6 +766,7 @@ + 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) +diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_resource.py pypy3.6-v7.3.1-src/lib-python/3/test/test_resource.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_resource.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_resource.py 2020-05-21 14:19:14.827288853 +0200 +@@ -146,6 +146,7 @@ + + @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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_shutil.py pypy3.6-v7.3.1-src/lib-python/3/test/test_shutil.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_shutil.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_shutil.py 2020-05-21 14:19:14.827288853 +0200 +@@ -1138,6 +1138,7 @@ + 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 +@@ -1166,6 +1167,7 @@ + + + @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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_socket.py pypy3.6-v7.3.1-src/lib-python/3/test/test_socket.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_socket.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_socket.py 2020-05-21 14:19:14.827288853 +0200 +@@ -815,6 +815,8 @@ + 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.HOST, '10.0.0.1', '255.255.255.255']: + self.assertEqual(socket.gethostbyname(addr), addr) +@@ -934,6 +936,8 @@ + self.assertRaises(OverflowError, socket.htonl, k) + self.assertRaises(OverflowError, 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. +@@ -1278,6 +1282,8 @@ + 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) +@@ -1357,6 +1363,8 @@ + # 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 -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_spwd.py pypy3.6-v7.3.1-src/lib-python/3/test/test_spwd.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_spwd.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_spwd.py 2020-05-21 14:19:14.827288853 +0200 +@@ -5,8 +5,7 @@ + spwd = support.import_module('spwd') + + [email protected](hasattr(os, 'geteuid') and os.geteuid() == 0, +- 'root privileges required') [email protected](os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow') + class TestSpwdRoot(unittest.TestCase): + + def test_getspall(self): +@@ -56,8 +55,7 @@ + self.assertRaises(TypeError, spwd.getspnam, bytes_name) + + [email protected](hasattr(os, 'geteuid') and os.geteuid() != 0, +- 'non-root user required') [email protected](os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow') + class TestSpwdNonRoot(unittest.TestCase): + + def test_getspnam_exception(self): +diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_tarfile.py pypy3.6-v7.3.1-src/lib-python/3/test/test_tarfile.py +--- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_tarfile.py 1970-01-01 01:00:01.000000000 +0100 ++++ pypy3.6-v7.3.1-src/lib-python/3/test/test_tarfile.py 2020-05-21 14:19:14.827288853 +0200 +@@ -2491,9 +2491,12 @@ + 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/gnu/packages/patches/pyqt-unbundled-qt.patch b/gnu/packages/patches/pyqt-unbundled-qt.patch deleted file mode 100644 index 5c91ed031c..0000000000 --- a/gnu/packages/patches/pyqt-unbundled-qt.patch +++ /dev/null @@ -1,19 +0,0 @@ -Remove test for bundled Qt which breaks dependent applications. This has -been fixed in 5.13. - -Taken from Arch Linux: -https://git.archlinux.org/svntogit/packages.git/tree/trunk/python2-pyqt5-crash-fix.patch?h=packages/pyqt5&id=3e56e11d1fd7b1eac8242ce64c58db2bd9acba20 - -diff -ur PyQt5_gpl-5.12.3/qpy/QtCore/qpycore_post_init.cpp.in PyQt5_gpl-5.12.3b/qpy/QtCore/qpycore_post_init.cpp.in ---- PyQt5_gpl-5.12.3/qpy/QtCore/qpycore_post_init.cpp.in 2019-06-25 14:41:02.000000000 +0200 -+++ PyQt5_gpl-5.12.3b/qpy/QtCore/qpycore_post_init.cpp.in 2019-07-01 17:06:34.882644535 +0200 -@@ -151,8 +151,4 @@ - // initialised first (at least for Windows) and this is the only way to - // guarantee things are done in the right order. - PyQtSlotProxy::mutex = new QMutex(QMutex::Recursive); -- -- // Load the embedded qt.conf file if there is a bundled copy of Qt. -- if (!qpycore_qt_conf()) -- Py_FatalError("PyQt5.QtCore: Unable to embed qt.conf"); - } - diff --git a/gnu/packages/patches/python-argcomplete-1.11.1-fish31.patch b/gnu/packages/patches/python-argcomplete-1.11.1-fish31.patch new file mode 100644 index 0000000000..98f0ca1473 --- /dev/null +++ b/gnu/packages/patches/python-argcomplete-1.11.1-fish31.patch @@ -0,0 +1,29 @@ +Upstream commit fixing testcases for fish>=3.1, see +https://github.com/kislyuk/argcomplete/commit/08bfc8a788e8081515d733e67be026d051c726f7 + +diff --git a/test/test.py b/test/test.py +index e91352b..2c34806 100755 +--- a/test/test.py ++++ b/test/test.py +@@ -28,6 +28,8 @@ + + BASH_VERSION = subprocess.check_output(['bash', '-c', 'echo $BASH_VERSION']).decode() + BASH_MAJOR_VERSION = int(BASH_VERSION.split('.')[0]) ++FISH_VERSION_STR = subprocess.check_output(['fish', '-c', 'echo -n $FISH_VERSION']).decode() ++FISH_VERSION_TUPLE = tuple(int(x) for x in FISH_VERSION_STR.split('.')) + + + class TempDir(object): +@@ -1258,8 +1260,11 @@ class TestFish(_TestSh, unittest.TestCase): + expected_failures = [ + 'test_parse_special_characters', + 'test_comp_point', +- 'test_special_characters_double_quoted' + ] ++ if FISH_VERSION_TUPLE < (3, 1): ++ expected_failures.extend([ ++ 'test_special_characters_double_quoted' ++ ]) + + skipped = [ + 'test_single_quotes_in_single_quotes', diff --git a/gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch b/gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch new file mode 100644 index 0000000000..f3b56e42d6 --- /dev/null +++ b/gnu/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch @@ -0,0 +1,82 @@ +Fix compatibility with Python 3.8. + +Upstream issue: https://github.com/DirectXMan12/should_be/pull/5 + +diff -x '*.pyc' -Naur shouldbe-0.1.2/should_be/core.py shouldbe-0.1.2.patched/should_be/core.py +--- shouldbe-0.1.2/should_be/core.py 2019-03-06 07:38:22.000000000 +0100 ++++ shouldbe-0.1.2.patched/should_be/core.py 2020-05-18 08:44:24.214664704 +0200 +@@ -103,7 +103,7 @@ + return resf + + +-def buildCode(baseCode, argcount=None, kwonlyargcount=None, ++def buildCode(baseCode, argcount=None, posonlyargcount=None, kwonlyargcount=None, + nlocals=None, stacksize=None, flags=None, + code=None, consts=None, names=None, + varnames=None, filename=None, name=None, +@@ -121,6 +121,24 @@ + nlocals or baseCode.co_nlocals, + stacksize or baseCode.co_stacksize, + flags or baseCode.co_flags, ++ code or baseCode.co_code, ++ consts or baseCode.co_consts, ++ names or baseCode.co_names, ++ varnames or baseCode.co_varnames, ++ filename or baseCode.co_filename, ++ name or baseCode.co_name, ++ firstlineno or baseCode.co_firstlineno, ++ lnotab or baseCode.co_lnotab, ++ freevars or baseCode.co_freevars, ++ cellvars or baseCode.co_cellvars) ++ elif hasattr(baseCode, 'co_posonlyargcount'): ++ # Python 3.8 ++ resc = CodeType(argcount or baseCode.co_argcount, ++ posonlyargcount or baseCode.co_posonlyargcount, ++ kwonlyargcount or baseCode.co_kwonlyargcount, ++ nlocals or baseCode.co_nlocals, ++ stacksize or baseCode.co_stacksize, ++ flags or baseCode.co_flags, + code or baseCode.co_code, + consts or baseCode.co_consts, + names or baseCode.co_names, +diff -x '*.pyc' -Naur shouldbe-0.1.2/should_be/tests/test_container_mixin.py shouldbe-0.1.2.patched/should_be/tests/test_container_mixin.py +--- shouldbe-0.1.2/should_be/tests/test_container_mixin.py 2019-03-01 06:38:16.000000000 +0100 ++++ shouldbe-0.1.2.patched/should_be/tests/test_container_mixin.py 2020-05-18 09:00:51.372531064 +0200 +@@ -7,31 +7,31 @@ + self.lst = [1, 2, 3] + + def test_should_include_iter(self): +- err_msg = (r'[a-zA-Z0-9.]+ should have included \[.+?\]' ++ err_msg = (r'[a-zA-Z0-9.()]+ should have included \[.+?\]' + r', but did not have items .+') +- self.assertRaisesRegexp(AssertionError, err_msg, ++ self.assertRaisesRegex(AssertionError, err_msg, + self.lst.should_include, [4]) + + self.lst.should_include([1, 2, 3]) + + def test_should_include_item(self): +- err_msg = (r'[a-zA-Z0-9.]+ should have included .+?' ++ err_msg = (r'[a-zA-Z0-9.()]+ should have included .+?' + r', but did not') +- self.assertRaisesRegexp(AssertionError, err_msg, ++ self.assertRaisesRegex(AssertionError, err_msg, + self.lst.should_include, 4) + + self.lst.should_include(3) + + def test_shouldnt_include_iter(self): + err_msg = 'should not have included' +- self.assertRaisesRegexp(AssertionError, err_msg, ++ self.assertRaisesRegex(AssertionError, err_msg, + self.lst.shouldnt_include, [2, 3]) + + self.lst.shouldnt_include([4, 5]) + + def test_shouldnt_include_item(self): + err_msg = 'should not have included' +- self.assertRaisesRegexp(AssertionError, err_msg, ++ self.assertRaisesRegex(AssertionError, err_msg, + self.lst.shouldnt_include, 3) + + self.lst.shouldnt_include(4) diff --git a/gnu/packages/patches/qtbase-QTBUG-81715.patch b/gnu/packages/patches/qtbase-QTBUG-81715.patch deleted file mode 100644 index 70b83b97d2..0000000000 --- a/gnu/packages/patches/qtbase-QTBUG-81715.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8a3fde00bf53d99e9e4853e8ab97b0e1bcf74915 Mon Sep 17 00:00:00 2001 -From: Joerg Bornemann <[email protected]> -Date: Wed, 29 Jan 2020 11:06:35 +0100 -Subject: [PATCH] Fix qt5_make_output_file macro for paths containing dots - -Commit 89bd5a7e broke CMake projects that use dots in their build -paths, because the used regular expression matches the directory part -of the path as well. - -The regex wants to achieve the same as get_filename_component(... -NAME_WLE) which is available since CMake 3.14. Re-implement the -NAME_WLE functionality for older CMake versions by using multiple -get_filename_component calls. - -Fixes: QTBUG-81715 -Task-number: QTBUG-80295 -Change-Id: I2ef053300948f6e1b2c0c5eafac35105f193d4e6 -Reviewed-by: Alexandru Croitor <[email protected]> ---- - -diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake -index 7735e51..b3da640 100644 ---- a/src/corelib/Qt5CoreMacros.cmake -+++ b/src/corelib/Qt5CoreMacros.cmake -@@ -59,7 +59,14 @@ - set(_outfile "${CMAKE_CURRENT_BINARY_DIR}/${rel}") - string(REPLACE ".." "__" _outfile ${_outfile}) - get_filename_component(outpath ${_outfile} PATH) -- string(REGEX REPLACE "\\.[^.]*$" "" _outfile ${_outfile}) -+ if(CMAKE_VERSION VERSION_LESS "3.14") -+ get_filename_component(_outfile_ext ${_outfile} EXT) -+ get_filename_component(_outfile_ext ${_outfile_ext} NAME_WE) -+ get_filename_component(_outfile ${_outfile} NAME_WE) -+ string(APPEND _outfile ${_outfile_ext}) -+ else() -+ get_filename_component(_outfile ${_outfile} NAME_WLE) -+ endif() - file(MAKE_DIRECTORY ${outpath}) - set(${outfile} ${outpath}/${prefix}${_outfile}.${ext}) - endmacro() diff --git a/gnu/packages/patches/qtbase-use-TZDIR.patch b/gnu/packages/patches/qtbase-use-TZDIR.patch index 11c737d844..b6c377b133 100644 --- a/gnu/packages/patches/qtbase-use-TZDIR.patch +++ b/gnu/packages/patches/qtbase-use-TZDIR.patch @@ -4,8 +4,8 @@ important to be able to update it fast. Based on a patch fron NixOS. =================================================================== ---- qtbase-opensource-src-5.9.4.orig/src/corelib/tools/qtimezoneprivate_tz.cpp -+++ qtbase-opensource-src-5.9.4/src/corelib/tools/qtimezoneprivate_tz.cpp +--- qtbase-opensource-src-5.14.2.orig/src/corelib/time/qtimezoneprivate_tz.cpp ++++ qtbase-opensource-src-5.15.2/src/corelib/time/qtimezoneprivate_tz.cpp @@ -70,7 +70,11 @@ // Parse zone.tab table, assume lists all installed zones, if not will need to read directories static QTzTimeZoneHash loadTzTimeZones() diff --git a/gnu/packages/patches/ruby-sanitize-system-libxml.patch b/gnu/packages/patches/ruby-sanitize-system-libxml.patch new file mode 100644 index 0000000000..d19eb07294 --- /dev/null +++ b/gnu/packages/patches/ruby-sanitize-system-libxml.patch @@ -0,0 +1,38 @@ +Fix test failures that occur when nokogiri is using system libxml: + + https://github.com/rgrove/sanitize/issues/198 + +Taken from upstream: +https://github.com/rgrove/sanitize/commit/21da9b62baf9ea659811d92e6b574130aee57eba + +diff --git a/test/test_malicious_html.rb b/test/test_malicious_html.rb +index 2c23074..0756de0 100644 +--- a/test/test_malicious_html.rb ++++ b/test/test_malicious_html.rb +@@ -135,6 +135,8 @@ + # The relevant libxml2 code is here: + # <https://github.com/GNOME/libxml2/commit/960f0e275616cadc29671a218d7fb9b69eb35588> + describe 'unsafe libxml2 server-side includes in attributes' do ++ using_unpatched_libxml2 = Nokogiri::VersionInfo.instance.libxml2_using_system? ++ + tag_configs = [ + { + tag_name: 'a', +@@ -166,6 +168,8 @@ + input = %[<#{tag_name} #{attr_name}='examp<!--" onmouseover=alert(1)>-->le.com'>foo</#{tag_name}>] + + it 'should escape unsafe characters in attributes' do ++ skip "behavior should only exist in nokogiri's patched libxml" if using_unpatched_libxml2 ++ + # This uses Nokogumbo's HTML-compliant serializer rather than + # libxml2's. + @s.fragment(input). +@@ -191,6 +195,8 @@ + input = %[<#{tag_name} #{attr_name}='examp<!--" onmouseover=alert(1)>-->le.com'>foo</#{tag_name}>] + + it 'should not escape characters unnecessarily' do ++ skip "behavior should only exist in nokogiri's patched libxml" if using_unpatched_libxml2 ++ + # This uses Nokogumbo's HTML-compliant serializer rather than + # libxml2's. + @s.fragment(input). diff --git a/gnu/packages/patches/transmission-CVE-2018-10756.patch b/gnu/packages/patches/transmission-CVE-2018-10756.patch new file mode 100644 index 0000000000..f9bdcf60aa --- /dev/null +++ b/gnu/packages/patches/transmission-CVE-2018-10756.patch @@ -0,0 +1,71 @@ +Fix CVE-2018-10756: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10756 + +Patch copied from Fedora: + +https://src.fedoraproject.org/rpms/transmission/blob/master/f/2123adf8e5e1c2b48791f9d22fc8c747e974180e.patch + +--- a/libtransmission/variant.c 2018-05-01 12:21:08.000000000 -0500 ++++ b/libtransmission/variant.c 2020-05-18 10:21:27.554214128 -0500 +@@ -820,7 +820,7 @@ + struct SaveNode + { + const tr_variant * v; +- tr_variant sorted; ++ tr_variant* sorted; + size_t childIndex; + bool isVisited; + }; +@@ -849,26 +849,33 @@ + + qsort (tmp, n, sizeof (struct KeyIndex), compareKeyIndex); + +- tr_variantInitDict (&node->sorted, n); ++ node->sorted = tr_new(tr_variant, 1); ++ tr_variantInitDict (node->sorted, n); + for (i=0; i<n; ++i) +- node->sorted.val.l.vals[i] = *tmp[i].val; ++ node->sorted->val.l.vals[i] = *tmp[i].val; + node->sorted.val.l.count = n; + + tr_free (tmp); + +- node->v = &node->sorted; ++ v = node->sorted; + } + else + { +- node->v = v; ++ node->sorted = NULL; + } ++ ++ node->v = v; + } + + static void + nodeDestruct (struct SaveNode * node) + { +- if (node->v == &node->sorted) +- tr_free (node->sorted.val.l.vals); ++ //TR_ASSERT(node != NULL); ++ if (node->sorted != NULL) ++ { ++ tr_free(node->sorted->val.l.vals); ++ tr_free(node->sorted); ++ } + } + + /** +--- a/libtransmission/variant.c 2020-05-18 10:21:49.000000000 -0500 ++++ b/libtransmission/variant.c 2020-05-18 10:24:34.673648865 -0500 +@@ -853,7 +853,7 @@ + tr_variantInitDict (node->sorted, n); + for (i=0; i<n; ++i) + node->sorted->val.l.vals[i] = *tmp[i].val; +- node->sorted.val.l.count = n; ++ node->sorted->val.l.count = n; + + tr_free (tmp); + + diff --git a/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch b/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch deleted file mode 100644 index ece414a1cb..0000000000 --- a/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch +++ /dev/null @@ -1,103 +0,0 @@ -This patch for Boost >= 1.70 was made by merging two patches that -are in the 'develop' branch (c769c92 and f810ca2). - -diff -u b/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp ---- b/websocketpp/transport/asio/connection.hpp -+++ b/websocketpp/transport/asio/connection.hpp -@@ -311,9 +311,10 @@ - * needed. - */ - timer_ptr set_timer(long duration, timer_handler callback) { -- timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>( -- lib::ref(*m_io_service), -- lib::asio::milliseconds(duration) -+ timer_ptr new_timer( -+ new lib::asio::steady_timer( -+ *m_io_service, -+ lib::asio::milliseconds(duration)) - ); - - if (config::enable_multithreading) { -@@ -461,8 +462,7 @@ - m_io_service = io_service; - - if (config::enable_multithreading) { -- m_strand = lib::make_shared<lib::asio::io_service::strand>( -- lib::ref(*io_service)); -+ m_strand.reset(new lib::asio::io_service::strand(*io_service)); - } - - lib::error_code ec = socket_con_type::init_asio(io_service, m_strand, -diff -u b/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp ---- b/websocketpp/transport/asio/endpoint.hpp -+++ b/websocketpp/transport/asio/endpoint.hpp -@@ -195,8 +195,7 @@ - - m_io_service = ptr; - m_external_io_service = true; -- m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>( -- lib::ref(*m_io_service)); -+ m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service)); - - m_state = READY; - ec = lib::error_code(); -@@ -688,9 +687,7 @@ - * @since 0.3.0 - */ - void start_perpetual() { -- m_work = lib::make_shared<lib::asio::io_service::work>( -- lib::ref(*m_io_service) -- ); -+ m_work.reset(new lib::asio::io_service::work(*m_io_service)); - } - - /// Clears the endpoint's perpetual flag, allowing it to exit when empty -@@ -854,8 +851,7 @@ - - // Create a resolver - if (!m_resolver) { -- m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>( -- lib::ref(*m_io_service)); -+ m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service)); - } - - tcon->set_uri(u); -unchanged: ---- a/websocketpp/transport/asio/security/none.hpp -+++ b/websocketpp/transport/asio/security/none.hpp -@@ -168,8 +168,7 @@ protected: - return socket::make_error_code(socket::error::invalid_state); - } - -- m_socket = lib::make_shared<lib::asio::ip::tcp::socket>( -- lib::ref(*service)); -+ m_socket.reset(new lib::asio::ip::tcp::socket(*service)); - - if (m_socket_init_handler) { - m_socket_init_handler(m_hdl, *m_socket); -unchanged: ---- a/websocketpp/transport/asio/security/tls.hpp -+++ b/websocketpp/transport/asio/security/tls.hpp -@@ -193,8 +193,7 @@ protected: - if (!m_context) { - return socket::make_error_code(socket::error::invalid_tls_context); - } -- m_socket = lib::make_shared<socket_type>( -- _WEBSOCKETPP_REF(*service),lib::ref(*m_context)); -+ m_socket.reset(new socket_type(*service, *m_context)); - - if (m_socket_init_handler) { - m_socket_init_handler(m_hdl, get_socket()); -only in patch2: -unchanged: ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES) - endif () - - if (NOT Boost_USE_STATIC_LIBS) -- add_definitions (/DBOOST_TEST_DYN_LINK) -+ add_definitions (-DBOOST_TEST_DYN_LINK) - endif () - - set (Boost_FIND_REQUIRED TRUE) diff --git a/gnu/packages/patches/websocketpp-fix-for-cmake-3.15.patch b/gnu/packages/patches/websocketpp-fix-for-cmake-3.15.patch new file mode 100644 index 0000000000..ea759d022b --- /dev/null +++ b/gnu/packages/patches/websocketpp-fix-for-cmake-3.15.patch @@ -0,0 +1,17 @@ +From: Tobias Geerinckx-Rice <[email protected]> +Date: Fri, 05 Jun 2020 18:37:51 +0200 +Subject: [PATCH] gnu: websocketpp: Fix build with CMake >= 3.15. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 57ed01e78..43c772d78 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -215,7 +215,7 @@ + set (Boost_USE_MULTITHREADED TRUE) + set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these! + +- find_package (Boost 1.39.0 COMPONENTS "${WEBSOCKETPP_BOOST_LIBS}") ++ find_package (Boost 1.39.0 COMPONENTS ${WEBSOCKETPP_BOOST_LIBS}) + + if (Boost_FOUND) + # Boost is a project wide global dependency. |