diff options
author | Chuck Short <zul@gentoo.org> | 2003-12-17 02:39:22 +0000 |
---|---|---|
committer | Chuck Short <zul@gentoo.org> | 2003-12-17 02:39:22 +0000 |
commit | 6c08a2ca8dcdac35925e750358dcb46d13c3d3f9 (patch) | |
tree | 20a5726e48e0ebf1654fb90b0dbbe3d46cfa2c44 /net-irc/ircd-hybrid | |
parent | Initial version, closes bug #10275 (diff) | |
download | gentoo-2-6c08a2ca8dcdac35925e750358dcb46d13c3d3f9.tar.gz gentoo-2-6c08a2ca8dcdac35925e750358dcb46d13c3d3f9.tar.bz2 gentoo-2-6c08a2ca8dcdac35925e750358dcb46d13c3d3f9.zip |
Initial version, closes bug #10275
Diffstat (limited to 'net-irc/ircd-hybrid')
-rw-r--r-- | net-irc/ircd-hybrid/ChangeLog | 12 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/Manifest | 9 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/conf.d_ircd | 9 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/config-ipv4.diff | 56 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/config-ipv6.diff | 56 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/digest-ircd-hybrid-7.0 | 1 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/init.d_ircd | 49 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/files/ircd-hybrid-7.0.diff | 78 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/ircd-hybrid-7.0.ebuild | 268 | ||||
-rw-r--r-- | net-irc/ircd-hybrid/metadata.xml | 5 |
10 files changed, 542 insertions, 1 deletions
diff --git a/net-irc/ircd-hybrid/ChangeLog b/net-irc/ircd-hybrid/ChangeLog new file mode 100644 index 000000000000..c5ea5c8be929 --- /dev/null +++ b/net-irc/ircd-hybrid/ChangeLog @@ -0,0 +1,12 @@ +# ChangeLog for net-irc/ircd-hybrid +# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-irc/ircd-hybrid/ChangeLog,v 1.1 2003/12/17 02:37:44 zul Exp $ + +*ircd-hybrid-7.0 (16 Dec 2003) + + 16 Dec 2003; Chuck Short <zul@gentoo.org> ircd-hybrid-7.0.ebuild, + files/conf.d_ircd, files/config-ipv4.diff, files/config-ipv6.diff, + files/init.d_ircd, files/ircd-hybrid-7.0.diff: + Initial version, ebuild submitted by pasi.valminen@hut.fi + Closes #10275. + 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> |