C News patch of 17-Jan-1990

Henry Spencer henry at utzoo.uucp
Thu Jan 18 09:08:36 AEST 1990


This is the second of two coordinated patches; the first appeared
yesterday.  The big change, set up in the first and implemented in the
second, is that build has been revamped to use your previous answers as
the defaults for the next run.  (Thanks to the magic :-( of context diffs,
and the large number of lines affected, the changes to build itself are
essentially the entire second patch.)

The only other thing in the second patch is a fix of a (largely harmless)
buglet in the changes to sendbatches.

start of patch 17-Jan-1990
(suggested archive name: `pch17Jan90.Z')
this should be run with   patch -p0 <thisfile

Please do the following (there is no easy way we can convince
patch to do this automatically):
rm conf/query

The following is a complete list of patches to date.

Prereq: 23-Jun-1989
Prereq: 7-Jul-1989
Prereq: 23-Jul-1989
Prereq: 22-Aug-1989
Prereq: 24-Aug-1989
Prereq: 14-Sep-1989
Prereq: 13-Nov-1989
Prereq: 10-Jan-1990
Prereq: 16-Jan-1990
*** PATCHDATES.old	Wed Jan 17 16:06:28 1990
--- PATCHDATES	Wed Jan 17 16:06:29 1990
***************
*** 1,9 ****
--- 1,10 ----
  23-Jun-1989
  7-Jul-1989
  23-Jul-1989
  22-Aug-1989
  24-Aug-1989
  14-Sep-1989
  13-Nov-1989
  10-Jan-1990
  16-Jan-1990
+ 17-Jan-1990

Changed files, if any:

*** cnpatch/old/batch/sendbatches	Tue Jan 16 17:58:27 1990
--- batch/sendbatches	Wed Jan 17 15:51:28 1990
***************
*** 134,138 ****
  			# No -- need some more batches.
  			if test ! -s togo && test ! -s togo.more &&
! 							test ! -s togo.more
  			then
  				break		# Nothing left to do.
--- 134,138 ----
  			# No -- need some more batches.
  			if test ! -s togo && test ! -s togo.more &&
! 							test ! -s togo.next
  			then
  				break		# Nothing left to do.

*** cnpatch/old/conf/build	Wed Jan 10 19:10:17 1990
--- conf/build	Wed Jan 17 15:57:36 1990
***************
*** 1,4 ****
--- 1,14 ----
  #! /bin/sh
+ PATH=:$PATH
  
+ # configuration variables to remember for next time
+ vars='newsuid newsgid binuid bingid binsrc mess unmess newsarts newsctl
+ 	newsbin newsumask newsmaster newsconfig chown chboth chgrp unixkind
+ 	addrsize dbmopt faststdio storeval faststrchr sete sprintfchar ranlib
+ 	symdef cc copts ldopts postlibs hostname uname uucptype dftype dfdirs
+ 	archive spacelow nfsgroup server manpages manmess rbin doui bin atok
+ 	postdefltdist paranoid whoami mailname organization postdefltgroup
+ 	newspath fake fakehdrs'
+ 
  # functions and headers we are prepared to fake
  mightfake='fsync getopt memcpy memcmp memchr memset mkdir
***************
*** 22,38 ****
  echo 'You probably need your system manuals handy.'
  echo
! echo 'When a question is asked in the form "How are you [okay]? ", the'
  echo 'answer in brackets is what you will get if you just hit RETURN.'
  
! chmod +x query			# just in case
! if test " `./query hi | wc -c`" -ne 2
  then
! 	echo 'The "query" utility that this command needs does not seem to'
! 	echo 'be working properly.  It is supposed to work like "echo"'
! 	echo 'except not produce a newline at the end.  You will have to fix'
! 	echo 'it (it is a shell file).  (Most versions of "echo" have a way'
! 	echo 'to suppress the newline, but unfortunately there are at least'
! 	echo 'two different incompatible ways.)'
! 	exit 1
  fi
  
--- 32,53 ----
  echo 'You probably need your system manuals handy.'
  echo
! echo "When a question is asked in the form \`How are you [okay]? ', the"
  echo 'answer in brackets is what you will get if you just hit RETURN.'
+ echo '(If you want give an empty string as the answer, type a single'
+ echo "\`-' instead.)"
  
! chmod +x ask yesno notinlist	# just in case
! 
! if test -r build.def
  then
! 	echo
! 	tmp=`yesno 'Do you want to use your previous answers as defaults' no`
! 	case "$tmp" in
! 	yes)	echo
! 		echo 'Picking up defaults, from last run...'
! 		. build.def
! 		echo 'done'
! 		;;
! 	esac
  fi
  
***************
*** 42,69 ****
  echo 'be owned by another user, typically the same one who owns most of the'
  echo 'rest of the system.'
! ./query 'What user id should be used for news files [news]? '
! read newsuid
! case "$newsuid" in
! '')	newsuid=news	;;
! esac
! ./query 'What group id should be used for news files [news]? '
! read newsgid
! case "$newsgid" in
! '')	newsgid=news	;;
! esac
! ./query 'What user id should be used for news programs [bin]? '
! read binuid
! case "$binuid" in
! '')	binuid=bin	;;
! esac
! ./query 'What group id should be used for news programs [bin]? '
! read bingid
! case "$bingid" in
! '')	bingid=bin	;;
! esac
! ./query "Do the C News sources belong to $binuid [yes]? "
! read answer
! case "$answer" in
! n*|N*)	echo "You may need to do some of the installation procedures by hand"
  	echo "after the software is built; doit.bin assumes that it has the"
  	echo "power to create files in the source directories and to update"
--- 57,67 ----
  echo 'be owned by another user, typically the same one who owns most of the'
  echo 'rest of the system.'
! newsuid=`ask 'What user id should be used for news files' ${newsuid-news}`
! newsgid=`ask 'What group id should be used for news files' ${newsgid-news}`
! binuid=`ask 'What user id should be used for news programs' ${binuid-bin}`
! bingid=`ask 'What group id should be used for news programs' ${bingid-bin}`
! binsrc=`yesno "Do the C News sources belong to $binuid" ${binsrc-yes}`
! case "$binsrc" in
! no)	echo "You may need to do some of the installation procedures by hand"
  	echo "after the software is built; doit.bin assumes that it has the"
  	echo "power to create files in the source directories and to update"
***************
*** 72,77 ****
  esac
  
! answer=
! if test -d /var -a -d /usr/share
  then
  	echo
--- 70,74 ----
  esac
  
! if test '(' -d /var -a -d /usr/share ')' -o " $mess" = " yes"
  then
  	echo
***************
*** 78,104 ****
  	echo 'It would appear that your system is among the victims of the'
  	echo '4.4BSD / SVR4 directory reorganization, with (e.g.) shared'
! 	./query 'data in /usr/share.  Is this correct [yes]? '
! 	read answer
! 	case "$answer" in
! 	y*|Y*|'')	answer=y	;;
! 	esac
  fi
! if test " $answer" = " y"
! then
! 	echo 'This will affect where C News directories go.  We recommend'
  	echo 'making the directories wherever they have to go and then making'
  	echo 'symbolic links to them under the standard names that are used'
  	echo 'as defaults in the following questions.  Should such links'
! 	./query 'be made [yes]? '
! 	read makelinks
! 	case "$makelinks" in
! 	y*|Y*|'')	makelinks=y	;;
! 	esac
  	echo 'Our 4.4ish friends suggest putting articles in /var/spool/news'
  	echo 'and control files in /usr/share/news, with programs left where'
  	echo 'they are in /usr/lib/newsbin.'
! fi
  
- needsubst=
  echo
  echo 'C News lives primarily under three directories:  one for articles (and'
--- 75,95 ----
  	echo 'It would appear that your system is among the victims of the'
  	echo '4.4BSD / SVR4 directory reorganization, with (e.g.) shared'
! 	mess=`yesno 'data in /usr/share.  Is this correct' ${mess-yes}`
! else
! 	mess=no
  fi
! case "$mess" in
! yes)	echo 'This will affect where C News directories go.  We recommend'
  	echo 'making the directories wherever they have to go and then making'
  	echo 'symbolic links to them under the standard names that are used'
  	echo 'as defaults in the following questions.  Should such links'
! 	unmess=`yesno 'be made' ${unmess-yes}`
  	echo 'Our 4.4ish friends suggest putting articles in /var/spool/news'
  	echo 'and control files in /usr/share/news, with programs left where'
  	echo 'they are in /usr/lib/newsbin.'
! 	;;
! *)	unmess=no	;;
! esac
  
  echo
  echo 'C News lives primarily under three directories:  one for articles (and'
***************
*** 105,185 ****
  echo 'incoming and outgoing spooling), one for control files, and one for'
  echo 'programs.'
! ./query 'Where should articles live [/usr/spool/news]? '
! read newsarts
! case "$newsarts" in
! '')	newsarts=/usr/spool/news	;;
! *)	needsubst=y	;;
  esac
! ./query 'Where should control files live [/usr/lib/news]? '
! read newsctl
! case "$newsctl" in
! '')	newsctl=/usr/lib/news	;;
! *)	needsubst=y	;;
  esac
- ./query 'Where should programs live [/usr/lib/newsbin]? '
- read newsbin
- case "$newsbin" in
- '')	newsbin=/usr/lib/newsbin	;;
- *)	needsubst=y	;;
- esac
- if test " $makelinks" = " y"
- then
- 	realarts="$newsarts"
- 	realctl="$newsctl"
- 	realbin="$newsbin"
- 	newsarts="/usr/spool/news"
- 	newsctl="/usr/lib/news"
- 	newsbin="/usr/lib/newsbin"
- fi
  
! echo
! echo 'C News by default assumes that all normal Unix programs can be found'
! echo 'in /bin or /usr/bin.  This is naive, especially on Berkeley-derived'
! echo 'systems where some standard programs inexplicably moved to /usr/ucb.'
! newspath='/bin:/usr/bin'
! if test '(' ! -f /bin/wc -a ! -f /usr/bin/wc ')' -o \
  			'(' ! -f /bin/hostname -a ! -f /usr/bin/hostname -a \
  						-f /usr/ucb/hostname ')'
! then
! 	echo 'It would appear that some standard programs live in /usr/ucb'
! 	./query 'on your system.  Is that right [yes]? '
! 	read ucb
! else
! 	echo 'It would appear that /usr/ucb does not exist or is not needed'
! 	./query 'for normal operation on your system.  Is that right [yes]? '
! 	read ucb
! 	case "$ucb" in
! 	y*|Y*|'')	ucb=no	;;
! 	n*|N*)		ucb=yes	;;
! 	esac
! fi
! case "$ucb" in
! y*|Y*|'')	./query 'Should /usr/ucb go before or after /bin and /usr/bin [after]? '
! 		read answer
! 		case "$answer" in
! 		a*|A*|'')	newspath="$newspath:/usr/ucb"	;;
! 		*)		newspath="/usr/ucb:$newspath"	;;
  		esac
! 		needsubst=y
  		;;
- esac
- while true
- do
- 	echo 'Is there any other directory which should be searched to find'
- 	./query 'standard programs on your system [no]? '
- 	read answer
- 	case "$answer" in
- 	n*|N*|'')	break	;;
- 	*)		needsubst=y	;;
  	esac
! 	./query 'What is the full name of the directory? '
! 	read dir
! 	./query 'Should it go before or after the others [after]? '
! 	read answer
! 	case "$answer" in
! 	a*|A*|'')	newspath="$newspath:$dir"	;;
! 	*)		newspath="$dir:$newspath"	;;
! 	esac
! done
  
  echo
--- 96,165 ----
  echo 'incoming and outgoing spooling), one for control files, and one for'
  echo 'programs.'
! newsarts=`ask 'Where should articles live' ${newsarts-/usr/spool/news}`
! newsctl=`ask 'Where should control files live' ${newsctl-/usr/lib/news}`
! newsbin=`ask 'Where should programs live' ${newsbin-/usr/lib/newsbin}`
! case "$unmess" in
! yes)	linkarts="/usr/spool/news"
! 	linkctl="/usr/lib/news"
! 	linkbin="/usr/lib/newsbin"
! 	;;
  esac
! 
! case "$newspath" in
! '')	pathok=no	;;
! *)	echo
! 	echo "Is   $newspath"
! 	echo 'the correct path to follow to find standard programs on your'
! 	pathok=`yesno 'system' yes`
! 	;;
  esac
  
! case "$pathok" in
! no)	newspath='/bin:/usr/bin'
! 	echo
! 	echo 'C News by default assumes that all normal Unix programs can be'
! 	echo 'found in /bin or /usr/bin.  This is naive, especially on'
! 	echo 'Berkeley-derived systems where some standard programs'
! 	echo 'inexplicably moved to /usr/ucb.'
! 	if test '(' ! -f /bin/wc -a ! -f /usr/bin/wc ')' -o \
  			'(' ! -f /bin/hostname -a ! -f /usr/bin/hostname -a \
  						-f /usr/ucb/hostname ')'
! 	then
! 		echo 'It appears that some standard programs live in /usr/ucb'
! 		needucb=`yesno 'on your system.  Is that right' yes`
! 	else
! 		echo 'It appears that /usr/ucb does not exist or is not'
! 		echo 'needed for normal operation on your system.  Is that'
! 		tmp=`yesno 'right' yes`
! 		case "$tmp" in
! 		yes)	needucb=no	;;
! 		no)	needucb=yes	;;
  		esac
! 	fi
! 	case "$needucb" in
! 	yes)	echo 'Should /usr/ucb be searched after /bin and /usr/bin'
! 		tmp=`yesno '(as opposed to before)' yes`
! 		case "$tmp" in
! 		yes)	newspath="$newspath:/usr/ucb"	;;
! 		no)	newspath="/usr/ucb:$newspath"	;;
! 		esac
  		;;
  	esac
! 	while true
! 	do
! 		echo 'Is there any other directory which should be searched'
! 		more=`yesno 'to find standard programs on your system' no`
! 		case "$more" in
! 		no)	break	;;
! 		esac
! 		dir=`ask 'What is the full name of the directory' /urk`
! 		bef=`yesno 'Should it go after (as opposed to before) the others' yes`
! 		case "$bef" in
! 		no)	newspath="$dir:$newspath"	;;
! 		yes)	newspath="$newspath:$dir"	;;
! 		esac
! 	done
! 	;;
! esac
  
  echo
***************
*** 189,198 ****
  echo 'others-access bits would be a mask of 027, for example.)  Usually'
  echo 'a umask of 002 or 022 is appropriate.'
! ./query 'What umask should C News use [002]? '
! read newsumask
! case "$newsumask" in
! '')	newsumask=002	;;
! *)	needsubst=y	;;
! esac
  
  echo
--- 169,173 ----
  echo 'others-access bits would be a mask of 027, for example.)  Usually'
  echo 'a umask of 002 or 022 is appropriate.'
! newsumask=`ask 'What umask should C News use' ${newsumask-002}`
  
  echo
***************
*** 201,210 ****
  echo "specific user, so you won't have to change the software when you get a"
  echo 'new administrator.'
! ./query 'Where should C News mail trouble reports [usenet]? '
! read newsmaster
! case "$newsmaster" in
! '')	newsmaster=usenet	;;
! *)	needsubst=y	;;
! esac
  
  echo
--- 176,180 ----
  echo "specific user, so you won't have to change the software when you get a"
  echo 'new administrator.'
! newsmaster=`ask 'Where should C News mail trouble reports' ${newsmaster-usenet}`
  
  echo
***************
*** 214,253 ****
  echo 'unless you play tricks with environment variables (see documentation).'
  echo 'Where should the shell configuration file be'
! ./query "located [$newsctl/bin/config]? "
! read newsconfig
! case "$newsconfig" in
! '')	newsconfig=$newsctl/bin/config	;;
! *)	needsubst=y	;;
! esac
  
  echo
! ./query 'What is the full pathname of the chown command [/etc/chown]? '
! read chown
! case "$chown" in
! '')	chown=/etc/chown	;;
! esac
! echo "Can I say '$chown $newsuid.$newsgid file' to change both the user id"
! ./query 'and group id of a file [yes]? '
! read chboth
  case "$chboth" in
! y*|Y*|'')	chboth=y	;;
  esac
- if test " $chboth" != " y"
- then
- 	./query 'Is there a chgrp command to change the group of a file [yes]? '
- 	read chgrp
- 	case "$chgrp" in
- 	n*|N*)	echo 'You will need to edit doit.root by hand before running it.'
- 		echo "It will assume that 'chown $newsuid.$newsgid' works."
- 		chboth=y
- 		;;
- 	*)	./query 'What is the full pathname of the chgrp command [/etc/chgrp]? '
- 		read chgrp
- 		case "$chgrp" in
- 		'')	chgrp=/etc/chgrp	;;
- 		esac
- 		;;
- 	esac
- fi
  
  echo
--- 184,198 ----
  echo 'unless you play tricks with environment variables (see documentation).'
  echo 'Where should the shell configuration file be'
! newsconfig=`ask 'located' ${newsconfig-$newsctl/bin/config}`
  
  echo
! chown=`ask 'What is the full pathname of the chown command' ${chown-/etc/chown}`
! echo "Can I say \`$chown $newsuid.$newsgid file' to change both the user id"
! chboth=`yesno 'and group id of a file' ${chboth-yes}`
  case "$chboth" in
! no)	chgrp=`ask 'What is the full pathname of chgrp' ${chgrp-/etc/chgrp}`
! 	;;
! yes)	chgrp="/etc/chgrp"	;;
  esac
  
  echo
***************
*** 266,272 ****
  	ln=
  	lb=
! 	if test " $makelinks" = " y"
! 	then
! 		echo "mkdir $realarts $realctl $realbin"
  		if test " $realarts" != " $newsarts"
  		then
--- 211,216 ----
  	ln=
  	lb=
! 	case "$unmess" in
! 	yes)	echo "mkdir $realarts $realctl $realbin"
  		if test " $realarts" != " $newsarts"
  		then
***************
*** 284,288 ****
  			lb="$lb $realbin"
  		fi
! 	fi
  	n="$newsarts $newsarts/in.coming $newsarts/in.coming/bad"
  	n="$n $newsarts/out.going $newsctl $newsctl/bin"
--- 228,233 ----
  			lb="$lb $realbin"
  		fi
! 		;;
! 	esac
  	n="$newsarts $newsarts/in.coming $newsarts/in.coming/bad"
  	n="$n $newsarts/out.going $newsctl $newsctl/bin"
***************
*** 295,308 ****
  	echo "	fi"
  	echo "done"
! 	if test " $chboth" = " y"
! 	then
! 		echo "$chown $newsuid.$newsgid $n $ln"
  		echo "$chown $binuid.$bingid $b $lb"
! 	else
! 		echo "$chown $newsuid $n $ln"
  		echo "$chgrp $newsgid $n $ln"
  		echo "$chown $binuid $b $lb"
  		echo "$chgrp $bingid $b $lb"
! 	fi
  	echo ": done"
  ) >>doit.root
--- 240,253 ----
  	echo "	fi"
  	echo "done"
! 	case "$chboth" in
! 	yes)	echo "$chown $newsuid.$newsgid $n $ln"
  		echo "$chown $binuid.$bingid $b $lb"
! 		;;
! 	no)	echo "$chown $newsuid $n $ln"
  		echo "$chgrp $newsgid $n $ln"
  		echo "$chown $binuid $b $lb"
  		echo "$chgrp $bingid $b $lb"
! 		;;
! 	esac
  	echo ": done"
  ) >>doit.root
***************
*** 317,326 ****
  while true
  do
! 	./query 'Which best describes your system [v7]? '
! 	read unixkind
! 	if test " $unixkind" = " "
! 	then
! 		unixkind=v7
! 	fi
  	if test -d ../lib$unixkind
  	then
--- 262,266 ----
  while true
  do
! 	unixkind=`ask 'Which best describes your system' ${unixkind-v7}`
  	if test -d ../lib$unixkind
  	then
***************
*** 335,344 ****
  while true
  do
! 	./query 'Which best describes your system [big]? '
! 	read addrsize
! 	if test " $addrsize" = " "
! 	then
! 		addrsize=big
! 	fi
  	if test -d ../lib$addrsize
  	then
--- 275,279 ----
  while true
  do
! 	addrsize=`ask 'Which best describes your system' ${addrsize-big}`
  	if test -d ../lib$addrsize
  	then
***************
*** 353,388 ****
  echo 'possibly-missing library functions, and fake versions of the'
  echo 'possibly-missing system calls, but it needs to know which are missing.'
! fake=
  for fn in $mightfake
  do
! 	./query "Does your system have  $fn() [yes]? "
! 	read answer
! 	case "$answer" in
! 	y*|Y*|'')	;;
! 	*)	fake="$fake $fn.o"	;;
  	esac
  done
! ./query "Does your system have a library function ldiv() as in ANSI C? [no]? "
! read answer
! case "$answer" in
! n*|N*|'')	fake="$fake ldiv.o"	;;
  esac
! ./query 'Does your system have the "dbm" library [yes]? '
! read answer
! case "$answer" in
! y*|Y*|'')	./query 'What is the compile option needed to get it [-ldbm]? '
! 		read answer
! 		case "$answer" in
! 		'')	answer=-ldbm	;;
! 		esac
! 		dbm="DBM=$answer"
! 		./query 'Does your dbm have a dbmclose() function [no]? '
! 		read answer
! 		case "$answer" in
! 		n*|N*|'')	fake="$fake dbmclose.o"	;;
! 		esac
! 		;;
! *)	fake="$fake dbm.o dbmclose.o"
! 	dbm='DBM='
  	echo "Okay, we'll fake it for you.  You might want to look at"
  	echo "contrib/dbz, which is a probably-superior fake that we have"
--- 288,317 ----
  echo 'possibly-missing library functions, and fake versions of the'
  echo 'possibly-missing system calls, but it needs to know which are missing.'
! newfake=
  for fn in $mightfake
  do
! 	has=`notinlist "$fake" $fn.o`
! 	tmp=`yesno "Does your system have  $fn()" $has`
! 	case "$tmp" in
! 	no)	newfake="$newfake $fn.o"	;;
  	esac
  done
! has=`notinlist "$fake" ldiv.o`
! tmp=`yesno 'Does your system have a library function ldiv() as in ANSI C' $has`
! case "$tmp" in
! no)	newfake="$newfake ldiv.o"	;;
  esac
! has=`notinlist "$fake" dbm.o`
! tmp=`yesno 'Does your system have the "dbm" library' $has`
! case "$tmp" in
! yes)	dbmopt=`ask 'What is the compile option needed to get it' ${dbmopt--ldbm}`
! 	has=`notinlist "$fake" dbmclose.o`
! 	tmp=`yesno 'Does your dbm have a dbmclose() function' $has`
! 	case "$tmp" in
! 	no)	newfake="$newfake dbmclose.o"	;;
! 	esac
! 	;;
! no)	newfake="$newfake dbm.o dbmclose.o"
! 	dbmopt=
  	echo "Okay, we'll fake it for you.  You might want to look at"
  	echo "contrib/dbz, which is a probably-superior fake that we have"
***************
*** 390,446 ****
  	;;
  esac
  
  echo
  echo 'Many systems, notably older ones, have implementations of the Standard'
! echo 'I/O library ("stdio") in which fgets, fputs, fread, and fwrite, although'
! echo 'correct, are quite slow.  We supply versions of these functions which'
! echo 'are faster than those in any stdio we know; they are compatible with'
! echo 'most AT&T-derived stdios.  If they work on your system, they are a'
  echo 'major performance win for C News.  There is a fairly thorough'
  echo 'compatibility check run after the library is built; as far as we'
  echo 'know, if the test works, the functions do (even on SunOS 4.0).'
! ./query 'Do you want to use our fast stdio library [yes]? '
! read libstdio
! case "$libstdio" in
! y*|Y*|'')	libstdio=libstdio
! 		echo 'Beware that the compatibility check will work best if'
! 		echo 'the output of doit.bin is NOT redirected into a file'
! 		echo 'or a pipe.'
! 		;;
! *)		libstdio=		;;
  esac
  
! if test " $dbm" != " DBM="
! then
! 	echo
  	echo 'Does the store() function in your dbm library return a'
! 	./query 'value (some old ones did not) [yes]? '
! 	read storeval
! 	case "$storeval" in
! 	y*|Y*|'')	storeval=y	;;
! 	esac
! else
! 	storeval=y
! fi
  
! found=
! for f in $fake dummy
! do
! 	if test " $f" = " strchr.o"
! 	then
! 		found=y
! 	fi
! done
! if test " $found" = " "
! then
! 	echo
! 	echo 'A well-tuned strchr() function customized to a particular machine'
  	echo 'is usually faster than portable C.  Is your strchr() function'
! 	./query 'indeed fast (okay to guess) [yes]? '
! 	read faststrchr
! 	case "$faststrchr" in
! 	y*|Y*|'')	faststrchr=y	;;
! 	esac
! fi
  
  echo
--- 319,357 ----
  	;;
  esac
+ fake="$newfake"
  
  echo
  echo 'Many systems, notably older ones, have implementations of the Standard'
! echo 'I/O library ("stdio") in which fgets, fputs, fread, and fwrite are'
! echo 'quite slow.  We supply versions of these functions which are faster'
! echo 'than those in any stdio we know; they are compatible with most'
! echo 'AT&T-derived stdios.  If they work on your system, they are a'
  echo 'major performance win for C News.  There is a fairly thorough'
  echo 'compatibility check run after the library is built; as far as we'
  echo 'know, if the test works, the functions do (even on SunOS 4.0).'
! faststdio=`yesno 'Do you want to use our fast stdio library' ${faststdio-yes}`
! case "$faststdio" in
! yes)	echo 'Beware that the compatibility check will work best if'
! 	echo 'the output of doit.bin is NOT redirected into a file'
! 	echo 'or a pipe.'
! 	;;
  esac
  
! case "$dbmopt" in
! '')	storeval=yes		;;
! *)	echo
  	echo 'Does the store() function in your dbm library return a'
! 	storeval=`yesno 'value (some old ones did not)' ${storeval-yes}`
! 	;;
! esac
  
! has=`notinlist "$fake" strchr.o`
! case "$has" in
! yes)	echo
! 	echo 'A well-tuned strchr() function customized to your machine'
  	echo 'is usually faster than portable C.  Is your strchr() function'
! 	faststrchr=`yesno 'indeed fast (okay to guess)' ${faststrchr-yes}`
! 	;;
! esac
  
  echo
***************
*** 453,461 ****
  echo 'systems that are too old to do setuid(geteuid()).  Relaynews invokes'
  echo 'it automatically if needed (and it then invokes relaynews in return).'
! ./query 'Can this system do setuid(geteuid()) [yes]? '
! read sete
! case "$sete" in
! y*|Y*|'')	sete=y	;;
! esac
  
  echo
--- 364,368 ----
  echo 'systems that are too old to do setuid(geteuid()).  Relaynews invokes'
  echo 'it automatically if needed (and it then invokes relaynews in return).'
! sete=`yesno 'Can this system do setuid(geteuid())' ${sete-yes}`
  
  echo
***************
*** 462,480 ****
  echo 'Some systems have header files that others lack, and C News'
  echo 'is prepared to fake missing ones.'
! fakehdrs=
  for h in $mightfakehdrs
  do
! 	./query "Does your system have an ANSI-C-conforming <$h> [yes]? "
! 	read answer
! 	case "$answer" in
! 	y*|Y*|'')	;;
! 	*)	fakehdrs="$fakehdrs ../include/$h"	;;
  	esac
  done
! ./query "Does your system have <sys/timeb.h> [yes]? "
! read answer
! case "$answer" in
! n*|N*)	fakehdrs="$fakehdrs ../include/sys/timeb.h"	;;
  esac
  
  echo
--- 369,387 ----
  echo 'Some systems have header files that others lack, and C News'
  echo 'is prepared to fake missing ones.'
! newfakehdrs=
  for h in $mightfakehdrs
  do
! 	has=`notinlist "$fakehdrs" ../include/$h`
! 	tmp=`yesno "Does your system have an ANSI-C-conforming <$h>" $has`
! 	case "$tmp" in
! 	no)	newfakehdrs="$newfakehdrs ../include/$h"	;;
  	esac
  done
! has=`notinlist "$fakehdrs" ../include/sys/timeb.h`
! tmp=`yesno 'Does your system have <sys/timeb.h>' $has`
! case "$tmp" in
! no)	newfakehdrs="$newfakehdrs ../include/sys/timeb.h"	;;
  esac
+ fakehdrs="$newfakehdrs"
  
  echo
***************
*** 481,495 ****
  echo 'Some old systems think sprintf() returns a value of type "char *".'
  echo 'The modern standard is that it returns "int".  Does your sprintf()'
! ./query 'return "char *" [no]? '
! read answer
! case "$answer" in
! n*|N*|'')	;;
! *)		echo 'You may have to hand-edit our "libc.h" include file if'
! 		echo 'your compiler objects to us declaring sprintf() to'
! 		echo 'return "int".  (This will usually happen only if your'
! 		echo '<stdio.h> header file declares sprintf() -- some do,'
! 		echo 'some do not.)  If you do need to edit "libc.h", look'
! 		echo 'for the definition of "sprvalue".'
! 		;;
  esac
  
--- 388,400 ----
  echo 'Some old systems think sprintf() returns a value of type "char *".'
  echo 'The modern standard is that it returns "int".  Does your sprintf()'
! sprintfchar=`yesno 'return "char *"' ${sprintfchar-no}`
! case "$sprintfchar" in
! yes)	echo 'You may have to hand-edit our "libc.h" include file if'
! 	echo 'your compiler objects to us declaring sprintf() to'
! 	echo 'return "int".  (This will usually happen only if your'
! 	echo '<stdio.h> header file declares sprintf() -- some do,'
! 	echo 'some do not.)  If you do need to edit "libc.h", look'
! 	echo 'for the definition of "sprvalue".'
! 	;;
  esac
  
***************
*** 498,519 ****
  echo 'chosen very carefully.  V7 introduced "ranlib" which removes the need'
  echo 'for this.  Recent System Vs have had the same facility built into "ar"'
! echo '(look for "symdef" in the "ar" manual page) so "ranlib" is not needed.'
! ./query "Does your system have a 'ranlib' command [no]? "
! read ranlib
  case "$ranlib" in
! n*|N*|'')
! 	./query 'Does your "ar" have a "symdef" feature [yes]? '
! 	read answer
! 	case "$answer" in
! 	n*|N*)	echo 'You have trouble and may need to modify doit.bin before'
  		echo 'running it.  It will assume "ranlib" is present.'
! 		ranlib=y
  		;;
- 	*)	ranlib=
- 		;;
  	esac
  	;;
! *)	ranlib=y
! 	;;
  esac
  
--- 403,418 ----
  echo 'chosen very carefully.  V7 introduced "ranlib" which removes the need'
  echo 'for this.  Recent System Vs have had the same facility built into "ar"'
! echo '(look for the "symdef" feature in the "ar" manual page) so "ranlib"'
! ranlib=`yesno 'is not needed.  Does your system use 'ranlib'' ${ranlib-no}`
  case "$ranlib" in
! no)	symdef=`yesno 'Does your "ar" have a "symdef" feature' ${symdef-yes}`
! 	case "$symdef" in
! 	no)	echo 'You have trouble and may need to modify doit.bin before'
  		echo 'running it.  It will assume "ranlib" is present.'
! 		ranlib=yes
  		;;
  	esac
  	;;
! yes)	symdef=no		;;
  esac
  
***************
*** 521,530 ****
  echo 'Historically the C compiler is named "cc", but this is not true on'
  echo 'some systems, and on others there are several different C compilers.'
! ./query 'What is the name of the C compiler to be used [cc]? '
! read cc
! case "$cc" in
! '')	cc=	;;
! *)	cc="CC=$cc"	;;
! esac
  
  echo
--- 420,424 ----
  echo 'Historically the C compiler is named "cc", but this is not true on'
  echo 'some systems, and on others there are several different C compilers.'
! cc=`ask 'What is the name of the C compiler to be used' ${cc-cc}`
  
  echo
***************
*** 531,540 ****
  echo 'Historically the only normal compilation option needed for most'
  echo 'programs is -O, but again compilers, especially newer ones, differ.'
! ./query "What options should be given to the compiler [-O]? "
! read copts
! case "$copts" in
! '')	copts=	;;
! *)	copts="COPTS='$copts'"	;;
! esac
  
  echo
--- 425,429 ----
  echo 'Historically the only normal compilation option needed for most'
  echo 'programs is -O, but again compilers, especially newer ones, differ.'
! copts="`ask 'What options should be given to the compiler' \"${copts--O}\"`"
  
  echo
***************
*** 541,551 ****
  echo 'The final linking ("ld") step of compiling might need an option,'
  echo 'such as -n or -i, to produce the preferred form of executable file.'
! echo 'On many modern systems the preferred form is the default.  What options,'
! ./query 'if any, should be given for linking [none]? '
! read ldopts
! case "$ldopts" in
! '')	;;
! *)	copts="$copts LDFLAGS='$ldopts'"	;;
! esac
  
  echo
