summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChuck Short <zul@gentoo.org>2003-12-17 02:39:22 +0000
committerChuck Short <zul@gentoo.org>2003-12-17 02:39:22 +0000
commit66ab362b63f9585630ac288e63afacc8b9ac0fb8 (patch)
tree24db7c4de3569665f332955210bda2a447a9d2cb /net-irc/ircd-hybrid
parentInitial version, closes bug #10275 (diff)
downloadhistorical-66ab362b63f9585630ac288e63afacc8b9ac0fb8.tar.gz
historical-66ab362b63f9585630ac288e63afacc8b9ac0fb8.tar.bz2
historical-66ab362b63f9585630ac288e63afacc8b9ac0fb8.zip
Initial version, closes bug #10275
Diffstat (limited to 'net-irc/ircd-hybrid')
-rw-r--r--net-irc/ircd-hybrid/Manifest9
-rw-r--r--net-irc/ircd-hybrid/files/conf.d_ircd9
-rw-r--r--net-irc/ircd-hybrid/files/config-ipv4.diff56
-rw-r--r--net-irc/ircd-hybrid/files/config-ipv6.diff56
-rw-r--r--net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.01
-rw-r--r--net-irc/ircd-hybrid/files/init.d_ircd49
-rw-r--r--net-irc/ircd-hybrid/files/ircd-hybrid-7.0.diff78
-rw-r--r--net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild268
-rw-r--r--net-irc/ircd-hybrid/metadata.xml5
9 files changed, 530 insertions, 1 deletions
diff --git a/net-irc/ircd-hybrid/Manifest b/net-irc/ircd-hybrid/Manifest
index 7248f1933267..5f666d802472 100644
--- a/net-irc/ircd-hybrid/Manifest
+++ b/net-irc/ircd-hybrid/Manifest
@@ -1,2 +1,9 @@
-MD5 35d10135d058abfe76566c2ecf654ff0 ircd-hybrid-7.0.ebuild 8246
+MD5 3cdc7103801d603fd28c36ce9e4c4ca1 ircd-hybrid-7.0.ebuild 8199
+MD5 f6c53eb628d6830e0f397a2f235d8f3e ChangeLog 513
+MD5 44c39c6ad372a8e5a5e7ee3311f703a7 metadata.xml 160
+MD5 8f8feafbeb742e46390b85dd10182aeb files/config-ipv4.diff 2819
+MD5 64d0c6f903b43a388beecfe51d8a8905 files/config-ipv6.diff 2819
+MD5 57d177a5eeca8deb8c3609ac3cbc2884 files/ircd-hybrid-7.0.diff 2538
+MD5 41171c736bf66b54043bf68a17ab43ed files/init.d_ircd 1119
MD5 c45ce5f5427c5d0fcbbc5561c79efbfe files/digest-ircd-hybrid-7.0 65
+MD5 bbb27e408e44f7bfb4593123a90c6876 files/conf.d_ircd 376
diff --git a/net-irc/ircd-hybrid/files/conf.d_ircd b/net-irc/ircd-hybrid/files/conf.d_ircd
new file mode 100644
index 000000000000..7d7b9a44c336
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/conf.d_ircd
@@ -0,0 +1,9 @@
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/files/conf.d_ircd,v 1.1 2003/12/17 02:37:45 zul Exp $
+
+# Config file for /etc/init.d/ircd
+
+# See options in ircd(8). Set {IPV4,IPV6}_OPTS="no" if you don't want the
+# respective ircd-{ipv4,ipv6} daemon to be started.
+IPV4_OPTS=""
+IPV6_OPTS=""
diff --git a/net-irc/ircd-hybrid/files/config-ipv4.diff b/net-irc/ircd-hybrid/files/config-ipv4.diff
new file mode 100644
index 000000000000..227b44647b10
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/config-ipv4.diff
@@ -0,0 +1,56 @@
+136,138c136,138
+< #define BINPATH IRCD_PREFIX "/bin/"
+< #define MODPATH IRCD_PREFIX "/modules/"
+< #define AUTOMODPATH IRCD_PREFIX "/modules/autoload/"
+---
+> #define BINPATH "/usr/sbin/"
+> #define MODPATH "/usr/lib/ircd-hybrid-7/ipv4/"
+> #define AUTOMODPATH MODPATH "/autoload/"
+140,141c140,141
+< #define ETCPATH IRCD_PREFIX "/etc"
+< #define LOGPATH IRCD_PREFIX "/logs"
+---
+> #define ETCPATH "/etc/ircd"
+> #define LOGPATH "/var/log/ircd"
+146c146
+< #define SPATH BINPATH "/ircd" /* ircd executable */
+---
+> #define SPATH BINPATH "/ircd-ipv4" /* ircd executable */
+148,157c148,157
+< #define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
+< #define KPATH ETCPATH "/kline.conf" /* kline file */
+< #define DLPATH ETCPATH "/dline.conf" /* dline file */
+< #define GPATH LOGPATH "/gline.log" /* gline logfile */
+< #define RPATH ETCPATH "/ircd.rsa" /* ircd rsa private keyfile */
+< #define MPATH ETCPATH "/ircd.motd" /* MOTD file */
+< #define LPATH LOGPATH "/ircd.log" /* ircd logfile */
+< #define PPATH ETCPATH "/ircd.pid" /* pid file */
+< #define OPATH ETCPATH "/opers.motd" /* oper MOTD file */
+< #define LIPATH ETCPATH "/links.txt" /* cached links file */
+---
+> #define CPATH ETCPATH "/ircd-ipv4.conf" /* ircd.conf file */
+> #define KPATH ETCPATH "/kline-ipv4.conf" /* kline file */
+> #define DLPATH ETCPATH "/dline-ipv4.conf" /* dline file */
+> #define GPATH LOGPATH "/gline-ipv4.log" /* gline logfile */
+> #define RPATH ETCPATH "/ircd-ipv4.rsa" /* ircd rsa private keyfile */
+> #define MPATH ETCPATH "/ircd-ipv4.motd" /* MOTD file */
+> #define LPATH LOGPATH "/ircd-ipv4.log" /* ircd logfile */
+> #define PPATH "/var/run/ircd/ircd-ipv4.pid" /* pid file */
+> #define OPATH ETCPATH "/opers-ipv4.motd" /* oper MOTD file */
+> #define LIPATH ETCPATH "/links-ipv4.txt" /* cached links file */
+214c214
+< #undef USE_SYSLOG
+---
+> #define USE_SYSLOG
+221,225c221,225
+< #undef SYSLOG_KILL /* log all operator kills to syslog */
+< #undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
+< #undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
+< #undef SYSLOG_USERS /* send userlog stuff to syslog */
+< #undef SYSLOG_OPER /* log all users who successfully become an Op */
+---
+> #define SYSLOG_KILL /* log all operator kills to syslog */
+> #define SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
+> #define SYSLOG_CONNECT /* log remote connect messages for other all servs */
+> #define SYSLOG_USERS /* send userlog stuff to syslog */
+> #define SYSLOG_OPER /* log all users who successfully become an Op */
diff --git a/net-irc/ircd-hybrid/files/config-ipv6.diff b/net-irc/ircd-hybrid/files/config-ipv6.diff
new file mode 100644
index 000000000000..7303800a2a6a
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/config-ipv6.diff
@@ -0,0 +1,56 @@
+136,138c136,138
+< #define BINPATH IRCD_PREFIX "/bin/"
+< #define MODPATH IRCD_PREFIX "/modules/"
+< #define AUTOMODPATH IRCD_PREFIX "/modules/autoload/"
+---
+> #define BINPATH "/usr/sbin/"
+> #define MODPATH "/usr/lib/ircd-hybrid-7/ipv6/"
+> #define AUTOMODPATH MODPATH "/autoload/"
+140,141c140,141
+< #define ETCPATH IRCD_PREFIX "/etc"
+< #define LOGPATH IRCD_PREFIX "/logs"
+---
+> #define ETCPATH "/etc/ircd"
+> #define LOGPATH "/var/log/ircd"
+146c146
+< #define SPATH BINPATH "/ircd" /* ircd executable */
+---
+> #define SPATH BINPATH "/ircd-ipv6" /* ircd executable */
+148,157c148,157
+< #define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
+< #define KPATH ETCPATH "/kline.conf" /* kline file */
+< #define DLPATH ETCPATH "/dline.conf" /* dline file */
+< #define GPATH LOGPATH "/gline.log" /* gline logfile */
+< #define RPATH ETCPATH "/ircd.rsa" /* ircd rsa private keyfile */
+< #define MPATH ETCPATH "/ircd.motd" /* MOTD file */
+< #define LPATH LOGPATH "/ircd.log" /* ircd logfile */
+< #define PPATH ETCPATH "/ircd.pid" /* pid file */
+< #define OPATH ETCPATH "/opers.motd" /* oper MOTD file */
+< #define LIPATH ETCPATH "/links.txt" /* cached links file */
+---
+> #define CPATH ETCPATH "/ircd-ipv6.conf" /* ircd.conf file */
+> #define KPATH ETCPATH "/kline-ipv6.conf" /* kline file */
+> #define DLPATH ETCPATH "/dline-ipv6.conf" /* dline file */
+> #define GPATH LOGPATH "/gline-ipv6.log" /* gline logfile */
+> #define RPATH ETCPATH "/ircd-ipv6.rsa" /* ircd rsa private keyfile */
+> #define MPATH ETCPATH "/ircd-ipv6.motd" /* MOTD file */
+> #define LPATH LOGPATH "/ircd-ipv6.log" /* ircd logfile */
+> #define PPATH "/var/run/ircd/ircd-ipv6.pid" /* pid file */
+> #define OPATH ETCPATH "/opers-ipv6.motd" /* oper MOTD file */
+> #define LIPATH ETCPATH "/links-ipv6.txt" /* cached links file */
+214c214
+< #undef USE_SYSLOG
+---
+> #define USE_SYSLOG
+221,225c221,225
+< #undef SYSLOG_KILL /* log all operator kills to syslog */
+< #undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
+< #undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
+< #undef SYSLOG_USERS /* send userlog stuff to syslog */
+< #undef SYSLOG_OPER /* log all users who successfully become an Op */
+---
+> #define SYSLOG_KILL /* log all operator kills to syslog */
+> #define SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
+> #define SYSLOG_CONNECT /* log remote connect messages for other all servs */
+> #define SYSLOG_USERS /* send userlog stuff to syslog */
+> #define SYSLOG_OPER /* log all users who successfully become an Op */
diff --git a/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0 b/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0
new file mode 100644
index 000000000000..6b3db2d0d21d
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0
@@ -0,0 +1 @@
+MD5 bee69c994c70fb29a711614150587cd4 ircd-hybrid-7.0.tgz 1412385
diff --git a/net-irc/ircd-hybrid/files/init.d_ircd b/net-irc/ircd-hybrid/files/init.d_ircd
new file mode 100644
index 000000000000..301a02f89bed
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/init.d_ircd
@@ -0,0 +1,49 @@
+#!/sbin/runscript
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/files/init.d_ircd,v 1.1 2003/12/17 02:37:45 zul Exp $
+
+depend()
+{
+ need net
+}
+
+start()
+{
+ if [ "${IPV4_OPTS}" != "no" ]; then
+ ebegin "Starting IRCd-Hybrid7 IPv4 daemon"
+ start-stop-daemon --start --quiet --background --chuid ircd --exec \
+\
+ /usr/sbin/ircd-ipv4 -- ${IPV4_OPTS}
+
+ eend $?
+ fi
+
+ if [ -x "/usr/sbin/ircd-ipv6" -a "${IPV6_OPTS}" != "no" ]; then
+ ebegin "Starting IRCd-Hybrid7 IPv6 daemon"
+ start-stop-daemon --start --quiet --background --chuid ircd --exec \
+\
+ /usr/sbin/ircd-ipv6 -- ${IPV6_OPTS}
+
+ eend $?
+ fi
+}
+
+stop()
+{
+ local ipv4pid="/var/run/ircd/ircd-ipv4.pid"
+ local ipv6pid="/var/run/ircd/ircd-ipv6.pid"
+
+ if [ -r "${ipv4pid}" ]; then
+ ebegin "Stopping IRCd-Hybrid7 IPv4 daemon"
+ start-stop-daemon --stop --quiet --pidfile="${ipv4pid}"
+ eend $?
+ rm -f "${ipv4pid}"
+ fi
+
+ if [ -r "${ipv6pid}" ]; then
+ ebegin "Stopping IRCd-Hybrid7 IPv6 daemon"
+ start-stop-daemon --stop --quiet --pidfile="${ipv6pid}"
+ eend $?
+ rm -f "${ipv6pid}"
+ fi
+}
diff --git a/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.diff b/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.diff
new file mode 100644
index 000000000000..d3f963027493
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.diff
@@ -0,0 +1,78 @@
+diff -Naur ircd-hybrid-7.0.orig/help/Makefile.in ircd-hybrid-7.0/help/Makefile.in
+--- ircd-hybrid-7.0.orig/help/Makefile.in 2002-02-02 16:01:13.000000000 +0000
++++ ircd-hybrid-7.0/help/Makefile.in 2003-10-10 20:46:34.000000000 +0000
+@@ -80,10 +80,6 @@
+ $(INSTALL_DATA) $$help $(uhelpdir); \
+ fi \
+ done
+- @for link in $(SYMLINKS); do \
+- rm -f $(uhelpdir)/$$link; \
+- ln -s $(ohelpdir)/$$link $(uhelpdir); \
+- done
+
+
+ distclean:
+diff -Naur ircd-hybrid-7.0.orig/include/Makefile.in ircd-hybrid-7.0/include/Makefile.in
+--- ircd-hybrid-7.0.orig/include/Makefile.in 2002-04-29 22:30:24.000000000 +0000
++++ ircd-hybrid-7.0/include/Makefile.in 2003-10-10 20:46:34.000000000 +0000
+@@ -10,6 +10,7 @@
+ exec_prefix= @exec_prefix@
+ bindir= @bindir@
+ sysconfdir= @sysconfdir@
++includedir= @includedir@
+
+ all:
+ build:
+@@ -19,13 +20,12 @@
+
+ install:
+ @echo installing header files...
+- -@if test ! -d $(prefix)/include; then \
+- echo "mkdir $(prefix)/include"; \
+- mkdir $(prefix)/include; \
+- mkdir $(prefix)/include/ircd-hybrid-7; \
++ -@if test ! -d $(includedir); then \
++ echo "mkdir -p $(includedir)"; \
++ mkdir -p $(includedir); \
+ fi
+ @for header in *.h; do \
+- ${INSTALL_DATA} $$header $(prefix)/include/ircd-hybrid-7; \
++ ${INSTALL_DATA} $$header $(includedir); \
+ done
+
+ distclean:
+diff -Naur ircd-hybrid-7.0.orig/src/Makefile.in ircd-hybrid-7.0/src/Makefile.in
+--- ircd-hybrid-7.0.orig/src/Makefile.in 2003-05-29 03:02:15.000000000 +0000
++++ ircd-hybrid-7.0/src/Makefile.in 2003-10-10 20:46:34.000000000 +0000
+@@ -140,10 +140,6 @@
+ echo "mkdir $(sysconfdir)"; \
+ mkdir $(sysconfdir); \
+ fi
+- -@if test ! -d $(localstatedir)/logs; then \
+- echo "mkdir $(localstatedir)/logs"; \
+- mkdir $(localstatedir)/logs; \
+- fi
+
+ install: install-mkdirs build
+ @for i in $(PROGS); do \
+diff -Naur ircd-hybrid-7.0.orig/tools/Makefile.in ircd-hybrid-7.0/tools/Makefile.in
+--- ircd-hybrid-7.0.orig/tools/Makefile.in 2002-07-11 23:40:27.000000000 +0000
++++ ircd-hybrid-7.0/tools/Makefile.in 2003-10-10 20:46:34.000000000 +0000
+@@ -129,10 +129,6 @@
+ echo "mkdir $(sysconfdir)"; \
+ mkdir $(sysconfdir); \
+ fi
+- -@if test ! -d $(localstatedir)/logs; then \
+- echo "mkdir $(localstatedir)/logs"; \
+- mkdir $(localstatedir)/logs; \
+- fi
+
+ install: install-mkdirs build
+ @for i in $(PROGS); do \
+@@ -144,6 +140,4 @@
+ $(INSTALL_BIN) $$i $(bindir); \
+ done; \
+ $(RM) -f $(bindir)/vimotd $(bindir)/viklines; \
+- $(LN) $(bindir)/viconf $(bindir)/vimotd; \
+- $(LN) $(bindir)/viconf $(bindir)/viklines
+
diff --git a/net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild b/net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild
new file mode 100644
index 000000000000..65ad5d04a23f
--- /dev/null
+++ b/net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild
@@ -0,0 +1,268 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild,v 1.1 2003/12/17 02:37:44 zul Exp $
+
+MAX_NICK_LENGTH=16
+MAX_CLIENTS=256
+MAX_TOPIC_LENGTH=512
+SMALL_NETWORK=1 # true
+
+IUSE="debug ipv6 ssl static zlib"
+
+DESCRIPTION="IRCD-Hybrid - High Performance Internet Relay Chat"
+HOMEPAGE="http://ircd-hybrid.com/"
+SRC_URI="mirror://sourceforge/ircd-hybrid/${P}.tgz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+
+DEPEND="virtual/glibc
+ zlib? ( >=sys-libs/zlib-1.1.4-r1 )
+ ssl? ( >=dev-libs/openssl-0.9.6j )
+ >=dev-libs/libelf-0.8.2
+ >=sys-devel/flex-2.5.4a-r5
+ >=sys-devel/bison-1.35
+ >=sys-devel/gettext-0.11.5-r1
+ >=sys-apps/sed-4.0.7"
+RDEPEND=""
+
+pkg_setup()
+{
+ # Create a dedicated user for running ircd. UID/GID combination was based
+ # on some *BSD passwd files.
+ if ! groupmod ircd; then
+ einfo "Creating ircd group (gid=72)."
+ groupadd ircd -g 72 || die "failed to create group: ircd (gid=72)"
+ fi
+ if ! id ircd; then
+ einfo "Creating ircd user (uid=72)."
+ useradd -d /usr/share/ircd-hybrid-7 -g ircd -s /bin/false -u 72 ircd \
+ || die "failed to create user: ircd (uid=72)"
+ fi
+
+ return 0
+}
+
+src_unpack()
+{
+ unpack ${A}
+ cd ${S}
+
+ # Patch Makefile.ins:
+ # * Add includedir variable where to install headers.
+ # * Remove creation of logdirs under prefix. Use /var/log/ircd instead.
+ # * Remove symlinking which won't work in sandbox. Done in src_install().
+ # Sed hardcoded CFLAGS to those in make.conf.
+ patch -p1 < ${FILESDIR}/${PF}.diff || die "patch failed"
+ cp configure configure.dist
+ sed -e "s:IRC_CFLAGS=\"-O2 -g \":IRC_CFLAGS=\"${CFLAGS}\":" \
+ < configure.dist > configure
+
+ # Store unmodified source tree for compiling necessary shared libs and
+ # binaries with ipv6 support.
+ if [ -n "$(use ipv6)" ]; then
+ mkdir ${T}/ipv6
+ cp -r ${S} ${T}/ipv6
+ fi
+}
+
+src_compile()
+{
+ local myconf
+
+ ewarn "Server administrators are encouraged to customize some variables in"
+ ewarn "the ebuild if actually deploying hybrid in an IRC network."
+ ewarn
+ ewarn "Maximum nick length = ${MAX_NICK_LENGTH}"
+ ewarn " topic length = ${MAX_TOPIC_LENGTH}"
+ ewarn " number of clients = ${MAX_CLIENTS}"
+ if [ ${SMALL_NETWORK} ]; then
+ ewarn "Configuring for small networks."
+ myconf="--enable-small-net"
+ fi
+
+ # Wait for admins to see the default variables.
+ sleep 5
+
+ use debug || myconf="${myconf} --disable-assert"
+ use ssl && myconf="${myconf} --enable-openssl"
+ use static && myconf="${myconf} --disable-shared-modules"
+ use zlib && myconf="${myconf} --enable-zlib"
+
+ # Set ipv4 defaults to config.h.
+ patch include/config.h ${FILESDIR}/config-ipv4.diff \
+ || die "ipv4 defaults patch failed"
+
+ # Set prefix to /usr/share/ircd-hybrid-7 to save some patching.
+ ./configure \
+ --prefix=/usr/share/ircd-hybrid-7 \
+ --with-nicklen=${MAX_NICK_LENGTH} \
+ --with-topiclen=${MAX_TOPIC_LENGTH} \
+ --with-maxclients=${MAX_CLIENTS} ${myconf} || die "ipv4 config failed"
+ emake || die "ipv4 make failed"
+
+ # Enable help index.
+ cd help
+ make index || die "make index failed"
+ cd ..
+
+ # Build respond binary for using rsa keys instead of plain text oper
+ # passwords.
+ [[ -n "$(use ssl)" ]] && \
+ gcc ${CFLAGS} -o respond tools/rsa_respond/respond.c -lcrypto
+
+ # Configure and compile with ipv6 support in temp.
+ if [ -n "$(use ipv6)" ]; then
+ einfo "IPv6 support"
+ cd ${T}/ipv6/${P}
+
+ # Set ipv6 defaults to config.h.
+ patch include/config.h ${FILESDIR}/config-ipv6.diff \
+ || die "ipv6 defaults patch failed"
+
+ ./configure \
+ --prefix=/usr/share/ircd-hybrid-7 \
+ --with-nicklen=${MAX_NICK_LENGTH} \
+ --with-topiclen=${MAX_TOPIC_LENGTH} \
+ --with-maxclients=${MAX_CLIENTS} \
+ --enable-ipv6 ${myconf} || die "ipv6 config failed"
+ emake || die "ipv6 make failed"
+ fi
+
+ # Go back.
+ cd ${S}
+}
+
+src_install()
+{
+ # Directories need to exist beforehand or the install will fail.
+ dodir /usr/share/man/man8 \
+ /usr/lib/ircd-hybrid-7 \
+ /usr/include/ircd-hybrid-7 \
+ /var/log/ircd \
+ /var/run/ircd \
+ /etc/init.d \
+ /etc/conf.d
+
+ # Override all install directories according to the patches with sandbox
+ # prefix.
+ make prefix=${D}/usr/share/ircd-hybrid-7/ \
+ bindir=${D}/usr/sbin/ \
+ sysconfdir=${D}/etc/ircd/ \
+ moduledir=${D}/usr/lib/ircd-hybrid-7/ipv4 \
+ automoduledir=${D}/usr/lib/ircd-hybrid-7/ipv4/autoload/ \
+ messagedir=${D}/usr/share/ircd-hybrid-7/messages/ \
+ includedir=${D}/usr/include/ircd-hybrid-7 \
+ mandir=${D}/usr/share/man/man8/ \
+ install || die "ipv4 install failed"
+
+ # Rename the binary according to config-ipv4.diff.
+ mv ${D}/usr/sbin/ircd ${D}/usr/sbin/ircd-ipv4
+
+ # Install the respond binary.
+ if [ -n "$(use ssl)" ]; then
+ exeinto /usr/sbin
+ doexe ${S}/respond
+ fi
+
+ # Do the symlinking.
+ local link
+ local symlinks="topic accept cjoin cmode admin names links away whowas \
+ version kick who invite quit join list nick oper part \
+ time credits motd userhost users whois ison lusers \
+ user help pass error challenge knock ping pong"
+ for link in ${symlinks}; do
+ dosym ../opers/$link /usr/share/ircd-hybrid-7/help/users/$link
+ done
+ dosym viconf /usr/sbin/vimotd
+ dosym viconf /usr/sbin/viklines
+
+ # Install documentation.
+ dodoc BUGS ChangeLog Hybrid-team INSTALL LICENSE README.* RELNOTES TODO
+ docinto doc
+ dodoc doc/*.txt doc/README.cidr_bans doc/Tao-of-IRC.940110 \
+ doc/convertconf-example.conf doc/example.* doc/ircd.motd \
+ doc/simple.conf doc/server-version-info
+ docinto doc/technical
+ dodoc doc/technical/*
+
+ # Fix the config files according to the patches.
+ rm ${D}/etc/ircd/.convertconf-example.conf # No need for 2 copies.
+ local conf
+ for conf in ${D}/etc/ircd/*.conf; do
+ sed -e "s:/usr/local/ircd/modules:/usr/lib/ircd-hybrid-7/ipv4:g" \
+ < ${conf} > ${conf/%.conf/-ipv4.conf}
+ rm ${conf}
+ done
+ mv ${D}/etc/ircd/ircd.motd ${D}/etc/ircd/ircd-ipv4.motd
+
+ # Only the shared libraries and the ircd binary differ from the ipv4
+ # installation. Thus installing those is sufficient to make ipv6 support
+ # work (and different config files, pid files etc. of cource).
+ if [ -n "$(use ipv6)" ]; then
+ cd ${T}/ipv6/${P}/modules
+ make prefix=${D}/usr/share/ircd-hybrid-7/ \
+ moduledir=${D}/usr/lib/ircd-hybrid-7/ipv6 \
+ automoduledir=${D}/usr/lib/ircd-hybrid-7/ipv6/autoload/ \
+ install || die "ipv6 install failed"
+ cp ../src/ircd ${D}/usr/sbin/ircd-ipv6
+
+ # Fix the config files according to the patches.
+ for conf in ${D}/etc/ircd/*.conf; do
+ sed -e "s:ircd-hybrid-7/ipv4:ircd-hybrid-7/ipv6:g" \
+ < ${conf} > ${conf/ipv4/ipv6}
+ done
+ fi
+
+ # Install the init script and the respective config file.
+ cp ${FILESDIR}/init.d_ircd ${D}/etc/init.d/ircd
+ cp ${FILESDIR}/conf.d_ircd ${D}/etc/conf.d/ircd
+
+ # Go back.
+ cd ${S}
+}
+
+pkg_postinst()
+{
+ # Create the default config files out of example ones.
+ cp /etc/ircd/example-ipv4.conf /etc/ircd/ircd-ipv4.conf
+ if [ -n "$(use ipv6)" ]; then
+ cp /etc/ircd/example-ipv6.conf /etc/ircd/ircd-ipv6.conf
+ fi
+
+ chown -R ircd:ircd /etc/ircd /var/log/ircd /var/run/ircd
+ chmod 700 /etc/ircd /var/log/ircd
+ find /etc/ircd -type f -exec chmod 600 {} \;
+
+ einfo "Modify /etc/ircd/ircd-{ipv4,ipv6}.conf and /etc/conf.d/ircd"
+ einfo "otherwise the daemon(s) will quietly refuse to run."
+
+ if [ -n "$(use ssl)" ]; then
+ einfo "To create a rsa keypair for crypted links execute:"
+ einfo "ebuild /var/db/pkg/net-irc/${PF}/${PF}.ebuild config"
+ fi
+}
+
+pkg_config()
+{
+ local proto="ipv4"
+ [[ -x "/usr/sbin/ircd-ipv6" ]] && proto="ipv4 ipv6"
+
+ local i
+ for i in ${proto}; do
+ einfo "Generating 2048 bit RSA keypair /etc/ircd/ircd-${i}.rsa"
+ einfo "The public key is stored in /etc/ircd/ircd-${i}.pub."
+
+ openssl genrsa -rand /var/run/random-seed \
+ -out /etc/ircd/ircd-${i}.rsa 2048
+ openssl rsa -in /etc/ircd/ircd-${i}.rsa -pubout \
+ -out /etc/ircd/ircd-${i}.pub
+ chown ircd:ircd /etc/ircd/ircd-${i}.rsa /etc/ircd/ircd-${i}.pub
+ chmod 600 /etc/ircd/ircd-${i}.rsa
+ chmod 644 /etc/ircd/ircd-${i}.pub
+
+ einfo "Update the rsa keypair in /etc/ircd/ircd-${i}.conf and /REHASH."
+ done
+}
+
+# vim:ts=4
diff --git a/net-irc/ircd-hybrid/metadata.xml b/net-irc/ircd-hybrid/metadata.xml
new file mode 100644
index 000000000000..6ef15e900f17
--- /dev/null
+++ b/net-irc/ircd-hybrid/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>net-irc</herd>
+</pkgmetadata>