summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Vroon <chainsaw@gentoo.org>2010-02-12 16:10:21 +0000
committerTony Vroon <chainsaw@gentoo.org>2010-02-12 16:10:21 +0000
commit55d971e86e234afe057893e360ee487eabae5031 (patch)
tree0ac883957743a8f74dee600434768c6872ec78e3 /media-libs
parentDescribe --close option in man page thanks to Christopher Head (bug #252227). (diff)
downloadhistorical-55d971e86e234afe057893e360ee487eabae5031.tar.gz
historical-55d971e86e234afe057893e360ee487eabae5031.tar.bz2
historical-55d971e86e234afe057893e360ee487eabae5031.zip
Apply patch from Daniel T Chen (Ubuntu) to avoid a file-descriptor leak. It can be triggered by PulseAudio. With thanks to James Brown for identifying the required patch. Closes bug #304629.
Package-Manager: portage-2.1.7.17/cvs/Linux x86_64
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/alsa-lib/ChangeLog10
-rw-r--r--media-libs/alsa-lib/Manifest10
-rw-r--r--media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild91
-rw-r--r--media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch60
4 files changed, 166 insertions, 5 deletions
diff --git a/media-libs/alsa-lib/ChangeLog b/media-libs/alsa-lib/ChangeLog
index beb70f7bccd0..fd20fd139c5e 100644
--- a/media-libs/alsa-lib/ChangeLog
+++ b/media-libs/alsa-lib/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-libs/alsa-lib
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/alsa-lib/ChangeLog,v 1.304 2010/02/10 03:36:47 josejx Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/alsa-lib/ChangeLog,v 1.305 2010/02/12 16:10:20 chainsaw Exp $
+
+*alsa-lib-1.0.22-r1 (12 Feb 2010)
+
+ 12 Feb 2010; <chainsaw@gentoo.org> +alsa-lib-1.0.22-r1.ebuild,
+ +files/alsa-lib-1.0.22-fd-leak.patch:
+ Apply patch from Daniel T Chen (Ubuntu) to avoid a file-descriptor leak.
+ It can be triggered by PulseAudio. With thanks to James Brown for
+ identifying the required patch. Closes bug #304629.
10 Feb 2010; Joseph Jezak <josejx@gentoo.org> alsa-lib-1.0.21a.ebuild:
Marked ppc stable for bug #300064.
diff --git a/media-libs/alsa-lib/Manifest b/media-libs/alsa-lib/Manifest
index 513c82085af6..ed3830ea79d2 100644
--- a/media-libs/alsa-lib/Manifest
+++ b/media-libs/alsa-lib/Manifest
@@ -1,18 +1,20 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
+AUX alsa-lib-1.0.22-fd-leak.patch 1638 RMD160 c7605bc45d93b538f7ad4759fdccd6727878a76f SHA1 23d4ac7767d76dc71fb56d6ca007ab9d77847bda SHA256 79f73bc28f33c618b396aadbd775380cd0d8040cc0406f008fb5b595e9186ab2
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
DIST alsa-lib-1.0.22.tar.bz2 808534 RMD160 4dbc3f9550f8ba01535ad3cfd8f0a8140f897e81 SHA1 d3b6c740c23b8d113a8d02da2a9fd61f5d1a8a44 SHA256 03c3e1410e68bae9b8c0d2ef1023b5416b4fd1c7191d52615d633def71e019bb
EBUILD alsa-lib-1.0.20-r1.ebuild 2745 RMD160 664b347652328094a722a01ab68cc1f5852e45cb SHA1 e4cff21e29a011b0a660dd8740c825eeb19dee37 SHA256 551832f12ea80c2d07bc9d347da7ccb87f159f8bc2c40e0c4c0171db88b76bd9
EBUILD alsa-lib-1.0.21a.ebuild 2460 RMD160 2ff755c8871bc09b961da410187e6701d95aca33 SHA1 2413a33da78a5dcd68d80d136899f5a2b9d8197a SHA256 aef3d92801cbcc367b1a50e47238fa2231b59b92a23dc9453e66dcac95d3ef08
+EBUILD alsa-lib-1.0.22-r1.ebuild 2524 RMD160 c4bdfabab1041fe52856ef7aaa0c8d49a53635c3 SHA1 8a7f22851aa0d1ba162e2f30d50aea7b61f26c85 SHA256 780a8c2f2ed6af969c98f2a22474b002b42b659f42316db0afcfda9418a8e69a
EBUILD alsa-lib-1.0.22.ebuild 2476 RMD160 0188dd49b3186bce311aa6a12f7ec194c67ff6e9 SHA1 e55cbb159bd7c9c37de9d65cefc1b0fe8cbc3323 SHA256 afaa8fbc342eec31ad5584da5859763a89a5d1bf0d64bd61fd651a707caad5a8
-MISC ChangeLog 44559 RMD160 24a4a2e29d771679b29b9f9c022b0d92656c0de8 SHA1 d76a7e9f87648f4b2410ce655e40de1748945a99 SHA256 6496e5a866a294be8ee2edbe64a972194cd98029ee58aa444376dfc8438d2d03
+MISC ChangeLog 44899 RMD160 1b119a5023d8605ba925ee464916cda6736ba932 SHA1 6b3fb835a3d64fe07a7de5db3b60138b69e63fa8 SHA256 64036226d2db5d18e97cfa60fae2f5a2ef4700dd9c96ffeead2c10a337c1a755
MISC metadata.xml 349 RMD160 d53ee4e7e914ec155222ead9a6118ee8907b775a SHA1 20344a00a6f51ddc0dc4b8e0b09c8a21ba91cc4a SHA256 68b0f168985d3b03a0997eb9f9338662d1584dc7fe7ea35ae8f7564e5e20c2e3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
-iEYEARECAAYFAktyKaMACgkQcsIHjyDViGR7YwCgzNja/2kCf22eb6F4JNn8qlxY
-Hb0AmwUCRv3sjV1oDSJw28bRyjOX6WEX
-=7tkz
+iEYEARECAAYFAkt1fXAACgkQp5vW4rUFj5oCgQCcCMcXHcSdwhQlMREzH14wPAMy
+hB4AoIGkLzCztbntW/PC6ApbpdyjQ99E
+=BSxy
-----END PGP SIGNATURE-----
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 000000000000..871720b0eb31
--- /dev/null
+++ b/media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild
@@ -0,0 +1,91 @@
+# 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 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}"
+
+ epatch "${FILESDIR}/${P}-fd-leak.patch"
+ elibtoolize
+ 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 000000000000..e7229cb9e0af
--- /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;
+ }