diff options
Diffstat (limited to 'net-irc')
-rw-r--r-- | net-irc/anope/Manifest | 1 | ||||
-rw-r--r-- | net-irc/anope/anope-2.0.11.ebuild | 150 |
2 files changed, 151 insertions, 0 deletions
diff --git a/net-irc/anope/Manifest b/net-irc/anope/Manifest index 53252edc6751..5e83254d4c54 100644 --- a/net-irc/anope/Manifest +++ b/net-irc/anope/Manifest @@ -1 +1,2 @@ DIST anope-2.0.10.tar.gz 1809378 BLAKE2B d10323ace767aff19194f7cff353aecbced6122ef72d379d050c8dab3c7013adf6b3e649ffd95edc03bc8ca4873f60ad84991ef0f5c9c454b27ec0eda29edc6d SHA512 2a0e4f14a275a6b986fd224449dddd66584de92509770311262076bd659ba0bbd6e2726fc7a22a6edef57ade5268756ac0c56e6f220fb953ed83e72017d1c67b +DIST anope-2.0.11.tar.gz 1812305 BLAKE2B cb1579f5483df1207482458d63d5293375310f8a54ed528b749f8355f122a1a71a0c17b9ef82477bd429f0c672746f5d5c28d51e12d8695c8c1c8368fd651307 SHA512 120588a815600abb93b77d3e9cb18527a61e955e9dbc947e4e62c97bac871325863f519d20535882f3eff136743454c08af62fd3cd4825e5a956fd1a4ac4d728 diff --git a/net-irc/anope/anope-2.0.11.ebuild b/net-irc/anope/anope-2.0.11.ebuild new file mode 100644 index 000000000000..d692a1a5536c --- /dev/null +++ b/net-irc/anope/anope-2.0.11.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Anope IRC Services" +HOMEPAGE="https://anope.org/ https://github.com/anope/anope/" +SRC_URI="https://github.com/anope/anope/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="gnutls ldap mysql pcre sql sqlite ssl tre" +REQUIRED_USE="sql? ( || ( mysql sqlite ) )" + +DEPEND=" + acct-group/anope + acct-user/anope + mysql? ( dev-db/mysql-connector-c:0= ) + ssl? ( dev-libs/openssl:0= ) + gnutls? ( + net-libs/gnutls:0= + dev-libs/libgcrypt:0= + ) + ldap? ( net-nds/openldap:= ) + pcre? ( dev-libs/libpcre ) + sqlite? ( dev-db/sqlite:3 ) + tre? ( dev-libs/tre ) + virtual/libintl +" +RDEPEND="${DEPEND}" +BDEPEND="sys-devel/gettext" + +PATCHES=( + "${FILESDIR}/${PN}-2.0.6-example.conf-pid-path.patch" + "${FILESDIR}/${PN}-2.0.7-example.conf-user.patch" +) + +src_prepare() { + anope_enable_mod() { + local modulefile=${1} + ln -s "extra/${modulefile}" "modules/" || \ + die "Failed to use ${modulefile}" + } + + # These all require MySQL specifically + if use mysql ; then + anope_enable_mod "m_mysql.cpp" + anope_enable_mod "stats/irc2sql/irc2sql.cpp" + anope_enable_mod "stats/irc2sql/irc2sql.h" + anope_enable_mod "stats/irc2sql/tables.cpp" + anope_enable_mod "stats/irc2sql/utils.cpp" + anope_enable_mod "stats/m_chanstats.cpp" + anope_enable_mod "stats/cs_fantasy_top.cpp" + anope_enable_mod "stats/cs_fantasy_stats.cpp" + anope_enable_mod "m_sql_log.cpp" + anope_enable_mod "m_sql_oper.cpp" + fi + + use sqlite && anope_enable_mod "m_sqlite.cpp" + + # Any SQL implementation + if use sql ; then + anope_enable_mod "m_sql_authentication.cpp" + fi + + if use ldap ; then + anope_enable_mod "m_ldap.cpp" + anope_enable_mod "m_ldap_authentication.cpp" + anope_enable_mod "m_ldap_oper.cpp" + fi + + use gnutls && anope_enable_mod "m_ssl_gnutls.cpp" + use pcre && anope_enable_mod "m_regex_pcre.cpp" + use ssl && anope_enable_mod "m_ssl_openssl.cpp" + use tre && anope_enable_mod "m_regex_tre.cpp" + + # Unconditional modules + anope_enable_mod "m_regex_posix.cpp" + + # Avoid a silly sandbox error - tries to delete /usr/lib/modules + sed -i '/install.*REMOVE_RECURSE.*/d' CMakeLists.txt || die + + # Copy anope.conf for fixup to comply w/ prefix + cp "${FILESDIR}"/anope-conf.d-v2 "${T}" || die + + # Look in the right place for modules + sed -i "s~%LIBDIR%~${EPREFIX}/usr/$(get_libdir)/anope/~" \ + "${T}"/anope-conf.d-v2 || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBIN_DIR="libexec/anope" + -DDB_DIR="../var/lib/anope" + -DDOC_DIR="share/doc/${PF}" + -DLIB_DIR="$(get_libdir)/anope" + -DLOCALE_DIR="share/locale" + -DCONF_DIR="/etc/anope" + -DLOGS_DIR="../var/log/anope/" + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + newinitd "${FILESDIR}"/anope-init.d ${PN} + newconfd "${T}"/anope-conf.d-v2 ${PN} + + dosym ../libexec/anope/services /usr/bin/services + dosym ../libexec/anope/anopesmtp /usr/bin/anopesmtp + + keepdir /var/log/anope /var/lib/anope/backups + fowners anope:anope /var/{lib,log}/anope /var/lib/anope/backups + + dodoc -r docs/* data/example.conf + + insinto /etc/anope + newins data/example.conf services.conf + + fowners anope:anope /var/log/anope + fowners anope:anope /var/lib/anope/backups/ +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # Only tell them about this on a fresh install. + 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." + else + # We're replacing some versions. Find out which. + local ver + for ver in ${REPLACING_VERSIONS} ; do + if ver_test ${ver} -lt 2.0.7 ; then + # In this version, we introduced correct FHS structure + # We need the users to make some changes to their services.conf + ewarn "Please modify your services.conf to include the following directive:" + ewarn "in options{}, please include user=\"anope\" and group=\"anope\"" + ewarn "This is needed because Anope now starts as root and drops down." + ewarn "Reference: https://wiki.anope.org/index.php/2.0/Configuration#Services_Process_Options" + fi + done + fi +} |