aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2001-08-10 09:43:22 +0000
committerPeter Wemm <peter@FreeBSD.org>2001-08-10 09:43:22 +0000
commit7f22ecb0da2f5623c8ad69cbab0e478a9709fb61 (patch)
tree2b4dc24b830b514680009ead3884ecb1c40974c7
parenta3b502f88fd3d67bf547634d411d567524c4c1b1 (diff)
downloadsrc-7f22ecb0da2f5623c8ad69cbab0e478a9709fb61.tar.gz
src-7f22ecb0da2f5623c8ad69cbab0e478a9709fb61.zip
Import cvs-1.11.1p1 onto vendor branch
Notes
Notes: svn path=/vendor/cvs/dist/; revision=81404
-rw-r--r--contrib/cvs/AUTHORS4
-rw-r--r--contrib/cvs/ChangeLog406
-rw-r--r--contrib/cvs/INSTALL38
-rw-r--r--contrib/cvs/Makefile.am66
-rw-r--r--contrib/cvs/Makefile.in681
-rw-r--r--contrib/cvs/NEWS42
-rw-r--r--contrib/cvs/TODO23
-rw-r--r--contrib/cvs/acconfig.h7
-rw-r--r--contrib/cvs/acinclude.m4231
-rw-r--r--contrib/cvs/aclocal.m4861
-rw-r--r--contrib/cvs/config.h.in47
-rwxr-xr-xcontrib/cvs/configure2428
-rw-r--r--contrib/cvs/configure.in168
-rw-r--r--contrib/cvs/contrib/ChangeLog57
-rw-r--r--contrib/cvs/contrib/Makefile.am108
-rw-r--r--contrib/cvs/contrib/Makefile.in420
-rwxr-xr-xcontrib/cvs/contrib/clmerge.in152
-rwxr-xr-xcontrib/cvs/contrib/cln_hist.in91
-rwxr-xr-xcontrib/cvs/contrib/commit_prep.in215
-rwxr-xr-xcontrib/cvs/contrib/cvs_acls.in141
-rwxr-xr-xcontrib/cvs/contrib/debug_check_log.sh197
-rwxr-xr-xcontrib/cvs/contrib/log.in208
-rwxr-xr-xcontrib/cvs/contrib/log_accum.in576
-rwxr-xr-xcontrib/cvs/contrib/mfpipe.in85
-rwxr-xr-xcontrib/cvs/contrib/rcslock.in235
-rwxr-xr-xcontrib/cvs/contrib/sccs2rcs.in281
-rwxr-xr-xcontrib/cvs/depcomp358
-rw-r--r--contrib/cvs/diff/ChangeLog67
-rw-r--r--contrib/cvs/diff/Makefile.am24
-rw-r--r--contrib/cvs/diff/Makefile.in369
-rw-r--r--contrib/cvs/diff/analyze.c39
-rw-r--r--contrib/cvs/diff/diff.c2
-rw-r--r--contrib/cvs/diff/diff3.c67
-rw-r--r--contrib/cvs/diff/dir.c10
-rw-r--r--contrib/cvs/diff/system.h13
-rw-r--r--contrib/cvs/doc/CVSvn.texi.in1
-rw-r--r--contrib/cvs/doc/ChangeLog145
-rw-r--r--contrib/cvs/doc/Makefile.am157
-rw-r--r--contrib/cvs/doc/Makefile.in601
-rw-r--r--contrib/cvs/doc/cvs.texinfo357
-rw-r--r--contrib/cvs/doc/cvsclient.texi12
-rwxr-xr-xcontrib/cvs/install-sh22
-rw-r--r--contrib/cvs/lib/ChangeLog66
-rw-r--r--contrib/cvs/lib/Makefile.am88
-rw-r--r--contrib/cvs/lib/Makefile.in490
-rw-r--r--contrib/cvs/lib/getdate.y46
-rw-r--r--contrib/cvs/lib/rename.c4
-rw-r--r--contrib/cvs/lib/system.h43
-rw-r--r--contrib/cvs/lib/xgssapi.h30
-rw-r--r--contrib/cvs/lib/xselect.h21
-rw-r--r--contrib/cvs/lib/xtime.h57
-rw-r--r--contrib/cvs/man/ChangeLog17
-rw-r--r--contrib/cvs/man/Makefile.am22
-rw-r--r--contrib/cvs/man/Makefile.in370
-rwxr-xr-xcontrib/cvs/missing265
-rwxr-xr-xcontrib/cvs/mkinstalldirs21
-rw-r--r--contrib/cvs/src/ChangeLog1077
-rw-r--r--contrib/cvs/src/Makefile.am144
-rw-r--r--contrib/cvs/src/Makefile.in676
-rw-r--r--contrib/cvs/src/add.c54
-rw-r--r--contrib/cvs/src/admin.c92
-rw-r--r--contrib/cvs/src/annotate.c277
-rw-r--r--contrib/cvs/src/checkout.c125
-rw-r--r--contrib/cvs/src/classify.c245
-rw-r--r--contrib/cvs/src/client.c343
-rw-r--r--contrib/cvs/src/commit.c84
-rw-r--r--contrib/cvs/src/create_adm.c15
-rw-r--r--contrib/cvs/src/cvs.h56
-rwxr-xr-xcontrib/cvs/src/cvsbug.in526
-rw-r--r--contrib/cvs/src/diff.c116
-rw-r--r--contrib/cvs/src/edit.c18
-rw-r--r--contrib/cvs/src/entries.c4
-rw-r--r--contrib/cvs/src/error.c18
-rw-r--r--contrib/cvs/src/error.h6
-rw-r--r--contrib/cvs/src/expand_path.c2
-rw-r--r--contrib/cvs/src/filesubr.c227
-rw-r--r--contrib/cvs/src/find_names.c18
-rw-r--r--contrib/cvs/src/history.c74
-rw-r--r--contrib/cvs/src/ignore.c42
-rw-r--r--contrib/cvs/src/import.c28
-rw-r--r--contrib/cvs/src/lock.c22
-rw-r--r--contrib/cvs/src/log.c197
-rw-r--r--contrib/cvs/src/login.c758
-rw-r--r--contrib/cvs/src/logmsg.c35
-rw-r--r--contrib/cvs/src/main.c219
-rw-r--r--contrib/cvs/src/mkmodules.c10
-rw-r--r--contrib/cvs/src/modules.c38
-rw-r--r--contrib/cvs/src/parseinfo.c10
-rw-r--r--contrib/cvs/src/patch.c51
-rw-r--r--contrib/cvs/src/rcs.c240
-rw-r--r--contrib/cvs/src/rcs.h10
-rw-r--r--contrib/cvs/src/rcscmds.c8
-rw-r--r--contrib/cvs/src/recurse.c24
-rw-r--r--contrib/cvs/src/release.c14
-rw-r--r--contrib/cvs/src/remove.c4
-rw-r--r--contrib/cvs/src/repos.c12
-rw-r--r--contrib/cvs/src/root.c473
-rw-r--r--contrib/cvs/src/run.c12
-rwxr-xr-xcontrib/cvs/src/sanity.sh6365
-rw-r--r--contrib/cvs/src/server.c445
-rw-r--r--contrib/cvs/src/stamp-h2.in1
-rw-r--r--contrib/cvs/src/status.c4
-rw-r--r--contrib/cvs/src/subr.c115
-rw-r--r--contrib/cvs/src/tag.c557
-rw-r--r--contrib/cvs/src/update.c131
-rw-r--r--contrib/cvs/src/update.h3
-rw-r--r--contrib/cvs/src/vers_ts.c4
-rw-r--r--contrib/cvs/src/version.c17
-rw-r--r--contrib/cvs/src/version.c.in86
-rw-r--r--contrib/cvs/src/watch.c6
-rw-r--r--contrib/cvs/src/wrapper.c8
-rw-r--r--contrib/cvs/stamp-h1.in1
-rw-r--r--contrib/cvs/tools/ChangeLog17
-rw-r--r--contrib/cvs/tools/Makefile.am21
-rw-r--r--contrib/cvs/tools/Makefile.in234
115 files changed, 20372 insertions, 5599 deletions
diff --git a/contrib/cvs/AUTHORS b/contrib/cvs/AUTHORS
new file mode 100644
index 000000000000..7184d29d177d
--- /dev/null
+++ b/contrib/cvs/AUTHORS
@@ -0,0 +1,4 @@
+Authors of GNU CVS
+
+Um, yeah. There were lots of 'em. See the "Credits" section of the
+README file and the individual ChangeLog files for more.
diff --git a/contrib/cvs/ChangeLog b/contrib/cvs/ChangeLog
index eaa0aea155c1..f22a7ba177d0 100644
--- a/contrib/cvs/ChangeLog
+++ b/contrib/cvs/ChangeLog
@@ -1,3 +1,409 @@
+2001-04-26 Derek Price <dprice@collab.net>
+
+ * cvs.spec.in: Don't include %{_infodir}/dir.
+ (krb5): Remove krb5-config from dependencies.
+
+ * cvs.spec: Regenerated.
+
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * configure.in: Update version to 1.11.1.
+
+ * Makefile.in: Regenerated with AM 1.4e as of today at 18:10 -0400
+ (EDT).
+ * aclocal.m4: Ditto.
+ * configure: Ditto.
+
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * NEWS: Correct punctuation.
+
+2001-04-25 Larry Jones <larry.jones@sdr.com>
+
+ * depcomp (aix, sgi): Correct previous fixes.
+
+2001-04-24 Larry Jones <larry.jones@sdr.com>
+
+ * depcomp (sgi): Remove stray HP-UX code.
+
+2001-04-18 Derek Price <dprice@collab.net>
+
+ * noautoconf.sh: New shell script to touch Makefile.in files and
+ prevent unecessary AUtomake rebuilds after updates.
+ * NEWS: Note this new scipt.
+
+2001-04-16 Larry Jones <larry.jones@sdr.com>
+
+ * depcomp (aix): Remove stray HP-UX code.
+
+2001-04-12 Larry Jones <larry.jones@sdr.com>
+
+ * mkinstalldirs: Newer version from Automake.
+
+2001-04-12 Larry Jones <larry.jones@sdr.com>
+
+ * depcomp: Newer version from Automake.
+
+2001-04-04 Larry Jones <larry.jones@sdr.com>
+
+ * depcomp: Don't count on $? being set in then or else clauses.
+
+2001-03-30 Larry Jones <larry.jones@sdr.com>
+
+ * NEWS: Note new rlog and rannotate commands.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * configure.in (AC_CHECK_FUNCS): Look for gettimeofday.
+
+ * config.h.in: Regenerated:
+ * configure: Ditto.
+ * stamp-h1.in: Ditto.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ New version of Automake (1.4e). With luck it works with the quirky BSD
+ Make.
+
+ * aclocal.m4: Regenerated.
+ * configure: Ditto.
+ * Makefile.in: Ditto.
+ * stamp-h1.in: Ditto.
+
+2001-02-28 Derek Price <derek.price@openavenue.com>
+
+ * acinclude.m4 (ACX_WITH_GSSAPI): Move the -L linker option back into
+ LIBS where it should be. LDFLAGS is a user variable.
+
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+2001-02-23 Derek Price <derek.price@openavenue.com>
+
+ * configure.in: Comment definition of PR_PROGRAM.
+
+ * configure: Regenerated.
+
+2001-02-22 Derek Price <derek.price@openavenue.com>
+ Pavel Roskin <proski@gnu.org>
+
+ * configure.in: Define PR_PROGRAM if `pr' has been found.
+
+ * config.h.in: Regenerated.
+ * configure: Regenerated.
+
+2001-02-20 Derek Price <derek.price@openavenue.com>
+
+ * acconfig.h (HAVE_GSSAPI): Removed. Entries in acconfig.h aren't
+ necesary when the full functionality of AC_DEFINE is used.
+ (HAVE_GSS_C_NT_HOSTBASED_SERVICE): Ditto.
+ * acinclude.m4 (ACX_WITH_GSSAPI): New file with GSSAPI configure code.
+ * configure.in: Use ACX_WITH_GSSAPI instead of writing GSSAPI code in
+ place.
+
+ * aclocal.m4: Regenerated.
+ * config.h.in: Regenerated.
+ * configure: Regenerated.
+
+2001-02-15 Derek Price <derek.price@openavenue.com>
+
+ * configure: Regenerated without beta automake macros.
+
+2001-02-14 Derek Price <derek.price@openavenue.com>
+
+ * configure.in (AC_CHECK_FUNCS): Alphebetize & reorganize. Add
+ cascading search for nanosleep, usleep, & select, in that order.
+ * config.h.in: Regenerated.
+ * configure: Regenerated.
+ * cvsnt.mak: List xtime.h & xselect.h dependancies.
+
+2001-02-14 Larry Jones <larry.jones@sdrc.com>
+
+ * cvsnt.dsp: Remove references to rtag.c & rtag.obj.
+ * cvsnt.mak: Ditto.
+
+2001-02-13 Derek Price <derek.price@openavenue.com>
+
+ * TODO: Add note about merging rdiff & diff.
+
+2001-02-13 Derek Price <derek.price@openavenue.com>
+
+ * TODO: Add note about cvs_temp_file.
+
+2001-02-07 Derek Price <derek.price@openavenue.com>
+
+ * cvs.spec.in (build): Remove the info 'dir' file so it doesn't get
+ installed accidentally.
+ (post): Install info files _into_ system dir file
+ (preun): uninstall info files from dir file
+ * cvs.spec: regenerated
+
+2001-01-31 Derek Price <derek.price@openavenue.com>
+
+ * TODO: Add a note about 'cvs add' w/o write access
+
+2001-01-29 Derek Price <derek.price@openavenue.com>
+
+ * NEWS: Rewrite the comment on the new ~/.cvspass functionality
+ * TODO: Add a note about testing login/logout
+
+2001-01-29 Derek Price <derek.price@openavenue.com>
+
+ * configure.in: Rewrite args to AC_TRY_COMMAND in a form that is
+ acceptable to both Autoconf 1.13 and the new 1.49 beta.
+
+ * configure: regenerated
+
+2001-01-29 Larry Jones <larry.jones@sdrc.com>
+
+ * configure.in: Check for syslog.h.
+ * configure, config.h.in: Regenerated.
+
+2001-01-17 Derek Price <derek.price@openavenue.com>
+
+ * configure.in: add machinery to check for the BSD VPATH bug
+ and check for texi2dvi.
+ * doc/Makefile.am: use the machinery
+ * diff/Makefile.in: changes to support 'make dist' from a build dir
+ * emx/Makefile.in: changes to support 'make dist' from a build dir
+ * os2/Makefile.in: changes to support 'make dist' from a build dir
+ * zlib/Makefile.in: changes to support 'make dist' from a build dir
+
+ * Makefile.in: regenerated
+ * aclocal.m4: regenerated
+ * configure: regenerated
+ * contrib/Makefile.in: regenerated
+ * doc/Makefile.in: regenerated
+ * lib/Makefile.in: regenerated
+ * man/Makefile.in: regenerated
+ * src/Makefile.in: regenerated
+ * tools/Makefile.in: regenerated
+ * vms/Makefile.in: regenerated
+ * windows-NT/Makefile.in: regenerated
+ * windows-NT/SCC/Makefile.in: regenerated
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+
+ * NEWS (new since 1.11): Add comment about VMS wildcards
+
+2001-01-05 Derek Price <derek.price@openavenue.com>
+
+ * configure.in (AC_OUTPUT): Move some script targets here
+ * contrib/Makefile.am (EXTRA_DIST, SUFFIXES, .pl:, .csh:): Move some
+ script targets to configure.in
+ * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
+ target to configure.in
+
+ * aclocal.m4: Regenerated due to change in Automake installation
+
+ * Makefile.in: Regenerated
+ * configure: ditto
+ * contrib/Makefile.in: ditto
+ * doc/Makefile.in: ditto
+ * lib/Makefile.in: ditto
+ * man/Makefile.in: ditto
+ * src/Makefile.in: ditto
+ * tools/Makefile.in: ditto
+ * vms/Makefile.in: ditto
+ * windows-NT/Makefile.in: ditto
+ * windows-NT/SCC/Makefile.in: ditto
+
+ * cvs.spec: updated timestamp
+ * stamp-h1.in: ditto
+ * doc/CVSvn.texi: ditto
+ * src/stamp-h2.in: ditto
+ * src/version.c: ditto
+
+ * contrib/clmerge.in: Rename from clmerge.pl
+ * contrib/cln_hist.in: Rename from cln_hist.pl
+ * contrib/commit_prep.in: Rename from commit_prep.pl
+ * contrib/cvs_acls.in: Rename from cvs_acls.pl
+ * contrib/log.in: Rename from log.pl
+ * contrib/log_accum.in: Rename from log_accum.pl
+ * contrib/mfpipe.in: Rename from mfpipe.pl
+ * contrib/rcslock.in: Rename from rcslock.pl
+ * contrib/sccs2rcs.in: Rename from scc2rcs.csh
+ * src/cvsbug.in: Rename from cvsbug.sh
+
+ * contrib/clmerge.pl: Rename to clmerge.in
+ * contrib/cln_hist.pl: Rename to cln_hist.in
+ * contrib/commit_prep.pl: Rename to commit_prep.in
+ * contrib/cvs_acls.pl: Rename to cvs_acls.in
+ * contrib/log.pl: Rename to log.in
+ * contrib/log_accum.pl: Rename to log_accum.in
+ * contrib/mfpipe.pl: Rename to mfpipe.in
+ * contrib/rcslock.pl: Rename to rcslock.in
+ * contrib/sccs2rcs.csh: Rename to sccs2rcs.in
+ * src/cvsbug.sh: Rename to cvsbug.in
+
+2001-01-03 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (remotecheck): depend on 'all'
+ * Makefile.in: regenerated
+
+2001-01-03 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in (DEP_FILES): Regenerated with new version of Automake
+ (DEP_FILES_conditional patch for BSD make compatibility)
+ * contrib/Makefile.in: ditto
+ * doc/Makefile.in: ditto
+ * lib/Makefile.in: ditto
+ * man/Makefile.in: ditto
+ * src/Makefile.in: ditto
+ * tools/Makefile.in: ditto
+ * vms/Makefile.in: ditto
+ * windows-NT/Makefile.in: ditto
+ * windows-NT/SCC/Makefile.in: ditto
+
+2000-12-28 Derek Price <derek.price@openavenue.com>
+
+ * INSTALL (BUILDING FROM SOURCES): Added a couple more platforms to the
+ build and test list.
+ (Building ... under Unix): Added note about BSD make and
+ --disable-dependency-tracking
+ (Building ... under Windows ...): Added note about using MSVC++ 6.0
+ (Building [on] other platforms): Added note about wincvs.org and
+ cvsnt.org. Added more complete note about BSD make and
+ --disable-dependency-tracking than the above
+
+2000-12-27 Derek Price <derek.price@openavenue.com>
+
+ * NEWS: Fix comments about the changes to ~/.cvspass
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (EXTRA_DIST): Add cvs.spec.in
+ (cvs.spec): new target
+ * Makefile.in: Regenerated
+ * aclocal.m4: update timestamp
+ * configure: Regenerated
+ * configure.in (AC_OUTPUT): Remove cvs.spec, doc/CVSvn.texi,
+ & src/version.c
+ * stamp-h1.in: update timestamp
+ * contrib/Makefile.in: ditto
+ * lib/Makefile.in: ditto
+ * man/Makefile.in: ditto
+ * tools/Makefile.in: ditto
+ * vms/Makefile.in: ditto
+ * windows-NT/Makefile.in: ditto
+ * windows-NT/SCC/Makefile.in: ditto
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * configure.in (AC_OUTPUT): Stretched
+ * configure: Regenerated
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * aclocal.m4: Regenerated due to Automake update
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+ * aclocal.m4: Regenerated due to a change to AM_PROG_ETAGS
+ * configure: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: removed newly unused files, added new stamp file,
+ and alphabetized.
+ * AUTHORS: Added this file to please Automake. Apparently, its
+ presence is mandated by the GNU coding standards.
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+ * NEWS: Add a comment about the Automake conversion
+ * aclocal.m4: Added this file for Automake
+ * config.h.in: Regenerated
+ * configure: Regenerated
+ * configure.in: Some changes to support Automake and support for
+ missing roff & ps2pdf programs.
+ * cvs.spec: Regenerated
+ * cvs.spec.in: New file leveraging Automake support
+ * depcomp: New Automake file
+ * install-sh: Newer version from Automake
+ * missing: New Automake file
+ * mkinstalldirs: Newer version from Automake
+ * stamp-h.in: Remove unused file
+ * stamp-h1.in: New Automake generated stamp file
+
+2000-11-30 Derek Price <derek.price@openavenue.com>
+ Stephen Kennedy <Stephen.Kennedy@havok.com>
+
+ * cvs.spec (krb5): Require krb5-devel for a build of the krb5 target
+
+2000-11-29 Derek Price <derek.price@openavenue.com>
+ Stephen Kennedy <Stephen.Kennedy@havok.com>
+
+ * cvs.spec (build, post, preun): remove an old, commented out
+ line and replace hardcoded paths with _infodir and _bindir as
+ appropriate
+ (files): replace file list with more generic and succinct one
+
+2000-11-15 Derek Price <derek.price@openavenue.com>
+
+ * TODO (198): added note about deprecating cvs_temp_name
+ * configure.in (AC_CHECK_FUNCS): added mkstemp to support
+ new cvs_temp_file function.
+ * config.h.in: regenerated
+ * configure: regenerated
+
+2000-11-08 Larry Jones <larry.jones@sdrc.com>
+
+ * configure.in: Check for getgroups function.
+ * configure, config.h.in: Regenerated.
+
+2000-11-07 Larry Jones <larry.jones@sdrc.com>
+
+ * Makefile.in (FLAGS_TO_PASS): Add INSTALL, INSTALL_DATA, and
+ INSTALL_PROGRAM.
+ (Reported by Christian Brechbuehler <christian@arsdigita.com>.)
+
+2000-11-03 Derek Price <derek.price@openavenue.com>
+
+ * cvs.spec (build): pass in --without-gssapi when configuring the main
+ package so that the Kerberized version of CVS doesn't get built when
+ the user happens to have Kerberos installed in the default location.
+
+2000-10-31 Derek Price <derek.price@openavenue.com>
+
+ * NEWS: Mention zlib was updated to 1.1.3.
+
+2000-10-30 Derek Price <derek.price@openavenue.com>
+
+ * cvs.spec: Fixed trapping for gssapi so that the RPM can be built
+ on a machine without Kerberos. Should now build standard RPM on a
+ machine without Kerberos and the standard RPM + the Kerberos RPM on
+ a machine with the Kerberos devel libraries.
+
+2000-10-26 Larry Jones <larry.jones@sdrc.com>
+
+ * configure.in: Get path to pr for diff.
+ (Patch submitted by Urs Thuermann <urs@isnogud.escape.de>.)
+ * configure: Regenerated.
+
+2000-10-18 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: Added .fname & .version, two temporary files used in spec
+ file creation.
+ * Makefile.in (distclean-local): clean .fname & .version
+ * cvs.spec: Replaced with a new version based on RedHat 6.2's spec file
+ for cvs 1.10.7. Edited heavily to include a krb5 subpackage for the
+ gssapi binary and fixed RedHat's info and man file placement.
+
+2000-10-17 Derek Price <derek.price@openavenue.com>
+
+ * NEWS: added a comment about the new CVSROOT format for pserver.
+
+2000-10-17 Derek Price <derek.price@openavenue.com>
+
+ * NEWS: added a comment about the new format of ~/.cvspass
+
+2000-10-09 Derek Price <derek.price@openavenue.com>
+
+ * cvsnt.mak: Some minor changes to allow CVS to compile correctly
+ under NT and Visual C++ 6.0.
+
2000-09-07 Larry Jones <larry.jones@sdrc.com>
* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
diff --git a/contrib/cvs/INSTALL b/contrib/cvs/INSTALL
index 1a1da8c99e62..589599ed1deb 100644
--- a/contrib/cvs/INSTALL
+++ b/contrib/cvs/INSTALL
@@ -134,6 +134,8 @@ i386 family:
Linux (kernel 1.2.x) (1.8.86)
Linux (kernel 2.0.x, RedHat 4.2) (1.10)
Linux (kernel 2.0.x, RedHat 5.x) (1.10)
+ Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
+ Linux (kernel 2.2.x, RedHat 7.x) (1.11)
BSDI 4.0 (1.10.7)
FreeBSD 2.1.5-stable (1.8.87)
NextSTEP 3.3 (1.7)
@@ -146,6 +148,7 @@ i386 family:
Windows NT 3.51 service pack 4 (1.9)
Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
Windows NT 4.0 (1.9 client and local)
+ Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
Windows 95 (1.9 client and local)
QNX (1.9.1 + patches for strippath() and va_list)
OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
@@ -284,6 +287,14 @@ Building from source code under Unix:
the --enable-encryption option. This option is disabled by
default.
+ If you want to disable automatic dependency tracking in the makefiles,
+ use the '--disable-dependency-tracking' option:
+
+ $ ./configure --disable-dependency-tracking
+
+ This avoids problems on some platforms. See the note at the end of this
+ file on BSD.
+
Try './configure --help' for further information on its usage.
NOTE ON CVS's USE OF NDBM:
@@ -390,7 +401,7 @@ behaviour:
-------------------------------------------------------------------------------
-Building from source code under Windows NT/95:
+Building from source code under Windows NT/95/98/2000:
You may find interesting information in windows-NT/README.
@@ -401,6 +412,14 @@ You may find interesting information in windows-NT/README.
3) MSVC will place the executable file cvs.exe in WinRel, or whatever
your target directory is.
+* From the top level directory, with MSVC++ 6.0 installed, something like the
+following also works:
+
+ C:\> vcvars32
+ C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
+
+* You might also try http://wincvs.org & http://www.cvsnt.org
+
-------------------------------------------------------------------------------
Building from source code under other platforms:
@@ -409,10 +428,25 @@ For OS/2, see os2/README and emx/README.
For VMS, see README.VMS
-For Macintosh, see macintosh/README.MacCVS
+For Macintosh, see macintosh/README.MacCVS, or, since that file isn't there
+anymore, you might try http://wincvs.org .
For a Java client, see jCVS (which is a separate package from CVS
itself, but which might be preferable to the Macintosh port mentioned
above, for example).
+ **** ****
+
+Builds are breaking on some systems (notably,
+BSD/OS thor.sdrc.com 4.0.1 BSDI BSD/OS 4.0.1 Kernel #3: Thu Mar 9 11:29:16 EST 2000
+) due to Automake's dependency tracking code. The work around for this is to
+comile without it by passing the '--disable-dependency-tracking' option to
+configure:
+
+ $ ./configure --disable-dependency-tracking
+
+This will allow a compile but make will no longer be tracking header
+dependencies. This means that if you make any changes to header files you may
+have to run 'make clean' before running a 'make' to get everything to compile.
+
-------------------------------------------------------------------------------
diff --git a/contrib/cvs/Makefile.am b/contrib/cvs/Makefile.am
new file mode 100644
index 000000000000..90b7324f7615
--- /dev/null
+++ b/contrib/cvs/Makefile.am
@@ -0,0 +1,66 @@
+## Process this file with automake to produce Makefile.in
+# Master Makefile for the GNU Concurrent Versions System.
+# Copyright (C) 1986, 1988-1992, 1994, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+AUTOMAKE_OPTIONS = 1.4a dist-bzip2
+
+## Subdirectories to run make in for the primary targets.
+# Unix source subdirs, where we'll want to run lint and etags:
+# This is a legacy variable from b4 Automake
+USOURCE_SUBDIRS = lib zlib diff src
+# All other subdirs:
+SUBDIRS = $(USOURCE_SUBDIRS) man doc contrib tools \
+ windows-NT os2 emx vms
+
+EXTRA_DIST = \
+ .cvsignore \
+ BUGS \
+ ChangeLog.zoo \
+ DEVEL-CVS \
+ FAQ \
+ HACKING \
+ MINOR-BUGS \
+ PROJECTS \
+ README.VMS \
+ TESTS \
+ build.com \
+ cvs-format.el \
+ cvs.spec \
+ cvs.spec.in \
+ cvsnt.dsp \
+ cvsnt.dsw \
+ cvsnt.mak
+
+.PHONY: remotecheck
+remotecheck: all
+ cd src && $(MAKE) $(AM_MAKEFLAGS) "$@"
+
+.PHONY: doc
+doc:
+ cd doc && $(MAKE) $(AM_MAKEFLAGS) "$@"
+
+## MAINTAINER Targets
+
+## cvs.spec ##
+# - cvs.spec needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+cvs.spec: $(srcdir)/cvs.spec.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/cvs.spec.in >cvs.tspec
+ mv cvs.tspec $(srcdir)/cvs.spec
+
+# for backwards compatibility with the old makefiles
+.PHONY: realclean
+realclean: maintainer-clean
diff --git a/contrib/cvs/Makefile.in b/contrib/cvs/Makefile.in
index f8384e173533..27af9dc6dc50 100644
--- a/contrib/cvs/Makefile.in
+++ b/contrib/cvs/Makefile.in
@@ -1,5 +1,20 @@
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
# Master Makefile for the GNU Concurrent Versions System.
-# Copyright (C) 1986, 1988-1992, 1994 Free Software Foundation, Inc.
+# Copyright (C) 1986, 1988-1992, 1994, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -11,274 +26,454 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-SHELL = /bin/sh
-#### Start of system configuration section. ####
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
-
-# If you use gcc, you should either run the fixincludes script that
-# comes with it or else use gcc with the -traditional option. Otherwise
-# ioctl calls will be compiled incorrectly on some systems.
-CC = @CC@
-AR = ar
-
-@SET_MAKE@
-
-# Set RANLIB = echo if your system doesn't have or need ranlib.
-RANLIB = @RANLIB@
-# Set YACC = bison or yacc, depending on which you have on your system
-YACC = @YACC@
-# Use cp if you don't have install.
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-
-DEFS = @DEFS@
-LIBS = @LIBS@
-
-INCLUDES = -I. -I../lib @includeopt@
-CFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
prefix = @prefix@
exec_prefix = @exec_prefix@
-# Where to install the executables.
bindir = @bindir@
-
-# Where to put the system-wide .cvsrc file
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
libdir = @libdir@
-
-# Where to put the Info files
infodir = @infodir@
-
-# Where to put the manual pages.
mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
-#### End of system configuration section. ####
-
-FLAGS_TO_PASS = \
- AR='$(AR)' \
- CC='$(CC)' \
- CFLAGS='$(CFLAGS)' \
- LDFLAGS='$(LDFLAGS)' \
- LIBPROGS='$(LIBPROGS)' \
- LIBS='$(LIBS)' \
- MAKE='$(MAKE)' \
- MAKEINFO='$(MAKEINFO)' \
- RANLIB='$(RANLIB)' \
- TEXI2DVI='$(TEXI2DVI)' \
- YACC='$(YACC)' \
- bindir='$(bindir)' \
- infodir='$(infodir)' \
- libdir='$(libdir)' \
- mandir='$(mandir)' \
- prefix='$(prefix)' \
- exec_prefix='$(exec_prefix)'
-
-DISTFILES = \
- COPYING COPYING.LIB INSTALL README TODO PROJECTS \
- BUGS MINOR-BUGS FAQ HACKING DEVEL-CVS TESTS \
- README.VMS build.com \
- ChangeLog NEWS ChangeLog.zoo \
- configure configure.in stamp-h.in config.h.in Makefile.in acconfig.h \
- cvs-format.el mkinstalldirs install-sh \
- cvsnt.mak cvsnt.dsp cvsnt.dsw \
- .cvsignore cvs.spec
-
-### Subdirectories to run make in for the primary targets.
-# Unix source subdirs, where we'll want to run lint and etags:
-USOURCE_SUBDIRS = lib zlib diff src
-# All other subdirs:
-SUBDIRS = ${USOURCE_SUBDIRS} man doc contrib tools \
- windows-NT os2 emx vms
-# Only make TAGS/tags files in these directories.
-TSUBDIRS= src lib
-
-# Set default target.
-all:
-
-.PHONY: all install uninstall installdirs
-all install uninstall installdirs: config.h Makefile all-local
- @for subdir in $(SUBDIRS); do \
- echo "making $@ in $$subdir"; \
- ( cd $$subdir && $(MAKE) $(FLAGS_TO_PASS) $@ ) || exit 1; \
- done
-
-installdirs: installdirs-local
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
-install: all install-local install-info
+top_builddir = .
-.PHONY: all-local
-all-local:
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
-.PHONY: info dvi clean-info install-info
-info dvi clean-info install-info:
- cd doc && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1
-
-.PHONY: install-local
-install-local: all-local
- @: nothing to do locally
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
-.PHONY: installdirs-local
-installdirs-local: all-local
- @: nothing to do locally
+AUTOMAKE_OPTIONS = 1.4a dist-bzip2
-.PHONY: tags
-tags:
- @for dir in $(TSUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
- @echo making $@ in .
- @ctags `for i in \`$(MAKE) SUBDIRS="$(TSUBDIRS)" ls\` ; do echo $(srcdir)/$$i ; done`
+# Unix source subdirs, where we'll want to run lint and etags:
+# This is a legacy variable from b4 Automake
+USOURCE_SUBDIRS = lib zlib diff src
+# All other subdirs:
+SUBDIRS = $(USOURCE_SUBDIRS) man doc contrib tools \
+ windows-NT os2 emx vms
-.PHONY: TAGS
-TAGS:
- @for dir in $(TSUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
- @echo making $@ in .
- @etags `for i in \`$(MAKE) SUBDIRS="$(TSUBDIRS)" ls | grep -v 'make\[[0-9]\]'\` ; do echo $(srcdir)/$$i ; done`
-.PHONY: ls
-ls:
- @echo $(DISTFILES)
- @for dir in $(SUBDIRS); do \
- for i in `cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ | grep -v 'make\[[0-9]\]'` ; do \
- echo $$dir/$$i ; \
- done ; \
+EXTRA_DIST = \
+ .cvsignore \
+ BUGS \
+ ChangeLog.zoo \
+ DEVEL-CVS \
+ FAQ \
+ HACKING \
+ MINOR-BUGS \
+ PROJECTS \
+ README.VMS \
+ TESTS \
+ build.com \
+ cvs-format.el \
+ cvs.spec \
+ cvs.spec.in \
+ cvsnt.dsp \
+ cvsnt.dsw \
+ cvsnt.mak
+
+EXEEXT =
+OBJEXT = o
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES = emx/Makefile os2/Makefile zlib/Makefile
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = all-recursive install-data-recursive \
+ install-exec-recursive installdirs-recursive install-recursive \
+ uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README ./stamp-h1.in AUTHORS COPYING COPYING.LIB \
+ ChangeLog INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h \
+ acinclude.m4 aclocal.m4 config.h.in configure configure.in \
+ depcomp install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$@ $(SHELL) ./config.status
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4): configure.in acinclude.m4
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1 stamp-h1T
+ @echo timestamp > stamp-h1T 2> /dev/null
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @mv stamp-h1T stamp-h1
+$(srcdir)/config.h.in: $(srcdir)/./stamp-h1.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/./stamp-h1.in; \
+ $(MAKE) $(srcdir)/./stamp-h1.in; \
+ else :; fi
+$(srcdir)/./stamp-h1.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ @rm -f $(srcdir)/./stamp-h1.in $(srcdir)/./stamp-h1.inT
+ @echo timestamp > $(srcdir)/./stamp-h1.inT 2> /dev/null
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @mv $(srcdir)/./stamp-h1.inT $(srcdir)/./stamp-h1.in
+
+distclean-hdr:
+ -rm -f config.h
+emx/Makefile: $(top_builddir)/config.status $(top_srcdir)/emx/Makefile.in
+ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+os2/Makefile: $(top_builddir)/config.status $(top_srcdir)/os2/Makefile.in
+ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+zlib/Makefile: $(top_builddir)/config.status $(top_srcdir)/zlib/Makefile.in
+ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
-.PHONY: clean
-clean: clean-local
- @for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
-
-.PHONY: distclean
-distclean: distclean-local
- @for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
- rm -f config.status
-
-.PHONY: realclean
-realclean: realclean-local
- @for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
- rm -f config.status
-
-.PHONY: mostlyclean-local
-mostlyclean-local:
- rm -f *~
-
-.PHONY: clean-local
-clean-local: mostlyclean-local
-
-.PHONY: distclean-local
-distclean-local: clean-local
- rm -f Makefile config.cache config.h config.log stamp-h
- rm -f tags TAGS
-
-.PHONY: realclean-local
-realclean-local: distclean-local
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags $(ETAGS_INCLUDE_OPTION)$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list @CONFIG@; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || $(ETAGS) $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $$here
+
+distclean-tags:
+ -rm -f TAGS ID
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+GZIP_ENV = --best
+
+distdir: $(DISTFILES)
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+ mkdir $(distdir)
+ $(mkinstalldirs) $(distdir)/contrib $(distdir)/emx $(distdir)/os2 $(distdir)/src $(distdir)/zlib
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+dist-bzip2: distdir
+ $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ chmod a-w $(distdir)
+ dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
+ && cd $(distdir)/=build \
+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && $(MAKE) $(AM_MAKEFLAGS) distclean \
+ && rm -f $(distdir).tar.gz \
+ && (test `find . -type f -print | wc -l` -eq 0 \
+ || (echo "Error: files left after distclean" 1>&2; \
+ exit 1) )
+ -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+ @echo "$(distdir).tar.gz is ready for distribution" | \
+ sed 'h;s/./=/g;p;x;p;x'
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+dist-all: dist dist-bzip2
+
+distclean: distclean-recursive
+ -rm -f config.status
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi:
+
+dvi-am:
+
+info:
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info:
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f config.status
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
-.PHONY: saber
-saber:
- @for dir in $(SUBDIRS); do cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
+mostlyclean-am: mostlyclean-generic
+
+.PHONY: $(RECURSIVE_TARGETS) all all-am check check-am clean \
+ clean-generic clean-recursive dist dist-all dist-bzip2 \
+ distcheck distclean distclean-generic distclean-hdr \
+ distclean-recursive distclean-tags distdir dvi dvi-am info \
+ info-am install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-man \
+ install-recursive install-strip installcheck installcheck-am \
+ installdirs installdirs-am installdirs-recursive \
+ maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-recursive tags tags-recursive uninstall \
+ uninstall-am uninstall-recursive
-.PHONY: check
-check:
- cd lib ; $(MAKE) $(FLAGS_TO_PASS)
- cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
- cd diff ; $(MAKE) $(FLAGS_TO_PASS)
- cd src ; $(MAKE) $(FLAGS_TO_PASS) check
.PHONY: remotecheck
-remotecheck:
- cd lib ; $(MAKE) $(FLAGS_TO_PASS)
- cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
- cd diff ; $(MAKE) $(FLAGS_TO_PASS)
- cd src ; $(MAKE) $(FLAGS_TO_PASS) remotecheck
-
-.PHONY: installcheck
-installcheck:
- cd lib ; $(MAKE) $(FLAGS_TO_PASS)
- cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
- cd diff ; $(MAKE) $(FLAGS_TO_PASS)
- cd src ; $(MAKE) $(FLAGS_TO_PASS) installcheck
-
-.PHONY: lint
-lint:
- @for dir in $(USOURCE_SUBDIRS); do cd $$dir && $(MAKE) $(FLAGS_TO_PASS) xlint || exit 1; cd ..; done
-
-.PHONY: dist
-GZIP=gzip --best
-GZIP_EXT=.gz
-TAR_VERBOSE=
-dist: spec
- rm -rf `cat .fname`
- ${MAKE} dist-dir DISTDIR="`cat .fname`"
- for dir in ${SUBDIRS}; do \
- ( DISTDIR="../`cat .fname`/$${dir}"; \
- cd $${dir} && \
- ${MAKE} dist-dir DISTDIR="$${DISTDIR}" \
- ); \
- done
- (unset GZIP; tar chf${TAR_VERBOSE} - `cat .fname` | ${GZIP} > "`cat .fname`.tar${GZIP_EXT}")
- rm -rf `cat .fname` .fname .version
-
-.PHONY: dist-dir
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
- done
+remotecheck: all
+ cd src && $(MAKE) $(AM_MAKEFLAGS) "$@"
+
+.PHONY: doc
+doc:
+ cd doc && $(MAKE) $(AM_MAKEFLAGS) "$@"
+
+# - cvs.spec needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+cvs.spec: $(srcdir)/cvs.spec.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/cvs.spec.in >cvs.tspec
+ mv cvs.tspec $(srcdir)/cvs.spec
+
+# for backwards compatibility with the old makefiles
+.PHONY: realclean
+realclean: maintainer-clean
-.PHONY: spec
-spec:
- rm -f .version .fname
- sed < $(srcdir)/src/version.c \
- -e '/version_string/!d' \
- -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
- -e q > .version
- echo > .fname cvs-`cat .version`
- rm -f `cat .fname`.spec
- sed < $(top_srcdir)/cvs.spec \
- -e 's/@VERSION@/'`cat .version`'/g' \
- > `cat .fname`.spec
-
-
-# For the justification of the following Makefile rules, see node
-# `Automatic Remaking' in GNU Autoconf documentation.
-Makefile: Makefile.in config.status
- CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
-
-# Use @CFLAGS@ not $(CFLAGS) because it would be confusing for "make CFLAGS="
-# to sometimes (i.e., if configure is modified) change the configured CFLAGS,
-# and sometimes not.
-config.status: configure
- CFLAGS="@CFLAGS@" ./config.status --recheck
-
-# The rules to run autoconf and autoheader are commented out. This is because
-# when the user unpacks a tarfile, configure.in might end up newer than
-# configure, but the user might not have (and does not need to have) autoconf
-# installed.
-#configure: configure.in #aclocal.m4
-# cd $(srcdir); autoconf
-
-config.h: stamp-h
-
-# This used to do a ./config.status --recheck, to update config.status with
-# any new #defines from config.h.in. The problem was that the rule itself
-# depends on config.status, so that the --recheck would get run several
-# times, which is bad if the user was trying to specify CFLAGS manually.
-# It was a big pain in the neck.
-stamp-h: config.h.in config.status
- CONFIG_FILES=$@ CONFIG_HEADERS=config.h ./config.status
-
-#config.h.in: stamp-h.in
-#stamp-h.in: configure.in #aclocal.m4 acconfig.h
-# cd $(srcdir); autoheader
-# date > $(srcdir)/stamp-h.in
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/contrib/cvs/NEWS b/contrib/cvs/NEWS
index cd5ad8717adb..cf6d4d5fc8da 100644
--- a/contrib/cvs/NEWS
+++ b/contrib/cvs/NEWS
@@ -1,3 +1,45 @@
+Changes since 1.11.1:
+
+* Read only access was broken - now fixed.
+
+Changes since 1.11:
+
+* There was a bug in the diff code which caused conflicts to be flagged which shouldn't
+have been. This has been fixed.
+
+* New "cvs rlog" and "cvs rannotate" commands have been added to get log
+messages and annotations without having to have a checked-out copy.
+
+* The VMS client now accepts wildcards if you're running VMS 7.x.
+
+* ZLIB has been updated to version 1.1.3, the most current version. This
+includes mostly some optimizations and minor bug fixes.
+
+* The ~/.cvspass file has a slightly modified format. CVSROOTs are now
+stored in a new canonical form - hostnames are now case insensitive and port
+numbers are always stored in the new format. Until a new login for a
+particular CVSROOT is performed with the new version of CVS, new and old
+versions of CVS should interoperate invisibly. After that point, an extra login
+using the old version of CVS may be necessary to continue to allow the new and
+old versions of CVS to interoperate using the same ~/.cvspass file and CVSROOT.
+The exception to this rule occurs when the CVSROOTs used with the different
+versions use case insensitively different hostnames, for example, "empress",
+and "empress.2-wit.com".
+
+* A password and a port number may now be specified in CVSROOT for pserver
+connections. The new format is:
+
+ :pserver:[[user][:password]@]host[:[port]]/path
+
+Note that passwords specified in a checkout command will be saved in the clear
+in the CVS/Root file in each created directory, so this is not recommended,
+except perhaps when accessing anonymous repositories or the like.
+
+* The distribution has been converted to use Automake. This shouldn't affect
+most users except to ease some portability concerns, but if you are building
+from the repository and encounter problems with the makefiles, you might try
+running ./noautoconf.sh after a fresh update -AC.
+
Changes since 1.10:
* The new "cvs version" command gives a short version message. If
diff --git a/contrib/cvs/TODO b/contrib/cvs/TODO
index 06d1ebc1d10b..1747b684cca3 100644
--- a/contrib/cvs/TODO
+++ b/contrib/cvs/TODO
@@ -790,3 +790,26 @@ reduced to zero, and the client need not even contact the server.
196. Using a CVSROOT with a trailing slash will confuse CVS. I think
we need to add a call to strip_trailing_slashes in root.c
(parse_cvsroot), but I haven't considered all of the ramifications.
+
+197. Analyze the difference between CVS_UNLINK & unlink_file. As far as I
+can tell, unlink_file aborts in noexec mode and CVS_UNLINK does not. I'm not
+sure it would be possible to remove even the use of temp files in noexec mode,
+but most unlinks should probably be using unlink_file and not CVS_UNLINK.
+
+198. Remove references to deprecated cvs_temp_name function.
+
+199. Add test for login & logout functionality, including support for
+backwards compatibility with old CVSROOTs.
+
+200. Make a 'cvs add' without write access a non-fatal error so that the
+user's Entries file is updated and future 'cvs diffs' will work properly. This
+should ease patch submission.
+
+201. cvs_temp_file should be creating temporary files in a privately owned
+subdirectory of of temp due to security issues on some systems.
+
+**
+202. Merge most of the diff & rdiff code. Enable rdiff to accept most diff
+options. Make rdiff output look like diff's. Make diff garbage go to stderr
+and only standard diff output go to stdout.
+** In progress - DRP
diff --git a/contrib/cvs/acconfig.h b/contrib/cvs/acconfig.h
index 15589e8f7a36..de9d3792b747 100644
--- a/contrib/cvs/acconfig.h
+++ b/contrib/cvs/acconfig.h
@@ -1,13 +1,6 @@
/* Define if you have MIT Kerberos version 4 available. */
#undef HAVE_KERBEROS
-/* Define if you have GSSAPI with MIT Kerberos version 5 available. */
-#undef HAVE_GSSAPI
-
-/* Define if GSS_C_NT_HOSTBASED_SERVICE is defined in the gssapi.h
- header file. Only relevant when using GSSAPI. */
-#undef HAVE_GSS_C_NT_HOSTBASED_SERVICE
-
/* Define if you want CVS to be able to be a remote repository client. */
#undef CLIENT_SUPPORT
diff --git a/contrib/cvs/acinclude.m4 b/contrib/cvs/acinclude.m4
new file mode 100644
index 000000000000..9968adf4d67d
--- /dev/null
+++ b/contrib/cvs/acinclude.m4
@@ -0,0 +1,231 @@
+/* This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details. */
+
+AC_DEFUN(ACX_WITH_GSSAPI,[
+#
+# Use --with-gssapi[=DIR] to enable GSSAPI support.
+#
+# defaults to enabled with DIR in default list below
+#
+# Search for /SUNHEA/ and read the comments about this default below.
+#
+AC_ARG_WITH([gssapi],
+ [ --with-gssapi=value GSSAPI directory],
+ [acx_gssapi_withgssapi=$withval], [acx_gssapi_withgssapi=yes])dnl
+
+dnl
+dnl FIXME - cache withval and obliterate later cache values when options change
+dnl
+#
+# Try to locate a GSSAPI installation if no location was specified, assuming
+# GSSAPI was enabled (the default).
+#
+if test -n "$acx_gssapi_cv_gssapi"; then
+ # Granted, this is a slightly ugly way to print this info, but the
+ # AC_CHECK_HEADER used in the search for a GSSAPI installation makes using
+ # AC_CACHE_CHECK worse
+ AC_MSG_CHECKING([for GSSAPI])
+else :; fi
+AC_CACHE_VAL([acx_gssapi_cv_gssapi], [
+if test x$acx_gssapi_withgssapi = xyes; then
+ # --with but no location specified
+ # assume a gssapi.h or gssapi/gssapi.h locates our install.
+ #
+ # This isn't always strictly true. For instance Solaris 7's SUNHEA (header)
+ # package installs gssapi.h whether or not the necessary libraries are
+ # installed. I'm still not sure whether to consider this a bug. The long
+ # way around is to not consider GSSPAI installed unless gss_import_name is
+ # found, but that brings up a lot of other hassles, like continuing to let
+ # gcc & ld generate the error messages when the user uses --with-gssapi=dir
+ # as a debugging aid. The short way around is to disable GSSAPI by default,
+ # but I think Sun users have been faced with this for awhile and I haven't
+ # heard many complaints.
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ for acx_gssapi_cv_gssapi in yes /usr/kerberos /usr/cygnus/kerbnet no; do
+ if test x$acx_gssapi_cv_gssapi = xno; then
+ break
+ fi
+ if test x$acx_gssapi_cv_gssapi = xyes; then
+ AC_CHECKING([for GSSAPI])
+ else
+ CPPFLAGS="$acx_gssapi_save_CPPFLAGS -I$acx_gssapi_cv_gssapi/include"
+ AC_CHECKING([for GSSAPI in $acx_gssapi_cv_gssapi])
+ fi
+ unset ac_cv_header_gssapi_h
+ unset ac_cv_header_gssapi_gssapi_h
+ AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h])
+ if test "$ac_cv_header_gssapi_h" = "yes" ||
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ break
+ fi
+ done
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+else
+ acx_gssapi_cv_gssapi=$acx_gssapi_withgssapi
+fi
+AC_MSG_CHECKING([for GSSAPI])
+])dnl
+AC_MSG_RESULT([$acx_gssapi_cv_gssapi])
+
+#
+# Set up GSSAPI includes for later use. We don't bother to check for
+# $acx_gssapi_cv_gssapi=no here since that will be caught later.
+#
+if test x$acx_gssapi_cv_gssapi = yes; then
+ # no special includes necessary
+ GSSAPI_INCLUDES=""
+else
+ # GSSAPI at $acx_gssapi_cv_gssapi (could be 'no')
+ GSSAPI_INCLUDES=" -I$acx_gssapi_cv_gssapi/include"
+fi
+
+#
+# Get the rest of the information CVS needs to compile with GSSAPI support
+#
+if test x$acx_gssapi_cv_gssapi != xno; then
+ # define HAVE_GSSAPI and set up the includes
+ AC_DEFINE([HAVE_GSSAPI],, [Define if you have GSSAPI with Kerberos version 5 available.])
+ includeopt=$includeopt$GSSAPI_INCLUDES
+
+ # locate any other headers
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS=$CPPFLAGS$GSSAPI_INCLUDES
+ dnl We don't use HAVE_KRB5_H anywhere, but including it here might make it
+ dnl easier to spot errors by reading configure output
+ AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h krb5.h])
+ # And look through them for GSS_C_NT_HOSTBASED_SERVICE or its alternatives
+ AC_CACHE_CHECK([for GSS_C_NT_HOSTBASED_SERVICE], [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=no
+ if test "$ac_cv_header_gssapi_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=yes],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_generic_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi_generic.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi_generic.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi])
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service != yes &&
+ test $acx_gssapi_cv_gss_c_nt_hostbased_service != no; then
+ # don't define for yes since that means it already means something and
+ # don't define for no since we'd rather the compiler catch the error
+ AC_DEFINE_UNQUOTED([GSS_C_NT_HOSTBASED_SERVICE], [$acx_gssapi_cv_gss_c_nt_hostbased_service],
+[Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't defined
+in the gssapi.h header file. MIT Kerberos 1.2.1 requires this. Only relevant
+when using GSSAPI.])
+ fi
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+
+ # Expect the libs to be installed parallel to the headers
+ #
+ # We could try once with and once without, but I'm not sure it's worth the
+ # trouble.
+ if test x$acx_gssapi_cv_gssapi != xyes; then
+ if test -z "$LIBS"; then
+ LIBS="-L$acx_gssapi_cv_gssapi/lib"
+ else
+ LIBS="-L$acx_gssapi_cv_gssapi/lib $LIBS"
+ fi
+ else :; fi
+
+ dnl What happens if we want to enable, say, krb5 and some other GSSAPI
+ dnl authentication method at the same time?
+ #
+ # Some of the order below is particular due to library dependencies
+ #
+
+ #
+ # des Heimdal K 0.3d, but Heimdal seems to be set up such
+ # that it could have been installed from elsewhere.
+ #
+ AC_SEARCH_LIBS([des_set_odd_parity], [des])
+
+ #
+ # com_err Heimdal K 0.3d
+ #
+ # com_err MIT K5 v1.2.2-beta1
+ #
+ AC_SEARCH_LIBS([com_err], [com_err])
+
+ #
+ # asn1 Heimdal K 0.3d -lcom_err
+ #
+ AC_SEARCH_LIBS([initialize_asn1_error_table_r], [asn1])
+
+ #
+ # resolv required, but not installed by Heimdal K 0.3d
+ #
+ # resolv MIT K5 1.2.2-beta1
+ # Linux 2.2.17
+ #
+ AC_SEARCH_LIBS([__dn_expand], [resolv])
+
+ #
+ # roken Heimdal K 0.3d -lresolv
+ #
+ AC_SEARCH_LIBS([roken_gethostbyaddr], [roken])
+
+ #
+ # k5crypto MIT K5 v1.2.2-beta1
+ #
+ AC_SEARCH_LIBS([valid_enctype], [k5crypto])
+
+ #
+ # gen ? ? ? Needed on Irix 5.3 with some
+ # Irix 5.3 version of Kerberos. I'm not
+ # sure which since Irix didn't
+ # get any testing this time
+ # around. Original comment:
+ #
+ # This is necessary on Irix 5.3, in order to link against libkrb5 --
+ # there, an_to_ln.o refers to things defined only in -lgen.
+ #
+ AC_SEARCH_LIBS([compile], [gen])
+
+ #
+ # krb5 ? ? ? -lgen -l???
+ # Irix 5.3
+ #
+ # krb5 MIT K5 v1.1.1
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err
+ # Linux 2.2.17
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err -lresolv
+ #
+ # krb5 Heimdal K 0.3d -lasn1 -lroken -ldes
+ #
+ AC_SEARCH_LIBS([krb5_free_context], [krb5])
+
+ #
+ # gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
+ # order to prefer MIT Kerberos. If both MIT & Heimdal
+ # Kerberos are installed and in the path, this will leave
+ # some of the libraries above in LIBS unnecessarily, but
+ # noone would ever do that, right?
+ #
+ # gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
+ #
+ # gssapi Heimdal K 0.3d -lkrb5
+ #
+ AC_SEARCH_LIBS([gss_import_name], [gssapi_krb5 gssapi])
+fi
+])dnl
diff --git a/contrib/cvs/aclocal.m4 b/contrib/cvs/aclocal.m4
new file mode 100644
index 000000000000..a9c5488653fb
--- /dev/null
+++ b/contrib/cvs/aclocal.m4
@@ -0,0 +1,861 @@
+# aclocal.m4 generated automatically by aclocal 1.4e
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+/* This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details. */
+
+AC_DEFUN(ACX_WITH_GSSAPI,[
+#
+# Use --with-gssapi[=DIR] to enable GSSAPI support.
+#
+# defaults to enabled with DIR in default list below
+#
+# Search for /SUNHEA/ and read the comments about this default below.
+#
+AC_ARG_WITH([gssapi],
+ [ --with-gssapi=value GSSAPI directory],
+ [acx_gssapi_withgssapi=$withval], [acx_gssapi_withgssapi=yes])dnl
+
+dnl
+dnl FIXME - cache withval and obliterate later cache values when options change
+dnl
+#
+# Try to locate a GSSAPI installation if no location was specified, assuming
+# GSSAPI was enabled (the default).
+#
+if test -n "$acx_gssapi_cv_gssapi"; then
+ # Granted, this is a slightly ugly way to print this info, but the
+ # AC_CHECK_HEADER used in the search for a GSSAPI installation makes using
+ # AC_CACHE_CHECK worse
+ AC_MSG_CHECKING([for GSSAPI])
+else :; fi
+AC_CACHE_VAL([acx_gssapi_cv_gssapi], [
+if test x$acx_gssapi_withgssapi = xyes; then
+ # --with but no location specified
+ # assume a gssapi.h or gssapi/gssapi.h locates our install.
+ #
+ # This isn't always strictly true. For instance Solaris 7's SUNHEA (header)
+ # package installs gssapi.h whether or not the necessary libraries are
+ # installed. I'm still not sure whether to consider this a bug. The long
+ # way around is to not consider GSSPAI installed unless gss_import_name is
+ # found, but that brings up a lot of other hassles, like continuing to let
+ # gcc & ld generate the error messages when the user uses --with-gssapi=dir
+ # as a debugging aid. The short way around is to disable GSSAPI by default,
+ # but I think Sun users have been faced with this for awhile and I haven't
+ # heard many complaints.
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ for acx_gssapi_cv_gssapi in yes /usr/kerberos /usr/cygnus/kerbnet no; do
+ if test x$acx_gssapi_cv_gssapi = xno; then
+ break
+ fi
+ if test x$acx_gssapi_cv_gssapi = xyes; then
+ AC_CHECKING([for GSSAPI])
+ else
+ CPPFLAGS="$acx_gssapi_save_CPPFLAGS -I$acx_gssapi_cv_gssapi/include"
+ AC_CHECKING([for GSSAPI in $acx_gssapi_cv_gssapi])
+ fi
+ unset ac_cv_header_gssapi_h
+ unset ac_cv_header_gssapi_gssapi_h
+ AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h])
+ if test "$ac_cv_header_gssapi_h" = "yes" ||
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ break
+ fi
+ done
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+else
+ acx_gssapi_cv_gssapi=$acx_gssapi_withgssapi
+fi
+AC_MSG_CHECKING([for GSSAPI])
+])dnl
+AC_MSG_RESULT([$acx_gssapi_cv_gssapi])
+
+#
+# Set up GSSAPI includes for later use. We don't bother to check for
+# $acx_gssapi_cv_gssapi=no here since that will be caught later.
+#
+if test x$acx_gssapi_cv_gssapi = yes; then
+ # no special includes necessary
+ GSSAPI_INCLUDES=""
+else
+ # GSSAPI at $acx_gssapi_cv_gssapi (could be 'no')
+ GSSAPI_INCLUDES=" -I$acx_gssapi_cv_gssapi/include"
+fi
+
+#
+# Get the rest of the information CVS needs to compile with GSSAPI support
+#
+if test x$acx_gssapi_cv_gssapi != xno; then
+ # define HAVE_GSSAPI and set up the includes
+ AC_DEFINE([HAVE_GSSAPI],, [Define if you have GSSAPI with Kerberos version 5 available.])
+ includeopt=$includeopt$GSSAPI_INCLUDES
+
+ # locate any other headers
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS=$CPPFLAGS$GSSAPI_INCLUDES
+ dnl We don't use HAVE_KRB5_H anywhere, but including it here might make it
+ dnl easier to spot errors by reading configure output
+ AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h krb5.h])
+ # And look through them for GSS_C_NT_HOSTBASED_SERVICE or its alternatives
+ AC_CACHE_CHECK([for GSS_C_NT_HOSTBASED_SERVICE], [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=no
+ if test "$ac_cv_header_gssapi_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=yes],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_generic_h" = "yes"; then
+ AC_EGREP_HEADER([GSS_C_NT_HOSTBASED_SERVICE], [gssapi/gssapi_generic.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service],
+ AC_EGREP_HEADER([gss_nt_service_name], [gssapi/gssapi_generic.h],
+ [acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name]))
+ fi])
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service != yes &&
+ test $acx_gssapi_cv_gss_c_nt_hostbased_service != no; then
+ # don't define for yes since that means it already means something and
+ # don't define for no since we'd rather the compiler catch the error
+ AC_DEFINE_UNQUOTED([GSS_C_NT_HOSTBASED_SERVICE], [$acx_gssapi_cv_gss_c_nt_hostbased_service],
+[Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't defined
+in the gssapi.h header file. MIT Kerberos 1.2.1 requires this. Only relevant
+when using GSSAPI.])
+ fi
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+
+ # Expect the libs to be installed parallel to the headers
+ #
+ # We could try once with and once without, but I'm not sure it's worth the
+ # trouble.
+ if test x$acx_gssapi_cv_gssapi != xyes; then
+ if test -z "$LIBS"; then
+ LIBS="-L$acx_gssapi_cv_gssapi/lib"
+ else
+ LIBS="-L$acx_gssapi_cv_gssapi/lib $LIBS"
+ fi
+ else :; fi
+
+ dnl What happens if we want to enable, say, krb5 and some other GSSAPI
+ dnl authentication method at the same time?
+ #
+ # Some of the order below is particular due to library dependencies
+ #
+
+ #
+ # des Heimdal K 0.3d, but Heimdal seems to be set up such
+ # that it could have been installed from elsewhere.
+ #
+ AC_SEARCH_LIBS([des_set_odd_parity], [des])
+
+ #
+ # com_err Heimdal K 0.3d
+ #
+ # com_err MIT K5 v1.2.2-beta1
+ #
+ AC_SEARCH_LIBS([com_err], [com_err])
+
+ #
+ # asn1 Heimdal K 0.3d -lcom_err
+ #
+ AC_SEARCH_LIBS([initialize_asn1_error_table_r], [asn1])
+
+ #
+ # resolv required, but not installed by Heimdal K 0.3d
+ #
+ # resolv MIT K5 1.2.2-beta1
+ # Linux 2.2.17
+ #
+ AC_SEARCH_LIBS([__dn_expand], [resolv])
+
+ #
+ # roken Heimdal K 0.3d -lresolv
+ #
+ AC_SEARCH_LIBS([roken_gethostbyaddr], [roken])
+
+ #
+ # k5crypto MIT K5 v1.2.2-beta1
+ #
+ AC_SEARCH_LIBS([valid_enctype], [k5crypto])
+
+ #
+ # gen ? ? ? Needed on Irix 5.3 with some
+ # Irix 5.3 version of Kerberos. I'm not
+ # sure which since Irix didn't
+ # get any testing this time
+ # around. Original comment:
+ #
+ # This is necessary on Irix 5.3, in order to link against libkrb5 --
+ # there, an_to_ln.o refers to things defined only in -lgen.
+ #
+ AC_SEARCH_LIBS([compile], [gen])
+
+ #
+ # krb5 ? ? ? -lgen -l???
+ # Irix 5.3
+ #
+ # krb5 MIT K5 v1.1.1
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err
+ # Linux 2.2.17
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err -lresolv
+ #
+ # krb5 Heimdal K 0.3d -lasn1 -lroken -ldes
+ #
+ AC_SEARCH_LIBS([krb5_free_context], [krb5])
+
+ #
+ # gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
+ # order to prefer MIT Kerberos. If both MIT & Heimdal
+ # Kerberos are installed and in the path, this will leave
+ # some of the libraries above in LIBS unnecessarily, but
+ # noone would ever do that, right?
+ #
+ # gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
+ #
+ # gssapi Heimdal K 0.3d -lkrb5
+ #
+ AC_SEARCH_LIBS([gss_import_name], [gssapi_krb5 gssapi])
+fi
+])dnl
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 5
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [define([AC_PROVIDE_IFELSE],
+ [ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
+fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
+ifelse([$3],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+ [m4_pattern_allow([^AM_(C|CPP|CXX|OBJC|F|R|GCJ)FLAGS])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_MISSING_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_PROG_ETAGS])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+ [AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_][CC],
+ defn([AC_PROG_][CC])[AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+ [AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_][CXX],
+ defn([AC_PROG_][CXX])[AM_DEPENDENCIES(CXX)])])dnl
+])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_INSTALL_SH
+# ---------------------
+# Like AM_MISSING_PROG, but only looks for install-sh.
+AC_DEFUN([AM_MISSING_INSTALL_SH],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+if test -z "$install_sh"; then
+ for install_sh in "$ac_aux_dir/install-sh" \
+ "$ac_aux_dir/install.sh" \
+ "${am_missing_run}${ac_auxdir}/install-sh";
+ do
+ test -f "$install_sh" && break
+ done
+ # FIXME: an evil hack: we remove the SHELL invocation from
+ # install_sh because automake adds it back in. Sigh.
+ install_sh=`echo $install_sh | sed -e 's/\${SHELL}//'`
+fi
+AC_SUBST(install_sh)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[test x"${MISSING+set}" = xset ||
+ MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ am_backtick='`'
+ AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
+fi
+])
+
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to ${srcdir}/foo. In other projects, it is set to `.'.
+# Of course, Automake must honor this variable whenever it call a tool
+# from the auxiliary directory. The problem is that $srcdir (hence
+# $ac_aux_dir) can be either an absolute path or a path relative to
+# $top_srcdir or absolute, this depends on how configure is run. This
+# is pretty anoying since it makes $ac_aux_dir quite unusable in
+# subdirectories: on the top source directory, any form will work
+# fine, but in subdirectories relative pat needs to be adapted.
+# - calling $top_srcidr/$ac_aux_dir/missing would success if $srcdir is
+# relative, but fail if $srcdir is absolute
+# - conversly, calling $ax_aux_dir/missing would fail if $srcdir is
+# absolute, and success on relative paths.
+#
+# Consequently, we define and use $am_aux_dir, the "always absolute"
+# version of $ac_aux_dir.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross=compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so if we ever
+# need to use a non standard strip, we just have to make sure we use
+# install-sh with the STRIPPROG variable set.
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_MISSING_INSTALL_SH])
+dnl Don't test for $cross_compiling = yes, it might be `maybe'...
+# We'd like to do this but we can't because it will unconditionally
+# require config.guess. One way would be if autoconf had the capability
+# to let us compile in this code only when config.guess was already
+# a possibility.
+#if test "$cross_compiling" != no; then
+# # since we are cross-compiling, we need to check for a suitable `strip'
+# AM_PROG_STRIP
+# if test -z "$STRIP"; then
+# AC_MSG_WARN([strip missing, install-strip will not strip binaries])
+# fi
+#fi
+
+# If $STRIP is defined (either by the user, or by AM_PROG_STRIP),
+# instruct install-strip to use install-sh and the given $STRIP program.
+# Otherwise, just use ${INSTALL}: the idea is to use the vendor install
+# as much as possible, because it's faster.
+if test -z "$STRIP"; then
+ # The top level make will set INSTALL_PROGRAM=$(INSTALL_STRIP_PROGRAM)
+ # and the double dolard below is there to make sure that ${INSTALL}
+ # is substitued in the sub-makes, not at the top-level; this is
+ # needed if ${INSTALL} is a relative path (ajusted in each subdirectory
+ # by config.status).
+ INSTALL_STRIP_PROGRAM='$${INSTALL} -s'
+ INSTALL_STRIP_PROGRAM_ENV=''
+else
+ _am_dirpart="`echo $install_sh | sed -e 's,//*[[^/]]*$,,'`"
+ INSTALL_STRIP_PROGRAM="\${SHELL} \`CDPATH=: && cd $_am_dirpart && pwd\`/install-sh -c -s"
+ INSTALL_STRIP_PROGRAM_ENV="STRIPPROG='\$(STRIP)'"
+fi
+AC_SUBST([STRIP])
+AC_SUBST([INSTALL_STRIP_PROGRAM])
+AC_SUBST([INSTALL_STRIP_PROGRAM_ENV])])
+
+#AC_DEFUN([AM_PROG_STRIP],
+#[# Check for `strip', unless the installer
+# has set the STRIP environment variable.
+# Note: don't explicitly check for -z "$STRIP" here because
+# that will cause problems if AC_CANONICAL_* is AC_REQUIREd after
+# this macro, and anyway it doesn't have an effect anyway.
+#AC_CHECK_TOOL([STRIP],[strip])
+#])
+
+#
+# Find some information about the etags program
+#
+# Sets
+# ETAGS = path to etags
+# ETAGS_INCLUDE_OPTION = option to pass to etags with arg for includes
+#
+
+AC_DEFUN([AM_PROG_ETAGS],
+[AC_BEFORE([$0], [AM_PROG_ETAGS_WORKS])dnl
+AC_CHECK_PROG(ETAGS, etags, etags)
+if test -z "$ETAGS"; then
+ AC_CHECK_PROG(ETAGS, ctags, ctags -e)
+fi
+if test -n "$ETAGS"; then
+ AM_PROG_ETAGS_WORKS
+ if test "$am_cv_prog_etags_works" = yes ; then
+ AM_PROG_ETAGS_INCLUDE_OPTION
+ else
+ AM_MISSING_PROG(ETAGS, etags)
+ fi
+else
+ AM_MISSING_PROG(ETAGS, etags)
+fi])
+
+
+AC_DEFUN([AM_PROG_ETAGS_WORKS],
+[AC_CACHE_CHECK([whether ${ETAGS-etags} works], [am_cv_prog_etags_works],
+[cat >conftest.c <<EOF
+int globalvar;
+EOF
+if AC_TRY_COMMAND([${ETAGS-etags} -f - conftest.c |egrep ^int\ globalvar\; >&2]); then
+ am_cv_prog_etags_works=yes
+else
+ am_cv_prog_etags_works=no
+fi
+rm -f conftest.c])])
+
+AC_DEFUN([AM_PROG_ETAGS_INCLUDE_OPTION],
+[AC_REQUIRE([AM_PROG_ETAGS_WORKS])dnl
+if test "$am_cv_prog_etags_works" = yes ; then
+ AC_CACHE_CHECK([for etags include option],
+ [am_cv_prog_etags_include_option],
+ [cat >conftest.c <<EOF
+int globalvar;
+EOF
+ if AC_TRY_COMMAND([${ETAGS-etags} --etags-include=TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2]); then
+ am_cv_prog_etags_include_option=--etags-include=
+ elif AC_TRY_COMMAND([${ETAGS-etags} -i TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2]); then
+ am_cv_prog_etags_include_option='"-i "'
+ else :
+ # AC_MSG_ERROR(unfamiliar etags implementation)
+ fi
+ rm -f conftest.c])
+else
+ :
+fi
+ETAGS_INCLUDE_OPTION="$am_cv_prog_etags_include_option"
+AC_SUBST(ETAGS_INCLUDE_OPTION)])
+
+# serial 3
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+# AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+AC_DEFUN([AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+ifelse([$1], CC,
+ [AC_REQUIRE([AC_PROG_][CC])dnl
+AC_REQUIRE([AC_PROG_][CPP])
+depcc="$CC"
+depcpp="$CPP"],
+ [$1], CXX, [AC_REQUIRE([AC_PROG_][CXX])dnl
+AC_REQUIRE([AC_PROG_][CXXCPP])
+depcc="$CXX"
+depcpp="$CXXCPP"],
+ [$1], OBJC, [am_cv_OBJC_dependencies_compiler_type=gcc],
+ [AC_REQUIRE([AC_PROG_][$1])dnl
+depcc="$$1"
+depcpp=""])
+
+AC_REQUIRE([AM_MAKE_INCLUDE])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir confdir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" confdir
+ cd confdir
+
+ am_cv_$1_dependencies_compiler_type=none
+ for depmode in `sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < "./depcomp"`; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+
+ case "$depmode" in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode="$depmode" \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1; then
+ am_cv_$1_dependencies_compiler_type="$depmode"
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf confdir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then
+ DEPDIR=.deps
+ # We redirect because .deps might already exist and be populated.
+ # In this situation we don't want to see an error.
+ rmdir .deps > /dev/null 2>&1
+else
+ DEPDIR=_deps
+fi
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+], [AMDEP="$AMDEP"
+ac_aux_dir="$ac_aux_dir"])])
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+_am_include='#'
+_am_quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ _am_include=include
+ _am_quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$_am_include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ _am_include=.include
+ _am_quote='"'
+ _am_result=BSD
+ fi
+fi
+AC_SUBST(_am_include)
+AC_SUBST(_am_quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# serial 3
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+# serial 3
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. We must strip everything past the first ":",
+# and everything past the last "/".
+
+AC_PREREQ([2.12])
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[ifdef([AC_FOREACH],dnl
+ [dnl init our file count if it isn't already
+ m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
+ dnl prepare to store our destination file list for use in config.status
+ AC_FOREACH([_AM_File], [$1],
+ [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
+ m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
+ dnl and add it to the list of files AC keeps track of, along
+ dnl with our hook
+ AC_CONFIG_HEADERS(_AM_File,
+dnl COMMANDS, [, INIT-CMDS]
+[# update the timestamp
+echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
+ m4_popdef([_AM_Dest])])],dnl
+[AC_CONFIG_HEADER([$1])
+ AC_OUTPUT_COMMANDS(
+ ifelse(patsubst([$1], [[^ ]], []),
+ [],
+ [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
+ patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
+[am_indx=1
+for am_file in $1; do
+ case " \$CONFIG_HEADERS " in
+ *" \$am_file "*)
+ am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+ if test -n "\$am_dir"; then
+ am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+ for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+ am_tmpdir=\$am_tmpdir\$am_subdir/
+ if test ! -d \$am_tmpdir; then
+ mkdir \$am_tmpdir
+ fi
+ done
+ fi
+ echo timestamp > "\$am_dir"stamp-h\$am_indx
+ ;;
+ esac
+ am_indx=\`expr \$am_indx + 1\`
+done])
+])]) # AM_CONFIG_HEADER
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+ [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+ m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
+ m4_if(m4_regexp([$1], [^/.*]), -1,
+ [.],
+ m4_patsubst([$1], [^\(/\).*], [\1])),
+ m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+ m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+]) # _AM_DIRNAME
+
diff --git a/contrib/cvs/config.h.in b/contrib/cvs/config.h.in
index 438b798d3dc3..986998f0712e 100644
--- a/contrib/cvs/config.h.in
+++ b/contrib/cvs/config.h.in
@@ -77,13 +77,6 @@
/* Define if you have MIT Kerberos version 4 available. */
#undef HAVE_KERBEROS
-/* Define if you have GSSAPI with MIT Kerberos version 5 available. */
-#undef HAVE_GSSAPI
-
-/* Define if GSS_C_NT_HOSTBASED_SERVICE is defined in the gssapi.h
- header file. Only relevant when using GSSAPI. */
-#undef HAVE_GSS_C_NT_HOSTBASED_SERVICE
-
/* Define if you want CVS to be able to be a remote repository client. */
#undef CLIENT_SUPPORT
@@ -147,12 +140,18 @@
/* Define if you have the ftruncate function. */
#undef HAVE_FTRUNCATE
+/* Define if you have the getgroups function. */
+#undef HAVE_GETGROUPS
+
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
/* Define if you have the getpassphrase function. */
#undef HAVE_GETPASSPHRASE
+/* Define if you have the gettimeofday function. */
+#undef HAVE_GETTIMEOFDAY
+
/* Define if you have the initgroups function. */
#undef HAVE_INITGROUPS
@@ -168,9 +167,15 @@
/* Define if you have the mknod function. */
#undef HAVE_MKNOD
+/* Define if you have the mkstemp function. */
+#undef HAVE_MKSTEMP
+
/* Define if you have the mktemp function. */
#undef HAVE_MKTEMP
+/* Define if you have the nanosleep function. */
+#undef HAVE_NANOSLEEP
+
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
@@ -180,6 +185,9 @@
/* Define if you have the rename function. */
#undef HAVE_RENAME
+/* Define if you have the select function. */
+#undef HAVE_SELECT
+
/* Define if you have the sigaction function. */
#undef HAVE_SIGACTION
@@ -213,6 +221,9 @@
/* Define if you have the tzset function. */
#undef HAVE_TZSET
+/* Define if you have the usleep function. */
+#undef HAVE_USLEEP
+
/* Define if you have the valloc function. */
#undef HAVE_VALLOC
@@ -294,11 +305,29 @@
/* Define if you have the <sys/timeb.h> header file. */
#undef HAVE_SYS_TIMEB_H
+/* Define if you have the <syslog.h> header file. */
+#undef HAVE_SYSLOG_H
+
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <utime.h> header file. */
#undef HAVE_UTIME_H
-/* Define if you have the gen library (-lgen). */
-#undef HAVE_LIBGEN
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Path to the pr utility */
+#undef PR_PROGRAM
+
+/* Define if you have GSSAPI with Kerberos version 5 available. */
+#undef HAVE_GSSAPI
+
+/* Define to an alternative value if GSS_C_NT_HOSTBASED_SERVICE isn't defined
+in the gssapi.h header file. MIT Kerberos 1.2.1 requires this. Only relevant
+when using GSSAPI. */
+#undef GSS_C_NT_HOSTBASED_SERVICE
+
diff --git a/contrib/cvs/configure b/contrib/cvs/configure
index f1ead553576b..d4777323898c 100755
--- a/contrib/cvs/configure
+++ b/contrib/cvs/configure
@@ -12,6 +12,9 @@ ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
+ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors"
+ac_help="$ac_help
--with-krb4=value set default \$(KRB4) from value"
ac_help="$ac_help
--with-gssapi=value GSSAPI directory"
@@ -533,13 +536,461 @@ else
fi
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:571: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:624: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+test x"${MISSING+set}" = xset ||
+ MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ am_backtick='`'
+ echo "configure: warning: ${am_backtick}missing' script is too old or missing" 1>&2
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:696: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_AWK="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+AWK="$ac_cv_prog_AWK"
+if test -n "$AWK"; then
+ echo "$ac_t""$AWK" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$AWK" && break
+done
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:726: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Extract the first word of "etags", so it can be a program name with args.
+set dummy etags; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:755: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_ETAGS'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$ETAGS"; then
+ ac_cv_prog_ETAGS="$ETAGS" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_ETAGS="etags"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+ETAGS="$ac_cv_prog_ETAGS"
+if test -n "$ETAGS"; then
+ echo "$ac_t""$ETAGS" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$ETAGS"; then
+ # Extract the first word of "ctags", so it can be a program name with args.
+set dummy ctags; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:785: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_ETAGS'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$ETAGS"; then
+ ac_cv_prog_ETAGS="$ETAGS" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_ETAGS="ctags -e"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+ETAGS="$ac_cv_prog_ETAGS"
+if test -n "$ETAGS"; then
+ echo "$ac_t""$ETAGS" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+if test -n "$ETAGS"; then
+ echo $ac_n "checking whether ${ETAGS-etags} works""... $ac_c" 1>&6
+echo "configure:814: checking whether ${ETAGS-etags} works" >&5
+if eval "test \"`echo '$''{'am_cv_prog_etags_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat >conftest.c <<EOF
+int globalvar;
+EOF
+if { ac_try='${ETAGS-etags} -f - conftest.c |egrep ^int\ globalvar\; >&2'; { (eval echo configure:821: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ am_cv_prog_etags_works=yes
+else
+ am_cv_prog_etags_works=no
+fi
+rm -f conftest.c
+fi
+
+echo "$ac_t""$am_cv_prog_etags_works" 1>&6
+ if test "$am_cv_prog_etags_works" = yes ; then
+ if test "$am_cv_prog_etags_works" = yes ; then
+ echo $ac_n "checking for etags include option""... $ac_c" 1>&6
+echo "configure:833: checking for etags include option" >&5
+if eval "test \"`echo '$''{'am_cv_prog_etags_include_option'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat >conftest.c <<EOF
+int globalvar;
+EOF
+ if { ac_try='${ETAGS-etags} --etags-include=TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2'; { (eval echo configure:840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ am_cv_prog_etags_include_option=--etags-include=
+ elif { ac_try='${ETAGS-etags} -i TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2'; { (eval echo configure:842: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ am_cv_prog_etags_include_option='"-i "'
+ else :
+ # AC_MSG_ERROR(unfamiliar etags implementation)
+ fi
+ rm -f conftest.c
+fi
+
+echo "$ac_t""$am_cv_prog_etags_include_option" 1>&6
+else
+ :
+fi
+ETAGS_INCLUDE_OPTION="$am_cv_prog_etags_include_option"
+
+ else
+
+ETAGS=${ETAGS-"${am_missing_run}etags"}
+
+ fi
+else
+
+ETAGS=${ETAGS-"${am_missing_run}etags"}
+
+fi
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+ enableval="$enable_dependency_tracking"
+ :
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+
+if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then
+ DEPDIR=.deps
+ # We redirect because .deps might already exist and be populated.
+ # In this situation we don't want to see an error.
+ rmdir .deps > /dev/null 2>&1
+else
+ DEPDIR=_deps
+fi
+
+
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run \"make distclean\" there first" 1>&2; exit 1; }
+fi
+
+# Define the identity of the package.
+PACKAGE=cvs
+VERSION=1.11.1p1
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+
+if test -z "$install_sh"; then
+ for install_sh in "$ac_aux_dir/install-sh" \
+ "$ac_aux_dir/install.sh" \
+ "${am_missing_run}${ac_auxdir}/install-sh";
+ do
+ test -f "$install_sh" && break
+ done
+ # FIXME: an evil hack: we remove the SHELL invocation from
+ # install_sh because automake adds it back in. Sigh.
+ install_sh=`echo $install_sh | sed -e 's/\${SHELL}//'`
+fi
+
+
+# We'd like to do this but we can't because it will unconditionally
+# require config.guess. One way would be if autoconf had the capability
+# to let us compile in this code only when config.guess was already
+# a possibility.
+#if test "$cross_compiling" != no; then
+# # since we are cross-compiling, we need to check for a suitable `strip'
+# AM_PROG_STRIP
+# if test -z "$STRIP"; then
+# AC_MSG_WARN([strip missing, install-strip will not strip binaries])
+# fi
+#fi
+
+# If $STRIP is defined (either by the user, or by AM_PROG_STRIP),
+# instruct install-strip to use install-sh and the given $STRIP program.
+# Otherwise, just use ${INSTALL}: the idea is to use the vendor install
+# as much as possible, because it's faster.
+if test -z "$STRIP"; then
+ # The top level make will set INSTALL_PROGRAM=$(INSTALL_STRIP_PROGRAM)
+ # and the double dolard below is there to make sure that ${INSTALL}
+ # is substitued in the sub-makes, not at the top-level; this is
+ # needed if ${INSTALL} is a relative path (ajusted in each subdirectory
+ # by config.status).
+ INSTALL_STRIP_PROGRAM='$${INSTALL} -s'
+ INSTALL_STRIP_PROGRAM_ENV=''
+else
+ _am_dirpart="`echo $install_sh | sed -e 's,//*[^/]*$,,'`"
+ INSTALL_STRIP_PROGRAM="\${SHELL} \`CDPATH=: && cd $_am_dirpart && pwd\`/install-sh -c -s"
+ INSTALL_STRIP_PROGRAM_ENV="STRIPPROG='\$(STRIP)'"
+fi
+
+
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+
if test "x$prefix" = xNONE; then
echo $ac_n "checking for prefix by $ac_c" 1>&6
# Extract the first word of "cvs", so it can be a program name with args.
set dummy cvs; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:543: checking for $ac_word" >&5
+echo "configure:994: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_CVS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -577,13 +1028,15 @@ fi
fi
+
+
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:587: checking for $ac_word" >&5
+echo "configure:1040: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -615,7 +1068,7 @@ done
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:619: checking for $ac_word" >&5
+echo "configure:1072: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -645,7 +1098,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:649: checking for $ac_word" >&5
+echo "configure:1102: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -696,7 +1149,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:700: checking for $ac_word" >&5
+echo "configure:1153: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -728,7 +1181,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:732: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1185: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -739,12 +1192,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 743 "configure"
+#line 1196 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -770,12 +1223,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:774: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1227: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:779: checking whether we are using GNU C" >&5
+echo "configure:1232: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -784,7 +1237,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -803,7 +1256,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:807: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1260: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -834,24 +1287,186 @@ else
fi
fi
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1293: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1308 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1325 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1342 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo $ac_n "checking for style of include used by $am_make""... $ac_c" 1>&6
+echo "configure:1379: checking for style of include used by $am_make" >&5
+_am_include='#'
+_am_quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ _am_include=include
+ _am_quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$_am_include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ _am_include=.include
+ _am_quote='"'
+ _am_result=BSD
+ fi
+fi
+
+
+echo "$ac_t""$_am_result" 1>&6
+rm -f confinc confmf
+
+
+depcc="$CC"
+depcpp="$CPP"
+
+
+
+echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
+echo "configure:1411: checking dependency style of $depcc" >&5
+if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -z "$AMDEP"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir confdir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" confdir
+ cd confdir
+
+ am_cv_CC_dependencies_compiler_type=none
+ for depmode in `sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < "./depcomp"`; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+
+ case "$depmode" in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode="$depmode" \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1; then
+ am_cv_CC_dependencies_compiler_type="$depmode"
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf confdir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+
+echo "$ac_t""$am_cv_CC_dependencies_compiler_type" 1>&6
+CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type"
+
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -865,7 +1480,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:869: checking for a BSD compatible install" >&5
+echo "configure:1484: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -918,7 +1533,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:922: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1537: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -944,10 +1559,11 @@ else
SET_MAKE="MAKE=${MAKE-make}"
fi
+# Automake's more advanced version of AC_PROG_RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:951: checking for $ac_word" >&5
+echo "configure:1567: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -979,7 +1595,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:983: checking for $ac_word" >&5
+echo "configure:1599: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1009,20 +1625,41 @@ test -n "$YACC" && break
done
test -n "$YACC" || YACC="yacc"
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:1630: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+ rm -f conftestdata
+ ac_cv_prog_LN_S="ln -s"
+else
+ ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1017: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_perl_path'+set}'`\" = set"; then
+echo "configure:1654: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- case "$perl_path" in
+ case "$PERL" in
/*)
- ac_cv_path_perl_path="$perl_path" # Let the user override the test with a path.
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
;;
?:/*)
- ac_cv_path_perl_path="$perl_path" # Let the user override the test with a dos path.
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
@@ -1030,18 +1667,18 @@ else
for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_path_perl_path="$ac_dir/$ac_word"
+ ac_cv_path_PERL="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
- test -z "$ac_cv_path_perl_path" && ac_cv_path_perl_path="no"
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
;;
esac
fi
-perl_path="$ac_cv_path_perl_path"
-if test -n "$perl_path"; then
- echo "$ac_t""$perl_path" 1>&6
+PERL="$ac_cv_path_PERL"
+if test -n "$PERL"; then
+ echo "$ac_t""$PERL" 1>&6
else
echo "$ac_t""no" 1>&6
fi
@@ -1049,16 +1686,16 @@ fi
# Extract the first word of "csh", so it can be a program name with args.
set dummy csh; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1053: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_csh_path'+set}'`\" = set"; then
+echo "configure:1690: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_CSH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- case "$csh_path" in
+ case "$CSH" in
/*)
- ac_cv_path_csh_path="$csh_path" # Let the user override the test with a path.
+ ac_cv_path_CSH="$CSH" # Let the user override the test with a path.
;;
?:/*)
- ac_cv_path_csh_path="$csh_path" # Let the user override the test with a dos path.
+ ac_cv_path_CSH="$CSH" # Let the user override the test with a dos path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
@@ -1066,18 +1703,177 @@ else
for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
- ac_cv_path_csh_path="$ac_dir/$ac_word"
+ ac_cv_path_CSH="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
- test -z "$ac_cv_path_csh_path" && ac_cv_path_csh_path="no"
+ test -z "$ac_cv_path_CSH" && ac_cv_path_CSH="no"
;;
esac
fi
-csh_path="$ac_cv_path_csh_path"
-if test -n "$csh_path"; then
- echo "$ac_t""$csh_path" 1>&6
+CSH="$ac_cv_path_CSH"
+if test -n "$CSH"; then
+ echo "$ac_t""$CSH" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "pr", so it can be a program name with args.
+set dummy pr; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1726: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PR'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PR" in
+ /*)
+ ac_cv_path_PR="$PR" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PR="$PR" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_PR="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_PR" && ac_cv_path_PR="no"
+ ;;
+esac
+fi
+PR="$ac_cv_path_PR"
+if test -n "$PR"; then
+ echo "$ac_t""$PR" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# For diff/util.c
+if test x"$PR" != xno; then
+ cat >> confdefs.h <<EOF
+#define PR_PROGRAM "$PR"
+EOF
+
+fi
+
+missing_dir=`cd $ac_aux_dir && pwd`
+glocs="$PATH:/usr/local/bin:/usr/contrib/bin:/usr/gnu/bin:/local/bin:/local/gnu/bin:/gnu/bin"
+for ac_prog in groff roff
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1774: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_ROFF'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$ROFF" in
+ /*)
+ ac_cv_path_ROFF="$ROFF" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_ROFF="$ROFF" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$glocs"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_ROFF="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+ROFF="$ac_cv_path_ROFF"
+if test -n "$ROFF"; then
+ echo "$ac_t""$ROFF" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$ROFF" && break
+done
+test -n "$ROFF" || ROFF="$missing_dir/missing roff"
+
+# Extract the first word of "ps2pdf", so it can be a program name with args.
+set dummy ps2pdf; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1813: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PS2PDF'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PS2PDF" in
+ /*)
+ ac_cv_path_PS2PDF="$PS2PDF" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PS2PDF="$PS2PDF" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_PS2PDF="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_PS2PDF" && ac_cv_path_PS2PDF="$missing_dir/missing ps2pdf"
+ ;;
+esac
+fi
+PS2PDF="$ac_cv_path_PS2PDF"
+if test -n "$PS2PDF"; then
+ echo "$ac_t""$PS2PDF" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "texi2dvi", so it can be a program name with args.
+set dummy texi2dvi; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1849: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_TEXI2DVI'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$TEXI2DVI" in
+ /*)
+ ac_cv_path_TEXI2DVI="$TEXI2DVI" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_TEXI2DVI="$TEXI2DVI" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_TEXI2DVI="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_TEXI2DVI" && ac_cv_path_TEXI2DVI="$missing_dir/missing texi2dvi"
+ ;;
+esac
+fi
+TEXI2DVI="$ac_cv_path_TEXI2DVI"
+if test -n "$TEXI2DVI"; then
+ echo "$ac_t""$TEXI2DVI" 1>&6
else
echo "$ac_t""no" 1>&6
fi
@@ -1086,7 +1882,7 @@ fi
# Pull the hash mark out of the macro call to avoid m4 problems.
ac_msg="whether #! works in shell scripts"
echo $ac_n "checking $ac_msg""... $ac_c" 1>&6
-echo "configure:1090: checking $ac_msg" >&5
+echo "configure:1886: checking $ac_msg" >&5
if eval "test \"`echo '$''{'ac_cv_sys_interpreter'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1112,90 +1908,53 @@ if test X"$ac_cv_sys_interpreter" != X"yes" ; then
echo "configure: warning: $ac_msg" 1>&2
fi
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1117: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+# BSD's logo is a devil for a reason, hey?
+echo $ac_n "checking for BSD VPATH bug in make""... $ac_c" 1>&6
+echo "configure:1914: checking for BSD VPATH bug in make" >&5
+if eval "test \"`echo '$''{'ccvs_cv_bsd_make_vpath_bug'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1132 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1149 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1166 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
+ if test ! -d ac_test_dir ; then
+ { ac_try='mkdir ac_test_dir'; { (eval echo configure:1919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+fi
+cat >conftestmake <<EOF
+VPATH = ac_test_dir
+ac_test_target: ac_test_dep
+ echo BSD VPATH bug present >&2
+ac_test_dep: ac_test_dep_dep
EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
+touch ac_test_dir/ac_test_dep_dep
+touch ac_test_dir/ac_test_dep
+touch ac_test_target
+# Don't know why, but the following test doesn't work under FreeBSD 4.2
+# without this sleep command
+sleep 1
+if { ac_try='make -f conftestmake 2>&1 >/dev/null |grep ^BSD\ VPATH\ bug\ present\$ >/dev/null'; { (eval echo configure:1933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } ; then
+ ccvs_cv_bsd_make_vpath_bug=yes
else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
+ ccvs_cv_bsd_make_vpath_bug=no
fi
-rm -f conftest*
+{ ac_try='rm -rf ac_test_dir ac_test_target conftestmake'; { (eval echo configure:1938: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
+
+echo "$ac_t""$ccvs_cv_bsd_make_vpath_bug" 1>&6
+# We also don't need to worry about the bug when $srcdir = $builddir
+
+
+if \
+ test $ccvs_cv_bsd_make_vpath_bug = no \
+ || test $srcdir = .; then
+ MAKE_TARGETS_IN_VPATH_TRUE=
+ MAKE_TARGETS_IN_VPATH_FALSE='#'
else
- ac_cv_prog_CPP="$CPP"
+ MAKE_TARGETS_IN_VPATH_TRUE='#'
+ MAKE_TARGETS_IN_VPATH_FALSE=
fi
-echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1197: checking for AIX" >&5
+echo "configure:1956: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 1199 "configure"
+#line 1958 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
@@ -1218,17 +1977,17 @@ rm -f conftest*
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1222: checking for minix/config.h" >&5
+echo "configure:1981: checking for minix/config.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1227 "configure"
+#line 1986 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1266,7 +2025,7 @@ EOF
fi
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1270: checking for POSIXized ISC" >&5
+echo "configure:2029: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -1296,12 +2055,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1300: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2059: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1305 "configure"
+#line 2064 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -1309,7 +2068,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:1313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -1334,7 +2093,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1338: checking for opendir in -ldir" >&5
+echo "configure:2097: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1342,7 +2101,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1346 "configure"
+#line 2105 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1353,7 +2112,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1375,7 +2134,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1379: checking for opendir in -lx" >&5
+echo "configure:2138: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1383,7 +2142,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1387 "configure"
+#line 2146 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1394,7 +2153,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1417,12 +2176,12 @@ fi
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1421: checking for ANSI C header files" >&5
+echo "configure:2180: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1426 "configure"
+#line 2185 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1430,7 +2189,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1434: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1447,7 +2206,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1451 "configure"
+#line 2210 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1465,7 +2224,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1469 "configure"
+#line 2228 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1486,7 +2245,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1490 "configure"
+#line 2249 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1497,7 +2256,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1521,12 +2280,12 @@ EOF
fi
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1525: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2284: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1530 "configure"
+#line 2289 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -1542,7 +2301,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:1546: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@@ -1565,21 +2324,21 @@ fi
for ac_hdr in errno.h unistd.h string.h memory.h utime.h fcntl.h ndbm.h \
limits.h sys/file.h \
sys/param.h sys/select.h sys/time.h sys/timeb.h \
- io.h direct.h sys/bsdtypes.h sys/resource.h
+ io.h direct.h sys/bsdtypes.h sys/resource.h syslog.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1573: checking for $ac_hdr" >&5
+echo "configure:2332: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1578 "configure"
+#line 2337 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1606,12 +2365,12 @@ fi
done
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1610: checking whether stat file-mode macros are broken" >&5
+echo "configure:2369: checking whether stat file-mode macros are broken" >&5
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1615 "configure"
+#line 2374 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1662,12 +2421,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1666: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2425: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1671 "configure"
+#line 2430 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -1676,7 +2435,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:1680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -1698,12 +2457,12 @@ fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1702: checking for working const" >&5
+echo "configure:2461: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1707 "configure"
+#line 2466 "configure"
#include "confdefs.h"
int main() {
@@ -1752,7 +2511,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1773,12 +2532,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:1777: checking for uid_t in sys/types.h" >&5
+echo "configure:2536: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1782 "configure"
+#line 2541 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -1807,12 +2566,12 @@ EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1811: checking for mode_t" >&5
+echo "configure:2570: checking for mode_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1816 "configure"
+#line 2575 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1840,12 +2599,12 @@ EOF
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1844: checking for pid_t" >&5
+echo "configure:2603: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1849 "configure"
+#line 2608 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1873,12 +2632,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1877: checking for size_t" >&5
+echo "configure:2636: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1882 "configure"
+#line 2641 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1906,12 +2665,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1910: checking return type of signal handlers" >&5
+echo "configure:2669: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1915 "configure"
+#line 2674 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1928,7 +2687,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1948,12 +2707,12 @@ EOF
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:1952: checking for st_blksize in struct stat" >&5
+echo "configure:2711: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1957 "configure"
+#line 2716 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1961,7 +2720,7 @@ int main() {
struct stat s; s.st_blksize;
; return 0; }
EOF
-if { (eval echo configure:1965: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blksize=yes
else
@@ -1982,12 +2741,12 @@ EOF
fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
-echo "configure:1986: checking for st_rdev in struct stat" >&5
+echo "configure:2745: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1991 "configure"
+#line 2750 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1995,7 +2754,7 @@ int main() {
struct stat s; s.st_rdev;
; return 0; }
EOF
-if { (eval echo configure:1999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2758: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_rdev=yes
else
@@ -2018,12 +2777,12 @@ fi
for ac_func in mkdir rename strstr dup2 strerror valloc waitpid memmove strtoul
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2022: checking for $ac_func" >&5
+echo "configure:2781: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2027 "configure"
+#line 2786 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2046,7 +2805,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2072,15 +2831,41 @@ fi
done
-for ac_func in fchmod fsync ftime mktemp putenv vprintf ftruncate timezone getpagesize initgroups fchdir sigaction sigprocmask sigvec sigsetmask sigblock tempnam tzset readlink wait3 mknod getpassphrase
+for ac_func in \
+ fchdir \
+ fchmod \
+ fsync \
+ ftime \
+ ftruncate \
+ getgroups \
+ getpagesize \
+ getpassphrase \
+ gettimeofday \
+ initgroups \
+ mknod \
+ mkstemp \
+ mktemp \
+ putenv \
+ readlink \
+ sigaction \
+ sigblock \
+ sigprocmask \
+ sigsetmask \
+ sigvec \
+ tempnam \
+ timezone \
+ tzset \
+ vprintf \
+ wait3 \
+
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2079: checking for $ac_func" >&5
+echo "configure:2864: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2084 "configure"
+#line 2869 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2103,7 +2888,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2127,6 +2912,66 @@ else
fi
done
+# we only need one of the following
+for ac_func in \
+ nanosleep \
+ usleep \
+ select \
+
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2924: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2929 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
cat >> confdefs.h <<\EOF
#define HAVE_STRCHR 1
@@ -2147,17 +2992,17 @@ EOF
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:2151: checking for vfork.h" >&5
+echo "configure:2996: checking for vfork.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2156 "configure"
+#line 3001 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2161: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3006: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2182,18 +3027,18 @@ else
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:2186: checking for working vfork" >&5
+echo "configure:3031: checking for working vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:2192: checking for vfork" >&5
+echo "configure:3037: checking for vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2197 "configure"
+#line 3042 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vfork(); below. */
@@ -2216,7 +3061,7 @@ vfork();
; return 0; }
EOF
-if { (eval echo configure:2220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vfork=yes"
else
@@ -2238,7 +3083,7 @@ fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
else
cat > conftest.$ac_ext <<EOF
-#line 2242 "configure"
+#line 3087 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
@@ -2333,7 +3178,7 @@ main() {
}
}
EOF
-if { (eval echo configure:2337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_vfork_works=yes
else
@@ -2356,7 +3201,7 @@ EOF
fi
echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6
-echo "configure:2360: checking whether closedir returns void" >&5
+echo "configure:3205: checking whether closedir returns void" >&5
if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2364,13 +3209,13 @@ else
ac_cv_func_closedir_void=yes
else
cat > conftest.$ac_ext <<EOF
-#line 2368 "configure"
+#line 3213 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_header_dirent>
int closedir(); main() { exit(closedir(opendir(".")) != 0); }
EOF
-if { (eval echo configure:2374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_closedir_void=no
else
@@ -2395,14 +3240,14 @@ fi
echo $ac_n "checking for library containing getspnam""... $ac_c" 1>&6
-echo "configure:2399: checking for library containing getspnam" >&5
+echo "configure:3244: checking for library containing getspnam" >&5
if eval "test \"`echo '$''{'ac_cv_search_getspnam'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_getspnam="no"
cat > conftest.$ac_ext <<EOF
-#line 2406 "configure"
+#line 3251 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2413,7 +3258,7 @@ int main() {
getspnam()
; return 0; }
EOF
-if { (eval echo configure:2417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_getspnam="none required"
else
@@ -2424,7 +3269,7 @@ rm -f conftest*
test "$ac_cv_search_getspnam" = "no" && for i in sec gen; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2428 "configure"
+#line 3273 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2435,7 +3280,7 @@ int main() {
getspnam()
; return 0; }
EOF
-if { (eval echo configure:2439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_getspnam="-l$i"
break
@@ -2460,7 +3305,7 @@ else :
fi
echo $ac_n "checking whether utime accepts a null argument""... $ac_c" 1>&6
-echo "configure:2464: checking whether utime accepts a null argument" >&5
+echo "configure:3309: checking whether utime accepts a null argument" >&5
if eval "test \"`echo '$''{'ac_cv_func_utime_null'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2470,7 +3315,7 @@ if test "$cross_compiling" = yes; then
ac_cv_func_utime_null=no
else
cat > conftest.$ac_ext <<EOF
-#line 2474 "configure"
+#line 3319 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -2481,7 +3326,7 @@ exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0
&& t.st_mtime - s.st_mtime < 120));
}
EOF
-if { (eval echo configure:2485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_utime_null=yes
else
@@ -2505,7 +3350,7 @@ EOF
fi
echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:2509: checking for long file names" >&5
+echo "configure:3354: checking for long file names" >&5
if eval "test \"`echo '$''{'ac_cv_sys_long_file_names'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2550,7 +3395,7 @@ fi
echo $ac_n "checking for working fnmatch""... $ac_c" 1>&6
-echo "configure:2554: checking for working fnmatch" >&5
+echo "configure:3399: checking for working fnmatch" >&5
if eval "test \"`echo '$''{'ac_cv_func_fnmatch_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2561,11 +3406,11 @@ if test "$cross_compiling" = yes; then
ac_cv_func_fnmatch_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 2565 "configure"
+#line 3410 "configure"
#include "confdefs.h"
main() { exit (fnmatch ("a*", "abc", 0) != 0); }
EOF
-if { (eval echo configure:2569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_fnmatch_works=yes
else
@@ -2593,7 +3438,7 @@ fi
# Try to find connect and gethostbyname.
echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:2597: checking for main in -lnsl" >&5
+echo "configure:3442: checking for main in -lnsl" >&5
ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2601,14 +3446,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2605 "configure"
+#line 3450 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:2612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2625,14 +3470,14 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for library containing connect""... $ac_c" 1>&6
-echo "configure:2629: checking for library containing connect" >&5
+echo "configure:3474: checking for library containing connect" >&5
if eval "test \"`echo '$''{'ac_cv_search_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_connect="no"
cat > conftest.$ac_ext <<EOF
-#line 2636 "configure"
+#line 3481 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2643,7 +3488,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:2647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_connect="none required"
else
@@ -2654,7 +3499,7 @@ rm -f conftest*
test "$ac_cv_search_connect" = "no" && for i in xnet socket inet; do
LIBS="-l$i -lnsl $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2658 "configure"
+#line 3503 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2665,7 +3510,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:2669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_connect="-l$i"
break
@@ -2692,14 +3537,14 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for library containing connect""... $ac_c" 1>&6
-echo "configure:2696: checking for library containing connect" >&5
+echo "configure:3541: checking for library containing connect" >&5
if eval "test \"`echo '$''{'ac_cv_search_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_connect="no"
cat > conftest.$ac_ext <<EOF
-#line 2703 "configure"
+#line 3548 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2710,7 +3555,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:2714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_connect="none required"
else
@@ -2721,7 +3566,7 @@ rm -f conftest*
test "$ac_cv_search_connect" = "no" && for i in xnet socket inet; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2725 "configure"
+#line 3570 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2732,7 +3577,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:2736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_connect="-l$i"
break
@@ -2759,14 +3604,14 @@ fi
echo $ac_n "checking for library containing gethostbyname""... $ac_c" 1>&6
-echo "configure:2763: checking for library containing gethostbyname" >&5
+echo "configure:3608: checking for library containing gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_search_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_gethostbyname="no"
cat > conftest.$ac_ext <<EOF
-#line 2770 "configure"
+#line 3615 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2777,7 +3622,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:2781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_gethostbyname="none required"
else
@@ -2788,7 +3633,7 @@ rm -f conftest*
test "$ac_cv_search_gethostbyname" = "no" && for i in netinet nsl; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2792 "configure"
+#line 3637 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2799,7 +3644,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:2803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_gethostbyname="-l$i"
break
@@ -2832,19 +3677,19 @@ echo "default place for krb4 is $KRB4"
krb_h=
echo $ac_n "checking for krb.h""... $ac_c" 1>&6
-echo "configure:2836: checking for krb.h" >&5
+echo "configure:3681: checking for krb.h" >&5
if test "$cross_compiling" != yes && test -r $KRB4/include/krb.h; then
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -I$KRB4/include"
cat > conftest.$ac_ext <<EOF
-#line 2841 "configure"
+#line 3686 "configure"
#include "confdefs.h"
#include <krb.h>
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2848: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
krb_h=yes krb_incdir=$KRB4/include
else
@@ -2853,14 +3698,14 @@ else
rm -rf conftest*
CFLAGS=$hold_cflags
cat > conftest.$ac_ext <<EOF
-#line 2857 "configure"
+#line 3702 "configure"
#include "confdefs.h"
#include <krb.h>
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
krb_h=yes krb_incdir=
else
@@ -2873,14 +3718,14 @@ rm -f conftest*
CFLAGS=$hold_cflags
else
cat > conftest.$ac_ext <<EOF
-#line 2877 "configure"
+#line 3722 "configure"
#include "confdefs.h"
#include <krb.h>
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
krb_h=yes krb_incdir=
else
@@ -2891,14 +3736,14 @@ rm -f conftest*
fi
if test -z "$krb_h"; then
cat > conftest.$ac_ext <<EOF
-#line 2895 "configure"
+#line 3740 "configure"
#include "confdefs.h"
#include <krb.h>
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
krb_h=yes krb_incdir=
else
@@ -2909,14 +3754,14 @@ else
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -I$KRB4/include/kerberosIV"
cat > conftest.$ac_ext <<EOF
-#line 2913 "configure"
+#line 3758 "configure"
#include "confdefs.h"
#include <krb.h>
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
krb_h=yes krb_incdir=$KRB4/include/kerberosIV
else
@@ -2939,7 +3784,7 @@ if test -n "$krb_h"; then
hold_ldflags=$LDFLAGS
LDFLAGS="-L${KRB4}/lib $LDFLAGS"
echo $ac_n "checking for printf in -lkrb""... $ac_c" 1>&6
-echo "configure:2943: checking for printf in -lkrb" >&5
+echo "configure:3788: checking for printf in -lkrb" >&5
ac_lib_var=`echo krb'_'printf | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2947,7 +3792,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lkrb $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2951 "configure"
+#line 3796 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2958,7 +3803,7 @@ int main() {
printf()
; return 0; }
EOF
-if { (eval echo configure:2962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2980,7 +3825,7 @@ LDFLAGS=$hold_ldflags
# Using open here instead of printf so we don't
# get confused by the cached value for printf from above.
echo $ac_n "checking for open in -lkrb""... $ac_c" 1>&6
-echo "configure:2984: checking for open in -lkrb" >&5
+echo "configure:3829: checking for open in -lkrb" >&5
ac_lib_var=`echo krb'_'open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2988,7 +3833,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lkrb $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2992 "configure"
+#line 3837 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2999,7 +3844,7 @@ int main() {
open()
; return 0; }
EOF
-if { (eval echo configure:3003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3848: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3024,7 +3869,7 @@ fi
LDFLAGS=$hold_ldflags
else
echo $ac_n "checking for printf in -lkrb""... $ac_c" 1>&6
-echo "configure:3028: checking for printf in -lkrb" >&5
+echo "configure:3873: checking for printf in -lkrb" >&5
ac_lib_var=`echo krb'_'printf | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3032,7 +3877,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lkrb $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3036 "configure"
+#line 3881 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3043,7 +3888,7 @@ int main() {
printf()
; return 0; }
EOF
-if { (eval echo configure:3047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3077,7 +3922,7 @@ EOF
hold_ldflags=$LDFLAGS
test -n "${krb_libdir}" && LDFLAGS="$LDFLAGS -L${krb_libdir}"
echo $ac_n "checking for printf in -ldes""... $ac_c" 1>&6
-echo "configure:3081: checking for printf in -ldes" >&5
+echo "configure:3926: checking for printf in -ldes" >&5
ac_lib_var=`echo des'_'printf | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3085,7 +3930,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldes $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3089 "configure"
+#line 3934 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3096,7 +3941,7 @@ int main() {
printf()
; return 0; }
EOF
-if { (eval echo configure:3100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3125,12 +3970,12 @@ fi
for ac_func in krb_get_err_text
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3129: checking for $ac_func" >&5
+echo "configure:3974: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3134 "configure"
+#line 3979 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3153,7 +3998,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3178,33 +4023,80 @@ fi
done
-GSSAPI=/usr/cygnus/kerbnet
+#
+# Use --with-gssapi[=DIR] to enable GSSAPI support.
+#
+# defaults to enabled with DIR in default list below
+#
+# Search for /SUNHEA/ and read the comments about this default below.
+#
# Check whether --with-gssapi or --without-gssapi was given.
if test "${with_gssapi+set}" = set; then
withval="$with_gssapi"
- GSSAPI=$withval
+ acx_gssapi_withgssapi=$withval
+else
+ acx_gssapi_withgssapi=yes
fi
-echo "default place for GSSAPI is $GSSAPI"
-
-hold_cppflags=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS -I$GSSAPI/include "
-for ac_hdr in krb5.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h
+#
+# Try to locate a GSSAPI installation if no location was specified, assuming
+# GSSAPI was enabled (the default).
+#
+if test -n "$acx_gssapi_cv_gssapi"; then
+ # Granted, this is a slightly ugly way to print this info, but the
+ # AC_CHECK_HEADER used in the search for a GSSAPI installation makes using
+ # AC_CACHE_CHECK worse
+ echo $ac_n "checking for GSSAPI""... $ac_c" 1>&6
+echo "configure:4052: checking for GSSAPI" >&5
+else :; fi
+if eval "test \"`echo '$''{'acx_gssapi_cv_gssapi'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+if test x$acx_gssapi_withgssapi = xyes; then
+ # --with but no location specified
+ # assume a gssapi.h or gssapi/gssapi.h locates our install.
+ #
+ # This isn't always strictly true. For instance Solaris 7's SUNHEA (header)
+ # package installs gssapi.h whether or not the necessary libraries are
+ # installed. I'm still not sure whether to consider this a bug. The long
+ # way around is to not consider GSSPAI installed unless gss_import_name is
+ # found, but that brings up a lot of other hassles, like continuing to let
+ # gcc & ld generate the error messages when the user uses --with-gssapi=dir
+ # as a debugging aid. The short way around is to disable GSSAPI by default,
+ # but I think Sun users have been faced with this for awhile and I haven't
+ # heard many complaints.
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ for acx_gssapi_cv_gssapi in yes /usr/kerberos /usr/cygnus/kerbnet no; do
+ if test x$acx_gssapi_cv_gssapi = xno; then
+ break
+ fi
+ if test x$acx_gssapi_cv_gssapi = xyes; then
+ echo "checking for GSSAPI" 1>&6
+echo "configure:4078: checking for GSSAPI" >&5
+ else
+ CPPFLAGS="$acx_gssapi_save_CPPFLAGS -I$acx_gssapi_cv_gssapi/include"
+ echo "checking for GSSAPI in $acx_gssapi_cv_gssapi" 1>&6
+echo "configure:4082: checking for GSSAPI in $acx_gssapi_cv_gssapi" >&5
+ fi
+ unset ac_cv_header_gssapi_h
+ unset ac_cv_header_gssapi_gssapi_h
+ for ac_hdr in gssapi.h gssapi/gssapi.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3198: checking for $ac_hdr" >&5
+echo "configure:4090: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3203 "configure"
+#line 4095 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4100: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3230,70 +4122,632 @@ else
fi
done
-CPPFLAGS=$hold_cppflags
+ if test "$ac_cv_header_gssapi_h" = "yes" ||
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ break
+ fi
+ done
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+else
+ acx_gssapi_cv_gssapi=$acx_gssapi_withgssapi
+fi
+echo $ac_n "checking for GSSAPI""... $ac_c" 1>&6
+echo "configure:4136: checking for GSSAPI" >&5
-if test "$ac_cv_header_krb5_h" = "yes" &&
- (test "$ac_cv_header_gssapi_h" = "yes" ||
- test "$ac_cv_header_gssapi_gssapi_h" = "yes"); then
+fi
+echo "$ac_t""$acx_gssapi_cv_gssapi" 1>&6
+
+#
+# Set up GSSAPI includes for later use. We don't bother to check for
+# $acx_gssapi_cv_gssapi=no here since that will be caught later.
+#
+if test x$acx_gssapi_cv_gssapi = yes; then
+ # no special includes necessary
+ GSSAPI_INCLUDES=""
+else
+ # GSSAPI at $acx_gssapi_cv_gssapi (could be 'no')
+ GSSAPI_INCLUDES=" -I$acx_gssapi_cv_gssapi/include"
+fi
+
+#
+# Get the rest of the information CVS needs to compile with GSSAPI support
+#
+if test x$acx_gssapi_cv_gssapi != xno; then
+ # define HAVE_GSSAPI and set up the includes
cat >> confdefs.h <<\EOF
-#define HAVE_GSSAPI 1
+#define HAVE_GSSAPI
EOF
- includeopt="${includeopt} -I$GSSAPI/include"
- # FIXME: This is ugly, but these things don't seem to be standardized.
- if test "$ac_cv_header_gssapi_h" = "yes"; then
- LIBS="$LIBS -L$GSSAPI/lib -lgssapi -lkrb5 -lasn1 -ldes -lroken"
- else
- LIBS="$LIBS -L$GSSAPI/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
- fi
- save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="-I$GSSAPI/include $CPPFLAGS"
- if test "$ac_cv_header_gssapi_h" = "yes"; then
- cat > conftest.$ac_ext <<EOF
-#line 3254 "configure"
+ includeopt=$includeopt$GSSAPI_INCLUDES
+
+ # locate any other headers
+ acx_gssapi_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS=$CPPFLAGS$GSSAPI_INCLUDES
+ for ac_hdr in gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h krb5.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:4171: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4176 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4181: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ # And look through them for GSS_C_NT_HOSTBASED_SERVICE or its alternatives
+ echo $ac_n "checking for GSS_C_NT_HOSTBASED_SERVICE""... $ac_c" 1>&6
+echo "configure:4209: checking for GSS_C_NT_HOSTBASED_SERVICE" >&5
+if eval "test \"`echo '$''{'acx_gssapi_cv_gss_c_nt_hostbased_service'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ acx_gssapi_cv_gss_c_nt_hostbased_service=no
+ if test "$ac_cv_header_gssapi_h" = "yes"; then
+ cat > conftest.$ac_ext <<EOF
+#line 4216 "configure"
#include "confdefs.h"
#include <gssapi.h>
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "GSS_C_NT_HOSTBASED_SERVICE" >/dev/null 2>&1; then
rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1
+ acx_gssapi_cv_gss_c_nt_hostbased_service=yes
+else
+ rm -rf conftest*
+ cat > conftest.$ac_ext <<EOF
+#line 4227 "configure"
+#include "confdefs.h"
+#include <gssapi.h>
EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "gss_nt_service_name" >/dev/null 2>&1; then
+ rm -rf conftest*
+ acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name
+fi
+rm -f conftest*
fi
rm -f conftest*
- else
- cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
+ cat > conftest.$ac_ext <<EOF
+#line 4245 "configure"
#include "confdefs.h"
#include <gssapi/gssapi.h>
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "GSS_C_NT_HOSTBASED_SERVICE" >/dev/null 2>&1; then
rm -rf conftest*
- cat >> confdefs.h <<\EOF
-#define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1
+ acx_gssapi_cv_gss_c_nt_hostbased_service
+else
+ rm -rf conftest*
+ cat > conftest.$ac_ext <<EOF
+#line 4256 "configure"
+#include "confdefs.h"
+#include <gssapi/gssapi.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "gss_nt_service_name" >/dev/null 2>&1; then
+ rm -rf conftest*
+ acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name
+fi
+rm -f conftest*
+
+fi
+rm -f conftest*
+
+ fi
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service = no &&
+ test "$ac_cv_header_gssapi_gssapi_generic_h" = "yes"; then
+ cat > conftest.$ac_ext <<EOF
+#line 4274 "configure"
+#include "confdefs.h"
+#include <gssapi/gssapi_generic.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "GSS_C_NT_HOSTBASED_SERVICE" >/dev/null 2>&1; then
+ rm -rf conftest*
+ acx_gssapi_cv_gss_c_nt_hostbased_service
+else
+ rm -rf conftest*
+ cat > conftest.$ac_ext <<EOF
+#line 4285 "configure"
+#include "confdefs.h"
+#include <gssapi/gssapi_generic.h>
EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "gss_nt_service_name" >/dev/null 2>&1; then
+ rm -rf conftest*
+ acx_gssapi_cv_gss_c_nt_hostbased_service=gss_nt_service_name
+fi
+rm -f conftest*
fi
rm -f conftest*
+ fi
+fi
+
+echo "$ac_t""$acx_gssapi_cv_gss_c_nt_hostbased_service" 1>&6
+ if test $acx_gssapi_cv_gss_c_nt_hostbased_service != yes &&
+ test $acx_gssapi_cv_gss_c_nt_hostbased_service != no; then
+ # don't define for yes since that means it already means something and
+ # don't define for no since we'd rather the compiler catch the error
+ cat >> confdefs.h <<EOF
+#define GSS_C_NT_HOSTBASED_SERVICE $acx_gssapi_cv_gss_c_nt_hostbased_service
+EOF
+
fi
- CPPFLAGS=$save_CPPFLAGS
+ CPPFLAGS=$acx_gssapi_save_CPPFLAGS
+
+ # Expect the libs to be installed parallel to the headers
+ #
+ # We could try once with and once without, but I'm not sure it's worth the
+ # trouble.
+ if test x$acx_gssapi_cv_gssapi != xyes; then
+ if test -z "$LIBS"; then
+ LIBS="-L$acx_gssapi_cv_gssapi/lib"
+ else
+ LIBS="-L$acx_gssapi_cv_gssapi/lib $LIBS"
+ fi
+ else :; fi
+
+ #
+ # Some of the order below is particular due to library dependencies
+ #
+
+ #
+ # des Heimdal K 0.3d, but Heimdal seems to be set up such
+ # that it could have been installed from elsewhere.
+ #
+
+echo $ac_n "checking for library containing des_set_odd_parity""... $ac_c" 1>&6
+echo "configure:4336: checking for library containing des_set_odd_parity" >&5
+if eval "test \"`echo '$''{'ac_cv_search_des_set_odd_parity'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_des_set_odd_parity="no"
+cat > conftest.$ac_ext <<EOF
+#line 4343 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char des_set_odd_parity();
+
+int main() {
+des_set_odd_parity()
+; return 0; }
+EOF
+if { (eval echo configure:4354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_des_set_odd_parity="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_des_set_odd_parity" = "no" && for i in des; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4365 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char des_set_odd_parity();
+
+int main() {
+des_set_odd_parity()
+; return 0; }
+EOF
+if { (eval echo configure:4376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_des_set_odd_parity="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_des_set_odd_parity" 1>&6
+if test "$ac_cv_search_des_set_odd_parity" != "no"; then
+ test "$ac_cv_search_des_set_odd_parity" = "none required" || LIBS="$ac_cv_search_des_set_odd_parity $LIBS"
+
+else :
+
+fi
+
+ #
+ # com_err Heimdal K 0.3d
+ #
+ # com_err MIT K5 v1.2.2-beta1
+ #
+
+echo $ac_n "checking for library containing com_err""... $ac_c" 1>&6
+echo "configure:4404: checking for library containing com_err" >&5
+if eval "test \"`echo '$''{'ac_cv_search_com_err'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_com_err="no"
+cat > conftest.$ac_ext <<EOF
+#line 4411 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char com_err();
+
+int main() {
+com_err()
+; return 0; }
+EOF
+if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_com_err="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_com_err" = "no" && for i in com_err; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4433 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char com_err();
+
+int main() {
+com_err()
+; return 0; }
+EOF
+if { (eval echo configure:4444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_com_err="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_com_err" 1>&6
+if test "$ac_cv_search_com_err" != "no"; then
+ test "$ac_cv_search_com_err" = "none required" || LIBS="$ac_cv_search_com_err $LIBS"
+
+else :
+
+fi
+
+ #
+ # asn1 Heimdal K 0.3d -lcom_err
+ #
+
+echo $ac_n "checking for library containing initialize_asn1_error_table_r""... $ac_c" 1>&6
+echo "configure:4470: checking for library containing initialize_asn1_error_table_r" >&5
+if eval "test \"`echo '$''{'ac_cv_search_initialize_asn1_error_table_r'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_initialize_asn1_error_table_r="no"
+cat > conftest.$ac_ext <<EOF
+#line 4477 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char initialize_asn1_error_table_r();
+
+int main() {
+initialize_asn1_error_table_r()
+; return 0; }
+EOF
+if { (eval echo configure:4488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_initialize_asn1_error_table_r="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_initialize_asn1_error_table_r" = "no" && for i in asn1; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4499 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char initialize_asn1_error_table_r();
+
+int main() {
+initialize_asn1_error_table_r()
+; return 0; }
+EOF
+if { (eval echo configure:4510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_initialize_asn1_error_table_r="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_initialize_asn1_error_table_r" 1>&6
+if test "$ac_cv_search_initialize_asn1_error_table_r" != "no"; then
+ test "$ac_cv_search_initialize_asn1_error_table_r" = "none required" || LIBS="$ac_cv_search_initialize_asn1_error_table_r $LIBS"
+
+else :
+
+fi
+
+ #
+ # resolv required, but not installed by Heimdal K 0.3d
+ #
+ # resolv MIT K5 1.2.2-beta1
+ # Linux 2.2.17
+ #
+
+echo $ac_n "checking for library containing __dn_expand""... $ac_c" 1>&6
+echo "configure:4539: checking for library containing __dn_expand" >&5
+if eval "test \"`echo '$''{'ac_cv_search___dn_expand'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search___dn_expand="no"
+cat > conftest.$ac_ext <<EOF
+#line 4546 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char __dn_expand();
+
+int main() {
+__dn_expand()
+; return 0; }
+EOF
+if { (eval echo configure:4557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search___dn_expand="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search___dn_expand" = "no" && for i in resolv; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4568 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char __dn_expand();
+
+int main() {
+__dn_expand()
+; return 0; }
+EOF
+if { (eval echo configure:4579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search___dn_expand="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search___dn_expand" 1>&6
+if test "$ac_cv_search___dn_expand" != "no"; then
+ test "$ac_cv_search___dn_expand" = "none required" || LIBS="$ac_cv_search___dn_expand $LIBS"
+
+else :
+
+fi
+
+ #
+ # roken Heimdal K 0.3d -lresolv
+ #
+
+echo $ac_n "checking for library containing roken_gethostbyaddr""... $ac_c" 1>&6
+echo "configure:4605: checking for library containing roken_gethostbyaddr" >&5
+if eval "test \"`echo '$''{'ac_cv_search_roken_gethostbyaddr'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_roken_gethostbyaddr="no"
+cat > conftest.$ac_ext <<EOF
+#line 4612 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char roken_gethostbyaddr();
+
+int main() {
+roken_gethostbyaddr()
+; return 0; }
+EOF
+if { (eval echo configure:4623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_roken_gethostbyaddr="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_roken_gethostbyaddr" = "no" && for i in roken; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4634 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char roken_gethostbyaddr();
+
+int main() {
+roken_gethostbyaddr()
+; return 0; }
+EOF
+if { (eval echo configure:4645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_roken_gethostbyaddr="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_roken_gethostbyaddr" 1>&6
+if test "$ac_cv_search_roken_gethostbyaddr" != "no"; then
+ test "$ac_cv_search_roken_gethostbyaddr" = "none required" || LIBS="$ac_cv_search_roken_gethostbyaddr $LIBS"
+
+else :
+
+fi
+
+ #
+ # k5crypto MIT K5 v1.2.2-beta1
+ #
+
+echo $ac_n "checking for library containing valid_enctype""... $ac_c" 1>&6
+echo "configure:4671: checking for library containing valid_enctype" >&5
+if eval "test \"`echo '$''{'ac_cv_search_valid_enctype'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_valid_enctype="no"
+cat > conftest.$ac_ext <<EOF
+#line 4678 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char valid_enctype();
+
+int main() {
+valid_enctype()
+; return 0; }
+EOF
+if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_valid_enctype="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_valid_enctype" = "no" && for i in k5crypto; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4700 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char valid_enctype();
+
+int main() {
+valid_enctype()
+; return 0; }
+EOF
+if { (eval echo configure:4711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_valid_enctype="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_valid_enctype" 1>&6
+if test "$ac_cv_search_valid_enctype" != "no"; then
+ test "$ac_cv_search_valid_enctype" = "none required" || LIBS="$ac_cv_search_valid_enctype $LIBS"
+
+else :
+
+fi
+
+ #
+ # gen ? ? ? Needed on Irix 5.3 with some
+ # Irix 5.3 version of Kerberos. I'm not
+ # sure which since Irix didn't
+ # get any testing this time
+ # around. Original comment:
+ #
# This is necessary on Irix 5.3, in order to link against libkrb5 --
# there, an_to_ln.o refers to things defined only in -lgen.
- echo $ac_n "checking for compile in -lgen""... $ac_c" 1>&6
-echo "configure:3289: checking for compile in -lgen" >&5
-ac_lib_var=`echo gen'_'compile | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ #
+
+echo $ac_n "checking for library containing compile""... $ac_c" 1>&6
+echo "configure:4744: checking for library containing compile" >&5
+if eval "test \"`echo '$''{'ac_cv_search_compile'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- ac_save_LIBS="$LIBS"
-LIBS="-lgen $LIBS"
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_compile="no"
cat > conftest.$ac_ext <<EOF
-#line 3297 "configure"
+#line 4751 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3304,34 +4758,200 @@ int main() {
compile()
; return 0; }
EOF
-if { (eval echo configure:3308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+ ac_cv_search_compile="none required"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_compile" = "no" && for i in gen; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4773 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char compile();
+
+int main() {
+compile()
+; return 0; }
+EOF
+if { (eval echo configure:4784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
+ ac_cv_search_compile="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+echo "$ac_t""$ac_cv_search_compile" 1>&6
+if test "$ac_cv_search_compile" != "no"; then
+ test "$ac_cv_search_compile" = "none required" || LIBS="$ac_cv_search_compile $LIBS"
+
+else :
+
fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo gen | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
+
+ #
+ # krb5 ? ? ? -lgen -l???
+ # Irix 5.3
+ #
+ # krb5 MIT K5 v1.1.1
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err
+ # Linux 2.2.17
+ #
+ # krb5 MIT K5 v1.2.2-beta1 -lcrypto -lcom_err -lresolv
+ #
+ # krb5 Heimdal K 0.3d -lasn1 -lroken -ldes
+ #
+
+echo $ac_n "checking for library containing krb5_free_context""... $ac_c" 1>&6
+echo "configure:4820: checking for library containing krb5_free_context" >&5
+if eval "test \"`echo '$''{'ac_cv_search_krb5_free_context'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_krb5_free_context="no"
+cat > conftest.$ac_ext <<EOF
+#line 4827 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char krb5_free_context();
+
+int main() {
+krb5_free_context()
+; return 0; }
EOF
+if { (eval echo configure:4838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_krb5_free_context="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_krb5_free_context" = "no" && for i in krb5; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4849 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char krb5_free_context();
- LIBS="-lgen $LIBS"
+int main() {
+krb5_free_context()
+; return 0; }
+EOF
+if { (eval echo configure:4860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_krb5_free_context="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+echo "$ac_t""$ac_cv_search_krb5_free_context" 1>&6
+if test "$ac_cv_search_krb5_free_context" != "no"; then
+ test "$ac_cv_search_krb5_free_context" = "none required" || LIBS="$ac_cv_search_krb5_free_context $LIBS"
+
+else :
+
+fi
+
+ #
+ # gssapi_krb5 Only lib needed with MIT K5 v1.2.1, so find it first in
+ # order to prefer MIT Kerberos. If both MIT & Heimdal
+ # Kerberos are installed and in the path, this will leave
+ # some of the libraries above in LIBS unnecessarily, but
+ # noone would ever do that, right?
+ #
+ # gssapi_krb5 MIT K5 v1.2.2-beta1 -lkrb5
+ #
+ # gssapi Heimdal K 0.3d -lkrb5
+ #
+
+echo $ac_n "checking for library containing gss_import_name""... $ac_c" 1>&6
+echo "configure:4894: checking for library containing gss_import_name" >&5
+if eval "test \"`echo '$''{'ac_cv_search_gss_import_name'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
else
- echo "$ac_t""no" 1>&6
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_gss_import_name="no"
+cat > conftest.$ac_ext <<EOF
+#line 4901 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gss_import_name();
+
+int main() {
+gss_import_name()
+; return 0; }
+EOF
+if { (eval echo configure:4912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_gss_import_name="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_gss_import_name" = "no" && for i in gssapi_krb5 gssapi; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4923 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gss_import_name();
+
+int main() {
+gss_import_name()
+; return 0; }
+EOF
+if { (eval echo configure:4934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_gss_import_name="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
fi
+echo "$ac_t""$ac_cv_search_gss_import_name" 1>&6
+if test "$ac_cv_search_gss_import_name" != "no"; then
+ test "$ac_cv_search_gss_import_name" = "none required" || LIBS="$ac_cv_search_gss_import_name $LIBS"
+
+else :
+
fi
+fi
+
# Check whether --enable-encryption or --disable-encryption was given.
if test "${enable_encryption+set}" = set; then
@@ -3353,12 +4973,12 @@ EOF
fi
echo $ac_n "checking for gethostname""... $ac_c" 1>&6
-echo "configure:3357: checking for gethostname" >&5
+echo "configure:4977: checking for gethostname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3362 "configure"
+#line 4982 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostname(); below. */
@@ -3381,7 +5001,7 @@ gethostname();
; return 0; }
EOF
-if { (eval echo configure:3385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostname=yes"
else
@@ -3446,14 +5066,14 @@ fi
if test "$enable_server" = yes; then
echo $ac_n "checking for library containing crypt""... $ac_c" 1>&6
-echo "configure:3450: checking for library containing crypt" >&5
+echo "configure:5070: checking for library containing crypt" >&5
if eval "test \"`echo '$''{'ac_cv_search_crypt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_crypt="no"
cat > conftest.$ac_ext <<EOF
-#line 3457 "configure"
+#line 5077 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3464,7 +5084,7 @@ int main() {
crypt()
; return 0; }
EOF
-if { (eval echo configure:3468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_crypt="none required"
else
@@ -3475,7 +5095,7 @@ rm -f conftest*
test "$ac_cv_search_crypt" = "no" && for i in crypt; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3479 "configure"
+#line 5099 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3486,7 +5106,7 @@ int main() {
crypt()
; return 0; }
EOF
-if { (eval echo configure:3490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_crypt="-l$i"
break
@@ -3516,19 +5136,19 @@ fi # enable_server
echo $ac_n "checking for cygwin32""... $ac_c" 1>&6
-echo "configure:3520: checking for cygwin32" >&5
+echo "configure:5140: checking for cygwin32" >&5
if eval "test \"`echo '$''{'ccvs_cv_sys_cygwin32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3525 "configure"
+#line 5145 "configure"
#include "confdefs.h"
int main() {
return __CYGWIN32__;
; return 0; }
EOF
-if { (eval echo configure:3532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ccvs_cv_sys_cygwin32=yes
else
@@ -3668,12 +5288,30 @@ done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
-trap 'rm -fr `echo "Makefile lib/Makefile src/Makefile zlib/Makefile diff/Makefile doc/Makefile \
- man/Makefile tools/Makefile \
+trap 'rm -fr `echo "Makefile \
contrib/Makefile \
- windows-NT/Makefile windows-NT/SCC/Makefile \
- os2/Makefile emx/Makefile vms/Makefile \
- stamp-h config.h src/options.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ contrib/clmerge \
+ contrib/cln_hist \
+ contrib/commit_prep \
+ contrib/cvs_acls \
+ contrib/log \
+ contrib/log_accum \
+ contrib/mfpipe \
+ contrib/rcslock \
+ contrib/sccs2rcs \
+ diff/Makefile \
+ doc/Makefile \
+ emx/Makefile \
+ lib/Makefile \
+ man/Makefile \
+ os2/Makefile \
+ src/Makefile \
+ src/cvsbug \
+ tools/Makefile \
+ vms/Makefile \
+ windows-NT/Makefile \
+ windows-NT/SCC/Makefile \
+ zlib/Makefile config.h src/options.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -3705,22 +5343,49 @@ s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
-s%@CVS@%$CVS%g
-s%@AWK@%$AWK%g
-s%@CC@%$CC%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@AMTAR@%$AMTAR%g
+s%@install_sh@%$install_sh%g
+s%@STRIP@%$STRIP%g
+s%@INSTALL_STRIP_PROGRAM@%$INSTALL_STRIP_PROGRAM%g
+s%@INSTALL_STRIP_PROGRAM_ENV@%$INSTALL_STRIP_PROGRAM_ENV%g
+s%@AWK@%$AWK%g
s%@SET_MAKE@%$SET_MAKE%g
+s%@ETAGS@%$ETAGS%g
+s%@ETAGS_INCLUDE_OPTION@%$ETAGS_INCLUDE_OPTION%g
+s%@AMDEP_TRUE@%$AMDEP_TRUE%g
+s%@AMDEP_FALSE@%$AMDEP_FALSE%g
+s%@AMDEPBACKSLASH@%$AMDEPBACKSLASH%g
+s%@DEPDIR@%$DEPDIR%g
+s%@CVS@%$CVS%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+s%@_am_include@%$_am_include%g
+s%@_am_quote@%$_am_quote%g
+s%@CCDEPMODE@%$CCDEPMODE%g
s%@RANLIB@%$RANLIB%g
s%@YACC@%$YACC%g
-s%@perl_path@%$perl_path%g
-s%@csh_path@%$csh_path%g
-s%@CPP@%$CPP%g
+s%@LN_S@%$LN_S%g
+s%@PERL@%$PERL%g
+s%@CSH@%$CSH%g
+s%@PR@%$PR%g
+s%@ROFF@%$ROFF%g
+s%@PS2PDF@%$PS2PDF%g
+s%@TEXI2DVI@%$TEXI2DVI%g
+s%@MAKE_TARGETS_IN_VPATH_TRUE@%$MAKE_TARGETS_IN_VPATH_TRUE%g
+s%@MAKE_TARGETS_IN_VPATH_FALSE@%$MAKE_TARGETS_IN_VPATH_FALSE%g
s%@LIBOBJS@%$LIBOBJS%g
s%@KRB4@%$KRB4%g
s%@includeopt@%$includeopt%g
-s%@GSSAPI@%$GSSAPI%g
CEOF
EOF
@@ -3762,12 +5427,30 @@ EOF
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"Makefile lib/Makefile src/Makefile zlib/Makefile diff/Makefile doc/Makefile \
- man/Makefile tools/Makefile \
+CONFIG_FILES=\${CONFIG_FILES-"Makefile \
contrib/Makefile \
- windows-NT/Makefile windows-NT/SCC/Makefile \
- os2/Makefile emx/Makefile vms/Makefile \
- stamp-h"}
+ contrib/clmerge \
+ contrib/cln_hist \
+ contrib/commit_prep \
+ contrib/cvs_acls \
+ contrib/log \
+ contrib/log_accum \
+ contrib/mfpipe \
+ contrib/rcslock \
+ contrib/sccs2rcs \
+ diff/Makefile \
+ doc/Makefile \
+ emx/Makefile \
+ lib/Makefile \
+ man/Makefile \
+ os2/Makefile \
+ src/Makefile \
+ src/cvsbug \
+ tools/Makefile \
+ vms/Makefile \
+ windows-NT/Makefile \
+ windows-NT/SCC/Makefile \
+ zlib/Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
@@ -3935,10 +5618,81 @@ fi; done
EOF
cat >> $CONFIG_STATUS <<EOF
+am_indx=1
+for am_file in config.h src/options.h; do
+ case " \$CONFIG_HEADERS " in
+ *" \$am_file "*)
+ am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+ if test -n "\$am_dir"; then
+ am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+ for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+ am_tmpdir=\$am_tmpdir\$am_subdir/
+ if test ! -d \$am_tmpdir; then
+ mkdir \$am_tmpdir
+ fi
+ done
+ fi
+ echo timestamp > "\$am_dir"stamp-h\$am_indx
+ ;;
+ esac
+ am_indx=\`expr \$am_indx + 1\`
+done
+AMDEP="$AMDEP"
+ac_aux_dir="$ac_aux_dir"
EOF
cat >> $CONFIG_STATUS <<\EOF
+
+test x"$AMDEP" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+
+chmod -f +x \
+ contrib/clmerge \
+ contrib/cln_hist \
+ contrib/commit_prep \
+ contrib/cvs_acls \
+ contrib/log \
+ contrib/log_accum \
+ contrib/mfpipe \
+ contrib/rcslock \
+ contrib/sccs2rcs \
+ src/cvsbug
exit 0
EOF
chmod +x $CONFIG_STATUS
diff --git a/contrib/cvs/configure.in b/contrib/cvs/configure.in
index cf35ccdd7617..2a6a39088a48 100644
--- a/contrib/cvs/configure.in
+++ b/contrib/cvs/configure.in
@@ -1,18 +1,35 @@
dnl configure.in for cvs
AC_INIT(src/cvs.h)
+AM_INIT_AUTOMAKE(cvs, 1.11.1p1)
AC_PREREQ(2.13)
AC_PREFIX_PROGRAM(cvs)
-AC_CONFIG_HEADER(config.h src/options.h)
+AM_CONFIG_HEADER(config.h src/options.h)
AC_PROG_AWK
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
+# Automake's more advanced version of AC_PROG_RANLIB
AC_PROG_RANLIB
AC_PROG_YACC
+AC_PROG_LN_S
-AC_PATH_PROG(perl_path, perl, no)
-AC_PATH_PROG(csh_path, csh, no)
+AC_PATH_PROG(PERL, perl, no)
+AC_PATH_PROG(CSH, csh, no)
+AC_PATH_PROG(PR, pr, no)
+# For diff/util.c
+if test x"$PR" != xno; then
+ AC_DEFINE_UNQUOTED([PR_PROGRAM], ["$PR"], [Path to the pr utility])
+fi
+
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+dnl FIXME I pulled this default list from sanity.sh. Perhaps these lists
+dnl can be stored in one location?
+glocs="$PATH:/usr/local/bin:/usr/contrib/bin:/usr/gnu/bin:/local/bin:/local/gnu/bin:/gnu/bin"
+AC_PATH_PROGS(ROFF, groff roff, $missing_dir/missing roff, $glocs)
+AC_PATH_PROG(PS2PDF, ps2pdf, $missing_dir/missing ps2pdf)
+AC_PATH_PROG(TEXI2DVI, texi2dvi, $missing_dir/missing texi2dvi)
AC_SYS_INTERPRETER
if test X"$ac_cv_sys_interpreter" != X"yes" ; then
@@ -21,6 +38,34 @@ if test X"$ac_cv_sys_interpreter" != X"yes" ; then
AC_MSG_WARN($ac_msg)
fi
+# BSD's logo is a devil for a reason, hey?
+AC_CACHE_CHECK(for BSD VPATH bug in make, ccvs_cv_bsd_make_vpath_bug,
+[if test ! -d ac_test_dir ; then
+ AC_TRY_COMMAND([mkdir ac_test_dir])
+fi
+cat >conftestmake <<EOF
+VPATH = ac_test_dir
+ac_test_target: ac_test_dep
+ echo BSD VPATH bug present >&2
+ac_test_dep: ac_test_dep_dep
+EOF
+touch ac_test_dir/ac_test_dep_dep
+touch ac_test_dir/ac_test_dep
+touch ac_test_target
+# Don't know why, but the following test doesn't work under FreeBSD 4.2
+# without this sleep command
+sleep 1
+if AC_TRY_COMMAND([make -f conftestmake 2>&1 >/dev/null |grep ^BSD\ VPATH\ bug\ present\$ >/dev/null]) ; then
+ ccvs_cv_bsd_make_vpath_bug=yes
+else
+ ccvs_cv_bsd_make_vpath_bug=no
+fi
+AC_TRY_COMMAND([rm -rf ac_test_dir ac_test_target conftestmake])])
+# We also don't need to worry about the bug when $srcdir = $builddir
+AM_CONDITIONAL(MAKE_TARGETS_IN_VPATH, \
+ test $ccvs_cv_bsd_make_vpath_bug = no \
+ || test $srcdir = .)
+
AC_AIX
AC_MINIX
AC_ISC_POSIX
@@ -35,7 +80,7 @@ AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(errno.h unistd.h string.h memory.h utime.h fcntl.h ndbm.h \
limits.h sys/file.h \
sys/param.h sys/select.h sys/time.h sys/timeb.h \
- io.h direct.h sys/bsdtypes.h sys/resource.h)
+ io.h direct.h sys/bsdtypes.h sys/resource.h syslog.h)
AC_HEADER_STAT
AC_HEADER_TIME
@@ -49,7 +94,39 @@ AC_TYPE_SIGNAL
AC_STRUCT_ST_BLKSIZE
AC_STRUCT_ST_RDEV
AC_REPLACE_FUNCS(mkdir rename strstr dup2 strerror valloc waitpid memmove strtoul)
-AC_CHECK_FUNCS(fchmod fsync ftime mktemp putenv vprintf ftruncate timezone getpagesize initgroups fchdir sigaction sigprocmask sigvec sigsetmask sigblock tempnam tzset readlink wait3 mknod getpassphrase)
+AC_CHECK_FUNCS(\
+ fchdir \
+ fchmod \
+ fsync \
+ ftime \
+ ftruncate \
+ getgroups \
+ getpagesize \
+ getpassphrase \
+ gettimeofday \
+ initgroups \
+ mknod \
+ mkstemp \
+ mktemp \
+ putenv \
+ readlink \
+ sigaction \
+ sigblock \
+ sigprocmask \
+ sigsetmask \
+ sigvec \
+ tempnam \
+ timezone \
+ tzset \
+ vprintf \
+ wait3 \
+)
+# we only need one of the following
+AC_CHECK_FUNCS([\
+ nanosleep \
+ usleep \
+ select \
+], [break])
dnl
dnl The CVS coding standard (as specified in HACKING) is that if it exists
@@ -182,47 +259,7 @@ if test -n "$krb_h"; then
fi
AC_CHECK_FUNCS(krb_get_err_text)
-dnl
-dnl Use --with-gssapi=DIR to enable GSSAPI support.
-dnl
-GSSAPI=/usr/cygnus/kerbnet
-define(WITH_GSSAPI,[
-AC_ARG_WITH([gssapi],
- [ --with-gssapi=value GSSAPI directory],
- [GSSAPI=$withval],
-)dnl
-echo "default place for GSSAPI is $GSSAPI"
-AC_SUBST(GSSAPI)])dnl
-WITH_GSSAPI
-
-hold_cppflags=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS -I$GSSAPI/include "
-AC_CHECK_HEADERS(krb5.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h)
-CPPFLAGS=$hold_cppflags
-
-if test "$ac_cv_header_krb5_h" = "yes" &&
- (test "$ac_cv_header_gssapi_h" = "yes" ||
- test "$ac_cv_header_gssapi_gssapi_h" = "yes"); then
- AC_DEFINE(HAVE_GSSAPI)
- includeopt="${includeopt} -I$GSSAPI/include"
- # FIXME: This is ugly, but these things don't seem to be standardized.
- if test "$ac_cv_header_gssapi_h" = "yes"; then
- LIBS="$LIBS -L$GSSAPI/lib -lgssapi -lkrb5 -lasn1 -ldes -lroken"
- else
- LIBS="$LIBS -L$GSSAPI/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
- fi
- save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="-I$GSSAPI/include $CPPFLAGS"
- if test "$ac_cv_header_gssapi_h" = "yes"; then
- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
- else
- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
- fi
- CPPFLAGS=$save_CPPFLAGS
- # This is necessary on Irix 5.3, in order to link against libkrb5 --
- # there, an_to_ln.o refers to things defined only in -lgen.
- AC_CHECK_LIB(gen, compile)
-fi
+ACX_WITH_GSSAPI
dnl
dnl Use --with-encryption to turn on encryption support
@@ -307,9 +344,38 @@ test -f src/options.h && (
cp ./src/options.h ./src/options.h-SAVED
)
-AC_OUTPUT(Makefile lib/Makefile src/Makefile zlib/Makefile diff/Makefile doc/Makefile \
- man/Makefile tools/Makefile \
+AC_OUTPUT([Makefile \
contrib/Makefile \
- windows-NT/Makefile windows-NT/SCC/Makefile \
- os2/Makefile emx/Makefile vms/Makefile \
- stamp-h)
+ contrib/clmerge \
+ contrib/cln_hist \
+ contrib/commit_prep \
+ contrib/cvs_acls \
+ contrib/log \
+ contrib/log_accum \
+ contrib/mfpipe \
+ contrib/rcslock \
+ contrib/sccs2rcs \
+ diff/Makefile \
+ doc/Makefile \
+ emx/Makefile \
+ lib/Makefile \
+ man/Makefile \
+ os2/Makefile \
+ src/Makefile \
+ src/cvsbug \
+ tools/Makefile \
+ vms/Makefile \
+ windows-NT/Makefile \
+ windows-NT/SCC/Makefile \
+ zlib/Makefile],
+ [chmod -f +x \
+ contrib/clmerge \
+ contrib/cln_hist \
+ contrib/commit_prep \
+ contrib/cvs_acls \
+ contrib/log \
+ contrib/log_accum \
+ contrib/mfpipe \
+ contrib/rcslock \
+ contrib/sccs2rcs \
+ src/cvsbug])
diff --git a/contrib/cvs/contrib/ChangeLog b/contrib/cvs/contrib/ChangeLog
index 6a2ee13d066a..d1ae3319f631 100644
--- a/contrib/cvs/contrib/ChangeLog
+++ b/contrib/cvs/contrib/ChangeLog
@@ -1,3 +1,60 @@
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+
+2001-04-16 Derek Price <dprice@collab.net>
+
+ * log.pl: Accept new '-V' option for non-verbose status messages.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2001-01-05 Derek Price <derek.price@openavenue.com>
+
+ * contrib/Makefile.am (EXTRA_DIST, SUFFIXES, .pl:, .csh:): Move some
+ script targets to configure.in - see ../ChangeLog for more
+
+ * contrib/clmerge.in: Rename from clmerge.pl
+ * contrib/cln_hist.in: Rename from cln_hist.pl
+ * contrib/commit_prep.in: Rename from commit_prep.pl
+ * contrib/cvs_acls.in: Rename from cvs_acls.pl
+ * contrib/log.in: Rename from log.pl
+ * contrib/log_accum.in: Rename from log_accum.pl
+ * contrib/mfpipe.in: Rename from mfpipe.pl
+ * contrib/rcslock.in: Rename from rcslock.pl
+ * contrib/sccs2rcs.in: Rename from scc2rcs.csh
+
+ * contrib/clmerge.pl: Rename to clmerge.in
+ * contrib/cln_hist.pl: Rename to cln_hist.in
+ * contrib/commit_prep.pl: Rename to commit_prep.in
+ * contrib/cvs_acls.pl: Rename to cvs_acls.in
+ * contrib/log.pl: Rename to log.in
+ * contrib/log_accum.pl: Rename to log_accum.in
+ * contrib/mfpipe.pl: Rename to mfpipe.in
+ * contrib/rcslock.pl: Rename to rcslock.in
+ * contrib/sccs2rcs.csh: Rename to sccs2rcs.in
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+
+2000-12-14 Derek Price <derek.price@openavenue.com>
+ Thomas Maeder <maeder@glue.ch>
+
+ * sccs2rcs.csh: unkludge a Y2k workaround
+
+2000-10-23 Derek Price <derek.price@openavenue.com>
+
+ * debug_check_log.sh: added this script for analyzing sanity.sh output
+ * Makefile.in: add above file to DISTFILES and CONTRIB_PROGS
+ * .cvsignore: add debug_check_log
+
2000-09-07 Larry Jones <larry.jones@sdrc.com>
* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
diff --git a/contrib/cvs/contrib/Makefile.am b/contrib/cvs/contrib/Makefile.am
new file mode 100644
index 000000000000..7bee1806b1ff
--- /dev/null
+++ b/contrib/cvs/contrib/Makefile.am
@@ -0,0 +1,108 @@
+## Process this file with automake to produce Makefile.in
+# Makefile for GNU CVS contributed sources.
+# Do not use this makefile directly, but only from `../Makefile'.
+# Copyright (C) 1986, 1988-1990 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# DISTFILES = \
+# ChangeLog README .cvsignore intro.doc \
+# Makefile.in clmerge.pl cln_hist.pl commit_prep.pl cvs2vendor.sh \
+# cvs_acls.pl cvscheck.sh cvscheck.man cvshelp.man debug_check_log.sh \
+# descend.sh \
+# descend.man dirfns.shar log.pl log_accum.pl mfpipe.pl rcs-to-cvs.sh \
+# rcs2log.sh rcslock.pl sccs2rcs.csh rcs2sccs.sh
+
+# files installed in $(pkgdatadir)
+#
+# CONTRIB_FILES = README intro.doc cvscheck.man
+
+contribdir = $(pkgdatadir)/contrib
+
+contrib_SCRIPTS = \
+ clmerge \
+ cln_hist \
+ commit_prep \
+ cvs2vendor \
+ cvs_acls \
+ cvscheck \
+ debug_check_log \
+ log \
+ log_accum \
+ mfpipe \
+ rcs-to-cvs \
+ rcs2log \
+ rcslock \
+ sccs2rcs
+
+contrib_DATA = \
+ README \
+ intro.doc
+
+contrib_MANS = \
+ cvscheck.man
+
+bin_LINKS = \
+ rcs2log
+
+EXTRA_DIST = \
+ .cvsignore \
+ $(contrib_DATA) \
+ $(contrib_MANS) \
+ cvs2vendor.sh \
+ cvscheck.sh \
+ cvshelp.man \
+ debug_check_log.sh \
+ descend.sh \
+ descend.man \
+ dirfns.shar \
+ rcs-to-cvs.sh \
+ rcs2log.sh \
+ rcs2sccs.sh
+
+CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS)
+
+# we'd rather have a link here rather than two copies of a script
+install-data-local:
+ # FIXME - this path should be determined dynamically from bindir
+ # & contribdir
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_LINKS)'; for p in $$list; do \
+ echo "test ! -e $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ echo " && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` ."; \
+ (test ! -e $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'` \
+ && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` .) \
+ || (echo "Link creation failed" && if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else :; fi; fi); \
+ done
+
+uninstall-local:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_LINKS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+
+SUFFIXES = .sh
+
+.sh:
+ rm -f $@
+ cp $< $@
+ chmod +x $@
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
diff --git a/contrib/cvs/contrib/Makefile.in b/contrib/cvs/contrib/Makefile.in
index 3e59cf100dd8..910546e282ed 100644
--- a/contrib/cvs/contrib/Makefile.in
+++ b/contrib/cvs/contrib/Makefile.in
@@ -1,3 +1,18 @@
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
# Makefile for GNU CVS contributed sources.
# Do not use this makefile directly, but only from `../Makefile'.
# Copyright (C) 1986, 1988-1990 Free Software Foundation, Inc.
@@ -12,116 +27,365 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-SHELL = /bin/sh
+# DISTFILES = \
+# ChangeLog README .cvsignore intro.doc \
+# Makefile.in clmerge.pl cln_hist.pl commit_prep.pl cvs2vendor.sh \
+# cvs_acls.pl cvscheck.sh cvscheck.man cvshelp.man debug_check_log.sh \
+# descend.sh \
+# descend.man dirfns.shar log.pl log_accum.pl mfpipe.pl rcs-to-cvs.sh \
+# rcs2log.sh rcslock.pl sccs2rcs.csh rcs2sccs.sh
+
+# files installed in $(pkgdatadir)
+#
+# CONTRIB_FILES = README intro.doc cvscheck.man
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
-# Where to install the executables.
bindir = @bindir@
-
-# Where to put the system-wide .cvsrc file
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
libdir = @libdir@
-
-# Where to put the manual pages.
+infodir = @infodir@
mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
-# where to find command interpreters
-perl_path = @perl_path@
-csh_path = @csh_path@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
-# Use cp if you don't have install.
INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
-DISTFILES = \
- ChangeLog README .cvsignore intro.doc \
- Makefile.in clmerge.pl cln_hist.pl commit_prep.pl cvs2vendor.sh \
- cvs_acls.pl cvscheck.sh cvscheck.man cvshelp.man descend.sh \
- descend.man dirfns.shar log.pl log_accum.pl mfpipe.pl rcs-to-cvs.sh \
- rcs2log.sh rcslock.pl sccs2rcs.csh rcs2sccs.sh
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
-# files installed in $(libdir)/cvs/contrib
-#
-CONTRIB_FILES = README intro.doc cvscheck.man
+contribdir = $(pkgdatadir)/contrib
-# things we actually build and install....
-#
-PROGS = rcs2log
-CONTRIB_PROGS = clmerge cln_hist commit_prep cvs2vendor cvs_acls cvscheck \
- log log_accum mfpipe rcs-to-cvs rcs2log rcslock sccs2rcs
+contrib_SCRIPTS = \
+ clmerge \
+ cln_hist \
+ commit_prep \
+ cvs2vendor \
+ cvs_acls \
+ cvscheck \
+ debug_check_log \
+ log \
+ log_accum \
+ mfpipe \
+ rcs-to-cvs \
+ rcs2log \
+ rcslock \
+ sccs2rcs
-.SUFFIXES: .pl .sh .csh
-.pl:
- rm -f $@
- sed -e 's,xPERL_PATHx,$(perl_path),' $< > $@-t
- mv $@-t $@
- chmod +x $@
+contrib_DATA = \
+ README \
+ intro.doc
-.csh:
- rm -f $@
- sed -e 's,xCSH_PATHx,$(csh_path),' $< > $@-t
- mv $@-t $@
- chmod +x $@
-.sh:
- rm -f $@
- cp $< $@
- chmod +x $@
+contrib_MANS = \
+ cvscheck.man
+
+
+bin_LINKS = \
+ rcs2log
+
+
+EXTRA_DIST = \
+ .cvsignore \
+ $(contrib_DATA) \
+ $(contrib_MANS) \
+ cvs2vendor.sh \
+ cvscheck.sh \
+ cvshelp.man \
+ debug_check_log.sh \
+ descend.sh \
+ descend.man \
+ dirfns.shar \
+ rcs-to-cvs.sh \
+ rcs2log.sh \
+ rcs2sccs.sh
-all: Makefile $(PROGS) $(CONTRIB_PROGS)
-.PHONY: all
-install: all installdirs
- for f in $(CONTRIB_FILES) ; do\
- $(INSTALL_DATA) $(srcdir)/$$f $(libdir)/cvs/contrib/$$f; \
+CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS)
+
+SUFFIXES = .sh
+EXEEXT =
+OBJEXT = o
+subdir = contrib
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES = clmerge cln_hist commit_prep cvs_acls log log_accum \
+ mfpipe rcslock sccs2rcs
+SCRIPTS = $(contrib_SCRIPTS)
+
+DIST_SOURCES =
+DATA = $(contrib_DATA)
+
+DIST_COMMON = README ChangeLog Makefile.am Makefile.in clmerge.in \
+ cln_hist.in commit_prep.in cvs_acls.in log.in log_accum.in \
+ mfpipe.in rcslock.in sccs2rcs.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sh
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu contrib/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+clmerge: $(top_builddir)/config.status clmerge.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+cln_hist: $(top_builddir)/config.status cln_hist.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+commit_prep: $(top_builddir)/config.status commit_prep.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+cvs_acls: $(top_builddir)/config.status cvs_acls.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+log: $(top_builddir)/config.status log.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+log_accum: $(top_builddir)/config.status log_accum.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+mfpipe: $(top_builddir)/config.status mfpipe.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+rcslock: $(top_builddir)/config.status rcslock.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+sccs2rcs: $(top_builddir)/config.status sccs2rcs.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+install-contribSCRIPTS: $(contrib_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(contribdir)
+ @list='$(contrib_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(contribdir)/$$f"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(contribdir)/$$f; \
+ elif test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(contribdir)/$$f"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(contribdir)/$$f; \
+ else :; fi; \
done
- for f in $(CONTRIB_PROGS) ; do\
- $(INSTALL_PROGRAM) $$f $(libdir)/cvs/contrib/$$f; \
+
+uninstall-contribSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(contrib_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \
+ rm -f $(DESTDIR)$(contribdir)/$$f; \
done
- for f in $(PROGS) ; do\
- $(INSTALL_PROGRAM) $$f $(bindir)/$$f; \
+install-contribDATA: $(contrib_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(contribdir)
+ @list='$(contrib_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(contribdir)/$$f"; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(contribdir)/$$f; \
done
-.PHONY: install
+
+uninstall-contribDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(contrib_DATA)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \
+ rm -f $(DESTDIR)$(contribdir)/$$f; \
+ done
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
installdirs:
- $(top_srcdir)/mkinstalldirs $(libdir)/cvs/contrib
-.PHONY: installdirs
+ $(mkinstalldirs) $(DESTDIR)$(contribdir) $(DESTDIR)$(contribdir)
-tags:
-.PHONY: tags
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
-TAGS:
-.PHONY: TAGS
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-ls:
- @echo $(DISTFILES)
-.PHONY: ls
+installcheck: installcheck-am
-clean:
- rm -f *.o core
-.PHONY: clean
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
-distclean: clean
- rm -f Makefile $(PROGS) $(CONTRIB_PROGS)
-.PHONY: distclean
+mostlyclean-generic:
-realclean: distclean
-.PHONY: realclean
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi:
+
+dvi-am:
+
+info:
+
+info-am:
+
+install-data-am: install-contribDATA install-contribSCRIPTS \
+ install-data-local
+
+install-exec-am:
+
+install-info:
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-contribDATA uninstall-contribSCRIPTS \
+ uninstall-local
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am info info-am install \
+ install-am install-contribDATA install-contribSCRIPTS \
+ install-data install-data-am install-data-local install-exec \
+ install-exec-am install-info install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ uninstall uninstall-am uninstall-contribDATA \
+ uninstall-contribSCRIPTS uninstall-local
+
+
+# we'd rather have a link here rather than two copies of a script
+install-data-local:
+ # FIXME - this path should be determined dynamically from bindir
+ # & contribdir
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_LINKS)'; for p in $$list; do \
+ echo "test ! -e $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ echo " && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` ."; \
+ (test ! -e $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'` \
+ && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` .) \
+ || (echo "Link creation failed" && if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else :; fi; fi); \
done
-.PHONY: dist-dir
-subdir = contrib
-Makefile: ../config.status Makefile.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+uninstall-local:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_LINKS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+
+.sh:
+ rm -f $@
+ cp $< $@
+ chmod +x $@
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/cvs/contrib/clmerge.in b/contrib/cvs/contrib/clmerge.in
new file mode 100755
index 000000000000..5e5251ac1b0a
--- /dev/null
+++ b/contrib/cvs/contrib/clmerge.in
@@ -0,0 +1,152 @@
+#! @PERL@
+
+# Merge conflicted ChangeLogs
+# tromey Mon Aug 15 1994
+
+# Usage is:
+#
+# cl-merge [-i] file ...
+#
+# With -i, it works in place (backups put in a ~ file). Otherwise the
+# merged ChangeLog is printed to stdout.
+
+# Please report any bugs to me. I wrote this yesterday, so there are no
+# guarantees about its performance. I recommend checking its output
+# carefully. If you do send a bug report, please include the failing
+# ChangeLog, so I can include it in my test suite.
+#
+# Tom
+# ---
+# tromey@busco.lanl.gov Member, League for Programming Freedom
+# Sadism and farce are always inexplicably linked.
+# -- Alexander Theroux
+
+
+# Month->number mapping. Used for sorting.
+%months = ('Jan', 0,
+ 'Feb', 1,
+ 'Mar', 2,
+ 'Apr', 3,
+ 'May', 4,
+ 'Jun', 5,
+ 'Jul', 6,
+ 'Aug', 7,
+ 'Sep', 8,
+ 'Oct', 9,
+ 'Nov', 10,
+ 'Dec', 11);
+
+# If '-i' is given, do it in-place.
+if ($ARGV[0] eq '-i') {
+ shift (@ARGV);
+ $^I = '~';
+}
+
+$lastkey = '';
+$lastval = '';
+$conf = 0;
+%conflist = ();
+
+$tjd = 0;
+
+# Simple state machine. The states:
+#
+# 0 Not in conflict. Just copy input to output.
+# 1 Beginning an entry. Next non-blank line is key.
+# 2 In entry. Entry beginner transitions to state 1.
+while (<>) {
+ if (/^<<<</ || /^====/) {
+ # Start of a conflict.
+
+ # Copy last key into array.
+ if ($lastkey ne '') {
+ $conflist{$lastkey} = $lastval;
+
+ $lastkey = '';
+ $lastval = '';
+ }
+
+ $conf = 1;
+ } elsif (/^>>>>/) {
+ # End of conflict. Output.
+
+ # Copy last key into array.
+ if ($lastkey ne '') {
+ $conflist{$lastkey} = $lastval;
+
+ $lastkey = '';
+ $lastval = '';
+ }
+
+ foreach (reverse sort clcmp keys %conflist) {
+ print STDERR "doing $_" if $tjd;
+ print $_;
+ print $conflist{$_};
+ }
+
+ $lastkey = '';
+ $lastval = '';
+ $conf = 0;
+ %conflist = ();
+ } elsif ($conf == 1) {
+ # Beginning an entry. Skip empty lines. Error if not a real
+ # beginner.
+ if (/^$/) {
+ # Empty line; just skip at this point.
+ } elsif (/^[MTWFS]/) {
+ # Looks like the name of a day; assume opener and move to
+ # "in entry" state.
+ $lastkey = $_;
+ $conf = 2;
+ print STDERR "found $_" if $tjd;
+ } else {
+ die ("conflict crosses entry boundaries: $_");
+ }
+ } elsif ($conf == 2) {
+ # In entry. Copy into variable until we see beginner line.
+ if (/^[MTWFS]/) {
+ # Entry beginner line.
+
+ # Copy last key into array.
+ if ($lastkey ne '') {
+ $conflist{$lastkey} = $lastval;
+
+ $lastkey = '';
+ $lastval = '';
+ }
+
+ $lastkey = $_;
+ print STDERR "found $_" if $tjd;
+ $lastval = '';
+ } else {
+ $lastval .= $_;
+ }
+ } else {
+ # Just copy.
+ print;
+ }
+}
+
+# Compare ChangeLog time strings like <=>.
+#
+# 0 1 2 3
+# Thu Aug 11 13:22:42 1994 Tom Tromey (tromey@creche.colorado.edu)
+# 0123456789012345678901234567890
+#
+sub clcmp {
+ # First check year.
+ $r = substr ($a, 20, 4) <=> substr ($b, 20, 4);
+
+ # Now check month.
+ $r = $months{substr ($a, 4, 3)} <=> $months{substr ($b, 4, 3)} if !$r;
+
+ # Now check day.
+ $r = substr ($a, 8, 2) <=> substr ($b, 8, 2) if !$r;
+
+ # Now check time (3 parts).
+ $r = substr ($a, 11, 2) <=> substr ($b, 11, 2) if !$r;
+ $r = substr ($a, 14, 2) <=> substr ($b, 14, 2) if !$r;
+ $r = substr ($a, 17, 2) <=> substr ($b, 17, 2) if !$r;
+
+ $r;
+}
diff --git a/contrib/cvs/contrib/cln_hist.in b/contrib/cvs/contrib/cln_hist.in
new file mode 100755
index 000000000000..d9818471cf41
--- /dev/null
+++ b/contrib/cvs/contrib/cln_hist.in
@@ -0,0 +1,91 @@
+#! @PERL@
+# -*-Perl-*-
+#
+# Contributed by David G. Grubbs <dgg@ksr.com>
+#
+# Clean up the history file. 10 Record types: MAR OFT WUCG
+#
+# WUCG records are thrown out.
+# MAR records are retained.
+# T records: retain only last tag with same combined tag/module.
+#
+# Two passes: Walk through the first time and remember the
+# 1. Last Tag record with same "tag" and "module" names.
+# 2. Last O record with unique user/module/directory, unless followed
+# by a matching F record.
+#
+
+$r = $ENV{"CVSROOT"};
+$c = "$r/CVSROOT";
+$h = "$c/history";
+
+eval "print STDERR \$die='Unknown parameter $1\n' if !defined \$$1; \$$1=\$';"
+ while ($ARGV[0] =~ /^(\w+)=/ && shift(@ARGV));
+exit 255 if $die; # process any variable=value switches
+
+%tags = ();
+%outs = ();
+
+#
+# Move history file to safe place and re-initialize a new one.
+#
+rename($h, "$h.bak");
+open(XX, ">$h");
+close(XX);
+
+#
+# Pass1 -- remember last tag and checkout.
+#
+open(HIST, "$h.bak");
+while (<HIST>) {
+ next if /^[MARWUCG]/;
+
+ # Save whole line keyed by tag|module
+ if (/^T/) {
+ @tmp = split(/\|/, $_);
+ $tags{$tmp[4] . '|' . $tmp[5]} = $_;
+ }
+ # Save whole line
+ if (/^[OF]/) {
+ @tmp = split(/\|/, $_);
+ $outs{$tmp[1] . '|' . $tmp[2] . '|' . $tmp[5]} = $_;
+ }
+}
+
+#
+# Pass2 -- print out what we want to save.
+#
+open(SAVE, ">$h.work");
+open(HIST, "$h.bak");
+while (<HIST>) {
+ next if /^[FWUCG]/;
+
+ # If whole line matches saved (i.e. "last") one, print it.
+ if (/^T/) {
+ @tmp = split(/\|/, $_);
+ next if $tags{$tmp[4] . '|' . $tmp[5]} ne $_;
+ }
+ # Save whole line
+ if (/^O/) {
+ @tmp = split(/\|/, $_);
+ next if $outs{$tmp[1] . '|' . $tmp[2] . '|' . $tmp[5]} ne $_;
+ }
+
+ print SAVE $_;
+}
+
+#
+# Put back the saved stuff
+#
+system "cat $h >> $h.work";
+
+if (-s $h) {
+ rename ($h, "$h.interim");
+ print "history.interim has non-zero size.\n";
+} else {
+ unlink($h);
+}
+
+rename ("$h.work", $h);
+
+exit(0);
diff --git a/contrib/cvs/contrib/commit_prep.in b/contrib/cvs/contrib/commit_prep.in
new file mode 100755
index 000000000000..d46ffdfc4744
--- /dev/null
+++ b/contrib/cvs/contrib/commit_prep.in
@@ -0,0 +1,215 @@
+#! @PERL@
+# -*-Perl-*-
+#
+#
+# Perl filter to handle pre-commit checking of files. This program
+# records the last directory where commits will be taking place for
+# use by the log_accum.pl script. For new files, it forces the
+# existence of a RCS "Id" keyword in the first ten lines of the file.
+# For existing files, it checks version number in the "Id" line to
+# prevent losing changes because an old version of a file was copied
+# into the direcory.
+#
+# Possible future enhancements:
+#
+# Check for cruft left by unresolved conflicts. Search for
+# "^<<<<<<<$", "^-------$", and "^>>>>>>>$".
+#
+# Look for a copyright and automagically update it to the
+# current year. [[ bad idea! -- woods ]]
+#
+#
+# Contributed by David Hampton <hampton@cisco.com>
+#
+# Hacked on lots by Greg A. Woods <woods@web.net>
+
+#
+# Configurable options
+#
+
+# Constants (remember to protect strings from RCS keyword substitution)
+#
+$LAST_FILE = "/tmp/#cvs.lastdir"; # must match name in log_accum.pl
+$ENTRIES = "CVS/Entries";
+
+# Patterns to find $Log keywords in files
+#
+$LogString1 = "\\\$\\Log: .* \\\$";
+$LogString2 = "\\\$\\Log\\\$";
+$NoLog = "%s - contains an RCS \$Log keyword. It must not!\n";
+
+# pattern to match an RCS Id keyword line with an existing ID
+#
+$IDstring = "\"@\\(#\\)[^:]*:.*\\\$\Id: .*\\\$\"";
+$NoId = "
+%s - Does not contain a properly formatted line with the keyword \"Id:\".
+ I.e. no lines match \"" . $IDstring . "\".
+ Please see the template files for an example.\n";
+
+# pattern to match an RCS Id keyword line for a new file (i.e. un-expanded)
+#
+$NewId = "\"@(#)[^:]*:.*\\$\Id\\$\"";
+
+$NoName = "
+%s - The ID line should contain only \"@(#)module/path:\$Name\$:\$\Id\$\"
+ for a newly created file.\n";
+
+$BadName = "
+%s - The file name '%s' in the ID line does not match
+ the actual filename.\n";
+
+$BadVersion = "
+%s - How dare you!!! You replaced your copy of the file '%s',
+ which was based upon version %s, with an %s version based
+ upon %s. Please move your '%s' out of the way, perform an
+ update to get the current version, and them merge your changes
+ into that file, then try the commit again.\n";
+
+#
+# Subroutines
+#
+
+sub write_line {
+ local($filename, $line) = @_;
+ open(FILE, ">$filename") || die("Cannot open $filename, stopped");
+ print(FILE $line, "\n");
+ close(FILE);
+}
+
+sub check_version {
+ local($i, $id, $rname, $version);
+ local($filename, $cvsversion) = @_;
+
+ open(FILE, "<$filename") || return(0);
+
+ @all_lines = ();
+ $idpos = -1;
+ $newidpos = -1;
+ for ($i = 0; <FILE>; $i++) {
+ chop;
+ push(@all_lines, $_);
+ if ($_ =~ /$IDstring/) {
+ $idpos = $i;
+ }
+ if ($_ =~ /$NewId/) {
+ $newidpos = $i;
+ }
+ }
+
+ if (grep(/$LogString1/, @all_lines) || grep(/$LogString2/, @all_lines)) {
+ print STDERR sprintf($NoLog, $filename);
+ return(1);
+ }
+
+ if ($debug != 0) {
+ print STDERR sprintf("file = %s, version = %d.\n", $filename, $cvsversion{$filename});
+ }
+
+ if ($cvsversion{$filename} == 0) {
+ if ($newidpos != -1 && $all_lines[$newidpos] !~ /$NewId/) {
+ print STDERR sprintf($NoName, $filename);
+ return(1);
+ }
+ return(0);
+ }
+
+ if ($idpos == -1) {
+ print STDERR sprintf($NoId, $filename);
+ return(1);
+ }
+
+ $line = $all_lines[$idpos];
+ $pos = index($line, "Id: ");
+ if ($debug != 0) {
+ print STDERR sprintf("%d in '%s'.\n", $pos, $line);
+ }
+ ($id, $rname, $version) = split(' ', substr($line, $pos));
+ if ($rname ne "$filename,v") {
+ print STDERR sprintf($BadName, $filename, substr($rname, 0, length($rname)-2));
+ return(1);
+ }
+ if ($cvsversion{$filename} < $version) {
+ print STDERR sprintf($BadVersion, $filename, $filename, $cvsversion{$filename},
+ "newer", $version, $filename);
+ return(1);
+ }
+ if ($cvsversion{$filename} > $version) {
+ print STDERR sprintf($BadVersion, $filename, $filename, $cvsversion{$filename},
+ "older", $version, $filename);
+ return(1);
+ }
+ return(0);
+}
+
+#
+# Main Body
+#
+
+$id = getpgrp(); # You *must* use a shell that does setpgrp()!
+
+# Check each file (except dot files) for an RCS "Id" keyword.
+#
+$check_id = 0;
+
+# Record the directory for later use by the log_accumulate stript.
+#
+$record_directory = 0;
+
+# parse command line arguments
+#
+while (@ARGV) {
+ $arg = shift @ARGV;
+
+ if ($arg eq '-d') {
+ $debug = 1;
+ print STDERR "Debug turned on...\n";
+ } elsif ($arg eq '-c') {
+ $check_id = 1;
+ } elsif ($arg eq '-r') {
+ $record_directory = 1;
+ } else {
+ push(@files, $arg);
+ }
+}
+
+$directory = shift @files;
+
+if ($debug != 0) {
+ print STDERR "dir - ", $directory, "\n";
+ print STDERR "files - ", join(":", @files), "\n";
+ print STDERR "id - ", $id, "\n";
+}
+
+# Suck in the CVS/Entries file
+#
+open(ENTRIES, $ENTRIES) || die("Cannot open $ENTRIES.\n");
+while (<ENTRIES>) {
+ local($filename, $version) = split('/', substr($_, 1));
+ $cvsversion{$filename} = $version;
+}
+
+# Now check each file name passed in, except for dot files. Dot files
+# are considered to be administrative files by this script.
+#
+if ($check_id != 0) {
+ $failed = 0;
+ foreach $arg (@files) {
+ if (index($arg, ".") == 0) {
+ next;
+ }
+ $failed += &check_version($arg);
+ }
+ if ($failed) {
+ print STDERR "\n";
+ exit(1);
+ }
+}
+
+# Record this directory as the last one checked. This will be used
+# by the log_accumulate script to determine when it is processing
+# the final directory of a multi-directory commit.
+#
+if ($record_directory != 0) {
+ &write_line("$LAST_FILE.$id", $directory);
+}
+exit(0);
diff --git a/contrib/cvs/contrib/cvs_acls.in b/contrib/cvs/contrib/cvs_acls.in
new file mode 100755
index 000000000000..7bd991840e63
--- /dev/null
+++ b/contrib/cvs/contrib/cvs_acls.in
@@ -0,0 +1,141 @@
+#! @PERL@
+# -*-Perl-*-
+#
+# Access control lists for CVS. dgg@ksr.com (David G. Grubbs)
+#
+# CVS "commitinfo" for matching repository names, running the program it finds
+# on the same line. More information is available in the CVS man pages.
+#
+# ==== INSTALLATION:
+#
+# To use this program as I intended, do the following four things:
+#
+# 0. Install PERL. :-)
+#
+# 1. Put one line, as the *only* non-comment line, in your commitinfo file:
+#
+# DEFAULT /usr/local/bin/cvs_acls
+#
+# 2. Install this file as /usr/local/bin/cvs_acls and make it executable.
+#
+# 3. Create a file named $CVSROOT/CVSROOT/avail.
+#
+# ==== FORMAT OF THE avail FILE:
+#
+# The avail file determines whether you may commit files. It contains lines
+# read from top to bottom, keeping track of a single "bit". The "bit"
+# defaults to "on". It can be turned "off" by "unavail" lines and "on" by
+# "avail" lines. ==> Last one counts.
+#
+# Any line not beginning with "avail" or "unavail" is ignored.
+#
+# Lines beginning with "avail" or "unavail" are assumed to be '|'-separated
+# triples: (All spaces and tabs are ignored in a line.)
+#
+# {avail.*,unavail.*} [| user,user,... [| repos,repos,...]]
+#
+# 1. String starting with "avail" or "unavail".
+# 2. Optional, comma-separated list of usernames.
+# 3. Optional, comma-separated list of repository pathnames.
+# These are pathnames relative to $CVSROOT. They can be directories or
+# filenames. A directory name allows access to all files and
+# directories below it.
+#
+# Example: (Text from the ';;' rightward may not appear in the file.)
+#
+# unavail ;; Make whole repository unavailable.
+# avail|dgg ;; Except for user "dgg".
+# avail|fred, john|bin/ls ;; Except when "fred" or "john" commit to
+# ;; the module whose repository is "bin/ls"
+#
+# PROGRAM LOGIC:
+#
+# CVS passes to @ARGV an absolute directory pathname (the repository
+# appended to your $CVSROOT variable), followed by a list of filenames
+# within that directory.
+#
+# We walk through the avail file looking for a line that matches both
+# the username and repository.
+#
+# A username match is simply the user's name appearing in the second
+# column of the avail line in a space-or-comma separate list.
+#
+# A repository match is either:
+# - One element of the third column matches $ARGV[0], or some
+# parent directory of $ARGV[0].
+# - Otherwise *all* file arguments ($ARGV[1..$#ARGV]) must be
+# in the file list in one avail line.
+# - In other words, using directory names in the third column of
+# the avail file allows committing of any file (or group of
+# files in a single commit) in the tree below that directory.
+# - If individual file names are used in the third column of
+# the avail file, then files must be committed individually or
+# all files specified in a single commit must all appear in
+# third column of a single avail line.
+#
+
+$debug = 0;
+$cvsroot = $ENV{'CVSROOT'};
+$availfile = $cvsroot . "/CVSROOT/avail";
+$myname = $ENV{"USER"} if !($myname = $ENV{"LOGNAME"});
+
+eval "print STDERR \$die='Unknown parameter $1\n' if !defined \$$1; \$$1=\$';"
+ while ($ARGV[0] =~ /^(\w+)=/ && shift(@ARGV));
+exit 255 if $die; # process any variable=value switches
+
+die "Must set CVSROOT\n" if !$cvsroot;
+($repos = shift) =~ s:^$cvsroot/::;
+grep($_ = $repos . '/' . $_, @ARGV);
+
+print "$$ Repos: $repos\n","$$ ==== ",join("\n$$ ==== ",@ARGV),"\n" if $debug;
+
+$exit_val = 0; # Good Exit value
+
+$universal_off = 0;
+open (AVAIL, $availfile) || exit(0); # It is ok for avail file not to exist
+while (<AVAIL>) {
+ chop;
+ next if /^\s*\#/;
+ next if /^\s*$/;
+ ($flagstr, $u, $m) = split(/[\s,]*\|[\s,]*/, $_);
+
+ # Skip anything not starting with "avail" or "unavail" and complain.
+ (print "Bad avail line: $_\n"), next
+ if ($flagstr !~ /^avail/ && $flagstr !~ /^unavail/);
+
+ # Set which bit we are playing with. ('0' is OK == Available).
+ $flag = (($& eq "avail") ? 0 : 1);
+
+ # If we find a "universal off" flag (i.e. a simple "unavail") remember it
+ $universal_off = 1 if ($flag && !$u && !$m);
+
+ # $myname considered "in user list" if actually in list or is NULL
+ $in_user = (!$u || grep ($_ eq $myname, split(/[\s,]+/,$u)));
+ print "$$ \$myname($myname) in user list: $_\n" if $debug && $in_user;
+
+ # Module matches if it is a NULL module list in the avail line. If module
+ # list is not null, we check every argument combination.
+ if (!($in_repo = !$m)) {
+ @tmp = split(/[\s,]+/,$m);
+ for $j (@tmp) {
+ # If the repos from avail is a parent(or equal) dir of $repos, OK
+ $in_repo = 1, last if ($repos eq $j || $repos =~ /^$j\//);
+ }
+ if (!$in_repo) {
+ $in_repo = 1;
+ for $j (@ARGV) {
+ last if !($in_repo = grep ($_ eq $j, @tmp));
+ }
+ }
+ }
+ print "$$ \$repos($repos) in repository list: $_\n" if $debug && $in_repo;
+
+ $exit_val = $flag if ($in_user && $in_repo);
+ print "$$ ==== \$exit_val = $exit_val\n$$ ==== \$flag = $flag\n" if $debug;
+}
+close(AVAIL);
+print "$$ ==== \$exit_val = $exit_val\n" if $debug;
+print "**** Access denied: Insufficient Karma ($myname|$repos)\n" if $exit_val;
+print "**** Access allowed: Personal Karma exceeds Environmental Karma.\n"
+ if $universal_off && !$exit_val;
+exit($exit_val);
diff --git a/contrib/cvs/contrib/debug_check_log.sh b/contrib/cvs/contrib/debug_check_log.sh
new file mode 100755
index 000000000000..f14b26d7f050
--- /dev/null
+++ b/contrib/cvs/contrib/debug_check_log.sh
@@ -0,0 +1,197 @@
+#!/bin/sh
+
+#
+# This program is intended to take a check.log file generated by a failed run of
+# sanity.sh as input and run expr line by line on it. It seems a much easier
+# way of spotting a single failed line in a 100 line test result.
+#
+
+#
+# This script falls under the GNU General Public License and is intended to
+# be distributed with CVS.
+#
+
+#
+# No warranties, express or implied.
+#
+
+#
+# Contributed by Derek R. Price <derek.price@openavenue.com>
+#
+
+
+
+usage ()
+{
+ echo "\
+usage: $0 [-afh] [file...]
+
+ -a process alternate pattern
+ -f process first pattern (default)
+ -h print this text
+
+ file files to process (default = check.log)"
+}
+
+# Do a line by line match with expr
+#
+# INPUTS
+# $1 = text file name
+# $2 = pattern file name
+expr_line_by_line ()
+{
+ dcl_line=0
+ dcl_wrong=
+ # We are assuming a newline at the end of the file. The way sanity.sh
+ # uses echo to create the log message guarantees this newline and since
+ # expr ignores the last newline when the anchor is present anyhow, no
+ # information is being lost in the transition
+ while test $dcl_line -lt `wc -l <$1` -a $dcl_line -lt `wc -l <$2`; do
+ dcl_line=`expr $dcl_line + 1`
+ if test `sed -ne${dcl_line}p <$1 |wc -c` -eq 1 \
+ -a `sed -ne${dcl_line}p <$2 |wc -c` -eq 1; then
+ # This is a workaround for what I am calling a bug in GNU
+ # expr - it won't match the empty string to the empty
+ # string. In this case the assumption is that a single
+ # character is always a newline. Since we already checked
+ # for the end of the file, we know sed will echo the
+ # newline.
+ :
+ elif expr "`sed -ne${dcl_line}p <$1`" : \
+ "`sed -ne${dcl_line}p <$2`\$" >/dev/null; then
+ :
+ else
+ echo "$dcl_line: `sed -ne${dcl_line}p <$1`"
+ echo "$dcl_line: `sed -ne${dcl_line}p <$2`\$"
+ dcl_wrong="$dcl_wrong $dcl_line"
+ fi
+ done
+ if test `wc -l <$1` -ne `wc -l <$2`; then
+ echo "output & pattern contain differing number of lines"
+ elif test -z "$dcl_wrong"; then
+ echo "no mismatched lines"
+ else
+ echo "mismatched lines: $dcl_wrong"
+ fi
+}
+
+# Process a single check.log file
+#
+# INPUTS
+# $1 = filename
+process_check_log ()
+{
+ # abort if we can't find any expressions
+ if grep '^\*\* got: $' <$1 >/dev/null; then
+ :
+ else
+ echo "WARNING: No expressions in file: $1" >&2
+ echo " Either not a check.log or sanity.sh exited for some other reason," >&2
+ echo " like bad exit status. Try tail." >&2
+ return
+ fi
+
+ dcl_exprfiles=""
+ if grep '^\*\* or: $' <$1 >/dev/null; then
+ # file contains a second regex
+ if test $dcl_dofirst -eq 1; then
+ # get the first pattern
+ sed -ne '/^\*\* expected: $/,/^\*\* or: $/p' <$1 >/tmp/dcle$$
+ dcl_exprfiles="$dcl_exprfiles /tmp/dcle$$"
+ fi
+ if test $dcl_doalternate -eq 1; then
+ # get the alternate pattern
+ sed -ne '/^\*\* or: $/,/^\*\* got: $/p' <$1 >/tmp/dclo$$
+ dcl_exprfiles="$dcl_exprfiles /tmp/dclo$$"
+ else
+ echo "WARNING: Ignoring alternate pattern in file: $1" >&2
+ fi
+ else
+ # file doesn't contain a second regex
+ if test $dcl_dofirst = 1; then
+ # get the only pattern
+ sed -ne '/^\*\* expected: $/,/^\*\* got: $/p' <$1 >/tmp/dcle$$
+ dcl_exprfiles="$dcl_exprfiles /tmp/dcle$$"
+ fi
+ if test $dcl_doalternate -eq 1; then
+ echo "WARNING: No alternate pattern in file: $1" >&2
+ fi
+ fi
+
+ # and get the actual output
+ sed -ne '/^\*\* got: $/,$p' <$1 >/tmp/dclg$$
+ sed -ne '1D
+$D
+p' </tmp/dclg$$ >/tmp/dclh$$
+ mv /tmp/dclh$$ /tmp/dclg$$
+
+ # compare the output against each pattern requested
+ for dcl_f in $dcl_exprfiles; do
+ sed -ne '1D
+$D
+p' <$dcl_f >/tmp/dclp$$
+ mv /tmp/dclp$$ $dcl_f
+
+ case $dcl_f in
+ /tmp/dcle*)
+ echo "********** $1 : Primary **********"
+ ;;
+ /tmp/dclo*)
+ echo "********** $1 : Alternate **********"
+ ;;
+ esac
+
+ expr_line_by_line /tmp/dclg$$ $dcl_f
+
+ rm $dcl_f
+ done
+
+ rm /tmp/dclg$$
+}
+
+###
+### MAIN
+###
+
+# set up defaults
+dcl_doalternate=0
+dcl_dofirst=0
+
+# process options
+while getopts afh arg; do
+ case $arg in
+ a)
+ dcl_doalternate=1
+ ;;
+ f)
+ dcl_dofirst=1
+ ;;
+ \?|h)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+# dispose of processed args
+shift `expr $OPTIND - 1`
+OPTIND=1
+
+# set the default mode
+if test $dcl_doalternate -eq 0; then
+ dcl_dofirst=1
+fi
+
+# set default arg
+if test $# -eq 0; then
+ dcl_argvar=dcl_default
+ dcl_default=check.log
+else
+ dcl_argvar=@
+fi
+
+eval for file in \"\$$dcl_argvar\"\; do \
+ process_check_log \$file\; \
+done
+
+exit 0
diff --git a/contrib/cvs/contrib/log.in b/contrib/cvs/contrib/log.in
new file mode 100755
index 000000000000..87f40b55b5b6
--- /dev/null
+++ b/contrib/cvs/contrib/log.in
@@ -0,0 +1,208 @@
+#! @PERL@
+# -*-Perl-*-
+#
+# XXX: FIXME: handle multiple '-f logfile' arguments
+#
+# XXX -- I HATE Perl! This *will* be re-written in shell/awk/sed soon!
+#
+
+# Usage: log.pl [-u user] [[-m mailto] ...] [-s] [-V] -f logfile 'dirname file ...'
+#
+# -u user - $USER passed from loginfo
+# -m mailto - for each user to receive cvs log reports
+# (multiple -m's permitted)
+# -s - to prevent "cvs status -v" messages
+# -V - without '-s', don't pass '-v' to cvs status
+# -f logfile - for the logfile to append to (mandatory,
+# but only one logfile can be specified).
+
+# here is what the output looks like:
+#
+# From: woods@kuma.domain.top
+# Subject: CVS update: testmodule
+#
+# Date: Wednesday November 23, 1994 @ 14:15
+# Author: woods
+#
+# Update of /local/src-CVS/testmodule
+# In directory kuma:/home/kuma/woods/work.d/testmodule
+#
+# Modified Files:
+# test3
+# Added Files:
+# test6
+# Removed Files:
+# test4
+# Log Message:
+# - wow, what a test
+#
+# (and for each file the "cvs status -v" output is appended unless -s is used)
+#
+# ==================================================================
+# File: test3 Status: Up-to-date
+#
+# Working revision: 1.41 Wed Nov 23 14:15:59 1994
+# Repository revision: 1.41 /local/src-CVS/cvs/testmodule/test3,v
+# Sticky Options: -ko
+#
+# Existing Tags:
+# local-v2 (revision: 1.7)
+# local-v1 (revision: 1.1.1.2)
+# CVS-1_4A2 (revision: 1.1.1.2)
+# local-v0 (revision: 1.2)
+# CVS-1_4A1 (revision: 1.1.1.1)
+# CVS (branch: 1.1.1)
+
+use strict;
+use IO::File;
+
+my $cvsroot = $ENV{'CVSROOT'};
+
+# turn off setgid
+#
+$) = $(;
+
+my $dostatus = 1;
+my $verbosestatus = 1;
+my $users;
+my $login;
+my $donefiles;
+my $logfile;
+my @files;
+
+# parse command line arguments
+#
+while (@ARGV) {
+ my $arg = shift @ARGV;
+
+ if ($arg eq '-m') {
+ $users = "$users " . shift @ARGV;
+ } elsif ($arg eq '-u') {
+ $login = shift @ARGV;
+ } elsif ($arg eq '-f') {
+ ($logfile) && die "Too many '-f' args";
+ $logfile = shift @ARGV;
+ } elsif ($arg eq '-s') {
+ $dostatus = 0;
+ } elsif ($arg eq '-V') {
+ $verbosestatus = 0;
+ } else {
+ ($donefiles) && die "Too many arguments!\n";
+ $donefiles = 1;
+ @files = split(/ /, $arg);
+ }
+}
+
+# the first argument is the module location relative to $CVSROOT
+#
+my $modulepath = shift @files;
+
+my $mailcmd = "| Mail -s 'CVS update: $modulepath'";
+
+# Initialise some date and time arrays
+#
+my @mos = ('January','February','March','April','May','June','July',
+ 'August','September','October','November','December');
+my @days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
+
+my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
+$year += 1900;
+
+# get a login name for the guy doing the commit....
+#
+if ($login eq '') {
+ $login = getlogin || (getpwuid($<))[0] || "nobody";
+}
+
+# open log file for appending
+#
+my $logfh = new IO::File ">>" . $logfile
+ or die "Could not open(" . $logfile . "): $!\n";
+
+# send mail, if there's anyone to send to!
+#
+my $mailfh;
+if ($users) {
+ $mailcmd = "$mailcmd $users";
+ $mailfh = new IO::File $mailcmd
+ or die "Could not Exec($mailcmd): $!\n";
+}
+
+# print out the log Header
+#
+$logfh->print ("\n");
+$logfh->print ("****************************************\n");
+$logfh->print ("Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:" . sprintf("%02d", $min) . "\n");
+$logfh->print ("Author:\t$login\n\n");
+
+if ($mailfh) {
+ $mailfh->print ("\n");
+ $mailfh->print ("Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:" . sprintf("%02d", $min) . "\n");
+ $mailfh->print ("Author:\t$login\n\n");
+}
+
+# print the stuff from logmsg that comes in on stdin to the logfile
+#
+my $infh = new IO::File "< -";
+foreach ($infh->getlines) {
+ $logfh->print;
+ if ($mailfh) {
+ $mailfh->print ($_);
+ }
+}
+undef $infh;
+
+$logfh->print ("\n");
+
+# after log information, do an 'cvs -Qq status -v' on each file in the arguments.
+#
+if ($dostatus != 0) {
+ while (@files) {
+ my $file = shift @files;
+ if ($file eq "-") {
+ $logfh->print ("[input file was '-']\n");
+ if ($mailfh) {
+ $mailfh->print ("[input file was '-']\n");
+ }
+ last;
+ }
+ my $rcsfh = new IO::File;
+ my $pid = $rcsfh->open ("-|");
+ if ( !defined $pid )
+ {
+ die "fork failed: $!";
+ }
+ if ($pid == 0)
+ {
+ my @command = ('cvs', '-nQq', 'status');
+ if ($verbosestatus)
+ {
+ push @command, '-v';
+ }
+ push @command, $file;
+ exec @command;
+ die "cvs exec failed: $!";
+ }
+ my $line;
+ while ($line = $rcsfh->getline) {
+ $logfh->print ($line);
+ if ($mailfh) {
+ $mailfh->print ($line);
+ }
+ }
+ undef $rcsfh;
+ }
+}
+
+$logfh->close()
+ or die "Write to $logfile failed: $!";
+
+if ($mailfh)
+{
+ $mailfh->close;
+ die "Pipe to $mailcmd failed" if $?;
+}
+
+## must exit cleanly
+##
+exit 0;
diff --git a/contrib/cvs/contrib/log_accum.in b/contrib/cvs/contrib/log_accum.in
new file mode 100755
index 000000000000..8591784ceded
--- /dev/null
+++ b/contrib/cvs/contrib/log_accum.in
@@ -0,0 +1,576 @@
+#! @PERL@
+# -*-Perl-*-
+#
+# Perl filter to handle the log messages from the checkin of files in
+# a directory. This script will group the lists of files by log
+# message, and mail a single consolidated log message at the end of
+# the commit.
+#
+# This file assumes a pre-commit checking program that leaves the
+# names of the first and last commit directories in a temporary file.
+#
+# Contributed by David Hampton <hampton@cisco.com>
+#
+# hacked greatly by Greg A. Woods <woods@planix.com>
+
+# Usage: log_accum.pl [-d] [-s] [-w] [-M module] [-u user] [[-m mailto] ...] [[-R replyto] ...] [-f logfile]
+# -d - turn on debugging
+# -m mailto - send mail to "mailto" (multiple)
+# -R replyto - set the "Reply-To:" to "replyto" (multiple)
+# -M modulename - set module name to "modulename"
+# -f logfile - write commit messages to logfile too
+# -s - *don't* run "cvs status -v" for each file
+# -w - show working directory with log message
+# -u user - $USER passed from loginfo
+
+#
+# Configurable options
+#
+
+# set this to something that takes a whole message on stdin
+$MAILER = "/usr/lib/sendmail -t";
+
+#
+# End user configurable options.
+#
+
+# Constants (don't change these!)
+#
+$STATE_NONE = 0;
+$STATE_CHANGED = 1;
+$STATE_ADDED = 2;
+$STATE_REMOVED = 3;
+$STATE_LOG = 4;
+
+$LAST_FILE = "/tmp/#cvs.lastdir";
+
+$CHANGED_FILE = "/tmp/#cvs.files.changed";
+$ADDED_FILE = "/tmp/#cvs.files.added";
+$REMOVED_FILE = "/tmp/#cvs.files.removed";
+$LOG_FILE = "/tmp/#cvs.files.log";
+
+$FILE_PREFIX = "#cvs.files";
+
+#
+# Subroutines
+#
+
+sub cleanup_tmpfiles {
+ local($wd, @files);
+
+ $wd = `pwd`;
+ chdir("/tmp") || die("Can't chdir('/tmp')\n");
+ opendir(DIR, ".");
+ push(@files, grep(/^$FILE_PREFIX\..*\.$id$/, readdir(DIR)));
+ closedir(DIR);
+ foreach (@files) {
+ unlink $_;
+ }
+ unlink $LAST_FILE . "." . $id;
+
+ chdir($wd);
+}
+
+sub write_logfile {
+ local($filename, @lines) = @_;
+
+ open(FILE, ">$filename") || die("Cannot open log file $filename.\n");
+ print FILE join("\n", @lines), "\n";
+ close(FILE);
+}
+
+sub append_to_logfile {
+ local($filename, @lines) = @_;
+
+ open(FILE, ">$filename") || die("Cannot open log file $filename.\n");
+ print FILE join("\n", @lines), "\n";
+ close(FILE);
+}
+
+sub format_names {
+ local($dir, @files) = @_;
+ local(@lines);
+
+ $format = "\t%-" . sprintf("%d", length($dir)) . "s%s ";
+
+ $lines[0] = sprintf($format, $dir, ":");
+
+ if ($debug) {
+ print STDERR "format_names(): dir = ", $dir, "; files = ", join(":", @files), ".\n";
+ }
+ foreach $file (@files) {
+ if (length($lines[$#lines]) + length($file) > 65) {
+ $lines[++$#lines] = sprintf($format, " ", " ");
+ }
+ $lines[$#lines] .= $file . " ";
+ }
+
+ @lines;
+}
+
+sub format_lists {
+ local(@lines) = @_;
+ local(@text, @files, $lastdir);
+
+ if ($debug) {
+ print STDERR "format_lists(): ", join(":", @lines), "\n";
+ }
+ @text = ();
+ @files = ();
+ $lastdir = shift @lines; # first thing is always a directory
+ if ($lastdir !~ /.*\/$/) {
+ die("Damn, $lastdir doesn't look like a directory!\n");
+ }
+ foreach $line (@lines) {
+ if ($line =~ /.*\/$/) {
+ push(@text, &format_names($lastdir, @files));
+ $lastdir = $line;
+ @files = ();
+ } else {
+ push(@files, $line);
+ }
+ }
+ push(@text, &format_names($lastdir, @files));
+
+ @text;
+}
+
+sub append_names_to_file {
+ local($filename, $dir, @files) = @_;
+
+ if (@files) {
+ open(FILE, ">>$filename") || die("Cannot open file $filename.\n");
+ print FILE $dir, "\n";
+ print FILE join("\n", @files), "\n";
+ close(FILE);
+ }
+}
+
+sub read_line {
+ local($line);
+ local($filename) = @_;
+
+ open(FILE, "<$filename") || die("Cannot open file $filename.\n");
+ $line = <FILE>;
+ close(FILE);
+ chop($line);
+ $line;
+}
+
+sub read_logfile {
+ local(@text);
+ local($filename, $leader) = @_;
+
+ open(FILE, "<$filename");
+ while (<FILE>) {
+ chop;
+ push(@text, $leader.$_);
+ }
+ close(FILE);
+ @text;
+}
+
+sub build_header {
+ local($header);
+ local($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
+ $header = sprintf("CVSROOT:\t%s\nModule name:\t%s\nRepository:\t%s\nChanges by:\t%s@%s\t%02d/%02d/%02d %02d:%02d:%02d",
+ $cvsroot,
+ $modulename,
+ $dir,
+ $login, $hostdomain,
+ $year%100, $mon+1, $mday,
+ $hour, $min, $sec);
+}
+
+sub mail_notification {
+ local(@text) = @_;
+
+ # if only we had strftime()... stuff stolen from perl's ctime.pl:
+ local($[) = 0;
+
+ @DoW = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
+ @MoY = ('Jan','Feb','Mar','Apr','May','Jun',
+ 'Jul','Aug','Sep','Oct','Nov','Dec');
+
+ # Determine what time zone is in effect.
+ # Use GMT if TZ is defined as null, local time if TZ undefined.
+ # There's no portable way to find the system default timezone.
+ #
+ $TZ = defined($ENV{'TZ'}) ? ( $ENV{'TZ'} ? $ENV{'TZ'} : 'GMT' ) : '';
+
+ # Hack to deal with 'PST8PDT' format of TZ
+ # Note that this can't deal with all the esoteric forms, but it
+ # does recognize the most common: [:]STDoff[DST[off][,rule]]
+ #
+ if ($TZ =~ /^([^:\d+\-,]{3,})([+-]?\d{1,2}(:\d{1,2}){0,2})([^\d+\-,]{3,})?/) {
+ $TZ = $isdst ? $4 : $1;
+ $tzoff = sprintf("%05d", -($2) * 100);
+ }
+
+ # perl-4.036 doesn't have the $zone or $gmtoff...
+ ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst, $zone, $gmtoff) =
+ ($TZ eq 'GMT') ? gmtime(time) : localtime(time);
+
+ $year += ($year < 70) ? 2000 : 1900;
+
+ if ($gmtoff != 0) {
+ $tzoff = sprintf("%05d", ($gmtoff / 60) * 100);
+ }
+ if ($zone ne '') {
+ $TZ = $zone;
+ }
+
+ # ok, let's try....
+ $rfc822date = sprintf("%s, %2d %s %4d %2d:%02d:%02d %s (%s)",
+ $DoW[$wday], $mday, $MoY[$mon], $year,
+ $hour, $min, $sec, $tzoff, $TZ);
+
+ open(MAIL, "| $MAILER");
+ print MAIL "Date: " . $rfc822date . "\n";
+ print MAIL "Subject: CVS Update: " . $modulename . "\n";
+ print MAIL "To: " . $mailto . "\n";
+ print MAIL "Reply-To: " . $replyto . "\n";
+ print MAIL "\n";
+ print MAIL join("\n", @text), "\n";
+ close(MAIL);
+}
+
+sub write_commitlog {
+ local($logfile, @text) = @_;
+
+ open(FILE, ">>$logfile");
+ print FILE join("\n", @text), "\n";
+ close(FILE);
+}
+
+#
+# Main Body
+#
+
+# Initialize basic variables
+#
+$debug = 0;
+$id = getpgrp(); # note, you *must* use a shell which does setpgrp()
+$state = $STATE_NONE;
+chop($hostname = `hostname`);
+chop($domainname = `domainname`);
+if ($domainname !~ '^\..*') {
+ $domainname = '.' . $domainname;
+}
+$hostdomain = $hostname . $domainname;
+$cvsroot = $ENV{'CVSROOT'};
+$do_status = 1; # moderately useful
+$show_wd = 0; # useless in client/server
+$modulename = "";
+
+# parse command line arguments (file list is seen as one arg)
+#
+while (@ARGV) {
+ $arg = shift @ARGV;
+
+ if ($arg eq '-d') {
+ $debug = 1;
+ print STDERR "Debug turned on...\n";
+ } elsif ($arg eq '-m') {
+ if ($mailto eq '') {
+ $mailto = shift @ARGV;
+ } else {
+ $mailto = $mailto . ", " . shift @ARGV;
+ }
+ } elsif ($arg eq '-R') {
+ if ($replyto eq '') {
+ $replyto = shift @ARGV;
+ } else {
+ $replyto = $replyto . ", " . shift @ARGV;
+ }
+ } elsif ($arg eq '-M') {
+ $modulename = shift @ARGV;
+ } elsif ($arg eq '-u') {
+ $login = shift @ARGV;
+ } elsif ($arg eq '-s') {
+ $do_status = 0;
+ } elsif ($arg eq '-w') {
+ $show_wd = 1;
+ } elsif ($arg eq '-f') {
+ ($commitlog) && die("Too many '-f' args\n");
+ $commitlog = shift @ARGV;
+ } else {
+ ($donefiles) && die("Too many arguments! Check usage.\n");
+ $donefiles = 1;
+ @files = split(/ /, $arg);
+ }
+}
+if ($login eq '') {
+ $login = getlogin || (getpwuid($<))[0] || "nobody";
+}
+($mailto) || die("No mail recipient specified (use -m)\n");
+if ($replyto eq '') {
+ $replyto = $login;
+}
+
+# for now, the first "file" is the repository directory being committed,
+# relative to the $CVSROOT location
+#
+@path = split('/', $files[0]);
+
+# XXX There are some ugly assumptions in here about module names and
+# XXX directories relative to the $CVSROOT location -- really should
+# XXX read $CVSROOT/CVSROOT/modules, but that's not so easy to do, since
+# XXX we have to parse it backwards.
+# XXX
+# XXX Fortunately it's relatively easy for the user to specify the
+# XXX module name as appropriate with a '-M' via the directory
+# XXX matching in loginfo.
+#
+if ($modulename eq "") {
+ $modulename = $path[0]; # I.e. the module name == top-level dir
+}
+if ($#path == 0) {
+ $dir = ".";
+} else {
+ $dir = join('/', @path);
+}
+$dir = $dir . "/";
+
+if ($debug) {
+ print STDERR "module - ", $modulename, "\n";
+ print STDERR "dir - ", $dir, "\n";
+ print STDERR "path - ", join(":", @path), "\n";
+ print STDERR "files - ", join(":", @files), "\n";
+ print STDERR "id - ", $id, "\n";
+}
+
+# Check for a new directory first. This appears with files set as follows:
+#
+# files[0] - "path/name/newdir"
+# files[1] - "-"
+# files[2] - "New"
+# files[3] - "directory"
+#
+if ($files[2] =~ /New/ && $files[3] =~ /directory/) {
+ local(@text);
+
+ @text = ();
+ push(@text, &build_header());
+ push(@text, "");
+ push(@text, $files[0]);
+ push(@text, "");
+
+ while (<STDIN>) {
+ chop; # Drop the newline
+ push(@text, $_);
+ }
+
+ &mail_notification($mailto, @text);
+
+ exit 0;
+}
+
+# Check for an import command. This appears with files set as follows:
+#
+# files[0] - "path/name"
+# files[1] - "-"
+# files[2] - "Imported"
+# files[3] - "sources"
+#
+if ($files[2] =~ /Imported/ && $files[3] =~ /sources/) {
+ local(@text);
+
+ @text = ();
+ push(@text, &build_header());
+ push(@text, "");
+ push(@text, $files[0]);
+ push(@text, "");
+
+ while (<STDIN>) {
+ chop; # Drop the newline
+ push(@text, $_);
+ }
+
+ &mail_notification(@text);
+
+ exit 0;
+}
+
+# Iterate over the body of the message collecting information.
+#
+while (<STDIN>) {
+ chop; # Drop the newline
+
+ if (/^In directory/) {
+ if ($show_wd) { # useless in client/server mode
+ push(@log_lines, $_);
+ push(@log_lines, "");
+ }
+ next;
+ }
+
+ if (/^Modified Files/) { $state = $STATE_CHANGED; next; }
+ if (/^Added Files/) { $state = $STATE_ADDED; next; }
+ if (/^Removed Files/) { $state = $STATE_REMOVED; next; }
+ if (/^Log Message/) { $state = $STATE_LOG; next; }
+
+ s/^[ \t\n]+//; # delete leading whitespace
+ s/[ \t\n]+$//; # delete trailing whitespace
+
+ if ($state == $STATE_CHANGED) { push(@changed_files, split); }
+ if ($state == $STATE_ADDED) { push(@added_files, split); }
+ if ($state == $STATE_REMOVED) { push(@removed_files, split); }
+ if ($state == $STATE_LOG) { push(@log_lines, $_); }
+}
+
+# Strip leading and trailing blank lines from the log message. Also
+# compress multiple blank lines in the body of the message down to a
+# single blank line.
+#
+while ($#log_lines > -1) {
+ last if ($log_lines[0] ne "");
+ shift(@log_lines);
+}
+while ($#log_lines > -1) {
+ last if ($log_lines[$#log_lines] ne "");
+ pop(@log_lines);
+}
+for ($i = $#log_lines; $i > 0; $i--) {
+ if (($log_lines[$i - 1] eq "") && ($log_lines[$i] eq "")) {
+ splice(@log_lines, $i, 1);
+ }
+}
+
+if ($debug) {
+ print STDERR "Searching for log file index...";
+}
+# Find an index to a log file that matches this log message
+#
+for ($i = 0; ; $i++) {
+ local(@text);
+
+ last if (! -e "$LOG_FILE.$i.$id"); # the next available one
+ @text = &read_logfile("$LOG_FILE.$i.$id", "");
+ last if ($#text == -1); # nothing in this file, use it
+ last if (join(" ", @log_lines) eq join(" ", @text)); # it's the same log message as another
+}
+if ($debug) {
+ print STDERR " found log file at $i.$id, now writing tmp files.\n";
+}
+
+# Spit out the information gathered in this pass.
+#
+&append_names_to_file("$CHANGED_FILE.$i.$id", $dir, @changed_files);
+&append_names_to_file("$ADDED_FILE.$i.$id", $dir, @added_files);
+&append_names_to_file("$REMOVED_FILE.$i.$id", $dir, @removed_files);
+&write_logfile("$LOG_FILE.$i.$id", @log_lines);
+
+# Check whether this is the last directory. If not, quit.
+#
+if ($debug) {
+ print STDERR "Checking current dir against last dir.\n";
+}
+$_ = &read_line("$LAST_FILE.$id");
+
+if ($_ ne $cvsroot . "/" . $files[0]) {
+ if ($debug) {
+ print STDERR sprintf("Current directory %s is not last directory %s.\n", $cvsroot . "/" .$files[0], $_);
+ }
+ exit 0;
+}
+if ($debug) {
+ print STDERR sprintf("Current directory %s is last directory %s -- all commits done.\n", $files[0], $_);
+}
+
+#
+# End Of Commits!
+#
+
+# This is it. The commits are all finished. Lump everything together
+# into a single message, fire a copy off to the mailing list, and drop
+# it on the end of the Changes file.
+#
+
+#
+# Produce the final compilation of the log messages
+#
+@text = ();
+@status_txt = ();
+push(@text, &build_header());
+push(@text, "");
+
+for ($i = 0; ; $i++) {
+ last if (! -e "$LOG_FILE.$i.$id"); # we're done them all!
+ @lines = &read_logfile("$CHANGED_FILE.$i.$id", "");
+ if ($#lines >= 0) {
+ push(@text, "Modified files:");
+ push(@text, &format_lists(@lines));
+ }
+ @lines = &read_logfile("$ADDED_FILE.$i.$id", "");
+ if ($#lines >= 0) {
+ push(@text, "Added files:");
+ push(@text, &format_lists(@lines));
+ }
+ @lines = &read_logfile("$REMOVED_FILE.$i.$id", "");
+ if ($#lines >= 0) {
+ push(@text, "Removed files:");
+ push(@text, &format_lists(@lines));
+ }
+ if ($#text >= 0) {
+ push(@text, "");
+ }
+ @lines = &read_logfile("$LOG_FILE.$i.$id", "\t");
+ if ($#lines >= 0) {
+ push(@text, "Log message:");
+ push(@text, @lines);
+ push(@text, "");
+ }
+ if ($do_status) {
+ local(@changed_files);
+
+ @changed_files = ();
+ push(@changed_files, &read_logfile("$CHANGED_FILE.$i.$id", ""));
+ push(@changed_files, &read_logfile("$ADDED_FILE.$i.$id", ""));
+ push(@changed_files, &read_logfile("$REMOVED_FILE.$i.$id", ""));
+
+ if ($debug) {
+ print STDERR "main: pre-sort changed_files = ", join(":", @changed_files), ".\n";
+ }
+ sort(@changed_files);
+ if ($debug) {
+ print STDERR "main: post-sort changed_files = ", join(":", @changed_files), ".\n";
+ }
+
+ foreach $dofile (@changed_files) {
+ if ($dofile =~ /\/$/) {
+ next; # ignore the silly "dir" entries
+ }
+ if ($debug) {
+ print STDERR "main(): doing 'cvs -nQq status -v $dofile'\n";
+ }
+ open(STATUS, "-|") || exec 'cvs', '-nQq', 'status', '-v', $dofile;
+ while (<STATUS>) {
+ chop;
+ push(@status_txt, $_);
+ }
+ }
+ }
+}
+
+# Write to the commitlog file
+#
+if ($commitlog) {
+ &write_commitlog($commitlog, @text);
+}
+
+if ($#status_txt >= 0) {
+ push(@text, @status_txt);
+}
+
+# Mailout the notification.
+#
+&mail_notification(@text);
+
+# cleanup
+#
+if (! $debug) {
+ &cleanup_tmpfiles();
+}
+
+exit 0;
diff --git a/contrib/cvs/contrib/mfpipe.in b/contrib/cvs/contrib/mfpipe.in
new file mode 100755
index 000000000000..1ecceb069018
--- /dev/null
+++ b/contrib/cvs/contrib/mfpipe.in
@@ -0,0 +1,85 @@
+#! @PERL@
+# -*-Perl-*-
+#
+# From: clyne@niwot.scd.ucar.EDU (John Clyne)
+# Date: Fri, 28 Feb 92 09:54:21 MST
+#
+# BTW, i wrote a perl script that is similar to 'nfpipe' except that in
+# addition to logging to a file it provides a command line option for mailing
+# change notices to a group of users. Obviously you probably wouldn't want
+# to mail every change. But there may be certain directories that are commonly
+# accessed by a group of users who would benefit from an email notice.
+# Especially if they regularly beat on the same directory. Anyway if you
+# think anyone would be interested here it is.
+#
+# File: mfpipe
+#
+# Author: John Clyne
+# National Center for Atmospheric Research
+# PO 3000, Boulder, Colorado
+#
+# Date: Wed Feb 26 18:34:53 MST 1992
+#
+# Description: Tee standard input to mail a list of users and to
+# a file. Used by CVS logging.
+#
+# Usage: mfpipe [-f file] [user@host...]
+#
+# Environment: CVSROOT
+# Path to CVS root.
+#
+# Files:
+#
+#
+# Options: -f file
+# Capture output to 'file'
+#
+
+$header = "Log Message:\n";
+
+$mailcmd = "| mail -s 'CVS update notice'";
+$whoami = `whoami`;
+chop $whoami;
+$date = `date`;
+chop $date;
+
+$cvsroot = $ENV{'CVSROOT'};
+
+while (@ARGV) {
+ $arg = shift @ARGV;
+
+ if ($arg eq '-f') {
+ $file = shift @ARGV;
+ }
+ else {
+ $users = "$users $arg";
+ }
+}
+
+if ($users) {
+ $mailcmd = "$mailcmd $users";
+ open(MAIL, $mailcmd) || die "Execing $mail: $!\n";
+}
+
+if ($file) {
+ $logfile = "$cvsroot/LOG/$file";
+ open(FILE, ">> $logfile") || die "Opening $logfile: $!\n";
+}
+
+print FILE "$whoami $date--------BEGIN LOG ENTRY-------------\n" if ($logfile);
+
+while (<>) {
+ print FILE $log if ($log && $logfile);
+
+ print FILE $_ if ($logfile);
+ print MAIL $_ if ($users);
+
+ $log = "log: " if ($_ eq $header);
+}
+
+close FILE;
+die "Write failed" if $?;
+close MAIL;
+die "Mail failed" if $?;
+
+exit 0;
diff --git a/contrib/cvs/contrib/rcslock.in b/contrib/cvs/contrib/rcslock.in
new file mode 100755
index 000000000000..e17356b9b1cb
--- /dev/null
+++ b/contrib/cvs/contrib/rcslock.in
@@ -0,0 +1,235 @@
+#! @PERL@
+# -*-Perl-*-
+
+# Author: John Rouillard (rouilj@cs.umb.edu)
+# Supported: Yeah right. (Well what do you expect for 2 hours work?)
+# Blame-to: rouilj@cs.umb.edu
+# Complaints to: Anybody except Brian Berliner, he's blameless for
+# this script.
+# Acknowlegements: The base code for this script has been acquired
+# from the log.pl script.
+
+# rcslock.pl - A program to prevent commits when a file to be ckecked
+# in is locked in the repository.
+
+# There are times when you need exclusive access to a file. This
+# often occurs when binaries are checked into the repository, since
+# cvs's (actually rcs's) text based merging mechanism won't work. This
+# script allows you to use the rcs lock mechanism (rcs -l) to make
+# sure that no changes to a repository are able to be committed if
+# those changes would result in a locked file being changed.
+
+# WARNING:
+# This script will work only if locking is set to strict.
+#
+
+# Setup:
+# Add the following line to the commitinfo file:
+
+# ALL /local/location/for/script/lockcheck [options]
+
+# Where ALL is replaced by any suitable regular expression.
+# Options are -v for verbose info, or -d for debugging info.
+# The %s will provide the repository directory name and the names of
+# all changed files.
+
+# Use:
+# When a developer needs exclusive access to a version of a file, s/he
+# should use "rcs -l" in the repository tree to lock the version they
+# are working on. CVS will automagically release the lock when the
+# commit is performed.
+
+# Method:
+# An "rlog -h" is exec'ed to give info on all about to be
+# committed files. This (header) information is parsed to determine
+# if any locks are outstanding and what versions of the file are
+# locked. This filename, version number info is used to index an
+# associative array. All of the files to be committed are checked to
+# see if any locks are outstanding. If locks are outstanding, the
+# version number of the current file (taken from the CVS/Entries
+# subdirectory) is used in the key to determine if that version is
+# locked. If the file being checked in is locked by the person doing
+# the checkin, the commit is allowed, but if the lock is held on that
+# version of a file by another person, the commit is not allowed.
+
+$ext = ",v"; # The extension on your rcs files.
+
+$\="\n"; # I hate having to put \n's at the end of my print statements
+$,=' '; # Spaces should occur between arguments to print when printed
+
+# turn off setgid
+#
+$) = $(;
+
+#
+# parse command line arguments
+#
+require 'getopts.pl';
+
+&Getopts("vd"); # verbose or debugging
+
+# Verbose is useful when debugging
+$opt_v = $opt_d if defined $opt_d;
+
+# $files[0] is really the name of the subdirectory.
+# @files = split(/ /,$ARGV[0]);
+@files = @ARGV[0..$#ARGV];
+$cvsroot = $ENV{'CVSROOT'};
+
+#
+# get login name
+#
+$login = getlogin || (getpwuid($<))[0] || "nobody";
+
+#
+# save the current directory since we have to return here to parse the
+# CVS/Entries file if a lock is found.
+#
+$pwd = `/bin/pwd`;
+chop $pwd;
+
+print "Starting directory is $pwd" if defined $opt_d ;
+
+#
+# cd to the repository directory and check on the files.
+#
+print "Checking directory ", $files[0] if defined $opt_v ;
+
+if ( $files[0] =~ /^\// )
+{
+ print "Directory path is $files[0]" if defined $opt_d ;
+ chdir $files[0] || die "Can't change to repository directory $files[0]" ;
+}
+else
+{
+ print "Directory path is $cvsroot/$files[0]" if defined $opt_d ;
+ chdir ($cvsroot . "/" . $files[0]) ||
+ die "Can't change to repository directory $files[0] in $cvsroot" ;
+}
+
+
+# Open the rlog process and apss all of the file names to that one
+# process to cut down on exec overhead. This may backfire if there
+# are too many files for the system buffer to handle, but if there are
+# that many files, chances are that the cvs repository is not set up
+# cleanly.
+
+print "opening rlog -h @files[1..$#files] |" if defined $opt_d;
+
+open( RLOG, "rlog -h @files[1..$#files] |") || die "Can't run rlog command" ;
+
+# Create the locks associative array. The elements in the array are
+# of two types:
+#
+# The name of the RCS file with a value of the total number of locks found
+# for that file,
+# or
+#
+# The name of the rcs file concatenated with the version number of the lock.
+# The value of this element is the name of the locker.
+
+# The regular expressions used to split the rcs info may have to be changed.
+# The current ones work for rcs 5.6.
+
+$lock = 0;
+
+while (<RLOG>)
+{
+ chop;
+ next if /^$/; # ditch blank lines
+
+ if ( $_ =~ /^RCS file: (.*)$/ )
+ {
+ $curfile = $1;
+ next;
+ }
+
+ if ( $_ =~ /^locks: strict$/ )
+ {
+ $lock = 1 ;
+ next;
+ }
+
+ if ( $lock )
+ {
+ # access list: is the line immediately following the list of locks.
+ if ( /^access list:/ )
+ { # we are done getting lock info for this file.
+ $lock = 0;
+ }
+ else
+ { # We are accumulating lock info.
+
+ # increment the lock count
+ $locks{$curfile}++;
+ # save the info on the version that is locked. $2 is the
+ # version number $1 is the name of the locker.
+ $locks{"$curfile" . "$2"} = $1
+ if /[ ]*([a-zA-Z._]*): ([0-9.]*)$/;
+
+ print "lock by $1 found on $curfile version $2" if defined $opt_d;
+
+ }
+ }
+}
+
+# Lets go back to the starting directory and see if any locked files
+# are ones we are interested in.
+
+chdir $pwd;
+
+# fo all of the file names (remember $files[0] is the directory name
+foreach $i (@files[1..$#files])
+{
+ if ( defined $locks{$i . $ext} )
+ { # well the file has at least one lock outstanding
+
+ # find the base version number of our file
+ &parse_cvs_entry($i,*entry);
+
+ # is our version of this file locked?
+ if ( defined $locks{$i . $ext . $entry{"version"}} )
+ { # if so, it is by us?
+ if ( $login ne ($by = $locks{$i . $ext . $entry{"version"}}) )
+ {# crud somebody else has it locked.
+ $outstanding_lock++ ;
+ print "$by has file $i locked for version " , $entry{"version"};
+ }
+ else
+ { # yeah I have it locked.
+ print "You have a lock on file $i for version " , $entry{"version"}
+ if defined $opt_v;
+ }
+ }
+ }
+}
+
+exit $outstanding_lock;
+
+
+### End of main program
+
+sub parse_cvs_entry
+{ # a very simple minded hack at parsing an entries file.
+local ( $file, *entry ) = @_;
+local ( @pp );
+
+
+open(ENTRIES, "< CVS/Entries") || die "Can't open entries file";
+
+while (<ENTRIES>)
+ {
+ if ( $_ =~ /^\/$file\// )
+ {
+ @pp = split('/');
+
+ $entry{"name"} = $pp[1];
+ $entry{"version"} = $pp[2];
+ $entry{"dates"} = $pp[3];
+ $entry{"name"} = $pp[4];
+ $entry{"name"} = $pp[5];
+ $entry{"sticky"} = $pp[6];
+ return;
+ }
+ }
+}
diff --git a/contrib/cvs/contrib/sccs2rcs.in b/contrib/cvs/contrib/sccs2rcs.in
new file mode 100755
index 000000000000..018b4ff48c7e
--- /dev/null
+++ b/contrib/cvs/contrib/sccs2rcs.in
@@ -0,0 +1,281 @@
+#! @CSH@ -f
+#
+# Sccs2rcs is a script to convert an existing SCCS
+# history into an RCS history without losing any of
+# the information contained therein.
+# It has been tested under the following OS's:
+# SunOS 3.5, 4.0.3, 4.1
+# Ultrix-32 2.0, 3.1
+#
+# Things to note:
+# + It will NOT delete or alter your ./SCCS history under any circumstances.
+#
+# + Run in a directory where ./SCCS exists and where you can
+# create ./RCS
+#
+# + /usr/local/bin is put in front of the default path.
+# (SCCS under Ultrix is set-uid sccs, bad bad bad, so
+# /usr/local/bin/sccs here fixes that)
+#
+# + Date, time, author, comments, branches, are all preserved.
+#
+# + If a command fails somewhere in the middle, it bombs with
+# a message -- remove what it's done so far and try again.
+# "rm -rf RCS; sccs unedit `sccs tell`; sccs clean"
+# There is no recovery and exit is far from graceful.
+# If a particular module is hanging you up, consider
+# doing it separately; move it from the current area so that
+# the next run will have a better chance or working.
+# Also (for the brave only) you might consider hacking
+# the s-file for simpler problems: I've successfully changed
+# the date of a delta to be in sync, then run "sccs admin -z"
+# on the thing.
+#
+# + After everything finishes, ./SCCS will be moved to ./old-SCCS.
+#
+# This file may be copied, processed, hacked, mutilated, and
+# even destroyed as long as you don't tell anyone you wrote it.
+#
+# Ken Cox
+# Viewlogic Systems, Inc.
+# kenstir@viewlogic.com
+# ...!harvard!cg-atla!viewlog!kenstir
+#
+# Various hacks made by Brian Berliner before inclusion in CVS contrib area.
+
+
+#we'll assume the user set up the path correctly
+# for the Pmax, /usr/ucb/sccs is suid sccs, what a pain
+# /usr/local/bin/sccs should override /usr/ucb/sccs there
+set path = (/usr/local/bin $path)
+
+
+############################################################
+# Error checking
+#
+if (! -w .) then
+ echo "Error: ./ not writeable by you."
+ exit 1
+endif
+if (! -d SCCS) then
+ echo "Error: ./SCCS directory not found."
+ exit 1
+endif
+set edits = (`sccs tell`)
+if ($#edits) then
+ echo "Error: $#edits file(s) out for edit...clean up before converting."
+ exit 1
+endif
+if (-d RCS) then
+ echo "Warning: RCS directory exists"
+ if (`ls -a RCS | wc -l` > 2) then
+ echo "Error: RCS directory not empty
+ exit 1
+ endif
+else
+ mkdir RCS
+endif
+
+sccs clean
+
+set logfile = /tmp/sccs2rcs_$$_log
+rm -f $logfile
+set tmpfile = /tmp/sccs2rcs_$$_tmp
+rm -f $tmpfile
+set emptyfile = /tmp/sccs2rcs_$$_empty
+echo -n "" > $emptyfile
+set initialfile = /tmp/sccs2rcs_$$_init
+echo "Initial revision" > $initialfile
+set sedfile = /tmp/sccs2rcs_$$_sed
+rm -f $sedfile
+set revfile = /tmp/sccs2rcs_$$_rev
+rm -f $revfile
+
+# the quotes surround the dollar signs to fool RCS when I check in this script
+set sccs_keywords = (\
+ '%W%[ ]*%G%'\
+ '%W%[ ]*%E%'\
+ '%W%'\
+ '%Z%%M%[ ]*%I%[ ]*%G%'\
+ '%Z%%M%[ ]*%I%[ ]*%E%'\
+ '%M%[ ]*%I%[ ]*%G%'\
+ '%M%[ ]*%I%[ ]*%E%'\
+ '%M%'\
+ '%I%'\
+ '%G%'\
+ '%E%'\
+ '%U%')
+set rcs_keywords = (\
+ '$'Id'$'\
+ '$'Id'$'\
+ '$'Id'$'\
+ '$'SunId'$'\
+ '$'SunId'$'\
+ '$'Id'$'\
+ '$'Id'$'\
+ '$'RCSfile'$'\
+ '$'Revision'$'\
+ '$'Date'$'\
+ '$'Date'$'\
+ '')
+
+
+############################################################
+# Get some answers from user
+#
+echo ""
+echo "Do you want to be prompted for a description of each"
+echo "file as it is checked in to RCS initially?"
+echo -n "(y=prompt for description, n=null description) [y] ?"
+set ans = $<
+if ((_$ans == _) || (_$ans == _y) || (_$ans == _Y)) then
+ set nodesc = 0
+else
+ set nodesc = 1
+endif
+echo ""
+echo "The default keyword substitutions are as follows and are"
+echo "applied in the order specified:"
+set i = 1
+while ($i <= $#sccs_keywords)
+# echo ' '\"$sccs_keywords[$i]\"' ==> '\"$rcs_keywords[$i]\"
+ echo " $sccs_keywords[$i] ==> $rcs_keywords[$i]"
+ @ i = $i + 1
+end
+echo ""
+echo -n "Do you want to change them [n] ?"
+set ans = $<
+if ((_$ans != _) && (_$ans != _n) && (_$ans != _N)) then
+ echo "You can't always get what you want."
+ echo "Edit this script file and change the variables:"
+ echo ' $sccs_keywords'
+ echo ' $rcs_keywords'
+else
+ echo "good idea."
+endif
+
+# create the sed script
+set i = 1
+while ($i <= $#sccs_keywords)
+ echo "s,$sccs_keywords[$i],$rcs_keywords[$i],g" >> $sedfile
+ @ i = $i + 1
+end
+
+onintr ERROR
+
+############################################################
+# Loop over every s-file in SCCS dir
+#
+foreach sfile (SCCS/s.*)
+ # get rid of the "s." at the beginning of the name
+ set file = `echo $sfile:t | sed -e "s/^..//"`
+
+ # work on each rev of that file in ascending order
+ set firsttime = 1
+ sccs prs $file | grep "^D " | awk '{print $2}' | sed -e 's/\./ /g' | sort -n -u +0 +1 +2 +3 +4 +5 +6 +7 +8 | sed -e 's/ /./g' > $revfile
+ foreach rev (`cat $revfile`)
+ if ($status != 0) goto ERROR
+
+ # get file into current dir and get stats
+ set year = `echo $date | cut -c3-4`
+ if ($year < 70) then
+ # Y2K Bug, change century to 20
+ set date = `sccs prs -r$rev $file | grep "^D " | awk '{printf("20%s %s", $3, $4); exit}'`
+ else
+ set date = `sccs prs -r$rev $file | grep "^D " | awk '{printf("19%s %s", $3, $4); exit}'`
+ endif
+ set author = `sccs prs -r$rev $file | grep "^D " | awk '{print $5; exit}'`
+ echo ""
+ echo "==> file $file, rev=$rev, date=$date, author=$author"
+ sccs edit -r$rev $file >>& $logfile
+ if ($status != 0) goto ERROR
+ echo checked out of SCCS
+
+ # add RCS keywords in place of SCCS keywords
+ sed -f $sedfile $file > $tmpfile
+ if ($status != 0) goto ERROR
+ echo performed keyword substitutions
+ cp $tmpfile $file
+
+ # check file into RCS
+ if ($firsttime) then
+ set firsttime = 0
+ if ($nodesc) then
+ echo about to do ci
+ echo ci -f -r$rev -d"$date" -w$author -t$emptyfile $file
+ ci -f -r$rev -d"$date" -w$author -t$emptyfile $file < $initialfile >>& $logfile
+ if ($status != 0) goto ERROR
+ echo initial rev checked into RCS without description
+ else
+ echo ""
+ echo Enter a brief description of the file $file \(end w/ Ctrl-D\):
+ cat > $tmpfile
+ ci -f -r$rev -d"$date" -w$author -t$tmpfile $file < $initialfile >>& $logfile
+ if ($status != 0) goto ERROR
+ echo initial rev checked into RCS
+ endif
+ else
+ # get RCS lock
+ set lckrev = `echo $rev | sed -e 's/\.[0-9]*$//'`
+ if ("$lckrev" =~ [0-9]*.*) then
+ # need to lock the brach -- it is OK if the lock fails
+ rcs -l$lckrev $file >>& $logfile
+ else
+ # need to lock the trunk -- must succeed
+ rcs -l $file >>& $logfile
+ if ($status != 0) goto ERROR
+ endif
+ echo got lock
+ sccs prs -r$rev $file | grep "." > $tmpfile
+ # it's OK if grep fails here and gives status == 1
+ # put the delta message in $tmpfile
+ ed $tmpfile >>& $logfile <<EOF
+/COMMENTS
+1,.d
+w
+q
+EOF
+ ci -f -r$rev -d"$date" -w$author $file < $tmpfile >>& $logfile
+ if ($status != 0) goto ERROR
+ echo checked into RCS
+ endif
+ sccs unedit $file >>& $logfile
+ if ($status != 0) goto ERROR
+ end
+ rm -f $file
+end
+
+
+############################################################
+# Clean up
+#
+echo cleaning up...
+mv SCCS old-SCCS
+rm -f $tmpfile $emptyfile $initialfile $sedfile
+echo ===================================================
+echo " Conversion Completed Successfully"
+echo ""
+echo " SCCS history now in old-SCCS/"
+echo ===================================================
+set exitval = 0
+goto cleanup
+
+ERROR:
+foreach f (`sccs tell`)
+ sccs unedit $f
+end
+echo ""
+echo ""
+echo Danger\! Danger\!
+echo Some command exited with a non-zero exit status.
+echo Log file exists in $logfile.
+echo ""
+echo Incomplete history in ./RCS -- remove it
+echo Original unchanged history in ./SCCS
+set exitval = 1
+
+cleanup:
+# leave log file
+rm -f $tmpfile $emptyfile $initialfile $sedfile $revfile
+
+exit $exitval
diff --git a/contrib/cvs/depcomp b/contrib/cvs/depcomp
new file mode 100755
index 000000000000..86774be1e7cd
--- /dev/null
+++ b/contrib/cvs/depcomp
@@ -0,0 +1,358 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay!
+ "$@" -MT "$object" -MF "$tmpdepfile" -MD -MP
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ rm -f "$depfile"
+ cp "$tmpdepfile" "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file.
+ tr ' ' '
+' < "$tmpdepfile" | \
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' -e '/^#/d' | sed -e 's/$/ :/' >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file.
+ tmpdepfile=`echo "$object" | sed 's/\(.*\)\..*$/\1.u/'`
+ if test "$libtool" = yes; then
+ "$@" -Wc,-M
+ else
+ "$@" -M
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile"; then
+ rm -f "$depfile"
+ cp "$tmpdepfile" "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file.
+ tr ' ' '
+' < "$tmpdepfile" | \
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ test -z "$dashmflag" && dashmflag=-M
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*) # this is libtool, let us make it quiet
+ for arg
+ do # cycle over the arguments
+ case "$arg" in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ # X makedepend
+ (
+ shift
+ cleared=no
+ for arg in "$@"; do
+ case $cleared in no)
+ set ""; shift
+ cleared=yes
+ esac
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift;;
+ -*)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift;;
+ esac
+ done
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tail +3 "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*)
+ for arg
+ do # cycle over the arguments
+ case $arg in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" -E |
+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the proprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ ( IFS=" "
+ case " $* " in
+ *" --mode=compile "*)
+ for arg
+ do # cycle over the arguments
+ case $arg in
+ "--mode=compile")
+ # insert --quiet before "--mode=compile"
+ set fnord "$@" --quiet
+ shift # fnord
+ ;;
+ esac
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # "$arg"
+ done
+ ;;
+ esac
+ "$@" -E |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ ) &
+ proc=$!
+ "$@"
+ stat=$?
+ wait "$proc"
+ if test "$stat" != 0; then exit $stat; fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/contrib/cvs/diff/ChangeLog b/contrib/cvs/diff/ChangeLog
index e3272e84c2dd..565bdb781780 100644
--- a/contrib/cvs/diff/ChangeLog
+++ b/contrib/cvs/diff/ChangeLog
@@ -1,3 +1,70 @@
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+
+2001-03-24 Noel Cragg <noel@shave.red-bean.com>
+
+ * diff.c: fix typo in usage string.
+
+2001-03-20 Derek Price <derek.price@openavenue.com>
+ for Karl Tomlinson <k.tomlinson@auckland.ac.nz>
+
+ * diff3.c (main): changed the common file of the two diffs to
+ OLDFILE for merges and edscripts so that the diffs are more likely
+ to contain the intended changes. Not changing the horizon-lines
+ arg for the second diff. If the two diffs have the same parameters
+ equal changes in each diff are more likely to appear the same.
+
+ * analyze.c (shift_boundaries): undid Paul Eggert's patch to fix
+ the diff3 merge bug described in ccvs/doc/DIFFUTILS-2.7-BUG. The
+ patch is no longer necessary now that diff3 does its differences
+ differently. I think the hunk merges provide a better indication
+ of the area modified by the user now that the diffs are actually
+ done between the appropriate revisions.
+
+2001-03-15 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (INCLUDES): Add -I$(top_srcdir)/lib for platforms which
+ need the regex library there.
+
+ * Makefile.in: Regenerated.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: Added '.deps'.
+
+ Pavel Roskin <proski@gnu.org>
+
+ * Makefile.am: New file.
+ * Makefile.in: Regenerated.
+
+2001-02-22 Derek Price <derek.price@openavenue.com>
+ Pavel Roskin <proski@gnu.org>
+
+ * Makefile.in: Don't define PR_PROGRAM - it's defined by configure.
+ Remove separate rule for util.c.
+
+2001-02-06 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+ Shawn Smith <Shawn_Smith@notes.ymp.gov>
+
+ * dir.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
+ CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
+ 5.7 {open,read,close}dir problems. Check today's entry in the vms
+ subdir for more.
+ * system.h: definitions of CVS_*DIR provided here.
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Some changes to support Automake targets
+
+2000-10-26 Larry Jones <larry.jones@sdrc.com>
+
+ * Makefile.in: Get PR_PROGRAM from autoconf instead of hard coding.
+ (Patch submitted by Urs Thuermann <urs@isnogud.escape.de>.)
+ Also add a dependency for util.o on Makefile since PR_PROGRAM gets
+ compiled in.
+
2000-08-03 Larry Jones <larry.jones@sdrc.com>
* diff3.c (read_diff): Use cvs_temp_name () instead of tmpnam () so
diff --git a/contrib/cvs/diff/Makefile.am b/contrib/cvs/diff/Makefile.am
new file mode 100644
index 000000000000..38ed80ed88b4
--- /dev/null
+++ b/contrib/cvs/diff/Makefile.am
@@ -0,0 +1,24 @@
+## Makefile.am for GNU DIFF
+## Copyright (C) 2001 Free Software Foundation, Inc.
+##
+## This file is part of GNU DIFF.
+##
+## GNU DIFF is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## GNU DIFF is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+INCLUDES = -I$(top_srcdir)/lib
+
+noinst_LIBRARIES = libdiff.a
+
+libdiff_a_SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c \
+ context.c ed.c normal.c ifdef.c util.c dir.c version.c diff.h \
+ side.c system.h diffrun.h
+
+EXTRA_DIST = ChangeLog build_diff.com diagmeet.note libdiff.dsp
diff --git a/contrib/cvs/diff/Makefile.in b/contrib/cvs/diff/Makefile.in
index 31f491020666..d9d1703d9a88 100644
--- a/contrib/cvs/diff/Makefile.in
+++ b/contrib/cvs/diff/Makefile.in
@@ -1,102 +1,327 @@
-# Makefile for GNU DIFF
-# Copyright (C) 1988,1989,1991,1992,1993,1994,1997,1998 Free Software Foundation, Inc.
-#
-# This file is part of GNU DIFF.
-#
-# GNU DIFF is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU DIFF is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-#### Start of system configuration section. ####
-
-srcdir = @srcdir@
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-subdir = diff
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
+
+INCLUDES = -I$(top_srcdir)/lib
+
+noinst_LIBRARIES = libdiff.a
+
+libdiff_a_SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c \
+ context.c ed.c normal.c ifdef.c util.c dir.c version.c diff.h \
+ side.c system.h diffrun.h
+
+
+EXTRA_DIST = ChangeLog build_diff.com diagmeet.note libdiff.dsp
+EXEEXT =
+OBJEXT = o
+subdir = diff
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+
+libdiff_a_AR = $(AR) cru
+libdiff_a_LIBADD =
+am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) analyze.$(OBJEXT) \
+ cmpbuf.$(OBJEXT) io.$(OBJEXT) context.$(OBJEXT) ed.$(OBJEXT) \
+ normal.$(OBJEXT) ifdef.$(OBJEXT) util.$(OBJEXT) dir.$(OBJEXT) \
+ version.$(OBJEXT) side.$(OBJEXT)
+libdiff_a_OBJECTS = $(am_libdiff_a_OBJECTS)
AR = ar
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CFLAGS = @CFLAGS@
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CPPFLAGS = @CPPFLAGS@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
DEFS = @DEFS@
-RANLIB = @RANLIB@
-CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+DIST_SOURCES = $(libdiff_a_SOURCES)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/analyze.Po $(DEPDIR)/cmpbuf.Po \
+@AMDEP_TRUE@ $(DEPDIR)/context.Po $(DEPDIR)/diff.Po \
+@AMDEP_TRUE@ $(DEPDIR)/diff3.Po $(DEPDIR)/dir.Po $(DEPDIR)/ed.Po \
+@AMDEP_TRUE@ $(DEPDIR)/ifdef.Po $(DEPDIR)/io.Po \
+@AMDEP_TRUE@ $(DEPDIR)/normal.Po $(DEPDIR)/side.Po \
+@AMDEP_TRUE@ $(DEPDIR)/util.Po $(DEPDIR)/version.Po
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+SOURCES = $(libdiff_a_SOURCES)
+OBJECTS = $(am_libdiff_a_OBJECTS)
-prefix = @prefix@
-exec_prefix = @exec_prefix@
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu diff/Makefile
-PR_PROGRAM = /bin/pr
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
-#### End of system configuration section. ####
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-SHELL = /bin/sh
+libdiff.a: $(libdiff_a_OBJECTS) $(libdiff_a_DEPENDENCIES)
+ -rm -f libdiff.a
+ $(libdiff_a_AR) libdiff.a $(libdiff_a_OBJECTS) $(libdiff_a_LIBADD)
+ $(RANLIB) libdiff.a
-# The source files for all of the programs.
-SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c context.c ed.c \
- normal.c ifdef.c util.c dir.c version.c diff.h side.c system.h \
- diffrun.h
-OBJECTS = diff.o diff3.o analyze.o cmpbuf.o dir.o io.o util.o \
- context.o ed.o ifdef.o normal.o side.o version.o
-DISTFILES = $(SOURCES) ChangeLog build_diff.com Makefile.in diagmeet.note \
- libdiff.dsp .cvsignore
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
-all: libdiff.a
+distclean-compile:
+ -rm -f *.tab.c
-# $(top_srcdir)/lib is so we don't get the system-supplied headers for
-# functions that we supply ourselves in lib. $(srcdir) is perhaps not
-# necessary if we assume the unix compiler behavior whereby "" looks
-# in the directory containing the .c file first.
-# -I. is probably unnecessary (I don't think we generate any .h files).
-# -I.. is for config.h.
-COMPILE = $(CC) -c $(CPPFLAGS) $(DEFS) \
- -I. -I.. -I$(srcdir) -I$(top_srcdir)/lib $(CFLAGS)
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list @CONFIG@; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || $(ETAGS) $(ETAGS_ARGS) $$tags $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $$here
+
+distclean-tags:
+ -rm -f TAGS ID
+
+@_am_include@ @_am_quote@$(DEPDIR)/analyze.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/cmpbuf.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/context.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/diff.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/diff3.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/dir.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/ed.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/ifdef.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/io.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/normal.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/side.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/util.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/version.Po@_am_quote@
+
+distclean-depend:
+ -rm -rf $(DEPDIR)
+
+CCDEPMODE = @CCDEPMODE@
.c.o:
- $(COMPILE) $<
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
-libdiff libdiff.a: $(OBJECTS)
- $(AR) cr libdiff.a $(OBJECTS)
- -$(RANLIB) libdiff.a
+.c.obj:
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `cygpath -w $<`
-$(OBJECTS): diff.h diffrun.h system.h
-analyze.o cmpbuf.o: cmpbuf.h
-util.o: util.c
- $(COMPILE) -DPR_PROGRAM=\"$(PR_PROGRAM)\" $<
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-install: all
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
installdirs:
- @: nothing to do for installdirs
-.PHONY: installdirs
-TAGS: $(SOURCES)
- etags $(SOURCES)
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
-clean:
- rm -f *.o *.a core
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-mostlyclean: clean
+installcheck: installcheck-am
-distclean: clean
- rm -f TAGS tags Makefile
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
-realclean: distclean
+mostlyclean-generic:
-Makefile: Makefile.in ../config.status
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-tags
+
+dvi:
+
+dvi-am:
+
+info:
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info:
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+.PHONY: all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES distclean distclean-compile \
+ distclean-depend distclean-generic distclean-tags distdir dvi \
+ dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic tags \
+ uninstall uninstall-am
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
- done
-# Prevent GNU make v3 from overflowing arg limit on SysV.
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/contrib/cvs/diff/analyze.c b/contrib/cvs/diff/analyze.c
index f2925946e38f..3262444e6b17 100644
--- a/contrib/cvs/diff/analyze.c
+++ b/contrib/cvs/diff/analyze.c
@@ -621,7 +621,9 @@ shift_boundaries (filevec)
struct file_data filevec[];
{
int f;
- int inhibit_hunk_merge = horizon_lines != context;
+
+ if (inhibit)
+ return;
for (f = 0; f < 2; f++)
{
@@ -664,21 +666,18 @@ shift_boundaries (filevec)
we can later determine whether the run has grown. */
runlength = i - start;
- if (! inhibit_hunk_merge)
- {
- /* Move the changed region back, so long as the
- previous unchanged line matches the last changed one.
- This merges with previous changed regions. */
+ /* Move the changed region back, so long as the
+ previous unchanged line matches the last changed one.
+ This merges with previous changed regions. */
- while (start && equivs[start - 1] == equivs[i - 1])
- {
- changed[--start] = 1;
- changed[--i] = 0;
- while (changed[start - 1])
- start--;
- while (other_changed[--j])
- continue;
- }
+ while (start && equivs[start - 1] == equivs[i - 1])
+ {
+ changed[--start] = 1;
+ changed[--i] = 0;
+ while (changed[start - 1])
+ start--;
+ while (other_changed[--j])
+ continue;
}
/* Set CORRESPONDING to the end of the changed run, at the last
@@ -686,15 +685,13 @@ shift_boundaries (filevec)
CORRESPONDING == I_END means no such point has been found. */
corresponding = other_changed[j - 1] ? i : i_end;
- /* Shift the changed region forward, so long as the
- first changed line matches the following unchanged one,
- but if INHIBIT_HUNK_MERGE is 1 do not shift if
- this would merge with another changed region.
+ /* Move the changed region forward, so long as the
+ first changed line matches the following unchanged one.
+ This merges with following changed regions.
Do this second, so that if there are no merges,
the changed region is moved forward as far as possible. */
- while (i != i_end && equivs[start] == equivs[i]
- && ! (inhibit_hunk_merge & other_changed[j + 1]))
+ while (i != i_end && equivs[start] == equivs[i])
{
changed[start++] = 0;
changed[i++] = 1;
diff --git a/contrib/cvs/diff/diff.c b/contrib/cvs/diff/diff.c
index aa91913fe61a..ebd78aebfd19 100644
--- a/contrib/cvs/diff/diff.c
+++ b/contrib/cvs/diff/diff.c
@@ -775,7 +775,7 @@ static char const * const option_help[] = {
"-e --ed Output an ed script.",
"-n --rcs Output an RCS format diff.",
"-y --side-by-side Output in two columns.",
-" -w NUM --width=NUM Output at most NUM (default 130) characters per line.",
+" -W NUM --width=NUM Output at most NUM (default 130) characters per line.",
" --left-column Output only the left column of common lines.",
" --suppress-common-lines Do not output common lines.",
"-DNAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs.",
diff --git a/contrib/cvs/diff/diff3.c b/contrib/cvs/diff/diff3.c
index 2f05d165fc92..4a6fba618c23 100644
--- a/contrib/cvs/diff/diff3.c
+++ b/contrib/cvs/diff/diff3.c
@@ -171,7 +171,7 @@ static int edscript;
static int flagging;
/* Number of lines to keep in identical prefix and suffix. */
-static int horizon_lines = 10;
+static int const horizon_lines = 10;
/* Use a tab to align output lines (-T). */
static int tab_align_flag;
@@ -370,28 +370,44 @@ diff3_run (argc, argv, out, callbacks_arg)
file0-file1 diffs didn't line up with the file0-file2 diffs
(which is entirely possible since we don't use diff's -n option),
diff3 might report phantom changes from file1 to file2. */
+ /* Also try to compare file0 to file1 because this is the where
+ changes are expected to come from. Diffing between these pairs
+ of files is is most likely to return the intended changes. There
+ can also be the same problem with phantom changes from file0 to
+ file1. */
+ /* Historically, the default common file was file2. Ediff for emacs
+ and possibly other applications, have therefore made file2 the
+ ancestor. So, for compatibility, if this is simply a three
+ way diff (not a merge or edscript) then use the old way with
+ file2 as the common file. */
+
+ {
+ int common;
+ if (edscript || merge )
+ {
+ common = 1;
+ }
+ else
+ {
+ common = 2;
+ }
+ if (strcmp (file[common], "-") == 0)
+ {
+ /* Sigh. We've got standard input as the arg corresponding to
+ the desired common file. We can't call diff twice on
+ stdin. Use another arg as the common file instead. */
+ common = 3 - common;
+ if (strcmp (file[0], "-") == 0 || strcmp (file[common], "-") == 0)
+ {
+ diff_error ("%s", "`-' specified for more than one input file", 0);
+ return 2;
+ }
+ }
- if (strcmp (file[2], "-") == 0)
- {
- /* Sigh. We've got standard input as the last arg. We can't
- call diff twice on stdin. Use the middle arg as the common
- file instead. */
- if (strcmp (file[0], "-") == 0 || strcmp (file[1], "-") == 0)
- {
- diff_error ("%s", "`-' specified for more than one input file", 0);
- return 2;
- }
- mapping[0] = 0;
- mapping[1] = 2;
- mapping[2] = 1;
- }
- else
- {
- /* Normal, what you'd expect */
- mapping[0] = 0;
- mapping[1] = 1;
- mapping[2] = 2;
- }
+ mapping[0] = 0;
+ mapping[1] = 3 - common;
+ mapping[2] = common;
+ }
for (i = 0; i < 3; i++)
rev_mapping[mapping[i]] = i;
@@ -444,12 +460,18 @@ diff3_run (argc, argv, out, callbacks_arg)
commonname = file[rev_mapping[FILEC]];
thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block,
&content1);
+ /* What is the intention behind determining horizon_lines from first
+ diff? I think it is better to use the same parameters for each
+ diff so that equal differences in each diff will appear the
+ same. */
+ /*
if (thread1)
for (i = 0; i < 2; i++)
{
horizon_lines = max (horizon_lines, D_NUMLINES (thread1, i));
horizon_lines = max (horizon_lines, D_NUMLINES (last_block, i));
}
+ */
thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block,
&content0);
diff3 = make_3way_diff (thread0, thread1);
@@ -1855,7 +1877,6 @@ initialize_main (argcp, argvp)
always_text = 0;
edscript = 0;
flagging = 0;
- horizon_lines = 10;
tab_align_flag = 0;
simple_only = 0;
overlap_only = 0;
diff --git a/contrib/cvs/diff/dir.c b/contrib/cvs/diff/dir.c
index fae74e82c653..da497dc4a6b6 100644
--- a/contrib/cvs/diff/dir.c
+++ b/contrib/cvs/diff/dir.c
@@ -61,7 +61,7 @@ dir_sort (dir, dirdata)
if (dir->desc != -1)
{
/* Open the directory and check for errors. */
- register DIR *reading = opendir (dir->name);
+ register DIR *reading = CVS_OPENDIR (dir->name);
if (!reading)
return -1;
@@ -74,7 +74,7 @@ dir_sort (dir, dirdata)
/* Read the directory entries, and insert the subfiles
into the `data' table. */
- while ((errno = 0, (next = readdir (reading)) != 0))
+ while ((errno = 0, (next = CVS_READDIR (reading)) != 0))
{
char *d_name = next->d_name;
size_t d_size = NAMLEN (next) + 1;
@@ -96,14 +96,14 @@ dir_sort (dir, dirdata)
if (errno)
{
int e = errno;
- closedir (reading);
+ CVS_CLOSEDIR (reading);
errno = e;
return -1;
}
#if CLOSEDIR_VOID
- closedir (reading);
+ CVS_CLOSEDIR (reading);
#else
- if (closedir (reading) != 0)
+ if (CVS_CLOSEDIR (reading) != 0)
return -1;
#endif
}
diff --git a/contrib/cvs/diff/system.h b/contrib/cvs/diff/system.h
index 76bc1631feec..f5037ecf70a9 100644
--- a/contrib/cvs/diff/system.h
+++ b/contrib/cvs/diff/system.h
@@ -269,3 +269,16 @@ extern int errno;
*(q)++ = '\''; \
}
#endif
+
+/* these come from CVS's lib/system.h, but I wasn't sure how to include that
+ * properly or even if I really should
+ */
+#ifndef CVS_OPENDIR
+#define CVS_OPENDIR opendir
+#endif
+#ifndef CVS_READDIR
+#define CVS_READDIR readdir
+#endif
+#ifndef CVS_CLOSEDIR
+#define CVS_CLOSEDIR closedir
+#endif
diff --git a/contrib/cvs/doc/CVSvn.texi.in b/contrib/cvs/doc/CVSvn.texi.in
new file mode 100644
index 000000000000..9cc02ea58982
--- /dev/null
+++ b/contrib/cvs/doc/CVSvn.texi.in
@@ -0,0 +1 @@
+@set CVSVN @VERSION@
diff --git a/contrib/cvs/doc/ChangeLog b/contrib/cvs/doc/ChangeLog
index 6a9206d58531..eca8f91f86e1 100644
--- a/contrib/cvs/doc/ChangeLog
+++ b/contrib/cvs/doc/ChangeLog
@@ -1,3 +1,148 @@
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+ * CVSvn.texi: Regenerated.
+
+2001-03-30 Larry Jones <larry.jones@sdrc.com>
+
+ * cvsclient.texi (Dates, Requests): Add rannotate and rlog.
+
+2001-03-26 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (admin options): Fix typo: should be @pxref, not @xref.
+
+2001-03-26 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (admin options): Update description of -u option to
+ refer back to notify.
+
+2001-03-23 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (ps): Make 'ps' an alias for 'doc'.
+ (doc, pdf, ps, txt): declare as '.PHONY'.
+
+ * Makefile.in: Regenerated.
+
+2001-03-23 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (MOSTLYCLEANFILES): Add cvs.cps & cvs.fns as a temporary
+ workaround for an Automake deficiency.
+
+ * Makefile.in: Regenerated.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2001-02-20 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (BUGS): There's only one company listed now, not two.
+
+2001-02-13 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (Password authentication server, First import): Use
+ @ref instead of @xref when not at the beginning of a sentence.
+
+2001-02-01 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (Connection): Add still more notes about common
+ pserver error messages.
+
+2001-01-18 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo (Quick reference to CVS commands): add index entry for
+ version subcommand
+
+2001-01-18 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (log options): Document new :: syntax for -r.
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (CVSvn.texi): specify $(srcdir) explicitly in target rule
+ so CVSvn.texi gets built properly for all makes.
+ (cvs_TEXINFOS): specify $(srcdir) explicitly for CVSvn.texi
+ (cvsclient_TEXINFOS): ditto
+ * Makefile.in: regenerated
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: update timestamp
+ * CVSvn.texi: ditto
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am: new target for creation of CVSvn.texi
+ (EXTRA_DIST): add CVSvn.texi.in & CVSvn.texi
+ * Makefile.in: Regenerated
+ * CVSvn.texi: new file
+ * .cvsignore: remove CVSvn.texi since it is now included in dist
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * cvs-paper.ps: Backout accidental regeneration.
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: Added *.pdf versions of the *.ps docs
+ * CVSvn.texi.in: Use configure to generate CVSvn.texi
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+ * cvs-paper.ps: Regenerated
+ * texinfo.tex: New file added to placate Automake. Apparently, its
+ inclusion is mandated by the GNU coding standards.
+
+2000-12-14 Derek Price <derek.price@openavenue.com>
+ Linus Tolke <linus@epact.se>
+
+ * cvs.texinfo (Merging a branch): changed some references to "BRANCH"
+ to "BRANCHNAME" for consistancy. Add a warning about merging using a
+ single tagname reference with an xref to "Merging adds and removals"
+ for the long explanation
+ (Merging adds and removals): Add the long explanation of why merging
+ from a single tagname can be tricky
+ (update): Add a warning about merging using a single tagname reference
+ with an xref to "Merging adds and removals" for the long explanation
+
+2000-11-13 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo: use '@sc{cvs}' instead of 'CVS' in various locations
+
+2000-11-08 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo (settitle): stick a 'v' in front of the version number
+ to make it harder to confuse with chapter, section, and page numbers.
+
+2000-11-08 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo (settitle): add the version number to the title string
+ so that it is easier to find on HTML pages and the like.
+
+2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
+
+ * cvs.texinfo (Variables): Document CVS_USER.
+
+2000-10-17 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo (Remote repositories): added a comment about specifying
+ a password in the repository name when performaing a checkout.
+
+2000-10-17 Derek Price <derek.price@openavenue.com>
+
+ * cvs.texinfo (Remote repositories, password authenticated, GSSAPI
+ authenticated, Kerberos authenticated, Environment variables):
+ Documented CVSROOT spec change & CVS_CLIENT_PORT.
+
+2000-10-10 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.texinfo (Connection): Add additional notes about common
+ pserver error messages. Remove information about unsetting $HOME
+ since CVS no longer pays any attention to it in server mode.
+
2000-09-07 Larry Jones <larry.jones@sdrc.com>
* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
diff --git a/contrib/cvs/doc/Makefile.am b/contrib/cvs/doc/Makefile.am
new file mode 100644
index 000000000000..7821058baa07
--- /dev/null
+++ b/contrib/cvs/doc/Makefile.am
@@ -0,0 +1,157 @@
+## Process this file with automake to produce Makefile.in
+# Makefile for GNU CVS documentation (excluding man pages - see ../man).
+# Copyright (C) 1986, 1988-1990, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+#DISTFILES = \
+# .cvsignore \
+# RCSFILES \
+
+# AUTOMAKE_OPTIONS = no-texinfo.tex
+
+# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
+# that prevents make from searching VPATH for targets. There is some
+# machinery in place in configure.in to work around this for some targets
+# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
+# targets below is probably going to require work on Automake
+info_TEXINFOS = cvs.texinfo cvsclient.texi
+cvs_TEXINFOS = CVSvn.texi
+cvsclient_TEXINFOS = CVSvn.texi
+
+POSTSCRIPTS = \
+ cvs.ps \
+ cvs-paper.ps \
+ cvsclient.ps
+
+PDFS = \
+ cvs-paper.pdf \
+ cvs.pdf \
+ cvsclient.pdf
+
+TXTS = \
+ cvs.txt \
+ cvsclient.txt
+
+EXTRA_DIST = \
+ $(POSTSCRIPTS) \
+ .cvsignore \
+ CVSvn.texi.in \
+ ChangeLog.fsf \
+ RCSFILES \
+ cvs-paper.ms \
+ cvs.aux \
+ cvsclient.aux
+
+# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency
+MOSTLYCLEANFILES = \
+ cvs.cps \
+ cvs.fns
+
+CLEANFILES = \
+ $(PDFS) \
+ $(TXTS)
+
+MAINTAINERCLEANFILES = \
+ cvs-paper.ps
+
+doc ps: $(POSTSCRIPTS)
+.PHONY: doc ps
+
+pdf: $(PDFS)
+.PHONY: pdf
+
+txt: $(TXTS)
+.PHONY: txt
+
+dvi: cvs.dvi cvsclient.dvi
+.PHONY: dvi
+
+cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
+cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
+
+# These targets need to be very specific so that the other PDFs get generated correctly.
+# If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf will be
+# generated from the generic target and the PS source, which contains less information
+# than the usual texinfo source.
+cvs-paper.pdf: cvs-paper.ps
+ $(ROFF) -t -p -ms -Tps $< > $@-t
+ mv $@-t $@
+
+cvs-paper.ps: cvs-paper.ms
+ $(PS2PDF) $< $@
+
+SUFFIXES = .aux .txt .pdf
+
+# texinfo based targets automake neglects to include
+.texinfo.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+.txi.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+.texi.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+
+.texinfo.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+.txi.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+.texi.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texinfo.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+.txi.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+.texi.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+
+## MAINTAINER Targets
+
+## CVSvn.texi ##
+# - CVSvn.texi needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+# - Of the next three targets, only the next one or the following two should be
+# enabled, not all three
+if MAKE_TARGETS_IN_VPATH
+# - This is the target for systems without the BSD VPATH bug in make or with
+# $(srcdir) = $(builddir)
+CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
+ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
+else
+# - The next two targets are a workaround for the fact that some BSD makes
+# don't look through VPATH for targets, but only for sources.
+# - They should be disabled on systems without the bug and in environments
+# where $(srcdir) = $(builddir)
+CVSvn.texi: $(srcdir)/CVSvn.texi
+ # use cat so the time stamp gets set properly
+ cat $(srcdir)/CVSvn.texi >$@
+$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
+ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
+endif
+
+## realclean ##
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
diff --git a/contrib/cvs/doc/Makefile.in b/contrib/cvs/doc/Makefile.in
index b5da032bf224..a47f45d8b2cc 100644
--- a/contrib/cvs/doc/Makefile.in
+++ b/contrib/cvs/doc/Makefile.in
@@ -1,6 +1,20 @@
-# Makefile for GNU CVS documentation.
-# Do not use this makefile directly, but only from `../Makefile'.
-# Copyright (C) 1986, 1988-1990 Free Software Foundation, Inc.
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile for GNU CVS documentation (excluding man pages - see ../man).
+# Copyright (C) 1986, 1988-1990, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -12,186 +26,465 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-SHELL = /bin/sh
+#DISTFILES = \
+# .cvsignore \
+# RCSFILES \
+
+# AUTOMAKE_OPTIONS = no-texinfo.tex
+
+# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
+# that prevents make from searching VPATH for targets. There is some
+# machinery in place in configure.in to work around this for some targets
+# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
+# targets below is probably going to require work on Automake
+
+
+SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
-
prefix = @prefix@
exec_prefix = @exec_prefix@
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
-DISTFILES = \
- .cvsignore ChangeLog ChangeLog.fsf Makefile.in \
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
+
+info_TEXINFOS = cvs.texinfo cvsclient.texi
+cvs_TEXINFOS = CVSvn.texi
+cvsclient_TEXINFOS = CVSvn.texi
+
+POSTSCRIPTS = \
+ cvs.ps \
+ cvs-paper.ps \
+ cvsclient.ps
+
+
+PDFS = \
+ cvs-paper.pdf \
+ cvs.pdf \
+ cvsclient.pdf
+
+
+TXTS = \
+ cvs.txt \
+ cvsclient.txt
+
+
+EXTRA_DIST = \
+ $(POSTSCRIPTS) \
+ .cvsignore \
+ CVSvn.texi.in \
+ ChangeLog.fsf \
RCSFILES \
- cvs-paper.ms cvs-paper.ps \
- cvs.texinfo \
- cvsclient.texi
+ cvs-paper.ms \
+ cvs.aux \
+ cvsclient.aux
+
+
+# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency
+MOSTLYCLEANFILES = \
+ cvs.cps \
+ cvs.fns
-OBJDIR_DISTFILES = cvs.ps cvs.info cvs.aux \
- cvsclient.ps cvsclient.info cvsclient.aux CVSvn.texi
-# these are part of the texinfo distribution
-MAKEINFO=makeinfo
-TEXI2DVI = texi2dvi
+CLEANFILES = \
+ $(PDFS) \
+ $(TXTS)
-# where to find texinfo;
-TEXIDIR=${gdbdir}/../texinfo
-SET_TEXINPUTS = TEXINPUTS=.:$(srcdir):$$TEXINPUTS
+MAINTAINERCLEANFILES = \
+ cvs-paper.ps
-# Don Knuth's TeX formatter
-TEX = tex
-# auxiliary program for sorting Texinfo indices
-TEXINDEX = texindex
+SUFFIXES = .aux .txt .pdf
+EXEEXT =
+OBJEXT = o
+subdir = doc
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES =
+INFO_DEPS = cvs.info cvsclient.info
+DVIS = cvs.dvi cvsclient.dvi
+TEXINFOS = cvs.texinfo cvsclient.texi
+DIST_COMMON = $(cvs_TEXINFOS) $(cvsclient_TEXINFOS) ChangeLog \
+ Makefile.am Makefile.in texinfo.tex
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .aux .txt .pdf .dvi .info .ps .texi .texinfo .txi
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+
+cvs.info: cvs.texinfo $(cvs_TEXINFOS)
+cvs.dvi: cvs.texinfo $(cvs_TEXINFOS)
+
+cvsclient.info: cvsclient.texi $(cvsclient_TEXINFOS)
+cvsclient.dvi: cvsclient.texi $(cvsclient_TEXINFOS)
+
+.texi.info:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texi.dvi:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texi:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.info:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.dvi:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texinfo:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
DVIPS = dvips
-DVIPSFLAGS =
-
-ROFF = groff
-
-# CYGNUS LOCAL: all does not depend upon info
-all:
-.PHONY: all
-
-# CYGNUS LOCAL: install does not depend on install-info
-install: all
-.PHONY: install
-
-doc: cvs.ps cvs-paper.ps cvsclient.ps
-
-info: cvs.info cvsclient.info
-
-cvs.info: cvs.texinfo CVSvn.texi
- if [ ! -f ./CVSvn.texi ]; then \
- ln -s $(srcdir)/CVSvn.texi . || \
- ln $(srcdir)/CVSvn.texi . || \
- cp $(srcdir)/CVSvn.texi . ; else true; fi
- $(MAKEINFO) $(srcdir)/cvs.texinfo -o cvs.info
-
-cvsclient.info: cvsclient.texi CVSvn.texi
- if [ ! -f ./CVSvn.texi ]; then \
- ln -s $(srcdir)/CVSvn.texi . || \
- ln $(srcdir)/CVSvn.texi . || \
- cp $(srcdir)/CVSvn.texi . ; else true; fi
- $(MAKEINFO) $(srcdir)/cvsclient.texi -o cvsclient.info
-
-# Version of the protocol suitable for emailing
-cvsclient.txt: cvsclient.texi CVSvn.texi
- if [ ! -f ./CVSvn.texi ]; then \
- ln -s $(srcdir)/CVSvn.texi . || \
- ln $(srcdir)/CVSvn.texi . || \
- cp $(srcdir)/CVSvn.texi . ; else true; fi
- $(MAKEINFO) $(srcdir)/cvsclient.texi --no-headers -o cvsclient.txt
-
-# If the user gets a distribution (which contains *.info), unpacks
-# it, and builds it in a seperate build dir, then *.info* are in srcdir.
-# If the user builds *.info (e.g. after editing *.texi), then *.info* are
-# in the build dir.
-# (Note: don't solve this problem with "cd"; INSTALL_DATA might be a
-# relative path to install-sh).
-install-info: info installdirs
- if test -f cvs.info ; then docdir=.; else docdir=$(srcdir);fi; \
- for i in $$docdir/*.info* ; do \
- $(INSTALL_DATA) $$i $(infodir)/`basename $$i` ; \
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+uninstall-info-am:
+ $(PRE_UNINSTALL)
+ @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
+ install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
+ done; \
+ else :; fi
+ @$(NORMAL_UNINSTALL)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ (if cd $(DESTDIR)$(infodir); then \
+ echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
+ rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
+ else :; fi); \
done
-installdirs:
- $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir)
-.PHONY: installdirs
+dist-info: $(INFO_DEPS)
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
+ d=$(srcdir); \
+ for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file; \
+ done; \
+ done
-dvi: cvs.dvi cvsclient.dvi
+mostlyclean-aminfo:
+ -rm -f cvs.aux cvs.cp cvs.cps cvs.dvi cvs.fn cvs.fns cvs.ky cvs.log cvs.pg \
+ cvs.ps cvs.toc cvs.tp cvs.vr cvsclient.aux cvsclient.cp \
+ cvsclient.dvi cvsclient.fn cvsclient.ky cvsclient.log \
+ cvsclient.pg cvsclient.ps cvsclient.toc cvsclient.tp \
+ cvsclient.vr
+
+maintainer-clean-aminfo:
+ cd $(srcdir) && \
+ for i in $(INFO_DEPS); do \
+ rm -f $$i; \
+ if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
+ rm -f $$i-[0-9]*; \
+ fi; \
+ done
+tags: TAGS
+TAGS:
-CVSvn.texi: $(top_srcdir)/src/version.c
- echo "@set CVSVN `sed < $(top_srcdir)/src/version.c \
- -e '/version_string/!d' \
- -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
- -e q`" >CVSvn.new
- mv CVSvn.new CVSvn.texi
-
-cvs.dvi cvs.aux: cvs.texinfo CVSvn.texi
- if [ ! -f ./CVSvn.texi ]; then \
- ln -s $(srcdir)/CVSvn.texi . || \
- ln $(srcdir)/CVSvn.texi . || \
- cp $(srcdir)/CVSvn.texi . ; else true; fi
- $(TEXI2DVI) $(srcdir)/cvs.texinfo
-
-cvsclient.dvi cvsclient.aux: cvsclient.texi CVSvn.texi
- if [ ! -f ./CVSvn.texi ]; then \
- ln -s $(srcdir)/CVSvn.texi . || \
- ln $(srcdir)/CVSvn.texi . || \
- cp $(srcdir)/CVSvn.texi . ; else true; fi
- $(TEXI2DVI) $(srcdir)/cvsclient.texi
- rm -f cvsclient.?? cvsclient.log cvsclient.toc cvsclient.??s
-
-cvs.ps: cvs.dvi
- $(DVIPS) $(DVIPSFLAGS) cvs.dvi -o cvs.ps
-cvs-paper.ps: cvs-paper.ms
- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms > $@-t
- mv $@-t $@
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-cvsclient.ps: cvsclient.dvi
- $(DVIPS) $(DVIPSFLAGS) cvsclient.dvi -o cvsclient.ps
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="${top_distdir}" distdir="$(distdir)" \
+ dist-info
+check-am: all-am
+check: check-am
+all-am: Makefile $(INFO_DEPS)
-tags:
-.PHONY: tags
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
-TAGS:
-.PHONY: TAGS
-
-ls:
- @echo $(DISTFILES)
-.PHONY: ls
-
-clean:
- rm -f *.o core
- rm -f cvs.cp cvs.fn cvs.ky cvs.pg cvs.tp cvs.vr
- rm -f cvs.cps cvs.fns cvs.kys cvs.pgs cvs.tps cvs.vrs
- rm -f cvs.aux cvs.dvi cvs.log cvs.toc
- rm -f cvsclient.cp cvsclient.fn cvsclient.ky cvsclient.pg
- rm -f cvsclient.tp cvsclient.vr cvsclient.cps cvsclient.fns
- rm -f cvsclient.kys cvsclient.pgs cvsclient.tps cvsclient.vrs
- rm -f cvsclient.aux cvsclient.dvi cvsclient.log cvsclient.toc
-
-.PHONY: clean
-
-distclean: clean
- rm -f Makefile
-.PHONY: distclean
-
-realclean: distclean
- rm -f cvs.info* cvs.ps cvs-paper.ps cvsclient.info* cvsclient.ps
-.PHONY: realclean
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
+
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-dist-dir: $(DISTFILES) $(OBJDIR_DISTFILES)
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am: $(DVIS)
+
+info: info-am
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-info-am: $(INFO_DEPS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ d=$(srcdir); \
+ for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+ if test -f $$d/$$ifile; then \
+ echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+ $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+ else : ; fi; \
+ done; \
done
- ln ${OBJDIR_DISTFILES} ${DISTDIR}
- if [ -f cvs.info-1 ]; \
- then ln -f cvs.info-* ${DISTDIR}; \
- else : Pacify Ultrix sh; \
- fi
- if [ -f cvsclient.info-1 ]; \
- then ln -f cvsclient.info-* ${DISTDIR}; \
- else : Pacify Ultrix sh; \
- fi
-.PHONY: dist-dir
+ @$(POST_INSTALL)
+ @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
+ done; \
+ else : ; fi
+install-man:
-subdir = doc
-Makefile: ../config.status Makefile.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+ maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
-#../config.status: ../configure
-# cd .. ; $(SHELL) config.status --recheck
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic dist-info \
+ distclean distclean-generic distdir dvi dvi-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-aminfo \
+ maintainer-clean-generic mostlyclean mostlyclean-aminfo \
+ mostlyclean-generic uninstall uninstall-am uninstall-info-am
+
+
+doc ps: $(POSTSCRIPTS)
+.PHONY: doc ps
+
+pdf: $(PDFS)
+.PHONY: pdf
+
+txt: $(TXTS)
+.PHONY: txt
+
+dvi: cvs.dvi cvsclient.dvi
+.PHONY: dvi
+
+cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
+cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
+
+# These targets need to be very specific so that the other PDFs get generated correctly.
+# If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf will be
+# generated from the generic target and the PS source, which contains less information
+# than the usual texinfo source.
+cvs-paper.pdf: cvs-paper.ps
+ $(ROFF) -t -p -ms -Tps $< > $@-t
+ mv $@-t $@
+
+cvs-paper.ps: cvs-paper.ms
+ $(PS2PDF) $< $@
+
+# texinfo based targets automake neglects to include
+.texinfo.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+.txi.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+.texi.pdf:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
+
+.texinfo.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+.txi.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+.texi.aux:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texinfo.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+.txi.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+.texi.txt:
+ TEXINPUTS=$(srcdir):$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
+
+# - CVSvn.texi needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+# - Of the next three targets, only the next one or the following two should be
+# enabled, not all three
+# - This is the target for systems without the BSD VPATH bug in make or with
+# $(srcdir) = $(builddir)
+@MAKE_TARGETS_IN_VPATH_TRUE@CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
+@MAKE_TARGETS_IN_VPATH_TRUE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
+@MAKE_TARGETS_IN_VPATH_TRUE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
+# - The next two targets are a workaround for the fact that some BSD makes
+# don't look through VPATH for targets, but only for sources.
+# - They should be disabled on systems without the bug and in environments
+# where $(srcdir) = $(builddir)
+@MAKE_TARGETS_IN_VPATH_FALSE@CVSvn.texi: $(srcdir)/CVSvn.texi
+@MAKE_TARGETS_IN_VPATH_FALSE@ # use cat so the time stamp gets set properly
+@MAKE_TARGETS_IN_VPATH_FALSE@ cat $(srcdir)/CVSvn.texi >$@
+@MAKE_TARGETS_IN_VPATH_FALSE@$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
+@MAKE_TARGETS_IN_VPATH_FALSE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
+@MAKE_TARGETS_IN_VPATH_FALSE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
-#../configure: ../configure.in
-# cd $(top_srcdir) ; autoconf
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/cvs/doc/cvs.texinfo b/contrib/cvs/doc/cvs.texinfo
index 8d5de53ade45..82ccea04793e 100644
--- a/contrib/cvs/doc/cvs.texinfo
+++ b/contrib/cvs/doc/cvs.texinfo
@@ -39,7 +39,7 @@
@setfilename cvs.info
@include CVSvn.texi
-@settitle CVS---Concurrent Versions System
+@settitle CVS---Concurrent Versions System v@value{CVSVN}
@setchapternewpage odd
@c -- TODO list:
@@ -1100,13 +1100,13 @@ particular program to run with the ability to perform
operations which the caller of the program could not.
For example, the set user ID (setuid) or set group ID
(setgid) features of unix or the installed image
-feature of VMS. CVS was not written to use such
-features and therefore attempting to install CVS in
+feature of VMS. @sc{cvs} was not written to use such
+features and therefore attempting to install @sc{cvs} in
this fashion will provide protection against only
accidental lapses; anyone who is trying to circumvent
the measure will be able to do so, and depending on how
you have set it up may gain access to more than just
-CVS. You may wish to instead consider pserver. It
+@sc{cvs}. You may wish to instead consider pserver. It
shares some of the same attributes, in terms of
possibly providing a false sense of security or opening
security holes wider than the ones you are trying to
@@ -1126,14 +1126,14 @@ presumably future operating systems in this family.
Some of the following might apply to OS/2 but I'm not
sure).
-If you are using local CVS and the repository is on a
+If you are using local @sc{cvs} and the repository is on a
networked file system which is served by the Samba SMB
server, some people have reported problems with
permissions. Enabling WRITE=YES in the samba
configuration is said to fix/workaround it.
Disclaimer: I haven't investigated enough to know the
implications of enabling that option, nor do I know
-whether there is something which CVS could be doing
+whether there is something which @sc{cvs} could be doing
differently in order to avoid the problem. If you find
something out, please let us know as described in
@ref{BUGS}.
@@ -1205,9 +1205,9 @@ attributes for that file.
and @var{filename} empty, to specify default attributes
to be used for newly added files.
-Other @var{ent-type} are reserved for future expansion. CVS 1.9 and older
+Other @var{ent-type} are reserved for future expansion. @sc{cvs} 1.9 and older
will delete them any time it writes file attributes.
-CVS 1.10 and later will preserve them.
+@sc{cvs} 1.10 and later will preserve them.
Note that the order of the lines is not significant;
a program writing the fileattr file may
@@ -1220,7 +1220,7 @@ don't handle a NUL character in any of the fields, but
implementations are encouraged to allow it.
By convention, @var{attrname} starting with @samp{_} is for an attribute given
-special meaning by CVS; other @var{attrname}s are for user-defined attributes
+special meaning by @sc{cvs}; other @var{attrname}s are for user-defined attributes
(or will be, once implementations start supporting user-defined attributes).
Builtin attributes:
@@ -1277,10 +1277,10 @@ there must be a single tab character there and no spaces.
@cindex #cvs.wfl, technical details
@cindex #cvs.lock, technical details
@cindex Locks, cvs, technical details
-For an introduction to CVS locks focusing on
+For an introduction to @sc{cvs} locks focusing on
user-visible behavior, see @ref{Concurrency}. The
following section is aimed at people who are writing
-tools which want to access a CVS repository without
+tools which want to access a @sc{cvs} repository without
interfering with other tools acessing the same
repository. If you find yourself confused by concepts
described here, like @dfn{read lock}, @dfn{write lock},
@@ -1291,8 +1291,8 @@ operating systems or databases.
Any file in the repository with a name starting
with @file{#cvs.rfl.} is a read lock. Any file in
the repository with a name starting with
-@file{#cvs.wfl} is a write lock. Old versions of CVS
-(before CVS 1.5) also created files with names starting
+@file{#cvs.wfl} is a write lock. Old versions of @sc{cvs}
+(before @sc{cvs} 1.5) also created files with names starting
with @file{#cvs.tfl}, but they are not discussed here.
The directory @file{#cvs.lock} serves as a master
lock. That is, one must obtain this lock first before
@@ -1436,7 +1436,7 @@ convention for the system in question. This means that
working directories are not portable between systems
with differing conventions for storing text files.
This is intentional, on the theory that the files being
-managed by CVS probably will not be portable between
+managed by @sc{cvs} probably will not be portable between
such systems either.
@table @file
@@ -1861,7 +1861,7 @@ another system, the size of those files is the
approximate initial size of your repository, or if you
are starting without any version history, a rule of
thumb is to allow for the server approximately three
-times the size of the code to be under CVS for the
+times the size of the code to be under @sc{cvs} for the
repository (you will eventually outgrow this, but not
for a while). On the machines on which the developers
will be working, you'll want disk space for
@@ -1991,6 +1991,13 @@ isn't worth it.
@cindex Remote repositories
@cindex Client/Server Operation
@cindex Server, CVS
+@cindex Remote repositories, port specification
+@cindex Repositories, remote, port specification
+@cindex Client/Server Operation, port specification
+@cindex pserver (client/server connection method), port specification
+@cindex kserver (client/server connection method), port specification
+@cindex gserver (client/server connection method), port specification
+@cindex port, specifying for remote repositories
Your working copy of the sources can be on a
different machine than the repository. Using @sc{cvs}
@@ -2004,9 +2011,14 @@ repository is just like using a local one, except that
the format of the repository name is:
@example
-:@var{method}:@var{user}@@@var{hostname}:/path/to/repository
+:@var{method}:[[@var{user}][:@var{password}]@@]@var{hostname}[:[@var{port}]]/path/to/repository
@end example
+Specifying a password in the repository name is not recommended during
+checkout, since this will cause @sc{cvs} to store a cleartext copy of the
+password in each created directory. @code{cvs login} first instead
+(@pxref{Password authentication client}).
+
The details of exactly what needs to be set up depend
on how you are connecting to the server.
@@ -2134,7 +2146,7 @@ For information on disk space requirements, see
@subsection Connecting with rsh
@cindex rsh
-CVS uses the @file{rsh} protocol to perform these
+@sc{cvs} uses the @file{rsh} protocol to perform these
operations, so the remote user host needs to have a
@file{.rhosts} file which grants access to the local
user.
@@ -2181,7 +2193,7 @@ There is no need to edit @file{inetd.conf} or start a
@cindex rsh replacements (Kerberized, SSH, &c)
There are two access methods that you use in @code{CVSROOT}
for rsh. @code{:server:} specifies an internal rsh
-client, which is supported only by some CVS ports.
+client, which is supported only by some @sc{cvs} ports.
@code{:ext:} specifies an external rsh program. By
default this is @code{rsh} but you may set the
@code{CVS_RSH} environment variable to invoke another
@@ -2191,7 +2203,7 @@ something different). It must be a program which can
transmit data to and from the server without modifying
it; for example the Windows NT @code{rsh} is not
suitable since it by default translates between CRLF
-and LF. The OS/2 CVS port has a hack to pass @samp{-b}
+and LF. The OS/2 @sc{cvs} port has a hack to pass @samp{-b}
to @code{rsh} to get around this, but since this could
potentially cause problems for programs other than the
standard @code{rsh}, it may change in the future. If
@@ -2214,7 +2226,7 @@ the module @file{foo} in the repository
@file{faun.example.org}, you are ready to go:
@example
-cvs -d :ext:bach@@faun.example.org:/usr/local/cvsroot checkout foo
+cvs -d :ext:bach@@faun.example.org/usr/local/cvsroot checkout foo
@end example
(The @file{bach@@} can be omitted if the username is
@@ -2253,6 +2265,13 @@ permissions on the @file{$CVSROOT} and
authentication security}, for more details.
@cindex pserver (subcommand)
+@cindex Remote repositories, port specification
+@cindex Repositories, remote, port specification
+@cindex Client/Server Operation, port specification
+@cindex pserver (client/server connection method), port specification
+@cindex kserver (client/server connection method), port specification
+@cindex gserver (client/server connection method), port specification
+@cindex port, specifying for remote repositories
@cindex Password server, setting up
@cindex Authenticating server, setting up
@c FIXME: this isn't quite right regarding port
@@ -2264,7 +2283,9 @@ command @code{cvs pserver} when it receives a
connection on the right port. By default, the port
number is 2401; it would be different if your client
were compiled with @code{CVS_AUTH_PORT} defined to
-something else, though.
+something else, though. This can also be sepcified in the CVSROOT variable
+(@pxref{Remote repositories}) or overridden with the CVS_CLIENT_PORT
+environment variable (@pxref{Environment variables}).
If your @code{inetd} allows raw port numbers in
@file{/etc/inetd.conf}, then the following (all on a
@@ -2342,7 +2363,7 @@ The first line in the example will grant access to any
including an empty password. (This is typical for
sites granting anonymous read-only access; for
information on how to do the "read-only" part, see
-@xref{Read-only access}.)
+@ref{Read-only access}.)
The second and third lines will grant access to
@code{bach} and @code{spwang} if they supply their
@@ -2365,7 +2386,7 @@ repository, and give each developer their own line in
the @file{$CVSROOT/CVSROOT/passwd} file. The @sc{cvs}
username on each line would be different, but the
system username would be the same. The reason to have
-different @sc{cvs} usernames is that CVS will log their
+different @sc{cvs} usernames is that @sc{cvs} will log their
actions under those names: when @code{melissa} commits
a change to a project, the checkin is recorded in the
project's history under the name @code{melissa}, not
@@ -2401,7 +2422,7 @@ password, including the empty string. However, the
colon after the @sc{cvs} username is always necessary,
even if the password is empty.
-CVS can also fall back to use system authentication.
+@sc{cvs} can also fall back to use system authentication.
When authenticating a password, the server first checks
for the user in the @file{$CVSROOT/CVSROOT/passwd}
file. If it finds the user, it will use that entry for
@@ -2430,7 +2451,7 @@ rather than via @sc{cvs}. This is because of the
possible security risks of having the @file{passwd}
file checked out to people's working copies. If you do
want to include the @file{passwd} file in checkouts of
-@file{$CVSROOT/CVSROOT}, see @xref{checkoutlist}.
+@file{$CVSROOT/CVSROOT}, see @ref{checkoutlist}.
@c We might also suggest using the @code{htpasswd} command
@c from freely available web servers as well, but that
@@ -2448,32 +2469,39 @@ want to include the @file{passwd} file in checkouts of
@cindex :pserver:, setting up
To run a @sc{cvs} command on a remote repository via
the password-authenticating server, one specifies the
-@code{pserver} protocol, username, repository host, and
-path to the repository. For example:
+@code{pserver} protocol, optional username, repository host, an
+optional port number, and path to the repository. For example:
@example
-cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot checkout someproj
+cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj
@end example
or
@example
-CVSROOT=:pserver:bach@@faun.example.org:/usr/local/cvsroot
+CVSROOT=:pserver:bach@@faun.example.org:2401/usr/local/cvsroot
cvs checkout someproj
@end example
However, unless you're connecting to a public-access
repository (i.e., one where that username doesn't
-require a password), you'll need to @dfn{log in} first.
-Logging in verifies your password with the repository.
+require a password), you'll need to supply a password or @dfn{log in} first.
+Logging in verifies your password with the repository and stores it in a file.
It's done with the @code{login} command, which will
-prompt you interactively for the password:
+prompt you interactively for the password if you didn't supply one as part of
+@var{$CVSROOT}:
@example
cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot login
CVS password:
@end example
+or
+
+@example
+cvs -d :pserver:bach:p4ss30rd@@faun.example.org:/usr/local/cvsroot login
+@end example
+
After you enter the password, @sc{cvs} verifies it with
the server. If the verification succeeds, then that
combination of username, host, repository, and password
@@ -2683,8 +2711,8 @@ request encryption.
You need to edit @file{inetd.conf} on the server
machine to run @code{cvs kserver}. The client uses
port 1999 by default; if you want to use another port
-specify it in the @code{CVS_CLIENT_PORT} environment
-variable on the client.
+specify it in the @code{CVSROOT} (@pxref{Remote repositories})
+or the @code{CVS_CLIENT_PORT} environment variable on the client.
@cindex kinit
When you want to use @sc{cvs}, get a ticket in the
@@ -3348,7 +3376,7 @@ based on information such as the name of the program
and the version number of the release. For example,
one might take the name of the program, immediately
followed by the version number with @samp{.} changed to
-@samp{-}, so that CVS 1.9 would be tagged with the name
+@samp{-}, so that @sc{cvs} 1.9 would be tagged with the name
@code{cvs1-9}. If you choose a consistent convention,
then you won't constantly be guessing whether a tag is
@code{cvs-1-9} or @code{cvs1_9} or what. You might
@@ -3748,7 +3776,7 @@ discussion see @ref{Merging two revisions}.
@cindex Changes, copying between branches
@cindex Modifications, copying between branches
-CVS allows you to isolate changes onto a separate
+@sc{cvs} allows you to isolate changes onto a separate
line of development, known as a @dfn{branch}. When you
change files on a branch, those changes do not appear
on the main trunk or other branches.
@@ -4124,8 +4152,8 @@ no way to see how the tag was assigned yesterday).
@cindex -j (merging branches)
You can merge changes made on a branch into your working copy by giving
-the @samp{-j @var{branch}} flag to the @code{update} command. With one
-@samp{-j @var{branch}} option it merges the changes made between the
+the @samp{-j @var{branchname}} flag to the @code{update} subcommand. With one
+@samp{-j @var{branchname}} option it merges the changes made between the
point where the branch forked and newest revision on that branch (into
your working copy).
@@ -4172,7 +4200,7 @@ If your source files contain keywords (@pxref{Keyword substitution}),
you might be getting more conflicts than strictly necessary. See
@ref{Merging and keywords}, for information on how to avoid this.
-The @code{checkout} command also supports the @samp{-j @var{branch}} flag. The
+The @code{checkout} command also supports the @samp{-j @var{branchname}} flag. The
same effect as above could be achieved with this:
@example
@@ -4180,6 +4208,9 @@ $ cvs checkout -j R1fix mod
$ cvs commit -m "Included R1fix"
@end example
+It should be noted that @code{update -j @var{tagname}} will also work but may
+not produce the desired result. @xref{Merging adds and removals}, for more.
+
@node Merging more than once
@section Merging from a branch several times
@@ -4326,6 +4357,15 @@ After these commands are executed and a @samp{cvs commit} is done,
file @file{a} will be removed and file @file{d} added in the main branch.
@c (which was determined by trying it)
+Note that using a single static tag (@samp{-j @var{tagname}})
+rather than a dynamic tag (@samp{-j @var{branchname}}) to merge
+changes from a branch will usually not remove files which were removed on the
+branch since @sc{cvs} does not automatically add static tags to dead revisions.
+The exception to this rule occurs when
+a static tag has been attached to a dead revision manually. Use the branch tag
+to merge all changes from the branch or use two static tags as merge endpoints
+to be sure that all intended changes are propogated in the merge.
+
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@node Merging and keywords
@section Merging and keywords
@@ -4726,7 +4766,7 @@ When you commit the removal of the file, @sc{cvs}
records the fact that the file no longer exists. It is
possible for a file to exist on only some branches and
not on others, or to re-add another file with the same
-name later. CVS will correctly create or not create
+name later. @sc{cvs} will correctly create or not create
the file, based on the @samp{-r} and @samp{-D} options
specified to @code{checkout} or @code{update}.
@@ -5648,7 +5688,7 @@ details, assuming "cvs watch lock" and
CVS/Watched file? Or try to fit this into CVS/Entries somehow?
Cases: (1) file is checked out (unreserved or with watch on) by old
-version of CVS, now we do something with new one, (2) file is checked
+version of @sc{cvs}, now we do something with new one, (2) file is checked
out by new version, now we do something with old one.
Remote protocol would have a "Watched" analogous to "Mode". Of course
@@ -6235,12 +6275,12 @@ certain files are to be watched.
@cindex Read-only files, and watches
Specify that developers should run @code{cvs edit}
-before editing @var{files}. CVS will create working
+before editing @var{files}. @sc{cvs} will create working
copies of @var{files} read-only, to remind developers
to run the @code{cvs edit} command before working on
them.
-If @var{files} includes the name of a directory, CVS
+If @var{files} includes the name of a directory, @sc{cvs}
arranges to watch all files added to the corresponding
repository directory, and sets a default for files
added in the future; this allows the user to set
@@ -6261,7 +6301,7 @@ Do not create @var{files} read-only on checkout; thus,
developers will not be reminded to use @code{cvs edit}
and @code{cvs unedit}.
@ignore
-CVS will check out @var{files}
+@sc{cvs} will check out @var{files}
read-write as usual, unless other permissions override
due to the @code{PreservePermissions} option being
enabled in the @file{config} administrative file
@@ -6289,7 +6329,7 @@ command.
Add the current user to the list of people to receive notification of
work done on @var{files}.
-The @code{-a} option specifies what kinds of events CVS should notify
+The @code{-a} option specifies what kinds of events @sc{cvs} should notify
the user about. @var{action} is one of the following:
@table @code
@@ -6420,13 +6460,13 @@ source}), an operation which those systems call a
@cindex edit (subcommand)
@deffn Command {cvs edit} [options] files @dots{}
-Prepare to edit the working files @var{files}. CVS makes the
+Prepare to edit the working files @var{files}. @sc{cvs} makes the
@var{files} read-write, and notifies users who have requested
@code{edit} notification for any of @var{files}.
The @code{cvs edit} command accepts the same @var{options} as the
@code{cvs watch add} command, and establishes a temporary watch for the
-user on @var{files}; CVS will remove the watch when @var{files} are
+user on @var{files}; @sc{cvs} will remove the watch when @var{files} are
@code{unedit}ed or @code{commit}ted. If the user does not wish to
receive notifications, she should specify @code{-a none}.
@@ -6436,10 +6476,10 @@ watch} commands.
@ignore
@strong{Caution:} If the @code{PreservePermissions}
option is enabled in the repository (@pxref{config}),
-CVS will not change the permissions on any of the
+@sc{cvs} will not change the permissions on any of the
@var{files}. The reason for this change is to ensure
that using @samp{cvs edit} does not interfere with the
-ability to store file permissions in the CVS
+ability to store file permissions in the @sc{cvs}
repository.
@end ignore
@@ -6458,9 +6498,9 @@ the @code{cvs unedit} command.
@deffn Command {cvs unedit} [@code{-lR}] files @dots{}
Abandon work on the working files @var{files}, and revert them to the
-repository versions on which they are based. CVS makes those
+repository versions on which they are based. @sc{cvs} makes those
@var{files} read-only for which users have requested notification using
-@code{cvs watch on}. CVS notifies users who have requested @code{unedit}
+@code{cvs watch on}. @sc{cvs} notifies users who have requested @code{unedit}
notification for any of @var{files}.
The @var{files} and options are processed as for the
@@ -6666,7 +6706,7 @@ But as soon as you export the files from your
development environment it becomes harder to identify
which revisions they are.
-CVS can use a mechanism known as @dfn{keyword
+@sc{cvs} can use a mechanism known as @dfn{keyword
substitution} (or @dfn{keyword expansion}) to help
identifying the files. Embedded strings of the form
@code{$@var{keyword}$} and
@@ -7046,7 +7086,7 @@ command to track third-party sources, the @dfn{vendor
tag} and @dfn{release tags} are useful. The
@dfn{vendor tag} is a symbolic name for the branch
(which is always 1.1.1, unless you use the @samp{-b
-@var{branch}} flag---@xref{Multiple vendor branches}.). The
+@var{branch}} flag---see @ref{Multiple vendor branches}.). The
@dfn{release tags} are symbolic names for a particular
release, such as @samp{FSF_0_04}.
@@ -7189,7 +7229,7 @@ a project where many different people and teams are
modifying the software. There are a variety of ways to
handle this, but in some cases you have a bunch of
source trees lying around and what you want to do more
-than anything else is just to all put them in CVS so
+than anything else is just to all put them in @sc{cvs} so
that you at least have them in one place.
For handling situations in which there may be more than
@@ -7210,7 +7250,7 @@ $ cvs import -b 1.1.3 dir BLUE BLUE_1-5
@end example
Note that if your vendor tag does not match your
-@samp{-b} option, CVS will not detect this case! For
+@samp{-b} option, @sc{cvs} will not detect this case! For
example,
@example
@@ -7221,7 +7261,7 @@ $ cvs import -b 1.1.3 dir RED RED_1-0
Be careful; this kind of mismatch is sure to sow
confusion or worse. I can't think of a useful purpose
for the ability to specify a mismatch here, but if you
-discover such a use, don't. CVS is likely to make this
+discover such a use, don't. @sc{cvs} is likely to make this
an error in some future release.
@c Probably should say more about the semantics of
@@ -7338,20 +7378,20 @@ is Odin (see
@cindex Hard links
@cindex Symbolic links
-In normal circumstances, CVS works only with regular
+In normal circumstances, @sc{cvs} works only with regular
files. Every file in a project is assumed to be
persistent; it must be possible to open, read and close
-them; and so on. CVS also ignores file permissions and
+them; and so on. @sc{cvs} also ignores file permissions and
ownerships, leaving such issues to be resolved by the
developer at installation time. In other words, it is
not possible to "check in" a device into a repository;
-if the device file cannot be opened, CVS will refuse to
+if the device file cannot be opened, @sc{cvs} will refuse to
handle it. Files also lose their ownerships and
permissions during repository transactions.
@ignore
If the configuration variable @code{PreservePermissions}
-(@pxref{config}) is set in the repository, CVS will
+(@pxref{config}) is set in the repository, @sc{cvs} will
save the following file characteristics in the
repository:
@@ -7364,30 +7404,30 @@ repository:
@end itemize
Using the @code{PreservePermissions} option affects the
-behavior of CVS in several ways. First, some of the
-new operations supported by CVS are not accessible to
+behavior of @sc{cvs} in several ways. First, some of the
+new operations supported by @sc{cvs} are not accessible to
all users. In particular, file ownership and special
file characteristics may only be changed by the
superuser. When the @code{PreservePermissions}
configuration variable is set, therefore, users will
-have to be `root' in order to perform CVS operations.
+have to be `root' in order to perform @sc{cvs} operations.
-When @code{PreservePermissions} is in use, some CVS
+When @code{PreservePermissions} is in use, some @sc{cvs}
operations (such as @samp{cvs status}) will not
recognize a file's hard link structure, and so will
emit spurious warnings about mismatching hard links.
-The reason is that CVS's internal structure does not
+The reason is that @sc{cvs}'s internal structure does not
make it easy for these operations to collect all the
necessary data about hard links, so they check for file
conflicts with inaccurate data.
-A more subtle difference is that CVS considers a file
+A more subtle difference is that @sc{cvs} considers a file
to have changed only if its contents have changed
(specifically, if the modification time of the working
file does not match that of the repository's file).
Therefore, if only the permissions, ownership or hard
linkage have changed, or if a device's major or minor
-numbers have changed, CVS will not notice. In order to
+numbers have changed, @sc{cvs} will not notice. In order to
commit such a change to the repository, you must force
the commit with @samp{cvs commit -f}. This also means
that if a file's permissions have changed and the
@@ -7395,7 +7435,7 @@ repository file is newer than the working copy,
performing @samp{cvs update} will silently change the
permissions on the working copy.
-Changing hard links in a CVS repository is particularly
+Changing hard links in a @sc{cvs} repository is particularly
delicate. Suppose that file @file{foo} is linked to
file @file{old}, but is later relinked to file
@file{new}. You can wind up in the unusual situation
@@ -7416,7 +7456,7 @@ It is worth noting that only regular files may
be merged, for reasons that hopefully are obvious. If
@samp{cvs update} or @samp{cvs checkout -j} attempts to
merge a symbolic link with a regular file, or two
-device files for different kinds of devices, CVS will
+device files for different kinds of devices, @sc{cvs} will
report a conflict and refuse to perform the merge. At
the same time, @samp{cvs diff} will not report any
differences between these files, since no meaningful
@@ -7522,7 +7562,7 @@ the documentation instead.
@appendixsec CVS's exit status
@cindex Exit status, of CVS
-CVS can indicate to the calling environment whether it
+@sc{cvs} can indicate to the calling environment whether it
succeeded or failed by setting its @dfn{exit status}.
The exact way of testing the exit status will vary from
one operating system to another. For example in a unix
@@ -7530,7 +7570,7 @@ shell script the @samp{$?} variable will be 0 if the
last command returned a successful exit status, or
greater than 0 if the exit status indicated failure.
-If CVS is successful, it returns a successful status;
+If @sc{cvs} is successful, it returns a successful status;
if there is an error, it prints an error message and
returns a failure status. The one exception to this is
the @code{cvs diff} command. It will return a
@@ -7917,7 +7957,7 @@ are:
@c bizarre and it has lots of gratuitous multiple ways
@c to specify the same thing.
-There are a lot more ISO8601 date formats, and CVS
+There are a lot more ISO8601 date formats, and @sc{cvs}
accepts many of them, but you probably don't want to
hear the @emph{whole} long story :-).
@@ -8320,7 +8360,7 @@ If you are short on disc this option might help you.
But think twice before using it---there is no way short
of restoring the latest backup to undo this command!
If you delete different revisions than you planned,
-either due to carelessness or (heaven forbid) a CVS
+either due to carelessness or (heaven forbid) a @sc{cvs}
bug, there is no opportunity to correct the error
before the revisions are deleted. It probably would be
a good idea to experiment on a copy of the repository
@@ -8331,7 +8371,7 @@ Specify @var{range} in one of the following ways:
@table @code
@item @var{rev1}::@var{rev2}
Collapse all revisions between rev1 and rev2, so that
-CVS only stores the differences associated with going
+@sc{cvs} only stores the differences associated with going
from rev1 to rev2, not intermediate steps. For
example, after @samp{-o 1.3::1.5} one can retrieve
revision 1.3, revision 1.5, or the differences to get
@@ -8472,16 +8512,11 @@ using this option with @sc{cvs}. Unlock the revision
with number @var{rev}. If a branch is given, unlock
the latest revision on that branch. If @var{rev} is
omitted, remove the latest lock held by the caller.
-Normally, only the locker of a revision may unlock it.
-Somebody else unlocking a revision breaks the lock.
-This causes a mail message to be sent to the original
-locker. The message contains a commentary solicited
-from the breaker. The commentary is terminated by
-end-of-file or by a line containing @code{.} by itself.
+Normally, only the locker of a revision may unlock it;
+somebody else unlocking a revision breaks the lock.
+This causes the original locker to be sent a @code{commit}
+notification (@pxref{Getting Notified}).
There can be no space between @samp{-u} and its argument.
-@c In the future "send mail" probably will go via the
-@c CVSROOT/notify mechanism. But for now it means
-@c whatever it means to "rcs".
@item -V@var{n}
In previous versions of @sc{cvs}, this option meant to
@@ -8664,7 +8699,7 @@ There is an important exception, however. It is very
convenient when checking out a single item to have the
output appear in a directory that doesn't contain empty
intermediate directories. In this case @emph{only},
-CVS tries to ``shorten'' pathnames to avoid those empty
+@sc{cvs} tries to ``shorten'' pathnames to avoid those empty
directories.
For example, given a module @samp{foo} that contains
@@ -9712,19 +9747,31 @@ range formats:
Revisions @var{rev1} to @var{rev2} (which must be on
the same branch).
+@item @var{rev1}::@var{rev2}
+Revisions between, but not including, @var{rev1} and @var{rev2}.
+
@item :@var{rev}
Revisions from the beginning of the branch up to
and including @var{rev}.
+@item ::@var{rev}
+Revisions from the beginning of the branch up to,
+but not including, @var{rev}.
+
@item @var{rev}:
Revisions starting with @var{rev} to the end of the
branch containing @var{rev}.
+@item @var{rev}:
+Revisions starting just after @var{rev} to the end of the
+branch containing @var{rev}.
+
@item @var{branch}
An argument that is a branch means all revisions on
that branch.
@item @var{branch1}:@var{branch2}
+@itemx @var{branch1}::@var{branch2}
A range of branches means all revisions
on the branches in that range.
@@ -9862,7 +9909,7 @@ you should probably not use @samp{-u}.
Expand keywords according to the rules current in
@sc{rcs} version @var{vn} (the expansion format changed with
@sc{rcs} version 5). Note that this option is no
-longer accepted. CVS will always expand keywords the
+longer accepted. @sc{cvs} will always expand keywords the
way that @sc{rcs} version 5 does.
@end table
@@ -10155,6 +10202,11 @@ ancestor revision is the common ancestor of the
revision which the working directory is based on, and
the revision specified in the @samp{-j} option.
+Note that using a single @samp{-j @var{tagname}} option rather than
+@samp{-j @var{branchname}} to merge changes from a branch will
+often not remove files which were removed on the branch.
+@xref{Merging adds and removals}, for more.
+
In addition, each @samp{-j} option can contain an optional
date specification which, when used with branches, can
limit the chosen revision to one within a specific
@@ -10624,7 +10676,7 @@ behavior}.
@end table
@item export [@var{options}] @var{modules}@dots{}
-Export files from CVS. See @ref{export}.
+Export files from @sc{cvs}. See @ref{export}.
@table @code
@item -D @var{date}
@@ -10725,7 +10777,7 @@ options}.
@end table
@item import [@var{options}] @var{repository} @var{vendor-tag} @var{release-tags}@dots{}
-Import files into CVS, using vendor branches. See
+Import files into @sc{cvs}, using vendor branches. See
@ref{import}.
@table @code
@@ -10754,7 +10806,7 @@ More wrappers. See @ref{import options}.
@end table
@item init
-Create a CVS repository if it doesn't exist. See
+Create a @sc{cvs} repository if it doesn't exist. See
@ref{Creating a repository}.
@item log [@var{options}] [@var{files}@dots{}]
@@ -11034,6 +11086,7 @@ More wrappers. See @ref{import options}.
@end table
@item version
+@cindex version (subcommand)
Display the version of @sc{cvs} being used. If the repository
is remote, display both the client and server versions.
@@ -11457,7 +11510,7 @@ For checkout, rtag, and export, the program is server-based, and as such the
following applies:-
If using remote access methods (pserver, ext, etc.),
-CVS will execute this program on the server from a temporary
+@sc{cvs} will execute this program on the server from a temporary
directory. The path is searched for this program.
If using ``local access'' (on a local or remote NFS filesystem, i.e.
@@ -11527,7 +11580,7 @@ means that @code{cvs update} will refuse to merge
files, as it also does for files specified as binary
with @samp{-kb} (but if the file is specified as
binary, there is no need to specify @samp{-m 'COPY'}).
-CVS will provide the user with the
+@sc{cvs} will provide the user with the
two versions of the files, and require the user using
mechanisms outside @sc{cvs}, to insert any necessary
changes. @strong{WARNING}: do not use @code{COPY} with
@@ -11608,11 +11661,11 @@ result of this filter will be a file in the users directory
that they can work on as they normally would.
Note that the @samp{-t}/@samp{-f} features do not
-conveniently handle one portion of CVS's operation:
-determining when files are modified. CVS will still
+conveniently handle one portion of @sc{cvs}'s operation:
+determining when files are modified. @sc{cvs} will still
want a file (or directory) to exist, and it will use
its modification time to determine whether a file is
-modified. If CVS erroneously thinks a file is
+modified. If @sc{cvs} erroneously thinks a file is
unmodified (for example, a directory is unchanged but
one of the files within it is changed), you can force
it to check in the file anyway by specifying the
@@ -12540,6 +12593,21 @@ All other strings containing @samp{$} are reserved;
there is no way to quote a @samp{$} character so that
@samp{$} represents itself.
+Environment variables passed to administrative files are:
+
+@table @code
+@cindex environment variables, passed to administrative files
+@c FIXME: should document USER, LOGNAME, and whatever else is
+@c available both in internal variables and environment variables.
+
+@item CVS_USER
+The @sc{cvs}-specific username provided by the user, if it
+can be provided (currently just for the pserver access
+method), and to the empty string otherwise. (CVS_USER
+and USER may differ when @file{$CVSROOT/CVSROOT/passwd}
+is used to map cvs usernames to system usernames.)
+@end table
+
@node config
@appendixsec The CVSROOT/config configuration file
@@ -12609,24 +12677,24 @@ storage}).
@cindex LockDir, in CVSROOT/config
@item LockDir=@var{directory}
-Put CVS lock files in @var{directory} rather than
+Put @sc{cvs} lock files in @var{directory} rather than
directly in the repository. This is useful if you want
to let users read from the repository while giving them
write access only to @var{directory}, not to the
repository. You need to create @var{directory}, but
-CVS will create subdirectories of @var{directory} as it
-needs them. For information on CVS locks, see
+@sc{cvs} will create subdirectories of @var{directory} as it
+needs them. For information on @sc{cvs} locks, see
@ref{Concurrency}.
@c Mention this in Compatibility section?
Before enabling the LockDir option, make sure that you
-have tracked down and removed any copies of CVS 1.9 or
+have tracked down and removed any copies of @sc{cvs} 1.9 or
older. Such versions neither support LockDir, nor will
give an error indicating that they don't support it.
The result, if this is allowed to happen, is that some
-CVS users will put the locks one place, and others will
+@sc{cvs} users will put the locks one place, and others will
put them another place, and therefore the repository
-could become corrupted. CVS 1.10 does not support
+could become corrupted. @sc{cvs} 1.10 does not support
LockDir but it will print a warning if run on a
repository with LockDir enabled.
@@ -12704,7 +12772,7 @@ programs it uses.
@cindex HOMEDRIVE, environment variable
@item $HOMEDRIVE
Used to locate the directory where the @file{.cvsrc}
-file, and other such files, are searched. On Unix, CVS
+file, and other such files, are searched. On Unix, @sc{cvs}
just checks for @code{HOME}. On Windows NT, the system will
set @code{HOMEDRIVE}, for example to @samp{d:} and @code{HOMEPATH},
for example to @file{\joe}. On Windows 95, you'll
@@ -12714,7 +12782,7 @@ probably need to set @code{HOMEDRIVE} and @code{HOMEPATH} yourself.
@cindex CVS_RSH, environment variable
@item $CVS_RSH
-Specifies the external program which CVS connects with,
+Specifies the external program which @sc{cvs} connects with,
when @code{:ext:} access method is specified.
@pxref{Connecting via rsh}.
@@ -12732,8 +12800,9 @@ login server}. Default value is @file{$HOME/.cvspass}.
@item $CVS_CLIENT_PORT
Used in client-server mode when accessing the server
-via Kerberos.
-@pxref{Kerberos authenticated}
+via Kerberos, GSSAPI, or @sc{cvs}'s password authentication if the port is not
+specified in $CVSROOT.
+@pxref{Remote repositories}
@cindex CVS_RCMD_PORT, environment variable
@item $CVS_RCMD_PORT
@@ -13015,7 +13084,7 @@ here for the benefit of @sc{cvs} 1.9 and older.
@item cvs [checkout aborted]: cannot rename file @var{file} to CVS/,,@var{file}: Invalid argument
This message has been reported as intermittently
-happening with CVS 1.9 on Solaris 2.5. The cause is
+happening with @sc{cvs} 1.9 on Solaris 2.5. The cause is
unknown; if you know more about what causes it, let us
know as described in @ref{BUGS}.
@@ -13030,7 +13099,7 @@ client at all, you probably forgot to specify
@code{:local:}, as described in @ref{Repository}.
@item ci: @var{file},v: bad diff output line: Binary files - and /tmp/T2a22651 differ
-CVS 1.9 and older will print this message
+@sc{cvs} 1.9 and older will print this message
when trying to check in a binary file if
@sc{rcs} is not correctly installed. Re-read the
instructions that came with your @sc{rcs} distribution
@@ -13040,13 +13109,13 @@ version of @sc{cvs}, which checks in files itself
rather than via @sc{rcs}.
@item cvs checkout: could not check out @var{file}
-With CVS 1.9, this can mean that the @code{co} program
+With @sc{cvs} 1.9, this can mean that the @code{co} program
(part of @sc{rcs}) returned a failure. It should be
preceded by another error message, however it has been
observed without another error message and the cause is
-not well-understood. With the current version of CVS,
+not well-understood. With the current version of @sc{cvs},
which does not run @code{co}, if this message occurs
-without another error message, it is definitely a CVS
+without another error message, it is definitely a @sc{cvs}
bug (@pxref{BUGS}).
@c My current suspicion is that the RCS in the rcs (not
@c cvs/winnt/rcs57nt.zip) directory on the _Practical_
@@ -13056,15 +13125,15 @@ bug (@pxref{BUGS}).
@item cvs [login aborted]: could not find out home directory
This means that you need to set the environment
-variables that CVS uses to locate your home directory.
+variables that @sc{cvs} uses to locate your home directory.
See the discussion of @code{HOME}, @code{HOMEDRIVE}, and @code{HOMEPATH} in
@ref{Environment variables}.
@item cvs update: could not merge revision @var{rev} of @var{file}: No such file or directory
-CVS 1.9 and older will print this message if there was
+@sc{cvs} 1.9 and older will print this message if there was
a problem finding the @code{rcsmerge} program. Make
sure that it is in your @code{PATH}, or upgrade to a
-current version of CVS, which does not require
+current version of @sc{cvs}, which does not require
an external @code{rcsmerge} program.
@item cvs [update aborted]: could not patch @var{file}: No such file or directory
@@ -13150,7 +13219,7 @@ see @ref{modules}.
@c for this message.
@item missing author
Typically this can happen if you created an RCS file
-with your username set to empty. CVS will, bogusly,
+with your username set to empty. @sc{cvs} will, bogusly,
create an illegal RCS file with no value for the author
field. The solution is to make sure your username is
set to a non-empty value and re-create the RCS file.
@@ -13177,11 +13246,11 @@ this check; see @ref{Common options}.
@item *PANIC* administration files missing
This typically means that there is a directory named
-CVS but it does not contain the administrative files
-which CVS puts in a CVS directory. If the problem is
+@sc{cvs} but it does not contain the administrative files
+which @sc{cvs} puts in a CVS directory. If the problem is
that you created a CVS directory via some mechanism
-other than CVS, then the answer is simple, use a name
-other than CVS. If not, it indicates a CVS bug
+other than @sc{cvs}, then the answer is simple, use a name
+other than @sc{cvs}. If not, it indicates a @sc{cvs} bug
(@pxref{BUGS}).
@item rcs error: Unknown option: -x,v/
@@ -13242,7 +13311,7 @@ See @ref{Connection}.
This means that someone else has committed a change to
that file since the last time that you did a @code{cvs
update}. So before proceeding with your @code{cvs
-commit} you need to @code{cvs update}. CVS will merge
+commit} you need to @code{cvs update}. @sc{cvs} will merge
the changes that you made and the changes that the
other person made. If it does not detect any conflicts
it will report @samp{M @var{file}} and you are ready
@@ -13276,9 +13345,9 @@ non-unix rsh versions, which does not by default
provide a transparent data stream. In such cases you
probably want to try @samp{:server:} instead of
@samp{:ext:}. If @var{text} is something else, this
-may signify a problem with your CVS server.
+may signify a problem with your @sc{cvs} server.
Double-check your installation against the instructions
-for setting up the CVS server.
+for setting up the @sc{cvs} server.
@c FIXCVS: should be printing CR as \r or \015 or some
@c such, probably.
@@ -13338,6 +13407,18 @@ directions given for :ext:.
@cindex :pserver:, troubleshooting
@item :pserver:
+Errors along the lines of "connection refused" typically indicate
+that inetd isn't even listening for connections on port 2401
+whereas errors like "connection reset by peer" or "recv() from
+server: EOF" typically indicate that inetd is listening for
+connections but is unable to start @sc{cvs} (this is frequently
+caused by having an incorrect path in @file{inetd.conf}).
+"unrecognized auth response" errors are caused by a bad command
+line in @file{inetd.conf}, typically an invalid option or forgetting
+to put the @samp{pserver} command at the end of the line.
+Another less common problem is invisible control characters that
+your editor "helpfully" added without you noticing.
+
One good debugging tool is to "telnet servername
2401". After connecting, send any text (for example
"foo" followed by return). If @sc{cvs} is working
@@ -13347,7 +13428,32 @@ correctly, it will respond with
cvs [pserver aborted]: bad auth protocol start: foo
@end example
-If this fails to work, then make sure inetd is working
+If instead you get:
+
+@example
+Usage: cvs [cvs-options] command [command-options-and-arguments]
+...
+@end example
+
+then you're missing the @samp{pserver} command at the end of the
+line in @file{inetd.conf}; check to make sure that the entire command
+is on one line and that it's complete.
+
+Likewise, if you get something like:
+
+@example
+Unknown command: `pserved'
+
+CVS commands are:
+ add Add a new file/directory to the repository
+...
+@end example
+
+then you've misspelled @samp{pserver} in some way. If it isn't
+obvious, check for invisible control characters (particularly
+carriage returns) in @file{inetd.conf}.
+
+If it fails to work at all, then make sure inetd is working
right. Change the invocation in @file{inetd.conf} to run the
echo program instead of cvs. For example:
@@ -13379,12 +13485,7 @@ cvs server: cannot open /root/.cvsignore: Permission denied
cvs [server aborted]: can't chdir(/root): Permission denied
@end example
-then either you haven't specified @samp{-f} in @file{inetd.conf}
-or your system is setting the @code{HOME} environment variable
-for programs being run by inetd. In the latter case, you can either
-have inetd run a shell script that unsets @code{HOME} and then runs
-@sc{cvs}, or you can use @code{env} to run @sc{cvs} with a pristine
-environment.
+then you probably haven't specified @samp{-f} in @file{inetd.conf}.
If you can connect successfully for a while but then can't,
you've probably hit inetd's rate limit.
@@ -13408,7 +13509,7 @@ On Windows, if there is a 30 second or so delay when
you run a @sc{cvs} command, it may mean that you have
your home directory set to @file{C:/}, for example (see
@code{HOMEDRIVE} and @code{HOMEPATH} in
-@ref{Environment variables}). CVS expects the home
+@ref{Environment variables}). @sc{cvs} expects the home
directory to not end in a slash, for example @file{C:}
or @file{C:\cvs}.
@c FIXCVS: CVS should at least detect this and print an
@@ -13490,7 +13591,7 @@ something about as well as problems with @sc{cvs} itself.
@item
If you want someone to help you and fix bugs that you
report, there are companies which will do that for a
-fee. Two such companies are:
+fee. One such company is:
@cindex Signum Support
@cindex Support, getting CVS support
diff --git a/contrib/cvs/doc/cvsclient.texi b/contrib/cvs/doc/cvsclient.texi
index 5ba7ed6b4eb2..b81a7736c560 100644
--- a/contrib/cvs/doc/cvsclient.texi
+++ b/contrib/cvs/doc/cvsclient.texi
@@ -484,7 +484,8 @@ in use, or sticks to a common subset.
The protocol contains times and dates in various places.
For the @samp{-D} option to the @code{annotate}, @code{co}, @code{diff},
-@code{export}, @code{history}, @code{rdiff}, @code{rtag}, @code{tag},
+@code{export}, @code{history}, @code{rannotate}, @code{rdiff},
+@code{rtag}, @code{tag},
and @code{update} requests, the server should support two formats:
@example
@@ -495,7 +496,8 @@ and @code{update} requests, the server should support two formats:
The former format is preferred; the latter however is sent by the CVS
command line client (versions 1.5 through at least 1.9).
-For the @samp{-d} option to the @code{log} request, servers should at
+For the @samp{-d} option to the @code{log} and @code{rlog} requests,
+servers should at
least support RFC 822/1123 format. Clients are encouraged to use this
format too (the command line CVS client, version 1.10 and older, just passed
along the date format specified by the user, however).
@@ -1160,12 +1162,14 @@ and send it in a future @code{Entry} request. Note that the entries
line in the @code{Created} response must indicate whether the file is
binary or text, so the client can create it correctly.
-@item rdiff \n
+@item rannotate \n
+@itemx rdiff \n
+@itemx rlog \n
@itemx rtag \n
Response expected: yes. Actually do a cvs command. This uses any
previous @code{Argument} requests, if they have been sent. The client
should not send @code{Directory}, @code{Entry}, or @code{Modified}
-requests for this command; they are not used. Arguments to these
+requests for these commands; they are not used. Arguments to these
commands are module names, as described for @code{co}.
@item init @var{root-name} \n
diff --git a/contrib/cvs/install-sh b/contrib/cvs/install-sh
index 402d456bd151..e9de23842dcd 100755
--- a/contrib/cvs/install-sh
+++ b/contrib/cvs/install-sh
@@ -1,16 +1,27 @@
#!/bin/sh
#
# install - install a program, script, or datafile
-# This comes from X11R5.
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-#
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
# set DOITPROG to echo to test this script
@@ -30,7 +41,7 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-tranformbasename=""
+transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
@@ -107,6 +118,7 @@ if [ x"$dir_arg" != x ]; then
if [ -d $dst ]; then
instcmd=:
+ chmodcmd=""
else
instcmd=mkdir
fi
diff --git a/contrib/cvs/lib/ChangeLog b/contrib/cvs/lib/ChangeLog
index 102ca4cf4efe..107445d779cb 100644
--- a/contrib/cvs/lib/ChangeLog
+++ b/contrib/cvs/lib/ChangeLog
@@ -1,3 +1,69 @@
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+
+2001-04-02 Derek Price <dprice@collab.net>
+ for Alon Ziv <alonz@zapper.com>
+
+ * getdate.y: Add a declaration for yyparse().
+
+ * getdate.c: Regenerated.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2001-02-20 Derek Price <derek.price@openavenue.com>
+
+ * xgssapi.h: New file to perform GSSAPI include magic.
+ * Makefile.am (EXTRA_DIST): Add xgssapi.h.
+
+ * Makefile.in: Regenerated.
+
+2001-02-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (libcvs_a_SOURCES): Add xtime.h & xselect.h.
+ * Makefile.in: Regenerated.
+ * getdate.y: Include xtime.h.
+ * getdate.c: Regenerated.
+ * system.h: Include xtime.h.
+ * xtime.h: New file to do include magic for time functions.
+ * xselect.h: New file to do select include magic.
+
+2001-02-06 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+ Shawn Smith <Shawn_Smith@notes.ymp.gov>
+
+ * system.h: definitions of CVS_OPENDIR, CVS_READDIR, & CVS_CLOSEDIR
+ provided here in support of changes to handle VMS DEC C 5.7
+ {open,read,close}dir problems. Check today's entry in the vms subdir
+ for more.
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+
+ * rename.c: replace calls to unlink() with CVS_UNLINK() for VMS
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (INCLUDES): Fixed typo
+ * Makefile.in: Regenerated
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (INCLUDES): Added $(top_srcdir)/src
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: Added .deps directory and alphabetized
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+
+2000-11-15 Derek Price <derek.price@openavenue.com>
+
+ * system.h: Added CVS_FDOPEN to conform to CVS_FOPEN precedent
+
2000-07-10 Larry Jones <larry.jones@sdrc.com>
* savecwd.c: #include <sys/types.h> before <fcntl.h>.
diff --git a/contrib/cvs/lib/Makefile.am b/contrib/cvs/lib/Makefile.am
new file mode 100644
index 000000000000..5984fcf0c667
--- /dev/null
+++ b/contrib/cvs/lib/Makefile.am
@@ -0,0 +1,88 @@
+## Process this file with automake to produce Makefile.in
+# Makefile for library files used by GNU CVS.
+# Copyright (C) 1986, 1988-1994, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# For now we need to include $(top_srcdir)/src because some systems
+# (at least 'AIX rioscpu2 3 4 000030498200',
+# 'HP-UX hp60 B.10.20 A 9000/770 hp60 two-user license', &
+# 'IRIX64 sgiop110 6.5 07151433 IP30') have trouble finding error.h
+# when compiling savecwd.c
+#
+# FIXME - the fact that compiling on my Linux 2.2.16 system finds
+# /usr/include/error.h instead of $(top_srcdir)/src/error.h but
+# everything compiles and tests anyhow implies that src/error.h may
+# be unecessary now. Should look more deeply into this
+#
+# $(includeopt) is CVS specific and set by configure
+INCLUDES = -I$(top_srcdir)/src $(includeopt)
+
+noinst_LIBRARIES = libcvs.a
+
+# Always use CVS's regular expression matcher regex.o, because of
+# variations in regular expression syntax - we want to be the same
+# across systems and (probably) compared with old versions of CVS too.
+#
+# On a more mundane/detail level, having regex.h match regex.c can be
+# an issue if we aren't careful.
+#
+# Also should look into unifying regular expression matching in CVS
+# with the diff library (perhaps to have the caller, CVS, do the
+# matching?)
+libcvs_a_SOURCES = \
+ argmatch.c \
+ ftruncate.c \
+ getdate.y \
+ getline.c \
+ getopt.c \
+ getopt1.c \
+ md5.c \
+ regex.c \
+ savecwd.c \
+ sighandle.c \
+ stripslash.c \
+ xgetwd.c \
+ yesno.c \
+ getline.h \
+ getopt.h \
+ fnmatch.h \
+ md5.h \
+ regex.h \
+ savecwd.h \
+ system.h \
+ wait.h \
+ xselect.h \
+ xtime.h
+## because @LIBOBJS@ is included below, automake automatically knows about
+## dup2.c
+## fncase.c
+## fnmatch.c
+## hostname.c
+## memmove.c
+## mkdir.c
+## rename.c
+## strstr.c
+## strerror.c
+## strtoul.c
+## valloc.c
+## waitpid.c
+libcvs_a_LIBADD = @LIBOBJS@
+
+EXTRA_DIST = \
+ .cvsignore \
+ ChangeLog.fsf \
+ build_lib.com \
+ xgssapi.h
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
diff --git a/contrib/cvs/lib/Makefile.in b/contrib/cvs/lib/Makefile.in
index 736f1319e3fc..f53c852ea32f 100644
--- a/contrib/cvs/lib/Makefile.in
+++ b/contrib/cvs/lib/Makefile.in
@@ -1,6 +1,20 @@
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
# Makefile for library files used by GNU CVS.
-# Do not use this makefile directly, but only from `../Makefile'.
-# Copyright (C) 1986, 1988-1994 Free Software Foundation, Inc.
+# Copyright (C) 1986, 1988-1994, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -12,157 +26,403 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-cvs_srcdir = @top_srcdir@/src
-VPATH = @srcdir@
+# For now we need to include $(top_srcdir)/src because some systems
+# (at least 'AIX rioscpu2 3 4 000030498200',
+# 'HP-UX hp60 B.10.20 A 9000/770 hp60 two-user license', &
+# 'IRIX64 sgiop110 6.5 07151433 IP30') have trouble finding error.h
+# when compiling savecwd.c
+#
+# FIXME - the fact that compiling on my Linux 2.2.16 system finds
+# /usr/include/error.h instead of $(top_srcdir)/src/error.h but
+# everything compiles and tests anyhow implies that src/error.h may
+# be unecessary now. Should look more deeply into this
+#
+# $(includeopt) is CVS specific and set by configure
+
-SHELL = /bin/sh
+SHELL = @SHELL@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
-SOURCES = \
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
+
+INCLUDES = -I$(top_srcdir)/src $(includeopt)
+
+noinst_LIBRARIES = libcvs.a
+
+# Always use CVS's regular expression matcher regex.o, because of
+# variations in regular expression syntax - we want to be the same
+# across systems and (probably) compared with old versions of CVS too.
+#
+# On a more mundane/detail level, having regex.h match regex.c can be
+# an issue if we aren't careful.
+#
+# Also should look into unifying regular expression matching in CVS
+# with the diff library (perhaps to have the caller, CVS, do the
+# matching?)
+libcvs_a_SOURCES = \
argmatch.c \
- dup2.c \
- fncase.c \
- fnmatch.c \
ftruncate.c \
- getdate.c \
getdate.y \
getline.c \
getopt.c \
getopt1.c \
- hostname.c \
md5.c \
- memmove.c \
- mkdir.c \
regex.c \
- rename.c \
savecwd.c \
sighandle.c \
- strstr.c \
- strerror.c \
stripslash.c \
- strtoul.c \
- valloc.c \
- waitpid.c \
xgetwd.c \
- yesno.c
+ yesno.c \
+ getline.h \
+ getopt.h \
+ fnmatch.h \
+ md5.h \
+ regex.h \
+ savecwd.h \
+ system.h \
+ wait.h \
+ xselect.h \
+ xtime.h
-HEADERS = getline.h getopt.h fnmatch.h regex.h system.h wait.h md5.h savecwd.h
+libcvs_a_LIBADD = @LIBOBJS@
-# Always use CVS's regular expression matcher regex.o, because of
-# variations in regular expression syntax - we want to be the same
-# across systems and (probably) compared with old versions of CVS too.
-#
-# On a more mundane/detail level, having regex.h match regex.c can be
-# an issue if we aren't careful.
-#
-# Also should look into unifying regular expression matching in CVS
-# with the diff library (perhaps to have the caller, CVS, do the
-# matching?)
-OBJECTS = \
- @LIBOBJS@ \
- argmatch.o \
- getline.o \
- getopt.o \
- getopt1.o \
- md5.o \
- regex.o \
- savecwd.o \
- sighandle.o \
- stripslash.o \
- xgetwd.o \
- yesno.o \
- getdate.o
-
-DISTFILES = \
- .cvsignore ChangeLog ChangeLog.fsf Makefile.in \
- ${SOURCES} ${HEADERS} build_lib.com
+EXTRA_DIST = \
+ .cvsignore \
+ ChangeLog.fsf \
+ build_lib.com \
+ xgssapi.h
-DEFS = @DEFS@
-RANLIB = @RANLIB@
+EXEEXT =
+OBJEXT = o
+subdir = lib
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
-CC = @CC@
+libcvs_a_AR = $(AR) cru
+libcvs_a_DEPENDENCIES = @LIBOBJS@
+am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) ftruncate.$(OBJEXT) \
+ getdate.$(OBJEXT) getline.$(OBJEXT) getopt.$(OBJEXT) \
+ getopt1.$(OBJEXT) md5.$(OBJEXT) regex.$(OBJEXT) \
+ savecwd.$(OBJEXT) sighandle.$(OBJEXT) stripslash.$(OBJEXT) \
+ xgetwd.$(OBJEXT) yesno.$(OBJEXT)
+libcvs_a_OBJECTS = $(am_libcvs_a_OBJECTS)
+AR = ar
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
-CPPFLAGS=
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-YACC = @YACC@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
+DEFS = @DEFS@
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+DIST_SOURCES = $(libcvs_a_SOURCES)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/argmatch.Po $(DEPDIR)/dup2.Po \
+@AMDEP_TRUE@ $(DEPDIR)/fncase.Po $(DEPDIR)/fnmatch.Po \
+@AMDEP_TRUE@ $(DEPDIR)/ftruncate.Po $(DEPDIR)/getdate.Po \
+@AMDEP_TRUE@ $(DEPDIR)/getline.Po $(DEPDIR)/getopt.Po \
+@AMDEP_TRUE@ $(DEPDIR)/getopt1.Po $(DEPDIR)/hostname.Po \
+@AMDEP_TRUE@ $(DEPDIR)/md5.Po $(DEPDIR)/memmove.Po \
+@AMDEP_TRUE@ $(DEPDIR)/mkdir.Po $(DEPDIR)/regex.Po \
+@AMDEP_TRUE@ $(DEPDIR)/rename.Po $(DEPDIR)/savecwd.Po \
+@AMDEP_TRUE@ $(DEPDIR)/sighandle.Po $(DEPDIR)/strerror.Po \
+@AMDEP_TRUE@ $(DEPDIR)/stripslash.Po $(DEPDIR)/strstr.Po \
+@AMDEP_TRUE@ $(DEPDIR)/strtoul.Po $(DEPDIR)/valloc.Po \
+@AMDEP_TRUE@ $(DEPDIR)/waitpid.Po $(DEPDIR)/xgetwd.Po \
+@AMDEP_TRUE@ $(DEPDIR)/yesno.Po
+DIST_COMMON = ChangeLog Makefile.am Makefile.in dup2.c fncase.c \
+ fnmatch.c getdate.c hostname.c memmove.c mkdir.c rename.c \
+ strerror.c strstr.c strtoul.c valloc.c waitpid.c
+SOURCES = $(libcvs_a_SOURCES)
+OBJECTS = $(am_libcvs_a_OBJECTS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj .y
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+libcvs.a: $(libcvs_a_OBJECTS) $(libcvs_a_DEPENDENCIES)
+ -rm -f libcvs.a
+ $(libcvs_a_AR) libcvs.a $(libcvs_a_OBJECTS) $(libcvs_a_LIBADD)
+ $(RANLIB) libcvs.a
+
+.y.c:
+ $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
+ if test -f y.tab.h; then \
+ if cmp -s y.tab.h $*.h; then \
+ rm -f y.tab.h; \
+ else \
+ mv y.tab.h $*.h; \
+ fi; \
+ fi
+
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list @CONFIG@; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || $(ETAGS) $(ETAGS_ARGS) $$tags $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $$here
+
+distclean-tags:
+ -rm -f TAGS ID
+
+@_am_include@ @_am_quote@$(DEPDIR)/argmatch.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/dup2.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/fncase.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/fnmatch.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/ftruncate.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/getdate.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/getline.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/getopt.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/getopt1.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/hostname.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/md5.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/memmove.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/mkdir.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/regex.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/rename.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/savecwd.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/sighandle.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/strerror.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/stripslash.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/strstr.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/strtoul.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/valloc.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/waitpid.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/xgetwd.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/yesno.Po@_am_quote@
+
+distclean-depend:
+ -rm -rf $(DEPDIR)
+
+CCDEPMODE = @CCDEPMODE@
.c.o:
- $(CC) $(CPPFLAGS) -I.. -I$(srcdir) -I$(cvs_srcdir) \
- $(DEFS) $(CFLAGS) -c $<
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `cygpath -w $<`
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-all: libcvs.a
-.PHONY: all
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-install: all
-.PHONY: install
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES)
installdirs:
-.PHONY: installdirs
-tags: $(DISTFILES)
- ctags `for i in $(DISTFILES); do echo $(srcdir)/$$i; done`
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
-TAGS: $(DISTFILES)
- etags `for i in $(DISTFILES); do echo $(srcdir)/$$i; done`
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-ls:
- @echo $(DISTFILES)
-.PHONY: ls
+installcheck: installcheck-am
-clean:
- rm -f *.a *.o
-.PHONY: clean
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
-distclean: clean
- rm -f tags TAGS Makefile
-.PHONY: distclean
+mostlyclean-generic:
-realclean: distclean
- rm -f *.tab.c getdate.c
-.PHONY: realclean
+clean-generic:
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
- done
-.PHONY: dist-dir
-
-libcvs.a: $(OBJECTS)
- $(AR) cr $@ $(OBJECTS)
- -$(RANLIB) $@
-
-getdate.c: getdate.y
- @echo expect 10 shift/reduce conflicts
- $(YACC) $(srcdir)/getdate.y
- -@if test -f y.tab.c; then \
- mv y.tab.c getdate.c ;\
- else \
- if test -f getdate.tab.c ; then \
- mv getdate.tab.c getdate.c ; \
- else \
- echo '*** Unable to create getdate.c' ;\
- fi ;\
- fi
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-fnmatch.o: fnmatch.h
-getopt1.o: getopt.h
-regex.o: regex.h
-md5.o: md5.h
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+ -test -z "getdate.c" || rm -f getdate.c
+clean: clean-am
-xlint:
- @echo xlint does nothing
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-subdir = lib
-Makefile: ../config.status Makefile.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-tags
+
+dvi:
+
+dvi-am:
+
+info:
+
+info-am:
+
+install-data-am:
-#../config.status: ../configure
-# cd .. ; $(SHELL) config.status --recheck
+install-exec-am:
+
+install-info:
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+.PHONY: all all-am check check-am clean clean-generic \
+ clean-noinstLIBRARIES distclean distclean-compile \
+ distclean-depend distclean-generic distclean-tags distdir dvi \
+ dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic tags \
+ uninstall uninstall-am
+
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
-#../configure: ../configure.in
-# cd $(top_srcdir) ; autoconf
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/cvs/lib/getdate.y b/contrib/cvs/lib/getdate.y
index c3f18c6ef396..a2786eda7759 100644
--- a/contrib/cvs/lib/getdate.y
+++ b/contrib/cvs/lib/getdate.y
@@ -39,46 +39,11 @@
Include <sys/time.h> if that will be used. */
#if defined(vms)
-
-#include <types.h>
-#include <time.h>
-
-#else
-
-#include <sys/types.h>
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#else
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#endif
-
-#ifdef timezone
-#undef timezone /* needed for sgi */
-#endif
-
-#if defined(HAVE_SYS_TIMEB_H)
-#include <sys/timeb.h>
-#else
-/*
-** We use the obsolete `struct timeb' as part of our interface!
-** Since the system doesn't have it, we define it here;
-** our callers must do likewise.
-*/
-struct timeb {
- time_t time; /* Seconds since the epoch */
- unsigned short millitm; /* Field not used */
- short timezone; /* Minutes west of GMT */
- short dstflag; /* Field not used */
-};
-#endif /* defined(HAVE_SYS_TIMEB_H) */
-
-#endif /* defined(vms) */
+# include <types.h>
+#else /* defined(vms) */
+# include <sys/types.h>
+# include "xtime.h"
+#endif /* !defined(vms) */
#if defined (STDC_HEADERS) || defined (USG)
#include <string.h>
@@ -115,6 +80,7 @@ extern struct tm *localtime();
#define yylex getdate_yylex
#define yyerror getdate_yyerror
+static int yyparse ();
static int yylex ();
static int yyerror ();
diff --git a/contrib/cvs/lib/rename.c b/contrib/cvs/lib/rename.c
index ae3d36ebb430..8dc023909743 100644
--- a/contrib/cvs/lib/rename.c
+++ b/contrib/cvs/lib/rename.c
@@ -37,7 +37,7 @@ rename (from, to)
{
/* We don't check existence_error because the systems which need it
have rename(). */
- if (unlink (to) && errno != ENOENT)
+ if (CVS_UNLINK (to) && errno != ENOENT)
return -1;
if ((from_stats.st_mode & S_IFMT) == S_IFDIR)
{
@@ -72,7 +72,7 @@ rename (from, to)
{
/* We don't check existence_error because the systems which need it
have rename(). */
- if (link (from, to) == 0 && (unlink (from) == 0 || errno == ENOENT))
+ if (link (from, to) == 0 && (CVS_UNLINK (from) == 0 || errno == ENOENT))
return 0;
}
}
diff --git a/contrib/cvs/lib/system.h b/contrib/cvs/lib/system.h
index 8beedf0eda78..2c3adbd45d34 100644
--- a/contrib/cvs/lib/system.h
+++ b/contrib/cvs/lib/system.h
@@ -156,16 +156,7 @@ off_t lseek ();
char *getcwd ();
#endif
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
+#include "xtime.h"
#ifdef HAVE_IO_H
#include <io.h>
@@ -175,26 +166,6 @@ char *getcwd ();
#include <direct.h>
#endif
-#ifdef timezone
-#undef timezone /* needed for sgi */
-#endif
-
-#ifdef HAVE_SYS_TIMEB_H
-#include <sys/timeb.h>
-#else
-struct timeb {
- time_t time; /* Seconds since the epoch */
- unsigned short millitm; /* Field not used */
- short timezone;
- short dstflag; /* Field not used */
-};
-#endif
-
-#if !defined(HAVE_FTIME) && !defined(HAVE_TIMEZONE)
-#if !defined(timezone)
-extern long timezone;
-#endif
-#endif
/*
@@ -429,6 +400,10 @@ extern int errno;
#define CVS_FOPEN fopen
#endif
+#ifndef CVS_FDOPEN
+#define CVS_FDOPEN fdopen
+#endif
+
#ifndef CVS_MKDIR
#define CVS_MKDIR mkdir
#endif
@@ -437,6 +412,14 @@ extern int errno;
#define CVS_OPEN open
#endif
+#ifndef CVS_READDIR
+#define CVS_READDIR readdir
+#endif
+
+#ifndef CVS_CLOSEDIR
+#define CVS_CLOSEDIR closedir
+#endif
+
#ifndef CVS_OPENDIR
#define CVS_OPENDIR opendir
#endif
diff --git a/contrib/cvs/lib/xgssapi.h b/contrib/cvs/lib/xgssapi.h
new file mode 100644
index 000000000000..31b8e39c29a1
--- /dev/null
+++ b/contrib/cvs/lib/xgssapi.h
@@ -0,0 +1,30 @@
+/* This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details. */
+
+/* This file performs the generic include magic necessary for using
+ * cross platform gssapi which configure doesn't perform itself.
+ */
+
+/* Can't include both of these headers at the same time with Solaris 7 &
+ * Heimdal Kerberos 0.3. If some system ends up requiring both, a configure
+ * test like TIME_AND_SYS_TIME will probably be necessary.
+ */
+#ifdef HAVE_GSSAPI_H
+# include <gssapi.h>
+#else
+/* Assume existance of this header so that the user will get an informative
+ * message if HAVE_GSSAPI somehow gets defined with both headers missing.
+ */
+# include <gssapi/gssapi.h>
+#endif
+#ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H
+/* MIT Kerberos 5 v1.2.1 */
+# include <gssapi/gssapi_generic.h>
+#endif
diff --git a/contrib/cvs/lib/xselect.h b/contrib/cvs/lib/xselect.h
new file mode 100644
index 000000000000..f1df204cdb46
--- /dev/null
+++ b/contrib/cvs/lib/xselect.h
@@ -0,0 +1,21 @@
+/* This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details. */
+
+/* This file simply performs the include magic necessary for using select */
+#include <sys/types.h>
+#ifdef HAVE_SYS_BSDTYPES_H
+# include <sys/bsdtypes.h>
+#endif
+
+#include "xtime.h"
+
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
diff --git a/contrib/cvs/lib/xtime.h b/contrib/cvs/lib/xtime.h
new file mode 100644
index 000000000000..00d9fae874c3
--- /dev/null
+++ b/contrib/cvs/lib/xtime.h
@@ -0,0 +1,57 @@
+/* This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details. */
+
+/* This file simply performs the include magic necessary for using time
+ * functions
+ */
+
+#ifdef vms
+# include <time.h>
+#else /* vms */
+
+# if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+# else /* TIME_WITH_SYS_TIME */
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else /* HAVE_SYS_TIME_H */
+# include <time.h>
+# endif /* !HAVE_SYS_TIME_H */
+# endif /* !TIME_WITH_SYS_TIME */
+
+# ifdef HAVE_SYS_TIMEB_H
+# include <sys/timeb.h>
+# else /* HAVE_SYS_TIMEB_H */
+/*
+ * We use the obsolete `struct timeb' as part of our interface!
+ * Since the system doesn't have it, we define it here;
+ * our callers must do likewise.
+ *
+ * At the least we were using this in lib/getdate.y, but lib/system.h used to
+ * define it too, so maybe CVS is using it elsewhere.
+ */
+struct timeb {
+ time_t time; /* Seconds since the epoch */
+ unsigned short millitm; /* Field not used */
+ short timezone; /* Minutes west of GMT */
+ short dstflag; /* Field not used */
+};
+# endif /* !HAVE_SYS_TIMEB_H */
+
+# ifdef timezone
+# undef timezone /* needed for sgi */
+# endif /* timezone */
+
+# if !defined(HAVE_FTIME) && !defined(HAVE_TIMEZONE)
+extern long timezone;
+# endif /* !defined(HAVE_FTIME) && !defined(HAVE_TIMEZONE) */
+
+#endif /* !vms */
diff --git a/contrib/cvs/man/ChangeLog b/contrib/cvs/man/ChangeLog
index adb8e2dfec08..ed9563c8f30a 100644
--- a/contrib/cvs/man/ChangeLog
+++ b/contrib/cvs/man/ChangeLog
@@ -1,3 +1,20 @@
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+
2000-09-07 Larry Jones <larry.jones@sdrc.com>
* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
diff --git a/contrib/cvs/man/Makefile.am b/contrib/cvs/man/Makefile.am
new file mode 100644
index 000000000000..bd750c2586fc
--- /dev/null
+++ b/contrib/cvs/man/Makefile.am
@@ -0,0 +1,22 @@
+## Process this file with automake to produce Makefile.in
+# Makefile.am for GNU CVS man pages.
+# Copyright (C) 1986-1992, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+man_MANS = cvs.1 cvs.5 cvsbug.8
+EXTRA_DIST = \
+ .cvsignore \
+ $(man_MANS)
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
diff --git a/contrib/cvs/man/Makefile.in b/contrib/cvs/man/Makefile.in
index f9b566585eb7..7efae1228e02 100644
--- a/contrib/cvs/man/Makefile.in
+++ b/contrib/cvs/man/Makefile.in
@@ -1,6 +1,20 @@
-# Makefile for GNU CVS documentation.
-# Do not use this makefile directly, but only from `../Makefile'.
-# Copyright (C) 1986-1992 Free Software Foundation, Inc.
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am for GNU CVS man pages.
+# Copyright (C) 1986-1992, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -12,80 +26,328 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-SHELL = /bin/sh
-srcdir = @srcdir@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
top_srcdir = @top_srcdir@
-VPATH = @srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
-MAN1FILES = cvs.1
-MAN5FILES = cvs.5
-MAN8FILES = cvsbug.8
-MANFILES = $(MAN1FILES) $(MAN5FILES) $(MAN8FILES)
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
-DISTFILES = .cvsignore ChangeLog Makefile.in $(MANFILES)
INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
-prefix = @prefix@
-mandir = @mandir@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
+
+man_MANS = cvs.1 cvs.5 cvsbug.8
+EXTRA_DIST = \
+ .cvsignore \
+ $(man_MANS)
+
+EXEEXT =
+OBJEXT = o
+subdir = man
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+NROFF = nroff
+MANS = $(man_MANS)
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu man/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+
man1dir = $(mandir)/man1
+install-man1: $(man1_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
man5dir = $(mandir)/man5
-man8dir = $(mandir)/man8
+install-man5: $(man5_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man5dir)
+ @list='$(man5_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.5*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst; \
+ done
-all:
-.PHONY: all
+uninstall-man5:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man5_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.5*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man5dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man5dir)/$$inst; \
+ done
-# This needs to depend on installdirs so that (for example) the
-# install will not fail if $(prefix)/man/man5 does not yet exist.
-install: all installdirs
- for f in $(MAN1FILES); do \
- $(INSTALL_DATA) $(srcdir)/$$f $(man1dir)/$$f; \
+man8dir = $(mandir)/man8
+install-man8: $(man8_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man8dir)
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
done
- for f in $(MAN5FILES); do \
- $(INSTALL_DATA) $(srcdir)/$$f $(man5dir)/$$f; \
+
+uninstall-man8:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man8dir)/$$inst; \
done
- for f in $(MAN8FILES); do \
- $(INSTALL_DATA) $(srcdir)/$$f $(man8dir)/$$f; \
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
installdirs:
- $(SHELL) $(top_srcdir)/mkinstalldirs $(man1dir) $(man5dir) $(man8dir)
+ $(mkinstalldirs) $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) $(DESTDIR)$(man8dir)
-.PHONY: install installdirs
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
-tags:
-.PHONY: tags
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-TAGS:
-.PHONY: TAGS
+installcheck: installcheck-am
-ls:
- @true
-.PHONY: ls
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
-clean:
-.PHONY: clean
+mostlyclean-generic:
-distclean: clean
- rm -f Makefile
-.PHONY: distclean
+clean-generic:
-realclean: distclean
-.PHONY: realclean
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
- done
-.PHONY: dist-dir
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+clean: clean-am
-subdir = man
-Makefile: ../config.status Makefile.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi:
+
+dvi-am:
+
+info:
-#../config.status: ../configure
-# cd .. ; $(SHELL) config.status --recheck
+info-am:
+
+install-data-am: install-man
+
+install-exec-am:
+
+install-info:
+
+install-man: install-man1 install-man5 install-man8
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am info info-am install \
+ install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-man install-man1 \
+ install-man5 install-man8 install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ uninstall uninstall-am uninstall-man uninstall-man1 \
+ uninstall-man5 uninstall-man8
+
+
+# for backwards compatibility with the old makefiles
+realclean: maintainer-clean
+.PHONY: realclean
-#../configure: ../configure.in
-# cd $(top_srcdir) ; autoconf
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/cvs/missing b/contrib/cvs/missing
new file mode 100755
index 000000000000..5f9da90636f5
--- /dev/null
+++ b/contrib/cvs/missing
@@ -0,0 +1,265 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+
+case "$1" in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing 0.3 - GNU automake"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+ fi
+ if [ -f "$file" ]; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit 1
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ tar)
+ shift
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ fi
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar ${1+"$@"} && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar ${1+"$@"} && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case "$firstarg" in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" ${1+"$@"} && exit 0
+ ;;
+ esac
+ case "$firstarg" in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" ${1+"$@"} && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/contrib/cvs/mkinstalldirs b/contrib/cvs/mkinstalldirs
index 9259785ed4f0..1e240e3e4cdd 100755
--- a/contrib/cvs/mkinstalldirs
+++ b/contrib/cvs/mkinstalldirs
@@ -1,27 +1,34 @@
-#!/bin/sh
+#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
-# Last modified: 1994-03-25
# Public domain
-#
+
+# $Id: mkinstalldirs,v 1.4 2001/04/12 13:02:39 dprice Exp $
errstatus=0
-for file in ${1+"$@"} ; do
+for file
+do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
- for d in ${1+"$@"} ; do
+ for d
+ do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
- mkdir "$pathcomp" || errstatus=$?
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
fi
pathcomp="$pathcomp/"
diff --git a/contrib/cvs/src/ChangeLog b/contrib/cvs/src/ChangeLog
index a33464d08b41..f483a7b23095 100644
--- a/contrib/cvs/src/ChangeLog
+++ b/contrib/cvs/src/ChangeLog
@@ -1,4 +1,1079 @@
-2000-09-19 Larry Jones <larry.jones@sdrc.com>
+2001-04-27 Larry Jones <larry.jones@sdrc.com>
+
+ * main.c (lookup_command_attribute): Lookup specified command, not
+ whatever's in the global command_name.
+
+2001-04-25 Derek Price <dprice@collab.net>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+ * version.c: Regenerated.
+
+2001-04-22 Larry Jones <larry.jones@sdrc.com>
+
+ * tag.c (tag_check_valid): Make an unwritable val-tags file a
+ warning instead of a fatal error.
+
+2001-04-20 Larry Jones <larry.jones@sdrc.com>
+
+ * annotate.c (annotate_usage): -r and -D are not mutually exclusive.
+ * main.c (cmd_usage): Add missing version subcommand.
+ * update.c (update_usage): Add missing -C option.
+
+ * sanity.sh (death2): New tests for previous change.
+
+ * classify.c (Classify_File): Treat a dead revision like the RCS
+ file doesn't exist.
+ * sanity.sh: Update to match.
+
+2001-04-16 Larry Jones <larry.jones@sdrc.com>
+
+ * checkout.c, update.c: Fix usage messages: -r and -D are not
+ mutually exclusive.
+ (Suggested by David L. Martin <dlmart2@home.com>.)
+
+ * logmsg.c (do_editor): Don't add a blank line to the message.
+ * sanity.sh (editor-log-file*): Update to match.
+
+ * checkout.c, update.c: Note in usage message that -k is sticky.
+
+ * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
+ (Suggested by Rob Saccoccio <robs@chelsea.net>.)
+
+2001-04-04 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
+ dotest_sort): Don't count on $? being set in then or else clauses.
+
+ * ignore.c (ignore_files): Collect unignored files into a list and
+ sort it before calling PROC to avoid order dependencies. Rewrite
+ the while loop to allow normal continues instead of goto.
+
+2001-04-04 Derek Price <dprice@collab.net>
+
+ * sanity.sh (ignore-on-branch-3): Fix in the remote case.
+
+2001-04-03 Larry Jones <larry.jones@sdrc.com>
+
+ * update.c (update_fileproc): Remove unused variable (resurrecting).
+
+2001-04-03 Derek Price <dprice@collab.net>
+ Larry Jones <larry.jones@sdrc.com>
+ reported by Jakob Bhm <JB@Danware.dk>
+
+ * update.c (update_fileproc): Don't store a file with T_UNKNOWN status
+ in ignlist if present in the sandbox.
+ * sanity.sh (ignore-on-branch): New test.
+ (ignore): Tidy this test.
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
+ is used and the user is root. Fix some quoting in error messages.
+ (fork): Take `cvs' out of the PATH.
+ (TODO): Add note about the test suite not working with user names over
+ eight characters in length.
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh (fork): New test for CVS_SERVER default.
+ (TODO): Note about eventually removing most of the references to
+ CVS_SERVER.
+
+2001-04-02 Larry Jones <larry.jones@sdrc.com>
+
+ * client.c (connect_to_forked_server): Use program_path as the default
+ server instead of "cvs".
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Use less obfuscated English in my comment about sanity
+ checking sanity.sh.
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh (rm-update-message): Create a test directory again but
+ change back to the correct directory upon completion this time.
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Change last two '[.*]'s to 'test's for
+ consistency and remove...
+ (TODO): the note from the TODO list.
+
+2001-04-02 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Add test for PWD before successful exit.
+
+2001-03-30 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (rm-update-message): Remove duplicate code.
+
+2001-03-30 Derek Price <dprice@collab.net>
+
+ * sanity.sh (rm-update-message): New test for local/client-server
+ warning message discrepency.
+
+2001-03-30 Larry Jones <larry.jones@sdrc.com>
+
+ * annotate.c: Move annotate() here from rcs.c, support rannotate.
+ * Makefile.am, Makefile.in: Add annotate.c.
+ * main.c (cmds[], cmd_usage[]): Add rannotate.
+ * rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
+ * rcs.h: ... here.
+ * server.c (serve_rannotate): New.
+ (requests[]): Add rannotate.
+ * sanity.sh (ann): New tests for rannotate.
+
+ * log.c (rlog_proc): Remove dead code.
+
+2001-03-30 Derek Price <dprice@collab.net>
+
+ * sanity.sh (join-readonly-conflict): Run more of this through dotest.
+
+2001-03-30 Larry Jones <larry.jones@sdrc.com>
+
+ * log.c (log_fileproc): Don't output working file for rlog.
+ * sanity.sh (log): New tests for rlog.
+
+ * cvs.h (mtype): Add MISC type.
+ * log.c (cvslog): Support rlog as well as log.
+ (rlog_proc): New.
+ * main.c (cmds[], cmd_usage[]): Add rlog.
+ (main): Remove old rlog warning message.
+ * server.c (serve_rlog): New.
+ (requests[]): Add rlog.
+
+2001-03-29 Derek Price <dprice@collab.net>
+
+ * sanity.sh: cd to $TESTDIR once after it is normalized. Make TODO
+ on history and symlinks more specific. Tested properly this time.
+
+2001-03-29 Larry Jones <larry.jones@sdrc.com>
+
+ * main.c (cmds[], lookup_command_attribute, main): Include the
+ command attributes in the global command table instead of inferring
+ them from the command names. Change the sense of the
+ CVS_CMD_IGNORE_ADMROOT attribute to match its name.
+
+2001-03-29 Derek Price <dprice@collab.net>
+
+ * sanity.sh (*, basic2-64): Remove references to TMPPWD. Fix FIXME
+ at end of script now that $TESTDIR can't be relative.
+
+2001-03-29 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Normalize TESTDIR even when the user set it.
+
+2001-03-29 Larry Jones <larry.jones@sdrc.com>
+
+ * client.c (connect_to_pserver, start_tcp_server): Add IP address
+ to connect failed message.
+ (connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
+ trace messages ala start_rsh_server.
+ (start_rsh_server): Include entire command in trace message for
+ START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
+
+2001-03-29 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
+ ${CVSROOT_DIRNAME} for consistency.
+
+2001-03-29 Derek Price <dprice@collab.net>
+
+ * sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
+ for a CVS bug since May 96/97. Not sure when the bug went bye-bye, but
+ the tests broke when $TESTDIR != $TMPPWD.
+
+2001-03-26 Larry Jones <larry.jones@sdrc.com>
+
+ * classify.c (Classify_File): Don't report a conflict for a removed
+ file when piping. Also simplify the code structure.
+ (Reported by Milos Kleint <milos.kleint@netbeans.com>.)
+ * sanity.sh (rmadd2-14[abc]): New tests for above.
+
+2001-03-24 Noel Cragg <noel@shave.cnet.com>
+
+ * diff.c: mods to allow `-T' and `-y' options to be passed through
+ to the diff library. This wasn't allowed earlier because of a
+ similarly named options that got passed through to the old rcs
+ programs. We've long since stopped sending `-T' to any rcs
+ utility and have never used `-y'. Any users of moldly CVS
+ versions which used to support `-T' have (hopefully) upgraded to
+ one where that option isn't supported. It seems reasonable to
+ enable them again and pass them through. (sanity.sh still works
+ anyways...)
+ (longopts): add short option equivalents for --initial-tab and
+ --side-by-side.
+ (diff): add new short options to getopt string and switch
+ statement.
+
+2001-03-22 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh: Add check for ${DOTSTAR} with large matches.
+
+2001-03-23 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Do the same as below for $keep.
+
+2001-03-23 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
+ often 'false' and more often ':' are shell builtins. This makes the
+ succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
+ Alter tests in the rest of the script to match the new usage. Added
+ a suffix of 'r' to remote test names when it was appropriate and I
+ remembered. Some reformatting.
+
+2001-03-22 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
+ output instead of using wildcards to avoid buffer overflows in some
+ versions of expr.
+
+2001-03-21 Derek Price <dprice@collab.net>
+
+ * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
+ a value inside ${TESTDIR} by the script.
+
+2001-03-20 Derek Price <dprice@collab.net>
+
+ * sanity.sh (diffmerge1): Minor formatting and syntax changes.
+
+ for Jacob Burckhardt <bjacob@ca.metsci.com>
+
+ * sanity.sh (diffmerge1): More merging behavior tests. Specifically,
+ test some cases which broke before in Karl Tomlinson's diff fix was
+ checked in today.
+
+2001-03-20 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Don't use unescaped parens in sh outside of quotes.
+
+2001-03-20 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
+
+2001-03-20 Derek Price <dprice@collab.net>
+
+ * sanity.sh: Change usage to match the new getopts format and comment.
+
+2001-03-16 Derek Price <dprice@collab.net>
+
+ * sanity.sh (modules2-nestedrename): New test. Verifies behavior of
+ renames nested under an ampersand module.
+ (modules2-ampertag): New test. Verifies an error condition which
+ prevents some ampersand modules from being checked out when a tag
+ is specified.
+
+2001-03-16 Derek Price <dprice@collab.net>
+
+ * sanity.sh (modules2): Additional test for ampersand module behavior
+ with '-d'.
+
+ for Greg Klanderman <greg@itasoftware.com>
+
+ * checkout.c (build_one_dir): Fix typo where clauses of two
+ conditionals were reversed in call to Create_Admin. This caused
+ the CVS/Tag file to be removed in cases where it should have been
+ set, and vice-versa. It only surfaced in rare cases as this code
+ is only invoked when using the -d option to build the path to
+ check out in. Further, the bug would only matter when checking
+ out a module containing ampersand modules within it, via
+ client/server CVS.
+
+2001-03-16 Derek Price <dprice@collab.net>
+
+ * sanity.sh (admin-28-5): Confirm that a missing tag during an
+ 'admin -n' operation is not a fatal error.
+
+2001-03-16 Derek Price <dprice@collab.net>
+
+ * admin.c (admin_data): Remove 'quiet' member.
+ (admin_fileproc): Use global 'really_quiet' rather than
+ admin_data->quiet.
+
+2001-03-16 Derek Price <dprice@collab.net>
+
+ * sanity.sh (admin): Replace hardcoded testdir path with the variable.
+
+2001-03-15 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
+ * admin.c (admin_fileproc): Only print messages when not in
+ really_quiet mode.
+
+ for Stephen Rasku <stephen@tgivan.com>
+
+ * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
+
+2001-03-15 Larry Jones <larry.jones@sdrc.com>
+
+ * subr.c (sleep_past): Fix various bugs that would result in a
+ negative sleep time if it weren't unsigned; since it is, it would
+ result in a very large sleep time. Ensure that us is always less
+ than 1000000. Don't try to sleep for more 1 sec with usleep.
+ Cast NULL select arguments to correct type just in case.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * subr.c (sleep_past): New function.
+ * client.c (get_responses_and_close): Use new function.
+ * commit.c (commit): Ditto.
+ * update.c (do_update): Ditto.
+ * cvs.h: Prototype new function.
+
+ * stamp-h2.in: Regenerated.
+
+2001-03-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: Regenerated.
+ * stamp-h2.in: Ditto.
+
+2001-03-14 Larry Jones <larry.jones@sdrc.com>
+
+ * commit.c (check_fileproc): Allow adding on the trunk when there's
+ an existing non-Attic RCS file as long as the head revision is dead.
+ This can happen due to an aborted resurrection.
+ (commit_fileproc): When resurrecting, consider the dead revision
+ along with the other files' revisions.
+ (findmaxrev): Avoid unnecessary work.
+ (checkaddfile): Only warn if file isn't in Attic as expected.
+ (Reported by Ross Burton <r.burton@180sw.com>.)
+ * sanity.sh (basica-r*): New tests for above.
+ (basica-o4): Update to match.
+
+2001-03-09 Larry Jones <larry.jones@sdrc.com>
+
+ * edit.c (edit_fileproc, unedit_fileproc): Some implementations of
+ asctime/ctime apparently use a leading zero on the date instead
+ of the space required by the C Standard. Correct for this so that
+ shared working directories work without hassle.
+ (Reported by David L. Martin <dlmart2@home.com>.)
+ * entries.c (fgetentent): Ditto.
+ * vers_ts.c (time_stamp_server, time_stamp) Ditto.
+
+2001-03-07 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (basica, binfiles2, head, admin): Update to match
+ change to admin.c.
+
+2001-03-06 Larry Jones <larry.jones@sdrc.com>
+
+ * client.c (recv_bytes): Handle EOF as in recv_line().
+ (Reported by Pavel Roskin <proski@gnu.org>.)
+
+ * admin.c (admin_fileproc): Change final error message to clarify
+ that CVS refused to modify the RCS file rather than being unable to.
+
+2001-02-28 Jim Meyering <meyering@lucent.com>
+
+ * commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
+ the description of that option, to be consistent with the `-F logfile'
+ in the Usage: line. Use spaces instead of TAB characters, and realign.
+
+2001-03-02 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
+ name of the command it actually used rather than 'rsh'.
+
+2001-02-27 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh (modules2-ampermod-*): Added these tests to make sure the
+ top level directory is created in an ampermodule when '-n' is passed to
+ checkout.
+
+ original bug report from
+ Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
+
+2001-02-27 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh (version-[12]): replace ' (client/server)' with .* in these
+ two tests so that 'make check' works with whatever client/server
+ options the executable was compiled with.
+
+2001-02-23 Derek Price <derek.price@openavenue.com>
+
+ * main.c (main): Only check a cvsroot_t's isremote member when client
+ support is enabled.
+ * server.c: Include GSSAPI headers with client support as well as
+ server support.
+
+2001-02-21 Larry Jones <larry.jones@sdrc.com>
+
+ * modules.c, cvs.h (do_module): Add build_dirs argument and use it
+ instead of run_module_prog. Change all callers.
+ * tag.c (cvstag): For rtag, don't build directories.
+ * sanity.sh (modules3): Update to match.
+
+2001-02-20 Derek Price <derek.price@openavenue.com>
+
+ * client.c: Use xgssapi.h.
+ * server.c: Ditto.
+
+2001-02-15 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (cvs_SOURCES): Correct error from yesterday.
+ * Makefile.in: Regenerated.
+
+2001-02-14 Derek Price <derek.price@openavenue.com>
+
+ * server.c: Include xselect.h.
+ * update.c (do_update): Use best available sleep function.
+
+2001-02-14 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
+ (cvs_LDADD): Alphabetize and split to one/line.
+ * Makefile.in: Regenerated.
+
+2001-02-14 Larry Jones <larry.jones@sdrc.com>
+
+ * build_src.com: Remove references to rtag.c & rtag.obj.
+
+2001-02-13 Derek Price <derek.price@openavenue.com>
+
+ * main.c (date_to_tm): New function to convert an RCS date string to a
+ struct tm.
+ (tm_to_internet): New function to convert a struct tm to a date string
+ as specified by RFC822 and amended by RFC 1123.
+ (date_to_internet): Use the above two functions and a struct tm
+ intermediary for conversion.
+ * patch.c (patch_fileproc): Answer somebody's comment and use the new
+ diff_exec API.
+ * rcs.c (RCS_checkin): Use new diff_exec API.
+ (RCS_delete_revs): Use new diff_exec API.
+ (make_file_label): If the file name is DEVNULL, date it the Epoch for
+ compatibility with the POSIX.2 spec and Larry Wall's patch
+ implementation.
+ * rcscmds.c (diff_exec): Accept new label arguments.
+ * sanity.sh (death2): Update some diff tests to accept the new format.
+ * update.c (patch_file): Use new diff_exec API.
+ * diff.c (diff_fileproc): Create header labels appropriate for
+ compatibility with the Larry Wall version of patch.
+ (diff): Rename calls to strcat_and_allocate.
+ (strcat_and_allocate): Rename and move...
+ * subr.c (xrealloc_and_strcat): here.
+ * cvs.h: Update prototypes to match.
+
+2001-02-13 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (cvs_SOURCES): Remove rtag.c.
+
+2001-02-07 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
+ (basic2): Rewrite using dotest.
+
+2001-02-06 Larry Jones <larry.jones@sdrc.com>
+
+ * tag.c, rtag.c: Merge with tag.c being the surviving file.
+ * Makefile.in: Update to match.
+ * main.c (cmds): rtag() => cvstag().
+ * server.c (serve_rtag): Ditto, and set command name.
+
+2001-02-06 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+ Shawn Smith <Shawn_Smith@notes.ymp.gov>
+
+ * add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
+ CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
+ 5.7 {open,read,close}dir problems. Check today's entry in the vms
+ subdir for more.
+ * filesubr.c: ditto
+ * find_names.c: ditto
+ * ignore.c: ditto
+ * import.c: ditto
+ * lock.c: ditto
+ * update.c: ditto
+
+2001-02-02 Larry Jones <larry.jones@sdrc.com>
+
+ * error.h: Changed include guard macro from _error_h_ to ERROR_H;
+ names beginning with underscore are reserved.
+ * login.c (password_entry_parseline, password_entry_operation,
+ password_entry_operation_e, password_entry_operation_t): Removed
+ leading underscore(s).
+ (password_entry_parseline): Corrected error messages.
+ (password_entry_operation): Fixed uninitialized variable (password).
+ (login): Removed unused variable (found_password).
+
+ * rtag.c (rtag_proc): Call lock_tree_for_write() before calling
+ start_recursion. This fixes a serious problem where do_recursion
+ was reading and caching RCS files without any locks in place and
+ that information was subsequently being used to rewrite the file
+ causing any intermediate changes to be lost.
+ (rtag_filesdoneproc): Defunct.
+ (Reported by Karl Tomlinson <k.tomlinson@auckland.ac.nz>.)
+ * tag.c (cvstag, tag_filesdoneproc): Ditto.
+ * lock.c (lock_tree_for_write): Add which argument, change all
+ callers to pass W_LOCAL.
+ * rcs.h: Ditto.
+
+2001-01-29 Derek Price <derek.price@openavenue.com>
+
+ * client.c (get_cvs_port_number): change the prototype to accept a
+ const cvsroot_t * as input and add a FIXME comment
+ * cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
+ * login.c (_password_entry_operation): consolidate all the ~/.cvspass
+ access into a single new function which reads ~/.cvspass in a backwards
+ compatible manner
+ (logout): use the new _password_entry_operation function
+ (login): ditto
+ (get_cvs_password): ditto
+ * root.c (normalize_cvsroot): move knowledge of default port & username
+ values inside
+
+2001-01-29 Larry Jones <larry.jones@sdrc.com>
+
+ * subr.c (shell_escape): New function.
+ * cvs.h: Declare it.
+ * logmsg.c (logfile_write): Use it to avoid problems with filenames
+ containing "'".
+ (Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
+
+ * server.c (outbuf_memory_error, pserver_authenticate_connection,
+ kserver_authenticate_connection): If available, use syslog() to
+ record some errors.
+
+2001-01-25 Larry Jones <larry.jones@sdrc.com>
+
+ * server.c (do_cvs_command): If there's a partial output line left
+ over and the client doesn't support MT, go ahead and send it in an
+ M response instead of just dropping it.
+ (Reported by Milos Kleint <Milos.Kleint@netbeans.com>.)
+
+ * update.c (update_fileproc): Handle toss_local_changes in the
+ T_NEEDS_MERGE case.
+ (Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
+ * sanity.sh (clean): New tests for above.
+
+2001-01-23 Derek Price <derek.price@openavenue.com>
+
+ * run.c (run_exec): flush, if used, stderr and stdout before exit
+ * server.c (cvs_flusherr): flush stderr & send a stderr flush command
+ on the protocol pipe
+ (cvs_flushout): like above, for stdout
+ (do_cvs_command): handle flushes properly
+ * sanity.sh (reserved): make the commitinfo script echo errors to
+ stderr rather than stdin
+
+2001-01-18 Larry Jones <larry.jones@sdrc.com>
+
+ * log.c (option_revlist, revlist, log_usage, cvslog,
+ log_parse_revlist, log_expand_revlist, log_version_requested): Add
+ support for :: for exclusive ranges.
+ * admin.c (admin_usage): Reorder -o to be parallel to log -r.
+ * sanity.sh (log): New tests for above.
+
+2001-01-18 Derek Price <derek.price@openavenue.com>
+
+ * main.c: Add '2001' to the range of copyright years listed by the
+ --version option
+ * version.c.in (version): check current_parsed_root before its isremote
+ member to avoid a core dump
+ * sanity.sh (version): add a test for the version command
+
+ * version.c: regenerated
+
+2001-01-12 Larry Jones <larry.jones@sdrc.com>
+
+ * rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
+ correct revision so that symbolic tags work correctly. (This
+ requires removing the "const" from the rev parameter since it's
+ passed to RCS_gettag which might modify it.)
+ (Reported by irina sturm <irina.sturm@st.com>.)
+
+2001-01-11 Larry Jones <larry.jones@sdrc.com>
+
+ * run.c (close_on_exec): Remove check for FD_CLOEXEC. As far as I
+ can see, it's *never* been defined, which defeats the whole point.
+ If F_SETFD is defined, it's probably safe to use it.
+
+ * server.c (do_cvs_command): Call close_on_exec on the protocol and
+ flow control pipes in the child process so they don't get inherited
+ by any subsidiary processes.
+ (Reported by Tristan Gingold <tgi@netgem.com>.)
+
+ * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+ Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
+
+ * build_src.com: VMS changes
+ * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
+ * rcs.c: ditto
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+
+ * main.c (current_root): explicitly list this as a static global
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+
+ * cvs.h (get_cvs_port_number): change name & prototype from
+ get_port_number
+ * client.c (get_cvs_port_number): new function which returns a port
+ number based on a cvsroot_t rather than requiring all possible sources
+ passed in
+ (connect_to_pserver): use new get_cvs_port_number function
+ (connect_to_server): ditto
+ * login.c (get_password): use new get_cvs_port_number function
+ (login): ditto
+ (logout): ditto
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
+ of the build since some systems don't allow mv's across partitions
+ * Makefile.in: regenerated
+
+2001-01-10 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (version.c): specify $(srcdir) explicitly in target rule
+ so version.c gets built properly for all makes.
+ (version.o): specify $(srcdir)/version.c explicitly so dependency is
+ found and built properly
+ * Makefile.in: regenerated
+
+2001-01-09 Derek Price <derek.price@openavenue.com>
+
+ * version.c: updated timestamp
+
+2001-01-09 Larry Jones <larry.jones@sdrc.com>
+
+ * server.c (server): Change to server_temp_dir immediately after
+ creating it so that any stray files that happen to be created go
+ there instead of in the server's initial directory, wherever that
+ may be.
+ * sanity.sh (modules5-15): Update to match.
+
+ * version.c.in: Update to match Derek's change to version.c.
+
+2001-01-09 Derek Price <derek.price@openavenue.com>
+
+ * cvs.h: Remove the various CVSroot_* bits and replace them with a
+ single structure of type cvsroot_t (current_parsed_root)
+
+ * root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
+ altering global variables
+ (local_cvsroot): return a pointer to a new cvsroot_t rather than
+ setting globals. changed the name of this function from
+ set_local_cvsroot to better explain new functionality
+ (new_cvsroot_t): new initializer function
+ (free_cvsroot_t): new function
+ (others): use current_parsed_root rather than the old CVSroot_* globals
+
+ * add.c: use current_parsed_root rather than the old CVSroot_* globals
+ * admin.c: ditto
+ * checkout.c: ditto
+ * client.c: ditto
+ * commit.c: ditto
+ * create_adm.c: ditto
+ * diff.c: ditto
+ * edit.c: ditto
+ * expand_path.c: ditto
+ * find_names.c: ditto
+ * history.c: ditto
+ * ignore.c: ditto
+ * import.c: ditto
+ * lock.c: ditto
+ * log.c: ditto
+ * login.c: ditto
+ * logmsg.c: ditto
+ * main.c: ditto
+ * mkmodules.c: ditto
+ * modules.c: ditto
+ * parseinfo.c: ditto
+ * patch.c: ditto
+ * rcs.c: ditto
+ * recurse.c: ditto
+ * release.c: ditto
+ * remove.c: ditto
+ * repos.c: ditto
+ * rtag.c: ditto
+ * server.c: ditto
+ * status.c: ditto
+ * tag.c: ditto
+ * update.c: ditto
+ * version.c: ditto
+ * watch.c: ditto
+ * wrapper.c: ditto
+
+2001-01-05 Derek Price <derek.price@openavenue.com>
+
+ * cvs.h (enum CVSmethod): add null_method
+ * root.c (method_names): correlate null_method & "undefined"
+ (parse_cvsroot): make two error cases non fatal
+ * sanity.sh (crerepos-6b): account for new error message, re above
+
+2001-01-05 Derek Price <derek.price@openavenue.com>
+
+ * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
+ target to configure.in - see ../ChangeLog for more
+ * src/cvsbug.in: Rename from cvsbug.sh
+ * src/cvsbug.sh: Rename to cvsbug.in
+
+2001-01-04 Larry Jones <larry.jones@sdrc.com>
+
+ * Makefile.am (cvsbug): Explicitly list input file ($< is only
+ valid in inference rules).
+ * Makefile.in: Ditto.
+
+2001-01-04 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh: use getopts rather than getopt for portability reasons
+
+2001-01-03 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (remotecheck): depend on 'all'
+ * Makefile.in: regenerated
+
+2000-12-29 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
+ to the line following the 'for'. Apparently this is more portable.
+
+2000-12-29 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
+ implementation of Bourne shell doesn't seem to implement this default
+ behavior.
+
+2000-12-27 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh: add a -f option for continuing from a particular test
+ and shorten --keep to -k so we can use the getopt function.
+
+2000-12-27 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (remotecheck): Make remotecheck dependant on all
+ * Makefile.in: regenerated
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.in: update timestamp
+ * stamp-h2.in: ditto
+ * version.c: ditto
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am: new target for version.c
+ (EXTRA_DIST): add version.c.in & version.c so builds work when
+ configure doesn't
+ * Makefile.in: Regenerated
+ * stamp-h2.in: update timestamp
+ * version.c: ditto
+
+2000-12-26 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (INCLUDES): add zlib
+ * Makefile.in: Regenerated
+
+2000-12-22 Derek Price <derek.price@openavenue.com>
+
+ * Makefile.am (DISTCLEANFILES): added a few files
+ (INCLUDES): commented
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <derek.price@openavenue.com>
+
+ * .cvsignore: Added .deps directory and a new stamp file
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+ * stamp-h2.in: New stamp file created by Automake
+ * version.c.in: use configure to generate version.c
+
+2000-12-16 Derek Price <derek.price@openavenue.com>
+
+ * server.c (server_update): Keep the vers structure up to date after
+ sending a Remove or Remove-entry command to the client
+ * update.c (update): remove call to server_updated() after
+ scratch_file()
+ (scratch_file): in server mode, call server_updated(), otherwise keep
+ the vers structure up to date
+ (join_file): add a trace, save the revision to Register() on a remove
+ before calling server_scratch & server_updated
+ * sanity.sh (join): Add test for a remove/add caused by an update
+ to a new branch and a join in the same step.
+
+2000-12-15 Larry Jones <larry.jones@sdrc.com>
+
+ * error.c (error): Add %ld and %lu.
+
+ * history.c: Change hrec.idx from int to long, reformat NEXT_BAR
+ for readability, add hrec_idx.
+ (fill_hrec): Change initialization to be portable and always set
+ idx so it can be used as a line number in error messages; improve
+ parsing and error checking.
+ (read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
+ no newline at end of file.
+ (select_hrec): Add basic validity checking.
+
+2000-12-07 Larry Jones <larry.jones@sdrc.com>
+
+ * history.c (history): Allow multiple -m options as documented.
+
+2000-11-29 Derek Price <derek.price@openavenue.com>
+
+ * root.c (parse_cvsroot): back out yesterday's redundant changes
+ * main.c (main): fix CVSROOT trace message to look like other trace
+ messages
+ * sanity.sh (multiroot2-9): expect new trace message
+
+2000-11-28 Derek Price <derek.price@openavenue.com>
+
+ * root.c (parse_cvsroot): add trace on this function
+ * client.c (get_port_number): make trace print look like others
+
+2000-11-16 Derek Price <derek.price@openavenue.com>
+
+ * filesubr.c (cvs_temp_file): back out the previous change in the
+ interests of portability, add an assertion, and fix the header comment
+
+2000-11-16 Derek Price <derek.price@openavenue.com>
+
+ * filesubr.c (cvs_temp_file): refine the exit behavior to notice if
+ the out param was passed in NULL and, if so, avoid setting it and delete
+ the temp file for later
+
+2000-11-16 Derek Price <derek.price@openavenue.com>
+
+ * filesubr.c (cvs_temp_file): fixed a garble or two, added some
+ additional error checking, and added a comment
+
+2000-11-15 Derek Price <derek.price@openavenue.com>
+
+ * filesubr.c (cvs_temp_file): added cvs_temp_file
+ function to use mkstemp rather than one of the other temp file
+ generators as gcc keeps complaining I should.
+ (cvs_temp_name): altered this function to simply wrap cvs_temp_file
+ and deprecated it
+ * cvs.h: added prototype for cvs_temp_file
+ * commit.c (commit): use the new function instead of the old and plug
+ an old (though related) memory leak.
+ * import.c (import): use the new function
+ * login.c (login): Ditto
+ * logmsg.c (do_editor, do_verify): Ditto
+ * patch.c (patch_fileproc): Ditto
+
+2000-11-14 Larry Jones <larry.jones@sdrc.com>
+
+ * update.c, update.h (do_update): Add xdotemplate parameter.
+ Change all callers.
+ (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
+ * checkout.c (checkout_proc): Don't create CVS/Template if
+ exporting.
+ (Reported by Andrey Podkolzin <mdh@zenon.net>.)
+
+2000-11-08 Larry Jones <larry.jones@sdrc.com>
+
+ * admin.c (admin): Use getgroups() to check for membership in
+ CVS_ADMIN_GROUP if it exists. In any event, check the user's
+ primary group in addition to any additional groups.
+ (Reported by Thomas Okken <TOkken@refco.com>.)
+
+2000-11-06 Jim Meyering <meyering@lucent.com>
+
+ Compile with gcc's -Wformat and fix the exposed problems.
+ * root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
+ for the %s error format spec.
+ [! HAVE_GSSAPI]: Likewise.
+ (normalize_cvsroot): Put comment delimiters around token after `#endif'.
+
+2000-11-03 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh: Some versions of sed require a space between -e and
+ the value.
+
+2000-10-27 Larry Jones <larry.jones@sdrc.com>
+
+ * checkout.c (checkout): Don't check for a safe location if just
+ cat'ing the module database.
+ (Reported by Ilya Martynov <m_ilya@agava.com>.)
+ Have -s set cat as well as status; it simplifies the code.
+
+2000-10-26 Larry Jones <larry.jones@sdrc.com>
+
+ * sanity.sh (join-admin-2): Check output from all commands instead
+ of (mostly) discarding. (Some of the tests used to produce stray
+ output in remote mode.)
+
+ * sanity.sh (dotest_line_by_line): Handle empty lines in pattern
+ (expr doesn't distingish between successfully matching nothing
+ and failing to match anything).
+
+ * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
+
+2000-10-24 Jim Meyering <meyering@lucent.com>
+
+ Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
+ sometimes be ignored for some of the files involved in an update.
+
+ * update.c (join_file): Restore the original value of `options'
+ right after calling checkout_file.
+ * sanity.sh (join-admin-2): New test for this.
+
+2000-10-23 Derek Price <derek.price@openavenue.com>
+ James Youngman <jay@gnu.org>
+
+ * sanity.sh: it's /gnu/bin, not /gun/bin. Thanks go to James Youngman
+ <jay@gnu.org> for the bug report and patch.
+
+2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
+
+ * server.c (switch_to_user): Set CVS_USER. Patch from Sudish
+ Joseph and popularized by dozens (e.g. mozilla.org, also others).
+
+2000-10-20 Derek Price <derek.price@openavenue.com>
+ KOIE Hidetaka <hide@koie.org>
+
+ * root.c (normalize_cvsroot): plug a memory leak. Thanks to
+ KOIE Hidetaka <hide@koie.org>
+
+2000-10-18 Derek Price <derek.price@openavenue.com>
+
+ * client.c (connect_to_pserver): added a close brace the lack of which
+ was preventing compilation when gssapi was enabled. Removed a
+ redundant check for HAVE_KERBEROS.
+
+2000-10-18 Derek Price <derek.price@openavenue.com>
+
+ * root.c (normalize_cvsroot): removed references to free_port_s and the
+ now useless call to free now that port_s is on the stack. Thanks to
+ Jon Miner.
+
+2000-10-18 Derek Price <derek.price@openavenue.com>
+
+ * root.c (normalize_cvsroot): remove calls to snprintf for
+ compatibility with M$ Windoze.
+
+2000-10-18 Derek Price <derek.price@openavenue.com>
+
+ * sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
+ the output of a test to /dev/null since we don't know what error
+ messages specific rsh implementations will output.
+
+2000-10-17 Derek Price <derek.price@openavenue.com>
+
+ * cvs.h: added CVSroot_password variable. Provided prototypes for
+ get_port_number & normalize_cvsroot.
+ * client.c (get_port_number): Fixed an ANSI prototype I had included
+ for get_port_number.
+ * login.c (login, logout): Removed two checks for a non-null
+ CVSroot_username since parse_cvsroot now supplies a default in pserver
+ mode. allow for a password in CVSROOT
+ (get_cvs_passsword): return CVSroot_password if it was supplied
+ in the CVSROOT.
+ * root.c (parse_cvsroot): Changed CVSROOT spec from
+ :method:user@host/port:/cvsroot to
+ :method:[[user][:password]@]host[:[port]]/cvsroot
+ Removed the xstrdup function since we'd rather have the error checking
+ from the version in subr.c anyhow. Moved some error messages which
+ looked like they would print the wrong error message after a failed
+ connect_to_gserver call.
+ (normalize_cvsroot): return a normalized CVSROOT for use in the
+ .cvspass file.
+ * sanity.sh (crerepos-6): fix a test which was expecting an old error
+ message.
+
+ * client.c (connect_to_pserver): Moved some error messages which looked like they
+ would print the wrong error message after a failed connect_to_gserver
+ call.
+
+ * login.c (login): Paranoiacly zero a password in memory.
+
+2000-10-12 Derek Price <derek.price@openavenue.com>
+
+ * client.c (auth_server_port_number -> get_port_number, start_pserver,
+ start_tcp_server): use a port specified in CVSROOT instead of the
+ default port. Failing that, use the CVS_CLIENT_PORT environment
+ variable.
+ * cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
+ * root.c (parse_cvsroot): Parse the new CVSROOT format properly.
+ Incidentally reformated some error messages for uniformity and
+ readability.
+ * sanity.sh (crerepos): fix two tests which were now expecting the
+ wrong error message.
+
+2000-10-11 Larry Jones <larry.jones@sdrc.com>
+
+ * server.c (pserver_authenticate_connection): Fix stupid mistake
+ in previous change.
+
+2000-10-11 Derek Price <derek.price@openavenue.com>
+
+ * main.c (main): Dispose old CVSroot when parsing a '-d' option if
+ free_CVSroot is set.
+ * root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
+ static boolean I expect hasn't been used since CVS learned to handle
+ multiple CVSROOTs.
+
+2000-10-10 Larry Jones <larry.jones@sdrc.com>
+
+ * server.c (print_error): Make up a message if strerror fails.
+
+ * server.c (pserver_authenticate_connection): Give a real error
+ message for an invalid repository.
+
+2000-10-06 Derek Price <derek.price@openavenue.com>
+
+ * add.c (add): Made quiet mode affect some warning messages as seemed
+ appropriate. Specifically, some of the messages which a user might
+ want to ignore so they don't have to be quite so specific on the
+ command line: files added twice, files already in the repository and
+ check out properly (i.e. but picked up by 'cvs add *'), & files which
+ are readded in place of a dead revision or onto a branch. '-q' will
+ not change the non-zero exit code for the cases where at least one
+ passed in file name was already in the Entries file. There seems to
+ be a precedent in remove.c.
+ * remove.c (cvsremove): switched the "use cvs ci to make these changes
+ permanent message" to only print w/o '-Q' to match the new behavior of
+ add. This seems appropriate as '-Q' is defined to restrict messages
+ to critical errors.
+ * sanity.sh (adderrmsg): Added some tests for the above behavior.
+
+2000-10-05 Larry Jones <larry.jones@sdrc.com>
+
+ * client.c (call_in_directory): Create CVSADM directory if it doesn't
+ exist in the directory. This makes client/server work more like
+ standalone when checking out into an existing (non-CVS) directory.
+ * sanity.sh (dirs2, conflicts3, toplevel): Update to match.
+
+2000-10-03 Larry Jones <larry.jones@sdrc.com>
+
+ * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
+
+2000-10-02 Larry Jones <larry.jones@sdrc.com>
+
+ * cvs.h: Define (and use) T_PATCH as a valid file classification
+ even when SERVER_SUPPORT isn't defined -- it simplifies the code.
+ * classify.c (Classify_File): Ditto.
+ * commit.c (check_fileproc): Ditto.
+ * status.c (status_fileproc): Ditto.
+ * update.c (update_fileproc): Ditto.
+ * tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
+ * sanity.sh (tagc-10): Update to match.
+
+2000-09-29 Larry Jones <larry.jones@sdrc.com>
+
+ * client.c (get_responses_and_close): Reset server_fd to -1 after
+ shutting down.
+ (Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
+
+2000-09-27 Larry Jones <larry.jones@sdrc.com>
+
+ * commit.c (commit): Don't sleep before returning in server mode,
+ just let the client do it.
+ * update.c (do_update): Ditto.
+
+ * sanity.sh (find_tool): Correct method of checking for GNU tools.
+
+ * checkout.c (checkout_proc): Match up user directories with
+ repository directories instead of using Emptydir.
+ * sanity.sh (cvsadm, emptydir): Update to match.
+
+2000-09-19 Larry Jones <larry.jones@sdrc.com>
+
+ * version.c: Push version number to 1.11.0.1.
* version.c: Version 1.11.
diff --git a/contrib/cvs/src/Makefile.am b/contrib/cvs/src/Makefile.am
new file mode 100644
index 000000000000..768d4f8651a4
--- /dev/null
+++ b/contrib/cvs/src/Makefile.am
@@ -0,0 +1,144 @@
+## Process this file with automake to produce Makefile.in
+# Makefile for GNU CVS program.
+# Copyright (C) 1986, 1988-1990, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+SHELL = /bin/sh
+
+# $(includeopt) is CVS specific and set by configure
+# FIXME - This includes line is dependant on its order. This means there is
+# some namespace hackery going on that maybe shouldn't be. Long term fix is to
+# try and remove naming ocnflicts and fix Automake to allow particular includes
+# to be attached only to particular object files. Short term fix is either or.
+##INCLUDES = -I. -I.. -I$(srcdir) -I$(top_srcdir)/lib
+INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/diff -I$(top_srcdir)/zlib $(includeopt)
+
+bin_PROGRAMS = cvs
+bin_SCRIPTS = cvsbug
+
+# The cvs executable
+cvs_SOURCES = \
+ add.c \
+ admin.c \
+ annotate.c \
+ buffer.c \
+ checkin.c \
+ checkout.c \
+ classify.c \
+ client.c \
+ commit.c \
+ create_adm.c \
+ cvsrc.c diff.c \
+ edit.c \
+ entries.c \
+ error.c \
+ expand_path.c \
+ fileattr.c \
+ filesubr.c \
+ find_names.c \
+ hardlink.c \
+ hash.c \
+ history.c \
+ ignore.c \
+ import.c \
+ lock.c \
+ log.c \
+ login.c \
+ logmsg.c \
+ main.c \
+ mkmodules.c \
+ modules.c \
+ myndbm.c \
+ no_diff.c \
+ parseinfo.c \
+ patch.c \
+ rcs.c \
+ rcscmds.c \
+ recurse.c \
+ release.c \
+ remove.c \
+ repos.c \
+ root.c \
+ run.c \
+ scramble.c \
+ server.c \
+ status.c \
+ subr.c \
+ tag.c \
+ update.c \
+ vers_ts.c \
+ watch.c \
+ wrapper.c \
+ zlib.c \
+ buffer.h \
+ client.h \
+ cvs.h \
+ edit.h \
+ error.h \
+ fileattr.h \
+ hardlink.h \
+ hash.h \
+ myndbm.h \
+ rcs.h \
+ server.h \
+ update.h \
+ watch.h
+cvs_LDADD = \
+ ../diff/libdiff.a \
+ ../lib/libcvs.a \
+ ../zlib/libz.a \
+ version.o
+cvs_EXTRA_DIST = version.c
+
+# extra clean targets
+# wish this could be distclean-hdr-local but it's not part of automake
+DISTCLEANFILES = options.h-SAVED check.log check.plog
+
+# General
+EXTRA_DIST = \
+ $(cvs_EXTRA_DIST) \
+ .cvsignore \
+ ChangeLog-9194 \
+ ChangeLog-9395 \
+ ChangeLog-96 \
+ ChangeLog-97 \
+ build_src.com \
+ sanity.sh \
+ version.c \
+ version.c.in
+
+check-local:
+ $(SHELL) $(srcdir)/sanity.sh `pwd`/cvs
+
+.PHONY: remotecheck
+remotecheck: all
+ $(SHELL) $(srcdir)/sanity.sh -r `pwd`/cvs
+
+## MAINTAINER Targets
+
+# version.c
+# - build this here so that we can distribute it
+# - version.c needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+# - need the explicit version.o dependency or else make won't match
+# $(srcdir)/version.c when looking for a dependency for version.c
+version.o: $(srcdir)/version.c
+$(srcdir)/version.c: $(srcdir)/version.c.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/version.c.in >$(srcdir)/version.tc
+ mv $(srcdir)/version.tc $(srcdir)/version.c
+
+# for backwards compatibility with the old makefiles
+.PHONY: realclean
+realclean: maintainer-clean
diff --git a/contrib/cvs/src/Makefile.in b/contrib/cvs/src/Makefile.in
index d09b0cb1c023..c80deab8794a 100644
--- a/contrib/cvs/src/Makefile.in
+++ b/contrib/cvs/src/Makefile.in
@@ -1,6 +1,20 @@
+# Makefile.in generated automatically by automake 1.4e from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
# Makefile for GNU CVS program.
-# Do not use this makefile directly, but only from `../Makefile'.
-# Copyright (C) 1986, 1988-1990 Free Software Foundation, Inc.
+# Copyright (C) 1986, 1988-1990, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -12,182 +26,584 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-SHELL = /bin/sh
-srcdir = @srcdir@
+srcdir = @srcdir@
top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
+VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
-# Where to install the executables.
bindir = @bindir@
-
-# Where to put the system-wide .cvsrc file
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
libdir = @libdir@
-
-# Where to put the manual pages.
+infodir = @infodir@
mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
-# Use cp if you don't have install.
INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AMTAR = @AMTAR@
+AWK = @AWK@
+CC = @CC@
+CSH = @CSH@
+DEPDIR = @DEPDIR@
+ETAGS = @ETAGS@
+ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
+KRB4 = @KRB4@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PR = @PR@
+PS2PDF = @PS2PDF@
+RANLIB = @RANLIB@
+ROFF = @ROFF@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+VERSION = @VERSION@
+YACC = @YACC@
+_am_include = @_am_include@
+_am_quote = @_am_quote@
+includeopt = @includeopt@
+install_sh = @install_sh@
-LIBS = @LIBS@
+SHELL = /bin/sh
-SOURCES = add.c admin.c buffer.c checkin.c checkout.c classify.c client.c \
-commit.c create_adm.c cvsrc.c diff.c edit.c entries.c error.c expand_path.c \
-fileattr.c find_names.c hardlink.c hash.c history.c ignore.c import.c \
-lock.c log.c login.c logmsg.c main.c mkmodules.c modules.c myndbm.c no_diff.c \
-parseinfo.c patch.c rcs.c rcscmds.c recurse.c release.c remove.c repos.c \
-root.c rtag.c scramble.c server.c status.c subr.c filesubr.c run.c \
-tag.c update.c watch.c wrapper.c vers_ts.c version.c zlib.c
+# $(includeopt) is CVS specific and set by configure
+# FIXME - This includes line is dependant on its order. This means there is
+# some namespace hackery going on that maybe shouldn't be. Long term fix is to
+# try and remove naming ocnflicts and fix Automake to allow particular includes
+# to be attached only to particular object files. Short term fix is either or.
+INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/diff -I$(top_srcdir)/zlib $(includeopt)
+
+bin_PROGRAMS = cvs
+bin_SCRIPTS = cvsbug
+
+# The cvs executable
+cvs_SOURCES = \
+ add.c \
+ admin.c \
+ annotate.c \
+ buffer.c \
+ checkin.c \
+ checkout.c \
+ classify.c \
+ client.c \
+ commit.c \
+ create_adm.c \
+ cvsrc.c diff.c \
+ edit.c \
+ entries.c \
+ error.c \
+ expand_path.c \
+ fileattr.c \
+ filesubr.c \
+ find_names.c \
+ hardlink.c \
+ hash.c \
+ history.c \
+ ignore.c \
+ import.c \
+ lock.c \
+ log.c \
+ login.c \
+ logmsg.c \
+ main.c \
+ mkmodules.c \
+ modules.c \
+ myndbm.c \
+ no_diff.c \
+ parseinfo.c \
+ patch.c \
+ rcs.c \
+ rcscmds.c \
+ recurse.c \
+ release.c \
+ remove.c \
+ repos.c \
+ root.c \
+ run.c \
+ scramble.c \
+ server.c \
+ status.c \
+ subr.c \
+ tag.c \
+ update.c \
+ vers_ts.c \
+ watch.c \
+ wrapper.c \
+ zlib.c \
+ buffer.h \
+ client.h \
+ cvs.h \
+ edit.h \
+ error.h \
+ fileattr.h \
+ hardlink.h \
+ hash.h \
+ myndbm.h \
+ rcs.h \
+ server.h \
+ update.h \
+ watch.h
+
+cvs_LDADD = \
+ ../diff/libdiff.a \
+ ../lib/libcvs.a \
+ ../zlib/libz.a \
+ version.o
+
+cvs_EXTRA_DIST = version.c
+
+# extra clean targets
+# wish this could be distclean-hdr-local but it's not part of automake
+DISTCLEANFILES = options.h-SAVED check.log check.plog
+
+# General
+EXTRA_DIST = \
+ $(cvs_EXTRA_DIST) \
+ .cvsignore \
+ ChangeLog-9194 \
+ ChangeLog-9395 \
+ ChangeLog-96 \
+ ChangeLog-97 \
+ build_src.com \
+ sanity.sh \
+ version.c \
+ version.c.in
+
+EXEEXT =
+OBJEXT = o
+subdir = src
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h options.h
+CONFIG_CLEAN_FILES = cvsbug
+bin_PROGRAMS = cvs$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
+ buffer.$(OBJEXT) checkin.$(OBJEXT) checkout.$(OBJEXT) \
+ classify.$(OBJEXT) client.$(OBJEXT) commit.$(OBJEXT) \
+ create_adm.$(OBJEXT) cvsrc.$(OBJEXT) diff.$(OBJEXT) \
+ edit.$(OBJEXT) entries.$(OBJEXT) error.$(OBJEXT) \
+ expand_path.$(OBJEXT) fileattr.$(OBJEXT) filesubr.$(OBJEXT) \
+ find_names.$(OBJEXT) hardlink.$(OBJEXT) hash.$(OBJEXT) \
+ history.$(OBJEXT) ignore.$(OBJEXT) import.$(OBJEXT) \
+ lock.$(OBJEXT) log.$(OBJEXT) login.$(OBJEXT) logmsg.$(OBJEXT) \
+ main.$(OBJEXT) mkmodules.$(OBJEXT) modules.$(OBJEXT) \
+ myndbm.$(OBJEXT) no_diff.$(OBJEXT) parseinfo.$(OBJEXT) \
+ patch.$(OBJEXT) rcs.$(OBJEXT) rcscmds.$(OBJEXT) \
+ recurse.$(OBJEXT) release.$(OBJEXT) remove.$(OBJEXT) \
+ repos.$(OBJEXT) root.$(OBJEXT) run.$(OBJEXT) scramble.$(OBJEXT) \
+ server.$(OBJEXT) status.$(OBJEXT) subr.$(OBJEXT) tag.$(OBJEXT) \
+ update.$(OBJEXT) vers_ts.$(OBJEXT) watch.$(OBJEXT) \
+ wrapper.$(OBJEXT) zlib.$(OBJEXT)
+cvs_OBJECTS = $(am_cvs_OBJECTS)
+cvs_DEPENDENCIES = ../diff/libdiff.a ../lib/libcvs.a ../zlib/libz.a \
+ version.o
+cvs_LDFLAGS =
+SCRIPTS = $(bin_SCRIPTS)
+
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CFLAGS = @CFLAGS@
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-OBJECTS = add.o admin.o buffer.o checkin.o checkout.o classify.o client.o \
-commit.o create_adm.o cvsrc.o diff.o edit.o entries.o expand_path.o \
-fileattr.o find_names.o hardlink.o hash.o history.o ignore.o import.o \
-lock.o log.o login.o logmsg.o main.o mkmodules.o modules.o myndbm.o no_diff.o \
-parseinfo.o patch.o rcs.o rcscmds.o recurse.o release.o remove.o repos.o \
-root.o rtag.o scramble.o server.o status.o tag.o update.o \
-watch.o wrapper.o vers_ts.o \
-subr.o filesubr.o run.o version.o error.o zlib.o
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I.
+DEFS = @DEFS@
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+DIST_SOURCES = $(cvs_SOURCES)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/add.Po $(DEPDIR)/admin.Po \
+@AMDEP_TRUE@ $(DEPDIR)/annotate.Po $(DEPDIR)/buffer.Po \
+@AMDEP_TRUE@ $(DEPDIR)/checkin.Po $(DEPDIR)/checkout.Po \
+@AMDEP_TRUE@ $(DEPDIR)/classify.Po $(DEPDIR)/client.Po \
+@AMDEP_TRUE@ $(DEPDIR)/commit.Po $(DEPDIR)/create_adm.Po \
+@AMDEP_TRUE@ $(DEPDIR)/cvsrc.Po $(DEPDIR)/diff.Po \
+@AMDEP_TRUE@ $(DEPDIR)/edit.Po $(DEPDIR)/entries.Po \
+@AMDEP_TRUE@ $(DEPDIR)/error.Po $(DEPDIR)/expand_path.Po \
+@AMDEP_TRUE@ $(DEPDIR)/fileattr.Po $(DEPDIR)/filesubr.Po \
+@AMDEP_TRUE@ $(DEPDIR)/find_names.Po $(DEPDIR)/hardlink.Po \
+@AMDEP_TRUE@ $(DEPDIR)/hash.Po $(DEPDIR)/history.Po \
+@AMDEP_TRUE@ $(DEPDIR)/ignore.Po $(DEPDIR)/import.Po \
+@AMDEP_TRUE@ $(DEPDIR)/lock.Po $(DEPDIR)/log.Po \
+@AMDEP_TRUE@ $(DEPDIR)/login.Po $(DEPDIR)/logmsg.Po \
+@AMDEP_TRUE@ $(DEPDIR)/main.Po $(DEPDIR)/mkmodules.Po \
+@AMDEP_TRUE@ $(DEPDIR)/modules.Po $(DEPDIR)/myndbm.Po \
+@AMDEP_TRUE@ $(DEPDIR)/no_diff.Po $(DEPDIR)/parseinfo.Po \
+@AMDEP_TRUE@ $(DEPDIR)/patch.Po $(DEPDIR)/rcs.Po \
+@AMDEP_TRUE@ $(DEPDIR)/rcscmds.Po $(DEPDIR)/recurse.Po \
+@AMDEP_TRUE@ $(DEPDIR)/release.Po $(DEPDIR)/remove.Po \
+@AMDEP_TRUE@ $(DEPDIR)/repos.Po $(DEPDIR)/root.Po \
+@AMDEP_TRUE@ $(DEPDIR)/run.Po $(DEPDIR)/scramble.Po \
+@AMDEP_TRUE@ $(DEPDIR)/server.Po $(DEPDIR)/status.Po \
+@AMDEP_TRUE@ $(DEPDIR)/subr.Po $(DEPDIR)/tag.Po \
+@AMDEP_TRUE@ $(DEPDIR)/update.Po $(DEPDIR)/vers_ts.Po \
+@AMDEP_TRUE@ $(DEPDIR)/watch.Po $(DEPDIR)/wrapper.Po \
+@AMDEP_TRUE@ $(DEPDIR)/zlib.Po
+DIST_COMMON = ./stamp-h2.in ChangeLog Makefile.am Makefile.in cvsbug.in \
+ options.h.in
+SOURCES = $(cvs_SOURCES)
+OBJECTS = $(am_cvs_OBJECTS)
+
+all: options.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+
+options.h: stamp-h2
+ @if test ! -f $@; then \
+ rm -f stamp-h2; \
+ $(MAKE) stamp-h2; \
+ else :; fi
+stamp-h2: $(srcdir)/options.h.in $(top_builddir)/config.status
+ @rm -f stamp-h2 stamp-h2T
+ @echo timestamp > stamp-h2T 2> /dev/null
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=src/options.h \
+ $(SHELL) ./config.status
+ @mv stamp-h2T stamp-h2
+$(srcdir)/options.h.in: $(srcdir)/./stamp-h2.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/./stamp-h2.in; \
+ $(MAKE) $(srcdir)/./stamp-h2.in; \
+ else :; fi
+$(srcdir)/./stamp-h2.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+ @rm -f $(srcdir)/./stamp-h2.in $(srcdir)/./stamp-h2.inT
+ @echo timestamp > $(srcdir)/./stamp-h2.inT 2> /dev/null
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @mv $(srcdir)/./stamp-h2.inT $(srcdir)/./stamp-h2.in
+
+distclean-hdr:
+ -rm -f options.h
+cvsbug: $(top_builddir)/config.status cvsbug.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
-HEADERS = buffer.h cvs.h rcs.h hardlink.h hash.h myndbm.h \
- update.h server.h client.h error.h fileattr.h edit.h watch.h
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
-TAGFILES = $(HEADERS) options.h.in $(SOURCES)
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+cvs$(EXEEXT): $(cvs_OBJECTS) $(cvs_DEPENDENCIES)
+ @rm -f cvs$(EXEEXT)
+ $(LINK) $(cvs_LDFLAGS) $(cvs_OBJECTS) $(cvs_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/$$f; \
+ elif test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
-DISTFILES = .cvsignore Makefile.in \
- ChangeLog ChangeLog-97 ChangeLog-96 ChangeLog-9395 ChangeLog-9194 \
- sanity.sh cvsbug.sh $(TAGFILES) build_src.com
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f="`echo $$p|sed '$(transform)'`"; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
-PROGS = cvs cvsbug
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) options.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list @CONFIG@; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)options.h.in$$unique$(LISP)$$tags" \
+ || $(ETAGS) $(ETAGS_ARGS) $$tags options.h.in $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $$here
+
+distclean-tags:
+ -rm -f TAGS ID
+
+@_am_include@ @_am_quote@$(DEPDIR)/add.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/admin.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/annotate.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/buffer.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/checkin.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/checkout.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/classify.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/client.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/commit.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/create_adm.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/cvsrc.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/diff.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/edit.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/entries.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/error.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/expand_path.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/fileattr.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/filesubr.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/find_names.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/hardlink.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/hash.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/history.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/ignore.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/import.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/lock.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/log.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/login.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/logmsg.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/main.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/mkmodules.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/modules.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/myndbm.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/no_diff.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/parseinfo.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/patch.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/rcs.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/rcscmds.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/recurse.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/release.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/remove.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/repos.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/root.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/run.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/scramble.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/server.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/status.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/subr.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/tag.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/update.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/vers_ts.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/watch.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/wrapper.Po@_am_quote@
+@_am_include@ @_am_quote@$(DEPDIR)/zlib.Po@_am_quote@
+
+distclean-depend:
+ -rm -rf $(DEPDIR)
+
+CCDEPMODE = @CCDEPMODE@
-DEFS = @DEFS@ @includeopt@
+.c.o:
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c -o $@ `cygpath -w $<`
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(PROGRAMS) $(SCRIPTS) options.h
-CC = @CC@
-CFLAGS = @CFLAGS@
-CPPFLAGS =
-LDFLAGS = @LDFLAGS@
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(bindir)
-INCLUDES = -I. -I.. -I$(srcdir) -I$(top_srcdir)/lib
-.c.o:
- $(CC) $(CPPFLAGS) $(INCLUDES) $(DEFS) $(CFLAGS) -c $<
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
-all: Makefile $(PROGS)
-.PHONY: all
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-saber_cvs:
- @cd ..; $(MAKE) saber SUBDIRS=src
+installcheck: installcheck-am
-lint:
- @cd ..; $(MAKE) lint SUBDIRS=src
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
-install: installdirs
- @for prog in $(PROGS); do \
- echo Installing $$prog in $(bindir); \
- $(INSTALL) $$prog $(bindir)/$$prog ; \
- done
+mostlyclean-generic:
-installdirs:
- $(SHELL) $(top_srcdir)/mkinstalldirs $(bindir)
+clean-generic:
-.PHONY: install installdirs
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-installcheck:
- $(SHELL) $(srcdir)/sanity.sh $(bindir)/cvs
-.PHONY: installcheck
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f Makefile.in
+clean: clean-am
-check: all
- $(SHELL) $(srcdir)/sanity.sh `pwd`/cvs
-.PHONY: check
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-# I'm not sure there is any remaining reason for this to be separate from
-# `make check'.
-remotecheck: all
- $(SHELL) $(srcdir)/sanity.sh -r `pwd`/cvs
-.PHONY: remotecheck
+distclean: distclean-am
-tags: $(TAGFILES)
- ctags $(TAGFILES)
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-hdr distclean-tags
-TAGS: $(TAGFILES)
- etags `for i in $(TAGFILES); do echo $(srcdir)/$$i; done`
+dvi:
-ls:
- @echo $(DISTFILES)
-.PHONY: ls
+dvi-am:
-clean:
- rm -f $(PROGS) *.o core check.log check.plog
-.PHONY: clean
+info:
-distclean: clean
- rm -f tags TAGS Makefile options.h
-.PHONY: distclean
+info-am:
-realclean: distclean
-.PHONY: realclean
+install-data-am:
-dist-dir:
- mkdir ${DISTDIR}
- for i in ${DISTFILES}; do \
- ln $(srcdir)/$${i} ${DISTDIR}; \
- done
-.PHONY: dist-dir
+install-exec-am: install-binPROGRAMS install-binSCRIPTS
-# Linking rules.
+install-info:
-$(PROGS): ../lib/libcvs.a ../zlib/libz.a ../diff/libdiff.a
+install-man:
-cvs: $(OBJECTS)
- $(CC) $(OBJECTS) ../lib/libcvs.a ../zlib/libz.a ../diff/libdiff.a $(LIBS) $(LDFLAGS) -o $@
+installcheck-am:
-xlint: $(SOURCES)
- files= ; \
- for i in $(SOURCES) ; do \
- files="$$files $(srcdir)/$$i" ; \
- done ; \
- sh -c "lint $(DEFS) $(INCLUDES) $$files | grep -v \"possible pointer alignment problem\" \
- | grep -v \"argument closure unused\""
+maintainer-clean: maintainer-clean-am
-saber: $(SOURCES)
- # load $(CFLAGS) $(SOURCES)
- # load ../lib/libcvs.a $(LIBS)
+maintainer-clean-am: distclean-am maintainer-clean-generic
-cvsbug: cvsbug.sh $(srcdir)/version.c
- echo > .fname \
- cvs-`sed < $(srcdir)/version.c \
- -e '/version_string/!d' \
- -e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
- -e q`
- sed -e 's,xLIBDIRx,$(libdir)/cvs,g' \
- -e "s,xVERSIONx,`cat .fname`,g" $(srcdir)/$@.sh > $@-t
- rm -f .fname
- mv $@-t $@
- chmod a+x $@
+mostlyclean: mostlyclean-am
-# Compilation rules.
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
-$(OBJECTS): $(HEADERS) options.h
+uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
-rcscmds.o: rcscmds.c $(top_srcdir)/diff/diffrun.h
- $(CC) $(CPPFLAGS) $(INCLUDES) -I$(top_srcdir)/diff $(DEFS) $(CFLAGS) -c $(srcdir)/rcscmds.c
+.PHONY: all all-am check check-am check-local clean clean-binPROGRAMS \
+ clean-generic distclean distclean-compile distclean-depend \
+ distclean-generic distclean-hdr distclean-tags distdir dvi \
+ dvi-am info info-am install install-am install-binPROGRAMS \
+ install-binSCRIPTS install-data install-data-am install-exec \
+ install-exec-am install-info install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic tags uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-binSCRIPTS
-zlib.o: zlib.c $(top_srcdir)/zlib/zlib.h
- $(CC) $(CPPFLAGS) $(INCLUDES) -I$(top_srcdir)/zlib $(DEFS) $(CFLAGS) -c $(srcdir)/zlib.c
-subdir = src
-Makefile: ../config.status Makefile.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+check-local:
+ $(SHELL) $(srcdir)/sanity.sh `pwd`/cvs
-options.h: ../config.status options.h.in
- cd .. && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+.PHONY: remotecheck
+remotecheck: all
+ $(SHELL) $(srcdir)/sanity.sh -r `pwd`/cvs
-#../config.status: ../configure
-# cd .. ; $(SHELL) config.status --recheck
+# version.c
+# - build this here so that we can distribute it
+# - version.c needs to be updated only once, since it depends on
+# configure.in, not on the results of a 'configure' run.
+# - It is guaranteed (with GNU Make) that when the version in configure.in
+# is changed, acversion.m4 is built only after the new version number is
+# propagated to the Makefile. (Libtool uses the same guarantee.)
+# - need the explicit version.o dependency or else make won't match
+# $(srcdir)/version.c when looking for a dependency for version.c
+version.o: $(srcdir)/version.c
+$(srcdir)/version.c: $(srcdir)/version.c.in $(top_srcdir)/configure.in
+ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/version.c.in >$(srcdir)/version.tc
+ mv $(srcdir)/version.tc $(srcdir)/version.c
+
+# for backwards compatibility with the old makefiles
+.PHONY: realclean
+realclean: maintainer-clean
-#../configure: ../configure.in
-# cd $(top_srcdir) ; autoconf
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/cvs/src/add.c b/contrib/cvs/src/add.c
index dbefda59ca5a..9ec6a3d63d41 100644
--- a/contrib/cvs/src/add.c
+++ b/contrib/cvs/src/add.c
@@ -93,7 +93,7 @@ add (argc, argv)
if (argc <= 0)
usage (add_usage);
- cvsroot_len = strlen (CVSroot_directory);
+ cvsroot_len = strlen (current_parsed_root->directory);
/* First some sanity checks. I know that the CVS case is (sort of)
also handled by add_directory, but we need to check here so the
@@ -111,7 +111,8 @@ add (argc, argv)
|| strcmp (argv[i], "..") == 0
|| fncmp (argv[i], CVSADM) == 0)
{
- error (0, 0, "cannot add special file `%s'; skipping", argv[i]);
+ if (!quiet)
+ error (0, 0, "cannot add special file `%s'; skipping", argv[i]);
skip_file = 1;
}
else
@@ -147,7 +148,7 @@ add (argc, argv)
}
#ifdef CLIENT_SUPPORT
- if (client_active)
+ if (current_parsed_root->isremote)
{
int i;
@@ -227,7 +228,7 @@ add (argc, argv)
repository = Name_Repository (NULL, update_dir);
/* don't add stuff to Emptydir */
- if (strncmp (repository, CVSroot_directory, cvsroot_len) == 0
+ if (strncmp (repository, current_parsed_root->directory, cvsroot_len) == 0
&& ISDIRSEP (repository[cvsroot_len])
&& strncmp (repository + cvsroot_len + 1,
CVSROOTADM,
@@ -323,7 +324,7 @@ add (argc, argv)
repository = Name_Repository (NULL, finfo.update_dir);
/* don't add stuff to Emptydir */
- if (strncmp (repository, CVSroot_directory, cvsroot_len) == 0
+ if (strncmp (repository, current_parsed_root->directory, cvsroot_len) == 0
&& ISDIRSEP (repository[cvsroot_len])
&& strncmp (repository + cvsroot_len + 1,
CVSROOTADM,
@@ -356,7 +357,7 @@ add (argc, argv)
error (1, errno, "cannot read directory %s", finfo.repository);
found_name = NULL;
errno = 0;
- while ((dp = readdir (dirp)) != NULL)
+ while ((dp = CVS_READDIR (dirp)) != NULL)
{
if (cvs_casecmp (dp->d_name, finfo.file) == 0)
{
@@ -368,7 +369,7 @@ add (argc, argv)
}
if (errno != 0)
error (1, errno, "cannot read directory %s", finfo.repository);
- closedir (dirp);
+ CVS_CLOSEDIR (dirp);
if (found_name != NULL)
{
@@ -448,8 +449,8 @@ add (argc, argv)
if (vers->nonbranch)
{
error (0, 0,
- "cannot add file on non-branch tag %s",
- vers->tag);
+ "cannot add file on non-branch tag %s",
+ vers->tag);
++err;
}
else
@@ -505,18 +506,21 @@ same name already exists in the repository.");
}
else
{
- if (vers->tag)
- error (0, 0, "\
+ if (!quiet)
+ {
+ if (vers->tag)
+ error (0, 0, "\
file `%s' will be added on branch `%s' from version %s",
- finfo.fullname, vers->tag, vers->vn_rcs);
- else
- /* I'm not sure that mentioning
- vers->vn_rcs makes any sense here; I
- can't think of a way to word the
- message which is not confusing. */
- error (0, 0, "\
+ finfo.fullname, vers->tag, vers->vn_rcs);
+ else
+ /* I'm not sure that mentioning
+ vers->vn_rcs makes any sense here; I
+ can't think of a way to word the
+ message which is not confusing. */
+ error (0, 0, "\
re-adding file %s (in place of dead revision %s)",
- finfo.fullname, vers->vn_rcs);
+ finfo.fullname, vers->vn_rcs);
+ }
Register (entries, finfo.file, "0", vers->ts_user,
vers->options,
vers->tag, NULL, NULL);
@@ -542,7 +546,8 @@ re-adding file %s (in place of dead revision %s)",
* An entry for a new-born file, ts_rcs is dummy, but that is
* inappropriate here
*/
- error (0, 0, "%s has already been entered", finfo.fullname);
+ if (!quiet)
+ error (0, 0, "%s has already been entered", finfo.fullname);
err++;
}
else if (vers->vn_user[0] == '-')
@@ -607,9 +612,10 @@ cannot resurrect %s; RCS file removed by second party", finfo.fullname);
else
{
/* A normal entry, ts_rcs is valid, so it must already be there */
- error (0, 0, "%s already exists, with version number %s",
- finfo.fullname,
- vers->vn_user);
+ if (!quiet)
+ error (0, 0, "%s already exists, with version number %s",
+ finfo.fullname,
+ vers->vn_user);
err++;
}
freevers_ts (&vers);
@@ -641,7 +647,7 @@ cannot resurrect %s; RCS file removed by second party", finfo.fullname);
free (found_name);
#endif
}
- if (added_files)
+ if (added_files && !really_quiet)
error (0, 0, "use '%s commit' to add %s permanently",
program_name,
(added_files == 1) ? "this file" : "these files");
diff --git a/contrib/cvs/src/admin.c b/contrib/cvs/src/admin.c
index 637663a569dd..359bedf1a653 100644
--- a/contrib/cvs/src/admin.c
+++ b/contrib/cvs/src/admin.c
@@ -46,13 +46,13 @@ static const char *const admin_usage[] =
"\t revision on the default branch.\n",
"\t-N tag[:[rev]] Same as -n except override existing tag.\n",
"\t-o range Delete (outdate) specified range of revisions:\n",
+ "\t rev1:rev2 Between rev1 and rev2, including rev1 and rev2.\n",
"\t rev1::rev2 Between rev1 and rev2, excluding rev1 and rev2.\n",
+ "\t rev: rev and following revisions on the same branch.\n",
"\t rev:: After rev on the same branch.\n",
+ "\t :rev rev and previous revisions on the same branch.\n",
"\t ::rev Before rev on the same branch.\n",
"\t rev Just rev.\n",
- "\t rev1:rev2 Between rev1 and rev2, including rev1 and rev2.\n",
- "\t rev: rev and following revisions on the same branch.\n",
- "\t :rev rev and previous revisions on the same branch.\n",
"\t-q Run quietly.\n",
"\t-s state[:rev] Set revision state (latest revision on branch,\n",
"\t latest revision on trunk if omitted).\n",
@@ -97,10 +97,6 @@ struct admin_data
/* Interactive (-I). Problematic with client/server. */
int interactive;
- /* Quiet (-q). Not the same as the global -q option, which is a bit
- on the confusing side, perhaps. */
- int quiet;
-
/* This is the cheesy part. It is a vector with the options which
we don't deal with above (e.g. "-afoo" "-abar,baz"). In the future
this presumably will be replaced by other variables which break
@@ -337,7 +333,15 @@ admin (argc, argv)
break;
case 'q':
- admin_data.quiet = 1;
+ /* Silently set the global really_quiet flag. This keeps admin in
+ * sync with the RCS man page and allows us to silently support
+ * older servers when necessary.
+ *
+ * Some logic says we might want to output a deprecation warning
+ * here, but I'm opting not to in order to stay quietly in sync
+ * with the RCS man page.
+ */
+ really_quiet = 1;
break;
case 'x':
@@ -372,29 +376,40 @@ admin (argc, argv)
argv += optind;
#ifdef CVS_ADMIN_GROUP
- grp = getgrnam(CVS_ADMIN_GROUP);
- /* skip usage right check if group CVS_ADMIN_GROUP does not exist */
- if (grp != NULL)
+ /* The use of `cvs admin -k' is unrestricted. However, any other
+ option is restricted if the group CVS_ADMIN_GROUP exists. */
+ if (!only_k_option &&
+ (grp = getgrnam(CVS_ADMIN_GROUP)) != NULL)
{
+#ifdef HAVE_GETGROUPS
+ gid_t *grps;
+ int n;
+
+ /* get number of auxiliary groups */
+ n = getgroups (0, NULL);
+ if (n < 0)
+ error (1, errno, "unable to get number of auxiliary groups");
+ grps = (gid_t *) xmalloc((n + 1) * sizeof *grps);
+ n = getgroups (n, grps);
+ if (n < 0)
+ error (1, errno, "unable to get list of auxiliary groups");
+ grps[n] = getgid();
+ for (i = 0; i <= n; i++)
+ if (grps[i] == grp->gr_gid) break;
+ free (grps);
+ if (i > n)
+ error (1, 0, "usage is restricted to members of the group %s",
+ CVS_ADMIN_GROUP);
+#else
char *me = getcaller();
- char **grnam = grp->gr_mem;
- /* The use of `cvs admin -k' is unrestricted. However, any
- other option is restricted. */
- int denied = ! only_k_option;
+ char **grnam;
- while (*grnam)
- {
- if (strcmp(*grnam, me) == 0)
- {
- denied = 0;
- break;
- }
- grnam++;
- }
-
- if (denied)
+ for (grnam = grp->gr_mem; *grnam; grnam++)
+ if (strcmp (*grnam, me) == 0) break;
+ if (!*grnam && getgid() != grp->gr_gid)
error (1, 0, "usage is restricted to members of the group %s",
CVS_ADMIN_GROUP);
+#endif
}
#endif
@@ -427,7 +442,7 @@ admin (argc, argv)
}
#ifdef CLIENT_SUPPORT
- if (client_active)
+ if (current_parsed_root->isremote)
{
/* We're the client side. Fire up the remote server. */
start_server ();
@@ -470,7 +485,10 @@ admin (argc, argv)
}
send_to_server ("\012", 1);
}
- if (admin_data.quiet)
+ /* Send this for all really_quiets since we know that it will be silently
+ * ignored when unneeded. This supports old servers.
+ */
+ if (really_quiet)
send_arg ("-q");
if (admin_data.kflag != NULL)
send_arg (admin_data.kflag);
@@ -486,7 +504,7 @@ admin (argc, argv)
}
#endif /* CLIENT_SUPPORT */
- lock_tree_for_write (argc, argv, 0, 0);
+ lock_tree_for_write (argc, argv, 0, W_LOCAL, 0);
err = start_recursion (admin_fileproc, (FILESDONEPROC) NULL, admin_dirproc,
(DIRLEAVEPROC) NULL, (void *)&admin_data,
@@ -546,7 +564,7 @@ admin_fileproc (callerdat, finfo)
status = 0;
- if (!admin_data->quiet)
+ if (!really_quiet)
{
cvs_output ("RCS file: ", 0);
cvs_output (rcs->path, 0);
@@ -767,9 +785,10 @@ admin_fileproc (callerdat, finfo)
}
else
{
- error (0, 0,
- "%s: Symbolic name or revision %s is undefined",
- rcs->path, p);
+ if (!really_quiet)
+ error (0, 0,
+ "%s: Symbolic name or revision %s is undefined.",
+ rcs->path, p);
status = 1;
}
free (tag);
@@ -854,12 +873,10 @@ admin_fileproc (callerdat, finfo)
}
}
- /* TODO: reconcile the weird discrepancies between
- admin_data->quiet and quiet. */
if (status == 0)
{
RCS_rewrite (rcs, NULL, NULL);
- if (!admin_data->quiet)
+ if (!really_quiet)
cvs_output ("done\n", 5);
}
else
@@ -868,7 +885,8 @@ admin_fileproc (callerdat, finfo)
message has given a more specific error. The point of this
additional message is to make it clear that the previous problems
caused CVS to forget about the idea of modifying the RCS file. */
- error (0, 0, "cannot modify RCS file for `%s'", finfo->file);
+ if (!really_quiet)
+ error (0, 0, "RCS file for `%s' not modified.", finfo->file);
RCS_abandon (rcs);
}
diff --git a/contrib/cvs/src/annotate.c b/contrib/cvs/src/annotate.c
new file mode 100644
index 000000000000..827619d29b36
--- /dev/null
+++ b/contrib/cvs/src/annotate.c
@@ -0,0 +1,277 @@
+/*
+ * Copyright (c) 1992, Brian Berliner and Jeff Polk
+ * Copyright (c) 1989-1992, Brian Berliner
+ *
+ * You may distribute under the terms of the GNU General Public License as
+ * specified in the README file that comes with the CVS source distribution.
+ *
+ * Show last revision where each line modified
+ *
+ * Prints the specified files with each line annotated with the revision
+ * number where it was last modified. With no argument, annotates all
+ * all the files in the directory (recursive by default).
+ */
+
+#include "cvs.h"
+
+/* Options from the command line. */
+
+static int force_tag_match = 1;
+static char *tag = NULL;
+static int tag_validated;
+static char *date = NULL;
+
+static int is_rannotate;
+
+static int annotate_fileproc PROTO ((void *callerdat, struct file_info *));
+static int rannotate_proc PROTO((int argc, char **argv, char *xwhere,
+ char *mwhere, char *mfile, int shorten,
+ int local, char *mname, char *msg));
+
+static const char *const annotate_usage[] =
+{
+ "Usage: %s %s [-lRf] [-r rev] [-D date] [files...]\n",
+ "\t-l\tLocal directory only, no recursion.\n",
+ "\t-R\tProcess directories recursively.\n",
+ "\t-f\tUse head revision if tag/date not found.\n",
+ "\t-r rev\tAnnotate file as of specified revision/tag.\n",
+ "\t-D date\tAnnotate file as of specified date.\n",
+ "(Specify the --help global option for a list of other help options)\n",
+ NULL
+};
+
+/* Command to show the revision, date, and author where each line of a
+ file was modified. */
+
+int
+annotate (argc, argv)
+ int argc;
+ char **argv;
+{
+ int local = 0;
+ int err = 0;
+ int c;
+
+ is_rannotate = (strcmp(command_name, "rannotate") == 0);
+
+ if (argc == -1)
+ usage (annotate_usage);
+
+ optind = 0;
+ while ((c = getopt (argc, argv, "+lr:D:fR")) != -1)
+ {
+ switch (c)
+ {
+ case 'l':
+ local = 1;
+ break;
+ case 'R':
+ local = 0;
+ break;
+ case 'r':
+ tag = optarg;
+ break;
+ case 'D':
+ date = Make_Date (optarg);
+ break;
+ case 'f':
+ force_tag_match = 0;
+ break;
+ case '?':
+ default:
+ usage (annotate_usage);
+ break;
+ }
+ }
+ argc -= optind;
+ argv += optind;
+
+#ifdef CLIENT_SUPPORT
+ if (current_parsed_root->isremote)
+ {
+ start_server ();
+
+ if (is_rannotate && !supported_request ("rannotate"))
+ error (1, 0, "server does not support rannotate");
+
+ ign_setup ();
+
+ if (local)
+ send_arg ("-l");
+ if (!force_tag_match)
+ send_arg ("-f");
+ option_with_arg ("-r", tag);
+ if (date)
+ client_senddate (date);
+ if (is_rannotate)
+ {
+ int i;
+ for (i = 0; i < argc; i++)
+ send_arg (argv[i]);
+ send_to_server ("rannotate\012", 0);
+ }
+ else
+ {
+ send_files (argc, argv, local, 0, SEND_NO_CONTENTS);
+ send_file_names (argc, argv, SEND_EXPAND_WILD);
+ send_to_server ("annotate\012", 0);
+ }
+ return get_responses_and_close ();
+ }
+#endif /* CLIENT_SUPPORT */
+
+ if (is_rannotate)
+ {
+ DBM *db;
+ int i;
+ db = open_module ();
+ for (i = 0; i < argc; i++)
+ {
+ err += do_module (db, argv[i], MISC, "Annotating", rannotate_proc,
+ (char *) NULL, 0, 0, 0, 0, (char *) NULL);
+ }
+ close_module (db);
+ }
+ else
+ {
+ err = rannotate_proc (argc + 1, argv - 1, (char *) NULL,
+ (char *) NULL, (char *) NULL, 0, 0, (char *) NULL,
+ (char *) NULL);
+ }
+
+ return err;
+}
+
+
+static int
+rannotate_proc (argc, argv, xwhere, mwhere, mfile, shorten, local, mname, msg)
+ int argc;
+ char **argv;
+ char *xwhere;
+ char *mwhere;
+ char *mfile;
+ int shorten;
+ int local;
+ char *mname;
+ char *msg;
+{
+ /* Begin section which is identical to patch_proc--should this
+ be abstracted out somehow? */
+ char *myargv[2];
+ int err = 0;
+ int which;
+ char *repository;
+ char *where;
+
+ if (is_rannotate)
+ {
+ repository = xmalloc (strlen (current_parsed_root->directory) + strlen (argv[0])
+ + (mfile == NULL ? 0 : strlen (mfile) + 1) + 2);
+ (void) sprintf (repository, "%s/%s", current_parsed_root->directory, argv[0]);
+ where = xmalloc (strlen (argv[0]) + (mfile == NULL ? 0 : strlen (mfile) + 1)
+ + 1);
+ (void) strcpy (where, argv[0]);
+
+ /* if mfile isn't null, we need to set up to do only part of the module */
+ if (mfile != NULL)
+ {
+ char *cp;
+ char *path;
+
+ /* if the portion of the module is a path, put the dir part on repos */
+ if ((cp = strrchr (mfile, '/')) != NULL)
+ {
+ *cp = '\0';
+ (void) strcat (repository, "/");
+ (void) strcat (repository, mfile);
+ (void) strcat (where, "/");
+ (void) strcat (where, mfile);
+ mfile = cp + 1;
+ }
+
+ /* take care of the rest */
+ path = xmalloc (strlen (repository) + strlen (mfile) + 5);
+ (void) sprintf (path, "%s/%s", repository, mfile);
+ if (isdir (path))
+ {
+ /* directory means repository gets the dir tacked on */
+ (void) strcpy (repository, path);
+ (void) strcat (where, "/");
+ (void) strcat (where, mfile);
+ }
+ else
+ {
+ myargv[0] = argv[0];
+ myargv[1] = mfile;
+ argc = 2;
+ argv = myargv;
+ }
+ free (path);
+ }
+
+ /* cd to the starting repository */
+ if ( CVS_CHDIR (repository) < 0)
+ {
+ error (0, errno, "cannot chdir to %s", repository);
+ free (repository);
+ return (1);
+ }
+ free (repository);
+ /* End section which is identical to patch_proc. */
+
+ if (force_tag_match && tag != NULL)
+ which = W_REPOS | W_ATTIC;
+ else
+ which = W_REPOS;
+ repository = NULL;
+ }
+ else
+ {
+ where = NULL;
+ which = W_LOCAL;
+ repository = "";
+ }
+
+ if (tag != NULL && !tag_validated)
+ {
+ tag_check_valid (tag, argc - 1, argv + 1, local, 0, repository);
+ tag_validated = 1;
+ }
+
+ err = start_recursion (annotate_fileproc, (FILESDONEPROC) NULL,
+ (DIRENTPROC) NULL, (DIRLEAVEPROC) NULL, NULL,
+ argc - 1, argv + 1, local, which, 0, 1,
+ where, 1);
+ return err;
+}
+
+
+static int
+annotate_fileproc (callerdat, finfo)
+ void *callerdat;
+ struct file_info *finfo;
+{
+ char *version;
+
+ if (finfo->rcs == NULL)
+ return (1);
+
+ if (finfo->rcs->flags & PARTIAL)
+ RCS_reparsercsfile (finfo->rcs, (FILE **) NULL, (struct rcsbuffer *) NULL);
+
+ version = RCS_getversion (finfo->rcs, tag, date, force_tag_match,
+ (int *) NULL);
+ if (version == NULL)
+ return 0;
+
+ /* Distinguish output for various files if we are processing
+ several files. */
+ cvs_outerr ("Annotations for ", 0);
+ cvs_outerr (finfo->fullname, 0);
+ cvs_outerr ("\n***************\n", 0);
+
+ RCS_deltas (finfo->rcs, (FILE *) NULL, (struct rcsbuffer *) NULL,
+ version, RCS_ANNOTATE, NULL, NULL, NULL, NULL);
+ free (version);
+ return 0;
+}
diff --git a/contrib/cvs/src/checkout.c b/contrib/cvs/src/checkout.c
index 1a66b5be6f95..86dc9510eb0b 100644
--- a/contrib/cvs/src/checkout.c
+++ b/contrib/cvs/src/checkout.c
@@ -44,7 +44,7 @@ static int checkout_proc PROTO((int argc, char **argv, char *where,
static const char *const checkout_usage[] =
{
- "Usage:\n %s %s [-ANPRcflnps] [-r rev | -D date] [-d dir]\n",
+ "Usage:\n %s %s [-ANPRcflnps] [-r rev] [-D date] [-d dir]\n",
" [-j rev1] [-j rev2] [-k kopt] modules...\n",
"\t-A\tReset any sticky tags/date/kopts.\n",
"\t-N\tDon't shorten module paths if -d specified.\n",
@@ -59,7 +59,7 @@ static const char *const checkout_usage[] =
"\t-r rev\tCheck out revision or tag. (implies -P) (is sticky)\n",
"\t-D date\tCheck out revisions as of date. (implies -P) (is sticky)\n",
"\t-d dir\tCheck out into dir instead of module name.\n",
- "\t-k kopt\tUse RCS kopt -k option on checkout.\n",
+ "\t-k kopt\tUse RCS kopt -k option on checkout. (is sticky)\n",
"\t-j rev\tMerge in changes made between current revision and rev.\n",
"(Specify the --help global option for a list of other help options)\n",
NULL
@@ -67,7 +67,7 @@ static const char *const checkout_usage[] =
static const char *const export_usage[] =
{
- "Usage: %s %s [-NRfln] [-r rev | -D date] [-d dir] [-k kopt] module...\n",
+ "Usage: %s %s [-NRfln] [-r rev] [-D date] [-d dir] [-k kopt] module...\n",
"\t-N\tDon't shorten module paths if -d specified.\n",
"\t-f\tForce a head revision match if tag/date not found.\n",
"\t-l\tLocal directory only, not recursive\n",
@@ -190,7 +190,7 @@ checkout (argc, argv)
shorten = 1;
break;
case 's':
- status = 1;
+ cat = status = 1;
break;
case 'f':
force_tag_match = 0;
@@ -223,10 +223,10 @@ checkout (argc, argv)
if (shorten == -1)
shorten = 0;
- if ((cat || status) && argc != 0)
+ if (cat && argc != 0)
error (1, 0, "-c and -s must not get any arguments");
- if (!(cat || status) && argc == 0)
+ if (!cat && argc == 0)
error (1, 0, "must specify at least one module or directory");
if (where && pipeout)
@@ -248,12 +248,12 @@ checkout (argc, argv)
}
#endif
- if (!safe_location()) {
+ if (!cat && !safe_location()) {
error(1, 0, "Cannot check out files into the repository itself");
}
#ifdef CLIENT_SUPPORT
- if (client_active)
+ if (current_parsed_root->isremote)
{
int expand_modules;
@@ -269,7 +269,7 @@ checkout (argc, argv)
below in !expand_modules), those files (CVS/Checkin.prog
or CVS/Update.prog) don't get created. Grrr. */
- expand_modules = (!cat && !status && !pipeout
+ expand_modules = (!cat && !pipeout
&& supported_request ("expand-modules"));
if (expand_modules)
@@ -296,7 +296,7 @@ checkout (argc, argv)
if (checkout_prune_dirs && m_type == CHECKOUT)
send_arg("-P");
client_prune_dirs = checkout_prune_dirs;
- if (cat)
+ if (cat && !status)
send_arg("-c");
if (where != NULL)
option_with_arg ("-d", where);
@@ -329,7 +329,7 @@ checkout (argc, argv)
}
#endif /* CLIENT_SUPPORT */
- if (cat || status)
+ if (cat)
{
cat_module (status);
if (options)
@@ -367,7 +367,7 @@ checkout (argc, argv)
for (i = 0; i < argc; i++)
err += do_module (db, argv[i], m_type, "Updating", checkout_proc,
- where, shorten, local, run_module_prog,
+ where, shorten, local, run_module_prog, !pipeout,
(char *) NULL);
close_module (db);
if (options)
@@ -391,13 +391,13 @@ safe_location ()
/* FIXME-arbitrary limit: should be retrying this like xgetwd.
But how does readlink let us know that the buffer was too small?
(by returning sizeof hardpath - 1?). */
- x = readlink(CVSroot_directory, hardpath, sizeof hardpath - 1);
+ x = readlink(current_parsed_root->directory, hardpath, sizeof hardpath - 1);
#else
x = -1;
#endif
if (x == -1)
{
- strcpy(hardpath, CVSroot_directory);
+ strcpy(hardpath, current_parsed_root->directory);
}
else
{
@@ -466,8 +466,8 @@ build_one_dir (repository, dirpath, sticky)
error (1, 0, "there is no repository %s", repository);
if (Create_Admin (".", dirpath, repository,
- sticky ? (char *) NULL : tag,
- sticky ? (char *) NULL : date,
+ sticky ? tag : (char *) NULL,
+ sticky ? date : (char *) NULL,
/* FIXME? This is a guess. If it is important
for nonbranch to be set correctly here I
@@ -529,11 +529,11 @@ checkout_proc (argc, argv, where_orig, mwhere, mfile, shorten,
/* Set up the repository (maybe) for the bottom directory.
Allocate more space than we need so we don't need to keep
reallocating this string. */
- repository = xmalloc (strlen (CVSroot_directory)
+ repository = xmalloc (strlen (current_parsed_root->directory)
+ strlen (argv[0])
+ (mfile == NULL ? 0 : strlen (mfile))
+ 10);
- (void) sprintf (repository, "%s/%s", CVSroot_directory, argv[0]);
+ (void) sprintf (repository, "%s/%s", current_parsed_root->directory, argv[0]);
Sanitize_Repository_Name (repository);
@@ -709,11 +709,11 @@ checkout_proc (argc, argv, where_orig, mwhere, mfile, shorten,
struct dir_to_build *head;
char *reposcopy;
- if (strncmp (repository, CVSroot_directory,
- strlen (CVSroot_directory)) != 0)
+ if (strncmp (repository, current_parsed_root->directory,
+ strlen (current_parsed_root->directory)) != 0)
error (1, 0, "\
internal error: %s doesn't start with %s in checkout_proc",
- repository, CVSroot_directory);
+ repository, current_parsed_root->directory);
/* We always create at least one directory, which corresponds to
the entire strings for WHERE and REPOSITORY. */
@@ -798,7 +798,7 @@ internal error: %s doesn't start with %s in checkout_proc",
bar -> Emptydir (generated dir -- not in repos)
baz -> quux (finally!) */
- if (strcmp (reposcopy, CVSroot_directory) == 0)
+ if (strcmp (reposcopy, current_parsed_root->directory) == 0)
{
/* We can't walk up past CVSROOT. Instead, the
repository should be Emptydir. */
@@ -806,55 +806,30 @@ internal error: %s doesn't start with %s in checkout_proc",
}
else
{
- if ((where_orig != NULL)
- && (strcmp (new->dirpath, where_orig) == 0))
- {
- /* It's the case that the user specified a
- * destination directory with the "-d" flag. The
- * repository in this directory should be "."
- * since the user's command is equivalent to:
- *
- * cd <dir>; cvs co blah */
-
- strcpy (reposcopy, CVSroot_directory);
- goto allocate_repos;
- }
- else if (mwhere != NULL)
- {
- /* This is a generated directory, so point to
- CVSNULLREPOS. */
-
- new->repository = emptydir_name ();
- }
- else
- {
- /* It's a directory in the repository! */
+ /* It's a directory in the repository! */
- char *rp;
+ char *rp;
- /* We'll always be below CVSROOT, but check for
- paranoia's sake. */
- rp = strrchr (reposcopy, '/');
- if (rp == NULL)
- error (1, 0,
- "internal error: %s doesn't contain a slash",
- reposcopy);
+ /* We'll always be below CVSROOT, but check for
+ paranoia's sake. */
+ rp = strrchr (reposcopy, '/');
+ if (rp == NULL)
+ error (1, 0,
+ "internal error: %s doesn't contain a slash",
+ reposcopy);
- *rp = '\0';
-
- allocate_repos:
- new->repository = xmalloc (strlen (reposcopy) + 5);
- (void) strcpy (new->repository, reposcopy);
+ *rp = '\0';
+ new->repository = xmalloc (strlen (reposcopy) + 5);
+ (void) strcpy (new->repository, reposcopy);
- if (strcmp (reposcopy, CVSroot_directory) == 0)
- {
- /* Special case -- the repository name needs
- to be "/path/to/repos/." (the trailing dot
- is important). We might be able to get rid
- of this after the we check out the other
- code that handles repository names. */
- (void) strcat (new->repository, "/.");
- }
+ if (strcmp (reposcopy, current_parsed_root->directory) == 0)
+ {
+ /* Special case -- the repository name needs
+ to be "/path/to/repos/." (the trailing dot
+ is important). We might be able to get rid
+ of this after the we check out the other
+ code that handles repository names. */
+ (void) strcat (new->repository, "/.");
}
}
}
@@ -866,7 +841,7 @@ internal error: %s doesn't start with %s in checkout_proc",
int where_is_absolute = isabsolute (where);
/* The top-level CVSADM directory should always be
- CVSroot_directory. Create it, but only if WHERE is
+ current_parsed_root->directory. Create it, but only if WHERE is
relative. If WHERE is absolute, our current directory
may not have a thing to do with where the sources are
being checked out. If it does, build_dirs_and_chdir
@@ -880,7 +855,7 @@ internal error: %s doesn't start with %s in checkout_proc",
{
/* It may be argued that we shouldn't set any sticky
bits for the top-level repository. FIXME? */
- build_one_dir (CVSroot_directory, ".", argc <= 1);
+ build_one_dir (current_parsed_root->directory, ".", argc <= 1);
#ifdef SERVER_SUPPORT
/* We _always_ want to have a top-level admin
@@ -892,7 +867,7 @@ internal error: %s doesn't start with %s in checkout_proc",
will be ignored on the client side. */
if (server_active)
- server_clear_entstat (".", CVSroot_directory);
+ server_clear_entstat (".", current_parsed_root->directory);
#endif
}
@@ -1033,7 +1008,7 @@ internal error: %s doesn't start with %s in checkout_proc",
force_tag_match, 0 /* !local */ ,
1 /* update -d */ , aflag, checkout_prune_dirs,
pipeout, which, join_rev1, join_rev2,
- preload_update_dir);
+ preload_update_dir, m_type == CHECKOUT);
goto out;
}
@@ -1089,7 +1064,7 @@ internal error: %s doesn't start with %s in checkout_proc",
err += do_update (argc - 1, argv + 1, options, tag, date,
force_tag_match, local_specified, 1 /* update -d */,
aflag, checkout_prune_dirs, pipeout, which, join_rev1,
- join_rev2, preload_update_dir);
+ join_rev2, preload_update_dir, m_type == CHECKOUT);
out:
free (preload_update_dir);
preload_update_dir = oldupdate;
@@ -1121,11 +1096,11 @@ emptydir_name ()
{
char *repository;
- repository = xmalloc (strlen (CVSroot_directory)
+ repository = xmalloc (strlen (current_parsed_root->directory)
+ sizeof (CVSROOTADM)
+ sizeof (CVSNULLREPOS)
- + 10);
- (void) sprintf (repository, "%s/%s/%s", CVSroot_directory,
+ + 3);
+ (void) sprintf (repository, "%s/%s/%s", current_parsed_root->directory,
CVSROOTADM, CVSNULLREPOS);
if (!isfile (repository))
{
diff --git a/contrib/cvs/src/classify.c b/contrib/cvs/src/classify.c
index b0084a3d0fab..9a6489e03842 100644
--- a/contrib/cvs/src/classify.c
+++ b/contrib/cvs/src/classify.c
@@ -74,6 +74,7 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
}
else if (RCS_isdead (vers->srcfile, vers->vn_rcs))
{
+ /* there is an RCS file, but it's dead */
if (vers->ts_user == NULL)
ret = T_UPTODATE;
else
@@ -83,43 +84,17 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
ret = T_UNKNOWN;
}
}
- else
+ else if (!pipeout && vers->ts_user && No_Difference (finfo, vers))
{
- /* there is an rcs file */
-
- if (vers->ts_user == NULL)
- {
- /* There is no user file; needs checkout */
- ret = T_CHECKOUT;
- }
- else
- {
- if (pipeout)
- {
- /*
- * The user file doesn't necessarily have anything
- * to do with this.
- */
- ret = T_CHECKOUT;
- }
- /*
- * There is a user file; print a warning and add it to the
- * conflict list, only if it is indeed different from what we
- * plan to extract
- */
- else if (No_Difference (finfo, vers))
- {
- /* the files were different so it is a conflict */
- if (!really_quiet)
- error (0, 0, "move away %s; it is in the way",
- finfo->fullname);
- ret = T_CONFLICT;
- }
- else
- /* since there was no difference, still needs checkout */
- ret = T_CHECKOUT;
- }
+ /* the files were different so it is a conflict */
+ if (!really_quiet)
+ error (0, 0, "move away %s; it is in the way",
+ finfo->fullname);
+ ret = T_CONFLICT;
}
+ else
+ /* no user file or no difference, just checkout */
+ ret = T_CHECKOUT;
}
else if (strcmp (vers->vn_user, "0") == 0)
{
@@ -135,44 +110,35 @@ Classify_File (finfo, tag, date, options, force_tag_match, aflag, versp,
error (0, 0, "warning: new-born %s has disappeared", finfo->fullname);
ret = T_REMOVE_ENTRY;
}
+ else if (vers->vn_rcs == NULL ||
+ RCS_isdead (vers->srcfile, vers->vn_rcs))
+ /* No RCS file or RCS file revision is dead */
+ ret = T_ADDED;
else
{
- /* There is a user file */
-
- if (vers->vn_rcs == NULL)
- /* There is no RCS file, added file */
- ret = T_ADDED;
- else if (RCS_isdead (vers->srcfile, vers->vn_rcs))
- /* we are resurrecting. */
- ret = T_ADDED;
+ if (vers->srcfile->flags & INATTIC
+ && vers->srcfile->flags & VALID)
+ {
+ /* This file has been added on some branch other than
+ the one we are looking at. In the branch we are
+ looking at, the file was already valid. */
+ if (!really_quiet)
+ error (0, 0,
+ "conflict: %s has been added, but already exists",
+ finfo->fullname);
+ }
else
{
- if (vers->srcfile->flags & INATTIC
- && vers->srcfile->flags & VALID)
- {
- /* This file has been added on some branch other than
- the one we are looking at. In the branch we are
- looking at, the file was already valid. */
- if (!really_quiet)
- error (0, 0,
- "\
-conflict: %s has been added, but already exists",
- finfo->fullname);
- }
- else
- {
- /*
- * There is an RCS file, so someone else must have checked
- * one in behind our back; conflict
- */
- if (!really_quiet)
- error (0, 0,
- "\
-conflict: %s created independently by second party",
- finfo->fullname);
- }
- ret = T_CONFLICT;
+ /*
+ * There is an RCS file, so someone else must have checked
+ * one in behind our back; conflict
+ */
+ if (!really_quiet)
+ error (0, 0,
+ "conflict: %s created independently by second party",
+ finfo->fullname);
}
+ ret = T_CONFLICT;
}
}
else if (vers->vn_user[0] == '-')
@@ -193,14 +159,18 @@ conflict: %s created independently by second party",
*/
ret = T_REMOVE_ENTRY;
}
- else if (vers->vn_rcs == NULL
- ? vers->vn_user[1] == '\0'
- : strcmp (vers->vn_rcs, vers->vn_user + 1) == 0)
+ else if (strcmp (vers->vn_rcs, vers->vn_user + 1) == 0)
/*
* The RCS file is the same version as the user file was, and
* that's OK; remove it
*/
ret = T_REMOVED;
+ else if (pipeout)
+ /*
+ * The RCS file doesn't match the user's file, but it doesn't
+ * matter in this case
+ */
+ ret = T_NEEDS_MERGE;
else
{
@@ -227,7 +197,7 @@ conflict: %s created independently by second party",
else
{
/* A normal entry, TS_Rcs is valid */
- if (vers->vn_rcs == NULL)
+ if (vers->vn_rcs == NULL || RCS_isdead (vers->srcfile, vers->vn_rcs))
{
/* There is no RCS file */
@@ -251,30 +221,23 @@ conflict: %s created independently by second party",
finfo->fullname);
ret = T_REMOVE_ENTRY;
}
- else
+ else if (No_Difference (finfo, vers))
{
- /*
- * The user file has been modified and since it is no longer
- * in the repository, a conflict is raised
- */
- if (No_Difference (finfo, vers))
- {
- /* they are different -> conflict */
- if (!really_quiet)
- error (0, 0,
+ /* they are different -> conflict */
+ if (!really_quiet)
+ error (0, 0,
"conflict: %s is modified but no longer in the repository",
finfo->fullname);
- ret = T_CONFLICT;
- }
- else
- {
- /* they weren't really different */
- if (!really_quiet)
- error (0, 0,
- "warning: %s is not (any longer) pertinent",
- finfo->fullname);
- ret = T_REMOVE_ENTRY;
- }
+ ret = T_CONFLICT;
+ }
+ else
+ {
+ /* they weren't really different */
+ if (!really_quiet)
+ error (0, 0,
+ "warning: %s is not (any longer) pertinent",
+ finfo->fullname);
+ ret = T_REMOVE_ENTRY;
}
}
else if (strcmp (vers->vn_rcs, vers->vn_user) == 0)
@@ -321,50 +284,39 @@ conflict: %s created independently by second party",
ret = T_UPTODATE;
}
}
- else
+ else if (No_Difference (finfo, vers))
{
/*
- * The user file appears to have been modified, but we call
- * No_Difference to verify that it really has been modified
+ * they really are different; modified if we aren't
+ * changing any sticky -k options, else needs merge
*/
- if (No_Difference (finfo, vers))
- {
-
- /*
- * they really are different; modified if we aren't
- * changing any sticky -k options, else needs merge
- */
#ifdef XXX_FIXME_WHEN_RCSMERGE_IS_FIXED
- if (strcmp (vers->entdata->options ?
- vers->entdata->options : "", vers->options) == 0)
- ret = T_MODIFIED;
- else
- ret = T_NEEDS_MERGE;
-#else
+ if (strcmp (vers->entdata->options ?
+ vers->entdata->options : "", vers->options) == 0)
ret = T_MODIFIED;
- sticky_ck (finfo, aflag, vers);
-#endif
- }
else
- {
- /* file has not changed; check out if -k changed */
- if (strcmp (vers->entdata->options ?
- vers->entdata->options : "", vers->options) != 0)
- {
- ret = T_CHECKOUT;
- }
- else
- {
+ ret = T_NEEDS_MERGE;
+#else
+ ret = T_MODIFIED;
+ sticky_ck (finfo, aflag, vers);
+#endif
+ }
+ else if (strcmp (vers->entdata->options ?
+ vers->entdata->options : "", vers->options) != 0)
+ {
+ /* file has not changed; check out if -k changed */
+ ret = T_CHECKOUT;
+ }
+ else
+ {
- /*
- * else -> note that No_Difference will Register the
- * file already for us, using the new tag/date. This
- * is the desired behaviour
- */
- ret = T_UPTODATE;
- }
- }