aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorAndrew Clemons <andrew.clemons@gmail.com>2022-02-09 22:41:17 +1300
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-02-12 00:29:41 +0700
commitcd2ef9761781901c01198c73c48a4dfc48c6f479 (patch)
treec2ecda1b3ff66d1c4ded5b00f8755b1f7c6587bb /python
parentdf4230016025f0f8ea2f08c383b3c29bd2d633b5 (diff)
python/pycryptopp: Fix build on newer gcc.
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'python')
-rw-r--r--python/pycryptopp/pycryptopp-0.7.1-abi-change.patch55
-rw-r--r--python/pycryptopp/pycryptopp.SlackBuild7
2 files changed, 62 insertions, 0 deletions
diff --git a/python/pycryptopp/pycryptopp-0.7.1-abi-change.patch b/python/pycryptopp/pycryptopp-0.7.1-abi-change.patch
new file mode 100644
index 0000000000000..d6edd2ecc630b
--- /dev/null
+++ b/python/pycryptopp/pycryptopp-0.7.1-abi-change.patch
@@ -0,0 +1,55 @@
+https://github.com/tahoe-lafs/pycryptopp/issues/42
+
+--- old/src/pycryptopp/cipher/aesmodule.cpp
++++ old/src/pycryptopp/cipher/aesmodule.cpp
+@@ -20,6 +20,8 @@
+ #include <src-cryptopp/aes.h>
+ #endif
+
++typedef unsigned char byte;
++
+ static const char*const aes___doc__ = "_aes counter mode cipher\n\
+ You are advised to run aes.start_up_self_test() after importing this module.";
+
+--- old/src/pycryptopp/cipher/xsalsa20module.cpp
++++ old/src/pycryptopp/cipher/xsalsa20module.cpp
+@@ -16,6 +16,8 @@
+ #include <src-cryptopp/salsa.h>
+ #endif
+
++typedef unsigned char byte;
++
+ static const char* const xsalsa20__doc__ = "_xsalsa20 cipher";
+
+ static PyObject *xsalsa20_error;
+--- old/src/pycryptopp/hash/sha256module.cpp
++++ old/src/pycryptopp/hash/sha256module.cpp
+@@ -21,6 +21,8 @@
+ #include <src-cryptopp/filters.h>
+ #endif
+
++typedef unsigned char byte;
++
+ static const char*const sha256___doc__ = "_sha256 hash function";
+
+ static PyObject *sha256_error;
+--- old/src/pycryptopp/publickey/rsamodule.cpp
++++ old/src/pycryptopp/publickey/rsamodule.cpp
+@@ -87,7 +87,7 @@
+ VerifyingKey_serialize(VerifyingKey *self, PyObject *dummy) {
+ std::string outstr;
+ StringSink ss(outstr);
+- self->k->DEREncode(ss);
++ self->k->GetMaterial().Save(ss);
+ PyStringObject* result = reinterpret_cast<PyStringObject*>(PyString_FromStringAndSize(outstr.c_str(), outstr.size()));
+ if (!result)
+ return NULL;
+@@ -216,7 +216,7 @@
+ SigningKey_serialize(SigningKey *self, PyObject *dummy) {
+ std::string outstr;
+ StringSink ss(outstr);
+- self->k->DEREncode(ss);
++ self->k->GetMaterial().Save(ss);
+ PyStringObject* result = reinterpret_cast<PyStringObject*>(PyString_FromStringAndSize(outstr.c_str(), outstr.size()));
+ if (!result)
+ return NULL;
diff --git a/python/pycryptopp/pycryptopp.SlackBuild b/python/pycryptopp/pycryptopp.SlackBuild
index d7a936377b0bd..70ae017884f5d 100644
--- a/python/pycryptopp/pycryptopp.SlackBuild
+++ b/python/pycryptopp/pycryptopp.SlackBuild
@@ -76,6 +76,8 @@ cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
+# thanks arch maintainers
+patch -p1 -i $CWD/pycryptopp-0.7.1-abi-change.patch
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -83,6 +85,11 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1
+
+CFLAGS="$SLKCFLAGS -fno-strict-aliasing" \
+CXXFLAGS="$SLKCFLAGS -fno-strict-aliasing" \
+python setup.py build
python setup.py install --root=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \