summaryrefslogtreecommitdiff
path: root/comms
diff options
context:
space:
mode:
authorfrueauf <frueauf@pkgsrc.org>1998-12-03 15:08:53 +0000
committerfrueauf <frueauf@pkgsrc.org>1998-12-03 15:08:53 +0000
commit6e7cb12dc1b5092bc6388b47269d8af2ad023cfb (patch)
tree31f713f5d4a74189a46e84f452dd2b687605a4e4 /comms
parentfe500634e60d2a3934f64dea63c2698973dc5c13 (diff)
downloadpkgsrc-6e7cb12dc1b5092bc6388b47269d8af2ad023cfb.tar.gz
Initial import of xisp-2.5p4, a user-friendly X11 interface to pppd/chat.
Based on pr 6518 by Johnny C. Lam with some rework by me.
Diffstat (limited to 'comms')
-rw-r--r--comms/xisp/Makefile22
-rw-r--r--comms/xisp/files/md53
-rw-r--r--comms/xisp/patches/patch-aa161
-rw-r--r--comms/xisp/patches/patch-ab49
-rw-r--r--comms/xisp/patches/patch-ac71
-rw-r--r--comms/xisp/patches/patch-ad38
-rw-r--r--comms/xisp/patches/patch-ae21
-rw-r--r--comms/xisp/patches/patch-af202
-rw-r--r--comms/xisp/patches/patch-ag86
-rw-r--r--comms/xisp/patches/patch-ah22
-rw-r--r--comms/xisp/patches/patch-ai36
-rw-r--r--comms/xisp/patches/patch-aj21
-rw-r--r--comms/xisp/patches/patch-ak36
-rw-r--r--comms/xisp/pkg/COMMENT1
-rw-r--r--comms/xisp/pkg/DESCR7
-rw-r--r--comms/xisp/pkg/MESSAGE11
-rw-r--r--comms/xisp/pkg/PLIST16
17 files changed, 803 insertions, 0 deletions
diff --git a/comms/xisp/Makefile b/comms/xisp/Makefile
new file mode 100644
index 00000000000..fcaa49e0daa
--- /dev/null
+++ b/comms/xisp/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD: Makefile,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+#
+
+DISTNAME= xisp-2.5p4
+CATEGORIES= comms x11
+MASTER_SITES= ${MASTER_SITE_SUNSITE} \
+ http://users.hol.gr/~dbouras/release/
+MASTER_SITE_SUBDIR= system/network/serial
+
+MAINTAINER= lamj@stat.cmu.edu
+HOMEPAGE= http://users.hol.gr/~dbouras/
+
+DEPENDS+= xforms-0.88:../../x11/xforms
+
+USE_X11= yes
+
+post-install:
+ ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/xisp
+ ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/xisp/
+ ${INSTALL_DATA} ${WRKSRC}/SECURITY ${PREFIX}/share/doc/xisp/
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/comms/xisp/files/md5 b/comms/xisp/files/md5
new file mode 100644
index 00000000000..71c533a5b66
--- /dev/null
+++ b/comms/xisp/files/md5
@@ -0,0 +1,3 @@
+$NetBSD: md5,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+MD5 (xisp-2.5p4.tar.gz) = 503edf7fca46d7c33404c19f50c20346
diff --git a/comms/xisp/patches/patch-aa b/comms/xisp/patches/patch-aa
new file mode 100644
index 00000000000..91da9c35baa
--- /dev/null
+++ b/comms/xisp/patches/patch-aa
@@ -0,0 +1,161 @@
+$NetBSD: patch-aa,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- Makefile.orig Mon Oct 26 11:35:01 1998
++++ Makefile Thu Dec 3 15:25:01 1998
+@@ -8,10 +8,13 @@
+ # Compilation/installation vars (global for all following sections) |
+ #=====================================================================
+ #
+-INCX11 = /usr/X11R6/include
+-LIBX11 = /usr/X11R6/lib
+-INCFORMS = /usr/X11R6/include/X11
+-LIBFORMS = /usr/X11R6/lib
++X11PREFIX != echo ${X11BASE} | sed "s,^/,,"
++BASEPREFIX!= echo ${PREFIX} | sed "s,^/,,"
++#
++INCX11 = ${X11BASE}/include
++LIBX11 = ${X11BASE}/lib
++INCFORMS = ${X11BASE}/include/X11
++LIBFORMS = ${X11BASE}/lib
+ MODEMDEV = modem
+ #
+ #=====================================================================
+@@ -20,20 +23,20 @@
+ #
+ # Normal vars (e.g. Slackware)
+ #------------------------------
+-BINX11 = usr/X11R6/bin
+-USRLOCAL = usr/local/bin
+-SBINDIR = usr/sbin
+-VARRUN = var/run
+-USRLIBPPP = usr/lib/ppp
+-OPTSDIR = usr/lib/ppp
+-MANDIR = usr/X11R6/man/man1
+-ETCPPP = etc/ppp
+-DESTDIR =
+-GROUP = uucp
+-GCCFLAGS = -Wall -O
+-EXTRADEFS =
+-EXTRALIBS =
+-INSTALL = install
++#BINX11 = usr/X11R6/bin
++#USRLOCAL = usr/local/bin
++#SBINDIR = usr/sbin
++#VARRUN = var/run
++#USRLIBPPP = usr/lib/ppp
++#OPTSDIR = usr/lib/ppp
++#MANDIR = usr/X11R6/man/man1
++#ETCPPP = etc/ppp
++#DESTDIR =
++#GROUP = uucp
++#GCCFLAGS = -Wall -O
++#EXTRADEFS =
++#EXTRALIBS =
++#INSTALL = install
+ #
+ # Linux on the Alpha
+ #--------------------
+@@ -112,7 +115,7 @@
+ #DESTDIR =
+ #GROUP = uucp
+ #GCCFLAGS = -Wall -O
+-#EXTRADEFS = -DSUNOS41x
++#EXTRADEFS = -DSUNOS41x -DBROKEN_VSPRINTF=1
+ #EXTRALIBS = -L./SunOS/ufc-crypt -lufc
+ #INSTALL = install
+ #
+@@ -129,11 +132,34 @@
+ #DESTDIR =
+ #GROUP = uucp
+ #GCCFLAGS = -Wall -O
+-#EXTRADEFS = -DSUNOS5x
++#EXTRADEFS = -DSUNOS5x -DHAVE_STRERROR=1
+ #EXTRALIBS = -lcrypt -lsocket -lnsl
+ #INSTALL = /usr/ucb/install
+ #
+ #=====================================================================
++# NetBSD Section |
++#=====================================================================
++#
++# NetBSD vars
++#-----------
++BINX11 = ${BASEPREFIX}/bin
++USRLOCAL = ${BINX11}
++SBINDIR = usr/sbin
++VARRUN = var/run
++USRLIBPPP = ${BASEPREFIX}/libexec
++OPTSDIR = ${BASEPREFIX}/etc
++MANDIR = ${BASEPREFIX}/man/man1
++ETCPPP = etc/ppp
++EGDIR = ${BASEPREFIX}/share/examples/xisp
++DESTDIR =
++GROUP = dialer
++GCCFLAGS = -Wall -O
++EXTRADEFS = -DHAVE_STRERROR=1
++EXTRALIBS = -lcrypt
++LINKX11 = -Wl,-R${LIBX11}
++INSTALL = /usr/bin/install
++#
++#=====================================================================
+ # Program configuration options |
+ #=====================================================================
+ #
+@@ -170,7 +196,7 @@
+ all: xisp xispdial xisprccv xispterm xispid
+
+ xisp: xisp.o pcode.o network.o rcio.o logs.o
+- gcc -o xisp xisp.o pcode.o network.o rcio.o logs.o $(EXTRALIBS) -L$(LIBX11) -L$(LIBFORMS) -lforms -lXpm -lX11 -lm
++ gcc $(LINKX11) -o xisp xisp.o pcode.o network.o rcio.o logs.o $(EXTRALIBS) -L$(LIBX11) -L$(LIBFORMS) -lforms -lXpm -lX11 -lm
+
+ xisp.o: xisp.h xisp.c xisp.xpm version.h common.h pcode.h network.h rcio.h logs.h help.c peHelp.c excl.xpm
+ gcc $(GCCOPTS) -I$(INCX11) -I$(INCFORMS) -c xisp.c
+@@ -188,7 +214,7 @@
+ gcc $(GCCOPTS) -o xispdial xispdial.c
+
+ xisprccv: xisprccv.o pcode.o
+- gcc -o xisprccv xisprccv.o pcode.o $(EXTRALIBS) -lm
++ gcc $(LINKX11) -o xisprccv xisprccv.o pcode.o $(EXTRALIBS) -lm
+
+ xisprccv.o: xisprccv.c common.h version.h pcode.h logs.h
+ gcc $(GCCOPTS) -c xisprccv.c
+@@ -216,29 +242,25 @@
+ $(INSTALL) -g $(GROUP) -m 750 -o root -s xispid $(DESTDIR)/$(USRLOCAL)/xispid
+ # if [ ! -d $(DESTDIR)/$(OPTSDIR) ]; then $(INSTALL) -d $(DESTDIR)/$(OPTSDIR); fi
+ # $(INSTALL) -g $(GROUP) -m 640 -o root options.xisp $(DESTDIR)/$(OPTSDIR)/options.xisp
++ sed -e s,@ETCPPP@,${DESTDIR}/${ETCPPP},g \
++ -e s,@USRLIBPPP@,${DESTDIR}/${USRLIBPPP},g \
++ -e s,@USRLOCAL@,${DESTDIR}/${USRLOCAL},g \
++ < xisp.man > xisp.1
+ if [ ! -d $(DESTDIR)/$(MANDIR) ]; then $(INSTALL) -d $(DESTDIR)/$(MANDIR); fi
+- $(INSTALL) -g $(GROUP) -m 644 -o root xisp.man $(DESTDIR)/$(MANDIR)/xisp.1
++ $(INSTALL) -g $(GROUP) -m 644 -o root xisp.1 $(DESTDIR)/$(MANDIR)/xisp.1
+ sed -e s/__XISPGROUP/$(GROUP)/ \
+ -e sM__XISPIDM/$(DESTDIR)/$(USRLOCAL)/xispidM < ip-up.xisp > ip-up.install
+ sed -e s/__XISPGROUP/$(GROUP)/ \
+ -e sM__XISPIDM/$(DESTDIR)/$(USRLOCAL)/xispidM < ip-down.xisp > ip-down.install
+- if [ ! -d $(DESTDIR)/$(ETCPPP) ]; then $(INSTALL) -d $(DESTDIR)/$(ETCPPP); fi
+- if [ -f $(DESTDIR)/$(ETCPPP)/ip-up ]; then \
+- mv -f $(DESTDIR)/$(ETCPPP)/ip-up $(DESTDIR)/$(ETCPPP)/ip-up.bak; fi
+- $(INSTALL) -g $(GROUP) -m 750 -o root ip-up.install $(DESTDIR)/$(ETCPPP)/ip-up
+- if [ -f $(DESTDIR)/$(ETCPPP)/ip-down ]; then \
+- mv -f $(DESTDIR)/$(ETCPPP)/ip-down $(DESTDIR)/$(ETCPPP)/ip-down.bak; fi
+- $(INSTALL) -g $(GROUP) -m 750 -o root ip-down.install $(DESTDIR)/$(ETCPPP)/ip-down
++ if [ ! -d $(DESTDIR)/$(EGDIR) ]; then $(INSTALL) -d $(DESTDIR)/$(EGDIR); fi
++ $(INSTALL) -g $(GROUP) -m 750 -o root ip-up.install $(DESTDIR)/$(EGDIR)/ip-up
++ $(INSTALL) -g $(GROUP) -m 750 -o root ip-down.install $(DESTDIR)/$(EGDIR)/ip-down
+ rm -f ip-up.install ip-down.install
+ sed -e s/__DEVICE/$(MODEMDEV)/ < xisp.peers.device > xisp_$(MODEMDEV)
+ sed -e sM__DIALER_PATHM$(DESTDIR)/$(USRLIBPPP)M < xisp.peers.dialer > xisp_dialer
+- if [ ! -d $(DESTDIR)/$(ETCPPP)/peers ]; then $(INSTALL) -d $(DESTDIR)/$(ETCPPP)/peers; fi
+- if [ -f $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV) ]; then \
+- mv -f $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV) $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV).bak; fi
+- $(INSTALL) -g $(GROUP) -m 640 -o root xisp_$(MODEMDEV) $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV)
+- if [ -f $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer ]; then \
+- mv -f $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer.bak; fi
+- $(INSTALL) -g $(GROUP) -m 640 -o root xisp_dialer $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer
++ if [ ! -d $(DESTDIR)/$(EGDIR)/peers ]; then $(INSTALL) -d $(DESTDIR)/$(EGDIR)/peers; fi
++ $(INSTALL) -g $(GROUP) -m 640 -o root xisp_$(MODEMDEV) $(DESTDIR)/$(EGDIR)/peers/xisp_$(MODEMDEV)
++ $(INSTALL) -g $(GROUP) -m 640 -o root xisp_dialer $(DESTDIR)/$(EGDIR)/peers/xisp_dialer
+ rm -f xisp_$(MODEMDEV) xisp_dialer
+
+ clean:
diff --git a/comms/xisp/patches/patch-ab b/comms/xisp/patches/patch-ab
new file mode 100644
index 00000000000..a242d6b1175
--- /dev/null
+++ b/comms/xisp/patches/patch-ab
@@ -0,0 +1,49 @@
+$NetBSD: patch-ab,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- logs.c.orig Mon Oct 26 05:35:01 1998
++++ logs.c Mon Nov 30 16:25:23 1998
+@@ -142,10 +142,10 @@
+ htm.tm_hour=12;
+ htm.tm_min=0;
+ htm.tm_sec=0;
+-#ifndef SUNOS41x
+- htt=mktime(&htm);
+-#else
++#ifdef SUNOS41x
+ htt=timelocal(&htm);
++#else
++ htt=mktime(&htm);
+ #endif
+ memcpy(&ptm, localtime(&htt), sizeof(struct tm));
+
+@@ -2483,13 +2483,13 @@
+ {
+ char emsg[MSGLEN_ERR+1];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xISP: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xISP: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ exit(1);
+@@ -2529,10 +2529,10 @@
+ }
+ for (++p; *p==' '; p++);
+ strncpy(sparam, p, sizeof(sparam)-1);
+-#ifndef SUNOS41x
+- *data = strtoul(sparam, &endp, 10);
+-#else
++#ifdef SUNOS41x
+ *data = (unsigned long)strtol(sparam, &endp, 10);
++#else
++ *data = strtoul(sparam, &endp, 10);
+ #endif
+ return(line);
+ }
diff --git a/comms/xisp/patches/patch-ac b/comms/xisp/patches/patch-ac
new file mode 100644
index 00000000000..f1e579eaabe
--- /dev/null
+++ b/comms/xisp/patches/patch-ac
@@ -0,0 +1,71 @@
+$NetBSD: patch-ac,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- network.c.orig Mon Oct 26 05:35:01 1998
++++ network.c Mon Nov 30 18:25:26 1998
+@@ -26,13 +26,14 @@
+ #include <net/if.h>
+ #include <arpa/inet.h>
+ #include <string.h>
++#include <sys/param.h>
+ #include <unistd.h>
+
+ #ifdef SUNOS41x
+ extern int socket(), ioctl(), sscanf(), printf(), pclose();
+ #elif defined(SUNOS5x)
+ #include <sys/sockio.h>
+-#else
++#elif !(defined(BSD) && BSD >= 199306)
+
+ /* Returns kernel revision number (10*major+minor). Only used on Linux to
+ figure out what kind of parsing format to use for /proc/net/dev output */
+@@ -92,6 +93,10 @@
+ #define AddrOpen popen("/usr/bin/netstat -nr", "r")
+ #define AddrScanf sscanf(routeLine, "%*s %*s %*s %*s %*s %s", IF)
+ #define AddrClose while (fgets(routeLine,128,infofp) != NULL); pclose(infofp)
++#elif (defined(BSD) && BSD >= 199306)
++ #define AddrOpen popen("/usr/bin/netstat -nr", "r")
++ #define AddrScanf sscanf(routeLine, "%*s %*s %*s %*s %*s %*s %s", IF)
++ #define AddrClose while (fgets(routeLine,128,infofp) != NULL); pclose(infofp)
+ #else
+ #define AddrOpen fopen("/proc/net/route", "r")
+ #define AddrScanf sscanf(routeLine,"%s", IF)
+@@ -137,6 +142,12 @@
+ #define PktsScanf sscanf(line, "%s %*s %*s %*s %u %*s %u", \
+ interface, &recv, &trans)
+ #define PktsClose while (fgets(line,128,infofp) != NULL); pclose(infofp)
++#elif (defined(BSD) && BSD >= 199306)
++ #define PktsOpen popen((sprintf(line,"/usr/bin/netstat -n -I %s",IFName)) ? \
++ line:line, "r")
++ #define PktsScanf sscanf(line, "%s %*s %s %*s %u %*s %u", \
++ interface, network, &recv, &trans)
++ #define PktsClose while (fgets(line,128,infofp) != NULL); pclose(infofp)
+ #else
+ #define PktsOpen fopen("/proc/net/dev", "r")
+ #define PktsScanf sscanf(line, ((kernelRevNo()>20) ? \
+@@ -151,16 +162,26 @@
+ int IFLen = strlen(IFName);
+ FILE *infofp;
+ char line[129], interface[16];
++#if (defined(BSD) && BSD >= 199306)
++ char network[16];
++#endif
+ unsigned recv = 0, trans = 0;
+
+ infofp = PktsOpen; /* open IF stats info stream */
+ while (fgets(line, 128, infofp) != NULL) {
+ PktsScanf; /* read line by line */
+ if (!strncmp(interface,IFName,IFLen)) { /* scanning for interface */
++#if (defined(BSD) && BSD >= 199306)
++ /* Discard non-conforming multicast line. */
++ if (strncmp(network,"<Link>",strlen(network))) {
++#endif
+ PktsClose; /* found, close info stream */
+ if (pTX) *pTX = trans; /* if return storage avail */
+ if (pRX) *pRX = recv; /* save TXed/RXed separately */
+ return (recv + trans); /* return total I/O packets */
++#if (defined(BSD) && BSD >= 199306)
++ }
++#endif
+ }
+ }
+ PktsClose; /* close info stream */
diff --git a/comms/xisp/patches/patch-ad b/comms/xisp/patches/patch-ad
new file mode 100644
index 00000000000..c6d69239a39
--- /dev/null
+++ b/comms/xisp/patches/patch-ad
@@ -0,0 +1,38 @@
+$NetBSD: patch-ad,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- pcode.c.orig Mon Oct 26 05:35:01 1998
++++ pcode.c Tue Dec 1 02:54:29 1998
+@@ -18,6 +18,13 @@
+ For author contact information, look in the README file.
+ */
+
++#include <sys/param.h>
++
++#if (defined(BSD) && BSD >= 199306)
++#include <unistd.h>
++#include <stdlib.h>
++#endif
++
+ /* Password encryption/decryption data structures and routines */
+
+ static unsigned char pkey[8] = {0x87,0xB6,0xAC,0xAF,0xC6,0xC8,0x94,0x8C},
+@@ -62,7 +69,9 @@
+ void pencode(unsigned char *ep, unsigned char *pp)
+ {
+ int i;
++#if !(defined(BSD) && BSD >= 199306)
+ void setkey(), encrypt();
++#endif
+
+ cupack(ukey, pkey); /* unpack the key */
+ setkey(ukey); /* insert it in crypt's machine */
+@@ -78,7 +87,9 @@
+ void pdecode(unsigned char *pp, unsigned char *ep)
+ {
+ int i;
++#if !(defined(BSD) && BSD >= 199306)
+ void setkey(), encrypt();
++#endif
+
+ cupack(ukey, pkey); /* unpack the key */
+ setkey(ukey); /* insert it in crypt's machine */
diff --git a/comms/xisp/patches/patch-ae b/comms/xisp/patches/patch-ae
new file mode 100644
index 00000000000..92dd53f4cfa
--- /dev/null
+++ b/comms/xisp/patches/patch-ae
@@ -0,0 +1,21 @@
+$NetBSD: patch-ae,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- rcio.c.orig Mon Oct 26 05:35:01 1998
++++ rcio.c Mon Nov 30 16:25:37 1998
+@@ -155,13 +155,13 @@
+ {
+ char emsg[MSGLEN_ERR+1];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xISP: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xISP: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ exit(1);
diff --git a/comms/xisp/patches/patch-af b/comms/xisp/patches/patch-af
new file mode 100644
index 00000000000..e9ebcbf9ff4
--- /dev/null
+++ b/comms/xisp/patches/patch-af
@@ -0,0 +1,202 @@
+$NetBSD: patch-af,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xisp.c.orig Mon Oct 26 05:35:01 1998
++++ xisp.c Tue Dec 1 04:02:05 1998
+@@ -299,13 +299,13 @@
+ {
+ char emsg[MSGLEN_ERR+1];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xISP: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xISP: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xISP: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ exit(1);
+@@ -497,13 +497,20 @@
+ global.pipePath, global.pipePath);
+ exit(1);
+ }
++#if (defined(BSD) && BSD >= 199306)
++ if (mkfifo(Pipe, 0600)) /* directory is OK, so */
++ doErr("namedPipe: mkfifo"); /* create the FIFO node */
++#else
+ if (mknod(Pipe, S_IFIFO+0600, 0)) /* directory is OK, so */
+ doErr("namedPipe: mknod"); /* create the FIFO node */
++#endif
+ }
+-#ifndef SUNOS5x
+- fd = open(fname, O_RDONLY|O_NDELAY); /* and open it for reading */
+-#else
++#ifdef SUNOS5x
++ fd = open(fname, O_RDONLY|O_NONBLOCK); /* and open it for reading */
++#elif (defined(BSD) && BSD >= 199306)
+ fd = open(fname, O_RDONLY|O_NONBLOCK); /* and open it for reading */
++#else
++ fd = open(fname, O_RDONLY|O_NDELAY); /* and open it for reading */
+ #endif
+ if (fd < 0) /* bail out on error */
+ doErr("namedPipe: open");
+@@ -568,11 +575,11 @@
+
+ va_start(ap); /* start variable arg list */
+ fmt = va_arg(ap, char*); /* first string is format */
+-#ifndef SUNOS41x
+- bw = vsprintf(btmp, fmt, ap); /* pass the rest to vsprintf */
+-#else
++#ifdef BROKEN_VSPRINTF
+ vsprintf(btmp, fmt, ap);
+ bw = strlen(btmp);
++#else
++ bw = vsprintf(btmp, fmt, ap); /* pass the rest to vsprintf */
+ #endif
+ va_end(ap); /* end variable arg list */
+ if ((tot+bw) < (MSGLEN_BROWSER-1)) /* do we have space for new? */
+@@ -959,7 +966,7 @@
+ allow_detached is set, then init's PID (i.e., 1) is also considered
+ a valid parent PID. */
+
+-#if !defined(SUNOS41x) && !defined(SUNOS5x)
++#if !defined(SUNOS41x) && !defined(SUNOS5x) && !(defined(BSD) && BSD >= 199306)
+ int procPID(char *procname, int parentPID, int allow_detached)
+ {
+ DIR *procd;
+@@ -1015,6 +1022,8 @@
+
+ #ifdef SUNOS41x
+ infofp = popen("/bin/ps -aclxw", "r"); /* open proc info stream */
++#elif (defined(BSD) && BSD >= 199306)
++ infofp = popen("/bin/ps -aclxw", "r"); /* open proc info stream */
+ #else
+ infofp = popen("/bin/ps -el", "r"); /* open proc info stream */
+ #endif
+@@ -1026,6 +1035,10 @@
+ if (sscanf(psLine, "%*s %*s %d %d %*s"
+ " %*s %*s %*s %*s %*s %*s %*s"
+ " %*s %s", &pid, &ppid, name))
++#elif (defined(BSD) && BSD >= 199306)
++ if (sscanf(psLine, "%*s %d %d %*s"
++ " %*s %*s %*s %*s %*s %*s %*s"
++ " %*s %s", &pid, &ppid, name))
+ #else
+ if (sscanf(psLine, "%*s %*s %*s %d %d"
+ " %*s %*s %*s %*s %*s %*s %*s"
+@@ -1358,11 +1371,11 @@
+
+ va_start(ap);
+ fmt = va_arg(ap, char*);
+-#ifndef SUNOS41x
+- bw = vsprintf(buf, fmt, ap);
+-#else
++#ifdef BROKEN_VSPRINTF
+ vsprintf(buf, fmt, ap);
+ bw = strlen(buf);
++#else
++ bw = vsprintf(buf, fmt, ap);
+ #endif
+ va_end(ap);
+ fl_addto_browser(fd_logInfo->costBrowser, buf);
+@@ -1650,10 +1663,10 @@
+ strcat(res, "...");
+ len += 3;
+ while (swidth > hsize && len > 3) {
+-#ifndef SUNOS41x
+- memmove(&res[len-5], &res[len-3], 4);
+-#else
++#ifdef SUNOS41x
+ bcopy(&res[len-3], &res[len-5], 4);
++#else
++ memmove(&res[len-5], &res[len-3], 4);
+ #endif
+ len = strlen(res);
+ swidth = fl_get_string_width(FL_NORMAL_STYLE, FL_NORMAL_SIZE,
+@@ -2370,10 +2383,10 @@
+ if (dialWait) dialWait = 0; /* no more waiting */
+ }
+ else if (br < 0) { /* read failed */
+-#ifndef SUNOS41x
+- if (errno != EAGAIN) /* pipe output unavailable? */
++#ifdef SUNOS41x
++ if (errno != EWOULDBLOCK) /* pipe output unavailable? */
+ #else
+- if (errno != EWOULDBLOCK)
++ if (errno != EAGAIN)
+ #endif
+ doErr("doBUpdate: read"); /* no, abort with diagnostic */
+ fl_set_timer(btimer, BU_INTERVAL); /* yes, restart timer */
+@@ -2430,10 +2443,10 @@
+ fl_set_timer(btimer, BU_INTERVAL); /* and restart timer */
+ }
+ else if (br < 0) { /* read failed */
+-#ifndef SUNOS41x
+- if (errno != EAGAIN) /* pipe output unavailable? */
++#ifdef SUNOS41x
++ if (errno != EWOULDBLOCK) /* pipe output unavailable? */
+ #else
+- if (errno != EWOULDBLOCK)
++ if (errno != EAGAIN)
+ #endif
+ doErr("doBUpdate: read"); /* no, abort with diagnostic */
+ fl_set_timer(btimer, BU_INTERVAL); /* yes, restart timer */
+@@ -2476,10 +2489,10 @@
+ fl_set_timer(btimer, BU_INTERVAL); /* and restart timer */
+ }
+ else if (br < 0) { /* read failed */
+-#ifndef SUNOS41x
+- if (errno != EAGAIN) /* pipe output unavailable? */
++#ifdef SUNOS41x
++ if (errno != EWOULDBLOCK) /* pipe output unavailable? */
+ #else
+- if (errno != EWOULDBLOCK)
++ if (errno != EAGAIN)
+ #endif
+ doErr("doBUpdate: read"); /* no, abort with diagnostic */
+ fl_set_timer(btimer, BU_INTERVAL); /* yes, restart timer */
+@@ -3590,10 +3603,10 @@
+ if (a->cur < global.numISPs) {
+ p_dest = &xispOptions[a->cur];
+ p_src = &xispOptions[(a->cur)+1];
+-#ifndef SUNOS41x
+- memmove(p_dest, p_src, (global.numISPs-(a->cur))*sizeof(xisprc_t));
+-#else
++#ifdef SUNOS41x
+ bcopy(p_src, p_dest, (global.numISPs-(a->cur))*sizeof(xisprc_t));
++#else
++ memmove(p_dest, p_src, (global.numISPs-(a->cur))*sizeof(xisprc_t));
+ #endif
+ }
+ else
+@@ -5330,10 +5343,10 @@
+ if (sPTT < (global.numPTTs-1)) {
+ p_dest = &ptt[sPTT];
+ p_src = &ptt[sPTT+1];
+-#ifndef SUNOS41x
+- memmove(p_dest, p_src, (global.numPTTs-sPTT-1)*sizeof(ptt_t));
+-#else
++#ifdef SUNOS41x
+ bcopy(p_src, p_dest, (global.numPTTs-sPTT-1)*sizeof(ptt_t));
++#else
++ memmove(p_dest, p_src, (global.numPTTs-sPTT-1)*sizeof(ptt_t));
+ #endif
+ }
+ else {
+@@ -6710,10 +6723,10 @@
+ fontSelect(); /* select desired fonts */
+ (void) pppdVersion(); /* check pppd version */
+
+-#ifndef SUNOS41x
+- atexit(exitCleanup); /* register cleanup proc */
+-#else
++#ifdef SUNOS41x
+ on_exit(exitCleanup, 0);
++#else
++ atexit(exitCleanup); /* register cleanup proc */
+ #endif
+ recordPID(); /* check/write PID file */
+
diff --git a/comms/xisp/patches/patch-ag b/comms/xisp/patches/patch-ag
new file mode 100644
index 00000000000..187a479790c
--- /dev/null
+++ b/comms/xisp/patches/patch-ag
@@ -0,0 +1,86 @@
+$NetBSD: patch-ag,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xispdial.c.orig Mon Oct 26 05:35:01 1998
++++ xispdial.c Tue Dec 1 03:01:28 1998
+@@ -21,6 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <varargs.h>
++#include <sys/param.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <sys/types.h>
+@@ -93,13 +94,13 @@
+ {
+ char emsg[MSGLEN_ERR];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xispdial: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xispdial: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xispdial: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xispdial: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ if (pipeFD) close(pipeFD);
+@@ -121,10 +122,12 @@
+ if (!S_ISFIFO(st.st_mode)) /* is it a FIFO? */
+ doErr("namedPipe: stat"); /* nope, still not right! */
+ }
+-#ifndef SUNOS5x
+- fd = open(fname, O_WRONLY|O_NDELAY); /* yes, open it for writing */
+-#else
++#ifdef SUNOS5x
+ fd = open(fname, O_WRONLY|O_NONBLOCK); /* yes, open it for writing */
++#elif (defined(BSD) && BSD >= 199306)
++ fd = open(fname, O_WRONLY|O_NONBLOCK); /* yes, open it for writing */
++#else
++ fd = open(fname, O_WRONLY|O_NDELAY); /* yes, open it for writing */
+ #endif
+ if (fd < 0) /* error means no process has */
+ doErr("namedPipe: open"); /* opened it for reading */
+@@ -145,11 +148,11 @@
+
+ va_start(ap); /* start variable arg list */
+ fmt = va_arg(ap, char*); /* first string is format */
+-#ifndef SUNOS41x
+- iw = vsprintf(msg, fmt, ap); /* pass rest to vsprintf() */
+-#else
++#ifdef BROKEN_VSPRINTF
+ vsprintf(msg, fmt, ap);
+ iw = strlen(msg);
++#else
++ iw = vsprintf(msg, fmt, ap); /* pass rest to vsprintf() */
+ #endif
+ va_end(ap); /* end variable arg list */
+ bw = write(pipeFD, msg, strlen(msg)); /* write buffer to pipe */
+@@ -255,19 +258,19 @@
+ for (p=param; *p;) { /* scan the line */
+ if (*p == '\\') { /* if a '\\' is found */
+ if (escape) { /* if auto escaping selected */
+-#ifndef SUNOS41x
+- memmove(p+1, p, zlen); /* increase string len by 1 */
++#ifdef SUNOS41x
++ bcopy(p, p+1, zlen) /* increase string len by 1 */;
+ #else /* by duplicating the string */
+- bcopy(p, p+1, zlen); /* contents starting from */
++ memmove(p+1, p, zlen); /* contents starting from */
+ #endif /* next character position */
+ *p = '\\'; /* insert an extra '\\' */
+ p += 2; /* skip the next '\\' */
+ }
+ else { /* deletion of '\\'s desired */
+-#ifndef SUNOS41x
+- memmove(p, p+1, zlen); /* decrease string len by 1 */
++#ifdef SUNOS41x
++ bcopy(p+1, p, zlen); /* decrease string len by 1 */
+ #else
+- bcopy(p+1, p, zlen);
++ memmove(p, p+1, zlen);
+ #endif
+ }
+ }
diff --git a/comms/xisp/patches/patch-ah b/comms/xisp/patches/patch-ah
new file mode 100644
index 00000000000..25495538e51
--- /dev/null
+++ b/comms/xisp/patches/patch-ah
@@ -0,0 +1,22 @@
+$NetBSD: patch-ah,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xispid.c.orig Mon Oct 26 05:35:01 1998
++++ xispid.c Mon Nov 30 18:32:29 1998
+@@ -38,7 +38,7 @@
+ #include "common.h"
+ #include "version.h"
+
+-#ifdef SUNOS5x
++#if defined(SUNOS5x) || (defined(BSD) && BSD >= 199306)
+ #include <limits.h>
+ #endif
+
+@@ -53,7 +53,7 @@
+ #define NGROUPS_MAX NGROUPS
+ #endif
+
+-#ifndef SUNOS5x
++#ifndef HAVE_STRERROR
+ #ifdef GLIBC2
+ static const char *private_strerror (errnum)
+ #else
diff --git a/comms/xisp/patches/patch-ai b/comms/xisp/patches/patch-ai
new file mode 100644
index 00000000000..178f0229274
--- /dev/null
+++ b/comms/xisp/patches/patch-ai
@@ -0,0 +1,36 @@
+$NetBSD: patch-ai,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xispterm.c.orig Mon Oct 26 05:35:01 1998
++++ xispterm.c Mon Nov 30 16:41:25 1998
+@@ -88,13 +88,13 @@
+ {
+ char emsg[MSGLEN_ERR+1];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xisprccv: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xispterm: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xispterm: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xisprccv: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ exit(1);
+@@ -150,11 +150,11 @@
+
+ va_start(ap); /* start variable arg list */
+ fmt = va_arg(ap, char*); /* first string is format */
+-#ifndef SUNOS41x
+- bw = vsprintf(btmp, fmt, ap); /* pass the rest to vsprintf */
+-#else
++#ifdef BROKEN_VSPRINTF
+ vsprintf(btmp, fmt, ap);
+ bw = strlen(btmp);
++#else
++ bw = vsprintf(btmp, fmt, ap); /* pass the rest to vsprintf */
+ #endif
+ va_end(ap); /* end variable arg list */
+ if ((tot+bw) < (MSGLEN_BROWSER-1)) /* do we have space for new? */
diff --git a/comms/xisp/patches/patch-aj b/comms/xisp/patches/patch-aj
new file mode 100644
index 00000000000..2cb3316bb02
--- /dev/null
+++ b/comms/xisp/patches/patch-aj
@@ -0,0 +1,21 @@
+$NetBSD: patch-aj,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xisprccv.c.orig Mon Oct 26 05:35:01 1998
++++ xisprccv.c Mon Nov 30 16:40:18 1998
+@@ -465,13 +465,13 @@
+ {
+ char emsg[MSGLEN_ERR+1];
+
+-#ifndef SUNOS5x
++#ifdef HAVE_STRERROR
++ sprintf(emsg, "xisprccv: %s: %s\n", msg, strerror(errno));
++#else
+ if (errno < sys_nerr)
+ sprintf(emsg, "xisprccv: %s: %s\n", msg, sys_errlist[errno]);
+ else
+ sprintf(emsg, "xisprccv: %s: error #%d\n", msg, errno);
+-#else
+- sprintf(emsg, "xisprccv: %s: %s\n", msg, strerror(errno));
+ #endif
+ fputs(emsg, stderr);
+ exit(1);
diff --git a/comms/xisp/patches/patch-ak b/comms/xisp/patches/patch-ak
new file mode 100644
index 00000000000..56cb8e3d1a5
--- /dev/null
+++ b/comms/xisp/patches/patch-ak
@@ -0,0 +1,36 @@
+$NetBSD: patch-ak,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+
+--- xisp.man.orig Mon Oct 26 05:35:01 1998
++++ xisp.man Tue Dec 1 02:22:48 1998
+@@ -137,26 +137,26 @@
+ below).
+ .SH FILES
+ .TP
+-.I "/usr/lib/ppp/options.xisp"
++.I "@ETCPPP@/options.xisp"
+ Default options file for the pppd daemon. It is not installed by
+ default as of version 1.8 of xisp. It can be used to pass pppd any
+ extra options not supported by xisp.
+ .TP
+-.I "/usr/lib/ppp/xispdial"
++.I "@USRLIBPPP@/xispdial"
+ The special dialer program invoked by pppd
+ as instructed by xisp. Employs chat(8) to converse with the modem
+ and if manual login is selected, launches xispterm enabling the
+ user to login manually.
+ .TP
+-.I "/usr/lib/ppp/xispterm"
++.I "@USRLIBPPP@/xispterm"
+ A "bare bones" terminal emulation program invoked by xispdial
+ as a manual login terminal window.
+ .TP
+-.I "/usr/local/bin/xisprccv"
++.I "@USRLOCAL@/xisprccv"
+ Utility program for converting .xisprc files of all older versions to
+ the latest format. Understands database formats of version 1.2 and later.
+ .TP
+-.I "/usr/local/bin/xispid"
++.I "@USRLOCAL@/xispid"
+ Utility program for retrieving the real group id of the calling process.
+ Adapted from the GNU id(1) utility for use with xisp. Used in ip-up and
+ ip-down to screen users with permission to start pppd. For an example of
diff --git a/comms/xisp/pkg/COMMENT b/comms/xisp/pkg/COMMENT
new file mode 100644
index 00000000000..5128a97691d
--- /dev/null
+++ b/comms/xisp/pkg/COMMENT
@@ -0,0 +1 @@
+User-friendly X11 interface to pppd/chat.
diff --git a/comms/xisp/pkg/DESCR b/comms/xisp/pkg/DESCR
new file mode 100644
index 00000000000..834e7fd3b65
--- /dev/null
+++ b/comms/xisp/pkg/DESCR
@@ -0,0 +1,7 @@
+The xisp package implements a user-friendly interface to pppd/chat
+and provides maximum feedback from the dial-in and login phases on a
+browser screen, as well as a manual login terminal window. It also
+provides greater versatility in interrupting a call in progress and in
+general enhances the user's feeling of "what's going on", especially
+if she/he is not all that well acquainted with the intricacies of
+system log files.
diff --git a/comms/xisp/pkg/MESSAGE b/comms/xisp/pkg/MESSAGE
new file mode 100644
index 00000000000..29d271cd27f
--- /dev/null
+++ b/comms/xisp/pkg/MESSAGE
@@ -0,0 +1,11 @@
+Please make sure the file /etc/ppp/options exists.
+
+You need to install:
+
+ ${X11BASE}/share/examples/xisp/ip-down to /etc/ppp
+ ${X11BASE}/share/examples/xisp/ip-up to /etc/ppp
+ ${X11BASE}/share/examples/xisp/peers/xisp_modem to /etc/ppp/peers
+ ${X11BASE}/share/examples/xisp/peers/xisp_dialer to /etc/ppp/peers
+
+and make sure they are executable for user "root" and group "dialer"
+to be able to fully use this package.
diff --git a/comms/xisp/pkg/PLIST b/comms/xisp/pkg/PLIST
new file mode 100644
index 00000000000..c27301023fe
--- /dev/null
+++ b/comms/xisp/pkg/PLIST
@@ -0,0 +1,16 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 1998/12/03 15:08:53 frueauf Exp $
+bin/xisp
+bin/xispid
+bin/xisprccv
+libexec/xispdial
+libexec/xispterm
+man/man1/xisp.1
+share/doc/xisp/README
+share/doc/xisp/SECURITY
+share/examples/xisp/ip-up
+share/examples/xisp/ip-down
+share/examples/xisp/peers/xisp_modem
+share/examples/xisp/peers/xisp_dialer
+@dirrm share/examples/xisp/peers
+@dirrm share/examples/xisp
+@dirrm share/doc/xisp