From: mitra@pandora.sf.ca.us (Mitra)
Subject: Patch for WAIS under SCO Unix
Organization: Pandora Systems
Date: Fri, 18 Dec 1992 23:26:59 GMT
X-Newsreader: TIN [version 1.1 PL6]

This patch will fix the wais-8-b5 release so that it will compile under SCO. 

I think I've successfully seperated the compress-file changes from the SCO Unix changes, but its possible that something may have crossed over.  This one 
will at least compile OK. 

Hopefully Jonathon or Simon can integrate it into the next release.

- Mitra


=======================

diff -b -r -c wais-8-b5/Makefile wais-8-b5.sco/Makefile
*** wais-8-b5/Makefile	Thu May  7 15:54:10 1992
--- wais-8-b5.sco/Makefile	Fri Dec 18 15:09:16 1992
***************
*** 34,44 ****
  
  RELEASE = wais-8-b5
  
! RM = /bin/rm -f
  AR = ar
  
! # on SGIs set this to true
! RANLIB = ranlib
  
  # on IBM RS6000 this should be c89.
  CC = cc
--- 34,45 ----
  
  RELEASE = wais-8-b5
  
! # Need - since rm returns -1 if no files exist
! RM = -/bin/rm -f
  AR = ar
  
! # on SGIs or SCO set this to true otherwise set to ranlib
! RANLIB = true
  
  # on IBM RS6000 this should be c89.
  CC = cc
***************
*** 61,67 ****
  # for relevance feedaback in the search engine, add -DRELEVANCE_FEEDBACK
  # USG for Unix Dirent in lib
  # for SGIs running IRIX 4.0.1, add -cckr
! CFLAGS = -g -I$(SUPDIR) -DSECURE_SERVER -DRELEVANCE_FEEDBACK -DUSG
  
  MAKE = make -k 
  
--- 62,69 ----
  # for relevance feedaback in the search engine, add -DRELEVANCE_FEEDBACK
  # USG for Unix Dirent in lib
  # for SGIs running IRIX 4.0.1, add -cckr
! # for SCO add -UM_XENIX -DM_SCOUNIX
! CFLAGS = -g -I$(SUPDIR) -DSECURE_SERVER -DRELEVANCE_FEEDBACK -DUSG -UM_XENIX -DM_SCOUNIX
  
  MAKE = make -k 
  
***************
*** 87,94 ****
  # try going to the x directory and just doing a make -k
  # you may have to edit the CFLAGS in the Makefile yourself.
  
  x::
! 	cd x; (env TOP=$(TOP) CC=$(CC) "CFLAGS=$(CFLAGS)" "MAKE=$(MAKE)" ./makex.sh)
  
  bin::
  	cd bin; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)
--- 89,98 ----
  # try going to the x directory and just doing a make -k
  # you may have to edit the CFLAGS in the Makefile yourself.
  
+ # SCOUNIX cant handle makex, call explicitly with /bin/csh
+ 
  x::
! 	cd x; (env TOP=$(TOP) CC=$(CC) "CFLAGS=$(CFLAGS)" "MAKE=$(MAKE)" /bin/csh -f ./makex.sh)
  
  bin::
  	cd bin; $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)
***************
*** 100,111 ****
  	@echo $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)
  
  # to make the emacs tags table for meta-.:
  tags: 	
