diff options
author | 2010-02-22 19:29:09 +0000 | |
---|---|---|
committer | 2010-02-22 19:29:09 +0000 | |
commit | f98fb3272b599acf60b84f7c7e23b7021ccc489d (patch) | |
tree | ffbf40e8a0f4a9d64c61c404cb47fe425828894a | |
parent | Port pkg-config inclusion to newer version of libgcrypt. (diff) | |
download | embedded-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/Manifest | 2 | ||||
-rw-r--r-- | media-libs/alsa-lib/alsa-lib-1.0.22-r1.ebuild | 95 | ||||
-rw-r--r-- | media-libs/alsa-lib/files/alsa-lib-1.0.22-fd-leak.patch | 60 |
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; + } |