summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2019-02-24 10:33:30 +0100
committerPacho Ramos <pacho@gentoo.org>2019-02-24 11:52:58 +0100
commit58f23370c5f39898121cd8bbb05638cd288eba37 (patch)
treee651b36f229cf15c83a99beb38d9ccb4ceb60340 /net-misc/tn5250
parentnet-irc/quassel: Remove 0.13.0 (diff)
downloadgentoo-58f23370c5f39898121cd8bbb05638cd288eba37.tar.gz
gentoo-58f23370c5f39898121cd8bbb05638cd288eba37.tar.bz2
gentoo-58f23370c5f39898121cd8bbb05638cd288eba37.zip
net-misc/tn5250: Fix openssl-1.1 compat
Closes: https://bugs.gentoo.org/676654 Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'net-misc/tn5250')
-rw-r--r--net-misc/tn5250/files/tn5250-0.17.4-duplicate-definition.patch115
-rw-r--r--net-misc/tn5250/files/tn5250-0.17.4-fedora.patch167
-rw-r--r--net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch49
-rw-r--r--net-misc/tn5250/tn5250-0.17.4-r3.ebuild58
4 files changed, 389 insertions, 0 deletions
diff --git a/net-misc/tn5250/files/tn5250-0.17.4-duplicate-definition.patch b/net-misc/tn5250/files/tn5250-0.17.4-duplicate-definition.patch
new file mode 100644
index 00000000000..39b3ccb4555
--- /dev/null
+++ b/net-misc/tn5250/files/tn5250-0.17.4-duplicate-definition.patch
@@ -0,0 +1,115 @@
+From 66e1a2f80091e9ee9b99156ae23e5faaf9f24fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Mon, 20 Feb 2017 15:06:36 +0100
+Subject: [PATCH 3/4] remove duplicate definition for tn3270_ssl_stream_init()
+
+---
+ lib5250/sslstream.c | 93 -----------------------------------------------------
+ 1 file changed, 93 deletions(-)
+
+diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
+index f4353a9..86d38cf 100644
+--- a/lib5250/sslstream.c
++++ b/lib5250/sslstream.c
+@@ -477,99 +477,6 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
+ return 0; /* Ok */
+ }
+
+-/****f* lib5250/tn3270_ssl_stream_init
+- * NAME
+- * tn3270_ssl_stream_init
+- * SYNOPSIS
+- * ret = tn3270_ssl_stream_init (This);
+- * INPUTS
+- * Tn5250Stream * This -
+- * DESCRIPTION
+- * DOCUMENT ME!!!
+- *****/
+-int tn3270_ssl_stream_init (Tn5250Stream *This)
+-{
+- int len;
+-
+-/* initialize SSL library */
+-
+- SSL_load_error_strings();
+- SSL_library_init();
+-
+-/* create a new SSL context */
+-
+- This->ssl_context = SSL_CTX_new(SSLv23_client_method());
+- if (This->ssl_context==NULL) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+-
+-/* if a certificate authority file is defined, load it into this context */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
+- if (SSL_CTX_load_verify_locations(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+-/* if a certificate authority file is defined, load it into this context */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
+- if (SSL_CTX_load_verify_locations(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+- This->userdata = NULL;
+-
+-/* if a PEM passphrase is defined, set things up so that it can be used */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config,"ssl_pem_pass")){
+- TN5250_LOG(("SSL: Setting password callback\n"));
+- len = strlen(tn5250_config_get (This->config, "ssl_pem_pass"));
+- This->userdata = malloc(len+1);
+- strncpy(This->userdata,
+- tn5250_config_get (This->config, "ssl_pem_pass"), len);
+- SSL_CTX_set_default_passwd_cb(This->ssl_context,
+- (pem_password_cb *)ssl_stream_passwd_cb);
+- SSL_CTX_set_default_passwd_cb_userdata(This->ssl_context, (void *)This);
+-
+- }
+-
+-/* If a certificate file has been defined, load it into this context as well */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_cert_file")){
+- TN5250_LOG(("SSL: Loading certificates from certificate file\n"));
+- if (SSL_CTX_use_certificate_file(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_cert_file"),
+- SSL_FILETYPE_PEM) <= 0) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- TN5250_LOG(("SSL: Loading private keys from certificate file\n"));
+- if (SSL_CTX_use_PrivateKey_file(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_cert_file"),
+- SSL_FILETYPE_PEM) <= 0) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+- This->ssl_handle = NULL;
+- This->connect = ssl_stream_connect;
+- This->accept = ssl_stream_accept;
+- This->disconnect = ssl_stream_disconnect;
+- This->handle_receive = ssl_stream_handle_receive;
+- This->send_packet = tn3270_ssl_stream_send_packet;
+- This->destroy = ssl_stream_destroy;
+- This->streamtype = TN3270E_STREAM;
+- return 0; /* Ok */
+-}
+-
+ /****i* lib5250/ssl_stream_connect
+ * NAME
+ * ssl_stream_connect
+--
+2.7.4
diff --git a/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch b/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch
new file mode 100644
index 00000000000..9c77bf08cc0
--- /dev/null
+++ b/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch
@@ -0,0 +1,167 @@
+From 66e1a2f80091e9ee9b99156ae23e5faaf9f24fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Mon, 20 Feb 2017 15:06:36 +0100
+Subject: [PATCH 3/4] remove duplicate definition for tn3270_ssl_stream_init()
+
+---
+ lib5250/sslstream.c | 93 -----------------------------------------------------
+ 1 file changed, 93 deletions(-)
+
+diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
+index f4353a9..86d38cf 100644
+--- a/lib5250/sslstream.c
++++ b/lib5250/sslstream.c
+@@ -477,99 +477,6 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
+ return 0; /* Ok */
+ }
+
+-/****f* lib5250/tn3270_ssl_stream_init
+- * NAME
+- * tn3270_ssl_stream_init
+- * SYNOPSIS
+- * ret = tn3270_ssl_stream_init (This);
+- * INPUTS
+- * Tn5250Stream * This -
+- * DESCRIPTION
+- * DOCUMENT ME!!!
+- *****/
+-int tn3270_ssl_stream_init (Tn5250Stream *This)
+-{
+- int len;
+-
+-/* initialize SSL library */
+-
+- SSL_load_error_strings();
+- SSL_library_init();
+-
+-/* create a new SSL context */
+-
+- This->ssl_context = SSL_CTX_new(SSLv23_client_method());
+- if (This->ssl_context==NULL) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+-
+-/* if a certificate authority file is defined, load it into this context */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
+- if (SSL_CTX_load_verify_locations(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+-/* if a certificate authority file is defined, load it into this context */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
+- if (SSL_CTX_load_verify_locations(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+- This->userdata = NULL;
+-
+-/* if a PEM passphrase is defined, set things up so that it can be used */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config,"ssl_pem_pass")){
+- TN5250_LOG(("SSL: Setting password callback\n"));
+- len = strlen(tn5250_config_get (This->config, "ssl_pem_pass"));
+- This->userdata = malloc(len+1);
+- strncpy(This->userdata,
+- tn5250_config_get (This->config, "ssl_pem_pass"), len);
+- SSL_CTX_set_default_passwd_cb(This->ssl_context,
+- (pem_password_cb *)ssl_stream_passwd_cb);
+- SSL_CTX_set_default_passwd_cb_userdata(This->ssl_context, (void *)This);
+-
+- }
+-
+-/* If a certificate file has been defined, load it into this context as well */
+-
+- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_cert_file")){
+- TN5250_LOG(("SSL: Loading certificates from certificate file\n"));
+- if (SSL_CTX_use_certificate_file(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_cert_file"),
+- SSL_FILETYPE_PEM) <= 0) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- TN5250_LOG(("SSL: Loading private keys from certificate file\n"));
+- if (SSL_CTX_use_PrivateKey_file(This->ssl_context,
+- tn5250_config_get (This->config, "ssl_cert_file"),
+- SSL_FILETYPE_PEM) <= 0) {
+- DUMP_ERR_STACK ();
+- return -1;
+- }
+- }
+-
+- This->ssl_handle = NULL;
+- This->connect = ssl_stream_connect;
+- This->accept = ssl_stream_accept;
+- This->disconnect = ssl_stream_disconnect;
+- This->handle_receive = ssl_stream_handle_receive;
+- This->send_packet = tn3270_ssl_stream_send_packet;
+- This->destroy = ssl_stream_destroy;
+- This->streamtype = TN3270E_STREAM;
+- return 0; /* Ok */
+-}
+-
+ /****i* lib5250/ssl_stream_connect
+ * NAME
+ * ssl_stream_connect
+--
+2.7.4
+
+
+From 5922e57bb5ea78ff35f82a60f1721d533cc0584a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Mon, 20 Feb 2017 15:37:51 +0100
+Subject: [PATCH 4/4] port to OpenSSL 1.1
+
+- check for better functions in configure
+- update SSL initialization call
+---
+ configure.ac | 8 ++++----
+ lib5250/sslstream.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4ba0007..8a16cff 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,13 +152,13 @@ dnl ** happily, we don't have to hunt for them thanks to ldconfig!
+ dnl **
+ if test -n $sslincludedir; then
+ CPPFLAGS="$CPPFLAGS $sslincludedir"
+- AC_CHECK_LIB(crypto,CRYPTO_num_locks)
+- if test "$ac_cv_lib_crypto_CRYPTO_num_locks" != "yes"
++ AC_CHECK_LIB(crypto,OPENSSL_init)
++ if test "$ac_cv_lib_crypto_OPENSSL_init" != "yes"
+ then
+ AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
+ fi
+- AC_CHECK_LIB(ssl,SSL_library_init)
+- if test "$ac_cv_lib_ssl_SSL_library_init" != "yes"
++ AC_CHECK_LIB(ssl,OPENSSL_init_ssl)
++ if test "$ac_cv_lib_ssl_OPENSSL_init_ssl" != "yes"
+ then
+ AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
+ fi
+diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
+index 86d38cf..3c0f390 100644
+--- a/lib5250/sslstream.c
++++ b/lib5250/sslstream.c
+@@ -368,7 +368,7 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
+ /* initialize SSL library */
+
+ SSL_load_error_strings();
+- SSL_library_init();
++ OPENSSL_init_ssl(0, NULL);
+
+ /* which SSL method do we use? */
+
+--
+2.7.4
+
diff --git a/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch b/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch
new file mode 100644
index 00000000000..8c6d0fde1c7
--- /dev/null
+++ b/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch
@@ -0,0 +1,49 @@
+From 5922e57bb5ea78ff35f82a60f1721d533cc0584a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Mon, 20 Feb 2017 15:37:51 +0100
+Subject: [PATCH 4/4] port to OpenSSL 1.1
+
+- check for better functions in configure
+- update SSL initialization call
+---
+ configure.ac | 8 ++++----
+ lib5250/sslstream.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4ba0007..8a16cff 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,13 +152,13 @@ dnl ** happily, we don't have to hunt for them thanks to ldconfig!
+ dnl **
+ if test -n $sslincludedir; then
+ CPPFLAGS="$CPPFLAGS $sslincludedir"
+- AC_CHECK_LIB(crypto,CRYPTO_num_locks)
+- if test "$ac_cv_lib_crypto_CRYPTO_num_locks" != "yes"
++ AC_CHECK_LIB(crypto,OPENSSL_init)
++ if test "$ac_cv_lib_crypto_OPENSSL_init" != "yes"
+ then
+ AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
+ fi
+- AC_CHECK_LIB(ssl,SSL_library_init)
+- if test "$ac_cv_lib_ssl_SSL_library_init" != "yes"
++ AC_CHECK_LIB(ssl,OPENSSL_init_ssl)
++ if test "$ac_cv_lib_ssl_OPENSSL_init_ssl" != "yes"
+ then
+ AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
+ fi
+diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
+index 86d38cf..3c0f390 100644
+--- a/lib5250/sslstream.c
++++ b/lib5250/sslstream.c
+@@ -368,7 +368,7 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
+ /* initialize SSL library */
+
+ SSL_load_error_strings();
+- SSL_library_init();
++ OPENSSL_init_ssl(0, NULL);
+
+ /* which SSL method do we use? */
+
+--
+2.7.4
diff --git a/net-misc/tn5250/tn5250-0.17.4-r3.ebuild b/net-misc/tn5250/tn5250-0.17.4-r3.ebuild
new file mode 100644
index 00000000000..b28b5cc3723
--- /dev/null
+++ b/net-misc/tn5250/tn5250-0.17.4-r3.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="IBM AS/400 telnet client which emulates 5250 terminals/printers"
+HOMEPAGE="http://tn5250.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="libressl ssl"
+
+RDEPEND="
+ sys-libs/ncurses:0=
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.17.4-disable-sslv2-and-sslv3.patch
+ "${FILESDIR}"/${PN}-0.17.4-fix-Wformat-security-warnings.patch
+ "${FILESDIR}"/${PN}-0.17.4-tinfo.patch
+ "${FILESDIR}"/${PN}-0.17.4-whoami.patch
+ "${FILESDIR}"/${PN}-0.17.4-duplicate-definition.patch
+)
+
+src_prepare() {
+ default
+ if has_version ">=dev-libs/openssl-1.1.1"; then
+ eapply "${FILESDIR}"/${PN}-0.17.4-openssl11.patch
+ fi
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with ssl) \
+ --disable-static \
+ --without-python
+}
+
+src_install() {
+ # The TERMINFO variable needs to be defined for the install
+ # to work, because the install calls "tic." man tic for
+ # details.
+ dodir /usr/share/terminfo
+ emake DESTDIR="${D}" TERMINFO="${D}/usr/share/terminfo" install
+
+ einstalldocs
+ find "${D}" -name '*.la' -delete || die
+}