--- 430,435 ----
  echo 'The final linking ("ld") step of compiling might need an option,'
  echo 'such as -n or -i, to produce the preferred form of executable file.'
! echo 'On most modern systems the default is right.  What options, if any,'
! ldopts=`ask 'should be given for linking' ${ldopts-}`
  
  echo
***************
*** 554,576 ****
  echo 'either full pathnames or -l... options.  What libraries, in addition'
  echo 'to the one(s) picked up automatically by the compiler, should be used'
! ./query 'when linking C News [none]? '
! read postlibs
! case "$postlibs" in
! '')	;;
! *)	postlibs="POST='$postlibs'"	;;
! esac
  
  echo
! ./query 'Does your system have a "hostname" command [yes]? '
! read hostname
  case "$hostname" in
! y*|Y*|'')	hostname=y	;;
! *)	./query 'Does it have a "uname" command with a "-n" option [yes]? '
! 	read hostname
! 	case "$hostname" in
! 	y*|Y*|'')	hostname=u	;;
! 	*)		hostname=	;;
! 	esac
! 	;;
  esac
  
--- 438,448 ----
  echo 'either full pathnames or -l... options.  What libraries, in addition'
  echo 'to the one(s) picked up automatically by the compiler, should be used'
! postlibs=`ask 'when linking C News' ${postlibs-}`
  
  echo
