summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wegener <swegener@gentoo.org>2004-09-27 00:35:14 +0000
committerSven Wegener <swegener@gentoo.org>2004-09-27 00:35:14 +0000
commit052148257d4907e1a26d0fcd1f21bf84eff06046 (patch)
treed37c54ab66e1b10c7627b61ae5f13535b41a8d60 /net-irc/ircd-hybrid
parentAdded support for gnustep-libs/camaelon, via a local use flag (patches in sup... (diff)
downloadgentoo-2-052148257d4907e1a26d0fcd1f21bf84eff06046.tar.gz
gentoo-2-052148257d4907e1a26d0fcd1f21bf84eff06046.tar.bz2
gentoo-2-052148257d4907e1a26d0fcd1f21bf84eff06046.zip
Version bump. Closes bug #10275 and #59076.
Diffstat (limited to 'net-irc/ircd-hybrid')
-rw-r--r--net-irc/ircd-hybrid/ChangeLog9
-rw-r--r--net-irc/ircd-hybrid/files/config-ipv4-7.0.3.diff78
-rw-r--r--net-irc/ircd-hybrid/files/config-ipv6-7.0.3.diff78
-rw-r--r--net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0.31
-rw-r--r--net-irc/ircd-hybrid/files/init.d_ircd47
-rw-r--r--net-irc/ircd-hybrid/files/ircd-hybrid-7.0.3.diff79
-rw-r--r--net-irc/ircd-hybrid/ircd-hybrid-7.0.3.ebuild361
7 files changed, 638 insertions, 15 deletions
diff --git a/net-irc/ircd-hybrid/ChangeLog b/net-irc/ircd-hybrid/ChangeLog
index 99db487653ab..58b7ad70512b 100644
--- a/net-irc/ircd-hybrid/ChangeLog
+++ b/net-irc/ircd-hybrid/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-irc/ircd-hybrid
# Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/ChangeLog,v 1.10 2004/09/06 19:01:27 ciaranm Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/ChangeLog,v 1.11 2004/09/27 00:35:13 swegener Exp $
+
+*ircd-hybrid-7.0.3 (27 Sep 2004)
+
+ 27 Sep 2004; Sven Wegener <swegener@gentoo.org>
+ +files/config-ipv4-7.0.3.diff, +files/config-ipv6-7.0.3.diff,
+ files/init.d_ircd, +files/ircd-hybrid-7.0.3.diff, +ircd-hybrid-7.0.3.ebuild:
+ Version bump. Closes bug #10275 and #59076.
06 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org> ircd-hybrid-7.0-r1.ebuild,
ircd-hybrid-7.0.ebuild:
diff --git a/net-irc/ircd-hybrid/files/config-ipv4-7.0.3.diff b/net-irc/ircd-hybrid/files/config-ipv4-7.0.3.diff
new file mode 100644
index 000000000000..0b7fc0220ad2
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/config-ipv4-7.0.3.diff
@@ -0,0 +1,78 @@
+--- ircd-hybrid-7.0.2/include/config.h 2003-10-26 02:08:12.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/include/config.h 2004-05-15 15:26:11.346393560 +0000
+@@ -136,31 +136,31 @@
+
+ /* dirs */
+ #define DPATH IRCD_PREFIX
+-#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/"
+ #define MSGPATH IRCD_PREFIX "/messages/"
+-#define ETCPATH IRCD_PREFIX "/etc"
+-#define LOGPATH IRCD_PREFIX "/logs"
++#define ETCPATH "/etc/ircd"
++#define LOGPATH "/var/log/ircd"
+ #define UHPATH IRCD_PREFIX "/help/users"
+ #define HPATH IRCD_PREFIX "/help/opers"
+
+ /* files */
+-#define SPATH BINPATH "/ircd" /* ircd executable */
++#define SPATH BINPATH "/ircd-ipv4" /* ircd executable */
+ #define SLPATH BINPATH "/servlink" /* servlink executable */
+-#define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
+-#define KPATH ETCPATH "/kline.conf" /* kline file */
+-#define XPATH ETCPATH "/xline.conf" /* xline file */
+-#define NRESVPATH ETCPATH "/nresv.conf" /* nick resv file */
+-#define CRESVPATH ETCPATH "/cresv.conf" /* channel resv 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 XPATH ETCPATH "/xline-ipv4.conf" /* xline file */
++#define NRESVPATH ETCPATH "/nresv-ipv4.conf" /* nick resv file */
++#define CRESVPATH ETCPATH "/cresv-ipv4.conf" /* channel resv 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 */
+ #endif /* !VMS */
+
+ /* WANT_GETTEXT - toggle gettext support.
+@@ -217,18 +217,18 @@
+ * this option is used unless you tell the system administrator beforehand
+ * and obtain their permission to send messages to the system log files.
+ */
+-#undef USE_SYSLOG
++#define USE_SYSLOG
+
+ #ifdef USE_SYSLOG
+ /* SYSLOG_KILL SYSLOG_SQUIT SYSLOG_CONNECT SYSLOG_USERS SYSLOG_OPER
+ * If you use syslog above, you may want to turn some (none) of the
+ * spurious log messages for KILL,SQUIT,etc off.
+ */
+-#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 */
+
+ /* LOG_FACILITY - facility to use for syslog()
+ * Define the facility you want to use for syslog(). Ask your
diff --git a/net-irc/ircd-hybrid/files/config-ipv6-7.0.3.diff b/net-irc/ircd-hybrid/files/config-ipv6-7.0.3.diff
new file mode 100644
index 000000000000..b86d866d9e53
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/config-ipv6-7.0.3.diff
@@ -0,0 +1,78 @@
+--- ircd-hybrid-7.0.2/include/config.h 2003-10-26 02:08:12.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/include/config.h 2004-05-15 15:19:20.101532544 +0000
+@@ -136,31 +136,31 @@
+
+ /* dirs */
+ #define DPATH IRCD_PREFIX
+-#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/"
+ #define MSGPATH IRCD_PREFIX "/messages/"
+-#define ETCPATH IRCD_PREFIX "/etc"
+-#define LOGPATH IRCD_PREFIX "/logs"
++#define ETCPATH "/etc/ircd"
++#define LOGPATH "/var/log/ircd"
+ #define UHPATH IRCD_PREFIX "/help/users"
+ #define HPATH IRCD_PREFIX "/help/opers"
+
+ /* files */
+-#define SPATH BINPATH "/ircd" /* ircd executable */
++#define SPATH BINPATH "/ircd-ipv6" /* ircd executable */
+ #define SLPATH BINPATH "/servlink" /* servlink executable */
+-#define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
+-#define KPATH ETCPATH "/kline.conf" /* kline file */
+-#define XPATH ETCPATH "/xline.conf" /* xline file */
+-#define NRESVPATH ETCPATH "/nresv.conf" /* nick resv file */
+-#define CRESVPATH ETCPATH "/cresv.conf" /* channel resv 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 XPATH ETCPATH "/xline-ipv6.conf" /* xline file */
++#define NRESVPATH ETCPATH "/nresv-ipv6.conf" /* nick resv file */
++#define CRESVPATH ETCPATH "/cresv-ipv6.conf" /* channel resv 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 */
+ #endif /* !VMS */
+
+ /* WANT_GETTEXT - toggle gettext support.
+@@ -217,18 +217,18 @@
+ * this option is used unless you tell the system administrator beforehand
+ * and obtain their permission to send messages to the system log files.
+ */
+-#undef USE_SYSLOG
++#define USE_SYSLOG
+
+ #ifdef USE_SYSLOG
+ /* SYSLOG_KILL SYSLOG_SQUIT SYSLOG_CONNECT SYSLOG_USERS SYSLOG_OPER
+ * If you use syslog above, you may want to turn some (none) of the
+ * spurious log messages for KILL,SQUIT,etc off.
+ */
+-#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 */
+
+ /* LOG_FACILITY - facility to use for syslog()
+ * Define the facility you want to use for syslog(). Ask your
diff --git a/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0.3 b/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0.3
new file mode 100644
index 000000000000..127dad05c905
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0.3
@@ -0,0 +1 @@
+MD5 5e5d93dbd55e6865d75ee18a2b56170f ircd-hybrid-7.0.3.tgz 1147557
diff --git a/net-irc/ircd-hybrid/files/init.d_ircd b/net-irc/ircd-hybrid/files/init.d_ircd
index 7a465efea188..99e6f48f9ee6 100644
--- a/net-irc/ircd-hybrid/files/init.d_ircd
+++ b/net-irc/ircd-hybrid/files/init.d_ircd
@@ -1,6 +1,11 @@
#!/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.2 2004/07/18 03:59:42 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/files/init.d_ircd,v 1.3 2004/09/27 00:35:14 swegener Exp $
+
+opts="${opts} rehash"
+
+ipv4pid="/var/run/ircd/ircd-ipv4.pid"
+ipv6pid="/var/run/ircd/ircd-ipv6.pid"
depend()
{
@@ -9,41 +14,55 @@ depend()
start()
{
- if [ "${IPV4_OPTS}" != "no" ]; then
+ if [ "${IPV4_OPTS}" != "no" ]
+ then
ebegin "Starting IRCd-Hybrid7 IPv4 daemon"
- start-stop-daemon --start --quiet --background --chuid ircd --exec \
-\
+ start-stop-daemon --start --quiet --background --chuid hybrid --exec \
/usr/sbin/ircd-ipv4 -- ${IPV4_OPTS}
-
eend $?
fi
- if [ -x "/usr/sbin/ircd-ipv6" -a "${IPV6_OPTS}" != "no" ]; then
+ 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 \
-\
+ start-stop-daemon --start --quiet --background --chuid hybrid --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
+ 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
+ if [ -r "${ipv6pid}" ]
+ then
ebegin "Stopping IRCd-Hybrid7 IPv6 daemon"
start-stop-daemon --stop --quiet --pidfile="${ipv6pid}"
eend $?
rm -f "${ipv6pid}"
fi
}
+
+rehash()
+{
+ if [ -r "${ipv4pid}" ]
+ then
+ ebegin "Rehashing IRCd-Hybrid7 IPv4 daemon"
+ kill -s SIGHUP $(cat "${ipv4pid}")
+ eend $?
+ fi
+
+ if [ -r "${ipv6pid}" ]
+ then
+ ebegin "Rehashing IRCd-Hybrid7 IPv6 daemon"
+ kill -s SIGHUP $(cat "${ipv6pid}")
+ eend $?
+ fi
+}
diff --git a/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.3.diff b/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.3.diff
new file mode 100644
index 000000000000..a82e451b6a60
--- /dev/null
+++ b/net-irc/ircd-hybrid/files/ircd-hybrid-7.0.3.diff
@@ -0,0 +1,79 @@
+diff -Naur ircd-hybrid-7.0.2/help/Makefile.in ircd-hybrid-7.0.2.gentoo/help/Makefile.in
+--- ircd-hybrid-7.0.2/help/Makefile.in 2002-02-02 16:01:13.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/help/Makefile.in 2004-05-15 15:34:49.769274690 +0000
+@@ -80,11 +80,6 @@
+ $(INSTALL_DATA) $$help $(uhelpdir); \
+ fi \
+ done
+- @for link in $(SYMLINKS); do \
+- rm -f $(uhelpdir)/$$link; \
+- ln -s $(ohelpdir)/$$link $(uhelpdir); \
+- done
+-
+
+ distclean:
+ ${RM} -f Makefile
+diff -Naur ircd-hybrid-7.0.2/include/Makefile.in ircd-hybrid-7.0.2.gentoo/include/Makefile.in
+--- ircd-hybrid-7.0.2/include/Makefile.in 2002-04-29 22:30:24.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/include/Makefile.in 2004-05-15 15:37:28.783043062 +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.2/src/Makefile.in ircd-hybrid-7.0.2.gentoo/src/Makefile.in
+--- ircd-hybrid-7.0.2/src/Makefile.in 2003-10-26 02:08:20.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/src/Makefile.in 2004-05-15 15:38:04.377614108 +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.2/tools/Makefile.in ircd-hybrid-7.0.2.gentoo/tools/Makefile.in
+--- ircd-hybrid-7.0.2/tools/Makefile.in 2002-07-11 23:40:27.000000000 +0000
++++ ircd-hybrid-7.0.2.gentoo/tools/Makefile.in 2004-05-15 15:39:22.187764585 +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.3.ebuild b/net-irc/ircd-hybrid/ircd-hybrid-7.0.3.ebuild
new file mode 100644
index 000000000000..668c134a2c8d
--- /dev/null
+++ b/net-irc/ircd-hybrid/ircd-hybrid-7.0.3.ebuild
@@ -0,0 +1,361 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/ircd-hybrid-7.0.3.ebuild,v 1.1 2004/09/27 00:35:13 swegener Exp $
+
+inherit eutils fixheadtails
+
+MAX_NICK_LENGTH=30
+MAX_CLIENTS=500
+MAX_TOPIC_LENGTH=512
+LARGE_NETWORK=
+DISABLE_LARGE_NETWORK=1
+SMALL_NETWORK=1
+DISABLE_SMALL_NETWORK=
+ENABLE_POLL=1
+DISABLE_POLL=
+ENABLE_SELECT=
+DISABLE_SELECT=1
+ENABLE_EFNET=
+ENABLE_RTSIGIO=
+DISABLE_RTSIGIO=
+ENABLE_SHARED=1
+DISABLE_SHARED=
+ENABLE_DEVPOLL=
+DISABLE_DEVPOLL=1
+ENABLE_KQUEUE=
+DISABLE_KQUEUE=
+
+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 ~alpha"
+
+DEPEND="virtual/glibc
+ zlib? ( >=sys-libs/zlib-1.1.4-r2 )
+ ssl? ( >=dev-libs/openssl-0.9.7d )
+ || ( >=dev-libs/libelf-0.8.2 >=dev-libs/elfutils-0.94-r1 )
+ >=sys-devel/flex-2.5.4a-r5
+ >=sys-devel/bison-1.875
+ >=sys-devel/gettext-0.12.1
+ >=sys-apps/sed-4.0.7"
+RDEPEND=""
+
+pkg_setup() {
+ enewgroup hybrid
+ enewuser hybrid -1 /bin/false /dev/null hybrid
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ ht_fix_file ${S}/configure
+
+ # 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.
+ epatch ${FILESDIR}/${PF}.diff || die "epatch failed"
+ sed -i -e "s:IRC_CFLAGS=\"-O2 -g \":IRC_CFLAGS=\"${CFLAGS}\":" configure
+
+ # Store unmodified source tree for compiling necessary shared libs and
+ # binaries with ipv6 support.
+ if 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 "The values below reflect a usable configuration but may not be"
+ ewarn "for large networks in production environments"
+ ewarn "Portage overlay would be benificial for such a senario"
+ ewarn
+ ewarn "If you require more than 1024 clients per ircd enable poll() support"
+ ewarn "or hybrid will not compile due to hard max file descriptor limits"
+ ewarn "To change the default settings below you must edit the ebuild"
+ ewarn
+ ewarn "Maximum nick length = ${MAX_NICK_LENGTH}"
+ ewarn " topic length = ${MAX_TOPIC_LENGTH}"
+ ewarn " number of clients = ${MAX_CLIENTS}"
+ ewarn
+
+ if [ ${LARGE_NETWORK} ]
+ then
+ ewarn "Configuring for large networks."
+ myconf="${myconf} --enable-large-net"
+ fi
+ if [ ${DISABLE_LARGE_NETWORK} ]
+ then
+ ewarn "Disabling large networks."
+ myconf="${myconf} --disable-large-net"
+ fi
+ if [ ${SMALL_NETWORK} ]
+ then
+ ewarn "Configuring for small networks."
+ myconf="${myconf} --enable-small-net"
+ fi
+ if [ ${DISABLE_SMALL_NETWORK} ]
+ then
+ ewarn "Disabling small networks."
+ myconf="${myconf} --disable-small-net"
+ fi
+ if [ ${ENABLE_POLL} ]
+ then
+ ewarn "Configuring with poll() enabled"
+ myconf="${myconf} --enable-poll"
+ fi
+ if [ ${DISABLE_POLL} ]
+ then
+ ewarn "Configuring with poll() disabled"
+ myconf="${myconf} --disable-poll"
+ fi
+ if [ ${ENABLE_SELECT} ]
+ then
+ ewarn "Configuring with select() enabled."
+ myconf="${myconf} --enable-select"
+ fi
+ if [ ${DISABLE_SELECT} ]
+ then
+ ewarn "Configuring with select() disabled."
+ myconf="${myconf} --disable-select"
+ fi
+ if [ ${ENABLE_EFNET} ]
+ then
+ ewarn "Configuring for Efnet."
+ myconf="${myconf} --enable-efnet"
+ fi
+ if [ ${ENABLE_RTSIGIO} ]
+ then
+ ewarn "Configuring with Superior RTSIGIO."
+ myconf="${myconf} --enable-rtsigio"
+ fi
+ if [ ${DISABLE_RTSIGIO} ]
+ then
+ ewarn "Disabling Superior RTSIGIO."
+ myconf="${myconf} --disable-rtsigio"
+ fi
+ if [ ${ENABLE_SHARED} ]
+ then
+ ewarn "Configuring for non-Efnet."
+ myconf="${myconf} --enable-shared"
+ fi
+ if [ ${ENABLE_KQUEUE} ]
+ then
+ ewarn "Configuring for Kqueue."
+ myconf="${myconf} --enable-kqueue"
+ fi
+ if [ ${DISABLE_KQUEUE} ]
+ then
+ ewarn "Disabling Kqueue."
+ myconf="${myconf} --disable-kqueue"
+ fi
+
+ # Wait for admins to see the default variables.
+ epause 5
+
+ # Set ipv4 defaults to config.h.
+ patch include/config.h ${FILESDIR}/config-ipv4-${PVR}.diff \
+ || die "ipv4 defaults patch failed"
+
+ # Set prefix to /usr/share/ircd-hybrid-7 to save some patching.
+ econf \
+ --prefix=/usr/share/ircd-hybrid-7 \
+ --with-nicklen=${MAX_NICK_LENGTH} \
+ --with-topiclen=${MAX_TOPIC_LENGTH} \
+ --with-maxclients=${MAX_CLIENTS} \
+ $(use_enable zlib) \
+ $(use_enable ssl openssl) \
+ $(use_enable !static shared-modules) \
+ $(use_enable debug assert) \
+ ${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.
+ use ssl && gcc ${CFLAGS} -o respond tools/rsa_respond/respond.c -lcrypto
+
+ # Configure and compile with ipv6 support in temp.
+ if use ipv6
+ then
+ einfo "IPv6 support"
+ cd ${T}/ipv6/${P}
+
+ # Set ipv6 defaults to config.h.
+ patch include/config.h ${FILESDIR}/config-ipv6-${PVR}.diff \
+ || die "ipv6 defaults patch failed"
+
+ econf \
+ --prefix=/usr/share/ircd-hybrid-7 \
+ --with-nicklen=${MAX_NICK_LENGTH} \
+ --with-topiclen=${MAX_TOPIC_LENGTH} \
+ --with-maxclients=${MAX_CLIENTS} \
+ --enable-ipv6 \
+ $(use_enable zlib) \
+ $(use_enable ssl openssl) \
+ $(use_enable !static shared-modules) \
+ $(use_enable debug assert) \
+ ${myconf} \
+ || die "ipv6 config failed"
+ emake || die "ipv6 make failed"
+ fi
+}
+
+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
+ keepdir /var/run/ircd /var/log/ircd
+
+ # 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.
+ use ssl && dosbin ${S}/respond
+
+ # 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 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.
+ exeinto /etc/init.d
+ newexe ${FILESDIR}/init.d_ircd ircd
+ insinto /etc/conf.d
+ newins ${FILESDIR}/conf.d_ircd ircd
+}
+
+pkg_postinst() {
+ if [ ! -f ${ROOT}/etc/ircd/ircd-ipv4.conf ]
+ then
+ cp ${ROOT}/etc/ircd/example-ipv4.conf \
+ ${ROOT}/etc/ircd/ircd-ipv4.conf
+ fi
+ if use ipv6 && [ ! -f /etc/ircd/example-ipv6.conf ]
+ then
+ cp ${ROOT}/etc/ircd/example-ipv6.conf \
+ ${ROOT}/etc/ircd/ircd-ipv6.conf
+ fi
+
+ chown -R hybrid:hybrid \
+ ${ROOT}/etc/ircd ${ROOT}/var/log/ircd ${ROOT}/var/run/ircd
+ chmod 700 ${ROOT}/etc/ircd ${ROOT}/var/log/ircd
+ find ${D}/etc/ircd -type f -exec chmod 600 {} \;
+
+ einfo "Create /etc/ircd/ircd-{ipv4,ipv6}.conf files and edit"
+ einfo "/etc/conf.d/ircd otherwise the daemon(s) will quietly"
+ einfo "refuse to run."
+
+ if use ssl
+ then
+ einfo "To create a rsa keypair for crypted links execute:"
+ einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
+ fi
+}
+
+pkg_config() {
+ local proto="ipv4"
+ use ipv6 && proto="${proto} 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 ${ROOT}/var/run/random-seed \
+ -out ${ROOT}/etc/ircd/ircd-${i}.rsa 2048
+ openssl rsa -in ${ROOT}/etc/ircd/ircd-${i}.rsa -pubout \
+ -out ${ROOT}/etc/ircd/ircd-${i}.pub
+ chown hybrid:hybrid ${ROOT}/etc/ircd/ircd-${i}.rsa ${ROOT}/etc/ircd/ircd-${i}.pub
+ chmod 600 ${ROOT}/etc/ircd/ircd-${i}.rsa
+ chmod 644 ${ROOT}/etc/ircd/ircd-${i}.pub
+
+ einfo "Update the rsa keypair in /etc/ircd/ircd-${i}.conf and /REHASH."
+ done
+}