[2399] in Kerberos

home help back first fref pref prev next nref lref last post

kerberos v5 for Solaris 2.0

daemon@ATHENA.MIT.EDU (Charles Hedrick)
Wed Nov 25 23:08:32 1992

Date: 26 Nov 92 03:17:55 GMT
From: hedrick@farside.rutgers.edu (Charles Hedrick)
To: kerberos@shelby.Stanford.EDU

I've been working on a Solaris 2.0 port for Kerberos 5.  Our local
Kerberos expert suggested that I should post the diffs, since other
people have asked.  I should note that I don't claim to know how
Kerberos works, nor have I been able to do much testing.  But if other
people are interested in working on Solaris 2.0, this will no doubt
speed up your start.  Our copy of Kerberos is based on a distribution
from Sandia, and there are also local Rutgers modifications.  Kerberos
needs ISODE for its ASN.1.  Sandia supplies binaries for libisode.a
and xpepsy.  They are based on version 6.8 of ISODE with bug fixes
done at Sandia.  Since Sandia doesn't supply binaries for Solaris, I
had to build my own.  I used the general 7.0 distribution of ISODE.
There is one incompatibility in header files, which you'll see in a
diffs.  This file is also available on farside.rutgers.edu (our
Solaris 2.0 development machine), as src/kerberos5.README

Here are the changes I had to make.  This file is in two pieces: diffs
to Kerberos and then diffs to ISODE.

KERBEROS:

Notes:

1) This is just a first cut.  kinit now works, but I'm unable to test
anything else.  Some manual intervention is still needed for makefiles.
(e.g. when building the libraries, it tries to put links in the wrong
place, and somehow the script doesn't do a "make all" in include/krb5).
Some extra libraries are probably needed.  E.g. I needed "-lresolv"
for kinit.

2) I ended up getting a couple of symbols defined before in config.h
and -D options.  This is harmless, but creates lots of warnings.

3) This is for Cygnus gcc.  It's generally done using SVr4 headers and
libraries, with Berkeley libraries used only for a few functions.

4) I generated xpepsy and libisode.a using the ISODE 7.0 distribution.
Note that the 7.0 headers have a slight difference in pepsy.h.
I've put that under #ifndef __svr4__, but this really indicates
ISODE 7.0 rather than Sandia's hacked 6.8.

5) I've dummied network_connected, until I get a chance to figure
out what it should really be.

6) proxy_ticket.c wouldn't compile.  The code that's there is
obviously impossible.  I don't know what it's doing, so I don't make
any guarantees about my patch.  All I can say is that it will compile.


*** error_table.y.ORIG	Sun Jan  1 08:19:16 1989
--- com_err/error_table.y	Wed Nov 25 18:06:19 1992
***************
*** 1,6 ****
  %{
  #include <stdio.h>
! char *str_concat(), *ds(), *quote(), *malloc(), *realloc();
  char *current_token = (char *)NULL;
  extern char *table_name;
  %}
--- 1,9 ----
  %{
  #include <stdio.h>
! char *str_concat(), *ds(), *quote();
! #ifndef __svr4__
! char *malloc(), *realloc();
! #endif
  char *current_token = (char *)NULL;
  extern char *table_name;
  %}
***************
*** 76,82 ****
--- 79,87 ----
      "$Header: error_table.y,v 1.7 89/01/01 07:23:17 raeburn Locked $";
  #endif
  
+ #ifndef __svr4__
  char *malloc(), *realloc();
+ #endif
  extern FILE *hfile, *cfile;
  
  static long gensym_n = 0;
*** imakemdep.h.ORIG	Thu Mar 26 10:44:00 1992
--- config/imakemdep.h	Wed Nov 25 03:54:15 1992
***************
*** 17,22 ****
--- 17,26 ----
  #define imake_ccflags "-DSYSV"
  #endif
  
+ #ifdef __svr4__
+ #define imake_ccflags "-DSYSV"
+ #endif
+ 
  #ifdef hpux
  #define imake_ccflags "-Wc,-Nd4000,-Ns3000 -DSYSV"
  #endif
