summaryrefslogtreecommitdiff
path: root/textproc/2bsd-diff
diff options
context:
space:
mode:
authorNorikatsu Shigemura <nork@FreeBSD.org>2003-03-23 07:24:20 +0000
committerNorikatsu Shigemura <nork@FreeBSD.org>2003-03-23 07:24:20 +0000
commit52bd9c4f01eb576473eee1ddf5a8ac491bfbbb45 (patch)
tree8a3bb3cb8aa8cb6833ee78dd396f436b5684f1c9 /textproc/2bsd-diff
parentRemove unused MASTER_SITE_SUBDIR. (diff)
Add 2bsd-diff 2.11, 2.11BSD diff utility. It can process large
files with less memory. GNU Diff often can not work with files larger than 33% of datasize (from limit) due to memory exhaustion. PR: ports/50097 Submitted by: risner@stdio.com
Notes
Notes: svn path=/head/; revision=77225
Diffstat (limited to 'textproc/2bsd-diff')
-rw-r--r--textproc/2bsd-diff/Makefile30
-rw-r--r--textproc/2bsd-diff/distinfo1
-rw-r--r--textproc/2bsd-diff/files/patch-Makefile36
-rw-r--r--textproc/2bsd-diff/files/patch-diff.1146
-rw-r--r--textproc/2bsd-diff/files/patch-diff.c22
-rw-r--r--textproc/2bsd-diff/files/patch-diff.h37
-rw-r--r--textproc/2bsd-diff/files/patch-diffdir.c11
-rw-r--r--textproc/2bsd-diff/files/patch-diffreg.c21
-rw-r--r--textproc/2bsd-diff/pkg-descr7
-rw-r--r--textproc/2bsd-diff/pkg-plist2
10 files changed, 313 insertions, 0 deletions
diff --git a/textproc/2bsd-diff/Makefile b/textproc/2bsd-diff/Makefile
new file mode 100644
index 000000000000..caec5a2e876a
--- /dev/null
+++ b/textproc/2bsd-diff/Makefile
@@ -0,0 +1,30 @@
+# New ports collection makefile for: 2bsd-diff
+# Date created: Mon Mar 17 20:54:03 EST 2003
+# Whom: risner@stdio.com
+#
+# $FreeBSD$
+#
+
+PORTNAME= diff
+PORTVERSION= 2.11
+PORTREVISION= 0
+CATEGORIES= textproc
+MASTER_SITES= http://www.tribug.org/pub/tuhs/PDP-11/Distributions/ucb/2.11BSD/
+PKGNAMEPREFIX= 2bsd-
+DISTNAME= file8
+
+MAINTAINER= risner@stdio.com
+COMMENT= 2.11BSD diff utility
+
+EXTRACT_AFTER_ARGS= | ${TAR} -xf - bin/diff man/man1/diff.1
+WRKSRC= ${WRKDIR}/bin/diff
+
+USE_REINPLACE= YES
+
+MAN1= 2diff.1
+
+post-patch:
+ @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},g' \
+ ${WRKSRC}/../../man/man1/diff.1
+
+.include <bsd.port.mk>
diff --git a/textproc/2bsd-diff/distinfo b/textproc/2bsd-diff/distinfo
new file mode 100644
index 000000000000..1b479b4f8f77
--- /dev/null
+++ b/textproc/2bsd-diff/distinfo
@@ -0,0 +1 @@
+MD5 (file8.tar.gz) = 77397e6d554361c127592b1fea2d776f
diff --git a/textproc/2bsd-diff/files/patch-Makefile b/textproc/2bsd-diff/files/patch-Makefile
new file mode 100644
index 000000000000..7bb318b354b7
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-Makefile
@@ -0,0 +1,36 @@
+--- Makefile.orig Tue Oct 22 13:29:46 1996
++++ Makefile Wed Mar 19 01:29:12 2003
+@@ -1,9 +1,9 @@
+ # @(#)Makefile 4.1.1 1996/10/21
+ #
+-DIFF= /bin/diff
+-DIFFH= /usr/libexec/diffh
+-PR= /bin/pr
+-CFLAGS= -O -DDIFF='"${DIFF}"' -DDIFFH='"${DIFFH}"' -DPR='"${PR}"'
++DIFF= ${PREFIX}/bin/2diff
++DIFFH= ${PREFIX}/libexec/2diffh
++PR= /usr/bin/pr
++CFLAGS+=-DDIFF='"${DIFF}"' -DDIFFH='"${DIFFH}"' -DPR='"${PR}"'
+ SEPFLAG=-i
+ DESTDIR=
+
+@@ -14,14 +14,15 @@
+ all: diff diffh
+
+ diff: ${OBJS}
+- cc ${CFLAGS} -o diff ${OBJS} ${SEPFLAG} ${LDFLAGS}
++ ${CC} ${CFLAGS} -o diff ${OBJS} ${SEPFLAG} ${LDFLAGS}
+
+ diffh: diffh.o
+- cc -o diffh diffh.o ${SEPFLAG} ${LDFLAGS}
++ ${CC} ${CFLAGS} -o diffh diffh.o ${SEPFLAG} ${LDFLAGS}
+
+ clean:
+ rm -f diff diffh ${OBJS} diffh.o
+
+ install: all
+- install -s diff ${DESTDIR}/bin/diff
+- install -s diffh ${DESTDIR}/usr/libexec/diffh
++ ${BSD_INSTALL_PROGRAM} diff ${DIFF}
++ ${BSD_INSTALL_PROGRAM} diffh ${DIFFH}
++ ${BSD_INSTALL_MAN} ../../man/man1/diff.1 ${MANPREFIX}/man/man1/2diff.1
diff --git a/textproc/2bsd-diff/files/patch-diff.1 b/textproc/2bsd-diff/files/patch-diff.1
new file mode 100644
index 000000000000..bd70ddcd40ac
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diff.1
@@ -0,0 +1,146 @@
+--- ../../man/man1/diff.1.orig Tue Oct 22 14:00:30 1996
++++ ../../man/man1/diff.1 Wed Mar 19 02:06:08 2003
+@@ -4,12 +4,12 @@
+ .\"
+ .\" @(#)diff.1 6.4.1 (2.11BSD) 1996/10/21
+ .\"
+-.TH DIFF 1 "October 21, 1996"
++.TH 2DIFF 1 "October 21, 1996"
+ .UC 4
+ .SH NAME
+-diff \- differential file and directory comparator
++2diff \- 2.11BSD differential file and directory comparator
+ .SH SYNOPSIS
+-.B diff
++.B 2diff
+ [
+ .B \-l
+ ] [
+@@ -22,14 +22,14 @@
+ .B \-biwt
+ ] dir1 dir2
+ .br
+-.B diff
++.B 2diff
+ [
+ \fB\-cefhn
+ ] [
+ \fB\-biwt\fR
+ ] file1 file2
+ .br
+-.B diff
++.B 2diff
+ [
+ .BI \-D string
+ ] [
+@@ -38,10 +38,10 @@
+ file1 file2
+ .SH DESCRIPTION
+ If both arguments are directories,
+-.I diff
++.I 2diff
+ sorts the contents of the directories by name, and then runs the
+ regular file
+-.I diff
++.I 2diff
+ algorithm (described below)
+ on text files which are different.
+ Binary files which differ,
+@@ -51,7 +51,7 @@
+ .TP
+ .B \-l
+ long output format; each text file
+-.I diff
++.I 2diff
+ is piped through
+ .IR pr (1)
+ to paginate it,
+@@ -60,26 +60,26 @@
+ .TP
+ .B \-r
+ causes application of
+-.I diff
++.I 2diff
+ recursively to common subdirectories encountered.
+ .TP
+ .B \-s
+ causes
+-.I diff
++.I 2diff
+ to report files which are the same, which are otherwise not mentioned.
+ .TP
+ .B \-Sname
+ starts a directory
+-.I diff
++.I 2diff
+ in the middle beginning with file
+ .I name.
+ .PP
+ When run on regular files, and when comparing text files which differ
+ during directory comparison,
+-.I diff
++.I 2diff
+ tells what lines must be changed in the files to bring them into agreement.
+ Except in rare circumstances,
+-.I diff
++.I 2diff
+ finds a smallest sufficient set of file differences.
+ If neither
+ .I file1
+@@ -163,7 +163,7 @@
+ version-to-version
+ .I ed
+ scripts ($2,$3,...) made by
+-.I diff
++.I 2diff
+ need be on hand.
+ A `latest version' appears on
+ the standard output.
+@@ -212,7 +212,7 @@
+ file to the other are marked in both files with with `! '.
+
+ Changes which lie within <context> lines of each other are grouped
+-together on output. (This is a change from the previous ``diff -c''
++together on output. (This is a change from the previous ``2diff -c''
+ but the resulting output is usually much easier to interpret.)
+ .TP 9
+ .B \-h
+@@ -223,7 +223,7 @@
+ .TP
+ .B \-Dstring
+ causes
+-.I diff
++.I 2diff
+ to create a merged version of
+ .I file1
+ and
+@@ -260,12 +260,12 @@
+ .SH FILES
+ /tmp/d?????
+ .br
+-/usr/libexec/diffh for
++%%PREFIX%%/libexec/2diffh for
+ .B \-h
+ .br
+-/bin/diff for directory diffs
++%%PREFIX%%/bin/2diff for directory diffs
+ .br
+-/bin/pr
++/usr/bin/pr
+ .SH "SEE ALSO"
+ cmp(1), cc(1), comm(1), ed(1), diff3(1)
+ .SH DIAGNOSTICS
+@@ -279,11 +279,11 @@
+ When comparing directories with the
+ \fB\-b, -w\fP or \fB-i\fP
+ options specified,
+-.I diff
++.I 2diff
+ first compares the files ala
+ .I cmp,
+ and then decides to run the
+-.I diff
++.I 2diff
+ algorithm if they are not equal.
+ This may cause a small amount of spurious output if the files
+ then turn out to be identical because the only differences are
diff --git a/textproc/2bsd-diff/files/patch-diff.c b/textproc/2bsd-diff/files/patch-diff.c
new file mode 100644
index 000000000000..6be748081b3d
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diff.c
@@ -0,0 +1,22 @@
+--- diff.c.orig Wed Nov 13 05:31:26 1991
++++ diff.c Wed Mar 19 01:31:23 2003
+@@ -176,9 +176,10 @@
+ return (a > b ? a : b);
+ }
+
++sig_t
+ done()
+ {
+- if (tempfile)
++ if (tempfile[0])
+ unlink(tempfile);
+ exit(status);
+ }
+@@ -198,7 +199,6 @@
+ char *p;
+ {
+ register char *q;
+- char *realloc();
+
+ if ((q = realloc(p, (unsigned)n)) == NULL)
+ noroom();
diff --git a/textproc/2bsd-diff/files/patch-diff.h b/textproc/2bsd-diff/files/patch-diff.h
new file mode 100644
index 000000000000..31670f3f50f9
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diff.h
@@ -0,0 +1,37 @@
+--- diff.h.orig Thu Aug 29 06:44:35 1985
++++ diff.h Wed Mar 19 01:35:49 2003
+@@ -5,10 +5,11 @@
+ */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <ctype.h>
+ #include <sys/param.h>
+ #include <sys/stat.h>
+-#include <sys/dir.h>
++#include <dirent.h>
+ #include <signal.h>
+
+ /*
+@@ -61,7 +62,7 @@
+ */
+ int status;
+ int anychange;
+-char *tempfile; /* used when comparing against std input */
++char tempfile[MAXPATHLEN]; /* used when comparing against std input */
+
+ /*
+ * Variables for diffdir.
+@@ -77,9 +78,9 @@
+ char *file1, *file2, *efile1, *efile2;
+ struct stat stb1, stb2;
+
+-char *malloc(), *talloc(), *ralloc();
++char *talloc(), *ralloc();
+ char *savestr(), *splice(), *splicen();
+-char *mktemp(), *copytemp(), *rindex();
+-int done();
++char *copytemp();
++sig_t done();
+
+ extern char diffh[], diff[], pr[];
diff --git a/textproc/2bsd-diff/files/patch-diffdir.c b/textproc/2bsd-diff/files/patch-diffdir.c
new file mode 100644
index 000000000000..04bffd24e374
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diffdir.c
@@ -0,0 +1,11 @@
+--- diffdir.c.orig Wed Nov 13 05:31:29 1991
++++ diffdir.c Wed Mar 19 01:36:38 2003
+@@ -172,7 +172,7 @@
+ char *cp;
+ {
+ register struct dir *dp = 0, *ep;
+- register struct direct *rp;
++ register struct dirent *rp;
+ register int nitems, n;
+ DIR *dirp;
+
diff --git a/textproc/2bsd-diff/files/patch-diffreg.c b/textproc/2bsd-diff/files/patch-diffreg.c
new file mode 100644
index 000000000000..bfe0e069bb4a
--- /dev/null
+++ b/textproc/2bsd-diff/files/patch-diffreg.c
@@ -0,0 +1,21 @@
+--- diffreg.c.orig Tue Jan 11 14:39:33 1994
++++ diffreg.c Wed Mar 19 01:38:48 2003
+@@ -270,12 +270,12 @@
+ char buf[BUFSIZ];
+ register int i, f;
+
+- signal(SIGHUP,done);
+- signal(SIGINT,done);
+- signal(SIGPIPE,done);
+- signal(SIGTERM,done);
+- tempfile = mktemp("/tmp/dXXXXX");
+- f = creat(tempfile,0600);
++ signal(SIGHUP, (sig_t) done);
++ signal(SIGINT, (sig_t) done);
++ signal(SIGPIPE, (sig_t) done);
++ signal(SIGTERM, (sig_t) done);
++ strcpy(tempfile, "/tmp/dXXXXX");
++ f = mkstemp(tempfile);
+ if (f < 0) {
+ fprintf(stderr, "diff: ");
+ perror(tempfile);
diff --git a/textproc/2bsd-diff/pkg-descr b/textproc/2bsd-diff/pkg-descr
new file mode 100644
index 000000000000..86f09cfb82cf
--- /dev/null
+++ b/textproc/2bsd-diff/pkg-descr
@@ -0,0 +1,7 @@
+This is the original diff program from 2.11BSD. It works better
+with very large files on systems with datasize limits.
+
+Default FreeBSD limits datasize to 524288 kbytes. This means that
+GNU diff processes that require more than this much ram will fail.
+The 2.11BSD diff did not load the files in core and could operate
+on considerably less ram.
diff --git a/textproc/2bsd-diff/pkg-plist b/textproc/2bsd-diff/pkg-plist
new file mode 100644
index 000000000000..e71ed99c1daa
--- /dev/null
+++ b/textproc/2bsd-diff/pkg-plist
@@ -0,0 +1,2 @@
+bin/2diff
+libexec/2diffh