*BSD News Article 5179


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!pmafire!news.dell.com!swrinde!sdd.hp.com!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!ljo
From: ljo@r2d2.eeap.cwru.edu (L. Jonas Olsson)
Newsgroups: comp.unix.bsd
Subject: [386BSD] xview3 for 386BSD
Date: 17 Sep 1992 17:10:13 GMT
Organization: Case Western Reserve Univ. Cleveland, Ohio (USA)
Lines: 133
Message-ID: <19ae5mINNf01@usenet.INS.CWRU.Edu>
NNTP-Posting-Host: johnny5.eeap.cwru.edu
Summary: xview3 port available
Keywords: xview3, olwm

 A partially working xview3 port is uploaded to nova.cc.purdue.edu in the
pub/386bsd/submissions/xview3 directory. The port has working versions of
olwm, olwmslave, and clock. (This will give you a spiffy sun-like desktop)
 The xview library itself is also supplied, but might have problems with
the textsw and ttysw portions. It does work for compiling and running many
(all I tried) of the examples in the xview3 distribution.

 Send bug fixes/reports to ljo@murphy.eeap.cwru.edu

Jonas

P.S. Any binaries for emacs, kermit, libg++-2.2, f2c, linpack, eispack,
blas, lapack available? (I'm running out of diskspace and time.)

Here's the README.xview:

Notes for compiling/using xview3 on 386BSD
------------------------------------------
By: Jonas Olsson (ljo@murphy.eeap.cwru.edu)
Date: Sep 17, 1992

These notes should (hopefully) help you to compile xview3 as supplied from 
export.lcs.mit.edu in directory contrib/xview3 for running on 386BSD with the 
X386 version from agate's incoming/X386 directory.

It has not been tested thoroughly, but I have managed to compile most of it
(all libraries, all clients, all utils, and some of the examples).

The binary distribution is a splitted compress tar archive, that you unpack
with "cat xview_b.a*|zcat|tar xvf -". If you do this while you're in /usr
all the pieces will end up in their correct places in /usr/X386[bin, lib, 
include]. There is also a manifest that gives the checksums for the parts.

The programs from the clients directory that are supplied are: clock, olwm, 
and olwmslave. Cmdtool had problems with "unappropriate ioctl for device",
and sigwinch (makes the keyboard stop responding). Textedit and props had 
problems with locale, there is no LC_MESSAGES locale in 386BSD, so perhaps 
the complete xview library should be compiled without locale (see XView.cf).
The programs in contrib/examples, that I tried to run, all compiled and run,
but as they are pretty uninteresting I'm not supplying them.

By accident the diff file also contains the Patch02 diffs that were released by
Sun. This means that this patch is the only one you need (and it's hard to
find my patches within the huge Patch02). I also found a patch to bsd386 at
nic.funet.fi in (might be wrong) pub/unix/386ix/bsd386/xview, I looked over
that patch but didn't find anything new there.

When compiling xview clients you also have to link with the remote procedure 
call library (-lrpc). In the makefiles for clients and examples you can insert
a -lprc in the LDLIBS, like this:"LDLIBS = -lrpc <all the rest>". 
Also the c library doesn't have a strtod function and the math library is 
missing the rint function, so you either modify your library or supply the 
strtod.o and rint.o respectively when compiling. The supplied binaries have
crude hacks for these functions.

I don't know if my txt_again.c works, it is pretty ugly low-level stuff.
In general I think the problems with the port are likely to be contained to
the textsw and ttysw portions of libxview.

Changes to 386bsd's include files
---------------------------------
- Add _IN_H_ wrapper around /usr/include/netinet.h
- Add _WAIT_H_ wrapper around /sys/include/sys/wait.h
- Edit /usr/include/rpc/types.h lines 40, 41
  put #ifndef FALSE, #endif and #ifndef TRUE, #endif around the #define's

To avoid running out of memory
------------------------------
- limit datasize 12M

Changes/notes on my compilation of the xview source code
--------------------------------------------------------
- Apply Patch2 from export.lcs.mit.edu in /contrib/xview3/Fixes
  (Patch01 is only documentation so it's not necessary)
- Edit config/XView.cf
  -- No LOCALE ?
  -- Install Pixrect headers
- Remove trailing spaces in Imakefiles in 
  -- lib/libxview/base
  -- lib/libxview/misc
- Add & before bcopy in site.c
- Add #include "i18n_impl.h" to lib/libxview/gettext.c
- Add #include <locale.h> to lib/libxview/help/help_file.c
- Use xv_fcntl in ndet_fcntl xv_use_xvfcntl
- Warnings from lib/libxview/io_streams/str_strms.c line 23, 54
  useless keyword or type in declaration
- Warnings from lib/libxview/io_streams/file_strms.c lines 23, 162
  same
- Warning from lib/libxview/io_streams/dhr_strms.c line 23
  same
- Warning from lib/libxview/misc/getlogindr.c line 27
  type mismatch with previous external decl. /usr/include/pwd.h line 75
- Warning from lib/libxview/misc/expandname.c line 123
  arg #1 passing between incompatible pointer types
- Warning from lib/libxview/notify/ndet_auto.c line 153
  arg #1 passing between incompatible pointer types
- Edit lib/libxview/notify/ndet_read line 36
  use args (int, void *, size_t)
- Warnings from lib/libxview/textsw/ei_text.c lines 1459, 1466
  comparison always 0 (1) due to limited range of data type
- Edit lib/libxview/textsw/txt_again.c line 204-216, 603-622
  Using the fields _base, _ptr, _cnt, _bufsize of FILE that don't exist.
  I looked at filesystem/usr/src/lib/libc/[sscanf.c, sprintf.c].
- Add #define USE_OLD_TTY in portable.h (should not be in build but in 
  lib/libxview/misc ?)
- Warning tty_init.c line 799 mismatch with 
  /usr/include/pwd.h line 75 getpwuid
- tty_ntfy.c
  --remove arg on line 98 to getpgrp
- In lib/libxview/win/win_blocking_wait.c line 98
  Args #2, 3, 4 incompatible
- remove traing spaces (after \) in Imakefiles for olwm and olwmslave
- In clients/olwm/slave.c use the same thing as ultrix does.
- in lib/libxview/notify/ndet_loop.c use the notify_select
- clients/cmdtool doesn't run well
  -- doesn't find .text_extras_menu it finds it if you have it in your HOME
  -- doesn't find /etc/utmp if it doesn't exist (n -s /var/run/utmp /etc)
  -- warning: no access to tty (inappropriate ioctl for device)
     Thus no job control in this shell
- contrib/examples/scrollbar/scroll_cells can't load font icon
- contrib/examples/scrollbar/scroll_cells2
  one row in output is messed up/.

- Read the README in the xview3 directory about how to compile.
  - Do the setenv IMAKEINCLUDE as described.
  - make Makefiles.
  - The make World died on the first attempt, but without changing anything
    it will work on the second. (It complains about directory build)
  - make install
  - make Clients