***************
*** 87,94 ****
  #ifdef apollo
  #define DEFAULT_CPP "/usr/lib/cpp"
  #endif
  
- 
  /*
   * Step 5:  cpp_argv
   *     The following table contains the cpp flags that should be passed to 
--- 91,100 ----
  #ifdef apollo
  #define DEFAULT_CPP "/usr/lib/cpp"
  #endif
+ #ifdef __svr4__
+ #define DEFAULT_CPP "/usr/ccs/lib/cpp"
+ #endif
  
  /*
   * Step 5:  cpp_argv
   *     The following table contains the cpp flags that should be passed to 
***************
*** 211,216 ****
--- 217,237 ----
  #endif
  #ifdef CMU
  	{"CMU", "1"},
+ #endif
+ #ifdef sparc
+ 	{"sparc", "1"},
+ #endif
+ #ifdef __svr4__
+ 	{"__svr4__", "1"},
+ #endif
+ #ifdef __sun__
+ 	{"__sun4__", "1"},
+ #endif
+ #ifdef __sparc__
+ 	{"__sparc__", "1"},
+ #endif
+ #ifdef __unix__
+ 	{"__unix__", "1"},
  #endif
  	/* add any additional symbols before this line */
  	{NULL, NULL}
*** /tmp/da001UF	Wed Nov 25 19:58:24 1992
--- config/site.def.sol2	Wed Nov 25 18:00:45 1992
***************
*** 0 ****
--- 1,248 ----
+ /**/# $Source: /afs/athena.mit.edu/astaff/project/krb5/src/config/RCS/site.def,v $
+ /**/# $Author: jfc $
+ /**/# $Id: site.def,v 5.40 91/06/06 23:56:57 jfc Exp $
+ /**/#
+ 
+ /**/# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
+ 
+ /*****************************************************************************
+  *                                                                           *
+  *			   SITE-SPECIFIC DEFINITIONS                         *
+  *                                                                           *
+  * Override any of the defaults in *.tmpl here.                              *
+  *                                                                           *
+  *                                                                           *
+  * Make sure you check the following parameters:                             *
+  *                                                                           *
+  *     1.  HasLargeTmp                                                       *
+  *     2.  All the manpage locations & suffixes                              *
+  *     3.  All the binary install locations                                  *
+  *                                                                           *
+  * Note on using DESTDIR:  If you want to install into a scratch directory   *
+  * but will eventually move the tree back to the root, compile with DESTDIR  *
+  * blank and install with "make install DESTDIR=directory".                  *
+  *                                                                           *
+  *****************************************************************************/
+ 
+ /* General */
+ 
+ #if AceServer
+ #define OneTimePasswordDefines -DSECUREID
+ #define AceLibraries /usr/ace/sdclient.a 
+ #define AceIncludes -I/usr/ace/sun4clien
+ #endif
+ 
+ #define StandardDefines -DSANDIA -DALT_KEY_SALT -DRUTGERS -DPWCHECK -DUSERPASSWORD -DSHORTPASSWORD -DSYSV -DPOSIX_FILE_LOCKS -DPOSIX_TERMIOS
+ #define InstKmemFlag	-g kmem -m 2755
+ #define StripInstalledPrograms	YES
+ #define InstUidFlags	-o root -m 4755
+ 
+ /* Application defines */
+ #define appl_bsd_defines -DKERBEROS -DATHENA
+ #define appl_telnet_defines -DKLUDGELINEMODE \
+                             -DTERMCAP -DSTREAMS \
+                            -DAUTHENTICATE -DENCRYPT \
+                             -DDIAGNOSTICS -DKRB5 -DDES_ENCRYPT
+ #define appl_kftpd_defines -DKERBEROS
+ #define appl_kftp_defines -DKERBEROS
+ #define appl_nqs_defines
+ #define appl_nfsid_defines
+ #define appl_snlpasswd_defines -DKERBEROS -DCOMMAND='"/bin/passwd.root"'
+ #define appl_tdset_defines -DBSD
+ 
+ 
+ /*
+  * SET THESE PARAMETERS FIRST !!!
+  */
+ 
+ /*
+  * 1.  HasLargeTmp - if your /tmp space is less than a 1meg, you should
+  * probably set this to NO
+  */
+ #ifndef HasLargeTmp
+ #define HasLargeTmp YES
+ #endif
+ 
+ /*
+  * 2. Man page locations & suffixes.
+  */
+ /* AdminManSuffix: man page suffix for administrative programs */
+ #ifndef AdminManSuffix
+ #define AdminManSuffix 8
+ #endif
+ /* AdminMandir: manual page directory for administrative man pages */
+ #ifndef AdminMandir
+ #define AdminMandir $(TOP)/man/man8
+ #endif
+ 
+ /* ServerManSuffix: man page suffix for server programs */
+ #ifndef ServerManSuffix
+ #define ServerManSuffix 8
+ #endif
+ /* ServerMandir: manual page directory for server man pages */
+ #ifndef ServerMandir
+ #define ServerMandir $(TOP)/man/man8
+ #endif
+ 
+ /* ClientManSuffix: man page suffix for client programs */
+ #ifndef ClientManSuffix
+ #define ClientManSuffix 1
+ #endif
+ /* ClientMandir: manual page directory for client man pages */
+ #ifndef ClientMandir
+ #define ClientMandir $(TOP)/man/man1
+ #endif
+ 
+ /*
+  * 3. Binary program install areas.
+  */
+ /* AdminBindir: binary install directory for administrative programs */
+ #ifndef AdminBindir
+ #define AdminBindir $(TOP)/admin
+ #endif
+ 
+ /* ServerBindir: binary install directory for server programs */
+ #ifndef ServerBindir
+ #define ServerBindir $(TOP)/sbin
+ #endif
+ 
+ /* ClientBindir: binary install directory for client programs */
+ #ifndef ClientBindir
+ #define ClientBindir $(TOP)/bin
+ #endif
+ 
+ /* CompileEtCmd: Whereis compile_et program */
+ #ifndef CompileEtCmd
+ #define CompileEtCmd $(TOP)/com_err/compile_et
+ #endif
+ 
+ /* MkCmdsCmd: Whereis mk_cmds program */
+ #ifndef MkCmdsCmd
+ #define MkCmdsCmd $(TOP)/ss/mk_cmds
+ #endif
+ 
+ /* DependCmd: Whereis makedepend program */
+ #ifndef DependCmd
+ #define DependCmd $(TOP)/makedepend/makedepend
+ #endif
+ 
+ /* ImakeCmd: Whereis imake program */
+ #ifndef ImakeCmd
+ #define ImakeCmd $(TOP)/config/imake
+ #endif
+ 
+ /*****************************************************************************
+  *                                                                           *
+  *			       Build Parameters                              *
+  *                                                                           *
+  *****************************************************************************/
+ 
+ /*
+  * If you want to use GCC, set HasGcc in the appropriate .cf files.
+  */
+ #ifndef HasGcc
+ #define HasGcc NO
+ #endif
+ 
+ /* The -Z flag is a special loader flag at Athena to unmap page zero on
+    some architectures that normally allow p0 references, e.g. VAX BSD.
+ 
+    -T0x400000 has a similar effect on AIX 1.2
+ 
+    Symbolic debugging is difficult on RT and PS/2 when this option is used. */
+ #ifndef UltrixArchitecture
+ #if defined(AIXArchitecture) && OSMajorVersion == 1
+ #define	ExtraLoadFlags -T0x400000
+ #else
+ #define ExtraLoadFlags
+ #endif
+ #endif
+ 
+ #define OptimizedCDebugFlags 
+ /* With gcc, use -g -O.  Otherwise use the default (-O). */
+ #if !defined(DefaultCDebugFlags) && HasGcc
+ #define DefaultCDebugFlags OptimizedCDebugFlags DebuggableCDebugFlags
+ #endif
+ 
+ #if HasNdbm
+ #define DbmLib
+ #else
+ #define DbmLib -ldbm
+ #endif
+ 
+ /* If you have the Hesiod software and libraries installed, and want to
+    use it in some application programs, then turn these on.  If they're
+    not turned on, they are left empty in Project.tmpl */
+ /* #define HesiodDefines -DHESIOD */
+ /* #define HesiodLibs -lhesiod */
+ 
+ #if 0
+ /* not yet in use, but maybe someday... */
+ /* If you have the Zephyr software and libraries installed, and want to
+    use it in some application programs, then turn these on.  If they're
+    not turned on, they are left empty in Project.tmpl.
+ 
+    NOTE:  You must have Kerberos v4 in order to use Zephyr.
+  */
+ #define ZephyrDefines -DZEPHYR
+ #define ZephyrLibs -lzephyr
+ #endif
+ 
+ #ifndef PS2Architecture
+ /* define IsodeLib to be what you pass to the loader to find the ISODE
+    library.  This might want to be -lisode if you have it installed.
+    IsodeDir is put into the 'make' variable ISODE. */
+ 
+ #define IsodeLib $(TOP)/isode-interim/libisode.a
+ #define IsodeDir $(TOP)/isode-interim
+ 
+ /* Re-define PepsyCmd if pepsy isn't in your search path. */
+ 
+ #define PepsyCmd $(TOP)/isode-interim/pepsy/xpepsy
+ #endif
+ 
+ #define UseImakeInstalled /* -- turn on if you have imake installed */
+ #define UseMakedependInstalled /* -- turn on if you have makedepend installed */
+ #define Krb4ApplCompat /* turn this on if you want selected applications to
+ 			  work with both v4 & v5 code */
+ #define Krb4KDCCompat /* turn this on if you want the KDC to provide v4
+ 			 tickets from a v5 database */
+ /* #define Krb4Includes <empty>	-- If you don't want to use our copy of the
+    				   Kerberos V4 include files, set this to
+ 				   an empty name, by using the /**/
+ /* 				   trick */
+ /* #define Krb4LibList -lquux  -- If -lkrb -ldes is NOT the right thing
+    				  to get V4 libraries, define it here
+ 				  to something else */
+ 
+ 
+ /* the following might want to be put into a specific architecture
+    definition file */
+ 
+ /* #define HasVfprintf -- turn on if you have vfprintf/vsprintf in libc
+    			  (might want to be in the architecture-specific
+ 			   configuration file) */
+ /* #define HasVsyslog -- turn on if you have vsyslog in libc
+    			  (might want to be in the architecture-specific
+ 			   configuration file) */
+ /* #define HasStrdup -- turn on if you have strdup() in libc
+    			  (might want to be in the architecture-specific
+ 			   configuration file) */
+ 
+ /* #define LdLibLocations -L/foo/bar -- alternate library search paths,
+ 					if needed for some system libraries */
+ /* #define LdLibLocations -L$(TOP)/com_err -L$(TOP)/lib */
+ /* #define StandardIncludes -I/foo/bar -- additional include paths, if
+ 					needed, such as those needed
+ 					to get special include files,
+ 					like <ss/ss.h> or <com_err.h> */
+ #define StandardIncludes -I$(TOP) -I$(TOP)/com_err -I$(TOP)/include/kerberosIV \
+ 			 -I$(TOP)/isode-interim -I$(TOP)/ss
+ 
+ #define	AthenaEnv NO		/* Define this if you are in the
+ 				   athena environment.
+ 				   No one else should define this.  */
+ 
+ #if defined(VaxArchitecture) || defined(RtArchitecture)
+ #define	STDCTopIncludes	-I$(TOP)/include/stdc-incl
+ #endif
*** /tmp/da001UG	Wed Nov 25 19:58:24 1992
--- config/sol2.cf	Wed Nov 25 18:33:19 1992
***************
*** 0 ****
--- 1,58 ----
+ /**/# $Source: /afs/athena.mit.edu/astaff/project/krb5/src/config/RCS/sun.cf,v $
+ /**/# $Author: jtkohl $
+ /**/# $Id: sun.cf,v 5.1 91/02/14 10:00:19 jtkohl Exp $
+ /**/#
+ 
+ /*
+  * SET VERSION NUMBERS BEFORE MAKING MAKEFILES
+  */
+ /*
+  * This file was used for a SPARC running Solaris 2.0
+  */
+ /*
+  * Some random notes for the SUN build:
+  *
+  * 	There are some warnings in the ss and comerr directories.
+  *	They aren't too important, so ignore them for now.
+  *
+  */
+ 
+ #define AceServer		NO
+ 
+ #define OSName			Solaris 2.0
+ #define OS_Solaris2		1
+ #define OSMajorVersion		2
+ #define OSMinorVersion		0
+ #define SystemV			YES
+ #define HasVoidSignalReturn	YES
+ #define	HasPosixTermios		YES
+ #define	HasPosixFileLocks	YES
+ #define HasPosixTypes		YES
+ #define	HasStringH		YES
+ #define	HasStdlibH		YES
+ #define	HasInet			YES
+ #define HasPutenv		YES
+ #define HasBsearch		YES
+ #define	HasGCC			YES
+ #define	UseSysTimeH		YES
+ #define IsPOSIX			NO
+ #define	Bitsize32		YES
+ 
+ #undef HasNdbm
+ #define HasNdbm			YES
+ 
+ #define	ArCmd			ar cru
+ 
+ #define DesDefines		-DBIG -DMUSTALIGN -DMSBFIRST
+ #define HasVfprintf YES
+ #define HasVsyslog YES
+ #define HasStrdup YES
+ #define ExecableScripts		YES
+ #define HasSockets		YES
+ #define HasVFork		YES
+ #define UNCOMPRESSPATH /usr/bin/uncompress
+ #define ExtraLibraries -lnsl -lsocket -lc /usr/ucblib/libucb.a
+ #define DefaultCCOptions -traditional
+ #define MakeDependDefine -Dunicos61 -DSYSV -DUSG
+ #define PepsyFlags -f -h0 -a -s -C
+ 
*** sysincl.h.ORIG	Thu Feb 20 14:50:52 1992
--- include/krb5/sysincl.h	Mon Nov 23 23:07:01 1992
***************
*** 61,65 ****
--- 61,70 ----
  #define L_XTND          2       /* relative to end of file */
  #endif /* L_SET */
  
