[comp.windows.misc] MGR installation

majka@moose.cs.ubc.ca (Marc Majka) (01/26/89)

I picked up mgr from uunet and tried to install it over the last
couple of days.  There are problems.  First, make sure you read
all the README files and do the fixes they specify.  They are:

* fix up all the control characters (see README.FIRST)
* cat src/copyright.h.[123456] > src/copyright.h
* cat lib/scribe.c.[1234] > lib/scribe.c
* uudecode the fonts

There are, however, two other bugs which bit me (i.e. they cause
make to fail):

1:  sys/kbd.c has this silly line (line 23):
    #   include "<sys/termios.h>"
    This should probably be:
    #include <sys/termios.h>

2:  There is supposed to be a file called doc/usrman.out
    It doesn't exist.  I made an empty one to get make over it,
    assuming that mgr would run without whatever this document
    is supposed to be.

Make complains of many errors while installing mgr, even with
these fixes.  All of them are reported with something like:
    "*** Error code 1: (ignored)"

Some of them do look ignorable, but there are mysterious things
which look more serious.  e.g.: "mv mgr _mgr" fails because the
file mgr doesn't exist.  "ln mgr mgr" also fails.

Thus, even though I got make to run all the way through, mgr was
probably in a bad state.  This seemed to be indicated further by
the fact that running mgr causes a segmentation fault.  It will
run with -v or -V and print version information, but otherwise it
dies without touching the screen. 

Has anyone out there got fixes for mgr?  I would like to try it 
out (as, I am sure, do many others on the net).  An informed 
posting to the net would be reasonable at this point.  Email to
me would be appreciated, but perhaps less helpful to other lost
soles.  

BTW, I tried putting mgr on a SUN 3, running SunOS 4.0.  I don't
believe this is an oddball system.

---
Marc Majka  -  System Manager  UBC Computer Science
<majka@cs.ubc.ca>
---

sau (Stephen A Uhler) (01/28/89)

In article <484@ubc-cs.UUCP> you write:
  >I picked up mgr from uunet and tried to install it over the last
  >couple of days.  There are problems.  <text deleted>
  >
  >There are, however, two other bugs which bit me (i.e. they cause
  >make to fail):
  >
  >1:  sys/kbd.c has this silly line (line 23):
  >    #   include "<sys/termios.h>"
  >    This should probably be:
  >    #include <sys/termios.h>
It is actually
#include <sys/ttycom.h>
Sun is good at moving TIOCCONS around.
  >
  >2:  There is supposed to be a file called doc/usrman.out
  >    It doesn't exist.  I made an empty one to get make over it,
  >    assuming that mgr would run without whatever this document
  >    is supposed to be.
usrman.out got lost somewhere, A patch to the Makefile makes usrman.out
if it isn't there.
  >
  >Make complains of many errors while installing mgr, even with
  >these fixes.  All of them are reported with something like:
  >    "*** Error code 1: (ignored)"
The Makefile is weird!  In general if make ignores an error, all is OK.
  >
  >Some of them do look ignorable, but there are mysterious things
  >which look more serious.  e.g.: "mv mgr _mgr" fails because the
  >file mgr doesn't exist.  "ln mgr mgr" also fails.
I told you the Makefile was weird.
  >
  >Thus, even though I got make to run all the way through, mgr was
  >probably in a bad state.  This seemed to be indicated further by
  >the fact that running mgr causes a segmentation fault.  It will
  >run with -v or -V and print version information, but otherwise it
  >dies without touching the screen. 
This only happens on SUNOS-4.0.  A fix is coming.  If you can't wait,
change line 69 in src/blit/bitmap.c (in the mmap call) replacing
PROT_WRITE with PROT_READ|PROT_WRITE
  >
  >Has anyone out there got fixes for mgr?  I would like to try it 
  >out (as, I am sure, do many others on the net).  An informed 
  >posting to the net would be reasonable at this point.  Email to
  >me would be appreciated, but perhaps less helpful to other lost
  >soles.  
