| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=4 |
| |
| inherit autotools eutils multilib versionator user |
| |
| DESCRIPTION="Anope IRC Services" |
| HOMEPAGE="http://www.anope.org" |
| SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="~amd64 ~x86" |
| IUSE="mysql" |
| |
| DEPEND="mysql? ( virtual/mysql )" |
| RDEPEND="${DEPEND}" |
| |
| pkg_pretend() { |
| local replaced_version |
| for replaced_version in ${REPLACING_VERSIONS} ; do |
| if ! version_is_at_least 1.8.7 ${replaced_version} && [[ -f ${ROOT}opt/anope/data/nick.db ]]; then |
| eerror "It looks like you have an older version of Anope installed." |
| eerror "To upgrade, shut down Anope and copy your databases to" |
| eerror "${ROOT}var/lib/anope and your configuration to ${ROOT}etc/anope" |
| eerror "You can do this by:" |
| eerror "# mkdir -p ${ROOT}var/lib/anope ${ROOT}etc/anope" |
| eerror "# chown anope:anope ${ROOT}var/lib/anope" |
| eerror "# mv ${ROOT}opt/anope/data/*.db ${ROOT}var/lib/anope" |
| eerror "# mv ${ROOT}opt/anope/data/services.conf ${ROOT}etc/anope" |
| die "Please move your anope database files from /opt/anope/data" |
| fi |
| done |
| } |
| |
| pkg_setup() { |
| enewgroup anope |
| enewuser anope -1 -1 -1 anope |
| } |
| |
| src_prepare() { |
| epatch "${FILESDIR}/pid-patch.diff" |
| epatch "${FILESDIR}/${P}-ldflags-fix.patch" |
| epatch "${FILESDIR}/${P}-libdir-gentoo.patch" |
| epatch "${FILESDIR}"/${P}-mariadb.patch # bug 381119 |
| eautoconf |
| } |
| |
| src_configure() { |
| local myconf |
| if ! use mysql; then |
| myconf="${myconf} --without-mysql" |
| fi |
| |
| econf \ |
| ${myconf} \ |
| --with-bindir=/usr/bin/ \ |
| --with-datadir=/var/lib/anope \ |
| --with-libdir=/usr/$(get_libdir)/anope/ \ |
| --with-rungroup=anope \ |
| --with-permissions=077 |
| |
| sed -i -e "/^build:/s:$: language:g" "${S}"/Makefile || die "sed failed" |
| } |
| |
| src_install() { |
| keepdir /var/log/anope /var/lib/anope/backups |
| fowners anope:anope /var/{lib,log}/anope /var/lib/anope/backups |
| |
| local baselibdir |
| baselibdir="${D}/usr/$(get_libdir)/anope" |
| |
| dodir /usr/$(get_libdir)/anope/{lang,modules} |
| emake DATDEST="${baselibdir}" \ |
| BINDEST="${D}/usr/bin" \ |
| MODULE_PATH="${baselibdir}/modules" \ |
| install |
| |
| newinitd "${FILESDIR}/anope-init.d" anope |
| newconfd "${FILESDIR}/anope-conf.d" anope |
| |
| dodoc Changes Changes.conf Changes.lang Changes.mysql docs/* data/example.conf |
| use mysql && dodoc data/tables.sql |
| |
| insinto /etc/anope |
| newins data/example.conf services.conf |
| } |
| |
| pkg_preinst() { |
| if has_version net-irc/anope ; then |
| local directory |
| directory="${ROOT}"var/lib/anope/pre-update |
| elog "Making a backup of your databases to ${directory}" |
| if [ ! -d "${directory}" ]; then |
| mkdir -p "${directory}" || die "failed to create backup directory" |
| chown anope:anope "${directory}"/../ || die "failed to chown data directory" |
| fi |
| # don't die otherwise merge will fail if there are no existing databases |
| cp "${ROOT}"/var/lib/anope/*.db "${directory}" |
| fi |
| } |
| |
| pkg_postinst() { |
| echo |
| ewarn "Anope won't run out of the box, you still have to configure it to match your IRCD's configuration." |
| ewarn "Edit /etc/anope/services.conf to configure Anope." |
| |
| if use mysql; then |
| echo |
| ewarn "!!! ATTENTION !!!" |
| ewarn "Be sure to read Changes.mysql to update your MySQL" |
| ewarn "tables or anope will break after restart" |
| ewarn "!!! ATTENTION !!!" |
| echo |
| einfo "The mysql script for updating the tables is located in the" |
| einfo "/usr/share/doc/${PF} directory" |
| fi |
| } |