+ #ifdef __svr4__
+ #define L_INCR          1       /* relative to current offset */
+ #define L_XTND          2       /* relative to end of file */
+ #endif
+ 
  #endif
  #endif /* KRB5_SYSINCL__ */
*** general.h.ORIG	Mon Nov 23 22:36:51 1992
--- isode-interim/include/general.h	Mon Nov 23 22:09:03 1992
***************
*** 145,151 ****
  #define ntohs(x)        (x)
  #endif	/* unicos61 */
  #ifndef unicos61
! #if	defined(BSDSTRS) && !defined(BSD44) && (!defined(BSD43) || defined(SUNOS4) || defined(vax) || defined(RT) || (defined(mips) && defined(ultrix))) && !defined(XOS_2)
  char   *sprintf ();
  #else
  int     sprintf ();
--- 145,151 ----
  #define ntohs(x)        (x)
  #endif	/* unicos61 */
  #ifndef unicos61
! #if	!defined(__svr4__) && defined(BSDSTRS) && !defined(BSD44) && (!defined(BSD43) || defined(SUNOS4) || defined(vax) || defined(RT) || (defined(mips) && defined(ultrix))) && !defined(XOS_2)
  char   *sprintf ();
  #else
  int     sprintf ();
***************
*** 153,159 ****
  char   *strcat ();
  int     strcmp ();
  char   *strcpy ();