I sent these (and other) fixes to $alz, so hopefully you should see them soon. 
  >
  >BTW, I tried putting mgr on a SUN 3, running SunOS 4.0.  I don't
  >believe this is an oddball system.
When I sent MGR to be posted, I didn't have 4.0 (I still use 3.5).

markv@uoregon.uoregon.edu (Mark VandeWettering) (01/28/89)

In article <484@ubc-cs.UUCP> majka@moose.cs.ubc.ca () writes:

>1:  sys/kbd.c has this silly line (line 23):
>    #   include "<sys/termios.h>"
>    This should probably be:
>    #include <sys/termios.h>

	I think this is an difference between the compilers under SUNOS4
	and the older versions.  See the caveats below.

>2:  There is supposed to be a file called doc/usrman.out
>    It doesn't exist.  I made an empty one to get make over it,
>    assuming that mgr would run without whatever this document
>    is supposed to be.

	Yeah, I did something similar.

>Some of them do look ignorable, but there are mysterious things
>which look more serious.  e.g.: "mv mgr _mgr" fails because the
>file mgr doesn't exist.  "ln mgr mgr" also fails.

	The makefiles in MGR are atrocious.  Whoever designed them....
	AGH!  I think I am going to totally redo them.  Whenever you
	touch a C file, it really wants to remake the whole
	distribution.  Kind of defeats the purpose of the thing doesn't
	it?

