[gnu.utils.bug] GAWK 2.11 Released - glitch in tar files

arnold@mathcs.emory.edu (Arnold D. Robbins {EUCC}) (10/27/89)

GAWK 2.11 has been released.  An announcement was sent to info-gnu but
that pipeline seems sort of stopped up at the moment.  Anyway, I am posting
this note since for a short while the tar file that was available on
prep.ai.mit.edu was incorrect.

As of 10:00 a.m. EDT on Thursday October 26, the release file is correct.
Here is diff showing what the old and new tar files looked like:

	*** /usr/src/local/gnu/gnu.ls	Tue Oct 24 15:59:22 1989
	--- /tmp/gnu.ls	Thu Oct 26 10:18:33 1989
	***************
	*** 55 ****
	! -rw-r--r--  1 14910      356883 Oct 24 12:43 gawk-2.11.tar.Z
	--- 55 ----
	! -rw-r--r--  1 14910      355383 Oct 26 08:26 gawk-2.11.tar.Z

(It is a fluke of the compress program that the new one is smaller
than the old one.)

If you got a copy of gawk 2.11 before this morning, you will need to
either get a fresh copy, or execute the shar file at the end of this
message.

As I'm coming to learn, release engineering is not as easy as one would think.

Enjoy,

Arnold Robbins -- Emory U. Information Technology Div.	| Laundry increases
DOMAIN: arnold@emoryu1.cc.emory.edu			| exponentially in the
UUCP: gatech!emoryu1!arnold  PHONE: +1 404 727-7636	| number of children.
BITNET: arnold@emoryu1	     FAX:   +1 404 727-2599	|   -- Miriam Hartholz
-------------- cut here -----------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	Makefile
#	missing.d/dup2.c
#	missing.d/strchr.c
# This archive created: Wed Oct 25 11:58:29 1989
export PATH; PATH=/bin:/usr/bin:$PATH
echo moving Makefile to Makefile.$$
mv Makefile Makefile.$$
echo shar: "extracting 'Makefile'" '(7415 characters)'
if test -f 'Makefile'
then
	echo shar: "will not over-write existing file 'Makefile'"
else
cat << \SHAR_EOF > 'Makefile'
# Makefile for GNU Awk.
#
# Copyright (C) 1986, 1988, 1989 the Free Software Foundation, Inc.
# 
# This file is part of GAWK, the GNU implementation of the
# AWK Progamming Language.
# 
# GAWK 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 1, or (at your option)
# any later version.
# 
# GAWK 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 GAWK; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

# User tunable macros

# CFLAGS: options to the C compiler
#
#	-O	optimize
#	-g	include dbx/sdb info
#	-gg	include gdb debugging info; only for GCC (deprecated)
#	-pg	include new (gmon) profiling info
#	-p	include old style profiling info (System V)
#
#	To port GAWK, examine and adjust the following flags carefully.
#	In addition, you will have to look at alloca below.
#	The intent (eventual) is to not penalize the most-standard-conforming
#	systems with a lot of #define's.
#
#	-DBCOPY_MISSING		- bcopy() et al. are missing; will replace
#				  with a #define'd memcpy() et al. -- use at
#				  your own risk (should really use a memmove())
#	-DSPRINTF_INT		- sprintf() returns int (most USG systems)
#	-DBLKSIZE_MISSING	- st_blksize missing from stat() structure
#				  (most USG systems)
#	-DBSDSTDIO		- has a BSD internally-compatible stdio
#	-DDOPRNT_MISSING	- lacks doprnt() routine
#	-DDUP2_MISSING		- lacks dup2() system call (S5Rn, n < 4)
#	-DGCVT_MISSING		- lacks gcvt() routine
#	-DGETOPT_MISSING	- lacks getopt() routine
#	-DMEMCMP_MISSING	- lacks memcmp() routine
#	-DMEMCPY_MISSING	- lacks memcpy() routine
#	-DMEMSET_MISSING	- lacks memset() routine
#	-DRANDOM_MISSING	- lacks random() routine
#	-DSTRCASE_MISSING	- lacks strcasecmp() routine
#	-DSTRCHR_MISSING	- lacks strchr() and strrchr() routines
#	-DSTRERROR_MISSING	- lacks (ANSI C) strerror() routine
#	-DSTRTOD_MISSING	- lacks strtod() routine
#	-DTMPNAM_MISSING	- lacks or deficient tmpnam() routine
#	-DVPRINTF_MISSING	- lacks vprintf and associated routines

# Sun running SunOS 4.x
MISSING = -DSTRERROR_MISSING -DSTRCASE_MISSING

