diff --git a/hardware/firewire/libffado/pspec.xml b/hardware/firewire/libffado/pspec.xml
index 104f5a05dd..6ec501356f 100644
--- a/hardware/firewire/libffado/pspec.xml
+++ b/hardware/firewire/libffado/pspec.xml
@@ -12,7 +12,7 @@
GPLv3
Free firewire audio drivers
libffado tries to provide open-source drivers for all FireWire based pro-audio devices.
- http://www.ffado.org/files/libffado-2.4.2.tgz
+ http://www.ffado.org/files/libffado-2.4.4.tgz
xdg-utils
glibmm-devel
@@ -38,7 +38,7 @@
libffado-2.4.0-py3-pyqt5-fixes.patch
libffado-2.4.0-additional-py3-fixes.patch
libffado-2.4.0-crossbar-router-fix.patch-->
- libffado-2.4.2-python38.patch
+
@@ -109,6 +109,13 @@
+
+ 2020-11-19
+ 2.4.4
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-01-22
2.4.2
diff --git a/hardware/mobile/libimobiledevice/pspec.xml b/hardware/mobile/libimobiledevice/pspec.xml
index 3fbc445ecd..6677eec49c 100644
--- a/hardware/mobile/libimobiledevice/pspec.xml
+++ b/hardware/mobile/libimobiledevice/pspec.xml
@@ -62,6 +62,13 @@
+
+ 2020-12-09
+ 1.3.0
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-06-24
1.3.0
diff --git a/hardware/powermanagement/acpid/pspec.xml b/hardware/powermanagement/acpid/pspec.xml
index cc1be53ea7..b3d2c0a4ea 100644
--- a/hardware/powermanagement/acpid/pspec.xml
+++ b/hardware/powermanagement/acpid/pspec.xml
@@ -44,6 +44,13 @@
+
+ 2020-11-07
+ 2.0.32
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-03-02
2.0.32
diff --git a/hardware/powermanagement/upower/pspec.xml b/hardware/powermanagement/upower/pspec.xml
index 24bd0526d7..5160d101b2 100644
--- a/hardware/powermanagement/upower/pspec.xml
+++ b/hardware/powermanagement/upower/pspec.xml
@@ -90,6 +90,13 @@
+
+ 2020-12-09
+ 0.99.11
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-03-02
0.99.11
diff --git a/multimedia/misc/jansson/pspec.xml b/multimedia/misc/jansson/pspec.xml
index 885db9aa15..f51703ccde 100644
--- a/multimedia/misc/jansson/pspec.xml
+++ b/multimedia/misc/jansson/pspec.xml
@@ -39,6 +39,13 @@
+
+ 2020-11-07
+ 2.12
+ Rebuild.
+ Pisi Linux Community
+ admin@pisilinux.org
+
2020-01-19
2.12
diff --git a/multimedia/video/gst-plugins-bad/pspec.xml b/multimedia/video/gst-plugins-bad/pspec.xml
index 01d3315e48..d207f403f5 100644
--- a/multimedia/video/gst-plugins-bad/pspec.xml
+++ b/multimedia/video/gst-plugins-bad/pspec.xml
@@ -206,6 +206,13 @@
+
+ 2020-12-09
+ 1.17.2
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-10-05
1.17.2
diff --git a/multimedia/video/kvazaar/pspec.xml b/multimedia/video/kvazaar/pspec.xml
index cabcb89cc5..adaf0051e6 100755
--- a/multimedia/video/kvazaar/pspec.xml
+++ b/multimedia/video/kvazaar/pspec.xml
@@ -45,6 +45,13 @@
+
+ 2020-11-07
+ 2.0.0
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-09-28
2.0.0
diff --git a/multimedia/video/xine-lib/pspec.xml b/multimedia/video/xine-lib/pspec.xml
index 87b6923f2f..f4eb34096f 100644
--- a/multimedia/video/xine-lib/pspec.xml
+++ b/multimedia/video/xine-lib/pspec.xml
@@ -164,6 +164,13 @@
+
+ 2020-12-09
+ 1.2.10
+ Rebuild.
+ Pisi Linux Community
+ admin@pisilinux.org
+
2020-10-05
1.2.10
diff --git a/programming/debug/gdb/actions.py b/programming/debug/gdb/actions.py
index ac2a028b72..8d4237feee 100644
--- a/programming/debug/gdb/actions.py
+++ b/programming/debug/gdb/actions.py
@@ -47,4 +47,4 @@ def install():
pisitools.remove("/usr/share/info/bfd.info")
shelltools.cd("..")
- pisitools.dodoc("README*", "COPYING*", "ChangeLog*")
\ No newline at end of file
+ pisitools.dodoc("README*", "COPYING*", "ChangeLog*")
diff --git a/programming/debug/gdb/pspec.xml b/programming/debug/gdb/pspec.xml
index d54f058f44..19b6b6e1fb 100644
--- a/programming/debug/gdb/pspec.xml
+++ b/programming/debug/gdb/pspec.xml
@@ -62,6 +62,13 @@
+
+ 2020-11-07
+ 9.2
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-09-07
9.2
@@ -112,4 +119,4 @@
ertugrulerata@gmail.com
-
\ No newline at end of file
+
diff --git a/programming/language/python/python-numpy/pspec.xml b/programming/language/python/python-numpy/pspec.xml
index 3cc658536b..a08d016977 100644
--- a/programming/language/python/python-numpy/pspec.xml
+++ b/programming/language/python/python-numpy/pspec.xml
@@ -60,6 +60,13 @@
+
+ 2020-11-07
+ 1.16.6
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-10-01
1.16.6
diff --git a/programming/language/python3/cython3/pspec.xml b/programming/language/python3/cython3/pspec.xml
index e1cdd38ac8..91dd46e873 100644
--- a/programming/language/python3/cython3/pspec.xml
+++ b/programming/language/python3/cython3/pspec.xml
@@ -36,6 +36,13 @@
+
+ 2020-11-07
+ 0.29.21
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-07-21
0.29.21
@@ -107,4 +114,4 @@
karaguzelibrahim@gmail.com
-
\ No newline at end of file
+
diff --git a/programming/language/python3/python3-numpy/pspec.xml b/programming/language/python3/python3-numpy/pspec.xml
index 7a2e846693..381de57d83 100644
--- a/programming/language/python3/python3-numpy/pspec.xml
+++ b/programming/language/python3/python3-numpy/pspec.xml
@@ -13,9 +13,10 @@
library
The fundamental package needed for scientific computing with Python
Numpy contains a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.
- https://github.com/numpy/numpy/archive/v1.19.1.tar.gz
+ https://github.com/numpy/numpy/archive/v1.19.4.tar.gz
cython3
+ libgfortran
cblas-devel
lapack-devel
python3-nose
@@ -58,6 +59,13 @@
+
+ 2020-11-22
+ 1.19.4
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-08-30
1.19.1
diff --git a/programming/library/swig/pspec.xml b/programming/library/swig/pspec.xml
index ae8ba506ca..3ca1a62fc8 100644
--- a/programming/library/swig/pspec.xml
+++ b/programming/library/swig/pspec.xml
@@ -54,6 +54,13 @@
+
+ 2020-11-07
+ 4.0.1
+ Rebuild
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-05-18
4.0.1
@@ -104,4 +111,4 @@
yusuf.aydemir@pisilinux.org
-
\ No newline at end of file
+
diff --git a/programming/misc/boost/pspec.xml b/programming/misc/boost/pspec.xml
index 5400761630..c100a22731 100644
--- a/programming/misc/boost/pspec.xml
+++ b/programming/misc/boost/pspec.xml
@@ -92,6 +92,13 @@
+
+ 2020-11-07
+ 1.72.0
+ Rebuild
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-04-06
1.72.0
diff --git a/programming/misc/icu4c/pspec.xml b/programming/misc/icu4c/pspec.xml
index 8c68fdc673..2b860ee1a9 100644
--- a/programming/misc/icu4c/pspec.xml
+++ b/programming/misc/icu4c/pspec.xml
@@ -72,7 +72,14 @@
-
+
+ 2020-11-07
+ 65.1
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
+
2020-01-12
65.1
Version bump.
diff --git a/programming/misc/libsigc++/actions.py b/programming/misc/libsigc++/actions.py
index 5340b26f79..56074f05ed 100644
--- a/programming/misc/libsigc++/actions.py
+++ b/programming/misc/libsigc++/actions.py
@@ -6,23 +6,30 @@
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import mesontools
from pisi.actionsapi import get
def setup():
+ mesontools.configure("-Dbuild-documentation=true")
+ #shelltools.system("sh ./autogen.sh")
+ #autotools.autoreconf("-fiv")
# dont waste time building examples, docs and tests
- pisitools.dosed("Makefile.in", " tests examples docs")
+ #pisitools.dosed("Makefile.in", " tests examples docs")
- autotools.configure("--disable-static")
+ #autotools.configure("--disable-static enable-shared=yes ENABLE_DOCUMENTATION=no")
- pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
+ #pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
def build():
- autotools.make()
+ mesontools.build()
+ #autotools.make()
def install():
- autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ mesontools.install()
+ #autotools.rawInstall("DESTDIR=%s" % get.installDIR())
- pisitools.removeDir("/usr/share/devhelp")
+ #pisitools.removeDir("/usr/share/devhelp")
#move html docs to html doc dir
pisitools.dodir("/usr/share/doc/%s/html" % get.srcNAME())
diff --git a/programming/misc/libsigc++/pspec.xml b/programming/misc/libsigc++/pspec.xml
index f08fc27257..d0492a96ab 100644
--- a/programming/misc/libsigc++/pspec.xml
+++ b/programming/misc/libsigc++/pspec.xml
@@ -12,7 +12,12 @@
library
Typesafe signal framework for C++
libsigc++ is a library which implements a full callback system for use in widget libraries, abstract interfaces, and general programming.
- mirrors://gnome/libsigc++/2.10/libsigc++-2.10.2.tar.xz
+ mirrors://gnome/libsigc++/2.10/libsigc++-2.10.4.tar.xz
+
+ meson
+
+
+
@@ -48,6 +53,13 @@
+
+ 2020-11-19
+ 2.10.4
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-01-12
2.10.2
diff --git a/programming/misc/libyaml/pspec.xml b/programming/misc/libyaml/pspec.xml
index b2d65c80b2..0aa1796b22 100644
--- a/programming/misc/libyaml/pspec.xml
+++ b/programming/misc/libyaml/pspec.xml
@@ -49,6 +49,13 @@
+
+ 2020-11-07
+ 0.2.2
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-01-11
0.2.2
diff --git a/programming/misc/source-highlight/pspec.xml b/programming/misc/source-highlight/pspec.xml
index 6e8eeba727..7918cdcdb4 100644
--- a/programming/misc/source-highlight/pspec.xml
+++ b/programming/misc/source-highlight/pspec.xml
@@ -65,6 +65,13 @@
+
+ 2020-11-07
+ 3.1.9
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-09-07
3.1.9
@@ -73,4 +80,4 @@
bluedevil@sctzine.com
-
\ No newline at end of file
+
diff --git a/programming/profiler/valgrind/pspec.xml b/programming/profiler/valgrind/pspec.xml
index 53e88c13fe..78ae448b43 100644
--- a/programming/profiler/valgrind/pspec.xml
+++ b/programming/profiler/valgrind/pspec.xml
@@ -12,7 +12,7 @@
app:console
Memory access debugger for X86 and PPC Linux platforms
Valgrind is an award-winning suite of tools for debugging and profiling Linux programs. With the tools that come with Valgrind, you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling, to speed up and reduce memory use of your programs.
- ftp://sourceware.org/pub/valgrind/valgrind-3.15.0.tar.bz2
+ ftp://sourceware.org/pub/valgrind/valgrind-3.16.1.tar.bz2
glibc-devel
boost-devel
@@ -31,6 +31,7 @@
/usr/bin
+ /usr/libexec
/usr/include/valgrind
/usr/lib
/usr/share/doc/valgrind
@@ -39,6 +40,13 @@
+
+ 2020-11-21
+ 3.16.1
+ Version bump
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-01-07
3.15.0
diff --git a/programming/tool/ctags/actions.py b/programming/tool/ctags/actions.py
index 278deec392..c7a63a5917 100644
--- a/programming/tool/ctags/actions.py
+++ b/programming/tool/ctags/actions.py
@@ -6,8 +6,11 @@
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import get
def setup():
+ shelltools.system("sh ./autogen.sh")
autotools.configure("--with-posix-regex \
--without-readlib \
--disable-etags \
@@ -15,6 +18,9 @@ def setup():
def build():
autotools.make()
+
+#def check():
+ #autotools.make("check")
def install():
autotools.install()
@@ -23,5 +29,5 @@ def install():
pisitools.rename("/usr/bin/ctags", "exuberant-ctags")
pisitools.rename("/usr/share/man/man1/ctags.1", "exuberant-ctags.1")
- pisitools.dohtml("EXTENDING.html", "ctags.html")
- pisitools.dodoc("COPYING", "FAQ", "NEWS", "README")
+ #pisitools.dohtml("EXTENDING.html", "ctags.html")
+ pisitools.dodoc("COPYING", "README*")
diff --git a/programming/tool/ctags/pspec.xml b/programming/tool/ctags/pspec.xml
index 3349007403..f883fa4ffa 100644
--- a/programming/tool/ctags/pspec.xml
+++ b/programming/tool/ctags/pspec.xml
@@ -12,16 +12,32 @@
app:console
Exuberant Ctags generates an index (or tag) file of objects found in source and header files
Exuberant Ctags generates an index (or tag) file of objects found in source and header files that allows these items to be quickly and easily located by a text editor or other utility. Currently supports 33 programming languages.
- mirrors://sourceforge/ctags/ctags-5.8.tar.gz
+ https://github.com/universal-ctags/ctags/archive/p5.9.20201129.0.tar.gz
+
+ docutils
+ python3
+ python3-Pygments
+ python-docutils
+ jansson-devel
+ libxml2-devel
+ libyaml-devel
+ libseccomp-devel
+
- ctags-5.7-segment-fault.patch
- ctags-5.8-f95-pointers.patch
- ctags-5.8-python-vars-starting-with-def.patch
+
+
+
ctags
+
+ jansson
+ libxml2
+ libyaml
+ libseccomp
+
/usr/bin
/usr/share/man
@@ -30,6 +46,13 @@
+
+ 2020-11-07
+ 5.9
+ Version bump.
+ Pisi Linux Community
+ admin@pisilinux.org
+
2020-02-08
5.8
diff --git a/science/mathematics/lapack/pspec.xml b/science/mathematics/lapack/pspec.xml
index cb917c86e0..57de41c398 100644
--- a/science/mathematics/lapack/pspec.xml
+++ b/science/mathematics/lapack/pspec.xml
@@ -108,6 +108,13 @@
+
+ 2020-11-07
+ 3.9.0
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2019-12-12
3.9.0
@@ -165,4 +172,4 @@
admins@pisilinux.org
-
\ No newline at end of file
+
diff --git a/util/crypt/crypto++/actions.py b/util/crypt/crypto++/actions.py
index 07322dbe93..c434d4399a 100644
--- a/util/crypt/crypto++/actions.py
+++ b/util/crypt/crypto++/actions.py
@@ -16,11 +16,11 @@ def build():
pisitools.flags.add("-DNDEBUG -fPIC")
pisitools.dosed("cryptopp.pc", "@VERSION@", get.srcVERSION())
- cmaketools.make("dynamic cryptest.exe")
+ cmaketools.make("dynamic cryptest.exe PREFIX=/usr libcryptopp.pc cryptopp.pc")
def install():
- cmaketools.rawInstall("PREFIX=/usr DESTDIR=%s" % get.installDIR())
+ cmaketools.rawInstall("DESTDIR=%s PREFIX=/usr" % get.installDIR())
pisitools.remove("/usr/lib/libcryptopp.a")
diff --git a/util/crypt/crypto++/files/cve-2019-14318.patch b/util/crypt/crypto++/files/cve-2019-14318.patch
new file mode 100644
index 0000000000..da85448a86
--- /dev/null
+++ b/util/crypt/crypto++/files/cve-2019-14318.patch
@@ -0,0 +1,640 @@
+# Patch for Crypto++ timing leaks in EC gear (GH #869)
+# diff of Crypto++ 8.2 and Master 04b2a20c5da5
+--- pubkey.h
++++ pubkey.h
+@@ -886,7 +886,7 @@
+ /// \brief Retrieves the encoded element's size
+ /// \param reversible flag indicating the encoding format
+ /// \return encoded element's size, in bytes
+- /// \details The format of the encoded element varies by the underlyinhg type of the element and the
++ /// \details The format of the encoded element varies by the underlying type of the element and the
+ /// reversible flag. GetEncodedElementSize() must be implemented in a derived class.
+ /// \sa GetEncodedElementSize(), EncodeElement(), DecodeElement()
+ virtual unsigned int GetEncodedElementSize(bool reversible) const =0;
+@@ -1604,10 +1604,10 @@
+ if (rng.CanIncorporateEntropy())
+ rng.IncorporateEntropy(representative, representative.size());
+
+- Integer k;
++ Integer k, ks;
++ const Integer& q = params.GetSubgroupOrder();
+ if (alg.IsDeterministic())
+ {
+- const Integer& q = params.GetSubgroupOrder();
+ const Integer& x = key.GetPrivateExponent();
+ const DeterministicSignatureAlgorithm& det = dynamic_cast(alg);
+ k = det.GenerateRandom(x, q, e);
+@@ -1617,8 +1617,15 @@
+ k.Randomize(rng, 1, params.GetSubgroupOrder()-1);
+ }
+
++ // Due to timing attack on nonce length by Jancar
++ // https://github.com/weidai11/cryptopp/issues/869
++ ks = k + q;
++ if (ks.BitCount() == q.BitCount()) {
++ ks += q;
++ }
++
+ Integer r, s;
+- r = params.ConvertElementToInteger(params.ExponentiateBase(k));
++ r = params.ConvertElementToInteger(params.ExponentiateBase(ks));
+ alg.Sign(params, key.GetPrivateExponent(), k, e, r, s);
+
+ /*
+@@ -1630,7 +1637,7 @@
+ alg.Sign(params, key.GetPrivateExponent(), ma.m_k, e, r, s);
+ */
+
+- size_t rLen = alg.RLen(params);
++ const size_t rLen = alg.RLen(params);
+ r.Encode(signature, rLen);
+ s.Encode(signature+rLen, alg.SLen(params));
+
+--- ecp.cpp
++++ ecp.cpp
+@@ -15,10 +15,12 @@
+ ANONYMOUS_NAMESPACE_BEGIN
+
+ using CryptoPP::ECP;
++using CryptoPP::Integer;
+ using CryptoPP::ModularArithmetic;
+
+ #if defined(HAVE_GCC_INIT_PRIORITY)
+- const ECP::Point g_identity __attribute__ ((init_priority (CRYPTOPP_INIT_PRIORITY + 51))) = ECP::Point();
++ #define INIT_ATTRIBUTE __attribute__ ((init_priority (CRYPTOPP_INIT_PRIORITY + 50)))
++ const ECP::Point g_identity INIT_ATTRIBUTE = ECP::Point();
+ #elif defined(HAVE_MSC_INIT_PRIORITY)
+ #pragma warning(disable: 4075)
+ #pragma init_seg(".CRT$XCU")
+@@ -39,6 +41,502 @@
+ return P.identity ? P : ECP::Point(mr.ConvertOut(P.x), mr.ConvertOut(P.y));
+ }
+
++inline Integer IdentityToInteger(bool val)
++{
++ return val ? Integer::One() : Integer::Zero();
++}
++
++struct ProjectivePoint
++{
++ ProjectivePoint() {}
++ ProjectivePoint(const Integer &x, const Integer &y, const Integer &z)
++ : x(x), y(y), z(z) {}
++
++ Integer x, y, z;
++};
++
++/// \brief Addition and Double functions
++/// \sa Complete
++/// addition formulas for prime order elliptic curves
++struct AdditionFunction
++{
++ explicit AdditionFunction(const ECP::Field& field,
++ const ECP::FieldElement &a, const ECP::FieldElement &b, ECP::Point &r);
++
++ // Double(P)
++ ECP::Point operator()(const ECP::Point& P) const;
++ // Add(P, Q)
++ ECP::Point operator()(const ECP::Point& P, const ECP::Point& Q) const;
++
++protected:
++ /// \brief Parameters and representation for Addition
++ /// \details Addition and Doubling will use different algorithms,
++ /// depending on the A coefficient and the representation
++ /// (Affine or Montgomery with precomputation).
++ enum Alpha {
++ /// \brief Coefficient A is 0
++ A_0 = 1,
++ /// \brief Coefficient A is -3
++ A_3 = 2,
++ /// \brief Coefficient A is arbitrary
++ A_Star = 4,
++ /// \brief Representation is Montgomery
++ A_Montgomery = 8
++ };
++
++ const ECP::Field& field;
++ const ECP::FieldElement &a, &b;
++ ECP::Point &R;
++
++ Alpha m_alpha;
++};
++
++#define X p.x
++#define Y p.y
++#define Z p.z
++
++#define X1 p.x
++#define Y1 p.y
++#define Z1 p.z
++
++#define X2 q.x
++#define Y2 q.y
++#define Z2 q.z
++
++#define X3 r.x
++#define Y3 r.y
++#define Z3 r.z
++
++AdditionFunction::AdditionFunction(const ECP::Field& field,
++ const ECP::FieldElement &a, const ECP::FieldElement &b, ECP::Point &r)
++ : field(field), a(a), b(b), R(r), m_alpha(static_cast(0))
++{
++ if (field.IsMontgomeryRepresentation())
++ {
++ m_alpha = A_Montgomery;
++ }
++ else
++ {
++ if (a == 0)
++ {
++ m_alpha = A_0;
++ }
++ else if (a == -3 || (a - field.GetModulus()) == -3)
++ {
++ m_alpha = A_3;
++ }
++ else
++ {
++ m_alpha = A_Star;
++ }
++ }
++}
++
++ECP::Point AdditionFunction::operator()(const ECP::Point& P) const
++{
++ if (m_alpha == A_3)
++ {
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x = P.x * IdentityToInteger(!P.identity);
++ const Integer y = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z = 1 * IdentityToInteger(!P.identity);
++
++ ProjectivePoint p(x, y, z), r;
++
++ ECP::FieldElement t0 = field.Square(X);
++ ECP::FieldElement t1 = field.Square(Y);
++ ECP::FieldElement t2 = field.Square(Z);
++ ECP::FieldElement t3 = field.Multiply(X, Y);
++ t3 = field.Add(t3, t3);
++ Z3 = field.Multiply(X, Z);
++ Z3 = field.Add(Z3, Z3);
++ Y3 = field.Multiply(b, t2);
++ Y3 = field.Subtract(Y3, Z3);
++ X3 = field.Add(Y3, Y3);
++ Y3 = field.Add(X3, Y3);
++ X3 = field.Subtract(t1, Y3);
++ Y3 = field.Add(t1, Y3);
++ Y3 = field.Multiply(X3, Y3);
++ X3 = field.Multiply(X3, t3);
++ t3 = field.Add(t2, t2);
++ t2 = field.Add(t2, t3);
++ Z3 = field.Multiply(b, Z3);
++ Z3 = field.Subtract(Z3, t2);
++ Z3 = field.Subtract(Z3, t0);
++ t3 = field.Add(Z3, Z3);
++ Z3 = field.Add(Z3, t3);
++ t3 = field.Add(t0, t0);
++ t0 = field.Add(t3, t0);
++ t0 = field.Subtract(t0, t2);
++ t0 = field.Multiply(t0, Z3);
++ Y3 = field.Add(Y3, t0);
++ t0 = field.Multiply(Y, Z);
++ t0 = field.Add(t0, t0);
++ Z3 = field.Multiply(t0, Z3);
++ X3 = field.Subtract(X3, Z3);
++ Z3 = field.Multiply(t0, t1);
++ Z3 = field.Add(Z3, Z3);
++ Z3 = field.Add(Z3, Z3);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else if (m_alpha == A_0)
++ {
++ const ECP::FieldElement b3 = field.Multiply(b, 3);
++
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x = P.x * IdentityToInteger(!P.identity);
++ const Integer y = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z = 1 * IdentityToInteger(!P.identity);
++
++ ProjectivePoint p(x, y, z), r;
++
++ ECP::FieldElement t0 = field.Square(Y);
++ Z3 = field.Add(t0, t0);
++ Z3 = field.Add(Z3, Z3);
++ Z3 = field.Add(Z3, Z3);
++ ECP::FieldElement t1 = field.Add(Y, Z);
++ ECP::FieldElement t2 = field.Square(Z);
++ t2 = field.Multiply(b3, t2);
++ X3 = field.Multiply(t2, Z3);
++ Y3 = field.Add(t0, t2);
++ Z3 = field.Multiply(t1, Z3);
++ t1 = field.Add(t2, t2);
++ t2 = field.Add(t1, t2);
++ t0 = field.Subtract(t0, t2);
++ Y3 = field.Multiply(t0, Y3);
++ Y3 = field.Add(X3, Y3);
++ t1 = field.Multiply(X, Y);
++ X3 = field.Multiply(t0, t1);
++ X3 = field.Add(X3, X3);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else if (m_alpha == A_Star)
++ {
++ const ECP::FieldElement b3 = field.Multiply(b, 3);
++
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x = P.x * IdentityToInteger(!P.identity);
++ const Integer y = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z = 1 * IdentityToInteger(!P.identity);
++
++ ProjectivePoint p(x, y, z), r;
++
++ ECP::FieldElement t0 = field.Square(Y);
++ Z3 = field.Add(t0, t0);
++ Z3 = field.Add(Z3, Z3);
++ Z3 = field.Add(Z3, Z3);
++ ECP::FieldElement t1 = field.Add(Y, Z);
++ ECP::FieldElement t2 = field.Square(Z);
++ t2 = field.Multiply(b3, t2);
++ X3 = field.Multiply(t2, Z3);
++ Y3 = field.Add(t0, t2);
++ Z3 = field.Multiply(t1, Z3);
++ t1 = field.Add(t2, t2);
++ t2 = field.Add(t1, t2);
++ t0 = field.Subtract(t0, t2);
++ Y3 = field.Multiply(t0, Y3);
++ Y3 = field.Add(X3, Y3);
++ t1 = field.Multiply(X, Y);
++ X3 = field.Multiply(t0, t1);
++ X3 = field.Add(X3, X3);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else // A_Montgomery
++ {
++ // More gyrations
++ bool identity = !!(P.identity + (P.y == field.Identity()));
++
++ ECP::FieldElement t = field.Square(P.x);
++ t = field.Add(field.Add(field.Double(t), t), a);
++ t = field.Divide(t, field.Double(P.y));
++ ECP::FieldElement x = field.Subtract(field.Subtract(field.Square(t), P.x), P.x);
++ R.y = field.Subtract(field.Multiply(t, field.Subtract(P.x, x)), P.y);
++ R.x.swap(x);
++
++ // More gyrations
++ R.x *= IdentityToInteger(!identity);
++ R.y *= IdentityToInteger(!identity);
++ R.identity = identity;
++
++ return R;
++ }
++}
++
++ECP::Point AdditionFunction::operator()(const ECP::Point& P, const ECP::Point& Q) const
++{
++ if (m_alpha == A_3)
++ {
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x1 = P.x * IdentityToInteger(!P.identity);
++ const Integer y1 = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z1 = 1 * IdentityToInteger(!P.identity);
++
++ const Integer x2 = Q.x * IdentityToInteger(!Q.identity);
++ const Integer y2 = Q.y * IdentityToInteger(!Q.identity) + 1 * IdentityToInteger(Q.identity);
++ const Integer z2 = 1 * IdentityToInteger(!Q.identity);
++
++ ProjectivePoint p(x1, y1, z1), q(x2, y2, z2), r;
++
++ ECP::FieldElement t0 = field.Multiply(X1, X2);
++ ECP::FieldElement t1 = field.Multiply(Y1, Y2);
++ ECP::FieldElement t2 = field.Multiply(Z1, Z2);
++ ECP::FieldElement t3 = field.Add(X1, Y1);
++ ECP::FieldElement t4 = field.Add(X2, Y2);
++ t3 = field.Multiply(t3, t4);
++ t4 = field.Add(t0, t1);
++ t3 = field.Subtract(t3, t4);
++ t4 = field.Add(Y1, Z1);
++ X3 = field.Add(Y2, Z2);
++ t4 = field.Multiply(t4, X3);
++ X3 = field.Add(t1, t2);
++ t4 = field.Subtract(t4, X3);
++ X3 = field.Add(X1, Z1);
++ Y3 = field.Add(X2, Z2);
++ X3 = field.Multiply(X3, Y3);
++ Y3 = field.Add(t0, t2);
++ Y3 = field.Subtract(X3, Y3);
++ Z3 = field.Multiply(b, t2);
++ X3 = field.Subtract(Y3, Z3);
++ Z3 = field.Add(X3, X3);
++ X3 = field.Add(X3, Z3);
++ Z3 = field.Subtract(t1, X3);
++ X3 = field.Add(t1, X3);
++ Y3 = field.Multiply(b, Y3);
++ t1 = field.Add(t2, t2);
++ t2 = field.Add(t1, t2);
++ Y3 = field.Subtract(Y3, t2);
++ Y3 = field.Subtract(Y3, t0);
++ t1 = field.Add(Y3, Y3);
++ Y3 = field.Add(t1, Y3);
++ t1 = field.Add(t0, t0);
++ t0 = field.Add(t1, t0);
++ t0 = field.Subtract(t0, t2);
++ t1 = field.Multiply(t4, Y3);
++ t2 = field.Multiply(t0, Y3);
++ Y3 = field.Multiply(X3, Z3);
++ Y3 = field.Add(Y3, t2);
++ X3 = field.Multiply(t3, X3);
++ X3 = field.Subtract(X3, t1);
++ Z3 = field.Multiply(t4, Z3);
++ t1 = field.Multiply(t3, t0);
++ Z3 = field.Add(Z3, t1);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else if (m_alpha == A_0)
++ {
++ const ECP::FieldElement b3 = field.Multiply(b, 3);
++
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x1 = P.x * IdentityToInteger(!P.identity);
++ const Integer y1 = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z1 = 1 * IdentityToInteger(!P.identity);
++
++ const Integer x2 = Q.x * IdentityToInteger(!Q.identity);
++ const Integer y2 = Q.y * IdentityToInteger(!Q.identity) + 1 * IdentityToInteger(Q.identity);
++ const Integer z2 = 1 * IdentityToInteger(!Q.identity);
++
++ ProjectivePoint p(x1, y1, z1), q(x2, y2, z2), r;
++
++ ECP::FieldElement t0 = field.Square(Y);
++ Z3 = field.Add(t0, t0);
++ Z3 = field.Add(Z3, Z3);
++ Z3 = field.Add(Z3, Z3);
++ ECP::FieldElement t1 = field.Add(Y, Z);
++ ECP::FieldElement t2 = field.Square(Z);
++ t2 = field.Multiply(b3, t2);
++ X3 = field.Multiply(t2, Z3);
++ Y3 = field.Add(t0, t2);
++ Z3 = field.Multiply(t1, Z3);
++ t1 = field.Add(t2, t2);
++ t2 = field.Add(t1, t2);
++ t0 = field.Subtract(t0, t2);
++ Y3 = field.Multiply(t0, Y3);
++ Y3 = field.Add(X3, Y3);
++ t1 = field.Multiply(X, Y);
++ X3 = field.Multiply(t0, t1);
++ X3 = field.Add(X3, X3);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else if (m_alpha == A_Star)
++ {
++ const ECP::FieldElement b3 = field.Multiply(b, 3);
++
++ // Gyrations attempt to maintain constant-timeness
++ // We need either (P.x, P.y, 1) or (0, 1, 0).
++ const Integer x1 = P.x * IdentityToInteger(!P.identity);
++ const Integer y1 = P.y * IdentityToInteger(!P.identity) + 1 * IdentityToInteger(P.identity);
++ const Integer z1 = 1 * IdentityToInteger(!P.identity);
++
++ const Integer x2 = Q.x * IdentityToInteger(!Q.identity);
++ const Integer y2 = Q.y * IdentityToInteger(!Q.identity) + 1 * IdentityToInteger(Q.identity);
++ const Integer z2 = 1 * IdentityToInteger(!Q.identity);
++
++ ProjectivePoint p(x1, y1, z1), q(x2, y2, z2), r;
++
++ ECP::FieldElement t0 = field.Multiply(X1, X2);
++ ECP::FieldElement t1 = field.Multiply(Y1, Y2);
++ ECP::FieldElement t2 = field.Multiply(Z1, Z2);
++ ECP::FieldElement t3 = field.Add(X1, Y1);
++ ECP::FieldElement t4 = field.Add(X2, Y2);
++ t3 = field.Multiply(t3, t4);
++ t4 = field.Add(t0, t1);
++ t3 = field.Subtract(t3, t4);
++ t4 = field.Add(X1, Z1);
++ ECP::FieldElement t5 = field.Add(X2, Z2);
++ t4 = field.Multiply(t4, t5);
++ t5 = field.Add(t0, t2);
++ t4 = field.Subtract(t4, t5);
++ t5 = field.Add(Y1, Z1);
++ X3 = field.Add(Y2, Z2);
++ t5 = field.Multiply(t5, X3);
++ X3 = field.Add(t1, t2);
++ t5 = field.Subtract(t5, X3);
++ Z3 = field.Multiply(a, t4);
++ X3 = field.Multiply(b3, t2);
++ Z3 = field.Add(X3, Z3);
++ X3 = field.Subtract(t1, Z3);
++ Z3 = field.Add(t1, Z3);
++ Y3 = field.Multiply(X3, Z3);
++ t1 = field.Add(t0, t0);
++ t1 = field.Add(t1, t0);
++ t2 = field.Multiply(a, t2);
++ t4 = field.Multiply(b3, t4);
++ t1 = field.Add(t1, t2);
++ t2 = field.Subtract(t0, t2);
++ t2 = field.Multiply(a, t2);
++ t4 = field.Add(t4, t2);
++ t0 = field.Multiply(t1, t4);
++ Y3 = field.Add(Y3, t0);
++ t0 = field.Multiply(t5, t4);
++ X3 = field.Multiply(t3, X3);
++ X3 = field.Subtract(X3, t0);
++ t0 = field.Multiply(t3, t1);
++ Z3 = field.Multiply(t5, Z3);
++ Z3 = field.Add(Z3, t0);
++
++ const ECP::FieldElement inv = field.MultiplicativeInverse(Z3.IsZero() ? Integer::One() : Z3);
++ X3 = field.Multiply(X3, inv); Y3 = field.Multiply(Y3, inv);
++
++ // More gyrations
++ R.x = X3*Z3.NotZero();
++ R.y = Y3*Z3.NotZero();
++ R.identity = Z3.IsZero();
++
++ return R;
++ }
++ else // A_Montgomery
++ {
++ ECP::Point S = R;
++
++ // More gyrations
++ bool return_Q = P.identity;
++ bool return_P = Q.identity;
++ bool double_P = field.Equal(P.x, Q.x) && field.Equal(P.y, Q.y);
++ bool identity = field.Equal(P.x, Q.x) && !field.Equal(P.y, Q.y);
++
++ // This code taken from Double(P) for below
++ identity = !!((double_P * (P.identity + (P.y == field.Identity()))) + identity);
++
++ if (double_P)
++ {
++ // This code taken from Double(P)
++ ECP::FieldElement t = field.Square(P.x);
++ t = field.Add(field.Add(field.Double(t), t), a);
++ t = field.Divide(t, field.Double(P.y));
++ ECP::FieldElement x = field.Subtract(field.Subtract(field.Square(t), P.x), P.x);
++ R.y = field.Subtract(field.Multiply(t, field.Subtract(P.x, x)), P.y);
++ R.x.swap(x);
++ }
++ else
++ {
++ // Original Add(P,Q) code
++ ECP::FieldElement t = field.Subtract(Q.y, P.y);
++ t = field.Divide(t, field.Subtract(Q.x, P.x));
++ ECP::FieldElement x = field.Subtract(field.Subtract(field.Square(t), P.x), Q.x);
++ R.y = field.Subtract(field.Multiply(t, field.Subtract(P.x, x)), P.y);
++ R.x.swap(x);
++ }
++
++ // More gyrations
++ R.x = R.x * IdentityToInteger(!identity);
++ R.y = R.y * IdentityToInteger(!identity);
++ R.identity = identity;
++
++ if (return_Q)
++ return (R = S), Q;
++ else if (return_P)
++ return (R = S), P;
++ else
++ return (S = R), R;
++ }
++}
++
++#undef X
++#undef Y
++#undef Z
++
++#undef X1
++#undef Y1
++#undef Z1
++
++#undef X2
++#undef Y2
++#undef Z2
++
++#undef X3
++#undef Y3
++#undef Z3
++
+ ANONYMOUS_NAMESPACE_END
+
+ NAMESPACE_BEGIN(CryptoPP)
+@@ -243,34 +741,14 @@
+
+ const ECP::Point& ECP::Add(const Point &P, const Point &Q) const
+ {
+- if (P.identity) return Q;
+- if (Q.identity) return P;
+- if (GetField().Equal(P.x, Q.x))
+- return GetField().Equal(P.y, Q.y) ? Double(P) : Identity();
+-
+- FieldElement t = GetField().Subtract(Q.y, P.y);
+- t = GetField().Divide(t, GetField().Subtract(Q.x, P.x));
+- FieldElement x = GetField().Subtract(GetField().Subtract(GetField().Square(t), P.x), Q.x);
+- m_R.y = GetField().Subtract(GetField().Multiply(t, GetField().Subtract(P.x, x)), P.y);
+-
+- m_R.x.swap(x);
+- m_R.identity = false;
+- return m_R;
++ AdditionFunction add(GetField(), m_a, m_b, m_R);
++ return (m_R = add(P, Q));
+ }
+
+ const ECP::Point& ECP::Double(const Point &P) const
+ {
+- if (P.identity || P.y==GetField().Identity()) return Identity();
+-
+- FieldElement t = GetField().Square(P.x);
+- t = GetField().Add(GetField().Add(GetField().Double(t), t), m_a);
+- t = GetField().Divide(t, GetField().Double(P.y));
+- FieldElement x = GetField().Subtract(GetField().Subtract(GetField().Square(t), P.x), P.x);
+- m_R.y = GetField().Subtract(GetField().Multiply(t, GetField().Subtract(P.x, x)), P.y);
+-
+- m_R.x.swap(x);
+- m_R.identity = false;
+- return m_R;
++ AdditionFunction add(GetField(), m_a, m_b, m_R);
++ return (m_R = add(P));
+ }
+
+ template void ParallelInvert(const AbstractRing &ring, Iterator begin, Iterator end)
+@@ -310,20 +788,11 @@
+ }
+ }
+
+-struct ProjectivePoint
+-{
+- ProjectivePoint() {}
+- ProjectivePoint(const Integer &x, const Integer &y, const Integer &z)
+- : x(x), y(y), z(z) {}
+-
+- Integer x,y,z;
+-};
+-
+ class ProjectiveDoubling
+ {
+ public:
+ ProjectiveDoubling(const ModularArithmetic &m_mr, const Integer &m_a, const Integer &m_b, const ECPPoint &Q)
+- : mr(m_mr), firstDoubling(true), negated(false)
++ : mr(m_mr)
+ {
+ CRYPTOPP_UNUSED(m_b);
+ if (Q.identity)
+@@ -360,7 +829,6 @@
+
+ const ModularArithmetic &mr;
+ ProjectivePoint P;
+- bool firstDoubling, negated;
+ Integer sixteenY4, aZ4, twoY, fourY2, S, M;
+ };
+
diff --git a/util/crypt/crypto++/pspec.xml b/util/crypt/crypto++/pspec.xml
index 24adb7abd4..d138e47c93 100644
--- a/util/crypt/crypto++/pspec.xml
+++ b/util/crypt/crypto++/pspec.xml
@@ -12,7 +12,7 @@
library
Public domain C++ class library of cryptographic schemes
crypto++ is a free C++ class library of cryptographic schemes. One purpose of Crypto++ is to act as a repository of public domain (not copyrighted) source code. Although the library is copyrighted as a compilation, the individual files in it are in the public domain.
- https://github.com/weidai11/cryptopp/archive/CRYPTOPP_7_0_0.tar.gz
+ https://github.com/weidai11/cryptopp/archive/CRYPTOPP_8_2_0.tar.gz
cryptopp.pc
@@ -20,6 +20,9 @@
cmake
dos2unix
+
+ cve-2019-14318.patch
+
@@ -47,6 +50,13 @@
+
+ 2020-11-20
+ 8.2.0
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2019-04-23
7.0.0
diff --git a/util/crypt/gnupg/pspec.xml b/util/crypt/gnupg/pspec.xml
index e656784ef1..b7e437e4f3 100644
--- a/util/crypt/gnupg/pspec.xml
+++ b/util/crypt/gnupg/pspec.xml
@@ -89,6 +89,13 @@
+
+ 2020-11-09
+ 2.2.20
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-06-03
2.2.20
diff --git a/x11/misc/xinit/pspec.xml b/x11/misc/xinit/pspec.xml
index e60fc11cc8..dc711b1d6e 100644
--- a/x11/misc/xinit/pspec.xml
+++ b/x11/misc/xinit/pspec.xml
@@ -61,6 +61,13 @@
+
+ 2020-12-09
+ 1.4.1
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2020-01-24
1.4.1
diff --git a/x11/server/xorg-server/actions.py b/x11/server/xorg-server/actions.py
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/0001-configure.ac-error-while-checking-for-XDMXCONFIG_DE.patch b/x11/server/xorg-server/files/0001-configure.ac-error-while-checking-for-XDMXCONFIG_DE.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch b/x11/server/xorg-server/files/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/0002-dix-hook-up-the-unaccelerated-valuator-masks.patch b/x11/server/xorg-server/files/0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/autoconfig-sis.patch b/x11/server/xorg-server/files/autoconfig-sis.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/bug99358.patch b/x11/server/xorg-server/files/bug99358.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/default-module-path.patch b/x11/server/xorg-server/files/default-module-path.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/001_fedora_extramodes.patch b/x11/server/xorg-server/files/ubuntu/001_fedora_extramodes.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/03_static-nettle.diff b/x11/server/xorg-server/files/ubuntu/03_static-nettle.diff
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/05_Revert-Unload-submodules.diff b/x11/server/xorg-server/files/ubuntu/05_Revert-Unload-submodules.diff
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/06_Revert-fb-reorder-Bresenham-error-correction-to-avoi.diff b/x11/server/xorg-server/files/ubuntu/06_Revert-fb-reorder-Bresenham-error-correction-to-avoi.diff
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/105_nvidia_fglrx_autodetect.patch b/x11/server/xorg-server/files/ubuntu/105_nvidia_fglrx_autodetect.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/10_Include-missing-selection-h.diff b/x11/server/xorg-server/files/ubuntu/10_Include-missing-selection-h.diff
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/188_default_primary_to_first_busid.patch b/x11/server/xorg-server/files/ubuntu/188_default_primary_to_first_busid.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/226_fall_back_to_autoconfiguration.patch b/x11/server/xorg-server/files/ubuntu/226_fall_back_to_autoconfiguration.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/227_null_ptr_midispcur.patch b/x11/server/xorg-server/files/ubuntu/227_null_ptr_midispcur.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/228_autobind_gpu.patch b/x11/server/xorg-server/files/ubuntu/228_autobind_gpu.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/include-selection-h.patch b/x11/server/xorg-server/files/ubuntu/include-selection-h.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/no-nv.patch b/x11/server/xorg-server/files/ubuntu/no-nv.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/xf86-inactive-gpuscreen.patch b/x11/server/xorg-server/files/ubuntu/xf86-inactive-gpuscreen.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/ubuntu/xfree86-no-xv-for-gpuscreens.patch b/x11/server/xorg-server/files/ubuntu/xfree86-no-xv-for-gpuscreens.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch b/x11/server/xorg-server/files/xorg-server-1.12-unloadsubmodule.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.16.0-add_prime_support-1.patch b/x11/server/xorg-server/files/xorg-server-1.16.0-add_prime_support-1.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.16.0-upstream_glamor_fix-1.patch b/x11/server/xorg-server/files/xorg-server-1.16.0-upstream_glamor_fix-1.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.16.3-add_prime_support-1.patch b/x11/server/xorg-server/files/xorg-server-1.16.3-add_prime_support-1.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.17.1-add_prime_support-1.patch b/x11/server/xorg-server/files/xorg-server-1.17.1-add_prime_support-1.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch b/x11/server/xorg-server/files/xorg-server-1.18-support-multiple-Files-sections.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xorg-server-1.19.4-sysmacros.patch b/x11/server/xorg-server/files/xorg-server-1.19.4-sysmacros.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/files/xserver-autobind-hotplug.patch b/x11/server/xorg-server/files/xserver-autobind-hotplug.patch
old mode 100644
new mode 100755
diff --git a/x11/server/xorg-server/pspec.xml b/x11/server/xorg-server/pspec.xml
old mode 100644
new mode 100755
index 917e1b9d33..7d4d342bc9
--- a/x11/server/xorg-server/pspec.xml
+++ b/x11/server/xorg-server/pspec.xml
@@ -64,7 +64,7 @@
xserver-autobind-hotplug.patch
xorg-server-1.12-unloadsubmodule.patch
xorg-server-1.18-support-multiple-Files-sections.patch
- 0001-xfree86-Take-second-reference-for-SavedCursor-in-xf8.patch
+
@@ -274,8 +274,15 @@
+
+ 2020-12-09
+ 1.20.9
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
- 2020-10-03
+ 2020-09-08
1.20.9
Version bump.
Mustafa Cinasal
diff --git a/x11/server/xorg-server/translations.xml b/x11/server/xorg-server/translations.xml
old mode 100644
new mode 100755