! 	etags -f TAGS ir/*.[ch]
! 	etags -af TAGS ui/*.[ch]
! 	etags -af TAGS x/*.[ch]
  
  # Remove objects and library.
  clean:
  	$(RM) *~
  	$(RM) \#*\#
--- 104,117 ----
  	@echo $(MAKE) CC=$(CC) "CFLAGS=$(CFLAGS)" TOP=$(TOP)
  
  # to make the emacs tags table for meta-.:
+ # SCO - put - before etags, since exits with -1 if etags doesnt exist
  tags: 	
! 	-etags -f TAGS ir/*.[ch]
! 	-etags -af TAGS ui/*.[ch]
! 	-etags -af TAGS x/*.[ch]
  
  # Remove objects and library.
+ # SCO: Added - before cd x since make will fail if not already made
  clean:
  	$(RM) *~
  	$(RM) \#*\#
***************
*** 119,125 ****
  	cd ui; make  $@
  	cd bin; make  $@
  	cd doc; make  $@
! 	cd x; make $@
  
  rlocks:
  	$@
--- 125,131 ----
  	cd ui; make  $@
  	cd bin; make  $@
  	cd doc; make  $@
! 	-cd x; make $@
  
  rlocks:
  	$@
diff -b -r -c wais-8-b5/bin/Makefile wais-8-b5.sco/bin/Makefile
*** wais-8-b5/bin/Makefile	Sun Feb 16 18:36:24 1992
--- wais-8-b5.sco/bin/Makefile	Fri Dec 18 15:09:52 1992
***************
*** 9,15 ****
  # Added anytostring to EXE list.
  # 
  #
- 
  EXE  = 	waisindex waisindex-sig waisq \
  	waissearch waissearch-sig \
  	waisserver waisserver1 \
--- 9,14 ----
***************
*** 16,22 ****
  	trunc anytostring pump_question swais \
  	xwais-exe xwaisq-exe
  
! RM = /bin/rm -f
  
  default: 
  
--- 15,21 ----
  	trunc anytostring pump_question swais \
  	xwais-exe xwaisq-exe
  
! RM = -/bin/rm -f
  
  default: 
  
Binary files wais-8-b5/doc/Makefile and wais-8-b5.sco/doc/Makefile differ
diff -b -r -c wais-8-b5/ir/Makefile wais-8-b5.sco/ir/Makefile
*** wais-8-b5/ir/Makefile	Sun May 10 14:42:23 1992
--- wais-8-b5.sco/ir/Makefile	Fri Dec 18 15:10:17 1992
***************
*** 47,60 ****
  SIG_LIB 	= ../bin/sig.a		# file name of the signature file library
  LIBFTW		= ../bin/libftw.a	# support library
  
  SHELL_UI_SRC = ../ui/shell-ui.c
  
! RM = /bin/rm -f
  AR = ar 
  ARFLAGS = r
! # on SGIs, set this to true
! RANLIB = ranlib
! 
  #
  # Files.
  #
--- 47,62 ----
  SIG_LIB 	= ../bin/sig.a		# file name of the signature file library
  LIBFTW		= ../bin/libftw.a	# support library
  
+ # For SCO set this to -lsocket, otherwise blank
+ LOCALLIBS	= -lsocket
+ 
  SHELL_UI_SRC = ../ui/shell-ui.c
  
! RM = -/bin/rm -f
  AR = ar 
  ARFLAGS = r
! # on SGIs or SCO Unix, set this to true other systems set to ranlib
! RANLIB = true
  #
  # Files.
  #
***************
*** 216,232 ****
  $(INDEX_CMD):	$(INDEX_OBJ) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(INDEX_OBJ) \
! 		 $(INV_LIB) $(PROTOCOL_LIB) $(LIBFTW) -lm;
  
! $(SERVER_CMD):	$(SERVER_OBJ) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(SERVER_OBJ) \
! 		 $(INV_LIB) $(PROTOCOL_LIB) $(LIBFTW) -lm;
  
  $(SERVER1_CMD):	$(SERVER1_OBJ) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(SERVER1_OBJ) \
! 		 $(INV_LIB) $(PROTOCOL_LIB) $(LIBFTW) -lm;
  
  #
  # Saber loading.  Tuned for Saber 3.0
--- 218,235 ----
  $(INDEX_CMD):	$(INDEX_OBJ) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(INDEX_OBJ) \
! 		 $(INV_LIB) $(PROTOCOL_LIB) $(LIBFTW) $(LOCALLIBS) -lm;
  
! # SCOUNIX: need CLIENT_LIB for definitions of close_connection etc
! $(SERVER_CMD):	$(SERVER_OBJ) $(CLIENT_LIB) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(SERVER_OBJ) \
! 		 $(INV_LIB) $(CLIENT_LIB) $(PROTOCOL_LIB) $(LIBFTW) $(LOCALLIBS) -lm;
  
  $(SERVER1_CMD):	$(SERVER1_OBJ) $(PROTOCOL_LIB) $(INV_LIB) $(LIBFTW)
  		$(RM) $@
  		$(CC) $(CFLAGS) -o $@ $(SERVER1_OBJ) \
! 		 $(INV_LIB) $(PROTOCOL_LIB) $(LIBFTW) $(LOCALLIBS) -lm;
  
  #
  # Saber loading.  Tuned for Saber 3.0
diff -b -r -c wais-8-b5/ir/cdialect.h wais-8-b5.sco/ir/cdialect.h
*** wais-8-b5/ir/cdialect.h	Wed Dec  4 20:21:03 1991
--- wais-8-b5.sco/ir/cdialect.h	Fri Dec 18 14:25:07 1992
***************
*** 81,86 ****
--- 81,90 ----
  #endif /* ndef PROTO_ANSI */
  #endif /* ndef ANSI_LIKE */
  