>Thus, even though I got make to run all the way through, mgr was
>probably in a bad state.  This seemed to be indicated further by
>the fact that running mgr causes a segmentation fault.  It will
>run with -v or -V and print version information, but otherwise it
>dies without touching the screen. 
	
	MGR also coredumps on me, with a similar system (SUN 3/60 with
	SUNOS4).  The coredump appears in mem_rop, in the blitlib
	library.  I managed to build the version that uses pixrect, but
	it too has problems (doesn't notice font changes)

>Has anyone out there got fixes for mgr?  I would like to try it 
>out (as, I am sure, do many others on the net).  An informed 
>posting to the net would be reasonable at this point.  Email to
>me would be appreciated, but perhaps less helpful to other lost
>soles.  

>BTW, I tried putting mgr on a SUN 3, running SunOS 4.0.  I don't
>believe this is an oddball system.

	One thing I noticed is there is code in mgr.c and copyright.c
	that assume 4.2 type "select" calls, where the mask is an
	integer.  PLEASE folks, take the time to upgrade this to 4.3ish
	standards.  Under SUNOS4, it just doesn't work anymore! 


>---
>Marc Majka  -  System Manager  UBC Computer Science
><majka@cs.ubc.ca>
>---
	
	I hope this might save someone else some time, keep me posted if
	anyone has fixes for SUNOS4.

rob@violet.berkeley.edu (Rob Robertson) (01/28/89)

In article <3647@uoregon.uoregon.edu> markv@drizzle.UUCP (Mark VandeWettering) writes:
>	
>	MGR also coredumps on me, with a similar system (SUN 3/60 with
>	SUNOS4).  The coredump appears in mem_rop, in the blitlib
>	library.  I managed to build the version that uses pixrect, but
>	it too has problems (doesn't notice font changes)
>

The fix is that SUN changed the mmap() call between 3.X and 4.0.
Besides the new semantics, it now gives you exactly what you ask of
it.  Under 3.X when one specified PROT_WRITE (ie I wanna write on
these pages), the kernel also gave you read access.  Under 4.0 it
don't, and any attempt to read core dumps.  

A coworker found the problem (thanks Bob!).  The patch below fixes the
problem, along with several others.  They should at least get the
system up under 4.0.

All in all I think that MGR (or MunGeR as it has been affectionately
dubbed) is pretty nifty.  Nice, small, and easy to work in.  Next best
thing to a Blit.

Maybe it'll make SunOS 4.0 bearable on a 3/50.

rob
				william robertson
				rob@violet.berkeley.edu

diff -c kbd.c.orig kbd.c
*** kbd.c.orig  Tue Jan 24 12:12:35 1989
--- kbd.c       Fri Jan 27 16:52:21 1989
***************
*** 20,26 ****
  # include <sys/types.h>
  # include <sundev/kbio.h>
  # ifndef TIOCCONS                                     /* definiton moved in rel. 4.0 */
! #   include "<sys/termios.h>"
  # endif
  #endif KBD
  #endif
--- 20,26 ----
  # include <sys/types.h>
  # include <sundev/kbio.h>
  # ifndef TIOCCONS                                     /* definiton moved in rel. 4.0 */
! #   include <sys/termios.h>
  # endif
  #endif KBD
  #endif

diff -c blit/bitmap.c.orig blit/bitmap.c
*** blit/bitmap.c.orig  Thu Jan 26 22:18:10 1989
--- blit/bitmap.c       Thu Jan 26 22:22:48 1989
***************
*** 66,76 ****

  #ifdef _MAP_NEW               /* New semantics for mmap in Sun release 4.0 */
     addr = (DATA) mmap(addr, _s_len=buff.fb_size,
!                                                PROT_WRITE, _MAP_NEW|MAP_SHARED, fd, 0);
     if ((int)addr == -1)
        return (BIT_NULL);
  #else
!    if (mmap(addr, _s_len = buff.fb_size, PROT_WRITE, MAP_SHARED, fd, 0) < 0)
        return (BIT_NULL);
  #endif

--- 66,76 ----

  #ifdef _MAP_NEW               /* New semantics for mmap in Sun release 4.0 */
     addr = (DATA) mmap(addr, _s_len=buff.fb_size,
!                                                PROT_WRITE|PROT_READ, _MAP_NEW|MAP_SHARED,
fd, 0);
     if ((int)addr == -1)
        return (BIT_NULL);
  #else
!    if (mmap(addr, _s_len = buff.fb_size, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0) < 0)
        return (BIT_NULL);
  #endif

diff -c blit/sym.c.orig blit/sym.c
*** blit/sym.c.orig     Fri Jan 27 16:53:38 1989
--- blit/sym.c  Fri Jan 27 16:54:02 1989
***************
*** 158,163 ****
  is_reg(name)
  char *name;
     {
!    return( (name[0]=='d' || name[1] == 'a') &&
             (name[1] >= '0' && name[1] <= '7'));
     }
--- 158,163 ----
  is_reg(name)
  char *name;
     {
!    return( (name[0]=='d' || name[0] == 'a') &&
             (name[1] >= '0' && name[1] <= '7'));
     }
				william robertson
				rob@violet.berkeley.edu

guy@auspex.UUCP (Guy Harris) (01/28/89)

 >>1:  sys/kbd.c has this silly line (line 23):
 >>    #   include "<sys/termios.h>"
 >>    This should probably be:
 >>    #include <sys/termios.h>
 >
 >	I think this is an difference between the compilers under SUNOS4
 >	and the older versions.  See the caveats below.

The line in question is silly under every UNIX C compiler I know of.  I
would expect *all* UNIX C compilers to interpret

	#include "<sys/termios.h>"

as a request to include the file whose name is, literally

	<sys/termios.h>

i.e., look for a directory named "<sys" (complete with "<") in the
standard include directories and the current directory, and look for a
file in that directory named "termios.h>" (complete with ">").  I can't
believe a line with that syntax would have compiled on *any* UNIX C
implementation, unless it had a "<sys" directory with a "termios.h>"
file in it (or there were such a directory in the MGR source).

In any case, the line should be

	#include <sys/termios.h>

everywhere.

BTW, even

	#include <sys/termios.h>

wouldn't have worked under *any* pre-4.0 system; <sys/termios.h> didn't
*exist* in Sunos prior to 4.0. 

>	One thing I noticed is there is code in mgr.c and copyright.c
>	that assume 4.2 type "select" calls, where the mask is an
>	integer.  PLEASE folks, take the time to upgrade this to 4.3ish
>	standards.  Under SUNOS4, it just doesn't work anymore! 

Actually, you *can* make it work with an integer mask; just don't use
"getdtablesize".  If you switch to the "fd_set" stuff, in its full
shining glory, it may not compile under 4.2BSD-derived systems
(including SunOS 3.x) any more, so either #ifdef it or use the 4.2BSD
scheme but with a file descriptor count <= 32.

guy@auspex.UUCP (Guy Harris) (01/28/89)

>It is actually
>#include <sys/ttycom.h>
>Sun is good at moving TIOCCONS around.

Err, umm, where was MGR finding it in pre-4.0 releases?  If it was
including <sys/ioctl.h> to get it, it should have shown up in 3.x *and*
4.0, and not required this fiddling.  I suspect somebody has outsmarted
themselves here.... 

<sys/ttycom.h> isn't supposed to be directly included by programs.  It
exists so that both <sys/termios.h> and <sys/ioctl.h> can define the tty
driver stuff that's not "tied", if you will, to the BSD or S5 tty
driver.  TIOCCONS was moved to <sys/ttycom.h> so that a program could
get at it without dragging in all the V7/BSD stuff that dragging in
<sys/ioctl.h> defines; such a program would include <sys/termios.h>
(or <sys/termio.h>) instead.

dlw@hpsmtc1.HP.COM (David L. Williams) (01/31/89)

So is MGR a SUN only tool? ie should I even bother trying to bring it up on
HP-UX? The original poster mentioned that it was ported to the Mac is 2 days
or somesuch. Is this port available for ftp from somewhere? I'd appreciate
an Internet address please!

-Thanks,

David

paula@bcsaic.UUCP (Paul Allen) (01/31/89)

I installed mgr on my Sun-3 (SunOS 3.4) last week.  As has been reported here, the makefiles
have a few problems, but I did manage to get working executables.  After I figured out how
to get printed copies of the man pages, I ran through them one by one to see how things ran.
These are my notes from that experience.  Note that I didn't spend any time investigating
any of this stuff.  If something didn't work, I just noted it and went on.

Cut fails with the message:
	sh: hm: not found
	/usr/mgr/bin/cut: Can't start (hm -s)

Iconmsgs complains about not finding a bounds file.

Lock put up a really pretty outer-space picture, but then wouldn't let me back in!  I had
to rlogin and kill it.

Maze briefly prints something about not finding a service.  When 2 mazes are running, they
don't know about each other.

Menu needs /bin/ksh.  Someone posted that csh works just fine, but I haven't tried it yet.

Typing the command "eval `set_termcap`" complained "unmatched '".

Snap doesn't do anything useful that I can see.  From the man page, I guess I expected to
be able to rubber-band a box bounding the pixels to be saved.  I couldn't get the mouse buttons
to do anything useful.  

Can anybody tell me what I'm doing wrong?  If your answer is RTFM, please send me a real toasty
flame!  It's going to be *cold* in Seattle when that air-mass that's been freezing Alaska starts
sliding south later this week!  :-)

Paul
-- 
------------------------------------------------------------------------
Paul L. Allen                       | pallen@atc.boeing.com
Boeing Advanced Technology Center   | ...!uw-beaver!ssc-vax!bcsaic!pallen

esj@manatee.cis.ufl.edu (Eric S. Johnson) (02/02/89)

In article <9862@bcsaic.UUCP> paula@bcsaic.UUCP (Paul Allen) writes:
>Typing the command "eval `set_termcap`" complained "unmatched '".
>

This one ticked me off for a hour yesterday. Most likely you don't have
your SHELL environment variable set to /bin/csh. That one was in the 
manual. It just took me a while to figure out that it didn't recognize
/usr/local/tcsh as a csh.... ;-)