# SGI Personal Iris (Sys V derived)
# MISSING = -DSPRINTF_INT -DBLKSIZE_MISSING -DSTRERROR_MISSING -DRANDOM_MISSING

# VAX running Ultrix 3.x
# MISSING = -DSTRERROR_MISSING

# A generic 4.2 BSD machine
# (eliminate GETOPT_MISSING for 4.3 release)
# (eliminate STRCASE_MISSING and TMPNAM_MISSING for Tahoe release)
# MISSING = -DBSDSTDIO -DMEMCMP_MISSING -DMEMCPY_MISSING -DMEMSET_MISSING \
#	-DSTRERROR_MISSING -DSTRTOD_MISSING -DVPRINTF_MISSING \
#	-DSTRCASE_MISSING -DTMPNAM_MISSING \
#	-DGETOPT_MISSING -DSTRCHR_MISSING

# On Amdahl UTS, a SysVr2-derived system
# MISSING = -DBCOPY_MISSING -DSPRINTF_INT -DRANDOM_MISSING -DSTRERROR_MISSING \
#	-DSTRCASE_MISSING -DDUP2_MISSING # -DBLKSIZE_MISSING ??????

# Comment out the next line if you don't have gcc.
# Also choose just one of -g and -O.
CC=		 gcc

OPTIMIZE=	-O
PROFILE=	#-pg
DEBUG=		#-DDEBUG #-DMEMDEBUG #-DFUNC_TRACE #-DMPROF
DEBUGGER=	#-g -Bstatic
WARN=		#-W -Wunused -Wimplicit -Wreturn-type -Wcomment	# for gcc only

# Parser to use on grammar -- if you don't have bison use the first one
#PARSER = yacc
PARSER = bison

# ALLOCA
#	Set equal to alloca.o if your system is S5 and you don't have
#	alloca. Uncomment one of the rules below to make alloca.o from
#	either alloca.s or alloca.c.
ALLOCA= #alloca.o

#
# With the exception of the alloca rule referred to above, you shouldn't
# need to customize this file below this point.
#

FLAGS= $(MISSING) $(DEBUG)
CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE) $(OPTIMIZE) $(WARN)

# object files
AWKOBJS = main.o eval.o builtin.o msg.o debug.o io.o field.o array.o node.o \
		version.o missing.o

ALLOBJS = $(AWKOBJS) awk.tab.o

# GNUOBJS
#	GNU stuff that gawk uses as library routines.
GNUOBJS= regex.o $(ALLOCA)

# source and documentation files
SRC =	main.c eval.c builtin.c msg.c \
	debug.c io.c field.c array.c node.c missing.c

ALLSRC= $(SRC) awk.tab.c

AWKSRC= awk.h awk.y $(ALLSRC) version.sh patchlevel.h

GNUSRC = alloca.c alloca.s regex.c regex.h

COPIES = missing.d/dup2.c missing.d/gcvt.c missing.d/getopt.c \
	missing.d/memcmp.c missing.d/memcpy.c missing.d/memset.c \
	missing.d/random.c missing.d/strcase.c missing.d/strchr.c \
	missing.d/strerror.c missing.d/strtod.c missing.d/tmpnam.c \
	missing.d/vprintf.c

SUPPORT = support/texindex.c support/texinfo.tex

DOCS= gawk.1 gawk.texinfo

INFOFILES= gawk-info gawk-info-1 gawk-info-2 gawk-info-3 gawk-info-4 \
	   gawk-info-5 gawk-info-6 gawk.aux gawk.cp gawk.cps gawk.fn \
	   gawk.fns gawk.ky gawk.kys gawk.pg gawk.pgs gawk.toc \
	   gawk.tp gawk.tps gawk.vr gawk.vrs

MISC = CHANGES COPYING FUTURES Makefile PROBLEMS README

PCSTUFF= pc.d/makefile.pc pc.d/names.lnk pc.d/popen.c pc.d/popen.h

ALLDOC= gawk.dvi $(INFOFILES)

ALLFILES= $(AWKSRC) $(GNUSRC) $(COPIES) $(MISC) $(DOCS) $(ALLDOC) $(PCSTUFF) $(SUPPORT)

# Release of gawk.  There can be no leading or trailing white space here!
REL=2.11

