home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume26 / utree / part01 / README < prev    next >
Encoding:
Text File  |  1992-09-06  |  11.4 KB  |  233 lines

  1.  
  2.            UTREE - screen oriented filesystem utility
  3.              README, klin, Mon Feb 24 20:02:52 1992
  4.  
  5. ------------------------------------------------------------------------------
  6.  
  7. Utree is a screen oriented filesystem utility for navigation thru fileystems
  8. and doing some default and user defined commands on directories and files.
  9.  
  10. For usage and documentation see the manual pages utree and utree.prlist.
  11.  
  12. For copyright notice, warranty and distribution conditions see COPYRIGHT.
  13.  
  14. ------------------------------------------------------------------------------
  15.  
  16. Utree is first implemented and tested on a PCS CADMUS 9230 (Motorola MC68010)
  17. running MUNIX V.2/07 (System V.2) and then ported to, compiled and tested on
  18. some others machines running UNIX System V.3, BSD4.2 and BSD4.3 or look alikes.
  19. The release utree 3.03-um is developed on a MIPS RC3230 running RISC/os 4.51.
  20.  
  21.     + MIPS RC3230, RISC/os 4.51 (System V.3, MIPS R3000)
  22.     + PCS Cadmus 9600, MUNIX V.3M3.2 (System V.3, MC68020)
  23.     + PCS Cadmus 9900, MUNIX V.3R3.2 (RISC/os 4.0 like System V.3, MIPS R[23]000)
  24.     + SUN SPARCstation2, SunOS 4.1.1 (BSD4.3, SPARC)
  25.     + Silicon Graphics 4D, IRIX V.3.2.2 (System V.3, MIPS R[23]000)
  26.     + IBM 520, AIX 3.1 (System V.3, RS/6000)
  27.     + HP Vectra, SCO UNIX/386 V.3.2 (System V.3, i486)
  28.     + NoName-AT386, SCO XENIX SysV 2.3.2 386 GT (by Rolf Gebhardt)
  29.     + Sequent Symmetrie, Dynix i386 2.0v2 (BSD 4.2, 10 x i386)
  30.     + Convex C120, ConvexOS 8.1 (BSD 4.2)
  31.     + Nixdorf TARGON/35, TOS 3.2-03 (BSD 4.2)
  32.     + DEC Decstation 5000/200, Ultrix-32 1.3 (Rev. 54) (BSD 4.3, MIPS R3000)
  33.     + DEC Vaxstation 3100, Ultrix-32 1.3 (Rev. 9) (BSD 4.3, VAX)
  34.     + Apollo Domain DN4500, DomainIX 9.5 (BSD4.2 and System V)
  35.     + DEC VAX/750, 4.3 BSD UNIX
  36.  
  37. Other known ports are done to a lot of other boxes and UNIXes.
  38.  
  39. ------------------------------------------------------------------------------
  40.  
  41.     If you wish to install utree on your system do the following steps:
  42.  
  43.     1 CHECK if you have all source files. The file MANIFEST contains a
  44.       list of all distributed files with a short description.
  45.  
  46.     2 CHECK AND CHANGE Makefile AND src/Makefile FOR YOUR SYSTEM IF NEEDED.
  47.       The Makefiles should be self explanatory enough for changes you have
  48.       to do. There are some example Makefiles for different systems contained
  49.       in the directory sys. For a complete list of defines and some hints
  50.       see below.
  51.  
  52.     [ for comp.sources.unix, there is no default Makefile.  you must
  53.       select one from sys/Makefile.* and either copy or link it to
  54.       src/Makefile.  the author's Makefile is shipped as sys/Makefile.SCO.
  55.                                     --vix ]
  56.  
  57.     3 CHECK AND CHANGE src/conf.h FOR YOUR SYSTEM IF NEEDED.
  58.       See below for the meaning of some defines in conf.h you may have to
  59.       change for your system. There are some example configuration files
  60.       conf.h for different systems contained in the directory sys.
  61.       If your system doesn't support vsprintf(3) for formatted output to
  62.       a string with variable number of arguments (most BSD systems don't)
  63.       and you wish to use this function look at directory sup containing
  64.       a public domain version of vsprintf(3) and vfprintf(3).
  65.       Copy vsprintf.c to directory src and change your Makefile for
  66.       compiling vsprintf and linking vsprintf into utree. For a complete
  67.       list of defines in conf.h and some hints see below.
  68.  
  69.     [ for comp.sources.unix, there is no default conf.h.  you must
  70.       select one from sys/conf.h.* and either copy or link it to
  71.       src/conf.h.  the author's conf.h is shipped as sys/conf.h.SCO.
  72.                                     --vix ]
  73.  
  74.     4 Call 'make all' or 'make' to compile and link utree and utree.prlist.
  75.  
  76.     5 Call 'bin/utree .' for testing utree.
  77.  
  78.     6 Check and edit bin/utree.backup if you wish to allow filesystem or
  79.       directory backups from within utree. Check and edit bin/utree.mklist
  80.       for creating directory tree lists from without utree (this is normally
  81.       not needed).
  82.  
  83.     7 See the example startup file lib/utree.startup and the example
  84.       key binding file lib/utree.binding for usage of startup files
  85.       and key binding files.
  86.  
  87.     8 Call 'make install' to install the utree executables into a public bin
  88.       directory defined in the Makefile. May be you have to login as root
  89.       before.
  90.  
  91.     9 Have fun and enjoy.
  92.  
  93. ------------------------------------------------------------------------------
  94.  
  95.     Currently distributed Makefiles and configuration files conf.h in sys are
  96.  
  97.     sys/*.286  - UNIX V/286/386 compatibility mode (MSC under SCO)
  98.     sys/*.AIX  - AIX 3.1 (IBM 520, RS/6000)
  99.     sys/*.APP  - DomainIX 9.5 (Apollo Domain DN4500)
  100.     sys/*.BSD  - Generic BSD4.2 and BSD4.3
  101.     sys/*.CON  - ConvexOS 8.1 (Convex C120)
  102.     sys/*.M16  - MUNIX V2/07 (PCS Cadmus 9230, MC68010)
  103.     sys/*.M32  - MUNIX V3.2 (PCS Cadmus 9600, MC68020)
  104.     sys/*.MIPS - RISC/os 4.51 (MIPS RC3230, R3000)
  105.     sys/*.RCU  - MUNIX V3.2 (PCS Cadmus 99xx, MIPS R2000/3000)
  106.     sys/*.SCO  - SCO UNIX System V/386 3.2 (HP Vectra)
  107.     sys/*.SEQ  - Dynix i386 (Sequent Symmetrie, 10xi386)
  108.     sys/*.SGI  - IRIX V.3.2 (Silicon Graphics 4D, MIPS R3000)
  109.     sys/*.SUN  - SunOS 4.1.1 (SUN4, SPARC)
  110.     sys/*.ULT  - Ultrix-32 3.1 (DECstation, VAXstation)
  111.     sys/*.V.2  - Generic System V.2
  112.     sys/*.V.3  - Generic System V.3
  113.     sys/*.VAX  - 4.3 BSD UNIX (DEC VAX/750)
  114.     sys/*.X23  - SCO XENIX SysV 2.3.2 386GT (NoName-AT386)
  115.  
  116. ------------------------------------------------------------------------------
  117.  
  118.     Utree is written in standard K&R C, not in ANSI C. If you are using an
  119.     ANSI C compiler check and set the appropiate compiler option for accepting
  120.     standard C code. The other compile and link options in the Makefile are
  121.  
  122.     CFLAGS   normal compiler flags and defines (for utree and utree.prlist)
  123.     MFLAGS   floating point compiler flag (for utree.prlist)
  124.     LFLAGS   loader flags (for utree and utree.prlist)
  125.     LIBS     needed libraries (for utree and utree.prlist)
  126.     MLIBS    floating point library (for utree.prlist)
  127.     LLIBS    local libraries (i.e. shared libraries)
  128.     CC       the C compiler command
  129.     SRCS     list of utree source files
  130.     OBJS     list of utree object files
  131.  
  132.     If your system is BSD or BSD-like and doesn't support the getopt(3)
  133.     commandline parser function, copy getopt.c from directory sup to the
  134.     source directory sys and add getopt.c and getopt.o to the SRCS and
  135.     OBJS variables in src/Makefile. See sys/Makefile.BSD for and example.
  136.     The tree list program utree.prlist also uses getopt().
  137.  
  138.     Possible defines in the makefile src/Makefile
  139.  
  140.     define BSD for BSD systems (default: SYSV)
  141.     define AIX for IBMs UNIX version AIX
  142.     define XENIX for XENIX system
  143.     define APOLLO for adding some special stuff for APOLLO networks
  144.     define VOID=int if your compiler doen't support void
  145.     define UTLIB=libdir if not defined in conf.h (see below)
  146.  
  147. ------------------------------------------------------------------------------
  148.  
  149.     Meaning of some defines in the system configuration file conf.h:
  150.  
  151.     #define HASVPRINTF if your system is BSD or BSD-like and supports
  152.       the varargs vsprintf(3) function. Some BSD systems need additional
  153.       libraries at link time for vsprintf(). The directory sup contains
  154.       a public domain version of vsprintf() which you can compile and
  155.       link into utree. If you want to use this function copy vsprintf.c
  156.       from directory sup to src and change the makefile to include
  157.       vsprintf.c and vsprintf.o in SRCS and OBJS. But you should test
  158.       vsprintf before because usage vsprintf may not work or result in
  159.       core dumps! SYSV needs not to define HASVPRINTF.
  160.  
  161.     #define HASFIONREAD if your system is SYSV and supports the FIONREAD
  162.       call to ioctl(2) to get the number of characters to read i.e. for
  163.       typeahead(). Check if ioctl(0, FIONREAD, &n) sets n to the correct
  164.       number of characters already typed in. My own system (MUNIX V.2/07)
  165.       i.e. fails, but most SYSV, especially those which support sockets,
  166.       return the correct result in n. The directory tst contains a simple
  167.       test program fionread.c for testing the ioctl-call. BSD needs not
  168.       to define HASFIONREAD.
  169.  
  170.     #define HASVFORK if your system is SYSV and supports the vfork(2)
  171.       systemcall. My own system i.e. supports the vfork(2) systemcall.
  172.       AIX otherwise supports vfork(2) when linking in the BSD compatibility
  173.       library libbsd.a (-lbsd) but in this case the signal handling
  174.       is also BSD-like and resizing the screen may not work correctly.
  175.       BSD needs not to define HASVFORK.
  176.  
  177.     #define NODIRENT if your system is SYSV or another older system
  178.       and doesn't support the directory type struct dirent and the
  179.       directory access functions opendir(3), closedir(3) and readdir(3).
  180.       Check the include file /usr/sys/dirent.h for struct dirent or
  181.       the manual pages for the directory access functions. If your
  182.       system doesn't support struct dirent utree assumes a standard
  183.       UNIX filesystem with struct direct and filename length of at least
  184.       14 characters and emulates the directory functions with file
  185.       access functions. BSD needs not to define NODIRENT.
  186.  
  187.     #undefine NOWINCHG to permit resizing of the screen at runtime, i.e.
  188.       after resizing a xterm under X. Your system has to support the
  189.       signal SIGWINCH after resizing the screen and the ioctl(2) call
  190.       TIOCGWINSZ to get the new screen size in a record winsize. Not
  191.       all systems defining SIGWINCH and TIOCGWINSZ fill the winsize
  192.       record in a correct manner, i.e. SCO UNIX V.3.2/386. Check the
  193.       include files /usr/signal.h or /usr/sys/signal.h for SIGWINCH
  194.       and /usr/include/sys/ioctl.h, /usr/include/termio.h or
  195.       /usr/include/sys/termio.h for TIOCGWINSZ and struct winsize.
  196.       The directory tst contains a simple test program winsize.c
  197.       for testing resizing and properly signal and winsize handling.
  198.  
  199.     #define STRUCTCOPY(from, to) to an appropiate memory copy function
  200.       if your compiler doesn't support assignments of a struct variables
  201.       like struct_variable_to = struct_variable_from. On SYSV define as
  202.       memcpy(to, from, sizeof(from)), on BSD as bcopy(from, to, sizeof(from)).
  203.       (See conf.h).
  204.  
  205.     #define UTCLOCK to allow clock display/update every second.
  206.  
  207.     #define UTLIB as a directory containing utree startup files for
  208.       global definitions (utree), key bindings (utree-$TERM) and the
  209.       tree help pages (utree.help). The default name of this global
  210.       library directory is defined as /usr/local/lib. But this directory
  211.       may also be set in the environment variable $UTLIB.
  212.  
  213.       Last but not least check the pre-defined system commands defined
  214.       in cmds.h and change them to your preferred commands, for example
  215.       the editor, pager or hexdumper. But all these commands may also be
  216.       set in the global startup file $UTLIB/utree or in user's startupfile
  217.       $HOME/.utree.
  218.  
  219. ------------------------------------------------------------------------------
  220.  
  221. If you find bugs (there are some bugs - i'm sure) or make changes to utree
  222. please send me bug reports (and bug fixes) and/or your changes. The file TODO
  223. denotes some extensions to utree which should be done in the next time.
  224. If you have questions about utree feel free to send me your questions.
  225. I hope I have the time to answer to you.
  226.  
  227. My address:     Peter Klingebiel
  228.                Busdorfwall 18
  229.                D-4790 Paderborn
  230. Internet:       klin@iat.uni-paderborn.de
  231.  
  232. ------------------------------------------------------------------------------
  233.