summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-apache/mod_security/mod_security-2.5.10-r1.ebuild')
-rw-r--r--www-apache/mod_security/mod_security-2.5.10-r1.ebuild113
1 files changed, 113 insertions, 0 deletions
diff --git a/www-apache/mod_security/mod_security-2.5.10-r1.ebuild b/www-apache/mod_security/mod_security-2.5.10-r1.ebuild
new file mode 100644
index 000000000000..3a8e97dccf09
--- /dev/null
+++ b/www-apache/mod_security/mod_security-2.5.10-r1.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-apache/mod_security/mod_security-2.5.10-r1.ebuild,v 1.1 2009/10/26 10:26:14 flameeyes Exp $
+
+inherit apache-module autotools
+
+MY_P=${P/mod_security-/modsecurity-apache_}
+MY_P=${MY_P/_rc/-rc}
+
+DESCRIPTION="Web application firewall and Intrusion Detection System for Apache."
+HOMEPAGE="http://www.modsecurity.org/"
+SRC_URI="http://www.modsecurity.org/download/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~ppc ~sparc ~x86"
+IUSE="lua perl"
+
+DEPEND="dev-libs/libxml2
+ perl? ( dev-perl/libwww-perl )
+ lua? ( >=dev-lang/lua-5.1 )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+APACHE2_MOD_FILE="apache2/.libs/${PN}2.so"
+APACHE2_MOD_CONF="2.5.10/99_mod_security"
+APACHE2_MOD_DEFINE="SECURITY"
+
+need_apache2
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"/apache2
+
+ epatch "${FILESDIR}"/${P}-broken-autotools.patch
+ epatch "${FILESDIR}"/${P}-as-needed.patch
+
+ eautoreconf
+}
+
+src_compile() {
+ cd apache2
+
+ econf --with-apxs="${APXS}" \
+ --without-curl \
+ $(use_with lua) \
+ || die "econf failed"
+
+ APXS_FLAGS=
+ for flag in ${CFLAGS}; do
+ APXS_FLAGS="${APXS_FLAGS} -Wc,${flag}"
+ done
+
+ # Yes we need to prefix it _twice_
+ for flag in ${LDFLAGS}; do
+ APXS_FLAGS="${APXS_FLAGS} -Wl,${flag}"
+ done
+
+ emake \
+ APXS_CFLAGS="${CFLAGS}" \
+ APXS_LDFLAGS="${LDFLAGS}" \
+ APXS_EXTRA_CFLAGS="${APXS_FLAGS}" \
+ || die "emake failed"
+}
+
+src_test() {
+ cd apache2
+ make test || die
+}
+
+src_install() {
+ apache-module_src_install
+
+ # install rules updater only if perl is enabled (optionally)
+ if use perl; then
+ newsbin tools/rules-updater.pl modsec-rules-updater || die
+ fi
+
+ # install documentation
+ dodoc CHANGES || die
+ newdoc rules/CHANGELOG CHANGES.crs || die
+ newdoc rules/README README.crs || die
+ dohtml -r doc/* || die
+
+ # Prepare the core ruleset
+ cd "${S}"/rules/
+
+ sed -i -e 's:logs/:/var/log/apache2/:g' *.conf || die
+
+ insinto ${APACHE_MODULES_CONFDIR}/mod_security/
+ doins *.conf base_rules/* || die
+
+ insinto ${APACHE_MODULES_CONFDIR}/mod_security/optional_rules
+ doins optional_rules/* || die
+}
+
+pkg_postinst() {
+ elog "Please note that the core rule set distributed with mod_security is quite"
+ elog "draconic. If you're using this on a blog, a forum or another user-submitted"
+ elog "web application where you might talk about standard Unix paths (such as /etc"
+ elog "or /bin), you might want to disable at least rules 950005 and 950907"
+ elog "(command injection) if you're sure it might not be a security risk."
+ elog " "
+ elog "To do that on the most limited case you might want to use something like"
+ elog "the following code (this comes from a Typo weblog instance):"
+ elog " "
+ elog " <Location /comments>"
+ elog " SecRuleRemoveById 950005 950907"
+ elog " </Location>"
+ elog " "
+}