! hostname=`yesno 'Does your system have a "hostname" command' ${hostname-yes}`
  case "$hostname" in
! yes)	uname=no	;;
! no)	uname=`yesno 'Does it have a "uname -n" command' ${uname-yes}`	;;
  esac
  
***************
*** 584,598 ****
  echo '	hdb	Honey DanBer, aka Basic Networking Utilities'
  echo '	sub	old uucp with subdirectories (e.g. /usr/spool/uucp/C.)'
  echo "	null	don't run uucp or don't care about queue lengths"
  while true
  do
! 	./query 'Which one is most appropriate [hdb]? '
! 	read uucptype
  	case "$uucptype" in
! 	'')	uucptype=hdb	;;
! 	sub)	echo 'Beware -- test "queuelen" to make sure it works.'	;;
  	esac
  	case "$uucptype" in
! 	hdb|sub|null)	break	;;
  	esac
  	echo 'Sorry, no such choice is available.'
--- 456,470 ----
  echo '	hdb	Honey DanBer, aka Basic Networking Utilities'
  echo '	sub	old uucp with subdirectories (e.g. /usr/spool/uucp/C.)'
+ echo '	old	very old uucp, no subdirectories'
+ echo '	pre	prehistoric uucp, no subdirectories, no -g option on uux'
  echo "	null	don't run uucp or don't care about queue lengths"
  while true
  do
