# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 inherit db-use eutils flag-o-matic pam DESCRIPTION="Open Source Jabber Server" HOMEPAGE="http://jabberd2.org" SRC_URI="https://github.com/downloads/${PN}/${PN}/jabberd-${PV}.tar.xz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~x86-fbsd" IUSE="berkdb debug memdebug mysql ldap pam postgres sqlite ssl zlib" DEPEND="dev-libs/expat net-libs/udns >=net-dns/libidn-0.3 virtual/gsasl berkdb? ( >=sys-libs/db-4.1.25 ) mysql? ( virtual/mysql ) ldap? ( >=net-nds/openldap-2.1.0 ) pam? ( virtual/pam ) postgres? ( dev-db/postgresql-base ) ssl? ( >=dev-libs/openssl-0.9.6b ) sqlite? ( >=dev-db/sqlite-3 ) zlib? ( sys-libs/zlib )" RDEPEND="${DEPEND} >=net-im/jabber-base-0.01" S="${WORKDIR}/jabberd-${PV}" REQUIRED_USE="memdebug? ( debug )" DOCS=( AUTHORS README UPGRADE ) src_configure() { # https://bugs.gentoo.org/show_bug.cgi?id=207655#c3 replace-flags -O[3s] -O2 use berkdb && myconf="${myconf} --with-extra-include-path=$(db_includedir)" # --enable-pool-debug is currently broken econf \ --sysconfdir=/etc/jabber \ --enable-fs --enable-pipe --enable-anon \ ${myconf} \ $(use debug && echo '--enable-debug') \ $(use memdebug && echo '--enable-nad-debug') \ $(use_enable berkdb db) \ $(use_enable ldap) \ $(use_enable mysql) \ $(use_enable pam) \ $(use_enable postgres pgsql) \ $(use_enable sqlite) \ $(use_enable ssl) \ $(use_with zlib) } src_prepare() { # Fix some default directory locations pushd "etc" &>/dev/null || die sed -i \ -e 's,@localstatedir@/@package@/pid/,/var/run/@package@/,g' \ -e 's,@localstatedir@/@package@/run/pbx,/var/run/@package@/pbx,g' \ -e 's,@localstatedir@/@package@/log/,/var/log/@package@/,g' \ -e 's,@localstatedir@/lib/jabberd2/fs,@localstatedir@/@package@/fs,g' \ -e 's,@localstatedir@,/var/spool,g' \ -e 's,@package@,jabber,g' \ {sm,router,c2s,s2s}.xml.dist.in || die "sed failed" # -e 's,/var/lib/jabberd/log/,/var/log/jabber/,g' \ # -e 's,/var/lib/jabberd/db,/var/spool/jabber,g' \ # If the package wasn't merged with sqlite then default to use berkdb use sqlite || sed -i \ -e 's,<\(module\|driver\)>sqlite<\/\1>,<\1>db,g' \ {c2s,sm}.xml.dist.in || die "sed failed" popd } src_install() { default prune_libtool_files --modules keepdir /var/spool/jabber/{fs,db} fowners jabber:jabber /usr/bin/{jabberd,router,sm,c2s,s2s} /var/spool/jabber/{fs,db} fperms 770 /var/spool/jabber/{fs,db} fperms 750 /usr/bin/{jabberd,router,sm,c2s,s2s} newinitd "${FILESDIR}/${PN}-2.2.17.init" jabberd newpamd "${FILESDIR}/${PN}-2.2.8.pamd" jabberd docinto tools dodoc tools/db-setup{.mysql,.pgsql,.sqlite} dodoc tools/{migrate-jd14dir-2-sqlite.pl,pipe-auth.pl} } pkg_postinst() { if use pam; then echo ewarn 'Jabberd-2 PAM authentication requires your unix usernames to' ewarn 'be in the form of "contactname@jabberdomain". This behavior' ewarn 'is likely to change in future versions of jabberd-2. It may' ewarn 'be advisable to avoid PAM authentication for the time being.' echo fi if use sqlite || use mysql || use postgres; then echo einfo 'You will need to setup or update your database using the' einfo "scripts in /usr/share/doc/$PN-$PV/tools/" einfo 'e.g. bzcat db-setup.sqlite.bz2 | sqlite3 /var/spool/jabber/db/sqlite.db' echo fi }