summaryrefslogtreecommitdiff
path: root/net/bsddip
diff options
context:
space:
mode:
authortron <tron>2006-06-30 16:17:27 +0000
committertron <tron>2006-06-30 16:17:27 +0000
commitef845bd3b7a1b2db01fc51e8712bfe82aaf62aa6 (patch)
tree6846bf9287cf2fb53c16548a4edd1da50339fbdf /net/bsddip
parent2d4f1ab8867baa90fc78e4db154ca492e41fef39 (diff)
downloadpkgsrc-ef845bd3b7a1b2db01fc51e8712bfe82aaf62aa6.tar.gz
Move "bsddip" package to "bsddip" directory.
Diffstat (limited to 'net/bsddip')
-rw-r--r--net/bsddip/DESCR22
-rw-r--r--net/bsddip/Makefile21
-rw-r--r--net/bsddip/PLIST17
-rw-r--r--net/bsddip/distinfo8
-rw-r--r--net/bsddip/patches/patch-aa154
-rw-r--r--net/bsddip/patches/patch-ab175
-rw-r--r--net/bsddip/patches/patch-ac69
7 files changed, 466 insertions, 0 deletions
diff --git a/net/bsddip/DESCR b/net/bsddip/DESCR
new file mode 100644
index 00000000000..cf651cb041e
--- /dev/null
+++ b/net/bsddip/DESCR
@@ -0,0 +1,22 @@
+What is DIP?
+
+
+DIP is mainly a tool to establish a SLIP connection. It handles all
+the necessary actions to set up the tty port and the modem, dial out
+and finally build up a SLIP connection between the tty port and the
+kernel. To do so, dip offers an own very simple command language (a
+mostly complete description can be found in the man page).
+
+Dip can handle both incoming and outgoing connections using password
+security for incoming connections.
+
+For more details, have a look at the man page!
+
+Author's comment:
+
+But what I want YOU to do is: Send me a postcard from your city/town.
+My address:
+ Joachim Bartz
+ Burgstaetter Strasse 17
+ 38678 Clausthal-Zellerfeld
+ Germany
diff --git a/net/bsddip/Makefile b/net/bsddip/Makefile
new file mode 100644
index 00000000000..29499de65e4
--- /dev/null
+++ b/net/bsddip/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile,v 1.1 2006/06/30 16:17:27 tron Exp $
+
+DISTNAME= bsddip-1.02
+CATEGORIES= net
+#
+# the actual master site is almost out of reach for everybody
+#MASTER_SITES= ftp://sun.rz.tu-clausthal.de/pub/bsddip/
+MASTER_SITES+= ${MASTER_SITE_LOCAL}
+EXTRACT_SUFX= .tar.Z
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+COMMENT= Dialup IP program
+
+NOT_FOR_PLATFORM= Interix-*-* # no sl(4) device
+
+NO_SRC_ON_FTP= Already in MASTER_SITE_LOCAL
+
+NO_CONFIGURE= yes
+MANCOMPRESSED_IF_MANZ= yes
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/bsddip/PLIST b/net/bsddip/PLIST
new file mode 100644
index 00000000000..8ef023f67a8
--- /dev/null
+++ b/net/bsddip/PLIST
@@ -0,0 +1,17 @@
+@comment $NetBSD: PLIST,v 1.1 2006/06/30 16:17:27 tron Exp $
+sbin/dip
+sbin/diplogin
+lib/dip/dialout.dip.sample
+lib/dip/ReadMe.HowTo
+lib/dip/sample2.dip
+lib/dip/diphosts
+lib/dip/sample.dip
+lib/dip/setup.sh.sample
+lib/dip/ReadMe
+lib/dip/sample1.dip
+lib/dip/startup.sh.sample
+man/cat8/dip.0
+man/cat8/diplogin.0
+man/man8/dip.8
+man/man8/diplogin.8
+@dirrm lib/dip
diff --git a/net/bsddip/distinfo b/net/bsddip/distinfo
new file mode 100644
index 00000000000..aa8ad870999
--- /dev/null
+++ b/net/bsddip/distinfo
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2006/06/30 16:17:27 tron Exp $
+
+SHA1 (bsddip-1.02.tar.Z) = f938ba32fcbb958c6a9632502d6728cb0a8bac4c
+RMD160 (bsddip-1.02.tar.Z) = 799b899cee5ef1b8a49c8a0929a2c4f0d17bcbab
+Size (bsddip-1.02.tar.Z) = 78191 bytes
+SHA1 (patch-aa) = 597aa71afc9cc8bcb38ad4be949d42630db0b840
+SHA1 (patch-ab) = 657e3dd81394df2d8789222776a14ce083a252b6
+SHA1 (patch-ac) = 0bf7e78142ef21167475fd9af4071494054016e9
diff --git a/net/bsddip/patches/patch-aa b/net/bsddip/patches/patch-aa
new file mode 100644
index 00000000000..174d1855c1d
--- /dev/null
+++ b/net/bsddip/patches/patch-aa
@@ -0,0 +1,154 @@
+$NetBSD: patch-aa,v 1.1 2006/06/30 16:17:27 tron Exp $
+
+--- Makefile.orig Sat Jul 1 01:41:05 1995
++++ Makefile Wed Jul 20 01:59:35 2005
+@@ -1,123 +1,39 @@
+-CC = gcc
+-
+-CCFLAG = -O2
+-DBFLAG = -ggdb -Wall
+-LDFLAG = -N -s
+-
++PROG = dip
++PROG1 = diplogin
++LINKS = ${BINDIR}/${PROG} ${BINDIR}/${PROG1}
+ VERSION = 1.01
+
+ BINTGT = dip
+-BINTGT1 = diplogin
+-BINDIR = /sbin/
+-BINGRP = bin
+-BINOWN = bin
+-BINMODE = 555
+-
+-MANSRC = dip.8
+-MANTGT = dip.0
+-MANTGT1 = diplogin.0
+-MANDIR = /usr/share/man/cat8/
+-MANGRP = bin
+-MANOWN = bin
+-MANMODE = 444
++BINDIR = ${PREFIX}/sbin
+
+-SMPDIR = /etc/dip.samples/
++MAN = dip.8
++MANDIR = ${PREFIX}/man
++MLINKS = dip.8 diplogin.8
++MANINSTALL = maninstall catinstall
++
++SAMPLES = samples/dialout.dip.sample samples/ReadMe.HowTo \
++ samples/sample2.dip samples/diphosts \
++ samples/sample.dip samples/setup.sh.sample \
++ samples/ReadMe samples/sample1.dip \
++ samples/startup.sh.sample
++
++SMPDIR = ${PREFIX}/lib/dip
+ SMPGRP = bin
+ SMPOWN = bin
+-SMPMODE = 755
++SMPMODE = 644
+
+ # OWNSLEEP= -DUSEOWNSLEEP
+
+-OBJS = attach.o command.o config.o daemon.o dip.o login.o modem.o ppp.o\
+- slip.o term.o tty.o
++SRCS = attach.c command.c config.c daemon.c dip.c login.c modem.c ppp.c\
++ slip.c term.c tty.c
+
+ .ifdef (OWNSLEEP)
+-OBJS += sleep.o
+-.endif
+-
+-
+-.SUFFIXES: .0 .1 .2 .3 .4 .5 .6 .7 .8
+-
+-
+-.8.0:
+- @echo "nroff -mandoc $(.IMPSRC) > $(.TARGET)"
+- @nroff -mandoc $(.IMPSRC) > $(.TARGET) || ( rm -f $(.TARGET) ; false )
+-
+-
+-.ifmake (debug)
+-.c.o: dip.h $(.IMPSRC)
+- $(CC) $(OWNSLEEP) $(DBFLAG) -c $(.IMPSRC)
+-.else
+-.c.o: dip.h $(.IMPSRC)
+- $(CC) $(OWNSLEEP) $(CCFLAG) -c $(.IMPSRC)
++SRCS += sleep.c
+ .endif
+
++afterinstall:
++ @if [ ! -d ${SMPDIR} ] ; then mkdir -p ${SMPDIR} ; fi
++ ${INSTALL} -c -o ${SMPOWN} -g ${SMPGRP} -m ${SMPMODE} \
++ ${SAMPLES} ${SMPDIR}
+
+-
+-all: dip
+-
+-
+-install: dip maninstall
+- install -c -s -o$(BINOWN) -g$(BINGRP) -m$(BINMODE) $(BINTGT) $(BINDIR)
+- rm -f $(BINDIR)$(BINTGT1)
+- ln $(BINDIR)$(BINTGT) $(BINDIR)$(BINTGT1)
+-
+-
+-dip: dip.h $(OBJS)
+- $(CC) $(OWNSLEEP) $(CCFLAG) $(LDFLAG) -o $(BINTGT) $(OBJS)
+-
+-
+-debug: dip.h $(OBJS)
+- $(CC) $(OWNSLEEP) $(DBFLAG) -o $(BINTGT) $(OBJS)
+-
+-
+-maninstall: man
+- install -c -o$(MANOWN) -g$(MANGRP) -m$(MANMODE) $(MANTGT) $(MANDIR)
+- rm -f $(MANDIR)$(MANTGT1)
+- ln $(MANDIR)$(MANTGT) $(MANDIR)$(MANTGT1)
+-
+-
+-man: $(MANTGT)
+-
+-
+-samples!
+- @echo Installing sample files in $(SMPDIR)...
+- @if [ -d $(SMPDIR) ] ; then \
+- echo The directory already exists! ; \
+- echo Aborting!!! ; \
+- false ; \
+- fi
+- install -d -o$(BINOWN) -g$(BINGRP) -m$(SMPMODE) $(SMPDIR)
+- install -c -o$(BINOWN) -g$(BINGRP) -m644 ./samples/* $(SMPDIR)
+- install -c -o$(BINOWN) -g$(BINGRP) -m744 ./samples/*.sh.* $(SMPDIR)
+-
+-clean:
+- rm -f $(BINTGT).core $(OBJS)
+-
+-
+-clobber: clean
+- rm -f $(BINTGT) $(MANTGT)
+-
+-
+-uninstall:
+- @if [ -f $(BINDIR)$(BINTGT1) ] ; then \
+- echo Removing $(BINDIR)$(BINTGT1) ; \
+- rm -f $(BINDIR)$(BINTGT1) ; \
+- fi
+- @if [ -f $(BINDIR)$(BINTGT) ] ; then \
+- echo Removing $(BINDIR)$(BINTGT) ; \
+- rm -f $(BINDIR)$(BINTGT) ; \
+- fi
+- @if [ -f $(MANDIR)$(MANTGT1) ] ; then \
+- echo Removing $(MANDIR)$(MANTGT1) ; \
+- rm -f $(MANDIR)$(MANTGT1) ; \
+- fi
+- @if [ -f $(MANDIR)$(MANTGT) ] ; then \
+- echo Removing $(MANDIR)$(MANTGT) ; \
+- rm -f $(MANDIR)$(MANTGT) ; \
+- fi
+- @if [ -d $(SMPDIR) ] ; then \
+- echo '' ; \
+- echo "Please remove $(SMPDIR) (and containing files) yourself!" ; \
+- echo '' ; \
+- fi
+\ No newline at end of file
++.include <bsd.prog.mk>
diff --git a/net/bsddip/patches/patch-ab b/net/bsddip/patches/patch-ab
new file mode 100644
index 00000000000..5e797ade33a
--- /dev/null
+++ b/net/bsddip/patches/patch-ab
@@ -0,0 +1,175 @@
+$NetBSD: patch-ab,v 1.1 2006/06/30 16:17:27 tron Exp $
+
+--- tty.c.orig Sat Jul 1 01:41:05 1995
++++ tty.c Sat Sep 9 08:37:14 1995
+@@ -140,9 +140,10 @@
+ int tty_lock ( char *path, int mode )
+ {
+
++#define MAX_LOCK_ATTEMPTS 3
+ struct passwd *pw;
+-
+- int fd;
++ char number[12], *temp_path;
++ int fd, i, saved_errno;
+
+
+ if ( mode ) /* locking on ? */
+@@ -152,32 +153,71 @@
+ return 0; /* standard input */
+ }
+
+- if ( saved_path != NULL )
++ temp_path = (char*) malloc ( sizeof ( PATH_LOCKD ) +
++ strlen("TMP..") + 10); /* max PID */
++
++ (void) sprintf ( number, "%u", (unsigned)getpid() );
++ (void) strcpy ( temp_path, PATH_LOCKD );
++ (void) strcat ( temp_path, "TMP.." );
++ (void) strcat ( temp_path, number );
++
++ if ( opt_debg )
++ printf ( "DIP: tty: trying to create lock temp file %s\n", temp_path );
++ if ( ( fd = open ( temp_path, O_CREAT|O_TRUNC|O_WRONLY, 0644 ) ) < 0)
+ {
+- free ( saved_path );
+- saved_path = NULL;
++ (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n",
++ temp_path, strerror ( errno ) );
++ free(temp_path);
++ return -1;
+ }
+
++ /*
++ * now enter our PID;
++ * Note: the 10 digits + newline are convention and cannot be changed
++ */
++ (void) sprintf ( number, "%10u\n", getpid() );
++ if ( opt_debg )
++ printf ( "DIP: tty: writing \"%10u\" into lock temp file\n", getpid() );
++ if ( write (fd, number, 11) != 11 )
++ {
++ (void) fprintf ( stderr, "DIP: tty: lock write error: %s\n",
++ strerror ( errno ) );
++ free(temp_path);
++ return -1;
++ }
++ (void) close ( fd );
++
++ free ( saved_path ); /* just in case [NB: free(NULL) is legal] */
+ saved_path = (char*) malloc ( sizeof ( PATH_LOCKD ) +
+- strlen ( path ) + 1 );
++ strlen ( path ) + 3 );
+
+ (void) strcpy ( saved_path, PATH_LOCKD );
++ (void) strcat ( saved_path, ".." );
+ (void) strcat ( saved_path, path );
+
+-
+- if ( ( fd = creat ( saved_path, 0644 ) ) < 0)
+- {
+- if ( errno != EEXIST )
++ if ( opt_debg )
++ printf ( "DIP: tty: linking %s to %s\n", temp_path, saved_path );
++ for ( i = 0; i < MAX_LOCK_ATTEMPTS; i++ )
+ {
+- (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n",
+- saved_path, strerror ( errno ) );
++ /* now attempt to actually get the lock */
++ if ( link ( temp_path, saved_path ) == 0 )
++ break;
++ sleep(2 * (i + 1));
++ }
++ saved_errno = errno;
++ (void) unlink ( temp_path );
++ free(temp_path);
++
++ if ( i >= MAX_LOCK_ATTEMPTS )
++ {
++ /* did not get it */
++ if ( saved_errno != EEXIST )
++ (void) fprintf ( stderr, "DIP: tty: lock: (%s): %s\n",
++ saved_path, strerror ( saved_errno ) );
++ else if ( opt_debg )
++ printf ( "DIP: tty: lock attempt failed, EEXIST\n" );
++ return -1;
+ }
+-
+- return -1;
+- }
+-
+- (void) close ( fd );
+-
+
+ /*
+ * Make sure UUCP owns the lockfile. Required by some packages.
+@@ -215,7 +255,26 @@
+ return 0;
+ }
+
++/*
++ * Enter daemon's PID into the lock file;
++ * This is icky.
++ */
++void tty_relock ( void )
++{
++ int fd;
++ char number[12];
+
++ if ( saved_path == NULL )
++ return;
++
++ (void) sprintf ( number, "%10u\n", (unsigned)getpid() );
++ if ( opt_debg )
++ printf ( "DIP: tty: rewriting lock file (PID = %u)\n", getpid() );
++ if ( (fd = open ( saved_path, O_WRONLY, 0 )) == -1 )
++ return;
++ (void) write ( fd, number, 11);
++ (void) close ( fd );
++}
+
+ /*
+ * Find a serial speed code in the table.
+@@ -965,7 +1024,6 @@
+ char *sp;
+ char path [ MAXPATHLEN ];
+
+-
+ /*
+ * Try opening the TTY device.
+ */
+@@ -985,8 +1043,10 @@
+ else
+ sp = name;
+
+-
+- if ( ( fd = open ( path, O_RDWR | O_NONBLOCK ) ) < 0 )
++ if ( tty_lock ( sp, 1 ) == -1 )
++ return -1;
++
++ if ( ( fd = open ( path, O_RDWR | O_NONBLOCK | O_EXCL ) ) < 0 )
+ {
+ (void) fprintf ( stderr, "DIP: tty: open(%s, RW): %s\n",
+ path, strerror ( errno ) );
+@@ -1118,10 +1178,4 @@
+ {
+ return 0 ;
+ }
+-
+-
+- /*
+- * OK, all done. Lock this terminal line.
+- */
+- return tty_lock ( sp, 1 );
+ }
+--- daemon.c.orig Sat Jul 1 01:41:05 1995
++++ daemon.c Sat Sep 9 08:20:00 1995
+@@ -168,6 +168,8 @@
+ openlog ( "DIP", LOG_PID, LOG_DAEMON );
+ }
+
++ /* note the race condition here; ick! */
++ tty_relock();
+
+ (void) signal ( SIGALRM, sig_catcher );
+ (void) alarm ( mydip.timeout );
diff --git a/net/bsddip/patches/patch-ac b/net/bsddip/patches/patch-ac
new file mode 100644
index 00000000000..bda703c39af
--- /dev/null
+++ b/net/bsddip/patches/patch-ac
@@ -0,0 +1,69 @@
+$NetBSD: patch-ac,v 1.1 2006/06/30 16:17:27 tron Exp $
+
+--- dip.h.orig 1995-07-01 00:41:05.000000000 +0100
++++ dip.h 2006-06-30 17:10:38.000000000 +0100
+@@ -43,17 +43,40 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <syslog.h>
+-#include <varargs.h>
+ #include <sys/param.h>
+ #include <sys/termios.h>
+ #include <sys/types.h>
+ #include <pwd.h>
+ #include <signal.h>
+ #include <sys/socket.h>
++#include <sys/time.h>
+ #include <net/if.h>
++#include <netinet/in.h>
++#ifdef __FreeBSD__
++#if __FreeBSD__ >= 2
++#include <osreldate.h>
++#endif
++#if __FreeBSD_version >= 300000
++#include <net/if_var.h>
++#include <sys/mbuf.h>
++#include <netinet/in_systm.h>
++#include <netinet/ip.h>
++#include <net/slcompress.h>
++#endif
++#endif /*__FreeBSD__*/
+ #include <net/slip.h>
++#if defined(__DragonFly__)
++#include <net/if_var.h>
++#include <sys/mbuf.h>
++#include <netinet/in_systm.h>
++#include <netinet/ip.h>
++#include <net/slcompress.h>
++#include <net/sl/if_slvar.h>
++#else
++#if !defined(__NetBSD__)
+ #include <net/if_slvar.h>
+-#include <netinet/in.h>
++#endif
++#endif
+ #include <arpa/inet.h>
+ #include <netdb.h>
+ extern int h_errno;
+@@ -121,7 +144,7 @@
+ /*
+ * Pfad- und Dateinamen-Konstanten
+ */
+-#define PATH_LOCKD "/var/spool/uucp/LCK.."
++#define PATH_LOCKD "/var/spool/lock/LCK"
+ #define PATH_ETC_DIPHOSTS "/etc/diphosts"
+ #define PATH_BIN_IFCONFIG "/sbin/ifconfig"
+ #define PATH_BIN_ROUTE "/sbin/route"
+@@ -135,7 +158,6 @@
+ /*
+ * Extern benoetigte Variablen
+ */
+-extern int errno;
+
+ extern short opt_debg; /* Debugging-output-flag */
+ extern short opt_verb; /* Verbose-flag */
+@@ -231,3 +253,4 @@
+ int tty_flush ( void );
+ int tty_close ( void );
+ int tty_open ( char * );
++void tty_relock ( void );