! #if !defined (hpux) && !defined (ultrix)
  int     strlen ();
  #endif
  char   *strncat ();
--- 153,159 ----
  char   *strcat ();
  int     strcmp ();
  char   *strcpy ();
! #if !defined (hpux) && !defined (ultrix) && !defined(__svr4__)
  int     strlen ();
  #endif
  char   *strncat ();
*** pepsy.h.ORIG	Wed Oct  2 11:59:14 1991
--- isode-interim/include/pepsy.h	Tue Nov 24 23:27:52 1992
***************
*** 56,61 ****
--- 56,62 ----
   * Definitions for pep tables
   */
  
+ #ifndef __svr4__
  typedef struct	{
  	int	pe_type;	/* Type of entry */
  	integer	pe_ucode;	/* index to user's code if any */
***************
*** 63,68 ****
--- 64,70 ----
  	int	pe_flags;	/* Flags */
  }	tpe;
  #define NULLTPE	((tpe *)0)
+ #endif
  
  typedef struct	{
  	int	pe_type;	/* Type of entry */
***************
*** 72,77 ****
--- 74,85 ----
  	char *pe_typename; /* User defined name of variable */
  }	ptpe;
  #define NULLPTPE	((ptpe *)0)
+ 
+ #ifdef __svr4__
+ #define tpe ptpe
+ #define NULLTPE	((tpe *)0)
+ #endif
+ 
  
  /* extract a pointer from the pointer table */
  #define GPTR(mod, ind, type)	  ((type )(mod)->md_ptrtab[ind])