# rules to build gawk
gawk: $(ALLOBJS) $(GNUOBJS)
	$(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(GNUOBJS) -lm

$(AWKOBJS): awk.h

main.o: patchlevel.h

awk.tab.o: awk.h awk.tab.c

awk.tab.c: awk.y
	$(PARSER) -v awk.y
	-mv -f y.tab.c awk.tab.c

version.c: version.sh
	sh version.sh $(REL) > version.c

# Alloca: uncomment this if your system (notably System V boxen)
# does not have alloca in /lib/libc.a
#
#alloca.o: alloca.s
#	/lib/cpp < alloca.s | sed '/^#/d' > t.s
#	as t.s -o alloca.o
#	rm t.s

# If your machine is not supported by the assembly version of alloca.s,
# use the C version instead.  This uses the default rules to make alloca.o.
#
#alloca.o: alloca.c

# auxiliary rules for release maintenance
lint: $(ALLSRC)
	lint -hcbax $(FLAGS) $(ALLSRC)

xref:
	cxref -c $(FLAGS) $(ALLSRC) | grep -v '	/' >xref

clean:
	rm -f gawk *.o core awk.output awk.tab.c gmon.out make.out version.c

clobber: clean
	rm -f $(ALLDOC) gawk.log

gawk.dvi: gawk.texinfo
	tex gawk.texinfo ; texindex gawk.??
	tex gawk.texinfo ; texindex gawk.??
	tex gawk.texinfo

$(INFOFILES): gawk.texinfo
	makeinfo gawk.texinfo

srcrelease: $(AWKSRC) $(GNUSRC) $(DOCS) $(MISC) $(COPIES) $(PCSTUFF) $(SUPPORT)
	-mkdir gawk-$(REL)
	cp -p $(AWKSRC) $(GNUSRC) $(DOCS) $(MISC) gawk-$(REL)
	-mkdir gawk-$(REL)/missing.d
	cp -p $(COPIES) gawk-$(REL)/missing.d
	-mkdir gawk-$(REL)/pc.d
	cp -p $(PCSTUFF) gawk-$(REL)/pc.d
	-mkdir gawk-$(REL)/support
	cp -p $(SUPPORT) gawk-$(REL)/support
	tar -cf - gawk-$(REL) | compress > gawk-$(REL).tar.Z

docrelease: $(ALLDOC)
	-mkdir gawk-$(REL)-doc
	cp -p $(INFOFILES) gawk.dvi gawk-$(REL)-doc
	nroff -man gawk.1 > gawk-$(REL)-doc/gawk.1.pr
	tar -cf - gawk-$(REL)-doc | compress > gawk-doc-$(REL).tar.Z

psrelease: docrelease
	-mkdir gawk-postscript
	dvi2ps gawk.dvi > gawk-postscript/gawk.postscript
	psroff -t -man gawk.1 > gawk-postscript/gawk.1.ps
	tar -cf - gawk-postscript | compress > gawk.postscript.tar.Z

release: srcrelease docrelease psrelease
	rm -fr gawk-postscript gawk-$(REL) gawk-$(REL)-doc

diff:
	for i in RCS/*; do rcsdiff -c -b $$i > `basename $$i ,v`.diff; done
SHAR_EOF
fi
echo shar: "extracting 'missing.d/dup2.c'" '(136 characters)'
if test -f 'missing.d/dup2.c'
then
	echo shar: "will not over-write existing file 'missing.d/dup2.c'"
else
cat << \SHAR_EOF > 'missing.d/dup2.c'
#ifndef F_DUPFD
#include <fcntl.h>
#endif

int
dup2 (old, new)
int old, new;
{
	(void) close(new);

	return fcntl(old, F_DUPFD, new);
}
SHAR_EOF
fi
echo shar: "extracting 'missing.d/strchr.c'" '(543 characters)'
if test -f 'missing.d/strchr.c'
then
	echo shar: "will not over-write existing file 'missing.d/strchr.c'"
else
cat << \SHAR_EOF > 'missing.d/strchr.c'
/*
 * strchr --- search a string for a character
 *
 * We supply this routine for those systems that aren't standard yet.
 */

char *
strchr (str, c)
register char *str, c;
{
	for (; *str; str++)
		if (*str == c)
			return str;

	return NULL;
}

/*
 * strrchr --- find the last occurrence of a character in a string
 *
 * We supply this routine for those systems that aren't standard yet.
 */

char *
strrchr (str, c)
register char *str, c;
{
	register char *save = NULL;

	for (; *str; str++)
		if (*str == c)
			save = str;

	return save;
}
SHAR_EOF
fi
exit 0
#	End of shell archive
-- 
Arnold Robbins -- Emory U. Information Technology Div.  | Laundry increases
DOMAIN: arnold@emoryu1.cc.emory.edu			| exponentially in the
UUCP: gatech!emoryu1!arnold  PHONE: +1 404 727-7636	| number of children.
BITNET: arnold@emoryu1	     FAX:   +1 404 727-2599	|   -- Miriam Hartholz