Return to BSD News archive
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!caen!umeecs!zip!don
From: don@eecs.umich.edu (Don Winsor)
Subject: 386bsd patches for pgp-2.0
Message-ID: <DON.92Dec3094123@bullwinkle.eecs.umich.edu>
Sender: news@zip.eecs.umich.edu (Mr. News)
Organization: U. of Michigan EECS Dept.
Date: Thu, 3 Dec 1992 14:41:23 GMT
Lines: 224
PGP version 2.0 builds fairly easily on 386BSD. The only big problem is
the busted toupper/tolower routines; if you configure appropriately and
compile in good versions of these routines everything seems to work file.
To build PGP for 386BSD:
1) Unpack the distribution (unix_pgp20.tar.Z)
Some anonymous FTP sites for this:
HOSTNAME IP ADDRESS DIRECTORY
sol.cs.ruu.nl 131.211.80.17 /UNIX
ghost.dsi.unimi.it 149.132.2.1 /pub/security
goya.dit.upm.es 138.4.2.2 /info/unix/misc/pgp20
2) Go into the "pgp-2.0/src" directory.
3) Apply the patches supplied at the end of this article:
* Makefile change to include a fixed "isctype"
* Makefile support for a 386bsd configuration
* A small configuration fix for fileio.c
* A working "isctype.c" file
4) Run "make 386bsd"
Standard disclaimers: absolutely no warranty,
use at own risk, copyright/patent status not verified,
buyer beware, may be habit forming, etc.
-- Don Winsor
-- Department of Electrical Engineering and Computer Science
-- The University of Michigan
-- Ann Arbor, Michigan 48109-2122
-- don@eecs.umich.edu
================ pgp-2.0 patches for 386bsd follow ================
*** Makefile~ Thu Sep 10 08:25:40 1992
--- Makefile Thu Oct 22 13:22:38 1992
***************
*** 83,89 ****
mdfile.o more.o armor.o mpilib.o mpiio.o \
genprime.o rsagen.o random.o idea.o passwd.o \
md5.o system.o language.o getopt.o keyadd.o \
! config.o keymaint.o charset.o
OBJS = $(OBJ1) $(ZIPOBJS) $(OBJS_EXT)
--- 83,89 ----
mdfile.o more.o armor.o mpilib.o mpiio.o \
genprime.o rsagen.o random.o idea.o passwd.o \
md5.o system.o language.o getopt.o keyadd.o \
! config.o keymaint.o charset.o isctype.o
OBJS = $(OBJ1) $(ZIPOBJS) $(OBJS_EXT)
***************
*** 92,97 ****
--- 92,101 ----
linux:
+ $(MAKE) all CC=gcc LD=gcc OBJS_EXT=80386.o \
+ CFLAGS="-O -DUNIX -DUNIT32"
+
+ 386bsd:
$(MAKE) all CC=gcc LD=gcc OBJS_EXT=80386.o \
CFLAGS="-O -DUNIX -DUNIT32"
*** fileio.c~ Sun Aug 30 23:02:46 1992
--- fileio.c Fri Oct 9 06:30:26 1992
***************
*** 253,258 ****
--- 253,259 ----
#endif
#endif
+ #undef UNIX
void truncate_name(char *path, int ext_len)
{ /* truncate the filename so that an extension can be tacked on. */
#ifdef UNIX /* for other systems this is a no-op */
*** isctype.c~ Thu Dec 3 08:29:54 1992
--- isctype.c Thu Oct 22 13:22:12 1992
***************
*** 0 ****
--- 1,139 ----
+ /*
+ * Copyright (c) 1989 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
+ * -------------------- ----- ----------------------
+ * CURRENT PATCH LEVEL: 1 00027
+ * -------------------- ----- ----------------------
+ *
+ * 02 Aug 92 Wiljo Heinen Fixed toupper()/tolower() range check
+ */
+
+ #if defined(LIBC_SCCS) && !defined(lint)
+ static char sccsid[] = "@(#)isctype.c 5.2 (Berkeley) 6/1/90";
+ #endif /* LIBC_SCCS and not lint */
+
+ #define _ANSI_LIBRARY
+ #include <ctype.h>
+
+ #undef isalnum
+ isalnum(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & (_U|_L|_N));
+ }
+
+ #undef isalpha
+ isalpha(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & (_U|_L));
+ }
+
+ #undef iscntrl
+ iscntrl(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _C);
+ }
+
+ #undef isdigit
+ isdigit(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _N);
+ }
+
+ #undef isgraph
+ isgraph(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & (_P|_U|_L|_N));
+ }
+
+ #undef islower
+ islower(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _L);
+ }
+
+ #undef isprint
+ isprint(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & (_P|_U|_L|_N|_B));
+ }
+
+ #undef ispunct
+ ispunct(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _P);
+ }
+
+ #undef isspace
+ isspace(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _S);
+ }
+
+ #undef isupper
+ isupper(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & _U);
+ }
+
+ #undef isxdigit
+ isxdigit(c)
+ int c;
+ {
+ return((_ctype_ + 1)[c] & (_N|_X));
+ }
+
+ #undef tolower
+ tolower(c)
+ int c;
+ {
+ /* was: return((c) - 'A' + 'a');*/
+ return ( isupper(c) ? c - 'A' + 'a' : c);
+ }
+
+ #undef toupper
+ toupper(c)
+ int c;
+ {
+ /* was: return((c) - 'a' + 'A');*/
+ return ( islower(c) ? c - 'a' + 'A' : c);
+ }