! 	uucptype=`ask 'Which one is most appropriate' ${uucptype-hdb}`
  	case "$uucptype" in
! 	sub|old)	echo 'Beware -- test "queuelen" to make sure it works.'	;;
  	esac
  	case "$uucptype" in
! 	hdb|sub|old|pre|null)	break	;;
  	esac
  	echo 'Sorry, no such choice is available.'
***************
*** 604,611 ****
  echo 'C News knows about several different versions:'
  echo '	bsd	4.2BSD and later'
! echo '	sysv	most System Vs'
  echo '	sgi	Silicon Graphics Iris systems'
  echo '	ultrix	DEC Ultrix 3.0 (and later) (and earlier??)'
- echo '	xenix	some (all?) Xenixes, notably SCO'
  echo '	v7	plain old style:  no headers or fluff, just name and number'
  echo "	null	don't know or don't care how much space is available"
--- 476,483 ----
  echo 'C News knows about several different versions:'
  echo '	bsd	4.2BSD and later'
! echo '	sysv	many System Vs'
! echo '	xenix	some (all?) Xenixes, notably SCO; also Microport?'
  echo '	sgi	Silicon Graphics Iris systems'
  echo '	ultrix	DEC Ultrix 3.0 (and later) (and earlier??)'
  echo '	v7	plain old style:  no headers or fluff, just name and number'
  echo "	null	don't know or don't care how much space is available"
