summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce A. Locke <blocke@gentoo.org>2002-07-12 05:53:44 +0000
committerBruce A. Locke <blocke@gentoo.org>2002-07-12 05:53:44 +0000
commit95c1ece7d0016d931591b5de3ebdbb901d240e14 (patch)
tree5ce7f7e042e3252584ef9583bc726b0aee37f9a3 /net-irc
parenttrivial dep fix (diff)
downloadgentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.tar.gz
gentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.tar.bz2
gentoo-2-95c1ece7d0016d931591b5de3ebdbb901d240e14.zip
cyclone 0.3.1.1: initial version
Diffstat (limited to 'net-irc')
-rw-r--r--net-irc/cyclone/ChangeLog11
-rw-r--r--net-irc/cyclone/cyclone-0.3.1.1.ebuild134
-rw-r--r--net-irc/cyclone/files/digest-cyclone-0.3.1.11
-rw-r--r--net-irc/cyclone/files/res_init.c215
4 files changed, 361 insertions, 0 deletions
diff --git a/net-irc/cyclone/ChangeLog b/net-irc/cyclone/ChangeLog
new file mode 100644
index 000000000000..72f3725cc0de
--- /dev/null
+++ b/net-irc/cyclone/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for net-irc/cyclone
+# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/cyclone/ChangeLog,v 1.1 2002/07/12 05:53:44 blocke Exp $
+
+*cyclone-0.3.1.1 (12 Jul 2002)
+
+ 12 Jul 2002; Bruce A. Locke <blocke@shivan.org> cyclone-0.3.1.1.ebuild:
+
+ Initial ebuild version.
+
+
diff --git a/net-irc/cyclone/cyclone-0.3.1.1.ebuild b/net-irc/cyclone/cyclone-0.3.1.1.ebuild
new file mode 100644
index 000000000000..23336da5bb24
--- /dev/null
+++ b/net-irc/cyclone/cyclone-0.3.1.1.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/net-irc/cyclone/cyclone-0.3.1.1.ebuild,v 1.1 2002/07/12 05:53:44 blocke Exp $
+
+S=${WORKDIR}/${P}
+DESCRIPTION="IRC daemon with hostname cloaking, SOCKS proxy checking and other advanced features"
+SRC_URI="ftp://ftp.slashnet.org/pub/cyclone/server/${P}.tar.gz"
+HOMEPAGE="http://www.slashnet.org"
+SLOT="0"
+KEYWORDS="*"
+LICENSE="GPL & BSD"
+DEPEND="virtual/glibc"
+
+src_unpack() {
+
+ unpack ${P}.tar.gz
+ cp ${FILESDIR}/res_init.c ${S}/src
+
+}
+
+src_compile() {
+
+ # Server administrators are encouraged to customize the following
+ # variables if actually deploying cyclone in an IRC network. Upon
+ # merging of this package a config file is created in /etc/cyclone
+ # which is reused whenever this package is upgraded.
+
+ # If you wish to modify this configuration in the future, you can
+ # either edit this ebuild or edit the created /etc/cyclone/config and
+ # remerge this ebuild.
+
+ if [ -f /etc/cyclone/config ]
+ then
+ einfo Reusing compile time configuration stored in /etc/cyclone/config...
+ einfo To reset the configuration delete the config file and remerge.
+
+ cp /etc/cyclone/config ${S}/.config
+ else
+ einfo No previous configuration found... using defaults defined in ebuild...
+
+ cat << END_OF_CONFIG > ${S}/.config
+#
+# VERSION: cyclone0.3.1.1
+# DATE: `date`
+# GENERATED BY: Gentoo - ${P}.ebuild
+#
+#
+# This file was automatically generated by Portage using ${P}.ebuild and
+# stored in /etc/cyclone/config for future reuse and modification
+#
+
+LAST_VERSION="cyclone0.3.1.1"
+NOSPOOF_SEED01="0x12345678"
+NOSPOOF_SEED02="0x9abcdef0"
+CONTACT_URL=""
+CONTACT_EMAIL=""
+SERVICES_NAME=""
+KLINE_ADDRESS="ADMIN@DID.NOT.READ.MANUAL.OR.EBUILD"
+DPATH="/etc/cyclone"
+SPATH="/usr/bin"
+CRYPT_OPER_PASSWORD="1"
+CRYPT_LINK_PASSWORD=""
+LISTEN_SIZE="5"
+SOCKSPORT="6013"
+MAXSENDQLENGTH="3000000"
+BUFFERPOOL="(9 * MAXSENDQLENGTH)"
+MAXCONNECTIONS="256"
+DOMAINNAME="foo"
+NICKNAMEHISTORYLENGTH="2000"
+SERVICES_NAME="none"
+
+END_OF_CONFIG
+
+ fi
+
+ # Now we run ./Config which generates the makefiles... This is a
+ # nasty hack that will probably need to be changed from version to
+ # version...
+
+ mv Config Config.orig
+ sed -e 's|DEFOPT="-O2"|DEFOPT="${CFLAGS}"|' \
+ -e 's|more ChangeLog||' Config.orig > Config
+ chmod +x Config
+ yes "" | ./Config -n
+
+ # compile it
+ emake RES="res_init.o" || die
+
+}
+
+src_install () {
+
+ # store generated .config file
+ dodir /etc/cyclone
+ cp ${S}/.config ${D}/etc/cyclone/config
+
+ # make install
+ dodir /usr/bin
+ make DPATH="${D}/etc/cyclone" SPATH="${D}/usr/bin" install || die
+
+ # renamed ircd binary to avoid conflicts with other packages
+ mv ${D}/usr/bin/ircd ${D}/usr/bin/cyclone-ircd
+
+ # documentation files
+ dodoc AUTHORS ChangeLog COPYING INSTALL README {doc/*:-history}
+
+ # install sample configuration file
+ cp ${S}/doc/example.conf ${D}/etc/cyclone/ircd.conf
+
+ # Generate sample motd file
+ echo "Gentoo Linux - Cyclone ${PV}" > ${D}/etc/cyclone/ircd.motd
+
+ # fix permissions
+ chmod 755 ${D}/usr/bin/cyclone-ircd
+ chmod 755 ${D}/etc/cyclone/chkconf ${D}/etc/cyclone/encrypt
+ chmod 644 ${D}/etc/cyclone/example.conf ${D}/etc/cyclone/ircd.motd
+ chmod 600 ${D}/etc/cyclone/ircd.conf ${D}/etc/cyclone/config
+
+}
+
+
+src_postinst()
+{
+
+ einfo Please read the documentation. The default /etc/cyclone/ircd.conf
+ einfo will need to be edited and file permissions changed so only root
+ einfo and the account under which the ircd will run can read the plaintext
+ einfo passwords stored in that file.
+ einfo
+ einfo Failure to modify the ircd.conf will result in cyclone-ircd
+ einfo quietly refusing to run. Read the documentation and config file.
+
+}
+
diff --git a/net-irc/cyclone/files/digest-cyclone-0.3.1.1 b/net-irc/cyclone/files/digest-cyclone-0.3.1.1
new file mode 100644
index 000000000000..66009f17804e
--- /dev/null
+++ b/net-irc/cyclone/files/digest-cyclone-0.3.1.1
@@ -0,0 +1 @@
+MD5 89835f40f0f727b8c037dad7fe8bcdb8 cyclone-0.3.1.1.tar.gz 478063
diff --git a/net-irc/cyclone/files/res_init.c b/net-irc/cyclone/files/res_init.c
new file mode 100644
index 000000000000..029e8a611ec9
--- /dev/null
+++ b/net-irc/cyclone/files/res_init.c
@@ -0,0 +1,215 @@
+/*-
+ * Copyright (c) 1985, 1989 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted provided
+ * that: (1) source distributions retain this entire copyright notice and
+ * comment, and (2) distributions including binaries display the following
+ * acknowledgement: ``This product includes software developed by the
+ * University of California, Berkeley and its contributors'' in the
+ * documentation or other materials provided with the distribution and in
+ * all advertising materials mentioning features or use of this software.
+ * Neither the name of the University nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <stdio.h>
+#include "config.h" /* To get #define SOL20 Vesa */
+#include "sys.h"
+#include "common.h"
+#include "nameser.h"
+#include "resolv.h"
+
+CVSID("$Id: res_init.c,v 1.1 2002/07/12 05:53:44 blocke Exp $");
+
+/*
+ * Resolver state default settings
+ */
+
+struct state _res = {
+ RES_TIMEOUT, /* retransmition time interval */
+ 4, /* number of times to retransmit */
+ RES_DEFAULT, /* options flags */
+ 1, /* number of name servers */
+};
+
+/*
+ * Set up default settings. If the configuration file exist, the values
+ * there will have precedence. Otherwise, the server address is set to
+ * INADDR_ANY and the default domain name comes from the gethostname().
+ *
+ * The configuration file should only be used if you want to redefine your
+ * domain or run without a server on your machine.
+ *
+ * Return 0 if completes successfully, -1 on error
+ */
+res_init()
+{
+ register FILE *fp;
+ register char *cp, *dp, **pp;
+ extern u_long inet_addr();
+ register int n;
+ char buf[BUFSIZ];
+ extern char *getenv();
+ int nserv = 0; /* number of nameserver records read from file */
+ int norder = 0;
+ int haveenv = 0;
+ int havesearch = 0;
+
+ _res.nsaddr.sin_addr.s_addr = INADDR_ANY;
+ _res.nsaddr.sin_family = AF_INET;
+ _res.nsaddr.sin_port = htons(NAMESERVER_PORT);
+ _res.nscount = 1;
+
+ /* Allow user to override the local domain definition */
+ if ((cp = getenv("LOCALDOMAIN")) != NULL) {
+ (void)strncpy(_res.defdname, cp, sizeof(_res.defdname));
+ haveenv++;
+ }
+
+ if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) {
+ /* read the config file */
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ /* read default domain name */
+ if (!strncmp(buf, "domain", sizeof("domain") - 1)) {
+ if (haveenv) /* skip if have from environ */
+ continue;
+ cp = buf + sizeof("domain") - 1;
+ while (*cp == ' ' || *cp == '\t')
+ cp++;
+ if ((*cp == '\0') || (*cp == '\n'))
+ continue;
+ (void)strncpy(_res.defdname, cp, sizeof(_res.defdname) - 1);
+ if ((cp = index(_res.defdname, '\n')) != NULL)
+ *cp = '\0';
+ havesearch = 0;
+ continue;
+ }
+ /* set search list */
+ if (!strncmp(buf, "search", sizeof("search") - 1)) {
+ if (haveenv) /* skip if have from environ */
+ continue;
+ cp = buf + sizeof("search") - 1;
+ while (*cp == ' ' || *cp == '\t')
+ cp++;
+ if ((*cp == '\0') || (*cp == '\n'))
+ continue;
+ (void)strncpy(_res.defdname, cp, sizeof(_res.defdname) - 1);
+ if ((cp = index(_res.defdname, '\n')) != NULL)
+ *cp = '\0';
+ /*
+ * Set search list to be blank-separated strings
+ * on rest of line.
+ */
+ cp = _res.defdname;
+ pp = _res.dnsrch;
+ *pp++ = cp;
+ for (n = 0; *cp && pp < _res.dnsrch + MAXDNSRCH; cp++) {
+ if (*cp == ' ' || *cp == '\t') {
+ *cp = 0;
+ n = 1;
+ } else if (n) {
+ *pp++ = cp;
+ n = 0;
+ }
+ }
+ /* null terminate last domain if there are excess */
+ while (*cp != '\0' && *cp != ' ' && *cp != '\t')
+ cp++;
+ *cp = '\0';
+ *pp++ = 0;
+ havesearch = 1;
+ continue;
+ }
+ /* read nameservers to query */
+ if (!strncmp(buf, "nameserver", sizeof("nameserver") - 1) &&
+ nserv < MAXNS) {
+ cp = buf + sizeof("nameserver") - 1;
+ while (*cp == ' ' || *cp == '\t')
+ cp++;
+ if ((*cp == '\0') || (*cp == '\n'))
+ continue;
+ if ((_res.nsaddr_list[nserv].sin_addr.s_addr =
+ inet_addr(cp)) == (unsigned)-1) {
+ _res.nsaddr_list[nserv].sin_addr.s_addr
+ = INADDR_ANY;
+ continue;
+ }
+ _res.nsaddr_list[nserv].sin_family = AF_INET;
+ _res.nsaddr_list[nserv].sin_port = htons(NAMESERVER_PORT);
+ nserv++;
+ continue;
+ }
+ /* read service order */
+ if (!strncmp(buf, "order", sizeof("order") - 1)) {
+ cp = buf + sizeof("order") - 1;
+ while (*cp == ' ' || *cp == '\t')
+ cp++;
+ if ((*cp == '\0') || (*cp == '\n'))
+ continue;
+ norder = 0;
+ do {
+ if ((dp = index(cp, ',')) != NULL)
+ *dp = '\0';
+ if (norder >= MAXSERVICES)
+ continue;
+ if (!strncmp(cp, "bind", sizeof("bind") - 1))
+ _res.order[norder++] = RES_SERVICE_BIND;
+ else if (!strncmp(cp, "local", sizeof("local") - 1))
+ _res.order[norder++] = RES_SERVICE_LOCAL;
+ cp = dp + 1;
+ } while (dp != NULL);
+ _res.order[norder] = RES_SERVICE_NONE;
+ continue;
+ }
+ }
+ if (nserv > 1)
+ _res.nscount = nserv;
+ (void) fclose(fp);
+ }
+ if (_res.defdname[0] == 0) {
+ if (gethostname(buf, sizeof(_res.defdname)) == 0 &&
+ (cp = index(buf, '.')))
+ (void)strcpy(_res.defdname, cp + 1);
+ }
+
+ /* find components of local domain that might be searched */
+ if (havesearch == 0) {
+ pp = _res.dnsrch;
+ *pp++ = _res.defdname;
+ for (cp = _res.defdname, n = 0; *cp; cp++)
+ if (*cp == '.')
+ n++;
+ cp = _res.defdname;
+ for (; n >= LOCALDOMAINPARTS && pp < _res.dnsrch + MAXDFLSRCH;
+ n--) {
+ cp = index(cp, '.');
+ *pp++ = ++cp;
+ }
+ *pp++ = 0;
+ }
+ /* default search order to bind only */
+ if (norder == 0) {
+ _res.order[0] = RES_SERVICE_BIND;
+ _res.order[1] = RES_SERVICE_NONE;
+ }
+ _res.options |= RES_INIT;
+ return (0);
+}
+
+/*
+ * $Log: res_init.c,v $
+ * Revision 1.1 2002/07/12 05:53:44 blocke
+ * cyclone 0.3.1.1: initial version
+ *
+ * Revision 1.4 2001/03/02 20:52:18 smkelly
+ * Added changelog to res_init.c
+ *
+ */