commit:     ded87ac360dd80ae69eb86dfb02183c4ceaf4652
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 13 15:34:27 2018 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Sep 13 15:34:45 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ded87ac3

media-libs/libshout: Fixed compilation with openssl-1.1

Closes: https://bugs.gentoo.org/655688
Package-Manager: Portage-2.3.49, Repoman-2.3.10

 ...hout-2.4.1-tls-compile-with-OpenSSL-1.1.0.patch | 58 +++++++++++++++++++++
 media-libs/libshout/libshout-2.4.1-r2.ebuild       | 59 ++++++++++++++++++++++
 2 files changed, 117 insertions(+)

diff --git 
a/media-libs/libshout/files/libshout-2.4.1-tls-compile-with-OpenSSL-1.1.0.patch 
b/media-libs/libshout/files/libshout-2.4.1-tls-compile-with-OpenSSL-1.1.0.patch
new file mode 100644
index 00000000000..befd16e3846
--- /dev/null
+++ 
b/media-libs/libshout/files/libshout-2.4.1-tls-compile-with-OpenSSL-1.1.0.patch
@@ -0,0 +1,58 @@
+From 01fafc449f0de56743d08e7976933c49e2915bfa Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <[email protected]>
+Date: Wed, 15 Nov 2017 12:46:25 +0000
+Subject: [PATCH] tls: compile with OpenSSL 1.1.0
+
+The init functions are not longer required in OpenSSL 1.1 so I dropped
+them.
+
+TLSv1_client_method() should not be used because it enables only the
+TLSv1.0 protocol. Better is to use SSLv23_client_method() which enable
+all the protocols including TLSv1.2. With this functions SSLv2 and SSLv3
+is theoretically possible but as of today those protocols are usually
+build-time disabled.
+To avoid all this OpenSSL 1.1 provides TLS_client_method() which is aim
+to provide to highest TLS protocol version (same as
+SSLv23_client_method() but it is deprecated in 1.1).
+
+Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
+---
+ src/tls.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/tls.c b/src/tls.c
+index 4562c7327077..e0e5c1a5f079 100644
+--- a/src/tls.c
++++ b/src/tls.c
+@@ -24,6 +24,7 @@
+ #endif
+ 
+ #include <shout/shout.h>
++#include <string.h>
+ #include "shout_private.h"
+ 
+ #ifndef XXX_HAVE_X509_check_host
+@@ -61,14 +62,17 @@ shout_tls_t *shout_tls_new(shout_t *self, sock_t socket)
+ 
+ static inline int tls_setup(shout_tls_t *tls)
+ {
+-      SSL_METHOD *meth;
+-
++      const SSL_METHOD *meth;
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+       SSL_library_init();
+       SSL_load_error_strings();
+       SSLeay_add_all_algorithms();
+-      SSLeay_add_ssl_algorithms();
++      SSLeay_add_ssl_algorithms();
+ 
+-      meth = TLSv1_client_method();
++      meth = SSLv23_client_method();
++#else
++      meth = TLS_client_method();
++#endif
+       if (!meth)
+               goto error;
+ 
+-- 
+2.15.0

diff --git a/media-libs/libshout/libshout-2.4.1-r2.ebuild 
b/media-libs/libshout/libshout-2.4.1-r2.ebuild
new file mode 100644
index 00000000000..be0811811b8
--- /dev/null
+++ b/media-libs/libshout/libshout-2.4.1-r2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="library for connecting and sending data to icecast servers"
+HOMEPAGE="http://www.icecast.org/";
+SRC_URI="http://downloads.xiph.org/releases/${PN}/${P}.tar.gz";
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 
~amd64-fbsd ~x86-fbsd"
+IUSE="libressl speex static-libs theora"
+
+RDEPEND="
+       >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
+       >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl )
+       speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
+       theora? ( >=media-libs/libtheora-1.1.1[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+       /usr/include/shout/shout.h
+)
+
+DOCS=( README examples/example.c )
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.4.1-underlinking.patch
+       "${FILESDIR}"/${PN}-2.4.1-tls-compile-with-OpenSSL-1.1.0.patch
+)
+
+src_prepare() {
+       default
+       eautoreconf
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       local myeconfargs=(
+               $(use_enable static-libs static)
+               $(use_enable theora)
+               $(use_enable speex)
+       )
+       ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install_all() {
+       einstalldocs
+       rm -rf "${ED%/}"/usr/share/doc/${PN} || die
+       find "${D}" -name '*.la' -delete || die
+}

Reply via email to