*** sendto_kdc.c.ORIG	Wed Aug 14 14:31:52 1991
--- lib/os/sendto_kdc.c	Wed Nov 25 20:19:47 1992
***************
*** 142,147 ****
--- 142,148 ----
  		    retval = errno;
  		    goto out;
  		}
+ 		fromlen = sizeof(fromaddr);
  		if ((cc = recvfrom(socklist[addr[host].sa_family],
  				   reply->data,
  				   reply->length,
*** kuserok.c.ORIG	Mon Mar 16 11:14:35 1992
--- lib/os/kuserok.c	Mon Nov 23 23:50:02 1992
***************
*** 38,49 ****
  #include <stdio.h>
  #include <pwd.h>
  
- 
  #define MAX_USERNAME 10
  
  #ifdef unicos61
  #include <sys/unistd.h>
  #endif	
  /*
   * Given a Kerberos principal "principal", and a local username "luser",
   * determine whether user is authorized to login according to the
--- 38,52 ----
  #include <stdio.h>
  #include <pwd.h>
  
  #define MAX_USERNAME 10
  
  #ifdef unicos61
  #include <sys/unistd.h>
  #endif	
+ #ifdef __svr4__
+ #include <unistd.h>
+ #endif
+ 
  /*
   * Given a Kerberos principal "principal", and a local username "luser",
   * determine whether user is authorized to login according to the
***************
*** 94,102 ****
  	 * which we can string compare. 
  	 */
  	if (!(krb5_aname_to_localname(principal,
! 				      sizeof(kuser), kuser))
! 	    && (strcmp(kuser, luser) == 0)) {
! 	    return(TRUE);
  	}
      }
      if (krb5_unparse_name(principal, &princname))
--- 97,106 ----
  	 * which we can string compare. 
  	 */
  	if (!(krb5_aname_to_localname(principal,
! 				      sizeof(kuser), kuser))) {
! 	    if (strcmp(kuser, luser) == 0) {
! 	      return(TRUE);
! 	    }
  	}
      }
      if (krb5_unparse_name(principal, &princname))
*** localaddr.c.ORIG	Tue Nov 12 15:13:13 1991
--- lib/os/localaddr.c	Mon Nov 23 23:55:50 1992
***************
*** 39,44 ****
--- 39,47 ----
  
  #include <sys/ioctl.h>
  #include <sys/socket.h>
+ #ifdef __svr4__
+ #include <sys/sockio.h>
+ #endif
  #include <net/if.h>
  #include <sys/errno.h>
  
*** ln_to_prin.c.BAK	Thu Oct 22 17:42:17 1992
--- lib/os/ln_to_prin.c	Mon Nov 23 23:52:09 1992
***************
*** 19,25 ****
--- 19,29 ----
  #include <krb5/sysincl.h>
  #endif
  
+ #ifdef __svr4__
+ #include <string.h>
+ #else
  #include <strings.h>
+ #endif
  
  #ifndef min
  #define min(a,b) ((a) > (b) ? (b) : (a))
*** krbfileio.c.ORIG	Tue Oct 13 13:14:19 1992
--- lib/os/krbfileio.c	Mon Nov 23 23:44:27 1992
***************
*** 40,45 ****
--- 40,48 ----
  #include <krb5/los-proto.h>
  
  #include <sys/file.h>
+ #ifdef __svr4__
+ #include <fcntl.h>
+ #endif
  
  #include <sys/types.h>
  #include <krb5/ext-proto.h>
*** kuserok.c.ORIG	Wed Oct 30 12:34:55 1991
--- lib/krb425/kuserok.c	Tue Nov 24 00:28:21 1992
***************
*** 46,51 ****
--- 46,55 ----
  #define F_OK 0
  #endif  /* unicos61 */
  
+ #ifdef __svr4__
+ #define F_OK 0
+ #endif
+ 
  /*
   * Given a Kerberos principal "kdata", and a local username "luser",
   * determine whether user is authorized to login according to the
*** networked.c.ORIG	Mon Feb  3 09:37:16 1992
--- lib/snlmodules/networked.c	Tue Nov 24 00:53:43 1992
***************
*** 83,90 ****
--- 83,102 ----
  #endif /* not SYSV */
  
  
+ /* SVR4 users different names for the pty's (and there are two
+  * conventions, and is otherwise different enough that for the
+  * moment it's safer just to assume the user is networked
+  */
+ 
+ #ifdef __svr4__
  int network_connected()
  {
+ return 1;
+ }
+ 
+ #else
+ int network_connected()
+ {
  struct utmp utmpent;
  struct utmp retutent, *tmpptr;
  char *display_indx;
***************
*** 184,189 ****
--- 196,202 ----
       */
      return(1);
  }
+ #endif
  
  byte_copy(str1,str2,len)
  char *str1, *str2;
*** proxy_ticket.c.HOLD	Wed Oct 21 13:49:11 1992
--- lib/snlmodules/proxy_ticket.c	Tue Nov 24 01:22:46 1992
***************
*** 613,620 ****
  		krb5_free_realm_tree(tgs_list);
  		goto out;
  	    }
