Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 281366 | Differences between
and this patch

Collapse All | Expand All

(-)net-im/ejabberd/ejabberd-2.0.5-r3.ebuild (-83 / +42 lines)
Lines 1-151 Link Here
1
# Copyright 1999-2009 Gentoo Foundation
1
# Copyright 1999-2009 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
2
# Distributed under the terms of the GNU General Public License v2
3
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.0.5-r3.ebuild,v 1.4 2009/11/25 11:20:01 maekke Exp $
3
# $Header: $
4
EAPI=2
4
5
5
inherit eutils multilib
6
inherit eutils pam
6
7
7
JABBER_ETC="/etc/jabber"
8
JABBER_ETC="/etc/jabber"
8
JABBER_RUN="/var/run/jabber"
9
JABBER_RUN="/var/run/jabber"
9
JABBER_SPOOL="/var/spool/jabber"
10
JABBER_SPOOL="/var/spool/jabber"
10
JABBER_LOG="/var/log/jabber"
11
JABBER_LOG="/var/log/jabber"
11
12
12
MY_PV=${PV}
13
MY_P=${PN}-${MY_PV}
14
15
DESCRIPTION="The Erlang Jabber Daemon"
13
DESCRIPTION="The Erlang Jabber Daemon"
16
HOMEPAGE="http://www.ejabberd.im/"
14
HOMEPAGE="http://www.ejabberd.im/"
17
SRC_URI="http://www.process-one.net/downloads/ejabberd/${PV}/${MY_P}.tar.gz"
15
SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz"
16
18
LICENSE="GPL-2"
17
LICENSE="GPL-2"
19
SLOT="0"
18
SLOT="0"
20
KEYWORDS="amd64 ~arm ~ia64 ~ppc x86"
19
KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86"
21
IUSE="debug mod_irc mod_muc mod_pubsub ldap odbc pam ssl web zlib"
20
21
IUSE="captcha debug +mod_irc +mod_muc +mod_proxy65 +mod_pubsub ldap odbc pam +ssl +web zlib"
22
22
23
DEPEND=">=net-im/jabber-base-0.01
23
DEPEND=">=net-im/jabber-base-0.01
24
	>=dev-libs/expat-1.95
24
	>=dev-libs/expat-1.95
25
	>=dev-lang/erlang-11.2.5
25
	>=dev-lang/erlang-12.2.5[ssl?]
26
	odbc? ( dev-db/unixODBC )
26
	captcha? ( media-gfx/imagemagick[truetype,png] )
27
	ldap? ( =net-nds/openldap-2* )
27
	ldap? ( =net-nds/openldap-2* )
28
	odbc? ( dev-db/unixODBC )
28
	ssl? ( >=dev-libs/openssl-0.9.8e )
29
	ssl? ( >=dev-libs/openssl-0.9.8e )
29
	zlib? ( sys-libs/zlib )"
30
	zlib? ( sys-libs/zlib )"
