summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/opusfile')
-rw-r--r--media-libs/opusfile/Manifest2
-rw-r--r--media-libs/opusfile/files/opusfile-0.11-libressl.patch142
-rw-r--r--media-libs/opusfile/files/opusfile-0.12-configure-clang16.patch77
-rw-r--r--media-libs/opusfile/metadata.xml5
-rw-r--r--media-libs/opusfile/opusfile-0.12-r1.ebuild (renamed from media-libs/opusfile/opusfile-0.11.ebuild)38
5 files changed, 106 insertions, 158 deletions
diff --git a/media-libs/opusfile/Manifest b/media-libs/opusfile/Manifest
index a951fd3a7836..9926dad15afe 100644
--- a/media-libs/opusfile/Manifest
+++ b/media-libs/opusfile/Manifest
@@ -1 +1 @@
-DIST opusfile-0.11.tar.gz 467420 BLAKE2B e3e6ee2d1d4c7030bdd5f7ec14503d46ebbfcbc4481ab4652a0be9171d45fe2e855e0f17801cf28fda66f44496ba9f9a2996af7e5aaf5b008e4c3b14263f3160 SHA512 ec3e282310cc4f25475c27b7bc8d1652dcb25d3ac6badf87bd1b4e5397fbe106a0dab81c60d88d198003a23d8a2c9bae8b661edc9b31433effeca438ce56a349
+DIST opusfile-0.12.tar.gz 471354 BLAKE2B d54d9b8ed011c018dc6de77afab524d2e47ba6cca69b911efacf361b41f3b59a31424cb15a778db14166815ba5e2352f33f8aa7987c30e5e14339c652558d18d SHA512 e25e6968a3183ac0628ce1000840fd6f9f636e92ba984d6a72b76fb2a98ec632d2de4c66a8e4c05ef30655c2a4a13ab35f89606fa7d79a54cfa8506543ca57af
diff --git a/media-libs/opusfile/files/opusfile-0.11-libressl.patch b/media-libs/opusfile/files/opusfile-0.11-libressl.patch
deleted file mode 100644
index 72d807623a8c..000000000000
--- a/media-libs/opusfile/files/opusfile-0.11-libressl.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 27ab318babb96e10a9f007b7c7936fd42425f488 Mon Sep 17 00:00:00 2001
-From: Stefan Strogin <stefan.strogin@gmail.com>
-Date: Thu, 27 Sep 2018 04:53:29 +0300
-Subject: [PATCH] http: fix compilation with LibreSSL
-
-LibreSSL defines OPENSSL_VERSION_NUMBER to 0x20000000L, but its API is
-compatible with OpenSSL 1.0.1.
-Therefore redefine OPENSSL_VERSION_NUMBER to 0x1000115fL (1.0.1u) if
-LibreSSL is used.
-
-Fixes: #2327
-
-http: use new API with LibreSSL >=2.7.0
-
-LibreSSL is not yet fully API compatible with OpenSSL 1.0.2 and later,
-However many APIs from OpenSSL 1.0.2 and 1.1 are already implemented in
-LibreSSL 2.7.0 and later. Old approach works in newer LibreSSL version
-as well, but it's not nice to force deprecated functions on LibreSSL
-users.
-
-Add additional conditionals for new LibreSSL versions to use the
-available new APIs.
----
- src/http.c | 27 ++++++++++++++++-----------
- 1 file changed, 16 insertions(+), 11 deletions(-)
-
-diff --git a/src/http.c b/src/http.c
-index 8ba9b28..a47648f 100644
---- a/src/http.c
-+++ b/src/http.c
-@@ -358,6 +358,11 @@ typedef int op_sock;
- # include <sys/timeb.h>
- # include <openssl/x509v3.h>
-
-+# if (defined(LIBRESSL_VERSION_NUMBER)&&OPENSSL_VERSION_NUMBER==0x20000000L)
-+# undef OPENSSL_VERSION_NUMBER
-+# define OPENSSL_VERSION_NUMBER 0x1000115fL
-+# endif
-+
- /*The maximum number of simultaneous connections.
- RFC 2616 says this SHOULD NOT be more than 2, but everyone on the modern web
- ignores that (e.g., IE 8 bumped theirs up from 2 to 6, Firefox uses 15).
-@@ -1530,7 +1535,7 @@ static long op_bio_retry_ctrl(BIO *_b,int _cmd,long _num,void *_ptr){
- return ret;
- }
-
--# if OPENSSL_VERSION_NUMBER<0x10100000L
-+# if (OPENSSL_VERSION_NUMBER<0x10100000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- # define BIO_set_data(_b,_ptr) ((_b)->ptr=(_ptr))
- # define BIO_set_init(_b,_init) ((_b)->init=(_init))
- # define ASN1_STRING_get0_data ASN1_STRING_data
-@@ -1538,7 +1543,7 @@ static long op_bio_retry_ctrl(BIO *_b,int _cmd,long _num,void *_ptr){
-
- static int op_bio_retry_new(BIO *_b){
- BIO_set_init(_b,1);
--# if OPENSSL_VERSION_NUMBER<0x10100000L
-+# if (OPENSSL_VERSION_NUMBER<0x10100000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- _b->num=0;
- # endif
- BIO_set_data(_b,NULL);
-@@ -1549,7 +1554,7 @@ static int op_bio_retry_free(BIO *_b){
- return _b!=NULL;
- }
-
--# if OPENSSL_VERSION_NUMBER<0x10100000L
-+# if (OPENSSL_VERSION_NUMBER<0x10100000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- /*This is not const because OpenSSL doesn't allow it, even though it won't
- write to it.*/
- static BIO_METHOD op_bio_retry_method={
-@@ -1570,7 +1575,7 @@ static BIO_METHOD op_bio_retry_method={
- proxying https URL requests.*/
- static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
- OpusHTTPConn *_conn,op_sock _fd,SSL *_ssl_conn,BIO *_ssl_bio){
--# if OPENSSL_VERSION_NUMBER>=0x10100000L
-+# if (OPENSSL_VERSION_NUMBER>=0x10100000L||LIBRESSL_VERSION_NUMBER>=0x2070000fL)
- BIO_METHOD *bio_retry_method;
- # endif
- BIO *retry_bio;
-@@ -1583,7 +1588,7 @@ static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
- ret=op_http_conn_write_fully(_conn,
- _stream->proxy_connect.buf,_stream->proxy_connect.nbuf);
- if(OP_UNLIKELY(ret<0))return ret;
--# if OPENSSL_VERSION_NUMBER>=0x10100000L
-+# if (OPENSSL_VERSION_NUMBER>=0x10100000L||LIBRESSL_VERSION_NUMBER>=0x2070000fL)
- bio_retry_method=BIO_meth_new(BIO_TYPE_NULL,"retry");
- if(bio_retry_method==NULL)return OP_EFAULT;
- BIO_meth_set_write(bio_retry_method,op_bio_retry_write);
-@@ -1606,7 +1611,7 @@ static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
- /*This shouldn't succeed, since we can't read yet.*/
- OP_ALWAYS_TRUE(SSL_connect(_ssl_conn)<0);
- SSL_set_bio(_ssl_conn,_ssl_bio,_ssl_bio);
--# if OPENSSL_VERSION_NUMBER>=0x10100000L
-+# if (OPENSSL_VERSION_NUMBER>=0x10100000L||LIBRESSL_VERSION_NUMBER>=0x2070000fL)
- BIO_meth_free(bio_retry_method);
- # endif
- /*Only now do we disable write coalescing, to allow the CONNECT
-@@ -1635,7 +1640,7 @@ static struct addrinfo *op_inet_pton(const char *_host){
- return NULL;
- }
-
--# if OPENSSL_VERSION_NUMBER<0x10002000L
-+# if (OPENSSL_VERSION_NUMBER<0x10002000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- /*Match a host name against a host with a possible wildcard pattern according
- to the rules of RFC 6125 Section 6.4.3.
- Return: 0 if the pattern doesn't match, and a non-zero value if it does.*/
-@@ -1893,7 +1898,7 @@ static int op_http_conn_start_tls(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- SSL_set_tlsext_host_name(_ssl_conn,_stream->url.host);
- # endif
- skip_certificate_check=_stream->skip_certificate_check;
--# if OPENSSL_VERSION_NUMBER>=0x10002000L
-+# if (OPENSSL_VERSION_NUMBER>=0x10002000L||LIBRESSL_VERSION_NUMBER>=0x2070000fL)
- /*As of version 1.0.2, OpenSSL can finally do hostname checks automatically.
- Of course, they make it much more complicated than it needs to be.*/
- if(!skip_certificate_check){
-@@ -1956,13 +1961,13 @@ static int op_http_conn_start_tls(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
- if(OP_UNLIKELY(ret<=0))return OP_FALSE;
- ssl_session=_stream->ssl_session;
- if(ssl_session==NULL
--# if OPENSSL_VERSION_NUMBER<0x10002000L
-+# if (OPENSSL_VERSION_NUMBER<0x10002000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- ||!skip_certificate_check
- # endif
- ){
- ret=op_do_ssl_step(_ssl_conn,_fd,SSL_do_handshake);
- if(OP_UNLIKELY(ret<=0))return OP_FALSE;
--# if OPENSSL_VERSION_NUMBER<0x10002000L
-+# if (OPENSSL_VERSION_NUMBER<0x10002000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- /*OpenSSL before version 1.0.2 does not do automatic hostname verification,
- despite the fact that we just passed it the hostname above in the call
- to SSL_set_tlsext_host_name().
-@@ -2314,7 +2319,7 @@ static int op_http_stream_open(OpusHTTPStream *_stream,const char *_url,
- /*Initialize the SSL library if necessary.*/
- if(OP_URL_IS_SSL(&_stream->url)&&_stream->ssl_ctx==NULL){
- SSL_CTX *ssl_ctx;
--# if OPENSSL_VERSION_NUMBER<0x10100000L
-+# if (OPENSSL_VERSION_NUMBER<0x10100000L&&LIBRESSL_VERSION_NUMBER<0x2070000fL)
- # if !defined(OPENSSL_NO_LOCKING)
- /*The documentation says SSL_library_init() is not reentrant.
- We don't want to add our own depenencies on a threading library, and it
---
-2.19.1
-
diff --git a/media-libs/opusfile/files/opusfile-0.12-configure-clang16.patch b/media-libs/opusfile/files/opusfile-0.12-configure-clang16.patch
new file mode 100644
index 000000000000..2319b06e652b
--- /dev/null
+++ b/media-libs/opusfile/files/opusfile-0.12-configure-clang16.patch
@@ -0,0 +1,77 @@
+https://gitlab.xiph.org/xiph/opusfile/-/merge_requests/42
+https://bugs.gentoo.org/879707
+
+From 9c7915c120c399a6a001c2a34e9040c9c5c9d340 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 22 Nov 2022 02:59:20 +0000
+Subject: [PATCH] m4: fix -Wstrict-protoypes
+
+In preparation for C23. Fixes the following error if Clang 16 is
+cranked up to be stricter:
+```
+-warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
++error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+```
+
+Bug: https://bugs.gentoo.org/879701
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/m4/attributes.m4
++++ b/m4/attributes.m4
+@@ -39,7 +39,7 @@ AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
+ AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
+ [ac_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+- AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])],
++ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) { return 0; }])],
+ [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
+ [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
+ CFLAGS="$ac_save_CFLAGS"
+@@ -89,7 +89,7 @@ AC_DEFUN([CC_CHECK_LDFLAGS], [
+ AS_TR_SH([cc_cv_ldflags_$1]),
+ [ac_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $1"
+- AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])],
++ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) { return 1; }])],
+ [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
+ [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
+ LDFLAGS="$ac_save_LDFLAGS"
+@@ -165,16 +165,16 @@ AC_DEFUN([CC_CHECK_ATTRIBUTE], [
+ AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
+ CC_CHECK_ATTRIBUTE(
+ [constructor],,
+- [extern void foo();
+- void __attribute__((constructor)) ctor() { foo(); }],
++ [extern void foo(void);
++ void __attribute__((constructor)) ctor(void) { foo(); }],
+ [$1], [$2])
+ ])
+
+ AC_DEFUN([CC_ATTRIBUTE_DESTRUCTOR], [
+ CC_CHECK_ATTRIBUTE(
+ [destructor],,
+- [extern void foo();
+- void __attribute__((destructor)) dtor() { foo(); }],
++ [extern void foo(void);
++ void __attribute__((destructor)) dtor(void) { foo(); }],
+ [$1], [$2])
+ ])
+
+@@ -195,7 +195,7 @@ AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
+ AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
+ CC_CHECK_ATTRIBUTE(
+ [visibility_$1], [visibility("$1")],
+- [void __attribute__((visibility("$1"))) $1_function() { }],
++ [void __attribute__((visibility("$1"))) $1_function(void) { }],
+ [$2], [$3])
+ ])
+
+@@ -306,7 +306,7 @@ AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
+ CFLAGS="$CFLAGS $cc_cv_werror"
+ for cc_attribute_align_try in 64 32 16 8 4 2; do
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+- int main() {
++ int main(void) {
+ static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
+ return c;
+ }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
+GitLab
diff --git a/media-libs/opusfile/metadata.xml b/media-libs/opusfile/metadata.xml
index 50c6e969972f..c035863804f5 100644
--- a/media-libs/opusfile/metadata.xml
+++ b/media-libs/opusfile/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sound@gentoo.org</email>
@@ -14,4 +14,7 @@
<flag name="float">Enable floating point arithmetic operations</flag>
<flag name="http">Enable http connections</flag>
</use>
+ <upstream>
+ <remote-id type="github">xiph/opusfile</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/media-libs/opusfile/opusfile-0.11.ebuild b/media-libs/opusfile/opusfile-0.12-r1.ebuild
index 2803e3398d14..e075f63e021b 100644
--- a/media-libs/opusfile/opusfile-0.11.ebuild
+++ b/media-libs/opusfile/opusfile-0.12-r1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
+inherit autotools
DESCRIPTION="A high-level decoding and seeking API for .opus files"
HOMEPAGE="https://www.opus-codec.org/"
@@ -9,26 +11,34 @@ SRC_URI="https://downloads.xiph.org/releases/opus/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 ppc ppc64 sparc x86"
-IUSE="doc fixed-point +float +http libressl static-libs"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv sparc x86"
+IUSE="doc fixed-point +float +http static-libs"
-RDEPEND="media-libs/libogg
+RDEPEND="
+ media-libs/libogg
media-libs/opus
http? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-
-DEPEND="${RDEPEND}
- doc? ( app-doc/doxygen )"
+ dev-libs/openssl:=
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-text/doxygen )"
REQUIRED_USE="^^ ( fixed-point float )"
-PATCHES=( "${FILESDIR}/opusfile-0.11-libressl.patch" )
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.12-configure-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop once configure patch merged
+ eautoreconf
+}
src_configure() {
local myeconfargs=(
- --docdir="${EPREFIX}/usr/share/doc/${PF}"
$(use_enable doc)
$(use_enable fixed-point)\
$(use_enable float)
@@ -40,5 +50,5 @@ src_configure() {
src_install() {
default
- find "${ED}" -name "*.la" -delete || die
+ find "${ED}" -type f -name "*.la" -delete || die
}