! 	    krb5_free_data(&final_server->realm);
! 	    &final_server->realm = tmpdata;
  	    tgtq.server = final_server;
  
  	    tgtq.is_skey = FALSE;
--- 613,622 ----
  		krb5_free_realm_tree(tgs_list);
  		goto out;
  	    }
! /* tmpdata is *krb_data */
! /* final_server is krb_princ, field is realm */
! 	    krb5_free_data(&(final_server->realm));
! 	    final_server->realm = *tmpdata;
  	    tgtq.server = final_server;
  
  	    tgtq.is_skey = FALSE;
*** networked.c.ORIG	Wed Oct  7 18:13:38 1992
--- lib/krbpass/networked.c	Tue Nov 24 03:21:05 1992
***************
*** 83,88 ****
--- 83,96 ----
  #endif /* not SYSV */
  
  
+ #ifdef __svr4__
+ 
+ int network_connected ()
+ {
+ return 1;
+ }
+ #else
+ 
  int network_connected()
  {
  struct utmp utmpent;
***************
*** 184,189 ****
--- 192,198 ----
       */
      return(1);
  }
+ #endif
  
  byte_copy(str1,str2,len)
  char *str1, *str2;
8c8
< #ifdef unicos61
---
> #if defined(unicos61) || defined(__svr4__)
9a10
> #ifdef unicos61
10a12
> #endif
96a99
> #ifndef __svr4__
97a101
> #endif
*** list_rqs.c.ORIG	Wed Oct 16 11:51:40 1991
--- ss/list_rqs.c	Wed Nov 25 18:24:12 1992
***************
*** 35,41 ****
      FILE *output;
      int fd;
      int mask;