+ #ifdef M_SCOUNIX
+ #define SYSV
+ #endif
+ 
  /* set up the function prototyping convention */
  
  #ifdef ANSI_LIKE
***************
*** 115,122 ****
  */
  /* End of chunk to comment back in */
  
  #endif /* ndef C_DIALECT */
  
  /*----------------------------------------------------------------------*/
- 
- 
--- 119,129 ----
  */
  /* End of chunk to comment back in */
  
+ /* Moved here from irfiles.c since needed (for SCO_UNIX) in multiple places */
+ #ifndef MAXPATHLEN /* think_c does not define it for instance */
+ #define MAXPATHLEN 2000
+ #endif /* MAXPATHLEN */
+ 
  #endif /* ndef C_DIALECT */
  
  /*----------------------------------------------------------------------*/
diff -b -r -c wais-8-b5/ir/cutil.h wais-8-b5.sco/ir/cutil.h
*** wais-8-b5/ir/cutil.h	Sat Mar  7 19:40:03 1992
--- wais-8-b5.sco/ir/cutil.h	Fri Dec 18 14:06:07 1992
***************
*** 31,37 ****
  
  #include <stdio.h>   /* this used to be wrapped in an ifndef NULL, 
  			but messed up on some gcc's */
! #if defined(THINK_C) || defined(_IBMR2)
  #include <time.h>
  #endif
  #if !defined(THINK_C)
--- 31,37 ----
  
  #include <stdio.h>   /* this used to be wrapped in an ifndef NULL, 
  			but messed up on some gcc's */
! #if defined(THINK_C) || defined(_IBMR2) || defined (M_SCOUNIX)
  #include <time.h>
  #endif
  #if !defined(THINK_C)
diff -b -r -c wais-8-b5/ir/futil.h wais-8-b5.sco/ir/futil.h
*** wais-8-b5/ir/futil.h	Wed Dec  4 20:21:09 1991
--- wais-8-b5.sco/ir/futil.h	Fri Dec 18 14:06:07 1992
***************
*** 12,17 ****
--- 12,21 ----
  
  #define MAX_FILE_NAME_LEN 255
  
+ #ifdef M_SCOUNIX
+ #include "sys/unistd.h"
+ #endif
+ 
  #define FType long
  
  /* the following defines should be in stdio.h, but the
diff -b -r -c wais-8-b5/ir/ustubs.c wais-8-b5.sco/ir/ustubs.c
*** wais-8-b5/ir/ustubs.c	Wed May  6 17:34:31 1992
--- wais-8-b5.sco/ir/ustubs.c	Fri Dec 18 14:06:07 1992
***************
*** 64,71 ****
  
  #ifdef SYSV
  #include <prototypes.h> /* may be XENIX dependent! */
