media-libs/libshout: Bump to version 2.4.2
authorLars Wendler <polynomial-c@gentoo.org>
Mon, 6 May 2019 11:42:16 +0000 (13:42 +0200)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 6 May 2019 11:45:49 +0000 (13:45 +0200)
Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
media-libs/libshout/Manifest
media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch [new file with mode: 0644]
media-libs/libshout/libshout-2.4.2.ebuild [new file with mode: 0644]

index 0b999890acd815001d97ca54350d541c5636ba9b..7d007d498c763143263c7f17ce7ebc8ed5674063 100644 (file)
@@ -1 +1,2 @@
 DIST libshout-2.4.1.tar.gz 516161 BLAKE2B bedea3c043018eff4675fdb8b95e0bb8ff02a98994a4afcc76537124ebf7357f012f2e9445ebd207b576fc4166fb761d65066fe166fc8b611b96f5c5482a0e92 SHA512 4d4b958947e020de3330d49d39d59220fc89315f25f653a7456b9aa24ca9566fca30bb3d65e6348e79958656096b6b864ea8885157d24e55c8d84d6604670219
+DIST libshout-2.4.2.tar.gz 519249 BLAKE2B 15bd6a552eeb39654a07f5a43f670e53b37c0b239424d2530f09f156e1404da8133e557d614aa7c89aa36e3cec093fecd25aa05d855f283d4af51e1b543eb631 SHA512 ae4b042009887de22d105eb8238f4362f6ff51bd645fd51b5a87c4b5e3f5fdc99e9f99f85c24ae2e9d23eab92b854a7e733bf9f8cc61a8362ce984f02a014e93
diff --git a/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch b/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch
new file mode 100644 (file)
index 0000000..55f2189
--- /dev/null
@@ -0,0 +1,61 @@
+From 3f07c95482c15f151e10f06c89302d3700c6430f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Mon, 6 May 2019 13:33:48 +0200
+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 <sebastian@breakpoint.cc>
+
+Forward-ported to libshout-2.4.2 by Lars Wendler <polynomial-c@gentoo.org>
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ src/tls.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/tls.c b/src/tls.c
+index aed5bfc..d60fb57 100644
+--- a/src/tls.c
++++ b/src/tls.c
+@@ -26,6 +26,7 @@
+ #include <string.h>
+ #include <shout/shout.h>
++#include <string.h>
+ #include "shout_private.h"
+ #ifndef XXX_HAVE_X509_check_host
+@@ -86,14 +87,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();
+-    meth = TLSv1_client_method();
++    meth = SSLv23_client_method();
++#else
++    meth = TLS_client_method();
++#endif
+     if (!meth)
+         goto error;
+-- 
+2.21.0
+
diff --git a/media-libs/libshout/libshout-2.4.2.ebuild b/media-libs/libshout/libshout-2.4.2.ebuild
new file mode 100644 (file)
index 0000000..e478485
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2019 Gentoo Authors
+# 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:0= )
+       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
+)
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.4.1-underlinking.patch
+       "${FILESDIR}"/${PN}-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch
+)
+
+src_prepare() {
+       default
+       # Fix docdir
+       sed '/^docdir/s@$(PACKAGE)@$(PF)@' -i Makefile.am || die
+       eautoreconf
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       local myeconfargs=(
+               $(use_enable speex)
+               $(use_enable static-libs static)
+               $(use_enable theora)
+       )
+       ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install_all() {
+       find "${ED}" -name '*.la' -delete || die
+}