diff options
author | Tony Vroon <chainsaw@gentoo.org> | 2010-02-12 16:10:21 +0000 |
---|---|---|
committer | Tony Vroon <chainsaw@gentoo.org> | 2010-02-12 16:10:21 +0000 |
commit | 55d971e86e234afe057893e360ee487eabae5031 (patch) | |
tree | 0ac883957743a8f74dee600434768c6872ec78e3 /media-libs | |
parent | Describe --close option in man page thanks to Christopher Head (bug #252227). (diff) | |
download | historical-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/ChangeLog | 10 | ||||
-rw-r--r-- | media-libs/alsa-lib/Manifest | 10 | ||||
-rw-r--r-- | media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild | 91 | ||||
-rw-r--r-- | media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch | 60 |
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; + } |