! char *
! getwd(pathname)
  char *pathname;
  {
    return(getcwd(pathname, MAX_FILENAME_LEN));
--- 64,70 ----
  
  #ifdef SYSV
  #include <prototypes.h> /* may be XENIX dependent! */
! char *getwd(pathname)
  char *pathname;
  {
    return(getcwd(pathname, MAX_FILENAME_LEN));
diff -b -r -c wais-8-b5/ir/ustubs.h wais-8-b5.sco/ir/ustubs.h
*** wais-8-b5/ir/ustubs.h	Wed May  6 17:35:00 1992
--- wais-8-b5.sco/ir/ustubs.h	Fri Dec 18 14:06:07 1992
***************
*** 48,54 ****
--- 48,57 ----
  
  #ifdef SYSV
  char *getwd _AP((char *pathname));
+ #ifndef M_SCOUNIX
+ /* rename is defined extern in <stdio.h> */
  #define rename(f1,f2) {link((f1),(f2)); unlink((f1)); }
+ #endif
  #endif /* defu SYSV */
  
  #if !(defined(NeXT) || defined(Mach))
diff -b -r -c wais-8-b5/ir/zutil.h wais-8-b5.sco/ir/zutil.h
*** wais-8-b5/ir/zutil.h	Thu Mar 26 18:28:03 1992
--- wais-8-b5.sco/ir/zutil.h	Fri Dec 18 14:06:07 1992
***************
*** 135,141 ****
  #define PS_NONE		5 /* can't use NONE since it was used by result 
  			     set status */
  
! #ifndef BSD 
  #define DIAGNOSTIC_CODE_SIZE	(size_t)3
  #else  /* BSD only on a encore/gould */
  #define DIAGNOSTIC_CODE_SIZE	3
--- 135,141 ----
  #define PS_NONE		5 /* can't use NONE since it was used by result 
  			     set status */
  
! #if (!defined(BSD) && !defined(M_SCOUNIX))
  #define DIAGNOSTIC_CODE_SIZE	(size_t)3
  #else  /* BSD only on a encore/gould */
  #define DIAGNOSTIC_CODE_SIZE	3
diff -b -r -c wais-8-b5/lib/Makefile wais-8-b5.sco/lib/Makefile
*** wais-8-b5/lib/Makefile	Fri Apr  3 12:58:39 1992
--- wais-8-b5.sco/lib/Makefile	Fri Dec 18 15:10:46 1992
***************
*** 13,19 ****
  #
  #
  SHELL=/bin/sh
! RM = /bin/rm -f
  
  CC            = cc
  CFLAGS	      = -DUSG -g  -I.
--- 13,20 ----
  #
  #
  SHELL=/bin/sh
! # - needed for SCO since returns -1 if no files to delete
! RM = -/bin/rm -f
  
  CC            = cc
  CFLAGS	      = -DUSG -g  -I.
***************
*** 20,27 ****
  DEST	      = ../bin
  AR = ar 
  ARFLAGS = r
! #on SGIs set this to true
! RANLIB = ranlib
  
  EXTHDRS	      = /usr/include/stdio.h \
  		/usr/include/sys/stat.h \
--- 21,28 ----
  DEST	      = ../bin
  AR = ar 
  ARFLAGS = r
! #on SGIs or SCO Unix set this to true, other systems set to ranlib
! RANLIB = true
  
  EXTHDRS	      = /usr/include/stdio.h \
  		/usr/include/sys/stat.h \
diff -b -r -c wais-8-b5/ui/Makefile wais-8-b5.sco/ui/Makefile
*** wais-8-b5/ui/Makefile	Tue Mar 17 14:25:05 1992
--- wais-8-b5.sco/ui/Makefile	Fri Dec 18 15:10:55 1992
***************
*** 26,41 ****
  SHELL_UTIL_CMD = ../bin/waisq
  SCREEN_UI_CMD = ../bin/swais
  
  # For a smaller client, but with no local search,
  # use this line this to:
  # IR_LIB	= ../bin/client.a
! 
! IR_LIB	= ../bin/inv.a
  
  SIG_LIB = ../bin/sig.a
  
  PROTOCOL_LIB	= ../bin/wais.a
  
  UI_LIB = $(IR_LIB) $(PROTOCOL_LIB)
  
  UI_SIG_LIB = ../ir/seeker_dummy.o $(SIG_LIB) $(PROTOCOL_LIB)
--- 26,47 ----
  SHELL_UTIL_CMD = ../bin/waisq
  SCREEN_UI_CMD = ../bin/swais
  
+ # Set this to -lsocket for SCO Unix, otherwise empty
+ LOCALLIBS=-lsocket
+ 
  # For a smaller client, but with no local search,
  # use this line this to:
  # IR_LIB	= ../bin/client.a
! #SCOUNIX: Need client.a anyway, for close_connection etc
! IR_LIB	= ../bin/inv.a ../bin/client.a
  
  SIG_LIB = ../bin/sig.a
  
  PROTOCOL_LIB	= ../bin/wais.a
  
+ # LIBFTW is needed for SCOUNIX for undefined alphasort
+ LIBFTW		= ../bin/libftw.a	# support library
+ 
  UI_LIB = $(IR_LIB) $(PROTOCOL_LIB)
  
  UI_SIG_LIB = ../ir/seeker_dummy.o $(SIG_LIB) $(PROTOCOL_LIB)
***************
*** 44,50 ****
  LIBDIR = ../lib
  SRCDIR = ./
  
! RM = /bin/rm -f
  
  #
  # Files.
--- 50,56 ----
  LIBDIR = ../lib
  SRCDIR = ./
  
! RM = -/bin/rm -f
  
  #
  # Files.
***************
*** 114,137 ****
  $(PROTOCOL_LIB):
  	(cd ../ir;make ${PROTOCOL_LIB})
  
  $(SHELL_UTIL_CMD): $(QOBJ) $(OBJS) $(UI_LIB)
  	$(RM) $@; \
! 	$(CC) $(LFLAGS) -o $@ $(QOBJ) $(OBJS) $(UI_LIB) $(LIBS) -lm $(RESOLVER)
  
  $(SHELL_UI_CMD): $(SHELL_UI_OBJ) $(UI_LIB)
  		$(RM) $(SHELL_UI_CMD); \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $(SHELL_UI_CMD) \
! 		      $(SHELL_UI_OBJ) $(UI_LIB) -lm $(RESOLVER);
  
  $(SHELL_UI_SIG_CMD): $(SHELL_UI_OBJ) $(UI_SIG_LIB)
  		$(RM) $(SHELL_UI_SIG_CMD); \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $(SHELL_UI_SIG_CMD) \
! 		      $(SHELL_UI_OBJ) $(UI_SIG_LIB) -lm $(RESOLVER);
  
  $(SCREEN_UI_CMD): $(SOBJ) $(OBJS) $(UI_LIB)
  		$(RM) $@; \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $@ \
! 		      $(SOBJ) $(OBJS) $(UI_LIB) -lcurses -ltermcap -lm $(RESOLVER);
  #
  # Saber loading.  Tuned for Saber 3.0
  #
--- 120,145 ----
  $(PROTOCOL_LIB):
  	(cd ../ir;make ${PROTOCOL_LIB})
  
+ # LIBFTW is needed for SCOUNIX for undefined alphasort
  $(SHELL_UTIL_CMD): $(QOBJ) $(OBJS) $(UI_LIB)
  	$(RM) $@; \
! 	$(CC) $(LFLAGS) -o $@ $(QOBJ) $(OBJS) $(UI_LIB) $(LIBS) $(LIBFTW) $(LOCALLIBS) -lm $(RESOLVER)
  
  $(SHELL_UI_CMD): $(SHELL_UI_OBJ) $(UI_LIB)
  		$(RM) $(SHELL_UI_CMD); \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $(SHELL_UI_CMD) \
! 		      $(SHELL_UI_OBJ) $(UI_LIB) $(LOCALLIBS) -lm $(RESOLVER);
  
  $(SHELL_UI_SIG_CMD): $(SHELL_UI_OBJ) $(UI_SIG_LIB)
  		$(RM) $(SHELL_UI_SIG_CMD); \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $(SHELL_UI_SIG_CMD) \
! 		      $(SHELL_UI_OBJ) $(UI_SIG_LIB) $(LOCALLIBS) -lm $(RESOLVER);
  
+ # LIBFTW is needed for SCOUNIX for undefined alphasort
  $(SCREEN_UI_CMD): $(SOBJ) $(OBJS) $(UI_LIB)
  		$(RM) $@; \
  		$(CC) $(CFLAGS) $(LFLAGS) -o $@ \
! 		      $(SOBJ) $(OBJS) $(UI_LIB) $(LIBFTW) $(LOCALLIBS) -lcurses -ltermcap -lm $(RESOLVER);
  #
  # Saber loading.  Tuned for Saber 3.0
  #
***************
*** 163,170 ****
  		#load -I../ir/  $(SRC) $(QSRC)
  		#load /usr/lib/libm.a
  
  wais.el: wais.el.raw
! 	./fix-gmacs.sh wais.el
  
  # Remove objects and library.
  clean:
--- 171,179 ----
  		#load -I../ir/  $(SRC) $(QSRC)
  		#load /usr/lib/libm.a
  
+ # Explicitly call with /bin/csh for dumb makes like SCO's 
  wais.el: wais.el.raw
! 	/bin/csh -f ./fix-gmacs.sh wais.el
  
  # Remove objects and library.
  clean:
diff -b -r -c wais-8-b5/ui/shell-ui.c wais-8-b5.sco/ui/shell-ui.c
*** wais-8-b5/ui/shell-ui.c	Wed Apr 29 13:21:11 1992
--- wais-8-b5.sco/ui/shell-ui.c	Fri Dec 18 14:41:58 1992
***************
*** 68,73 ****
--- 68,78 ----
  #define MAX_FILE_NAME_LEN 1000
  #define Z39_50_SERVICE "210"
  
+ #ifdef M_SCOUNIX
+ /* SCO doesnt implement getdomainname, returns in hostname instead */
+ #define getdomainname(str,len)	sprintf(str,"")
+ #endif
+ 
  #define WAISSEARCH_DATE "Wed Apr 29 1992"
  
  char* log_file_name = NULL;
diff -b -r -c wais-8-b5/ui/source.c wais-8-b5.sco/ui/source.c
*** wais-8-b5/ui/source.c	Thu Apr  2 14:22:50 1992
--- wais-8-b5.sco/ui/source.c	Fri Dec 18 14:43:10 1992
***************
*** 51,56 ****
--- 51,61 ----
  
  #define DESC_SIZE 65535
  
+ #ifdef M_SCOUNIX
+ /* SCO doesnt implement getdomainname, returns in hostname instead */
+ #define getdomainname(str,len)	sprintf(str,"")
+ #endif
+ 
  extern int alphasort();
  
  void
diff -b -r -c wais-8-b5/ui/util.h wais-8-b5.sco/ui/util.h
*** wais-8-b5/ui/util.h	Tue Mar 17 14:29:40 1992
--- wais-8-b5.sco/ui/util.h	Fri Dec 18 14:06:09 1992
***************
*** 17,23 ****
  #define _H_UTIL
  
  #include <cdialect.h>
! 
  int charlistlength _AP((char** list));
  void listlength _AP((List list));
  void find_value _AP((char* source, char* key, char* value, int value_size));
--- 17,23 ----
  #define _H_UTIL
  
  #include <cdialect.h>
! #include "list.h"
  int charlistlength _AP((char** list));
  void listlength _AP((List list));
  void find_value _AP((char* source, char* key, char* value, int value_size));
diff -b -r -c wais-8-b5/x/My-Makefile wais-8-b5.sco/x/My-Makefile
*** wais-8-b5/x/My-Makefile	Fri May  8 11:43:45 1992
--- wais-8-b5.sco/x/My-Makefile	Fri Dec 18 15:11:08 1992
***************
*** 21,27 ****
  
  CC = cc
  
! RM = /bin/rm -f
  AR = ar 
  ARFLAGS = r
  
--- 21,27 ----
  
  CC = cc
  
! RM = -/bin/rm -f
  AR = ar 
  ARFLAGS = r
  
Newsgroups: comp.infosystems.wais