***************
*** 612,619 ****
  while true
  do
! 	./query 'Which one is most appropriate [bsd]? '
! 	read dftype
  	case "$dftype" in
- 	'')	dftype=bsd	;;
  	sysv|xenix)
  		echo 'Beware -- test "spacefor" to make sure it works.'
--- 484,489 ----
  while true
  do
! 	dftype=`ask 'Which one is most appropriate' ${dftype-bsd}`
  	case "$dftype" in
  	sysv|xenix)
  		echo 'Beware -- test "spacefor" to make sure it works.'
***************
*** 632,639 ****
  echo 'name of a device.  Modern ones can be given any directory name and'
  echo 'the system handles the details of figuring out what device is meant.'
! ./query 'Does your "df" accept a directory name as an argument [yes]? '
! read answer
! case "$answer" in
! n*|N*)	echo 'You are going to have to customize "spacefor" for your system.'
  	echo 'It will be generated assuming that directory names do work.'
  	;;
--- 502,508 ----
  echo 'name of a device.  Modern ones can be given any directory name and'
  echo 'the system handles the details of figuring out what device is meant.'
! dfdirs=`yesno 'Will your "df" accept a directory-name argument' ${dfdirs-yes}`
! case "$dfdirs" in
! no)	echo 'You are going to have to customize "spacefor" for your system.'
  	echo 'It will be generated assuming that directory names do work.'
  	;;
***************
*** 641,648 ****
  
  echo
! ./query 'Are you planning to use expire to archive news on disk [no]? '
! read answer
! case "$answer" in
! y*|Y*)	echo 'You probably want to customize the "archive" entry in'
  	echo '"spacefor" so it knows where your archiving is done and how'
  	echo 'much space you want free there.'
--- 510,516 ----
  
  echo
! archive=`yesno 'Are you planning to use expire to archive news on disk' ${archive-no}`
! case "$archive" in
! yes)	echo 'You probably want to customize the "archive" entry in'
  	echo '"spacefor" so it knows where your archiving is done and how'
  	echo 'much space you want free there.'
***************
*** 651,658 ****
  
  echo
