net-im/telegram: Unbreak build on 12.0-CURRENT
Add extra-patch to fix build on 12.0-CURRENT after updating OpenSSL to version 1.1.1 See https://github.com/vysheng/tgl/issues/129
This commit is contained in:
parent
31001c2877
commit
30cc00ab40
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=482679
@ -35,6 +35,12 @@ PORTDOCS= *
|
||||
|
||||
OPTIONS_DEFINE= DOCS
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200085
|
||||
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-openssl-1.1.0
|
||||
.endif
|
||||
|
||||
do-install:
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/telegram-cli
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/bin/telegram-cli ${STAGEDIR}${PREFIX}/bin
|
||||
|
38
net-im/telegram/files/extra-patch-openssl-1.1.0
Normal file
38
net-im/telegram/files/extra-patch-openssl-1.1.0
Normal file
@ -0,0 +1,38 @@
|
||||
--- tgl/crypto/rsa_pem_openssl.c.orig 2018-10-21 14:25:36 UTC
|
||||
+++ tgl/crypto/rsa_pem_openssl.c
|
||||
@@ -36,18 +36,28 @@ TGLC_WRAPPER_ASSOC(rsa,RSA)
|
||||
// TODO: Refactor crucial struct-identity into its own header.
|
||||
TGLC_WRAPPER_ASSOC(bn,BIGNUM)
|
||||
|
||||
+/*
|
||||
+ * Note: Since OpenSSL version 1.1.0-pre5 the RSA struct (rsa_st) is opaque,
|
||||
+ * see https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
|
||||
+ */
|
||||
TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
|
||||
RSA *ret = RSA_new ();
|
||||
- ret->e = unwrap_bn (TGLC_bn_new ());
|
||||
- TGLC_bn_set_word (wrap_bn (ret->e), e);
|
||||
- ret->n = unwrap_bn (TGLC_bn_bin2bn (n, n_bytes, NULL));
|
||||
+ BIGNUM *ret_e = unwrap_bn (TGLC_bn_new ());
|
||||
+ BIGNUM *ret_n = unwrap_bn (TGLC_bn_bin2bn (n, n_bytes, NULL));
|
||||
+ RSA_set0_key (ret, ret_n, ret_e, NULL);
|
||||
+ TGLC_bn_set_word (wrap_bn (ret_e), e);
|
||||
return wrap_rsa (ret);
|
||||
}
|
||||
|
||||
-#define RSA_GETTER(M) \
|
||||
- TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
|
||||
- return wrap_bn (unwrap_rsa (key)->M); \
|
||||
- } \
|
||||
+#define RSA_GETTER(M) \
|
||||
+TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
|
||||
+ BIGNUM *rsa_n, *rsa_e, *rsa_d; \
|
||||
+ RSA_get0_key(unwrap_rsa (key), \
|
||||
+ (const BIGNUM **) &rsa_n, \
|
||||
+ (const BIGNUM **) &rsa_e, \
|
||||
+ (const BIGNUM **) &rsa_d); \
|
||||
+ return wrap_bn (rsa_ ## M); \
|
||||
+}
|
||||
|
||||
RSA_GETTER(n);
|
||||
RSA_GETTER(e);
|
Loading…
Reference in New Issue
Block a user