public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/alsa-lib/, media-libs/alsa-lib/files/
Date: Fri, 15 Sep 2023 04:33:37 +0000 (UTC)	[thread overview]
Message-ID: <1694752389.8da9ea49f14cfc17a49174d51b608f7484daba19.sam@gentoo> (raw)

commit:     8da9ea49f14cfc17a49174d51b608f7484daba19
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 15 04:13:55 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 15 04:33:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8da9ea49

media-libs/alsa-lib: fix 32-bit LFS mismatches

Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/alsa-lib/alsa-lib-1.2.10-r2.ebuild      | 102 ++++++++++++
 ...sa-lib-1.2.10-pcm-fix-segfault-32bit-libs.patch |  91 +++++++++++
 ...-1.2.10-reshuffle-included-files-config-h.patch | 174 +++++++++++++++++++++
 3 files changed, 367 insertions(+)

diff --git a/media-libs/alsa-lib/alsa-lib-1.2.10-r2.ebuild b/media-libs/alsa-lib/alsa-lib-1.2.10-r2.ebuild
new file mode 100644
index 000000000000..4b5a3c65e8bb
--- /dev/null
+++ b/media-libs/alsa-lib/alsa-lib-1.2.10-r2.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+inherit autotools multilib-minimal flag-o-matic python-single-r1
+
+DESCRIPTION="Advanced Linux Sound Architecture Library"
+HOMEPAGE="https://alsa-project.org/wiki/Main_Page"
+if [[ ${PV} == *_p* ]] ; then
+	# Please set correct commit ID for a snapshot release!
+	COMMIT="abe805ed6c7f38e48002e575535afd1f673b9bcd"
+	SRC_URI="https://git.alsa-project.org/?p=${PN}.git;a=snapshot;h=${COMMIT};sf=tgz -> ${P}.tar.gz"
+	S="${WORKDIR}"/${PN}-${COMMIT:0:7}
+else
+	# TODO: Upstream does publish .sig files, so someone could implement verify-sig ;)
+	SRC_URI="https://www.alsa-project.org/files/pub/lib/${P}.tar.bz2"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="alisp debug doc python"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+	media-libs/alsa-topology-conf
+	media-libs/alsa-ucm-conf
+	python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( >=app-doc/doxygen-1.2.6 )"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-1.1.6-missing_files.patch" # bug #652422
+	"${FILESDIR}/${P}-musl-string.patch" # bug #913573, backport
+	"${FILESDIR}/${P}-ump-header-detection.patch" # bug #913573, backport
+	"${FILESDIR}/${P}-pcm-fix-segfault-32bit-libs.patch" # backport
+	"${FILESDIR}/${P}-reshuffle-included-files-config-h.patch" # backport
+)
+
+pkg_setup() {
+	use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	find . -name Makefile.am -exec sed -i -e '/CFLAGS/s:-g -O2::' {} + || die
+	# bug #545950
+	sed -i -e '5s:^$:\nAM_CPPFLAGS = -I$(top_srcdir)/include:' test/lsb/Makefile.am || die
+
+	eautoreconf
+}
+
+multilib_src_configure() {
+	# Broken upstream. Could in theory work with -flto-partitions=none
+	# but it's a hack to workaround the real problem and not strictly safe.
+	# bug #616108, bug #669086, and https://github.com/alsa-project/alsa-lib/issues/6.
+	# (This bug is closed as of 1.2.9 but there's been no clear actual fix to it.
+	# Let us know if you can identify one.)
+	filter-lto
+
+	local myeconfargs=(
+		--disable-maintainer-mode
+		--disable-resmgr
+		--enable-aload
+		--enable-rawmidi
+		--enable-seq
+		--enable-shared
+		--enable-thread-safety
+
+		$(multilib_native_use_enable python)
+		$(use_enable alisp)
+		$(use_with debug)
+	)
+
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+	emake
+
+	if multilib_is_native_abi && use doc; then
+		emake doc
+		grep -FZrl "${S}" doc/doxygen/html | \
+			xargs -0 sed -i -e "s:${S}::" || die
+	fi
+}
+
+multilib_src_install() {
+	multilib_is_native_abi && use doc && local HTML_DOCS=( doc/doxygen/html/. )
+
+	default
+}
+
+multilib_src_install_all() {
+	find "${ED}" -type f -name '*.la' -delete || die
+
+	dodoc ChangeLog doc/asoundrc.txt NOTES TODO
+}