! #if defined (POSIX) || defined(unicos61)
      void (*func)();
      int  waitb;
  #else
--- 35,41 ----
      FILE *output;
      int fd;
      int mask;
! #if defined (POSIX) || defined(unicos61) || defined (__svr4__)
      void (*func)();
      int  waitb;
  #else
*** ct.y.ORIG	Mon Dec  5 01:37:14 1988
--- ss/ct.y	Wed Nov 25 18:16:17 1992
***************
*** 7,13 ****
  #include <stdio.h>
  #include "copyright.h"
  
! char *str_concat3(), *ds(), *generate_rqte(), *malloc(), *realloc(), *quote();
  long flag_value();
  char *last_token = (char *)NULL;
  FILE *output_file;
--- 7,16 ----
  #include <stdio.h>
  #include "copyright.h"
  
! char *str_concat3(), *ds(), *generate_rqte(), *quote();
! #ifndef __svr4__
! char *malloc(), *realloc();
! #endif
  long flag_value();
  char *last_token = (char *)NULL;
  FILE *output_file;


ISODE:

The configuration was based on a copy of the sys54 one, with just one
change shown below.  Note that I only went as far as building
libisode.a and xpepsy.  I made no attempt to get ISODE itself working.


*** compat/Makefile.ORIG	Wed Jul 17 07:17:48 1991
--- compat/Makefile	Tue Nov 24 17:14:45 1992
***************
*** 45,51 ****
  # libcompat
  ################################################################
  