! ./query 'Are you particularly short of disk space [no]? '
! read answer
! case "$answer" in
! y*|Y*)	echo 'You may want to reconsider whether you really want to get'
  	echo 'news, unless you are getting only a very small set of groups.'
  	echo 'In any case, you definitely want to inspect "spacefor" and'
--- 519,525 ----
  
  echo
! spacelow=`yesno 'Are you particularly short of disk space' ${spacelow-no}`
! case "$spacelow" in
! yes)	echo 'You may want to reconsider whether you really want to get'
  	echo 'news, unless you are getting only a very small set of groups.'
  	echo 'In any case, you definitely want to inspect "spacefor" and'
***************
*** 659,663 ****
  	echo 'change some of its thresholds for free space.'
  	;;
! *)	echo 'You may want to inspect "spacefor" to make sure its defaults'
  	echo 'for things like desired free space are appropriate for your'
  	echo 'system, although the defaults are fairly conservative.'
--- 526,530 ----
  	echo 'change some of its thresholds for free space.'
  	;;
! no)	echo 'You may want to inspect "spacefor" to make sure its defaults'
  	echo 'for things like desired free space are appropriate for your'
  	echo 'system, although the defaults are fairly conservative.'
***************
*** 666,690 ****
  
  echo
! echo 'Are you running C News on a group of machines hooked together with'
! ./query 'NFS, with articles filed on only one "server" machine [no]? '
! read answer
  server=
! case "$answer" in
! y*|Y*)	if test " $hostname" = " "
! 	then
! 		echo 'With a server but no "hostname" command, you will have'
  		echo 'problems and will probably have to tinker by hand to'
  		echo 'get a fake "hostname" that does the right thing.  The'
  		echo 'generated files will assume you have "hostname".'
! 		hostname=y
! 	fi
! 	if test " $hostname" = " u"
! 	then
! 		./query 'What is the "uname -n" name of the server? '
! 	else
! 		./query 'What is the "hostname" name of the server? '
! 	fi
! 	read server
  	;;
  esac
  
--- 533,555 ----
  
  echo
! echo 'Are you running C News on a group of machines hooked together with NFS,'
! nfsgroup=`yesno 'with articles filed on one "server" machine' ${nfsgroup-no}`
  server=
! case "$nfsgroup" in
! yes)	case "$hostname$uname" in
! 	'nono')	echo 'With a server but no "hostname" command, you will have'
  		echo 'problems and will probably have to tinker by hand to'
  		echo 'get a fake "hostname" that does the right thing.  The'
  		echo 'generated files will assume you have "hostname".'
! 		hostname=yes
! 		;;
! 	esac
! 	case "$uname" in
! 	yes)	tmp="uname -n"	;;
! 	no)	tmp="hostname"	;;
! 	esac
! 	server=`ask "What is the \"$tmp\" name of the server" ${server-newsie}`
  	;;
+ no)	server=newsie		;;
  esac
  
***************
*** 695,700 ****
  echo 'article headers and related places.  For uucp sites, this usually'
  echo 'should be the uucp name.  What is the name of the overall system'
! ./query 'for news purposes? '
! read whoami
  
  echo
--- 560,564 ----
  echo 'article headers and related places.  For uucp sites, this usually'
  echo 'should be the uucp name.  What is the name of the overall system'
! whoami="`ask 'for news purposes' \"${whoami-nowhere}\"`"
  
  echo
***************
*** 702,715 ****
  echo 'a mailing address, which in particular should be a domain address'
  echo 'for sites that have one.  What is the mailing-address name of this'
! ./query "system, preferably a domain address [$whoami.uucp]? "
! read mailname
! case "$mailname" in
! '')	mailname="$whoami.uucp"	;;
! esac
  
  echo
  echo 'What is the name of the organization, for insertion into articles'
! ./query 'posted from here? '
! read organization
  
  echo
--- 566,574 ----
  echo 'a mailing address, which in particular should be a domain address'
  echo 'for sites that have one.  What is the mailing-address name of this'
! mailname="`ask 'system, preferably a domain address' \"${mailname-$whoami.uucp}\"`"
  
  echo
  echo 'What is the name of the organization, for insertion into articles'
! organization="`ask 'posted from here' \"${organization-Godcorp}\"`"
  
  echo
***************
*** 717,725 ****
  echo 'Local practices vary a great deal, however, and System V has also'
  echo 'introduced some bizarre distortions into this once-simple structure.'
! ./query 'What is the top-level manual-page directory [/usr/man]? '
! read manpages
! case "$manpages" in
! '')	manpages=/usr/man	;;
! esac
  
  echo
--- 576,580 ----
  echo 'Local practices vary a great deal, however, and System V has also'
  echo 'introduced some bizarre distortions into this once-simple structure.'
! manpages=`ask 'What is the top-level manual-page directory' ${manpages-/usr/man}`
  
  echo
***************
*** 729,736 ****
  echo 'in some variants of Unix.  Also, originally pages from chapter 5 (for'
  echo "example) were stored in $manpages/man5.  This has also changed in"
! ./query 'some variants.  Has your system made either of these changes [no]? '
! read answer
! case "$answer" in
! y*|Y*)	echo 'You will have to hand-edit the last few lines of doit.bin'
  	echo 'to install the manual pages where they belong on your system.'
  	;;
--- 584,590 ----
  echo 'in some variants of Unix.  Also, originally pages from chapter 5 (for'
  echo "example) were stored in $manpages/man5.  This has also changed in"
! manmess=`yesno 'some variants.  Has your system made such changes' ${manmess-no}`
! case "$manmess" in
! yes)	echo 'You will have to hand-edit the last few lines of doit.bin'
  	echo 'to install the manual pages where they belong on your system.'
  	;;
***************
*** 744,752 ****
  echo 'them, so they need not go in the directories searched for normal'
  echo 'commands... although uucp often searches only those directories.'
! ./query 'What directory should "rnews" and "cunbatch" go in [/bin]? '
! read rbin
! case "$rbin" in
! '')	rbin=/bin	;;
! esac
  
  echo
--- 598,602 ----
  echo 'them, so they need not go in the directories searched for normal'
  echo 'commands... although uucp often searches only those directories.'
! rbin=`ask 'What directory should "rnews" and "cunbatch" go in' ${rbin-/bin}`
  
  echo
***************
*** 756,764 ****
  echo '(or other) versions should run fine with C News.  If you are already'
  echo 'running such user-interface software, you may not want to change.'
! ./query 'Do you want to install our user-interface programs [yes]? '
! read doui
  case "$doui" in
! ''|y*|Y*)	doui=yes ; pgmdirs="$pgmdirs rna"	;;
! *)	doui=no	;;
  esac
  
--- 606,612 ----
  echo '(or other) versions should run fine with C News.  If you are already'
  echo 'running such user-interface software, you may not want to change.'
! doui=`yesno 'Do you want to install our user-interface programs' ${doui-yes}`
  case "$doui" in
! yes)	pgmdirs="$pgmdirs rna"	;;
  esac
  
***************
*** 765,778 ****
  echo
  case "$doui" in
! no)	echo 'The "inews" command(s) should'	;;
! *)	echo 'The "inews", "postnews", "readnews", and "checknews" commands should'	;;
  esac
  echo 'go in one of the directories searched for normal commands, so users'
  echo 'can run them without special arrangements.  What directory should'
! ./query 'these commands go in [/bin]? '
! read bin
! case "$bin" in
! '')	bin=/bin	;;
! esac
  
  echo
--- 613,623 ----
  echo
  case "$doui" in
! no)	tmp='"inews"'	;;
! yes)	tmp='"inews", "postnews", "readnews", and "checknews"'	;;
  esac
+ echo "The $tmp command(s) should"
  echo 'go in one of the directories searched for normal commands, so users'
  echo 'can run them without special arrangements.  What directory should'
! bin=`ask 'these commands go in' ${bin-/bin}`
  
  echo
***************
*** 781,798 ****
  echo 'Internet-style "@" address or a uucp-style "!" address.  Internet'
  echo 'style is probably better... if your mailer supports it at all.'