diff --git a/media-libs/alsa-lib/files/alsa-lib-1.2.10-pcm-fix-segfault-32bit-libs.patch b/media-libs/alsa-lib/files/alsa-lib-1.2.10-pcm-fix-segfault-32bit-libs.patch
new file mode 100644
index 000000000000..4cd3614ee943
--- /dev/null
+++ b/media-libs/alsa-lib/files/alsa-lib-1.2.10-pcm-fix-segfault-32bit-libs.patch
@@ -0,0 +1,91 @@
+https://github.com/alsa-project/alsa-lib/commit/0e3dfb9f705ca78be34cd70fd59d67c431e29cc7
+
+From 0e3dfb9f705ca78be34cd70fd59d67c431e29cc7 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Sat, 9 Sep 2023 17:42:03 +0200
+Subject: [PATCH] pcm: Fix segfault with 32bit libs
+
+The recent rearrangement of header inclusion order caused a regression
+showing segfaults on 32bit Arm.  The primary reason is the
+inconsistent compile condition depending on the inclusion of config.h;
+while most of other code include pcm_local.h (that implicitly includes
+config.h) at first, pcm_direct.c doesn't do it, hence the access with
+direct plugins crashes.
+
+For fixing it, we need to include config.h at the beginning.  But,
+it's better to include pcm_local.h for all relevant code for
+consistency.  The patch does it, and also it adds the guard in
+pcm_local.h for double inclusions.
+
+Fixes: ad3a8b8b314e ("reshuffle included files to include config.h as first")
+Link: https://github.com/alsa-project/alsa-lib/issues/352
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+--- a/src/pcm/pcm_direct.c
++++ b/src/pcm/pcm_direct.c
+@@ -19,6 +19,7 @@
+  *
+  */
+   
++#include "pcm_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stddef.h>
+--- a/src/pcm/pcm_dmix.c
++++ b/src/pcm/pcm_dmix.c
+@@ -26,7 +26,7 @@
+  *
+  */
+   
+-#include "config.h"
++#include "pcm_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stddef.h>
+--- a/src/pcm/pcm_dshare.c
++++ b/src/pcm/pcm_dshare.c
+@@ -26,6 +26,7 @@
+  *
+  */
+   
++#include "pcm_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stddef.h>
+--- a/src/pcm/pcm_dsnoop.c
++++ b/src/pcm/pcm_dsnoop.c
+@@ -26,6 +26,7 @@
+  *
+  */
+   
++#include "pcm_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stddef.h>
+--- a/src/pcm/pcm_local.h
++++ b/src/pcm/pcm_local.h
+@@ -20,6 +20,9 @@
+  *
+  */
+ 
++#ifndef __PCM_LOCAL_H
++#define __PCM_LOCAL_H
++
+ #include "config.h"
+ 
+ #include <stdio.h>
+@@ -1223,3 +1226,5 @@ static inline void snd_pcm_unlock(snd_pcm_t *pcm)
+ #define snd_pcm_lock(pcm)		do {} while (0)
+ #define snd_pcm_unlock(pcm)		do {} while (0)
+ #endif /* THREAD_SAFE_API */
++
++#endif /* __PCM_LOCAL_H */
+--- a/src/pcm/pcm_shm.c
++++ b/src/pcm/pcm_shm.c
+@@ -26,6 +26,7 @@
+  *
+  */
+   
++#include "pcm_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stddef.h>

