Gentoo Archives: gentoo-commits

From: Pacho Ramos <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/tn5250/files/, net-misc/tn5250/
Date: Sun, 24 Feb 2019 10:53:40
Message-Id: 1551005578.58f23370c5f39898121cd8bbb05638cd288eba37.pacho@gentoo
1 commit: 58f23370c5f39898121cd8bbb05638cd288eba37
2 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
3 AuthorDate: Sun Feb 24 09:33:30 2019 +0000
4 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
5 CommitDate: Sun Feb 24 10:52:58 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58f23370
7
8 net-misc/tn5250: Fix openssl-1.1 compat
9
10 Closes: https://bugs.gentoo.org/676654
11 Package-Manager: Portage-2.3.62, Repoman-2.3.12
12 Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
13
14 .../files/tn5250-0.17.4-duplicate-definition.patch | 115 ++++++++++++++
15 net-misc/tn5250/files/tn5250-0.17.4-fedora.patch | 167 +++++++++++++++++++++
16 .../tn5250/files/tn5250-0.17.4-openssl11.patch | 49 ++++++
17 net-misc/tn5250/tn5250-0.17.4-r3.ebuild | 58 +++++++
18 4 files changed, 389 insertions(+)
19
20 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
21 new file mode 100644
22 index 00000000000..39b3ccb4555
23 --- /dev/null
24 +++ b/net-misc/tn5250/files/tn5250-0.17.4-duplicate-definition.patch
25 @@ -0,0 +1,115 @@
26 +From 66e1a2f80091e9ee9b99156ae23e5faaf9f24fe0 Mon Sep 17 00:00:00 2001
27 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@×××××.cz>
28 +Date: Mon, 20 Feb 2017 15:06:36 +0100
29 +Subject: [PATCH 3/4] remove duplicate definition for tn3270_ssl_stream_init()
30 +
31 +---
32 + lib5250/sslstream.c | 93 -----------------------------------------------------
33 + 1 file changed, 93 deletions(-)
34 +
35 +diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
36 +index f4353a9..86d38cf 100644
37 +--- a/lib5250/sslstream.c
38 ++++ b/lib5250/sslstream.c
39 +@@ -477,99 +477,6 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
40 + return 0; /* Ok */
41 + }
42 +
43 +-/****f* lib5250/tn3270_ssl_stream_init
44 +- * NAME
45 +- * tn3270_ssl_stream_init
46 +- * SYNOPSIS
47 +- * ret = tn3270_ssl_stream_init (This);
48 +- * INPUTS
49 +- * Tn5250Stream * This -
50 +- * DESCRIPTION
51 +- * DOCUMENT ME!!!
52 +- *****/
53 +-int tn3270_ssl_stream_init (Tn5250Stream *This)
54 +-{
55 +- int len;
56 +-
57 +-/* initialize SSL library */
58 +-
59 +- SSL_load_error_strings();
60 +- SSL_library_init();
61 +-
62 +-/* create a new SSL context */
63 +-
64 +- This->ssl_context = SSL_CTX_new(SSLv23_client_method());
65 +- if (This->ssl_context==NULL) {
66 +- DUMP_ERR_STACK ();
67 +- return -1;
68 +- }
69 +-
70 +-/* if a certificate authority file is defined, load it into this context */
71 +-
72 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
73 +- if (SSL_CTX_load_verify_locations(This->ssl_context,
74 +- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
75 +- DUMP_ERR_STACK ();
76 +- return -1;
77 +- }
78 +- }
79 +-
80 +-/* if a certificate authority file is defined, load it into this context */
81 +-
82 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
83 +- if (SSL_CTX_load_verify_locations(This->ssl_context,
84 +- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
85 +- DUMP_ERR_STACK ();
86 +- return -1;
87 +- }
88 +- }
89 +-
90 +- This->userdata = NULL;
91 +-
92 +-/* if a PEM passphrase is defined, set things up so that it can be used */
93 +-
94 +- if (This->config!=NULL && tn5250_config_get (This->config,"ssl_pem_pass")){
95 +- TN5250_LOG(("SSL: Setting password callback\n"));
96 +- len = strlen(tn5250_config_get (This->config, "ssl_pem_pass"));
97 +- This->userdata = malloc(len+1);
98 +- strncpy(This->userdata,
99 +- tn5250_config_get (This->config, "ssl_pem_pass"), len);
100 +- SSL_CTX_set_default_passwd_cb(This->ssl_context,
101 +- (pem_password_cb *)ssl_stream_passwd_cb);
102 +- SSL_CTX_set_default_passwd_cb_userdata(This->ssl_context, (void *)This);
103 +-
104 +- }
105 +-
106 +-/* If a certificate file has been defined, load it into this context as well */
107 +-
108 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_cert_file")){
109 +- TN5250_LOG(("SSL: Loading certificates from certificate file\n"));
110 +- if (SSL_CTX_use_certificate_file(This->ssl_context,
111 +- tn5250_config_get (This->config, "ssl_cert_file"),
112 +- SSL_FILETYPE_PEM) <= 0) {
113 +- DUMP_ERR_STACK ();
114 +- return -1;
115 +- }
116 +- TN5250_LOG(("SSL: Loading private keys from certificate file\n"));
117 +- if (SSL_CTX_use_PrivateKey_file(This->ssl_context,
118 +- tn5250_config_get (This->config, "ssl_cert_file"),
119 +- SSL_FILETYPE_PEM) <= 0) {
120 +- DUMP_ERR_STACK ();
121 +- return -1;
122 +- }
123 +- }
124 +-
125 +- This->ssl_handle = NULL;
126 +- This->connect = ssl_stream_connect;
127 +- This->accept = ssl_stream_accept;
128 +- This->disconnect = ssl_stream_disconnect;
129 +- This->handle_receive = ssl_stream_handle_receive;
130 +- This->send_packet = tn3270_ssl_stream_send_packet;
131 +- This->destroy = ssl_stream_destroy;
132 +- This->streamtype = TN3270E_STREAM;
133 +- return 0; /* Ok */
134 +-}
135 +-
136 + /****i* lib5250/ssl_stream_connect
137 + * NAME
138 + * ssl_stream_connect
139 +--
140 +2.7.4
141
142 diff --git a/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch b/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch
143 new file mode 100644
144 index 00000000000..9c77bf08cc0
145 --- /dev/null
146 +++ b/net-misc/tn5250/files/tn5250-0.17.4-fedora.patch
147 @@ -0,0 +1,167 @@
148 +From 66e1a2f80091e9ee9b99156ae23e5faaf9f24fe0 Mon Sep 17 00:00:00 2001
149 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@×××××.cz>
150 +Date: Mon, 20 Feb 2017 15:06:36 +0100
151 +Subject: [PATCH 3/4] remove duplicate definition for tn3270_ssl_stream_init()
152 +
153 +---
154 + lib5250/sslstream.c | 93 -----------------------------------------------------
155 + 1 file changed, 93 deletions(-)
156 +
157 +diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
158 +index f4353a9..86d38cf 100644
159 +--- a/lib5250/sslstream.c
160 ++++ b/lib5250/sslstream.c
161 +@@ -477,99 +477,6 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
162 + return 0; /* Ok */
163 + }
164 +
165 +-/****f* lib5250/tn3270_ssl_stream_init
166 +- * NAME
167 +- * tn3270_ssl_stream_init
168 +- * SYNOPSIS
169 +- * ret = tn3270_ssl_stream_init (This);
170 +- * INPUTS
171 +- * Tn5250Stream * This -
172 +- * DESCRIPTION
173 +- * DOCUMENT ME!!!
174 +- *****/
175 +-int tn3270_ssl_stream_init (Tn5250Stream *This)
176 +-{
177 +- int len;
178 +-
179 +-/* initialize SSL library */
180 +-
181 +- SSL_load_error_strings();
182 +- SSL_library_init();
183 +-
184 +-/* create a new SSL context */
185 +-
186 +- This->ssl_context = SSL_CTX_new(SSLv23_client_method());
187 +- if (This->ssl_context==NULL) {
188 +- DUMP_ERR_STACK ();
189 +- return -1;
190 +- }
191 +-
192 +-/* if a certificate authority file is defined, load it into this context */
193 +-
194 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
195 +- if (SSL_CTX_load_verify_locations(This->ssl_context,
196 +- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
197 +- DUMP_ERR_STACK ();
198 +- return -1;
199 +- }
200 +- }
201 +-
202 +-/* if a certificate authority file is defined, load it into this context */
203 +-
204 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_ca_file")) {
205 +- if (SSL_CTX_load_verify_locations(This->ssl_context,
206 +- tn5250_config_get (This->config, "ssl_ca_file"), NULL)<1) {
207 +- DUMP_ERR_STACK ();
208 +- return -1;
209 +- }
210 +- }
211 +-
212 +- This->userdata = NULL;
213 +-
214 +-/* if a PEM passphrase is defined, set things up so that it can be used */
215 +-
216 +- if (This->config!=NULL && tn5250_config_get (This->config,"ssl_pem_pass")){
217 +- TN5250_LOG(("SSL: Setting password callback\n"));
218 +- len = strlen(tn5250_config_get (This->config, "ssl_pem_pass"));
219 +- This->userdata = malloc(len+1);
220 +- strncpy(This->userdata,
221 +- tn5250_config_get (This->config, "ssl_pem_pass"), len);
222 +- SSL_CTX_set_default_passwd_cb(This->ssl_context,
223 +- (pem_password_cb *)ssl_stream_passwd_cb);
224 +- SSL_CTX_set_default_passwd_cb_userdata(This->ssl_context, (void *)This);
225 +-
226 +- }
227 +-
228 +-/* If a certificate file has been defined, load it into this context as well */
229 +-
230 +- if (This->config!=NULL && tn5250_config_get (This->config, "ssl_cert_file")){
231 +- TN5250_LOG(("SSL: Loading certificates from certificate file\n"));
232 +- if (SSL_CTX_use_certificate_file(This->ssl_context,
233 +- tn5250_config_get (This->config, "ssl_cert_file"),
234 +- SSL_FILETYPE_PEM) <= 0) {
235 +- DUMP_ERR_STACK ();
236 +- return -1;
237 +- }
238 +- TN5250_LOG(("SSL: Loading private keys from certificate file\n"));
239 +- if (SSL_CTX_use_PrivateKey_file(This->ssl_context,
240 +- tn5250_config_get (This->config, "ssl_cert_file"),
241 +- SSL_FILETYPE_PEM) <= 0) {
242 +- DUMP_ERR_STACK ();
243 +- return -1;
244 +- }
245 +- }
246 +-
247 +- This->ssl_handle = NULL;
248 +- This->connect = ssl_stream_connect;
249 +- This->accept = ssl_stream_accept;
250 +- This->disconnect = ssl_stream_disconnect;
251 +- This->handle_receive = ssl_stream_handle_receive;
252 +- This->send_packet = tn3270_ssl_stream_send_packet;
253 +- This->destroy = ssl_stream_destroy;
254 +- This->streamtype = TN3270E_STREAM;
255 +- return 0; /* Ok */
256 +-}
257 +-
258 + /****i* lib5250/ssl_stream_connect
259 + * NAME
260 + * ssl_stream_connect
261 +--
262 +2.7.4
263 +
264 +
265 +From 5922e57bb5ea78ff35f82a60f1721d533cc0584a Mon Sep 17 00:00:00 2001
266 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@×××××.cz>
267 +Date: Mon, 20 Feb 2017 15:37:51 +0100
268 +Subject: [PATCH 4/4] port to OpenSSL 1.1
269 +
270 +- check for better functions in configure
271 +- update SSL initialization call
272 +---
273 + configure.ac | 8 ++++----
274 + lib5250/sslstream.c | 2 +-
275 + 2 files changed, 5 insertions(+), 5 deletions(-)
276 +
277 +diff --git a/configure.ac b/configure.ac
278 +index 4ba0007..8a16cff 100644
279 +--- a/configure.ac
280 ++++ b/configure.ac
281 +@@ -152,13 +152,13 @@ dnl ** happily, we don't have to hunt for them thanks to ldconfig!
282 + dnl **
283 + if test -n $sslincludedir; then
284 + CPPFLAGS="$CPPFLAGS $sslincludedir"
285 +- AC_CHECK_LIB(crypto,CRYPTO_num_locks)
286 +- if test "$ac_cv_lib_crypto_CRYPTO_num_locks" != "yes"
287 ++ AC_CHECK_LIB(crypto,OPENSSL_init)
288 ++ if test "$ac_cv_lib_crypto_OPENSSL_init" != "yes"
289 + then
290 + AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
291 + fi
292 +- AC_CHECK_LIB(ssl,SSL_library_init)
293 +- if test "$ac_cv_lib_ssl_SSL_library_init" != "yes"
294 ++ AC_CHECK_LIB(ssl,OPENSSL_init_ssl)
295 ++ if test "$ac_cv_lib_ssl_OPENSSL_init_ssl" != "yes"
296 + then
297 + AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
298 + fi
299 +diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
300 +index 86d38cf..3c0f390 100644
301 +--- a/lib5250/sslstream.c
302 ++++ b/lib5250/sslstream.c
303 +@@ -368,7 +368,7 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
304 + /* initialize SSL library */
305 +
306 + SSL_load_error_strings();
307 +- SSL_library_init();
308 ++ OPENSSL_init_ssl(0, NULL);
309 +
310 + /* which SSL method do we use? */
311 +
312 +--
313 +2.7.4
314 +
315
316 diff --git a/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch b/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch
317 new file mode 100644
318 index 00000000000..8c6d0fde1c7
319 --- /dev/null
320 +++ b/net-misc/tn5250/files/tn5250-0.17.4-openssl11.patch
321 @@ -0,0 +1,49 @@
322 +From 5922e57bb5ea78ff35f82a60f1721d533cc0584a Mon Sep 17 00:00:00 2001
323 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@×××××.cz>
324 +Date: Mon, 20 Feb 2017 15:37:51 +0100
325 +Subject: [PATCH 4/4] port to OpenSSL 1.1
326 +
327 +- check for better functions in configure
328 +- update SSL initialization call
329 +---
330 + configure.ac | 8 ++++----
331 + lib5250/sslstream.c | 2 +-
332 + 2 files changed, 5 insertions(+), 5 deletions(-)
333 +
334 +diff --git a/configure.ac b/configure.ac
335 +index 4ba0007..8a16cff 100644
336 +--- a/configure.ac
337 ++++ b/configure.ac
338 +@@ -152,13 +152,13 @@ dnl ** happily, we don't have to hunt for them thanks to ldconfig!
339 + dnl **
340 + if test -n $sslincludedir; then
341 + CPPFLAGS="$CPPFLAGS $sslincludedir"
342 +- AC_CHECK_LIB(crypto,CRYPTO_num_locks)
343 +- if test "$ac_cv_lib_crypto_CRYPTO_num_locks" != "yes"
344 ++ AC_CHECK_LIB(crypto,OPENSSL_init)
345 ++ if test "$ac_cv_lib_crypto_OPENSSL_init" != "yes"
346 + then
347 + AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
348 + fi
349 +- AC_CHECK_LIB(ssl,SSL_library_init)
350 +- if test "$ac_cv_lib_ssl_SSL_library_init" != "yes"
351 ++ AC_CHECK_LIB(ssl,OPENSSL_init_ssl)
352 ++ if test "$ac_cv_lib_ssl_OPENSSL_init_ssl" != "yes"
353 + then
354 + AC_MSG_ERROR([** Unable to find OpenSSL libraries!])
355 + fi
356 +diff --git a/lib5250/sslstream.c b/lib5250/sslstream.c
357 +index 86d38cf..3c0f390 100644
358 +--- a/lib5250/sslstream.c
359 ++++ b/lib5250/sslstream.c
360 +@@ -368,7 +368,7 @@ int tn5250_ssl_stream_init (Tn5250Stream *This)
361 + /* initialize SSL library */
362 +
363 + SSL_load_error_strings();
364 +- SSL_library_init();
365 ++ OPENSSL_init_ssl(0, NULL);
366 +
367 + /* which SSL method do we use? */
368 +
369 +--
370 +2.7.4
371
372 diff --git a/net-misc/tn5250/tn5250-0.17.4-r3.ebuild b/net-misc/tn5250/tn5250-0.17.4-r3.ebuild
373 new file mode 100644
374 index 00000000000..b28b5cc3723
375 --- /dev/null
376 +++ b/net-misc/tn5250/tn5250-0.17.4-r3.ebuild
377 @@ -0,0 +1,58 @@
378 +# Copyright 1999-2019 Gentoo Authors
379 +# Distributed under the terms of the GNU General Public License v2
380 +
381 +EAPI=7
382 +inherit autotools
383 +
384 +DESCRIPTION="IBM AS/400 telnet client which emulates 5250 terminals/printers"
385 +HOMEPAGE="http://tn5250.sourceforge.net/"
386 +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
387 +
388 +LICENSE="LGPL-2.1"
389 +SLOT="0"
390 +KEYWORDS="~amd64 ~ppc ~sparc ~x86"
391 +IUSE="libressl ssl"
392 +
393 +RDEPEND="
394 + sys-libs/ncurses:0=
395 + ssl? (
396 + !libressl? ( dev-libs/openssl:0= )
397 + libressl? ( dev-libs/libressl:0= )
398 + )
399 +"
400 +
401 +DEPEND="${RDEPEND}"
402 +
403 +PATCHES=(
404 + "${FILESDIR}"/${PN}-0.17.4-disable-sslv2-and-sslv3.patch
405 + "${FILESDIR}"/${PN}-0.17.4-fix-Wformat-security-warnings.patch
406 + "${FILESDIR}"/${PN}-0.17.4-tinfo.patch
407 + "${FILESDIR}"/${PN}-0.17.4-whoami.patch
408 + "${FILESDIR}"/${PN}-0.17.4-duplicate-definition.patch
409 +)
410 +
411 +src_prepare() {
412 + default
413 + if has_version ">=dev-libs/openssl-1.1.1"; then
414 + eapply "${FILESDIR}"/${PN}-0.17.4-openssl11.patch
415 + fi
416 + eautoreconf
417 +}
418 +
419 +src_configure() {
420 + econf \
421 + $(use_with ssl) \
422 + --disable-static \
423 + --without-python
424 +}
425 +
426 +src_install() {
427 + # The TERMINFO variable needs to be defined for the install
428 + # to work, because the install calls "tic." man tic for
429 + # details.
430 + dodir /usr/share/terminfo
431 + emake DESTDIR="${D}" TERMINFO="${D}/usr/share/terminfo" install
432 +
433 + einstalldocs
434 + find "${D}" -name '*.la' -delete || die
435 +}