diff --git a/irc/irc/Makefile b/irc/irc/Makefile index 62dbeb881cb9..fd4cedc4e1a8 100644 --- a/irc/irc/Makefile +++ b/irc/irc/Makefile @@ -1,14 +1,14 @@ # New ports collection makefile for: Irc Server -# Version required: 2.10.1 +# Version required: 2.10.3 # Date created: 23 August 1994 # Whom: torstenb # # $FreeBSD$ # -DISTNAME= irc2.10.1 -PKGNAME= irc-2.10.1 -CATEGORIES= irc +DISTNAME= irc2.10.3 +PKGNAME= irc-2.10.3 +CATEGORIES= irc ipv6 MASTER_SITES= ftp://ftp.funet.fi/pub/networking/services/irc/server/ \ ftp://ftp.irc.org/irc/server/ \ ftp://tau.ac.il/pub/unix/irc/server/ \ @@ -32,17 +32,28 @@ MAN5= iauth.conf.5 MAN8= ircd.8 iauth.8 ircdwatch.8 GNU_CONFIGURE= YES -CONFIGURE_ARGS= --without-ncurses +CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc/ircd +STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/ircd.sh + +.include + +.if ${OSVERSION} >= 400014 +CONFIGURE_ARGS+= --enable-ip6 +.endif do-build: - @(cd ${WRKSRC}/`${WRKSRC}/support/config.guess` && make all) + @(cd ${WRKSRC}/${MACHINE_ARCH}-unknown-freebsd${OSREL}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) do-install: - @(cd ${WRKSRC}/`${WRKSRC}/support/config.guess` && make install) + @(cd ${WRKSRC}/${MACHINE_ARCH}-unknown-freebsd${OSREL} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) -pre-install: - @${MKDIR} ${PREFIX}/lib/ircd - @${TOUCH} ${PREFIX}/lib/ircd/users ${PREFIX}/lib/ircd/opers \ - ${PREFIX}/lib/ircd/rejects +post-install: + @if [ ! -f ${STARTUP_SCRIPT} ]; then \ + echo "Installing ${STARTUP_SCRIPT} startup file."; \ + echo '#!/bin/sh' > ${STARTUP_SCRIPT}; \ + echo "[ -f ${PREFIX}/etc/ircd/ircd.conf ] && ${PREFIX}/sbin/ircd && echo -n ' ircd'" >> ${STARTUP_SCRIPT} ; \ + chmod 755 ${STARTUP_SCRIPT} ; \ + chown bin.bin ${STARTUP_SCRIPT}; \ + fi -.include +.include diff --git a/irc/irc/distinfo b/irc/irc/distinfo index e0b50ebad155..6067fe27ff7f 100644 --- a/irc/irc/distinfo +++ b/irc/irc/distinfo @@ -1 +1 @@ -MD5 (irc2.10.1.tgz) = d663db71bb1dba4c81b25bf3133a33e2 +MD5 (irc2.10.3.tgz) = c7edd9285ff64435f39cbbde2fc77b73 diff --git a/irc/irc/files/patch-ac b/irc/irc/files/patch-ac new file mode 100644 index 000000000000..9391f3b50596 --- /dev/null +++ b/irc/irc/files/patch-ac @@ -0,0 +1,54 @@ +--- ircd/res.c- Fri Jan 21 20:57:31 2000 ++++ ircd/res.c Fri Jan 21 21:04:03 2000 +@@ -588,8 +588,7 @@ + hp = (struct hent *)&(rptr->he); + adr = &hp->h_addr; + #ifdef INET6 +- while (adr->s6_laddr[0] | adr->s6_laddr[1] | adr->s6_laddr[2] | +- adr->s6_laddr[3]) ++ while (!IN6_IS_ADDR_UNSPECIFIED(adr)) + #else + while (adr->s_addr) + #endif +@@ -667,9 +666,9 @@ + if (type == T_AAAA) + bcopy(cp, (char *)&dr, dlen); + else { +- dr.s6_laddr[0]=dr.s6_laddr[1]=0; +- dr.s6_laddr[2]=htonl(0xffff); +- bcopy(cp, &dr.s6_laddr[3], INADDRSZ); ++ memset(&dr, 0, sizeof(dr)); ++ dr.s6_addr[10] = dr.s6_addr[11] = 0xff; ++ bcopy(cp, &dr.s6_addr[12], INADDRSZ); + } + bcopy(dr.s6_addr, adr->s6_addr, IN6ADDRSZ); + #else +@@ -1052,12 +1051,10 @@ + + #ifdef DEBUG + #ifdef INET6 +- Debug((DEBUG_INFO,"add_to_cache:added %s[%08x%08x%08x%08x] cache %#x.", +- ocp->he.h_name, +- ((struct in6_addr *)ocp->he.h_addr_list)->s6_laddr[0], +- ((struct in6_addr *)ocp->he.h_addr_list)->s6_laddr[1], +- ((struct in6_addr *)ocp->he.h_addr_list)->s6_laddr[2], +- ((struct in6_addr *)ocp->he.h_addr_list)->s6_laddr[3], ocp)); ++ inet_ntop(AF_INET6, ((struct in6_addr *)ocp->he.h_addr_list), ++ mydummy, sizeof(mydummy)); ++ Debug((DEBUG_INFO,"add_to_cache:added %s[%s] cache %#x.", ++ ocp->he.h_name, mydummy, ocp); + #else + Debug((DEBUG_INFO, "add_to_cache:added %s[%08x] cache %#x.", + ocp->he.h_name, ocp->he.h_addr_list[0], ocp)); +@@ -1275,9 +1272,8 @@ + #ifdef DEBUG + #ifdef INET6 + Debug((DEBUG_DNS, +- "find_cache_number:find %s[%08x%08x%08x%08x]: hashv = %d", +- inet_ntop(AF_INET6, numb,mydummy,MYDUMMY_SIZE), ip->s6_laddr[0], +- ip->s6_laddr[1], ip->s6_laddr[2], ip->s6_laddr[3], hashv)); ++ "find_cache_number:find %s: hashv = %d", ++ inet_ntop(AF_INET6, numb, mydummy,MYDUMMY_SIZE), hashv)); + #else + Debug((DEBUG_DNS,"find_cache_number:find %s[%08x]: hashv = %d", + inetntoa(numb), ntohl(ip->s_addr), hashv)); diff --git a/irc/irc/files/patch-ad b/irc/irc/files/patch-ad new file mode 100644 index 000000000000..0b778873b093 --- /dev/null +++ b/irc/irc/files/patch-ad @@ -0,0 +1,11 @@ +--- support/configure- Thu Jan 13 02:56:11 2000 ++++ support/configure Thu Jan 13 02:56:32 2000 +@@ -4108,8 +4108,6 @@ + + case $irc_cv_v6type in + kame) +- LIBS="-L/usr/local/v6/lib -linet6 $LIBS" +- CFLAGS="$CFLAGS -I/usr/local/v6/include" + ;; + linux) + LIBS="-L/usr/inet6/lib -linet6 $LIBS" diff --git a/irc/irc/files/patch-ae b/irc/irc/files/patch-ae new file mode 100644 index 000000000000..5b39db320985 --- /dev/null +++ b/irc/irc/files/patch-ae @@ -0,0 +1,11 @@ +--- ircd/s_user.c~ Sat Jul 17 20:47:49 1999 ++++ ircd/s_user.c Thu Jan 13 03:01:14 2000 +@@ -2379,7 +2379,7 @@ + parv[0], sptr->user->username, sptr->user->host, + sptr->auth, IsUnixSocket(sptr) ? sptr->sockhost : + #ifdef INET6 +- inet_ntop(AF_INET6, (char *)&sptr->ip), mydummy, MYDUMMY_SIZE); ++ inet_ntop(AF_INET6, (char *)&sptr->ip, mydummy, MYDUMMY_SIZE)); + #else + inetntoa((char *)&sptr->ip)); + #endif diff --git a/irc/irc/files/patch-af b/irc/irc/files/patch-af new file mode 100644 index 000000000000..8c5ad82fc66e --- /dev/null +++ b/irc/irc/files/patch-af @@ -0,0 +1,12 @@ +--- ircd/s_bsd.c Sat Jul 24 02:15:14 1999 ++++ ircd/s_bsd.c Fri Jan 21 21:03:36 2000 +@@ -760,8 +760,7 @@ + + #ifdef INET6 + if (IN6_IS_ADDR_LOOPBACK(&cptr->ip) || IsUnixSocket(cptr) || +- (cptr->ip.s6_laddr[0]==mysk.sin6_addr.s6_laddr[0] && +- cptr->ip.s6_laddr[1]==mysk.sin6_addr.s6_laddr[1]) ++ memcmp(&cptr->ip, &mysk.sin6_addr, 8) == 0 + /* || + IN6_ARE_ADDR_SAMEPREFIX(&cptr->ip, &mysk.SIN_ADDR)) + about the same, I think NOT */ diff --git a/irc/irc/pkg-plist b/irc/irc/pkg-plist index da2f67365d4b..c6e64d232efb 100644 --- a/irc/irc/pkg-plist +++ b/irc/irc/pkg-plist @@ -1,10 +1,11 @@ bin/irc -lib/ircd/users -lib/ircd/opers -lib/ircd/rejects -lib/ircd/ircd.m4 -lib/ircd/example.conf -sbin/ircd +etc/rc.d/ircd.sh +etc/ircd/iauth.conf +etc/ircd/ircd.m4 +etc/ircd/example.conf sbin/chkconf +sbin/ircd sbin/iauth sbin/ircd-mkpasswd +sbin/ircdwatch +@dirrm etc/ircd