diff --git a/media-libs/alsa-lib/files/alsa-lib-1.2.10-reshuffle-included-files-config-h.patch b/media-libs/alsa-lib/files/alsa-lib-1.2.10-reshuffle-included-files-config-h.patch
new file mode 100644
index 000000000000..42493fef6af1
--- /dev/null
+++ b/media-libs/alsa-lib/files/alsa-lib-1.2.10-reshuffle-included-files-config-h.patch
@@ -0,0 +1,174 @@
+https://github.com/alsa-project/alsa-lib/commit/81a7a93636d9472fcb0c2ff32d9bfdf6ed10763d
+
+From 81a7a93636d9472fcb0c2ff32d9bfdf6ed10763d Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 13 Sep 2023 12:27:21 +0200
+Subject: [PATCH] reshuffle included files to include config.h as first - v2
+
+config.h may contain defines like _FILE_OFFSET_BITS which influence
+the system wide include files (off_t types, open -> open64 function
+usage etc.).
+
+Fixes: ad3a8b8b ("reshuffle included files to include config.h as first")
+Related: https://github.com/alsa-project/alsa-lib/pull/333
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+--- a/src/control/setup.c
++++ b/src/control/setup.c
+@@ -29,13 +29,13 @@
+  *
+  */
+ 
++#include "local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <ctype.h>
+-#include "local.h"
+ 
+ #ifndef DOC_HIDDEN
+ typedef struct {
+--- a/src/rawmidi/rawmidi.c
++++ b/src/rawmidi/rawmidi.c
+@@ -144,12 +144,12 @@ This example shows open and read/write rawmidi operations.
+  * Shows open and read/write rawmidi operations.
+  */
+  
++#include "rawmidi_local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include "rawmidi_local.h"
+ 
+ /**
+  * \brief setup the default parameters
+--- a/src/rawmidi/rawmidi_local.h
++++ b/src/rawmidi/rawmidi_local.h
+@@ -19,10 +19,10 @@
+  *
+  */
+ 
++#include "local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <limits.h>
+-#include "local.h"
+ 
+ typedef struct {
+ 	int (*close)(snd_rawmidi_t *rawmidi);
+--- a/src/rawmidi/rawmidi_virt.c
++++ b/src/rawmidi/rawmidi_virt.c
+@@ -19,13 +19,11 @@
+  *
+  */
+ 
+-#include <stdio.h>
+-#include <stdlib.h>
++#include "rawmidi_local.h"
+ #include <unistd.h>
+ #include <string.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+-#include "rawmidi_local.h"
+ #include "seq.h"
+ #include "seq_midi_event.h"
+ 
+--- a/src/rawmidi/ump.c
++++ b/src/rawmidi/ump.c
+@@ -4,10 +4,6 @@
+  * \brief Universal MIDI Protocol (UMP) Interface
+  */
+ 
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <limits.h>
+-#include "local.h"
+ #include "rawmidi_local.h"
+ #include "ump_local.h"
+ 
+--- a/src/seq/seq.c
++++ b/src/seq/seq.c
+@@ -777,8 +777,8 @@ void event_filter(snd_seq_t *seq, snd_seq_event_t *ev)
+ 
+ */
+ 
+-#include <poll.h>
+ #include "seq_local.h"
++#include <poll.h>
+ 
+ /****************************************************************************
+  *                                                                          *
+--- a/src/seq/seq_hw.c
++++ b/src/seq/seq_hw.c
+@@ -20,9 +20,9 @@
+  *
+  */
+ 
++#include "seq_local.h"
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+-#include "seq_local.h"
+ 
+ #ifndef PIC
+ /* entry for static linking */
+--- a/src/seq/seq_local.h
++++ b/src/seq/seq_local.h
+@@ -23,10 +23,10 @@
+ #ifndef __SEQ_LOCAL_H
+ #define __SEQ_LOCAL_H
+ 
++#include "local.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <limits.h>
+-#include "local.h"
+ 
+ #define SND_SEQ_OBUF_SIZE	(16*1024)	/* default size */
+ #define SND_SEQ_IBUF_SIZE	500		/* in event_size aligned */
+--- a/src/seq/seq_midi_event.c
++++ b/src/seq/seq_midi_event.c
+@@ -28,10 +28,10 @@
+  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
++#include "local.h"
+ #if HAVE_MALLOC_H
+ #include <malloc.h>
+ #endif
+-#include "local.h"
+ 
+ #ifndef DOC_HIDDEN
+ 
+--- a/src/seq/seqmid.c
++++ b/src/seq/seqmid.c
+@@ -20,14 +20,12 @@
+  *
+  */
+ 
+-#include <stdio.h>
+-#include <stdlib.h>
++#include "seq_local.h"
+ #include <unistd.h>
+ #include <string.h>
+ #include <fcntl.h>
+ #include <ctype.h>
+ #include <sys/ioctl.h>
+-#include "seq_local.h"
+ 
+ /**
+  * \brief queue controls - start/stop/continue
+--- a/src/userfile.c
++++ b/src/userfile.c
+@@ -18,7 +18,7 @@
+  *
+  */
+   
+-#include <config.h>
++#include "config.h"
+ #include <string.h>
+ #include <errno.h>
+ #include <assert.h>
+


             reply	other threads:[~2023-09-15  4:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-15  4:33 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-06 22:11 [gentoo-commits] repo/gentoo:master commit in: media-libs/alsa-lib/, media-libs/alsa-lib/files/ Sam James
2024-10-04 17:37 Andreas Sturmlechner
2024-02-17  6:40 Sam James
2023-09-07 14:48 Sam James
2022-06-01  7:21 Lars Wendler
2021-05-28  1:41 Sam James
2020-05-02 17:12 Andreas Sturmlechner
2020-02-20 15:49 Lars Wendler
2019-11-25 21:14 Lars Wendler
2018-04-05 11:50 Lars Wendler
2017-05-18 11:44 Lars Wendler
2015-10-08 17:16 Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1694752389.8da9ea49f14cfc17a49174d51b608f7484daba19.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox