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); + }