diff options
author | Norikatsu Shigemura <nork@FreeBSD.org> | 2003-03-23 07:24:20 +0000 |
---|---|---|
committer | Norikatsu Shigemura <nork@FreeBSD.org> | 2003-03-23 07:24:20 +0000 |
commit | 52bd9c4f01eb576473eee1ddf5a8ac491bfbbb45 (patch) | |
tree | 8a3bb3cb8aa8cb6833ee78dd396f436b5684f1c9 /textproc/2bsd-diff | |
parent | Remove 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/Makefile | 30 | ||||
-rw-r--r-- | textproc/2bsd-diff/distinfo | 1 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-Makefile | 36 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-diff.1 | 146 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-diff.c | 22 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-diff.h | 37 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-diffdir.c | 11 | ||||
-rw-r--r-- | textproc/2bsd-diff/files/patch-diffreg.c | 21 | ||||
-rw-r--r-- | textproc/2bsd-diff/pkg-descr | 7 | ||||
-rw-r--r-- | textproc/2bsd-diff/pkg-plist | 2 |
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 |