! ./query 'Will "mail" handle "@" addresses [no]? '
! read atok
! case "$atok" in
! y*|Y*)	atok=y	;;
! *)	atok=	;;
! esac
  
  case "$doui" in
! yes)
! 	echo
  	echo 'Postnews can supply a default newsgroup, to aid naive users in'
  	echo 'getting this right for simple postings.  What should the default'
! 	./query 'newsgroup for postnews be [no default]? '
! 	read postdefltgroup
  
  	echo
--- 626,636 ----
  echo 'Internet-style "@" address or a uucp-style "!" address.  Internet'
  echo 'style is probably better... if your mailer supports it at all.'
! atok=`yesno 'Will "mail" handle "@" addresses' ${atok-no}`
  
  case "$doui" in
! yes)	echo
  	echo 'Postnews can supply a default newsgroup, to aid naive users in'
  	echo 'getting this right for simple postings.  What should the default'
! 	postdefltgroup="`ask 'newsgroup be' \"${postdefltgroup-none}\"`"
  
  	echo
***************
*** 800,805 ****
  	echo 'local area unless the user specifically changes it.  This is'
  	echo 'probably wise.  What should the default postnews distribution'
! 	./query 'be [world]? '
! 	read postdefltdist
  	;;
  esac
--- 638,642 ----
  	echo 'local area unless the user specifically changes it.  This is'
  	echo 'probably wise.  What should the default postnews distribution'
! 	postdefltdist="`ask 'be' \"${postdefltdist-world}\"`"
  	;;
  esac
***************
*** 811,819 ****
  echo "C News's generally are not, mind you), that site can get any article"
  echo 'currently on your system.  Do you have any newsgroups containing'
! ./query 'confidential or proprietary material [no]? '
! read answer
! case "$answer" in
! n*|N*|'')	;;
! *)	echo 'You may want to substitute relay/ihave.not.c for relay/ihave.c'
  	echo 'before running doit.bin, so that ihave/sendme is disabled'
  	echo 'at your site.'
--- 648,654 ----
  echo "C News's generally are not, mind you), that site can get any article"
  echo 'currently on your system.  Do you have any newsgroups containing'
! paranoid=`yesno 'confidential or proprietary material' ${paranoid-no}`
! case "$paranoid" in
! yes)	echo 'You may want to substitute relay/ihave.not.c for relay/ihave.c'
  	echo 'before running doit.bin, so that ihave/sendme is disabled'
  	echo 'at your site.'
***************
*** 872,887 ****
  	echo 'cd h'
  	echo 'rm -f nnewshsed'
! 	if test " $faststrchr" != " y"
! 	then
! 		echo 'echo "/FASTSTRCHR.*qqq/s;^;/* ;" >>nnewshsed'
! 	fi
! 	if test " $storeval" = " y"
! 	then
! 		echo 'echo "/NOSTOREVAL.*qqq/s;^;/* ;" >>nnewshsed'
! 	fi
! 	if test " $addrsize" = " big"
! 	then
! 		echo 'echo "/SMALLMEM.*qqq/s;^;/* ;" >>nnewshsed'
! 	fi
  	echo 'if test -f newshsed && cmp -s nnewshsed newshsed'
  	echo 'then'
--- 707,719 ----
  	echo 'cd h'
  	echo 'rm -f nnewshsed'
! 	case "$faststrchr" in
! 	no)	echo 'echo "/FASTSTRCHR.*qqq/s;^;/* ;" >>nnewshsed'	;;
! 	esac
! 	case "$storeval" in
! 	yes)	echo 'echo "/NOSTOREVAL.*qqq/s;^;/* ;" >>nnewshsed'	;;
! 	esac
! 	case "$addrsize" in
! 	big)	echo 'echo "/SMALLMEM.*qqq/s;^;/* ;" >>nnewshsed'	;;
! 	esac
  	echo 'if test -f newshsed && cmp -s nnewshsed newshsed'
  	echo 'then'
***************
*** 900,904 ****
  	echo ": making substitutions..."
  	echo "cd ../conf"
! 	if test " $needsubst" = " y"
  	then
  		echo 'case "$1" in'
--- 732,736 ----
  	echo ": making substitutions..."
  	echo "cd ../conf"
! 	if test " $needsubst" != " n"	xxx
  	then
  		echo 'case "$1" in'
***************
*** 916,939 ****
  	echo "make queuelen.$uucptype || exit 1"
  	echo "cp queuelen.$uucptype queuelen"
! 	if test " $hostname" = " y"
! 	then
! 		echo "# ( echo '#! /bin/sh' ; echo 'echo $whoami' ) >hostname"
! 	elif test " $hostname" = " u"
! 	then
! 		echo "( echo '#! /bin/sh' ; echo 'uname -n' ) >hostname"
! 	else
! 		echo "( echo '#! /bin/sh' ; echo 'echo $whoami' ) >hostname"
! 	fi
  	echo ': done'
  	echo ': making library...'
! 	if test " $ranlib" = " y"
! 	then
! 		echo "touch ../ranlibed"
! 		echo "sleep 2"
! 	fi
  	echo "for dir in lib$unixkind lib$addrsize libc libcnews $libstdio"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make u $cc $copts $postlibs || exit 1"
  	echo "done"
  	echo "cd ../libfake"
--- 748,782 ----
  	echo "make queuelen.$uucptype || exit 1"
  	echo "cp queuelen.$uucptype queuelen"
! 	case "$hostname" in
! 	no)	case "$uname" in
! 		yes)	echo "echo 'uname -n' >hostname"	;;
! 		no)	echo "echo 'echo $whoami' >hostname"	;;
! 		esac
! 	esac
  	echo ': done'
  	echo ': making library...'
! 	case "$ranlib" in
! 	yes)	echo "touch ../ranlibed ; sleep 2"	;;
! 	esac
! 	case "$faststdio" in
! 	yes)	libstdio=libstdio	;;
! 	no)	libstdio=		;;
! 	esac
! 	case "$cc" in
! 	cc)	ccc="COPTS='$copts'"	;;
! 	*)	ccc="CC=$cc COPTS='$copts'"	;;
! 	esac
! 	case "$ldopts" in
! 	'')					;;
! 	*)	ccc="$ccc LDFLAGS='$ldopts'"	;;
! 	esac
! 	case "$postlibs" in
! 	'')					;;
! 	*)	ccc="$ccc POST='$postlibs'"	;;
! 	esac
  	echo "for dir in lib$unixkind lib$addrsize libc libcnews $libstdio"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make u $ccc || exit 1"
  	echo "done"
  	echo "cd ../libfake"
***************
*** 942,955 ****
  	echo "w"
  	echo "!"
! 	echo "make u $cc $copts $postlibs || exit 1"
  	echo "cd ../conf"
! 	if test " $ranlib" = " y"
! 	then
! 		echo "make ../ranlibed || exit 1"
! 	fi
  	echo ': library done'
! 	if test " $libstdio" != " "
! 	then
! 		echo 'case "$1" in'
  		echo '-*t*)	;;'
  		echo '*)	: testing libstdio'
--- 785,796 ----
  	echo "w"
  	echo "!"
! 	echo "make u $ccc || exit 1"
  	echo "cd ../conf"
! 	case "$ranlib" in
! 	yes)	echo "make ../ranlibed || exit 1"	;;
! 	esac
  	echo ': library done'
! 	case "$faststdio" in
! 	yes)	echo 'case "$1" in'
  		echo '-*t*)	;;'
  		echo '*)	: testing libstdio'
***************
*** 958,976 ****
  		echo '	: but do not redirect it -- it is important that stdio'
  		echo '	: think output is going to a terminal.'
! 		echo "	make trials $cc $copts $postlibs || exit 1"
  		echo '	: done'
  		echo '	;;'
  		echo 'esac'
! 	fi
  	echo ': building programs'
  	echo 'cd ../conf'
