如何将OpenSSL补丁应用到Ubuntu系统?

时间:2016-05-14 03:56:49

标签: python openssl ubuntu-16.04

我在Ubuntu 16.04上遇到pip install -r requirements.txt问题。我收到此错误:

build/temp.linux-x86_64-2.7/_openssl.c:697:6: error: conflicting types for ‘BIO_new_mem_buf’

我正在查看一些论坛,一些Gentoo家伙发布了this link解决方案,但我不知道如何在我的计算机上运行它:

diff --git a/dev-python/cryptography/cryptography-1.2.2.ebuild b/dev-python/cryptography/cryptography-1.2.2.ebuild
index ae9dbd1..af7e5a1 100644
--- a/dev-python/cryptography/cryptography-1.2.2.ebuild
+++ b/dev-python/cryptography/cryptography-1.2.2.ebuild
@@ -43,6 +43,8 @@ DEPEND="${RDEPEND}

 DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst )

+PATCHES=( "${FILESDIR}/${PN}-1.2.2-openssl-1.0.2g-mem_buf.patch" )
+
 python_test() {
    py.test -v -v -x || die "Tests fail with ${EPYTHON}"
 }
diff --git a/dev-python/cryptography/files/cryptography-1.2.2-openssl-1.0.2g-mem_buf.patch b/dev-python/cryptography/files/cryptography-1.2.2-openssl-1.0.2g-mem_buf.patch
new file mode 100644
index 0000000..64d270b
--- /dev/null
+++ b/dev-python/cryptography/files/cryptography-1.2.2-openssl-1.0.2g-mem_buf.patch
@@ -0,0 +1,12 @@
+diff -ru cryptography-1.2.2/src/_cffi_src/openssl/bio.py cryptography-1.2.2-fixed/src/_cffi_src/openssl/bio.py
+--- cryptography-1.2.2/src/_cffi_src/openssl/bio.py    2016-01-29 20:26:11.000000000 +0100
++++ cryptography-1.2.2-fixed/src/_cffi_src/openssl/bio.py  2016-03-01 20:32:25.172776288 +0100
+@@ -99,7 +99,7 @@
+ BIO *BIO_next(BIO *);
+ BIO *BIO_find_type(BIO *, int);
+ BIO_METHOD *BIO_s_mem(void);
+-BIO *BIO_new_mem_buf(void *, int);
++BIO *BIO_new_mem_buf(const void *, int);
+ BIO_METHOD *BIO_s_file(void);
+ BIO *BIO_new_file(const char *, const char *);
+ BIO *BIO_new_fp(FILE *, int);

如何手动将OpenSSL补丁应用于Ubuntu系统?

感谢。

1 个答案:

答案 0 :(得分:0)

要在评论中运行此脚本,我创建了一个补丁文件patch foo.c < patch.diff

您可以获得更多详细信息here