aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven 'sleipnir' Rebhan <odinshorse@googlemail.com>2010-02-22 19:29:09 +0000
committerSven 'sleipnir' Rebhan <odinshorse@googlemail.com>2010-02-22 19:29:09 +0000
commitf98fb3272b599acf60b84f7c7e23b7021ccc489d (patch)
treeffbf40e8a0f4a9d64c61c404cb47fe425828894a
parentPort pkg-config inclusion to newer version of libgcrypt. (diff)
downloadembedded-cross-f98fb3272b599acf60b84f7c7e23b7021ccc489d.tar.gz
embedded-cross-f98fb3272b599acf60b84f7c7e23b7021ccc489d.tar.bz2
embedded-cross-f98fb3272b599acf60b84f7c7e23b7021ccc489d.zip
Port pkg-config fix to new version of alsa-lib.
-rw-r--r--media-libs/alsa-lib/Manifest2
-rw-r--r--media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild95
-rw-r--r--media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch60
3 files changed, 157 insertions, 0 deletions
diff --git a/media-libs/alsa-lib/Manifest b/media-libs/alsa-lib/Manifest
index 6852f8e..79722d7 100644
--- a/media-libs/alsa-lib/Manifest
+++ b/media-libs/alsa-lib/Manifest
@@ -1,3 +1,4 @@
+AUX alsa-lib-1.0.22-fd-leak.patch 1638 RMD160 c7605bc45d93b538f7ad4759fdccd6727878a76f SHA1 23d4ac7767d76dc71fb56d6ca007ab9d77847bda SHA256 79f73bc28f33c618b396aadbd775380cd0d8040cc0406f008fb5b595e9186ab2
AUX alsa-lib-exec_prefix-fix.patch 513 RMD160 cf01afba1e888b45413b2343fe4c5a8e60dc4735 SHA1 52575a14f3b6cc65583a6a9d481c38cfa8f74330 SHA256 e426ef6cb77dc59c5b4d915dc68a7ed6a4ea1117e81d6ddfd0461784dbc238d8
DIST alsa-lib-1.0.20.tar.bz2 794728 RMD160 8e0b48367abdd9d5746d2dc537014b1449e65e05 SHA1 0e6acce4301a4b3924e268a78e8c979a55cc8f88 SHA256 15f8d0eef1da10c62136107e7b585bc8beb9c9e9b7ad177654097f8c15e57a63
DIST alsa-lib-1.0.21a.tar.bz2 808475 RMD160 38e615c25a93f4529f06e079584d379439ed9600 SHA1 49032964d22404455f3173629f271324bd8af211 SHA256 a6ce09afadc5428b09667cef32f7eba4ce0ea45aca27819edbe188e076d70074
@@ -5,4 +6,5 @@ DIST alsa-lib-1.0.22.tar.bz2 808534 RMD160 4dbc3f9550f8ba01535ad3cfd8f0a8140f897
EBUILD alsa-lib-1.0.20-r1.ebuild 2860 RMD160 b4e4f6c588522e508cbb0b6e43275afca3882259 SHA1 c76e44ea40521a90b33ec9e1a3554757a7b06ef4 SHA256 98e7aa50780eda278330ba707f1ed5b1a7cbdc340d6fc73316f32be74e14585f
EBUILD alsa-lib-1.0.20.ebuild 2986 RMD160 0f6a769735830ea873de75fd05a3771f60c51d47 SHA1 8f8ca74c27bb0b8b41ef53b9201733111bc7ead2 SHA256 cb46a52ff574b55aaa6dfc323262668159a397f0efe329624f471f008dd39975
EBUILD alsa-lib-1.0.21a.ebuild 2577 RMD160 6ccc5bc897ca5b14790950cdb066f927e11fda37 SHA1 e93cca745a724a1d06e2df607254c16590d4dbb3 SHA256 0e0ae7d50e6ad44d15dc5d31dbd49bb4694ab84ab34fc5c4e82b127ae8988158
+EBUILD alsa-lib-1.0.22-r1.ebuild 2640 RMD160 5c6efd527805ecc6b19b72c38a93cdc7ab9a3707 SHA1 58a7d75593f68e43b9e309ad4c2061269ced37ac SHA256 c790bc911e39d825dbf934eeadabf99d8076ab1753e14c324c4febc487d794c7
EBUILD alsa-lib-1.0.22.ebuild 2591 RMD160 f59458cdbfad83e309601a3e3d0c3dbe40360a3e SHA1 9cac0049c051a1e308fa0bc6e675f7ce597be10c SHA256 88b6d194cd381732649c9c245b37c6372dab5ce3d098b78c97cca110cfbc4adf
diff --git a/media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild b/media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild
new file mode 100644
index 0000000..dcaeedb
--- /dev/null
+++ b/media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild,v 1.1 2010/02/12 16:10:20 chainsaw Exp $
+
+inherit autotools eutils libtool
+
+MY_P="${P/_rc/rc}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Advanced Linux Sound Architecture Library"
+HOMEPAGE="http://www.alsa-project.org/"
+SRC_URI="mirror://alsaproject/lib/${MY_P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc debug alisp python"
+
+RDEPEND="python? ( dev-lang/python )"
+DEPEND="${RDEPEND}
+ >=media-sound/alsa-headers-${PV}
+ doc? ( >=app-doc/doxygen-1.2.6 )"
+
+IUSE_PCM_PLUGIN="copy linear route mulaw alaw adpcm rate plug multi shm file
+null empty share meter mmap_emul hooks lfloat ladspa dmix dshare dsnoop asym iec958
+softvol extplug ioplug"
+
+for plugin in ${IUSE_PCM_PLUGIN}; do
+ IUSE="${IUSE} alsa_pcm_plugins_${plugin}"
+done
+
+pkg_setup() {
+ if [ -z "${ALSA_PCM_PLUGINS}" ] ; then
+ ewarn "You haven't selected _any_ PCM plugins. Either you set it to something like the default"
+ ewarn "(which is being set in the profile UNLESS you unset them) or alsa based applications"
+ ewarn "are going to *misbehave* !"
+ epause 5
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix the exec_prefix later used in the .pc file.
+ epatch "${FILESDIR}/alsa-lib-exec_prefix-fix.patch"
+
+ epatch "${FILESDIR}/${P}-fd-leak.patch"
+
+ eautoreconf
+ epunt_cxx
+}
+
+src_compile() {
+ local myconf
+ use elibc_uclibc && myconf="--without-versioned"
+
+ econf \
+ --enable-static \
+ --enable-shared \
+ --disable-resmgr \
+ --enable-rawmidi \
+ --enable-seq \
+ --enable-aload \
+ $(use_with debug) \
+ $(use_enable alisp) \
+ $(use_enable python) \
+ --with-pcm-plugins="${ALSA_PCM_PLUGINS}" \
+ --disable-dependency-tracking \
+ ${myconf} \
+ || die "configure failed"
+
+ emake || die "make failed"
+
+ if use doc; then
+ emake doc || die "failed to generate docs"
+ fgrep -Zrl "${S}" "${S}/doc/doxygen/html" | \
+ xargs -0 sed -i -e "s:${S}::"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "make install failed"
+
+ dodoc ChangeLog TODO || die
+ use doc && dohtml -r doc/doxygen/html/*
+}
+
+pkg_postinst() {
+ elog "Please try in-kernel ALSA drivers instead of the alsa-drivers ebuild."
+ elog "If alsa-drivers works for you where a *recent* kernel does not, we want "
+ elog "to know about this. Our e-mail address is alsa-bugs@gentoo.org"
+ elog "However, if you notice no sound output or instability, please try to "
+ elog "upgrade your kernel to a newer version first."
+}
diff --git a/media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch b/media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch
new file mode 100644
index 0000000..e7229cb
--- /dev/null
+++ b/media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch
@@ -0,0 +1,60 @@
+commit a256766c10c52cb6667de8a65f5cbb332fad4cc7
+Author: Jaroslav Kysela <perex@perex.cz>
+Date: Mon Dec 21 09:09:42 2009 +0100
+
+ pcm: Close event timer in pcm_hw plugin
+
+ Dan McCombs discovered that snd_pcm_close() invocations are not leading
+ to associated timers being closed, which results in successively more
+ timers being created but not freed.
+
+ Original patch from Daniel T Chen <crimsun@ubuntu.com>.
+
+ BugLink: https://bugs.launchpad.net/bugs/451893
+
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+
+diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
+index 2095b01..b557912 100644
+--- a/src/pcm/pcm_hw.c
++++ b/src/pcm/pcm_hw.c
+@@ -338,18 +338,6 @@ static int snd_pcm_hw_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
+ return 0;
+ }
+
+-static int snd_pcm_hw_hw_free(snd_pcm_t *pcm)
+-{
+- snd_pcm_hw_t *hw = pcm->private_data;
+- int fd = hw->fd, err;
+- if (ioctl(fd, SNDRV_PCM_IOCTL_HW_FREE) < 0) {
+- err = -errno;
+- SYSMSG("SNDRV_PCM_IOCTL_HW_FREE failed");
+- return err;
+- }
+- return 0;
+-}
+-
+ static void snd_pcm_hw_close_timer(snd_pcm_hw_t *hw)
+ {
+ if (hw->period_timer) {
+@@ -421,6 +409,20 @@ static int snd_pcm_hw_change_timer(snd_pcm_t *pcm, int enable)
+ } else {
+ snd_pcm_hw_close_timer(hw);
+ pcm->fast_ops = &snd_pcm_hw_fast_ops;
++ hw->period_event = 0;
++ }
++ return 0;
++}
++
++static int snd_pcm_hw_hw_free(snd_pcm_t *pcm)
++{
++ snd_pcm_hw_t *hw = pcm->private_data;
++ int fd = hw->fd, err;
++ snd_pcm_hw_change_timer(pcm, 0);
++ if (ioctl(fd, SNDRV_PCM_IOCTL_HW_FREE) < 0) {
++ err = -errno;
++ SYSMSG("SNDRV_PCM_IOCTL_HW_FREE failed");
++ return err;
+ }
+ return 0;
+ }