Software Package:       
	Interviews

Release/Version:
	3.2a + patches from ivtools-0.4 for g++ compilation

Retrieved from:
	ftp://ftp.sgi.com/graphics/interviews/3.2a.tar.Z
	ftp.netcom.com:/pub/vi/viewport/ivtools-0.4.13.tar.gz
		[only used the patches, didn't install ivtools]
	ftp://ftp.netcom.com/pub/vi/viewport/ivtools.html
		[general info on ivtools]

Bug reports:
	This software package is not maintained by BSDI, questions
	may be posted to news:comp.windows.interviews. Bug reports
	can be sent to interviews-bugs@interviews.stanford.edu. There
	is also a mailing list: interviews@interviews.stanford.edu, the
	usual -request address processes subscription requests.

Comments:

I failed miserably at making libIV and libUnidraw into shared libraries... all
went well until I ran into the global CTORS and DTORS symbols. Our shared
library scripts don't support this. In theory support for this is possible
(by putting the CTORS/DTORS for a library into the stub library), but not
for 2.1. For now all interviews apps will be huge, oh well.

Note: building requires a lot of virtual memory, the systemwide defaults are
    not high enough... I got it to build with the following limits:
	cputime         unlimited
	filesize        unlimited
	datasize        65536 kbytes
	stacksize       16384 kbytes
	coredumpsize    unlimited
	memoryuse       63168 kbytes
	memorylocked    21058 kbytes
	maxproc         64 
	openfiles       64 

A simple wrapper makefile was added to the top level directory.

Following changes were made to the distribution:

In the papers directory the .Z'ed postscript files were recompressed with
gzip and then uuencoded for CVS checkin.

The sample images in the library directory (jello.tif and linton.tif) were
deleted, the images subdirectory is no longer processed during make.

--  patches from ivtools-0.4 (which isn't included in this distribution)
patch -p < iv-3.1.bugfix.3
patch -p -l < iv-3.1.bugfix.4
patch -p < iv-3.1-gcc-2.5.patch

-- other changes

diff -c -r InterViews/TIFF.def /home/boom/ewv/src/iv.old/src/config/InterViews/TIFF.def
*** InterViews/TIFF.def	Tue Jan 26 15:13:31 1993
--- /home/boom/ewv/src/iv.old/src/config/InterViews/TIFF.def	Mon Oct 23 19:47:26 1995
***************
*** 138,143 ****
--- 138,149 ----
      -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
  #endif
  
+ #if defined(BSD386Architecture)
+ #define TIFFStdCDefines \
+     -DCOLORIMETRY_SUPPORT -DJPEG_SUPPORT -DYCBCR_SUPPORT -DCMYK_SUPPORT \
+     -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
+ #endif
+ 
  #ifndef TIFFExtraCDefines
  #if SystemV
  #define TIFFExtraCDefines -DSYSV

diff -c -r InterViews/arch.def /home/boom/ewv/src/iv.old/src/config/InterViews/arch.def
*** InterViews/arch.def	Mon Jun 28 17:40:43 1993
--- /home/boom/ewv/src/iv.old/src/config/InterViews/arch.def	Mon Oct 23 19:56:33 1995
***************
*** 300,305 ****
--- 300,317 ----
  #define MacroFile InterViews/iv-linux.cf
  #endif
  
+ #ifdef bsdi
+ #undef bsdi
+ #define BSD386Architecture
+ #define i386BsdArchitecture
+ #define i386Architecture
+ #define BsdiArchitecture
+ #define ArchitectureName BSDI
+ #define architectureName bsdi
+ #define MacroIncludeFile <InterViews/iv-bsdi.cf>
+ #define MacroFile InterViews/iv-bsdi.cf
+ #endif
+ 
  #ifdef luna
  #undef luna
  #ifdef mc68000

================= src/config/InterViews/iv-bsdi.cf
#define OptimizeCCFlags -O6
#define TIFFOptimizeCFlags -O

#define ExtraCCIncludes -I/usr/include/g++

#include <bsdi.cf>
#include <InterViews/xparams.cf>


diff -c -r InterViews/local.def /home/boom/ewv/src/iv.old/src/config/InterViews/local.def
*** InterViews/local.def	Tue Oct 31 22:25:20 1995
--- /home/boom/ewv/src/iv.old/src/config/InterViews/local.def	Tue Oct 24 00:26:46 1995
***************
*** 60,70 ****
   * If you have to set XConfigDir, don't forget to override XCONFIGDIR
   * on the command line when saying "make World" for the first time.
   */
- /*
  #undef XConfigDir
! #define XConfigDir /usr/X11R5/lib/X11/config
  #undef XIncDir
! #define XIncDir /usr/X11R5/include
  #undef XLibDir
! #define XLibDir /usr/X11R5/lib
! */
--- 60,68 ----
   * If you have to set XConfigDir, don't forget to override XCONFIGDIR
   * on the command line when saying "make World" for the first time.
   */
  #undef XConfigDir
! #define XConfigDir /usr/X11R6/lib/X11/config
  #undef XIncDir
! #define XIncDir /usr/X11R6/include
  #undef XLibDir
! #define XLibDir /usr/X11R6/lib

diff -r -c iv/src/bin/ibuild/ibcmds.c iv.old/src/bin/ibuild/ibcmds.c
*** src/bin/ibuild/ibcmds.c	Sun Jan  2 16:12:08 1994
--- src/bin/ibuild/ibcmds.c	Tue Oct 24 01:22:04 1995
***************
*** 175,181 ****
  
  static boolean Abort (Editor* ed, pid_t pid, const char* warning) {
      boolean aborted;
!     AbortDialog dialog(int(pid), warning);
      ed->InsertDialog(&dialog);
      aborted = dialog.Abort();
      ed->RemoveDialog(&dialog);
--- 185,191 ----
  
  static boolean Abort (Editor* ed, pid_t pid, const char* warning) {
      boolean aborted;
!     AbortDialog dialog((int)pid, warning);
      ed->InsertDialog(&dialog);
      aborted = dialog.Abort();
      ed->RemoveDialog(&dialog);

diff -r -c iv/src/lib/Dispatch/dispatcher.c iv.old/src/lib/Dispatch/dispatcher.c
*** src/lib/Dispatch/dispatcher.c	Tue Aug 24 16:59:45 1993
--- src/lib/Dispatch/dispatcher.c	Mon Oct 23 20:17:34 1995
***************
*** 631,639 ****
  
      if (!_cqueue->isEmpty()) {
  #ifdef SV_INTERRUPT                   /* BSD-style */
! 	sv.sv_handler = fxSIGVECHANDLER(&Dispatcher::sigCLD);
  	sv.sv_flags = SV_INTERRUPT;
  	sigvec(SIGCLD, &sv, &osv);
  #else
  #ifdef SA_NOCLDSTOP                   /* POSIX */
  	sa.sa_handler = fxSIGACTIONHANDLER(&Dispatcher::sigCLD);
--- 631,643 ----
  
      if (!_cqueue->isEmpty()) {
  #ifdef SV_INTERRUPT                   /* BSD-style */
! 	sv.sv_handler = (void (*)(int))fxSIGVECHANDLER(&Dispatcher::sigCLD);
  	sv.sv_flags = SV_INTERRUPT;
+ #ifdef bsdi
+ 	sigvec(SIGCHLD, &sv, &osv);
+ #else
  	sigvec(SIGCLD, &sv, &osv);
+ #endif
  #else
  #ifdef SA_NOCLDSTOP                   /* POSIX */
  	sa.sa_handler = fxSIGACTIONHANDLER(&Dispatcher::sigCLD);
***************
*** 661,667 ****
--- 665,675 ----
      } while (nfound < 0 && !handleError());
      if (!_cqueue->isEmpty()) {
  #ifdef SV_INTERRUPT                   /* BSD-style */
+ #ifdef bsdi
+ 	sigvec(SIGCHLD, &osv, (struct sigvec*) 0);
+ #else
  	sigvec(SIGCLD, &osv, (struct sigvec*) 0);
+ #endif
  #else
  #ifdef SA_NOCLDSTOP                   /* POSIX */
  	sigaction(SIGCLD, &osa, (struct sigaction*) 0);

diff -r -c iv/src/lib/IV-2_6/rubrect.c iv.old/src/lib/IV-2_6/rubrect.c
*** iv/src/lib/IV-2_6/rubrect.c	Thu Jun  4 16:56:56 1992
--- iv.old/src/lib/IV-2_6/rubrect.c	Mon Oct 23 20:00:21 1995
***************
*** 32,38 ****
--- 32,43 ----
  #include <math.h>
  #include <stdlib.h>
  #ifndef apollo
+ #ifdef __bsdi__
+ #include <machine/float.h>
+ #define	MAXFLOAT	FLT_MAX
+ #else
  #include <values.h>
+ #endif
  #endif
  
  RubberRect::RubberRect(

diff -r -c iv/src/lib/IV-X11/xwindow.c iv.old/src/lib/IV-X11/xwindow.c
*** src/lib/IV-X11/xwindow.c	Fri Mar 12 17:31:27 1993
--- src/lib/IV-X11/xwindow.c	Mon Oct 23 20:11:23 1995
***************
*** 62,71 ****
--- 62,73 ----
  #include <sys/conf.h>
  #endif
  
+ #ifndef bsdi
  /* no standard place for this */
  extern "C" {
      extern int ioctl(int, int, ...);
  }
+ #endif
  
  implementPtrList(WindowVisualList,WindowVisual)
  
diff -r -c iv/src/lib/OS/string.c iv.old/src/lib/OS/string.c
*** iv/src/lib/OS/string.c	Mon Mar 15 10:27:55 1993
--- iv.old/src/lib/OS/string.c	Mon Oct 23 20:19:05 1995
***************
*** 25,35 ****
--- 25,39 ----
  #include <OS/string.h>
  #include <ctype.h>
  #include <string.h>
+ #ifdef bsdi
+ #include <stdlib.h>
+ #endif
  
  /*
   * Just to be sure ...
   */
  
+ #ifndef bsdi
  extern "C" {
  #ifndef tolower
      extern int tolower(int);
***************
*** 40,45 ****
--- 44,50 ----
      extern long int strtol(const char*, char**, int);
      extern double strtod(const char*, char**);
  }
+ #endif
  
  String::String() {
      data_ = nil;
diff -r -c iv/src/lib/TIFF/tiffcompat.h iv.old/src/lib/TIFF/tiffcompat.h
*** iv/src/lib/TIFF/tiffcompat.h	Mon Mar 30 19:31:04 1992
--- iv.old/src/lib/TIFF/tiffcompat.h	Mon Oct 23 20:19:56 1995
***************
*** 154,160 ****
--- 154,162 ----
  #define	lseek	mpw_lseek
  extern long mpw_lseek(int, long, int);
  #else
+ #ifndef bsdi
  extern	long lseek();
+ #endif
  #endif
  
  /*

diff -r -c iv/src/config/InterViews/TIFF.def iv.old/src/config/InterViews/TIFF.def
*** src/config/InterViews/TIFF.def	Tue Jan 26 15:13:31 1993
--- src/config/InterViews/TIFF.def	Tue Oct 31 22:32:36 1995
***************
*** 138,143 ****
--- 138,155 ----
      -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
  #endif
  
+ #if defined(BSD386Architecture)
+ #define TIFFStdCDefines \
+     -DCOLORIMETRY_SUPPORT -DJPEG_SUPPORT -DYCBCR_SUPPORT -DCMYK_SUPPORT \
+     -DHAVE_IEEEFP=1 -DUSE_VARARGS=0 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
+ #endif
+ 
  #ifndef TIFFExtraCDefines
  #if SystemV
  #define TIFFExtraCDefines -DSYSV

*** src/bin/scripts/Imakefile.orig	Tue Nov 28 17:04:28 1995
--- src/bin/scripts/Imakefile	Tue Nov 28 17:04:39 1995
***************
*** 5,11 ****
  /*
   * We assume X11 already has mkdirhier in its BINDIR.
   */
! PROGRAMS = bsdinst cpu ibmkmf ivmkmf remind
  CONFIGDIRSPEC = -T IMAKE_TEMPLATE -I$(ABSCONFIGDIR) -I$(XCONFIGDIR)
  REMIND_MACROS = /usr/local/lib/remind/macros
  
--- 5,11 ----
  /*
   * We assume X11 already has mkdirhier in its BINDIR.
   */
! PROGRAMS = cpu ibmkmf ivmkmf remind
  CONFIGDIRSPEC = -T IMAKE_TEMPLATE -I$(ABSCONFIGDIR) -I$(XCONFIGDIR)
  REMIND_MACROS = /usr/local/lib/remind/macros
  
