summaryrefslogtreecommitdiff
blob: bbc443b95776ccd41bbd342af1b180991a3593cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-utils/alsa-utils-1.0.23-r1.ebuild,v 1.10 2012/01/18 17:11:34 williamh Exp $

EAPI=2
inherit eutils

MY_P=${P/_rc/rc}
ALSA_DRIVER_VER="1.0.23"

DESCRIPTION="Advanced Linux Sound Architecture Utils (alsactl, alsamixer, etc.)"
HOMEPAGE="http://www.alsa-project.org/"
SRC_URI="mirror://alsaproject/utils/${MY_P}.tar.bz2
	mirror://alsaproject/driver/alsa-driver-${ALSA_DRIVER_VER}.tar.bz2"

LICENSE="GPL-2"
SLOT="0.9"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86"
IUSE="doc nls minimal"

DEPEND=">=sys-libs/ncurses-5.1
	dev-util/dialog
	>=media-libs/alsa-lib-${PV}
	doc? ( app-text/xmlto )"
RDEPEND=">=sys-libs/ncurses-5.1
	dev-util/dialog
	>=media-libs/alsa-lib-${PV}
	!minimal? ( sys-apps/pciutils )"

S="${WORKDIR}/${MY_P}"

pkg_setup() {
	if [[ -e "${ROOT}etc/modules.d/alsa" ]]; then
		eerror "Obsolete config /etc/modules.d/alsa found."
		die "Move /etc/modules.d/alsa to /etc/modprobe.d/alsa.conf."
	fi

	if [[ -e "${ROOT}etc/modprobe.d/alsa" ]]; then
		eerror "Obsolete config /etc/modprobe.d/alsa found."
		die "Move /etc/modprobe.d/alsa to /etc/modprobe.d/alsa.conf."
	fi
}

src_prepare() {
	epatch "${FILESDIR}"/${P}-modprobe.d.patch

	# Exit code 99 will be the same than 0 for us per bug #299362 as suggested
	# by upstream: http://www.spinics.net/lists/alsa-devel/msg31430.html
	sed -i -e 's/EXIT="99"/EXIT="0"/g' alsactl/init/00main || die

	# Apply upstream patches to clarify initialization
	epatch "${FILESDIR}/${P}-alsactl-output.patch"
	epatch "${FILESDIR}/${P}-alsactl-output2.patch"
}

src_configure() {
	local myconf=""
	use doc || myconf="--disable-xmlto"

	econf ${myconf} \
		$(use_enable nls)
}

src_install() {
	local ALSA_UTILS_DOCS="ChangeLog README TODO
		seq/aconnect/README.aconnect
		seq/aseqnet/README.aseqnet"

	emake DESTDIR="${D}" install || die "emake install failed"

	dodoc ${ALSA_UTILS_DOCS} || die

	newbin "${WORKDIR}/alsa-driver-${ALSA_DRIVER_VER}/utils/alsa-info.sh" \
		alsa-info

	newinitd "${FILESDIR}/alsasound.initd-r4" alsasound
	newconfd "${FILESDIR}/alsasound.confd-r3" alsasound
	insinto /etc/modprobe.d
	newins "${FILESDIR}/alsa-modules.conf-rc" alsa.conf

	keepdir /var/lib/alsa
}

pkg_postinst() {
	echo
	elog "To take advantage of the init script, and automate the process of"
	elog "saving and restoring sound-card mixer levels you should"
	elog "add alsasound to the boot runlevel. You can do this as"
	elog "root like so:"
	elog "	# rc-update add alsasound boot"
	echo
	elog "The script will load ALSA modules, if you choose to use a modular"
	elog "configuration. The Gentoo ALSA developers recommend you to build"
	elog "your audio drivers into the kernel unless the device is hotpluggable"
	elog "or you need to supply specific options (such as model= to HD Audio)."
	echo
	ewarn "Automated unloading of ALSA modules is deprecated and unsupported."
	ewarn "Should you choose to use it, bug reports will not be accepted."
	echo
	if use minimal; then
		ewarn "The minimal use flag disables the dependency on pciutils that"
		ewarn "is needed by alsaconf at runtime."
	fi
}