! CFILES	=	general.c logger.c select.c signals.c \
  		asprintf.c explode.c implode.c isofiles.c isohost.c sel2str.c \
  			serror.c sprintb.c str2elem.c str2sel.c str2vec.c \
  			tailor.c \
--- 45,51 ----
  # libcompat
  ################################################################
  
! CFILES	=	general.c logger.c select.c signals.c getdtablesize.c \
  		asprintf.c explode.c implode.c isofiles.c isohost.c sel2str.c \
  			serror.c sprintb.c str2elem.c str2sel.c str2vec.c \
  			tailor.c \
***************
*** 59,65 ****
  		dgram.c \
  		bridge.c camtec.c sunlink.c ubcx25.c \
  		hpuxx25.c ultrix25.c x25addr.c
! OFILES =	general.o logger.o select.o signals.o \
  		asprintf.o explode.o implode.o isofiles.o isohost.o sel2str.o \
  			serror.o sprintb.o str2elem.o str2sel.o str2vec.o \
  			tailor.o \
--- 59,65 ----
  		dgram.c \
  		bridge.c camtec.c sunlink.c ubcx25.c \
  		hpuxx25.c ultrix25.c x25addr.c
! OFILES =	general.o logger.o select.o signals.o getdtablesize.o \
  		asprintf.o explode.o implode.o isofiles.o isohost.o sel2str.o \
  			serror.o sprintb.o str2elem.o str2sel.o str2vec.o \
  			tailor.o \
*** /tmp/da001VJ	Wed Nov 25 19:58:24 1992
--- compat/getdtablesize.c	Tue Nov 24 17:15:47 1992
***************
*** 0 ****
--- 1,10 ----
+ #ifdef __svr4__
+ 
+ #include <unistd.h>
+ 
+ long getdtablesize() {
+ 
+ return sysconf(_SC_OPEN_MAX);
+ 
+ }
+ #endif
*** sys54.make	Wed Jul 17 07:20:48 1991
--- sol2.make	Tue Nov 24 16:35:08 1992
***************
*** 100,106 ****
  #
  # If SVR4_UCB is defined you'll need to use /usr/ucb/cc and /usr/ucb/ld
  #
! CC      =	/usr/bin/cc
  LD	=	/usr/bin/ld
  CFLAGS  =       $(OPTIONS) $(LOPTIONS) 
  LIBCFLAGS=      $(CFLAGS)
--- 100,106 ----
  #
  # If SVR4_UCB is defined you'll need to use /usr/ucb/cc and /usr/ucb/ld
  #
! CC      =	cc
  LD	=	/usr/bin/ld
  CFLAGS  =       $(OPTIONS) $(LOPTIONS) 
  LIBCFLAGS=      $(CFLAGS)

home help back first fref pref prev next nref lref last post