diff options
author | José María Alonso <nimiux@gentoo.org> | 2012-03-23 10:27:13 +0000 |
---|---|---|
committer | José María Alonso <nimiux@gentoo.org> | 2012-03-23 10:27:13 +0000 |
commit | b2bb8801972ed621d0a92024bbf8c6ec0cc81ed1 (patch) | |
tree | 32c4a18db803db35a81fdcbddbdb9a35240068e8 /net-irc | |
parent | Removing gtk usage from configure. Fix bug #409111 (diff) | |
download | gentoo-2-b2bb8801972ed621d0a92024bbf8c6ec0cc81ed1.tar.gz gentoo-2-b2bb8801972ed621d0a92024bbf8c6ec0cc81ed1.tar.bz2 gentoo-2-b2bb8801972ed621d0a92024bbf8c6ec0cc81ed1.zip |
Workaround for CVE-2012-1836 wrt bug #409159. Fix launcher script wrt
bug #379911. Added missing use flags to metadata.
(Portage version: 2.1.10.44/cvs/Linux i686)
Diffstat (limited to 'net-irc')
-rw-r--r-- | net-irc/inspircd/ChangeLog | 11 | ||||
-rw-r--r-- | net-irc/inspircd/files/inspircd-2.0.5-r1-fix-make-config.patch | 112 | ||||
-rw-r--r-- | net-irc/inspircd/files/inspircd-2.0.5-r1-init | 38 | ||||
-rw-r--r-- | net-irc/inspircd/inspircd-2.0.5-r1.ebuild | 110 | ||||
-rw-r--r-- | net-irc/inspircd/metadata.xml | 9 |
5 files changed, 278 insertions, 2 deletions
diff --git a/net-irc/inspircd/ChangeLog b/net-irc/inspircd/ChangeLog index d9a965b68753..e8af2d24e8b8 100644 --- a/net-irc/inspircd/ChangeLog +++ b/net-irc/inspircd/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for net-irc/inspircd # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-irc/inspircd/ChangeLog,v 1.42 2012/03/22 15:45:15 nimiux Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-irc/inspircd/ChangeLog,v 1.43 2012/03/23 10:27:13 nimiux Exp $ + +*inspircd-2.0.5-r1 (23 Mar 2012) + + 23 Mar 2012; Chema Alonso <nimiux@gentoo.org> +inspircd-2.0.5-r1.ebuild, + +files/inspircd-2.0.5-r1-fix-make-config.patch, + +files/inspircd-2.0.5-r1-init, metadata.xml: + Revision bump to include workaround for CVE-2012-1836 wrt bug #409159 and + fix inspircd launcher script wrt bug #379911. Missing use flags included + in metadata. 22 Mar 2012; Chema Alonso <nimiux@gentoo.org> metadata.xml: Removed Dane Smith (c1pher) as maintainer (Proxy) diff --git a/net-irc/inspircd/files/inspircd-2.0.5-r1-fix-make-config.patch b/net-irc/inspircd/files/inspircd-2.0.5-r1-fix-make-config.patch new file mode 100644 index 000000000000..b87b3f72e320 --- /dev/null +++ b/net-irc/inspircd/files/inspircd-2.0.5-r1-fix-make-config.patch @@ -0,0 +1,112 @@ +diff -Nur a/docs/inspircd.conf.example b/docs/inspircd.conf.example +--- a/docs/inspircd.conf.example 2011-06-24 03:21:01.000000000 +0200 ++++ b/docs/inspircd.conf.example 2012-03-22 18:22:49.139949317 +0100 +@@ -401,11 +401,11 @@ + + # This file has all the information about oper classes, types and o:lines. + # You *MUST* edit it. +-<include file="conf/opers.conf.example"> ++<include file="/etc/inspircd/opers.conf.example"> + + # This file has all the information about server links and ulined servers. + # You *MUST* edit it if you intend to link servers. +-<include file="conf/links.conf.example"> ++<include file="/etc/inspircd/links.conf.example"> + + #-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-# + # # +@@ -415,7 +415,8 @@ + # motd - displayed on connect and when a user executes /MOTD + # rules - displayed when the user executes /RULES + # Modules can also define their own files +-<files motd="conf/inspircd.motd.example" rules="conf/inspircd.rules.example"> ++<files motd="/etc/inspircd/inspircd.motd.example" ++ rules="/etc/inspircd/inspircd.rules.example"> + + # Example of an executable file include. Note this will be read on rehash, + # not when the command is run. +@@ -461,7 +462,7 @@ + # the default of 'inspircd.pid' is used. # + # # + +-#<pid file="/path/to/inspircd.pid"> ++<pid file="/var/run/inspircd/inspircd.pid"> + + #-#-#-#-#-#-#-#-#-#-#-#-#- BANLIST LIMITS #-#-#-#-#-#-#-#-#-#-#-#-#-#-# + # # +@@ -629,7 +630,8 @@ + + # nouserdns: If enabled, no DNS lookups will be performed on + # connecting users. This can save a lot of resources on very busy servers. +- nouserdns="no"> ++ # Set nouserdns to yes as a workaround for CVE-2012-1836. ++ nouserdns="yes"> + + #-#-#-#-#-#-#-#-#-#-#-# SECURITY CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-# + # # +@@ -907,7 +909,7 @@ + # provide almost all the features of InspIRCd. :) # + # # + # The default does nothing -- we include it for simplicity for you. # +-<include file="conf/modules.conf.example"> ++<include file="/etc/inspircd/modules.conf.example"> + + # Here are some pre-built modules.conf files that closely match the + # default configurations of some popular IRCd's. You still may want to +@@ -919,10 +921,10 @@ + # recommended that you make your own modules file based on modules.conf.example. + + # Settings similar to UnrealIRCd defaults. +-#<include file="conf/modules/modules.conf.unreal"> ++#<include file="/etc/inspircd/modules/modules.conf.unreal"> + + # Settings similar to Charybdis IRCd defaults. +-#<include file="conf/modules/modules.conf.charybdis"> ++#<include file="/etc/inspircd/modules/modules.conf.charybdis"> + + + ######################################################################### +diff -Nur a/make/template/main.mk b/make/template/main.mk +--- a/make/template/main.mk 2011-06-24 03:21:01.000000000 +0200 ++++ b/make/template/main.mk 2012-03-22 18:20:21.659950155 +0100 +@@ -54,22 +54,22 @@ + CXXFLAGS += -D_ALL_SOURCE -I/usr/local/include + @ENDIF + +-@IFNDEF D +- D=0 ++@IFNDEF DEBUGLEVEL ++ DEBUGLEVEL=0 + @ENDIF + + DBGOK=0 +-@IFEQ $(D) 0 ++@IFEQ $(DEBUGLEVEL) 0 + CXXFLAGS += -O2 -g1 + HEADER = std-header + DBGOK=1 + @ENDIF +-@IFEQ $(D) 1 ++@IFEQ $(DEBUGLEVEL) 1 + CXXFLAGS += -O0 -g3 -Werror + HEADER = debug-header + DBGOK=1 + @ENDIF +-@IFEQ $(D) 2 ++@IFEQ $(DEBUGLEVEL) 2 + CXXFLAGS += -O2 -g3 + HEADER = debug-header + DBGOK=1 +@@ -111,10 +111,10 @@ + @GNU_ONLY TARGET = modules/$(M:.so=).so + @ENDIF + +-@IFDEF T ++@IFDEF TGT + HEADER = + FOOTER = target +- TARGET = $(T) ++ TARGET = $(TGT) + @ENDIF + + @IFEQ $(DBGOK) 0 diff --git a/net-irc/inspircd/files/inspircd-2.0.5-r1-init b/net-irc/inspircd/files/inspircd-2.0.5-r1-init new file mode 100644 index 000000000000..70956d657151 --- /dev/null +++ b/net-irc/inspircd/files/inspircd-2.0.5-r1-init @@ -0,0 +1,38 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-irc/inspircd/files/inspircd-2.0.5-r1-init,v 1.1 2012/03/23 10:27:13 nimiux Exp $ + +extra_commands="rehash version" + +depend() { + need net + provide ircd +} + +start() { + ebegin "Starting InspIRCd" + start-stop-daemon --start --quiet --user inspircd \ + --exec /usr/bin/inspircd -- \ + --config /etc/inspircd/inspircd.conf \ + --logfile /var/log/inspircd/ircd.log &> /dev/null + eend $? +} + +stop() { + ebegin "Stopping InspIRCd" + start-stop-daemon --stop --quiet --exec /usr/bin/inspircd + eend $? +} + +rehash() { + ebegin "Rehashing InspIRCd" + /usr/lib/inspircd/inspircd.launcher/inspircd rehash &> /dev/null + eend $? +} + +version() { + ebegin "Retrieve InspIRCd version" + /usr/lib/inspircd/inspircd.launcher/inspircd version + eend $? +} diff --git a/net-irc/inspircd/inspircd-2.0.5-r1.ebuild b/net-irc/inspircd/inspircd-2.0.5-r1.ebuild new file mode 100644 index 000000000000..6c6cb5039dd6 --- /dev/null +++ b/net-irc/inspircd/inspircd-2.0.5-r1.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-irc/inspircd/inspircd-2.0.5-r1.ebuild,v 1.1 2012/03/23 10:27:13 nimiux Exp $ + +EAPI=4 + +inherit eutils flag-o-matic multilib + +DESCRIPTION="Inspire IRCd - The Stable, High-Performance Modular IRCd" +HOMEPAGE="http://www.inspircd.org/" +SRC_URI="http://www.inspircd.org/downloads/InspIRCd-${PV}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gnutls ipv6 ldap mysql postgres sqlite ssl" + +RDEPEND=" + dev-lang/perl + ssl? ( dev-libs/openssl ) + gnutls? ( net-libs/gnutls ) + ldap? ( net-nds/openldap ) + mysql? ( virtual/mysql ) + postgres? ( dev-db/postgresql-server ) + sqlite? ( >=dev-db/sqlite-3.0 )" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${PN}" + +pkg_setup() { + enewgroup ${PN} + enewuser ${PN} -1 -1 -1 ${PN} +} + +src_prepare() { + # Patch the inspircd launcher with the inspircd user + sed -i -e "s/@UID@/${PN}/" "${S}/make/template/${PN}" || die + + epatch "${FILESDIR}"/${PF}-fix-make-config.patch +} + +src_configure() { + local extras="" + local dipv6="--disable-ipv6" + + use openssl && extras="${extras}m_ssl_openssl.cpp," + use gnutls && extras="${extras}m_ssl_gnutls.cpp," + use ldap && extras="${extras}m_ldapauth.cpp," + use mysql && extras="${extras}m_mysql.cpp," + use postgres && extras="${extras}m_pgsql.cpp," + use sqlite && extras="${extras}m_sqlite3.cpp," + + use ipv6 && dipv6="" + + # allow inspircd to be built by root + touch .force-root-ok || die + + if [ -n "${extras}" ]; then + ./configure --disable-interactive \ + --enable-extras=${extras} || die + fi + + ./configure \ + --disable-interactive \ + --uid=${INSPIRCDUSER} \ + $(use_enable openssl) \ + $(use_enable gnutls) \ + --prefix="/usr/$(get_libdir)/inspircd" \ + --config-dir="/etc/inspircd" \ + --binary-dir="/usr/bin" \ + --module-dir="/usr/$(get_libdir)/inspircd/modules" \ + ${dipv6} || die +} + +src_compile() { + append-cxxflags -Iinclude -fPIC + emake LDFLAGS="${LDFLAGS}" CXXFLAGS="${CXXFLAGS}" +} + +src_install() { + emake INSTUID=inspircd \ + BINPATH="${D}/usr/bin" \ + BASE="${D}/usr/$(get_libdir)/inspircd/inspircd.launcher" \ + MODPATH="${D}/usr/$(get_libdir)/inspircd/modules/" \ + CONPATH="${D}/etc/inspircd" install + + insinto /etc/inspircd/modules + doins docs/modules/* + + insinto /etc/inspircd/aliases + doins docs/aliases/* + + insinto /usr/include/inspircd/ + doins include/* + + diropts -oinspircd -ginspircd + dodir "/var/run/inspircd" + + newinitd "${FILESDIR}/${PF}-init" "${PN}" + keepdir "/var/log/inspircd/" +} + +pkg_postinst() { + elog "Before starting inspircd the first time you should create" + elog "the /etc/inspircd/inspircd.conf file." + elog "You can find example configuration files under /etc/inspircd." + elog "Read the inspircd.conf.example file carefully before starting " + elog "the service." + elog +} diff --git a/net-irc/inspircd/metadata.xml b/net-irc/inspircd/metadata.xml index 2aceaf989cee..771c8e57f2a1 100644 --- a/net-irc/inspircd/metadata.xml +++ b/net-irc/inspircd/metadata.xml @@ -12,6 +12,13 @@ looking for a new proxy maintainer</description> </maintainer> <use> - <flag name='openssl'>Build <pkg>dev-libs/openssl</pkg> module</flag> + <flag name='gnutls'>Enable TLS support</flag> + <flag name='ipv6'>Enable support for IP version 6</flag> + <flag name='ldap'>Enable LDAP support</flag> + <flag name='mysql'>Enable MySQL database backend</flag> + <flag name='openssl'>Enable SSL support</flag> + <flag name='postgres'>Enable PostgreSQL database backend</flag> + <flag name='sqlite'>Enable Sqlite database backend</flag> + <flag name='ssl'>Enable SSL support</flag> </use> </pkgmetadata> |