summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-11-22 03:17:07 +0000
committerSam James <sam@gentoo.org>2022-11-22 03:17:24 +0000
commit754c8b4df67d9e16962c4d41c5d4730218c86346 (patch)
tree47ed73501ecc1a5686e5348f05ab5dc442671e48 /media-libs/opusfile
parentmedia-libs/libopusenc: EAPI 8; fix configure w/ clang 16 (diff)
downloadgentoo-754c8b4df67d9e16962c4d41c5d4730218c86346.tar.gz
gentoo-754c8b4df67d9e16962c4d41c5d4730218c86346.tar.bz2
gentoo-754c8b4df67d9e16962c4d41c5d4730218c86346.zip
media-libs/opusfile: EAPI 8, fix configure w/ clang 16
Closes: https://bugs.gentoo.org/879707 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-libs/opusfile')
-rw-r--r--media-libs/opusfile/files/opusfile-0.12-configure-clang16.patch77
-rw-r--r--media-libs/opusfile/opusfile-0.12-r1.ebuild54
2 files changed, 131 insertions, 0 deletions
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/opusfile-0.12-r1.ebuild b/media-libs/opusfile/opusfile-0.12-r1.ebuild
new file mode 100644
index 000000000000..0aab5f8e89cc
--- /dev/null
+++ b/media-libs/opusfile/opusfile-0.12-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A high-level decoding and seeking API for .opus files"
+HOMEPAGE="https://www.opus-codec.org/"
+SRC_URI="https://downloads.xiph.org/releases/opus/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="doc fixed-point +float +http static-libs"
+
+RDEPEND="
+ media-libs/libogg
+ media-libs/opus
+ http? (
+ dev-libs/openssl:=
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-doc/doxygen )"
+
+REQUIRED_USE="^^ ( fixed-point float )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.12-configure-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop once configure patch merged
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable doc)
+ $(use_enable fixed-point)\
+ $(use_enable float)
+ $(use_enable http)
+ $(use_enable static-libs static)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}" -type f -name "*.la" -delete || die
+}