[comp.sys.next] Well... questions about upgrade to 2.0

dboyes@brazos.rice.edu (David Boyes) (03/31/91)

Refer me to a FAQ posting if one is available, but I have a few
questions about the 2.0 environment. The machine in question is a
030 cube, OD, 8M, 660M disk. 

1) Where did /lib/libc.a go? I found a libcs.a in /usr/lib -- is
   this just a shared version? It was there under 1.0a.

2) Has anyone successfully compiled Elm 2.3 for 2.0? 


Sigh. I'd hate to have to go back to 1.0a -- I've just gotten
used to the 2.0 browser.

-- 
David Boyes       |The three most dangerous things in the world:
dboyes@rice.edu   |  1) a programmer with a soldering iron,
                  |  2) a hardware type with a program patch, and
"Delays, delays!" |  3) a user with an idea.

eps@toaster.SFSU.EDU (Eric P. Scott) (03/31/91)

In article <1991Mar31.050505.18795@rice.edu>
	dboyes@brazos.rice.edu (David Boyes) writes:
>1) Where did /lib/libc.a go?

It went away.  cc now "always" links against the shared library.
This is your punishment for not religiously using -lsys_s under
previous releases.  :-)

>                             I found a libcs.a in /usr/lib -- is
>   this just a shared version?

Nope.  This is is a library of nifty goodies from CMU.
NeXT seems to have removed the man pages...  I know they were
there once (0.9?), since I have code that depends on procedures
in it.

>2) Has anyone successfully compiled Elm 2.3 for 2.0?

Well, I've been using 1.0 binaries, but just for you, I just did.
Piece of cake.  The rest of this article deals with this question,
so if you're not interested, hit `n' now...

As of this writing, the current release is 2.3PL11.
Apply the patches at the end of this article in the usual manner:

        From rn, say "| patch -p -N -d DIR", where DIR is your elm source
        directory.  Outside of rn, say "cd DIR; patch -p -N <thisarticle".

If you don't have the patch utility (you WHAT?), you can FTP an
executable from sutro.sfsu.edu [130.212.15.230] as pub/patch.Z
(you will need to uncompress it first!)

Run Configure.  Most of the questions have obvious responses
(like RETURN).

  Give the name of the program used to process manual pages on your
  system: [/usr/bin/troff] /usr/bin/ptroff

As good an answer as any.

  Where do the manual pages (source) go? [/usr/man/mann] /usr/man/manl

Local preference.

  Any additional cc flags? [none] -bsd

You will, of course, burn in Hell otherwise.  :-)

  None of these seems to contain your C library.  What is the full name
  of your C library? /lib/libsys_s.a

It is now!

  Are you getting the passwd file via yellow pages? [n] y

Well, I'm really getting it from NetInfo, but the question is
really asking about whether it's "safe" to read /etc/passwd
directly.  It isn't!

  Would you like to use flock style mail spool locking only? [n] y

Only Bryan Yamamoto knows for sure.  :-)

  Pathalias data file /usr/lib/nmail.paths doesn't exist.
  Use that name anyway? [n] y

This is a sendmail system.  It shouldn't really be asking this.
Somewhat later during Configure it gets around to checking for
sendmail.

  Domains data file /usr/lib/domains doesn't exist.
  Use that name anyway? [n] y

Ditto.

  What is the default editor on your system? [/usr/ucb/vi] builtin
  File builtin doesn't exist.  Use that name anyway? [n] y

The official version of ELM does The Wrong Thing if you answer
anything other than /usr/ucb/vi; the attached patches let you
specify whatever you prefer so it works as documented.  The
ELM Development Group refused(!) to fix the official version,
saying they'll take care of it in 2.4.  (Sounds familiar, huh?)

  Am I going to be running as a setgid program? [y] n

This isn't System V!

  If you need to edit config.sh, do it as a shell escape here: !ex config.sh
  :/voidsig/s/define/undef/
  :/passcat/s/ypcat passwd/nidump passwd \//
  :wq