Ej

zjat02@cra2.uucp (Jon A. Tankersley) (02/04/89)

I finshed building MGR.  It tries to run just fine, but nothing displays
on my 3/60.  I built the color version and have tried both -S/dev/cgfour0
and the default of /dev/bwtwo0.  It does start up windows, but I never
see a thing.... Sigh...

Any ideas?

-tank-
#include <disclaimer.h>		/* nobody knows the trouble I .... */

jgj@hcx2.SSD.HARRIS.COM (02/06/89)

> I finshed building MGR.  It tries to run just fine, but nothing displays
> on my 3/60.  I built the color version and have tried both -S/dev/cgfour0
> and the default of /dev/bwtwo0.  It does start up windows, but I never
> see a thing.... Sigh...
Try running the set_colormap program first.  This sets the colormap up so that 
text doesn't come out as black on black.

============================================================================
Jeffrey Glen Jackson _|_Satan jeered, "You're dead meat Jesus, I'm gonna
jgj@ssd.harris.com    |     bust you up tonight."
x5120                 | Jesus said, "Go ahead, make my day."
                  ~~~~~~~~~ -- Carman, "The Champion"

moraes@csri.toronto.edu (Mark Moraes) (02/07/89)

On a 3/60, remove /dev/bwtwo0, and MAKEDEV bwtwo1 viz.
	cd /dev
	./MAKEDEV bwtwo1

