[comp.mail.mh] version.c not updated correctly

weening@Gang-of-Four.Stanford.EDU (Joe Weening) (08/24/88)

I just tried installing MH 6.6, and ran into a problem that I had also
noticed with version 6.5.  uip/Makefile has the lines:

all:		version.o $(CMDS) $(MISC)
		@version.sh; $(CC) -O -c version.c

This causes the following to happen:

1. version.c is compiled into version.o.
2. All the utilities are compiled and linked.
3. version.sh is run to generate a new version.c, which is
   then compiled.

As a consequence, the hostname in version.o is incorrect the first
time the utilities are made.  After that, everything is OK.

						Joe

P.S. I first tried reporting this to bug-mh@ics.uci.edu, but got back
a message from the mailer saying:

Date:     Tue, 23 Aug 88 0:58:01 PDT
From: ics UCI-ICS Mail System (MMDF-IIb) <mmdf@ICS.UCI.EDU>
Sender: Postmaster <mmdf@ICS.UCI.EDU>
Subject:  Failed mail  (msg.aa15600)

    Your message could not be delivered to
'mh-bugs@BBOARDS.ICS.UCI.EDU (host: bboards.ics.uci.edu) (queue: bboards)' for the following
reason:  'unknown bboard'
Joe Weening                                Computer Science Dept.
weening@Gang-of-Four.Stanford.EDU          Stanford University

raj@PARIS.ICS.UCI.EDU (08/25/88)

I reported this say "problem" about a year ago.  I was told that it was
SUPPOSED to work that way.  The intention is that if you haven't made
any changes or recompiled anything, then your version number and hostname
should be the same as everyone else's.  In other words, the version string
is intended to show the last place that made changes to the system.
Something like that anyway.

dce@mips.COM (David Elliott) (08/25/88)

In article <3710@polya.Stanford.EDU> weening@Gang-of-Four.Stanford.EDU (Joe Weening) writes:
>		@version.sh; $(CC) -O -c version.c

This is a pain, but it's worse if you are running SVR3.1 (or have the new
awk as the default awk).  version.sh was seemingly written by a shell
quoting novice, since the part involving awk looks like:

	... awk 'BEGIN { ... } \
	{ ... \
	  ... }' ...

Inside of quotes, it is not necessary to escape newlines for programs
like awk and sed.  An escaped newline becomes a space.  The
result is that awk sees a program that is all on one line, and the
new awk doesn't accept this (the behavior, though incompatible, has
been shown to be correct according to the awk definition, and we
have to be able to handle this).

After fixing the awk script, it's a pain to get version.c rebuilt by
the makefile, and the existing version.c doesn't compile.

allbery@ncoast.UUCP (Brandon S. Allbery) (08/31/88)

As quoted from <2897@dunkshot.mips.COM> by dce@mips.COM (David Elliott):
+---------------
| In article <3710@polya.Stanford.EDU> weening@Gang-of-Four.Stanford.EDU (Joe Weening) writes:
| >		@version.sh; $(CC) -O -c version.c
| 
| This is a pain, but it's worse if you are running SVR3.1 (or have the new
| awk as the default awk).  version.sh was seemingly written by a shell
| quoting novice, since the part involving awk looks like:
| 
| 	... awk 'BEGIN { ... } \
| 	{ ... \
| 	  ... }' ...
| 
| Inside of quotes, it is not necessary to escape newlines for programs
| like awk and sed.  An escaped newline becomes a space.  The
+---------------

No, it's not braindamaged sh quoting; it's *csh* quoting.  (grrr)

++Brandon
-- 
Brandon S. Allbery, uunet!marque!ncoast!allbery			DELPHI: ALLBERY
	    For comp.sources.misc send mail to ncoast!sources-misc
"Don't discount flying pigs before you have good air defense." -- jvh@clinet.FI