-bsd affects preprocessor symbols, but when Configure wanted
to know what signal() returns it didn't pass that flag to its
test program (since it didn't start with -D or -I) and used
ANSI semantics by mistake.  Then we tell it what works in
shell scripts for getting passwd information.

Then type make.  You will get warnings in addr_util.c and init.c;
don't worry about them.

I don't install the following:
	answer (we don't run that sort of operation)
	arepdaemon (use vacation instead)
	autoreply (ditto)
	fastmail (use sendmail -t instead)
	[w]newmail (use biff instead)

Let me know if you encounter any surprises.

					-=EPS=-
-------
The following unofficial patch is for ELM 2.3PL11

Priority
(NONE)	. Change default sort order for compatibility with other
	  MUAs
(MED)	. Fix ~v to properly invoke vi when elm is configured to
	  use "builtin" or "none" as the default editor
(MED)	. Even if already_has_text is true, if the alternate_editor
	  is "builtin" or "none" don't try to shell to it
(HIGH)	. conditional out functions that conflict with shared
	  library versions under NeXT Software Release 2.0
(LOW)	. Avoid creating extraneous process from ~! shell escape
-------
Index: hdrs/elm.h
Prereq: 4.1.1.1
*** hdrs/elm.h.orig
--- hdrs/elm.h
***************
*** 142,148 ****
  int prompt_for_cc = 1;		/* flag: ask user for "cc:" value?  */
  int sig_dashes = 1;		/* flag: include dashes above sigs? */
  
! int sortby = REVERSE SENT_DATE;	/* how to sort incoming mail...     */
  
  long timeout = 600L;		/* timeout (secs) on main prompt    */
  
--- 142,148 ----
  int prompt_for_cc = 1;		/* flag: ask user for "cc:" value?  */
  int sig_dashes = 1;		/* flag: include dashes above sigs? */
  
! int sortby = MAILBOX_ORDER;	/* how to sort incoming mail...     */
  
  long timeout = 600L;		/* timeout (secs) on main prompt    */
  
Index: hdrs/sysdefs.SH
Prereq: 4.1.1.3
*** hdrs/sysdefs.SH.orig
--- hdrs/sysdefs.SH
***************
*** 100,105 ****
--- 100,106 ----
  #define readmsg_file	".elm/readmsg"
  
  #define emacs_editor	"$emacs"
+ #define vi_editor	"$vi"
  
  #define default_editor	"$defeditor"
  #define mailhome	"$maildir/"

Index: src/editmsg.c
Prereq: 4.1.1.4
*** src/editmsg.c.orig
--- src/editmsg.c
***************
*** 76,82 ****
  	buffer[0] = '\0';
  
  	if (strcmp(editor, "builtin") == 0 || strcmp(editor, "none") == 0) {
! 	  if (already_has_text) 
  	    sprintf(buffer, "%s %s", alternative_editor, filename);
  	  else
  	    return(no_editor_edit_the_message(filename));
--- 76,83 ----
  	buffer[0] = '\0';
  
  	if (strcmp(editor, "builtin") == 0 || strcmp(editor, "none") == 0) {
! 	  if (already_has_text && strcmp(alternative_editor, "builtin") &&
! 	    strcmp(alternative_editor, "none")) 
  	    sprintf(buffer, "%s %s", alternative_editor, filename);
  	  else
  	    return(no_editor_edit_the_message(filename));
***************
*** 255,261 ****
  
  	       case 'v' : NewLine();
  			  strcpy(buffer, editor);
! 			  strcpy(editor, default_editor);
  			  fclose(edit_fd);
  			  (void) edit_the_message(filename,0);
  			  strcpy(editor, buffer);
--- 256,262 ----
  
  	       case 'v' : NewLine();
  			  strcpy(buffer, editor);
! 			  strcpy(editor, vi_editor);
  			  fclose(edit_fd);
  			  (void) edit_the_message(filename,0);
  			  strcpy(editor, buffer);
***************
*** 305,311 ****
  			   if (( old_raw = RawState()) == ON)
  			     Raw(OFF);
  			   if (strlen(buffer) < 3) 
! 			     (void) system_call(shell, USER_SHELL, TRUE, TRUE);
  			   else
  	                     (void) system_call((char *) buffer+2, USER_SHELL, TRUE, TRUE);
  			   if (old_raw == ON)
--- 306,312 ----
  			   if (( old_raw = RawState()) == ON)
  			     Raw(OFF);
  			   if (strlen(buffer) < 3) 
! 			     (void) system_call((char *)NULL, USER_SHELL, TRUE, TRUE);
  			   else
  	                     (void) system_call((char *) buffer+2, USER_SHELL, TRUE, TRUE);
  			   if (old_raw == ON)

Index: sys/opt_utils.c
Prereq: 4.1
*** src/opt_utils.c.orig
--- src/opt_utils.c
***************
*** 186,192 ****
  
  #endif
  
! #if defined(BSD) && !defined(_POSIX_SOURCE)
  
  /** some supplementary string functions for Berkeley Unix systems **/
  
--- 186,192 ----
  
  #endif
  
! #if defined(BSD) && !defined(_POSIX_SOURCE) && !defined(NeXT)
  
  /** some supplementary string functions for Berkeley Unix systems **/
  
Index: sys/syscall.c
Prereq: 4.1.1.4
*** src/syscall.c.orig
--- src/syscall.c
***************
*** 218,224 ****
  #endif
  
  	  /* Go for it. */
! 	  execl(sh, argv_zero(sh), "-c", string, (char *) 0);
  
  	  /* If exec fails, we write a byte to the pipe before exiting. */
  	  perror(sh);
--- 218,225 ----
  #endif
  
  	  /* Go for it. */
! 	  if (string) execl(sh, argv_zero(sh), "-c", string, (char *) 0);
! 	  else execl(sh, argv_zero(sh), (char *) 0);
  
  	  /* If exec fails, we write a byte to the pipe before exiting. */
  	  perror(sh);