(On a 3/110, you need bwtwo0)

This won't affect X11.

wjc@ho5cad.ATT.COM (Bill Carpenter) (02/08/89)

In article <120800001@hcx2> jgj@hcx2.SSD.HARRIS.COM writes:

> > I finshed building MGR.  It tries to run just fine, but nothing displays
> > on my 3/60.  I built the color version and have tried both -S/dev/cgfour0
> > and the default of /dev/bwtwo0.  It does start up windows, but I never
> > see a thing.... Sigh...
> Try running the set_colormap program first.  This sets the colormap up so that 
> text doesn't come out as black on black.

Thanks for the advice, but I don't think this solves the problem for
the original poster.  It definitely doesn't solve it for me.  It does
make it so that you can read the menu items (hmmm, a major win!), but
it does nothing about the hung windows situation.

The windows can be opened up, but they just sit there.  If you do a
"ps" you will only see defunct processes where you expect to see
shells or whatever for the windows.  It is not a case of just not
being able to see the text.  You can see the text cursor, but it never
leaves the top left corner of each window.

This is on a diskless color SUN 3/60 running SunOS 4.0.  Anybody have
a cure?
--
--
   Bill Carpenter         att!ho5cad!wjc  or  attmail!bill

hyc@math.lsa.umich.edu (Howard Chu) (02/10/89)

In article <19729@uflorida.cis.ufl.EDU> esj@manatee.cis.ufl.edu (Eric S. Johnson) writes:
>In article <9862@bcsaic.UUCP> paula@bcsaic.UUCP (Paul Allen) writes:
>>Typing the command "eval `set_termcap`" complained "unmatched '".
>>
>
>This one ticked me off for a hour yesterday. Most likely you don't have
>your SHELL environment variable set to /bin/csh. That one was in the 
>manual. It just took me a while to figure out that it didn't recognize
>/usr/local/tcsh as a csh.... ;-)

There's actually a more fundamental problem - you really need to:
	set noglob;eval `set_termcap`

This also tends to be a problem with people trying to use "tset -s" ...
They both spit out "set noglob" commands, but the command isn't accepted
until the entire string is unquoted/escaped, etc., which is too late.
Globbing occurs before command evaluation - thus you get the complaint
about the unmatched quote.
--
  /
 /_ , ,_.                      Howard Chu
/ /(_/(__                University of Michigan
    /           Computing Center          College of LS&A
   '              Unix Project          Information Systems