From: ellis@nova.gmi.edu (Stew Ellis)
Subject: Re: UNIX Philosophy
Organization: GMI Engineering&Management Institute, Flint, MI
Date: Sat, 5 Sep 1992 14:20:20 GMT

jbowyer%ovc.vutbr.cs%CSBRMU11.BITNET@aearn.edvz.uni-linz.ac.at (Jeff Bowyer) writes:

>I am very new to UNIX, having worked with DOS for the last 5
>years.

>I want to find an editor to use under UNIX (HP-UX 8.02) on our
>computer (HP 9000/807).

>Although I have located the source code for several editors
>throughout Internet, I cannot get a clean "make" out of any of
>them.

>Coming from the DOS world, where source code seldom accompanies
>a program, I am quite hesitant to start whacking away at someone
>else's code in order to get a clean "make."

>Will someone with more experience please explain to me the UNIX
>philosophy?  Should I only look for software with documentation
>that explicitly states that it will run under HP-UX 8.02?  Should
>I get used to the idea of changing the source code every time
>I want to use a new program?

>Jeff Bowyer

Once upon a time there were two main versions of UNIX, BSD and SYSV.  Each
one had things the other lacked, or had better versions of the same stuff.
Computer manufacturers began to mix and match the parts.  Some kept a BSD
kernel and utilities but began to add pieces from SYSV (Sun, DEC).  Others
kept mostly SYSV kernels and utilities but added BSD compatibility packages
(SGI, Intergraph, etc.).  Then there was HP, which took a BSD kernel and ran 
SYSV utilities and BSD utilities in a mix quite unlike anyone else.

In the sourceware world of the interconnected UNIX community, those of us
who are not wizards or gurus are dependent on the kindness of strangers to
port packages from one of the universes listed above to the others.  There
is more really complicated sourceware for BSD than SYSV, much of which will
compile on SunOS and Ultrix with little problem.  If there are any problems
there are several hundred thousand Sun's out there, with millions of people
trying to solve the same problems you are.  Furthermore, a very high
proportion of these are at academic sites, where people are inclined to use
free software and share their work.  Between DEC and HP, there are still
fewer than half as many machines out there.  DEC is probably better
represented at academic sites, with HP better represented at commercial
sites.  Commercial sites are somewhat less likely to use free software and
less likely to share their work.

The short answer is there are fewer people with HP's trying to do what you
want to do.  Furthermore, because it is a rather different mix of BSD and
SYSV than most of the others, it is more difficult to do what you want to do
with HPUX than the others.  I have had very sharp people tell me it is
difficult to port many packages to HP.  HP does maintain an FTP archive
somewhere of ported software, but I believe it may be available only to
people who have paid some sort of support or user-group fee.  Someone
correct me if I am wrong.

What you might try is to simply configure the software as SYSV or USG.  Some
packages use (Larry Wall's?) configure program to figure out all of the
details.  Those should be easy to install (although configure used to get
confused by Ultrix).  Some packages do have explicit HP instructions.  If
you do not understand the first thing about configuring UNIX sourceware, the
files you need to look at are README, INSTALLATION, Makefile and any files
that end with .h.  It is nice if you have someone to show you the ropes, but
I learned without any help, starting with an Intel 310/286 and the hardcopy
manuals.  I also knew very little about C at the time 7 years ago.  I
succeeded in porting dozens of programs to the even stranger world of SYSIII
on a 16-bit processor.

Good luck.

--
--                                                        ___________________
  R.Stewart(Stew) Ellis, Assoc.Prof., (Off)313-762-9765  /   _____  ______ 
  Humanities & Social Science,  GMI Eng.& Mgmt. Inst.   /        / /  /  / /
  Flint, MI 48504      ellis@nova.gmi.edu              /________/ /  /  / /