summaryrefslogtreecommitdiff
path: root/chat/inspircd12
diff options
context:
space:
mode:
authoradrianp <adrianp>2009-01-04 00:52:27 +0000
committeradrianp <adrianp>2009-01-04 00:52:27 +0000
commit8df87614baadac6a623c3ef591991dd8d43ff107 (patch)
tree6791b368db521d66f7761f3e66b2959b990db058 /chat/inspircd12
parente713fb4b8d75792d48a1a0011ec1507daf58689e (diff)
downloadpkgsrc-8df87614baadac6a623c3ef591991dd8d43ff107.tar.gz
Add latest BETA for InspIRCd 1.2
Convert m_shun and m_cban to use new XLine framework Allow for custom prefixes to be used in /notice #chan e.g. & /WATCH away notification Exceptions for m_denychans. userrec::HasPermission -> map of maps, for (even faster) access For all the details see: http://wiki.inspircd.org/Development/Roadmap/1.2
Diffstat (limited to 'chat/inspircd12')
-rw-r--r--chat/inspircd12/DESCR6
-rw-r--r--chat/inspircd12/Makefile135
-rw-r--r--chat/inspircd12/PLIST219
-rw-r--r--chat/inspircd12/PLIST.common_end3
-rw-r--r--chat/inspircd12/distinfo9
-rw-r--r--chat/inspircd12/files/inspircd.sh48
-rw-r--r--chat/inspircd12/files/openssl.pc11
-rw-r--r--chat/inspircd12/options.mk145
-rw-r--r--chat/inspircd12/patches/patch-aa13
-rw-r--r--chat/inspircd12/patches/patch-ab12
-rw-r--r--chat/inspircd12/patches/patch-ac15
-rw-r--r--chat/inspircd12/patches/patch-ad13
12 files changed, 629 insertions, 0 deletions
diff --git a/chat/inspircd12/DESCR b/chat/inspircd12/DESCR
new file mode 100644
index 00000000000..cc8c38e44d1
--- /dev/null
+++ b/chat/inspircd12/DESCR
@@ -0,0 +1,6 @@
+InspIRCd is a modular C++ IRC Daemon for Linux, BSD and Windows systems
+created to provide a stable, modern, lightweight ircd (irc server) from
+scratch and provide a vast number of features in a modularised form using
+an advanced module API. By keeping the functionality of the main core to a
+minimum we hope to increase the stability and speed of our project and make
+it customisable to the needs of many users.
diff --git a/chat/inspircd12/Makefile b/chat/inspircd12/Makefile
new file mode 100644
index 00000000000..647761d2bc8
--- /dev/null
+++ b/chat/inspircd12/Makefile
@@ -0,0 +1,135 @@
+# $NetBSD: Makefile,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+#
+
+DISTNAME= InspIRCd-1.2.0b4
+PKGNAME= ${DISTNAME:S/InspIRCd/inspircd/}
+CATEGORIES= chat
+MASTER_SITES= http://www.inspircd.org/downloads/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= adrianp@NetBSD.org
+HOMEPAGE= http://www.inspircd.org/
+COMMENT= Modular C++ IRC Daemon
+
+CONFLICTS+= inspircd<1.2.0
+
+USE_TOOLS+= perl:build gmake pkg-config
+REPLACE_PERL+= .inspircd.inc configure make/run-cc.pl
+
+WRKSRC= ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
+HAS_CONFIGURE= yes
+CONFIG_SHELL= ${PERL5}
+USE_LANGUAGES= c++
+PLIST_SRC= ${WRKDIR}/.PLIST_SRC
+PLIST_SRC+= ${PKGDIR}/PLIST.common_end
+RCD_SCRIPTS+= inspircd
+PKG_SYSCONFSUBDIR= inspircd
+
+FILES_SUBST+= INSPIRCD_USER=${INSPIRCD_USER:Q}
+FILES_SUBST+= INSPIRCD_GROUP=${INSPIRCD_GROUP:Q}
+
+.include "../../mk/bsd.prefs.mk"
+
+EGDIR= ${PREFIX}/share/examples/inspircd
+EXTRA= ${WRKSRC}/src/modules/extra
+MODULES?= # undef
+HEADERS?= # undef
+CONF_FILES_PERMS= ${EGDIR}/inspircd.conf.example \
+ ${PKG_SYSCONFDIR}/inspircd.conf \
+ ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
+CONF_FILES_PERMS+= ${EGDIR}/modules.conf.example \
+ ${PKG_SYSCONFDIR}/modules.conf \
+ ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
+
+PKG_USERS_VARS= INSPIRCD_USER
+PKG_GROUPS_VARS= INSPIRCD_GROUP
+
+PKG_GROUPS= ${INSPIRCD_GROUP:Q}
+PKG_USERS= ${INSPIRCD_USER:Q}:${INSPIRCD_GROUP:Q}
+
+PKG_GECOS.${INSPIRCD_USER}= InspIRCd user
+
+CONFIGURE_ARGS+= --disable-interactive
+CONFIGURE_ARGS+= --prefix=${PREFIX}/share/inspircd
+CONFIGURE_ARGS+= --config-dir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --binary-dir=${PREFIX}/bin
+CONFIGURE_ARGS+= --library-dir=${PREFIX}/lib/inspircd
+CONFIGURE_ARGS+= --module-dir=${PREFIX}/share/inspircd/modules
+
+.include "options.mk"
+
+SUBST_CLASSES+= conf
+SUBST_STAGE.conf= pre-configure
+SUBST_FILES.conf= conf/inspircd.conf.example
+SUBST_SED.conf+= -e "s|/path/to/inspircd.pid|${VARBASE}/run/inspircd/inspircd.pid|g"
+SUBST_MESSAGE.conf= Fixing configuration files.
+
+SUBST_CLASSES+= install
+SUBST_STAGE.install= post-configure
+SUBST_FILES.install= Makefile
+SUBST_SED.install+= -e "s|-cp conf|\#-cp conf|g"
+SUBST_MESSAGE.install= Fixing installation files.
+
+BUILD_DEFS+= INSPIRCD_USER INSPIRCD_GROUP VARBASE
+
+MAKE_DIRS+= ${VARBASE}/log
+OWN_DIRS_PERMS+= ${VARBASE}/run/inspircd \
+ ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 750
+
+INSPIRCD_USER?= inspircd
+INSPIRCD_GROUP?= inspircd
+
+CHECK_BUILTIN.openssl:=yes
+.include "../../security/openssl/builtin.mk"
+CHECK_BUILTIN.openssl:=no
+
+post-extract:
+ ${MV} ${WRKDIR}/inspircd ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
+.if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
+ ${CP} ${FILESDIR}/openssl.pc ${WRKSRC}/openssl.pc
+SUBST_FILES.conf+= ${WRKSRC}/openssl.pc
+SUBST_SED.conf+= -e "s|@SSLBASE@|${BUILDLINK_PREFIX.openssl}|g"
+SUBST_SED.conf+= -e "s|@SSLVER@|${BUILTIN_VERSION.openssl}|g"
+.endif
+
+pre-configure:
+.if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
+ ${MKDIR} ${BUILDLINK_DIR}/lib/pkgconfig
+ ${CP} ${WRKSRC}/openssl.pc ${BUILDLINK_DIR}/lib/pkgconfig
+.endif
+.if defined(MODULES)
+. for f in ${MODULES}
+ ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
+. endfor
+.endif
+.if defined(HEADERS)
+. for f in ${HEADERS}
+ ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
+. endfor
+.endif
+
+post-build:
+ ${CP} ${PKGDIR}/PLIST ${WRKDIR}/.PLIST_SRC
+.if defined(MODULES)
+. for f in ${MODULES}
+ ${ECHO} share/inspircd/modules/${f} | \
+ ${SED} -e "s|\\.cpp|\\.so|g" >> ${WRKDIR}/.PLIST_SRC
+. endfor
+.endif
+
+post-install:
+ ${INSTALL_DATA_DIR} ${EGDIR}
+ ${INSTALL_DATA_DIR} ${EGDIR}/sql
+ ${INSTALL_DATA_DIR} ${EGDIR}/aliases
+
+ ${INSTALL_DATA} ${WRKSRC}/conf/inspircd.* ${EGDIR}
+ ${INSTALL_DATA} ${WRKSRC}/conf/modules.* ${EGDIR}
+ ${INSTALL_DATA} ${WRKSRC}/conf/aliases/*.example ${EGDIR}/aliases
+ ${INSTALL_DATA} ${WRKSRC}/conf/inspircd.conf.example ${EGDIR}
+ ${INSTALL_DATA} ${WRKSRC}/extras/m_*.sql ${EGDIR}/sql
+
+ ${TOUCH} ${VARBASE}/log/inspircd.log
+ ${CHOWN} ${INSPIRCD_USER}:${INSPIRCD_GROUP} ${VARBASE}/log/inspircd.log
+ ${CHMOD} 0640 ${VARBASE}/log/inspircd.log
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/chat/inspircd12/PLIST b/chat/inspircd12/PLIST
new file mode 100644
index 00000000000..d85bcce039c
--- /dev/null
+++ b/chat/inspircd12/PLIST
@@ -0,0 +1,219 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+bin/inspircd
+lib/inspircd/cmd_admin.so
+lib/inspircd/cmd_away.so
+lib/inspircd/cmd_clearcache.so
+lib/inspircd/cmd_commands.so
+lib/inspircd/cmd_connect.so
+lib/inspircd/cmd_die.so
+lib/inspircd/cmd_eline.so
+lib/inspircd/cmd_gline.so
+lib/inspircd/cmd_info.so
+lib/inspircd/cmd_invite.so
+lib/inspircd/cmd_ison.so
+lib/inspircd/cmd_join.so
+lib/inspircd/cmd_kick.so
+lib/inspircd/cmd_kill.so
+lib/inspircd/cmd_kline.so
+lib/inspircd/cmd_links.so
+lib/inspircd/cmd_list.so
+lib/inspircd/cmd_loadmodule.so
+lib/inspircd/cmd_lusers.so
+lib/inspircd/cmd_map.so
+lib/inspircd/cmd_mode.so
+lib/inspircd/cmd_modules.so
+lib/inspircd/cmd_motd.so
+lib/inspircd/cmd_names.so
+lib/inspircd/cmd_nick.so
+lib/inspircd/cmd_notice.so
+lib/inspircd/cmd_oper.so
+lib/inspircd/cmd_part.so
+lib/inspircd/cmd_pass.so
+lib/inspircd/cmd_ping.so
+lib/inspircd/cmd_pong.so
+lib/inspircd/cmd_privmsg.so
+lib/inspircd/cmd_qline.so
+lib/inspircd/cmd_quit.so
+lib/inspircd/cmd_rehash.so
+lib/inspircd/cmd_reloadmodule.so
+lib/inspircd/cmd_restart.so
+lib/inspircd/cmd_rules.so
+lib/inspircd/cmd_server.so
+lib/inspircd/cmd_squit.so
+lib/inspircd/cmd_stats.so
+lib/inspircd/cmd_time.so
+lib/inspircd/cmd_topic.so
+lib/inspircd/cmd_trace.so
+lib/inspircd/cmd_unloadmodule.so
+lib/inspircd/cmd_user.so
+lib/inspircd/cmd_userhost.so
+lib/inspircd/cmd_version.so
+lib/inspircd/cmd_wallops.so
+lib/inspircd/cmd_who.so
+lib/inspircd/cmd_whois.so
+lib/inspircd/cmd_whowas.so
+lib/inspircd/cmd_zline.so
+share/examples/inspircd/aliases/anope.conf.example
+share/examples/inspircd/aliases/atheme.conf.example
+share/examples/inspircd/aliases/ircservices.conf.example
+share/examples/inspircd/aliases/neostats.conf.example
+share/examples/inspircd/inspircd.censor.example
+share/examples/inspircd/inspircd.conf.example
+share/examples/inspircd/inspircd.filter.example
+share/examples/inspircd/inspircd.helpop-full.example
+share/examples/inspircd/inspircd.helpop.example
+share/examples/inspircd/inspircd.motd.example
+share/examples/inspircd/inspircd.quotes.example
+share/examples/inspircd/inspircd.rules.example
+share/examples/inspircd/modules.conf.example
+share/examples/inspircd/sql/m_sqllog.mssql.sql
+share/examples/inspircd/sql/m_sqllog.mysql.sql
+share/examples/inspircd/sql/m_sqllog.postgresql.sql
+share/examples/inspircd/sql/m_sqllog.sqlite3.sql
+share/examples/inspircd/sql/m_sqloper.mssql.sql
+share/examples/inspircd/sql/m_sqloper.mysql.sql
+share/examples/inspircd/sql/m_sqloper.postgresql.sql
+share/examples/inspircd/sql/m_sqloper.sqlite3.sql
+share/examples/rc.d/inspircd
+share/inspircd/inspircd
+share/inspircd/modules/m_alias.so
+share/inspircd/modules/m_alltime.so
+share/inspircd/modules/m_antibear.so
+share/inspircd/modules/m_antibottler.so
+share/inspircd/modules/m_auditorium.so
+share/inspircd/modules/m_banexception.so
+share/inspircd/modules/m_banredirect.so
+share/inspircd/modules/m_blockamsg.so
+share/inspircd/modules/m_blockcaps.so
+share/inspircd/modules/m_blockcolor.so
+share/inspircd/modules/m_botmode.so
+share/inspircd/modules/m_cban.so
+share/inspircd/modules/m_censor.so
+share/inspircd/modules/m_cgiirc.so
+share/inspircd/modules/m_chancreate.so
+share/inspircd/modules/m_chanfilter.so
+share/inspircd/modules/m_chanprotect.so
+share/inspircd/modules/m_check.so
+share/inspircd/modules/m_chghost.so
+share/inspircd/modules/m_chgident.so
+share/inspircd/modules/m_chgname.so
+share/inspircd/modules/m_cloaking.so
+share/inspircd/modules/m_clones.so
+share/inspircd/modules/m_close.so
+share/inspircd/modules/m_commonchans.so
+share/inspircd/modules/m_conn_join.so
+share/inspircd/modules/m_conn_umodes.so
+share/inspircd/modules/m_conn_waitpong.so
+share/inspircd/modules/m_connflood.so
+share/inspircd/modules/m_customtitle.so
+share/inspircd/modules/m_cycle.so
+share/inspircd/modules/m_dccallow.so
+share/inspircd/modules/m_deaf.so
+share/inspircd/modules/m_denychans.so
+share/inspircd/modules/m_devoice.so
+share/inspircd/modules/m_dnsbl.so
+share/inspircd/modules/m_filter.so
+share/inspircd/modules/m_foobar.so
+share/inspircd/modules/m_globalload.so
+share/inspircd/modules/m_globops.so
+share/inspircd/modules/m_helpop.so
+share/inspircd/modules/m_hidechans.so
+share/inspircd/modules/m_hideoper.so
+share/inspircd/modules/m_hostchange.so
+share/inspircd/modules/m_httpd.so
+share/inspircd/modules/m_httpd_stats.so
+share/inspircd/modules/m_ident.so
+share/inspircd/modules/m_invisible.so
+share/inspircd/modules/m_inviteexception.so
+share/inspircd/modules/m_joinflood.so
+share/inspircd/modules/m_jumpserver.so
+share/inspircd/modules/m_kicknorejoin.so
+share/inspircd/modules/m_knock.so
+share/inspircd/modules/m_lockserv.so
+share/inspircd/modules/m_md5.so
+share/inspircd/modules/m_messageflood.so
+share/inspircd/modules/m_namesx.so
+share/inspircd/modules/m_nicklock.so
+share/inspircd/modules/m_nickflood.so
+share/inspircd/modules/m_noctcp.so
+share/inspircd/modules/m_nokicks.so
+share/inspircd/modules/m_nonicks.so
+share/inspircd/modules/m_nonotice.so
+share/inspircd/modules/m_operchans.so
+share/inspircd/modules/m_operjoin.so
+share/inspircd/modules/m_operlevels.so
+share/inspircd/modules/m_operlog.so
+share/inspircd/modules/m_opermodes.so
+share/inspircd/modules/m_opermotd.so
+share/inspircd/modules/m_override.so
+share/inspircd/modules/m_randquote.so
+share/inspircd/modules/m_redirect.so
+share/inspircd/modules/m_regonlycreate.so
+share/inspircd/modules/m_remove.so
+share/inspircd/modules/m_restrictchans.so
+share/inspircd/modules/m_restrictmsg.so
+share/inspircd/modules/m_safelist.so
+share/inspircd/modules/m_sajoin.so
+share/inspircd/modules/m_samode.so
+share/inspircd/modules/m_sanick.so
+share/inspircd/modules/m_sapart.so
+share/inspircd/modules/m_saquit.so
+share/inspircd/modules/m_securelist.so
+share/inspircd/modules/m_seenicks.so
+share/inspircd/modules/m_services_account.so
+share/inspircd/modules/m_sethost.so
+share/inspircd/modules/m_setident.so
+share/inspircd/modules/m_setidle.so
+share/inspircd/modules/m_setname.so
+share/inspircd/modules/m_sha256.so
+share/inspircd/modules/m_showwhois.so
+share/inspircd/modules/m_silence.so
+share/inspircd/modules/m_spanningtree.so
+share/inspircd/modules/m_spy.so
+share/inspircd/modules/m_ssl_dummy.so
+share/inspircd/modules/m_sslmodes.so
+share/inspircd/modules/m_stripcolor.so
+share/inspircd/modules/m_svshold.so
+share/inspircd/modules/m_swhois.so
+share/inspircd/modules/m_taxonomy.so
+share/inspircd/modules/m_testcommand.so
+share/inspircd/modules/m_timedbans.so
+share/inspircd/modules/m_tline.so
+share/inspircd/modules/m_uhnames.so
+share/inspircd/modules/m_uninvite.so
+share/inspircd/modules/m_userip.so
+share/inspircd/modules/m_vhost.so
+share/inspircd/modules/m_watch.so
+share/inspircd/modules/m_abbreviation.so
+share/inspircd/modules/m_allowinvite.so
+share/inspircd/modules/m_callerid.so
+share/inspircd/modules/m_cap.so
+share/inspircd/modules/m_chanlog.so
+share/inspircd/modules/m_channelban.so
+share/inspircd/modules/m_connectban.so
+share/inspircd/modules/m_delayjoin.so
+share/inspircd/modules/m_gecosban.so
+share/inspircd/modules/m_httpd_acl.so
+share/inspircd/modules/m_httpd_config.so
+share/inspircd/modules/m_maphide.so
+share/inspircd/modules/m_muteban.so
+share/inspircd/modules/m_nopartmsg.so
+share/inspircd/modules/m_operflood.so
+share/inspircd/modules/m_operinvex.so
+share/inspircd/modules/m_password_hash.so
+share/inspircd/modules/m_permchannels.so
+share/inspircd/modules/m_regex_glob.so
+share/inspircd/modules/m_ripemd160.so
+share/inspircd/modules/m_rpc_json.so
+share/inspircd/modules/m_rpctest.so
+share/inspircd/modules/m_rline.so
+share/inspircd/modules/m_sasl.so
+share/inspircd/modules/m_satopic.so
+share/inspircd/modules/m_serverban.so
+share/inspircd/modules/m_servprotect.so
+share/inspircd/modules/m_shun.so
+share/inspircd/modules/m_xline_db.so
+@dirrm lib/inspircd
+@dirrm share/examples/inspircd/aliases
+@dirrm share/examples/inspircd/sql
+@dirrm share/examples/inspircd
diff --git a/chat/inspircd12/PLIST.common_end b/chat/inspircd12/PLIST.common_end
new file mode 100644
index 00000000000..2f463bd4d35
--- /dev/null
+++ b/chat/inspircd12/PLIST.common_end
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST.common_end,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+@dirrm share/inspircd/modules
+@dirrm share/inspircd
diff --git a/chat/inspircd12/distinfo b/chat/inspircd12/distinfo
new file mode 100644
index 00000000000..92799c259aa
--- /dev/null
+++ b/chat/inspircd12/distinfo
@@ -0,0 +1,9 @@
+$NetBSD: distinfo,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+SHA1 (InspIRCd-1.2.0b4.tar.bz2) = 98dbfb4a7111041f1eb0a8b29c3cd0de0fa365b8
+RMD160 (InspIRCd-1.2.0b4.tar.bz2) = 314abf17a3963e47f79fa45361a1ed338d7b66c4
+Size (InspIRCd-1.2.0b4.tar.bz2) = 611465 bytes
+SHA1 (patch-aa) = 47a3df3c35104103bf0a3add100441d9ca8d4c54
+SHA1 (patch-ab) = ddd675b13e89ca514b594c61cee00a3b9f1510e8
+SHA1 (patch-ac) = b9282332189ad19e6c48a5e2e6efa7bffbd7ccb0
+SHA1 (patch-ad) = e17969eb0b06f6e77742927f3fde6e2de1f0c34e
diff --git a/chat/inspircd12/files/inspircd.sh b/chat/inspircd12/files/inspircd.sh
new file mode 100644
index 00000000000..ac1a8c297d5
--- /dev/null
+++ b/chat/inspircd12/files/inspircd.sh
@@ -0,0 +1,48 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: inspircd.sh,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+#
+# PROVIDE: inspircd
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+
+if [ -f /etc/rc.subr ]
+then
+ . /etc/rc.subr
+fi
+
+name="inspircd"
+rcvar=${name}
+command="@PREFIX@/bin/inspircd"
+required_files="@PKG_SYSCONFDIR@/inspircd.conf"
+pidfile="@VARBASE@/run/inspircd/inspircd.pid"
+inspircd_user="@INSPIRCD_USER@"
+inspircd_group="@INSPIRCD_GROUP@"
+command_args="--logfile @VARBASE@/log/inspircd.log"
+extra_commands="rehash"
+rehash_cmd="inspircd_rehash"
+start_precmd="inspircd_precmd"
+
+inspircd_precmd()
+{
+ if [ ! -d @VARBASE@/run/inspircd ]; then
+ @MKDIR@ @VARBASE@/run/inspircd
+ @CHMOD@ 0750 @VARBASE@/run/inspircd
+ @CHOWN@ @INSPIRCD_USER@:@INSPIRCD_GROUP@ @VARBASE@/run/inspircd
+ fi
+
+ if [ ! -f @VARBASE@/log/inspircd.log ]; then
+ @TOUCH@ @VARBASE@/log/inspircd.log
+ @CHMOD@ 0640 @VARBASE@/log/inspircd.log
+ @CHOWN@ @INSPIRCD_USER@:@INSPIRCD_GROUP@ @VARBASE@/log/inspircd.log
+ fi
+}
+
+inspircd_rehash()
+{
+ kill -HUP `@CAT@ $pidfile`
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/chat/inspircd12/files/openssl.pc b/chat/inspircd12/files/openssl.pc
new file mode 100644
index 00000000000..3ee6bfd395c
--- /dev/null
+++ b/chat/inspircd12/files/openssl.pc
@@ -0,0 +1,11 @@
+prefix=@SSLBASE@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: OpenSSL
+Description: Secure Sockets Layer and cryptography libraries and tools
+Version: @SSLVER@
+Requires:
+Libs: -L${libdir} -lssl -lcrypto -Wl,-R@SSLBASE@/lib
+Cflags: -I${includedir}
diff --git a/chat/inspircd12/options.mk b/chat/inspircd12/options.mk
new file mode 100644
index 00000000000..ced1247052c
--- /dev/null
+++ b/chat/inspircd12/options.mk
@@ -0,0 +1,145 @@
+# $NetBSD: options.mk,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.inspircd
+
+PKG_SUPPORTED_OPTIONS= inet6 ssl gnutls kqueue epoll inspircd-remoteinet6
+PKG_SUPPORTED_OPTIONS+= pcre inspircd-ziplinks inspircd-sqlauth
+PKG_SUPPORTED_OPTIONS+= inspircd-sqllog inspircd-sqloper
+PKG_SUGGESTED_OPTIONS= inet6
+
+.include "../../mk/bsd.options.mk"
+
+###
+### Dependency notes:
+###
+### sql = mysql, pgsql, sqlite3
+### sqlutils = m_sqlutils.cpp m_sqlutils.h
+###
+### sqloper needs sql sqlutils
+### sqllog needs sql
+### sqlauth needs sql sqlutils
+###
+
+###
+### Enable kqueue support
+###
+.if !empty(PKG_OPTIONS:Mkqueue)
+CONFIGURE_ARGS+= --enable-kqueue
+.else
+CONFIGURE_ARGS+= --disable-kqueue
+.endif
+
+###
+### Enable epoll support
+###
+.if !empty(PKG_OPTIONS:Mepoll)
+CONFIGURE_ARGS+= --enable-epoll
+.else
+CONFIGURE_ARGS+= --disable-epoll
+.endif
+
+###
+### Enable IPv6 support
+###
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.endif
+
+###
+### Enable remote IPv6 support
+###
+.if !empty(PKG_OPTIONS:Mremoteinet6)
+PKG_SUGGESTED_OPTIONS+= inet6
+CONFIGURE_ARGS+= --enable-remote-ipv6
+.else
+CONFIGURE_ARGS+= --disable-remote-ipv6
+.endif
+
+###
+### Enable OpenSSL support
+###
+.if !empty(PKG_OPTIONS:Mssl)
+. include "../../security/openssl/buildlink3.mk"
+BUILDLINK_API_DEPENDS.openssl+= openssl>=0.9.7
+CONFIGURE_ARGS+= --enable-openssl
+MODULES+= m_ssl_openssl.cpp
+.endif
+
+###
+### Enable GNU TLS support
+### Apparently this gives better performance when compared to OpenSSL
+###
+.if !empty(PKG_OPTIONS:Mgnutls)
+. include "../../security/gnutls/buildlink3.mk"
+CONFIGURE_ARGS+= --enable-gnutls
+MODULES+= m_ssl_gnutls.cpp
+.endif
+
+###
+### Compile in support for ziplinks. This compresses data sent from
+### server <-> server with zlib.
+###
+.if !empty(PKG_OPTIONS:Minspircd-ziplinks)
+. include "../../devel/zlib/buildlink3.mk"
+MODULES+= m_ziplink.cpp
+.endif
+
+###
+### Perl regex support
+###
+.if !empty(PKG_OPTIONS:Mpcre)
+. include "../../devel/pcre/buildlink3.mk"
+MODULES+= m_filter_pcre.cpp
+.endif
+
+###
+### Use SQL for storing user details
+###
+.if !empty(PKG_OPTIONS:Minspircd-sqlauth)
+INSPIRCD_STORAGE_DRIVER?= mysql
+MODULES+= m_sqlauth.cpp m_sqlutils.cpp
+HEADERS+= m_sqlutils.h
+.endif
+
+###
+### Use SQL for logging
+###
+.if !empty(PKG_OPTIONS:Minspircd-sqllog)
+INSPIRCD_STORAGE_DRIVER?= mysql
+MODULES+= m_sqllog.cpp
+.endif
+
+###
+### Use SQL for storing oper details
+###
+.if !empty(PKG_OPTIONS:Minspircd-sqloper)
+INSPIRCD_STORAGE_DRIVER?= mysql
+MODULES+= m_sqloper.cpp m_sqlutils.cpp
+HEADERS+= m_sqlutils.h
+.endif
+
+###
+### Strorage driver magic
+###
+### This will only be activated if INSPIRCD_STORAGE_DRIVER is set either
+### explictly by the user or by selecting one of the options that are
+### dependent on an SQL storage driver.
+###
+.if defined(INSPIRCD_STORAGE_DRIVER)
+BUILD_DEFS+= INSPIRCD_STORAGE_DRIVER
+. if !empty(INSPIRCD_STORAGE_DRIVER:Mmysql)
+. include "../../mk/mysql.buildlink3.mk"
+MODULES+= m_mysql.cpp
+HEADERS+= m_sqlv2.h
+. elif !empty(INSPIRCD_STORAGE_DRIVER:Mpgsql)
+. include "../../mk/pgsql.buildlink3.mk"
+MODULES+= m_pgsql.cpp
+HEADERS+= m_sqlv2.h
+. elif !empty(INSPIRCD_STORAGE_DRIVER:Msqlite3)
+. include "../../databases/sqlite3/buildlink3.mk"
+MODULES+= m_sqlite3.cpp
+HEADERS+= m_sqlv2.h
+. else
+PKG_FAIL_REASON+= "${PKGBASE}: unknown storage driver \\'${INSPIRCD_STORAGE_DRIVER}\\'"
+. endif
+.endif
diff --git a/chat/inspircd12/patches/patch-aa b/chat/inspircd12/patches/patch-aa
new file mode 100644
index 00000000000..f4e50668bd8
--- /dev/null
+++ b/chat/inspircd12/patches/patch-aa
@@ -0,0 +1,13 @@
+$NetBSD: patch-aa,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+--- src/inspircd.cpp.orig 2008-04-13 19:17:35.000000000 +0100
++++ src/inspircd.cpp
+@@ -383,7 +383,7 @@ InspIRCd::InspIRCd(int argc, char** argv
+ { 0, 0, 0, 0 }
+ };
+
+- while ((c = getopt_long_only(argc, argv, ":f:", longopts, NULL)) != -1)
++ while ((c = getopt_long(argc, argv, ":f:", longopts, NULL)) != -1)
+ {
+ switch (c)
+ {
diff --git a/chat/inspircd12/patches/patch-ab b/chat/inspircd12/patches/patch-ab
new file mode 100644
index 00000000000..dc5c1ad3679
--- /dev/null
+++ b/chat/inspircd12/patches/patch-ab
@@ -0,0 +1,12 @@
+$NetBSD: patch-ab,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+--- .Makefile.inc.orig 2008-02-24 21:12:51.000000000 +0000
++++ .Makefile.inc
+@@ -69,7 +69,6 @@ ircd:
+ install: all@EXTRA_DIR@
+ @-install -d -m $(INSTMODE) $(BASE)
+ @-install -d -m $(INSTMODE) $(LIBPATH)
+- @-install -d -m $(INSTMODE) $(BINPATH)
+ @-install -d -m $(INSTMODE) $(CONPATH)
+ @-install -d -m $(INSTMODE) $(MODPATH)
+ -install -m $(INSTMODE) @STARTSCRIPT@ $(@DESTINATION@) 2>/dev/null
diff --git a/chat/inspircd12/patches/patch-ac b/chat/inspircd12/patches/patch-ac
new file mode 100644
index 00000000000..ebd2f4be010
--- /dev/null
+++ b/chat/inspircd12/patches/patch-ac
@@ -0,0 +1,15 @@
+$NetBSD: patch-ac,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+--- configure.orig 2008-08-26 14:47:49.000000000 +0100
++++ configure
+@@ -319,8 +319,8 @@ $config{EXTRA_DIR} = ""; # Is emp
+ if ($config{OSNAME} =~ /darwin/i)
+ {
+ $config{IS_DARWIN} = "YES";
+- $config{STARTSCRIPT} = "org.inspircd.plist"; # start script for OSX.
+- $config{DESTINATION} = "LAUNCHDPATH"; # Is OSX target.
++# $config{STARTSCRIPT} = "org.inspircd.plist"; # start script for OSX.
++# $config{DESTINATION} = "LAUNCHDPATH"; # Is OSX target.
+ $config{EXTRA_DIR} = " launchd_dir"; # Is OSX specific path.
+ }
+ $config{CC} = "g++"; # C++ compiler
diff --git a/chat/inspircd12/patches/patch-ad b/chat/inspircd12/patches/patch-ad
new file mode 100644
index 00000000000..3a076e1baf5
--- /dev/null
+++ b/chat/inspircd12/patches/patch-ad
@@ -0,0 +1,13 @@
+$NetBSD: patch-ad,v 1.1.1.1 2009/01/04 00:52:27 adrianp Exp $
+
+--- make/configure.pm.orig 2008-09-08 00:40:00.000000000 +0100
++++ make/configure.pm
+@@ -22,7 +22,7 @@ use POSIX;
+ use make::utilities;
+ our @EXPORT = qw(promptnumeric dumphash is_dir getmodules getrevision getcompilerflags getlinkerflags getdependencies getmodversion nopedantic resolve_directory yesno showhelp promptstring_s);
+
+-my $no_svn = 0;
++my $no_svn = 1;
+
+ sub yesno {
+ my ($flag,$prompt) = @_;