30
RDEPEND="${DEPEND}"
31
RDEPEND="${DEPEND}"
31
32
32
PROVIDE="virtual/jabber-server"
33
PROVIDE="virtual/jabber-server"
33
34
34
S=${WORKDIR}/${MY_P}/src
35
src_configure() {
35
36
	cd "${S}/src"
36
src_unpack() {
37
	unpack ${A}
38
	cd "${S}"
39
40
	# make ejabberd working with erlang-13
41
	rm ram_file_io_server.erl
42
	epatch "${FILESDIR}/ejabberd-2.0.5-erlang-13.patch"
43
44
	# get rid of the prefix
45
	sed -i -e "s/\\@prefix\\@//" "${S}/Makefile.in" \
46
		|| die "cannot sed Makefile.in"
47
	# we want ejabberdctl in /usr/sbin not /sbin !!!
48
	sed -i -e "s/\\/sbin/\\/usr\\/sbin/" "${S}/Makefile.in" \
49
		|| die "cannot sed Makefile.in"
50
}
51
37
52
src_compile() {
38
	econf \
53
		econf --prefix=/ \
39
		--docdir="/usr/share/doc/${P}" \
54
		$(use_enable mod_irc) \
40
		$(use_enable mod_irc) \
55
		$(use_enable ldap eldap) \
56
		$(use_enable mod_muc) \
41
		$(use_enable mod_muc) \
42
		$(use_enable mod_proxy65) \
57
		$(use_enable mod_pubsub) \
43
		$(use_enable mod_pubsub) \
44
		$(use_enable ldap eldap) \
45
		$(use_enable odbc) \
58
		$(use_enable ssl tls) \
46
		$(use_enable ssl tls) \
59
		$(use_enable web) \
47
		$(use_enable web) \
60
		$(use_enable odbc) \
61
		$(use_enable zlib ejabberd_zlib) \
48
		$(use_enable zlib ejabberd_zlib) \
62
		$(use_enable pam) \
49
		$(use_enable pam) \
63
		|| die "econf failed"
50
		--enable-user=jabber
51
}
64
52
65
	if useq debug; then
53
src_compile() {
66
		emake ejabberd_debug=true || die "compiling ejabberd core failed"
54
	cd "${S}/src"
67
	else
55
68
		emake || die "compiling ejabberd core failed"
56
	emake \
69
	fi
57
		$(use debug && echo debug=true ejabberd_debug=true)
70
}
58
}
71
59
72
src_install() {
60
src_install() {
73
	make \
61
	cd "${S}/src"
62
	emake \
74
		DESTDIR="${D}" \
63
		DESTDIR="${D}" \
75
		EJABBERDDIR="${D}/usr/$(get_libdir)/erlang/lib/${P}" \
76
		ETCDIR="${D}${JABBER_ETC}" \
64
		ETCDIR="${D}${JABBER_ETC}" \
77
		LOGDIR="${D}${JABBER_LOG}" \
65
		LOGDIR="${D}${JABBER_LOG}" \
66
		SPOOLDIR="${D}${JABBER_SPOOL}" \
78
		install || die "install failed"
67
		install || die "install failed"
79
68
80
	# remove the default ejabberdctl as we use our own
69
	insinto "${JABBER_ETC}"
81
	rm "${D}/sbin/ejabberdctl"
82
83
	insinto ${JABBER_ETC}
84
85
	fowners -R jabber:jabber ${JABBER_ETC}
86
	fowners -R jabber:jabber ${JABBER_LOG}
87
	fowners -R jabber:jabber /usr/$(get_libdir)/erlang/lib/${P}
88
70
89
	if useq ssl; then
71
	if use ssl; then
90
		doins "${FILESDIR}/ssl.cnf"
72
		doins "${FILESDIR}/ssl.cnf"
91
		newins "${FILESDIR}/self-cert-v2.sh" self-cert.sh
73
		newins "${FILESDIR}/self-cert-v2.sh" self-cert.sh
92
	fi
74
	fi
93
75
94
	# Pam helper module permissions
76
	# Pam helper module permissions: http://www.process-one.net/docs/ejabberd/guide_en.html
95
	# http://www.process-one.net/docs/ejabberd/guide_en.html
77
	if use pam; then
96
	if useq pam; then
78
		pamd_mimic_system xmpp auth account || die "Cannot create pam.d file"
97
		fowners root:jabber /usr/$(get_libdir)/erlang/lib/${P}/priv/bin/epam
79
		fperms 4750 "/usr/$(get_libdir)/${PN}/priv/bin/epam" || die "Cannot adjust epam permissions"
98
		fperms 4750 /usr/$(get_libdir)/erlang/lib/${P}/priv/bin/epam
99
	fi
80
	fi
100
81
101
	cd "${WORKDIR}/${MY_P}/doc"
82
	newinitd "${FILESDIR}/${PN}-2.initd" "${PN}" || die "Cannot install init.d script"
102
	dodoc "release_notes_${MY_PV}.txt"
83
	newconfd "${FILESDIR}/${PN}-2.confd" "${PN}" || die "Cannot install conf.d file"
103
	dohtml *.{html,png}
104
105
	# set up /usr/sbin/ejabberd wrapper
106
	cat "${FILESDIR}/ejabberd-wrapper-2.template" \
107
		| sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \
108
		> "${T}/ejabberd"
109
	exeinto /usr/sbin
110
	doexe "${T}/ejabberd" || die
111
112
	# set up /usr/sbin/ejabberdctl wrapper
113
	cat "${FILESDIR}/ejabberdctl-wrapper-3.template" \
114
		| sed -e "s:\@libdir\@:$(get_libdir):g" -e "s:\@version\@:${PV}:g" \
115
		> "${T}/ejabberdctl"
116
	doexe "${T}/ejabberdctl"
117
118
	dodir /var/lib/ejabberd
119
	newinitd "${FILESDIR}/${PN}-2.initd" ${PN} || die
120
	newconfd "${FILESDIR}/${PN}-2.confd" ${PN} || die
121
84
122
	# fix up the ssl cert paths in /etc/jabber/ejabberd.cfg to use the cert
85
	# fix up the ssl cert paths in /etc/jabber/ejabberd.cfg to use the cert
123
	# that would be generated by /etc/jabber/self-cert.sh
86
	# that would be generated by /etc/jabber/self-cert.sh
124
	sed -i -e "s/\/path\/to\/ssl.pem/\/etc\/jabber\/ssl.pem/g" \
87
	sed -i -e "s/\/path\/to\/ssl.pem/\/etc\/jabber\/ssl.pem/g" \
125
		"${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg"
88
		"${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg"
126
127
	# if mod_irc is not enabled, comment out the mod_irc in the default
128
	# ejabberd.cfg
129
	if ! use mod_irc; then
130
		sed -i -e "s/{mod_irc,/%{mod_irc,/" \
131
			"${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg"
132
	fi
133
}
89
}
134
90
135
pkg_postinst() {
91
pkg_postinst() {
136
	elog "For configuration instructions, please see"
92
	elog "For configuration instructions, please see"
137
	elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
93
	elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
138
	elog "http://www.process-one.net/en/projects/ejabberd/docs/guide_en.html"
94
	elog "http://www.process-one.net/en/projects/ejabberd/docs/guide_en.html"
139
	if useq ssl ; then
95
96
	if use ssl ; then
140
		if [ ! -e /etc/jabber/ssl.pem ]; then
97
		if [ ! -e /etc/jabber/ssl.pem ]; then
141
			elog "Please edit ${JABBER_ETC}/ssl.cnf and run ${JABBER_ETC}/self-cert.sh"
98
			elog "Please edit ${JABBER_ETC}/ssl.cnf and run ${JABBER_ETC}/self-cert.sh"
142
			elog "Ejabberd may refuse to start without an SSL certificate"
99
			elog "Ejabberd may refuse to start without an SSL certificate"
143
		fi
100
		fi
144
	fi
101
	fi
145
	if ! useq web ; then
102
103
	if ! use web ; then
146
		elog "The web USE flag is off, this has disabled the web admin interface."
104
		elog "The web USE flag is off, this has disabled the web admin interface."
147
	fi
105
	fi
148
	elog "===================================================================="
106
107
	elog '===================================================================='
149
	elog 'Quick Start Guide:'
108
	elog 'Quick Start Guide:'
150
	elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 89'
109
	elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 89'
151
	elog '   {hosts, ["localhost", "thehost"]}.'
110
	elog '   {hosts, ["localhost", "thehost"]}.'

Return to bug 281366