summaryrefslogtreecommitdiff
blob: 5be551e9c993a5db1f45b898d3a2f301ce6abf6d (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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/mt-daapd/mt-daapd-0.3.0_pre1586.ebuild,v 1.1 2007/08/04 21:09:37 drac Exp $

inherit eutils flag-o-matic base

SVN="${PV#*pre}"

if [[ -n ${SVN} ]] ; then
	MY_P="${PN}-svn-${SVN}"
	SRC_URI="http://nightlies.mt-daapd.org/${MY_P}.tar.gz"
else
	MY_P="${P/_/-}"
	SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
fi

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

DESCRIPTION="A multi-threaded implementation of Apple's DAAP server"
HOMEPAGE="http://www.mt-daapd.org"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~sh ~sparc ~x86"
IUSE="avahi ffmpeg flac gdbm howl musepack sqlite3 upnp vorbis"

DEPEND="sys-libs/zlib
	media-libs/libid3tag
	!sqlite3? ( =dev-db/sqlite-2* )
	sqlite3? ( =dev-db/sqlite-3* )
	howl? ( !avahi? ( >=net-misc/howl-0.9.2 )
		avahi? ( net-dns/avahi ) )
	vorbis? ( media-libs/libvorbis media-libs/libogg )
	flac? ( media-libs/flac )
	ffmpeg? ( media-video/ffmpeg )
	musepack? ( media-libs/taglib )
	upnp? ( net-libs/libupnp )
	gdbm? ( sys-libs/gdbm )"

pkg_setup() {
	if use howl && use avahi && ! built_with_use net-dns/avahi howl-compat; then
		eerror "You requested avahi support, but this package requires"
		eerror "the howl-compat support enabled in net-dns/avahi to work"
		eerror "with it."
		eerror
		eerror "Please recompile net-dns/avahi with +howl-compat."
		die "Missing howl-compat support in avahi."
	fi
}

src_compile() {
	local myconf=""
	local howlincludes

	append-flags -fno-strict-aliasing

	# howl support?
	if use howl; then
		use avahi && \
			howlincludes="/usr/include/avahi-compat-howl" || \
			howlincludes="/usr/include/howl"

		myconf="${myconf}
			--enable-howl
			--with-howl-libs=/usr/$(get_libdir)
			--with-howl-includes=${howlincludes}"
	fi

	# Broken flags only accept enable.
	if use flac; then
		myconf="${myconf} --enable-flac"
	fi

	if use ffmpeg; then
		myconf="${myconf} --enable-ffmpeg \
			--with-ffmpeg-includes=/usr/include/ffmpeg"
	fi

	if use musepack; then
	        myconf="${myconf} --enable-musepack"
	fi

	if use gdbm; then
			myconf="${myconf} --enable-gdbm"
	fi

	if use upnp; then
			myconf="${myconf} --enable-upnp"
	fi

	econf ${myconf} \
		$(use_enable vorbis oggvorbis) \
		$(use_enable !sqlite3 sqlite) \
		$(use_enable sqlite3)

	emake || die "emake failed."

	cp "${FILESDIR}"/${PN}.init.2 "${WORKDIR}"/initd
	if ! use howl; then
		sed -i -e '/#USEHOWL/d' "${WORKDIR}"/initd
	elif ! use avahi; then
		sed -i -e 's:#USEHOWL ::' "${WORKDIR}"/initd
	else
		sed -i -e 's:#USEHOWL ::; s:mDNSResponder:avahi-daemon:' "${WORKDIR}"/initd
	fi
}

src_install() {
	emake DESTDIR="${D}" install || die "emake install failed."

	insinto /etc
	newins "${FILESDIR}"/mt-daapd.conf.example mt-daapd.conf.example
	doins contrib/mt-daapd.playlist

	newinitd "${WORKDIR}"/initd ${PN}

	keepdir /var/cache/mt-daapd /etc/mt-daapd.d

	dodoc AUTHORS CREDITS ChangeLog NEWS README TODO
}

pkg_postinst() {
	einfo
	elog "You have to configure your mt-daapd.conf following"
	elog "/etc/mt-daapd.conf.example file."
	einfo

	if use howl; then
		use avahi && \
			howlservice="avahi-daemon" || \
			howlservice="mDNSResponder"

		einfo
		elog "Since you want to use howl instead of the internal mdnsd"
		elog "you need to make sure that you have ${howlservice} configured"
		elog "and running to use mt-daapd."
		einfo

		if use avahi; then
			elog "Avahi support is currently experimental, it does not work"
			elog "as intended when using more than one mt-daapd instance."
			elog "If you want to run more than one mt-daapd, just use the"
			elog "internal mdnsd by building with -howl flag."
		fi
	fi

	if use vorbis; then
		einfo
		elog "You need to edit you extensions list in /etc/mt-daapd.conf"
		elog "if you want your mt-daapd to serve ogg files."
		einfo
	fi

	einfo
	elog "If you want to start more than one ${PN} service, symlink"
	elog "/etc/init.d/${PN} to /etc/init.d/${PN}.<name>, and it will"
	elog "load the data from /etc/${PN}.d/<name>.conf."
	elog "Make sure that you have different cache directories for them."
	einfo
}