! 	if test " $sete" != " y"
! 	then
! 		echo "make setnewsids NEWSUSER=$newsuid NEWSGROUP=$newsgid $cc $copts $postlibs || exit 1"
! 	fi
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make all $dbm $cc $copts $postlibs || exit 1"
  	echo "done"
  	echo ": done"
--- 799,822 ----
  		echo '	: but do not redirect it -- it is important that stdio'
  		echo '	: think output is going to a terminal.'
! 		echo "	make trials $ccc || exit 1"
  		echo '	: done'
  		echo '	;;'
  		echo 'esac'
! 		;;
! 	esac
  	echo ': building programs'
  	echo 'cd ../conf'
! 	case "$sete" in
! 	no)	echo "make setnewsids NEWSUSER=$newsuid NEWSGROUP=$newsgid $ccc || exit 1"
! 		;;
! 	esac
! 	case "$dbmopt" in
! 	'')	dbm=			;;
! 	*)	dbm="DBM=$dbmopt"	;;
! 	esac
  	echo "for dir in $pgmdirs"
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make all $dbm $ccc || exit 1"
  	echo "done"
  	echo ": done"
***************
*** 983,1002 ****
  	echo "$organization"
  	echo '!'
! 	if test " $server" != " "
! 	then
! 		echo "echo '$server' >server"
! 	fi
! 	if test " $atok" != " y"
! 	then
! 		echo echo "'replies must use "!" addresses' >replyusepath"
! 	fi
! 	if test " $postdefltdist" != " "
! 	then
! 		echo "echo '$postdefltdist' >>postdefltdist"
! 	fi
! 	if test " $postdefltgroup" != " "
! 	then
! 		echo "echo '$postdefltgroup' >>postdefltgroup"
! 	fi
  	echo "echo '$whoami' >whoami"
  	echo "echo 'general 0000000000 0000000001 y' >active"
--- 829,846 ----
  	echo "$organization"
  	echo '!'
! 	case "$nfsgroup" in
! 	yes)	echo "echo '$server' >server"
! 	esac
! 	case "$atok" in
! 	no)	echo echo "'replies must use paths' >replyusepath"	;;
! 	esac
! 	case "$postdefltdist" in
! 	world)							;;
! 	*)	echo "echo '$postdefltdist' >>postdefltdist"	;;
! 	esac
! 	case "$postdefltgroup" in
! 	none)						;;
! 	*)	echo "echo '$postdefltgroup' >>postdefltgroup"	;;
! 	esac
  	echo "echo '$whoami' >whoami"
  	echo "echo 'general 0000000000 0000000001 y' >active"
***************
*** 1012,1015 ****
--- 856,866 ----
  	echo "echo 'all	uunet!%s' >mailpaths"	# crude
  	echo "cp sys.proto sys"
+ 	echo "cd ../expire"
+ 	echo "make explist.$archive && cp explist.$archive explist"
+ 	echo "cd ../conf"
+ 	case "$archive" in
+ 	yes)	a='-a /where/ever'	;;
+ 	no)	a=			;;
+ 	esac
  	echo "cat >cron <<'!'"
  	cat <<!
***************
*** 1018,1023 ****
  00 17	1-31 *	1-5	su news -c '$newsbin/input/newsrunning on'
  40 *	1-31 *	0-6	su news -c '$newsbin/batch/sendbatches'
! 59 0	1-31 *	0-6	su news -c '$newsbin/expire/doexpire'
! 45 3	1-31 *	0-6	su news -c '$newsbin/expire/superkludge comp.mail.maps news.announce.newusers'
  10 8	1-31 *	0-6	su news -c '$newsbin/maint/newsdaily'
  00 5,13,21	1-31 *	0-6	su news -c '$newsbin/maint/newswatch'
--- 869,873 ----
  00 17	1-31 *	1-5	su news -c '$newsbin/input/newsrunning on'
  40 *	1-31 *	0-6	su news -c '$newsbin/batch/sendbatches'
! 59 0	1-31 *	0-6	su news -c '$newsbin/expire/doexpire $a'
  10 8	1-31 *	0-6	su news -c '$newsbin/maint/newsdaily'
  00 5,13,21	1-31 *	0-6	su news -c '$newsbin/maint/newswatch'
***************
*** 1069,1073 ****
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make newsinstall BIN=$bin RBIN=$rbin $dbm || exit 1"
  	echo "done"
  	echo ": done"
--- 919,923 ----
  	echo "do"
  	echo "	cd ../\$dir"
! 	echo "	make newsinstall BIN=$bin RBIN=$rbin || exit 1"
  	echo "done"
  	echo ": done"
***************
*** 1113,1119 ****
  	echo "umask $newsumask"
  	echo 'set -x'
! 	if test " $sete" != " y"
! 	then
! 		echo ": installing setnewsids"
  		echo "cp setnewsids $newsctl"
  		echo "$chown root $newsctl/setnewsids"
--- 963,968 ----
  	echo "umask $newsumask"
  	echo 'set -x'
! 	case "$sete" in
! 	no)	echo ": installing setnewsids"
  		echo "cp setnewsids $newsctl"
  		echo "$chown root $newsctl/setnewsids"
***************
*** 1120,1133 ****
  		echo "chmod u+s $newsctl/setnewsids"
  		echo ": done"
! 	fi
  	echo ": setting uids for setuid programs..."
  	them="$newsbin/input/newsspool $newsbin/relay/relaynews"
! 	if test " $chboth" = " y"
! 	then
! 		echo "$chown $newsuid.$newsgid $them"
! 	else
! 		echo "$chown $newsuid $them"
  		echo "$chgrp $newsgid $them"
! 	fi
  	echo "chmod u+s,g+s $them"
  	echo ": done"
--- 969,982 ----
  		echo "chmod u+s $newsctl/setnewsids"
  		echo ": done"
! 		;;
! 	esac
  	echo ": setting uids for setuid programs..."
  	them="$newsbin/input/newsspool $newsbin/relay/relaynews"
! 	case "$chboth" in
! 	yes)	echo "$chown $newsuid.$newsgid $them"	;;
! 	*)	echo "$chown $newsuid $them"
  		echo "$chgrp $newsgid $them"
! 		;;
! 	esac
  	echo "chmod u+s,g+s $them"
  	echo ": done"
***************
*** 1136,1139 ****
--- 985,1008 ----
  
  echo
+ echo 'saving defaults...'
+ rm -f build.def
+ >build.def
+ warn='# These answers are interdependent; do not edit this file!'
+ if test ! -w build.def
+ then
+ 	echo 'It appears that I cannot save the defaults.'
+ else
+ 	(
+ 		for v in $vars
+ 		do
+ 			echo "$warn"
+ 			eval "echo $v=\\\"\$$v\\\""
+ 		done
+ 	) >>build.def
+ 	echo 'done'
+ fi
+ chmod -w build.def
+ 
+ echo
  chmod +x doit.root doit.bin doit.news again.root
  echo "You should now run doit.root as root, doit.bin as $binuid, doit.news"
***************
*** 1141,1145 ****
  echo "that the source directories are owned by $binuid.  If you need to do"
  echo "installation work by hand, run 'doit.bin -i' as the owner; this will"
! echo "create the programs but won't install them.)  Finally, you will"
  echo "want to add the contents of 'cron', or something similar, to your"
  echo "cron's work-to-be-done file(s), and the contents of 'rc', or something"
--- 1010,1015 ----
  echo "that the source directories are owned by $binuid.  If you need to do"
  echo "installation work by hand, run 'doit.bin -i' as the owner; this will"
! echo "create the programs but won't install them.)  (It is not necessary"
! echo "to log in as these users; use of 'su' suffices.)  Finally, you will"
  echo "want to add the contents of 'cron', or something similar, to your"
  echo "cron's work-to-be-done file(s), and the contents of 'rc', or something"


end of patch 17-Jan-1990
-- 
1972: Saturn V #15 flight-ready|     Henry Spencer at U of Toronto Zoology
1990: birds nesting in engines | uunet!attcan!utzoo!henry henry at zoo.toronto.edu



More information about the Comp.sources.bugs mailing list