added RISC OS module loading support

This commit is contained in:
Stefan Bellon 2002-10-31 16:58:47 +00:00
parent 20c99d180a
commit 7dac918b6d
19 changed files with 395 additions and 133 deletions

View File

@ -1,3 +1,8 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* rndriscos.c (rndriscos_gather_random): Use riscos_load_module()
to load CryptRandom module.
2002-10-12 Werner Koch <wk@gnupg.org>
* rndunix.c (my_popen): Make sure that stdin and stderr are

View File

@ -27,42 +27,18 @@
#include <swis.h>
#include "util.h"
static int init_device(void);
#define CryptRandom_Byte 0x51980
static const char * const path[] = {
static const char * const cryptrandom_path[] = {
"GnuPG:CryptRandom",
"GnuPG:CryptRand",
"System:Modules.CryptRandom"
"System:310.Modules.CryptRandom",
"System:310.Modules.CryptRand",
"System:Modules.CryptRandom",
"System:Modules.CryptRand",
NULL
};
/****************
* Used to load the CryptRandom module if it isn't already loaded
*/
static int
init_device(void)
{
int i;
/* Is CryptRandom already loaded? */
if (!_swix(OS_Module, _INR(0,1), 18, "CryptRandom"))
return 1;
/* Check all the places where the module could be located */
for (i=0; path[i]; ++i)
if (!_swix(OS_Module, _INR(0,1), 1, path[i]))
return 1;
/* Can't find CryptRandom in the default locations */
g10_log_fatal("Can't load module CryptRandom.\n");
return 0; /* never reached, but don't throw a warning */
}
/****************
* Get the random bytes from module
*/
@ -70,12 +46,13 @@ int
rndriscos_gather_random(void (*add)(const void*, size_t, int), int requester,
size_t length, int level)
{
static int initialized = 0;
static int rndriscos_initialized = 0;
int n;
byte buffer[768];
if (!initialized)
initialized = init_device();
if (!rndriscos_initialized)
rndriscos_initialized = riscos_load_module("CryptRandom",
cryptrandom_path, 1);
while (length) {
int nbytes = length < sizeof(buffer) ? length : sizeof(buffer);
@ -87,7 +64,7 @@ rndriscos_gather_random(void (*add)(const void*, size_t, int), int requester,
(*add)(buffer, n, requester);
length -= n;
}
memset(buffer, 0, sizeof(buffer));
wipememory(buffer, sizeof(buffer)); /* burn the buffer */
return 0; /* success */
}

View File

@ -1,3 +1,16 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* compress.c (init_compress) [__riscos__]: Use
riscos_load_module() to load ZLib module.
* g10.c (main) [__riscos__]: Renames due to changes in riscos.c
(e.g. prefixes all RISC OS specific functions with riscos_*).
* photoid.c (show_photos) [__riscos__]: Likewise.
* signal.c (got_fatal_signal) [__riscos__]: Likewise.
* trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
handling.
2002-10-31 David Shaw <dshaw@jabberwocky.com>
* build-packet.c (do_plaintext), encode.c (encode_sesskey,

View File

@ -26,6 +26,9 @@
#include <assert.h>
#include <errno.h>
#include <zlib.h>
#ifdef __riscos__
# include "zlib-riscos.h"
#endif
#include "util.h"
#include "memory.h"
@ -34,13 +37,19 @@
#include "main.h"
#include "options.h"
static void
init_compress( compress_filter_context_t *zfx, z_stream *zs )
{
int rc;
int level;
#ifdef __riscos__
static int zlib_initialized = 0;
if (!zlib_initialized)
zlib_initialized = riscos_load_module("ZLib", zlib_path, 1);
#endif
if( opt.compress >= 0 && opt.compress <= 9 )
level = opt.compress;
else if( opt.compress == -1 )

View File

@ -1349,7 +1349,7 @@ main( int argc, char **argv )
opt.use_agent = 1;
#else /* __riscos__ */
opt.use_agent = 0;
not_implemented("use-agent");
riscos_not_implemented("use-agent");
#endif /* __riscos__ */
break;
case oNoUseAgent: opt.use_agent = 0; break;
@ -1365,7 +1365,7 @@ main( int argc, char **argv )
break;
#ifdef __riscos__
case oStatusFile:
set_status_fd( iobuf_translate_file_handle ( fdopenfile (pargs.r.ret_str, 1), 1) );
set_status_fd( iobuf_translate_file_handle ( riscos_fdopenfile (pargs.r.ret_str, 1), 1) );
break;
#endif /* __riscos__ */
case oAttributeFD:
@ -1373,7 +1373,7 @@ main( int argc, char **argv )
break;
#ifdef __riscos__
case oAttributeFile:
set_attrib_fd(iobuf_translate_file_handle ( fdopenfile (pargs.r.ret_str, 1), 1) );
set_attrib_fd(iobuf_translate_file_handle ( riscos_fdopenfile (pargs.r.ret_str, 1), 1) );
break;
#endif /* __riscos__ */
case oLoggerFD:
@ -1383,7 +1383,7 @@ main( int argc, char **argv )
#ifdef __riscos__
case oLoggerFile:
log_set_logfile( NULL,
iobuf_translate_file_handle ( fdopenfile (pargs.r.ret_str, 1), 1) );
iobuf_translate_file_handle ( riscos_fdopenfile (pargs.r.ret_str, 1), 1) );
break;
#endif /* __riscos__ */
case oWithFingerprint:
@ -1449,7 +1449,7 @@ main( int argc, char **argv )
pargs.r.ret_str);
#endif
#else /* __riscos__ */
not_implemented("load-extension");
riscos_not_implemented("load-extension");
#endif /* __riscos__ */
break;
case oRFC1991:
@ -1497,7 +1497,7 @@ main( int argc, char **argv )
log_error("shared memory coprocessing is not available\n");
# endif
#else /* __riscos__ */
not_implemented("run-as-shm-coprocess");
riscos_not_implemented("run-as-shm-coprocess");
#endif /* __riscos__ */
break;
case oSetFilename: opt.set_filename = pargs.r.ret_str; break;
@ -1556,7 +1556,7 @@ main( int argc, char **argv )
break;
#ifdef __riscos__
case oPasswdFile:
pwfd = iobuf_translate_file_handle ( fdopenfile (pargs.r.ret_str, 0), 0);
pwfd = iobuf_translate_file_handle ( riscos_fdopenfile (pargs.r.ret_str, 0), 0);
break;
#endif /* __riscos__ */
case oCommandFD:
@ -1564,7 +1564,7 @@ main( int argc, char **argv )
break;
#ifdef __riscos__
case oCommandFile:
opt.command_fd = iobuf_translate_file_handle ( fdopenfile (pargs.r.ret_str, 0), 0);
opt.command_fd = iobuf_translate_file_handle ( riscos_fdopenfile (pargs.r.ret_str, 0), 0);
break;
#endif /* __riscos__ */
case oCipherAlgo: def_cipher_string = m_strdup(pargs.r.ret_str); break;
@ -1587,7 +1587,7 @@ main( int argc, char **argv )
#ifndef __riscos__
opt.lock_once = 0;
#else /* __riscos__ */
not_implemented("lock-multiple");
riscos_not_implemented("lock-multiple");
#endif /* __riscos__ */
break;
case oKeyServer:

View File

@ -306,8 +306,8 @@ void show_photos(const struct user_attribute *attrs,
}
#ifdef __riscos__
riscos_set_filetype(spawn->tempfile_in,
image_type_to_string(args.imagetype,2));
riscos_set_filetype_by_mimetype(spawn->tempfile_in,
image_type_to_string(args.imagetype,2));
#endif
m_free(name);

View File

@ -100,7 +100,7 @@ got_fatal_signal( int sig )
init_one_signal (sig, SIG_DFL, 0);
remove_lockfiles ();
#ifdef __riscos__
close_fds ();
riscos_close_fds ();
#endif /* __riscos__ */
raise( sig );
}

View File

@ -1331,6 +1331,8 @@ check_regexp(const char *exp,const char *string)
/* When DISABLE_REGEXP is defined, assume all regexps do not
match. */
return 0;
#elif defined(__riscos__)
return riscos_check_regexp(exp, string, DBG_TRUST);
#else
int ret;
regex_t pat;

View File

@ -1,3 +1,11 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* util.h [__riscos__]: Prefixed all RISC OS prototypes with
riscos_*
* zlib-riscos.h: New. This is macro magic in order to make the
zlib library calls indeed call the RISC OS ZLib module.
2002-10-31 David Shaw <dshaw@jabberwocky.com>
* util.h: Add wipememory() macro.

View File

@ -273,23 +273,25 @@ int vasprintf ( char **result, const char *format, va_list args);
#include <unixlib/features.h>
void riscos_global_defaults(void);
#define RISCOS_GLOBAL_STATICS(a) const char *__dynamic_da_name = (a);
int riscos_load_module(const char *name, const char * const path[], int fatal);
int riscos_get_filetype_from_string(const char *string, int len);
int riscos_get_filetype(const char *filename);
void riscos_set_filetype_by_number(const char *filename, int type);
void riscos_set_filetype(const char *filename, const char *mimetype);
void riscos_set_filetype_by_mimetype(const char *filename, const char *mimetype);
pid_t riscos_getpid(void);
int riscos_kill(pid_t pid, int sig);
int riscos_access(const char *path, int amode);
int riscos_getchar(void);
int fdopenfile(const char *filename, const int allow_write);
void close_fds(void);
int renamefile(const char *old, const char *new);
char *gstrans(const char *old);
char *riscos_make_basename(const char *filepath, const char *inputpath);
void not_implemented(const char *feature);
int riscos_check_regexp(const char *exp, const char *string, int debug);
int riscos_fdopenfile(const char *filename, const int allow_write);
void riscos_close_fds(void);
int riscos_renamefile(const char *old, const char *new);
char *riscos_gstrans(const char *old);
void riscos_not_implemented(const char *feature);
#ifdef DEBUG
void dump_fdlist(void);
void list_openfiles(void);
void riscos_dump_fdlist(void);
void riscos_list_openfiles(void);
#endif
#ifndef __RISCOS__C__
#define getpid riscos_getpid

134
include/zlib-riscos.h Normal file
View File

@ -0,0 +1,134 @@
/* zlib-riscos.h
* Copyright (C) 2002 Free Software Foundation, Inc.
*
* This file is part of GNUPG.
*
* GNUPG is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* GNUPG is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifndef G10_ZLIB_RISCOS_H
#define G10_ZLIB_RISCOS_H
#include <kernel.h>
#include <swis.h>
static const char * const zlib_path[] = {
"System:310.Modules.ZLib",
NULL
};
#define ZLib_Compress 0x53AC0
#define ZLib_Decompress 0x53AC1
#define ZLib_CRC32 0x53AC2
#define ZLib_Adler32 0x53AC3
#define ZLib_Version 0x53AC4
#define ZLib_ZCompress 0x53AC5
#define ZLib_ZCompress2 0x53AC6
#define ZLib_ZUncompress 0x53AC7
#define ZLib_DeflateInit 0x53AC8
#define ZLib_InflateInit 0x53AC9
#define ZLib_DeflateInit2 0x53ACA
#define ZLib_InflateInit2 0x53ACB
#define ZLib_Deflate 0x53ACC
#define ZLib_DeflateEnd 0x53ACD
#define ZLib_Inflate 0x53ACE
#define ZLib_InflateEnd 0x53ACF
#define ZLib_DeflateSetDictionary 0x53AD0
#define ZLib_DeflateCopy 0x53AD1
#define ZLib_DeflateReset 0x53AD2
#define ZLib_DeflateParams 0x53AD3
#define ZLib_InflateSetDictionary 0x53AD4
#define ZLib_InflateSync 0x53AD5
#define ZLib_InflateReset 0x53AD6
#define ZLib_GZOpen 0x53AD7
#define ZLib_GZRead 0x53AD8
#define ZLib_GRWrite 0x53AD9
#define ZLib_GZFlush 0x53ADA
#define ZLib_GZClose 0x53ADB
#define ZLib_GZError 0x53ADC
#define ZLib_GZSeek 0x53ADD
#define ZLib_GZTell 0x53ADE
#define ZLib_GZEOF 0x53ADF
#define ZLib_TaskAssociate 0x53AE0
#define crc32(r0,r1,r2) \
_swi(ZLib_CRC32, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define adler32(r0,r1,r2) \
_swi(ZLib_Adler32, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define zlibVersion() \
_swi(ZLib_Version, _RETURN(0))
#define compress(r0,r1,r2,r3) \
_swi(ZLib_ZCompress, _INR(0,3) | _RETURN(0)|_OUT(1), r0,r1,r2,r3, &r1)
#define compress2(r0,r1,r2,r3,r4) \
_swi(ZLib_ZCompress2, _INR(0,4) | _RETURN(0)|_OUT(1), r0,r1,r2,r3,r4, &r1)
#define uncompress(r0,r1,r2,r3) \
_swi(ZLib_ZUncompress, _INR(0,3) | _RETURN(0)|_OUT(1), r0,r1,r2,r3, &r1)
#define deflateInit_(r0,r1,r2,r3) \
_swi(ZLib_DeflateInit, _INR(0,3) | _RETURN(0), r0,r1,r2,r3)
#define inflateInit_(r0,r1,r2) \
_swi(ZLib_InflateInit, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define deflateInit2_(r0,r1,r2,r3,r4,r5,r6,r7) \
_swi(ZLib_DeflateInit2, _INR(0,7) | _RETURN(0), r0,r1,r2,r3,r4,r5,r6,r7)
#define inflateInit2_(r0,r1,r2,r3) \
_swi(ZLib_InflateInit2, _INR(0,3) | _RETURN(0), r0,r1,r2,r3)
#define deflate(r0,r1) \
_swi(ZLib_Deflate, _INR(0,1) | _RETURN(0), r0,r1)
#define deflateEnd(r0) \
_swi(ZLib_DeflateEnd, _IN(0) | _RETURN(0), r0)
#define inflate(r0,r1) \
_swi(ZLib_Inflate, _INR(0,1) | _RETURN(0), r0,r1)
#define inflateEnd(r0) \
_swi(ZLib_InflateEnd, _IN(0) | _RETURN(0), r0)
#define deflateSetDictionary(r0,r1,r2) \
_swi(ZLib_DeflateSetDictionary, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define deflateCopy(r0,r1) \
_swi(ZLib_DeflateCopy, _INR(0,1) | _RETURN(0), r0,r1)
#define deflateReset(r0) \
_swi(ZLib_DeflateReset, _IN(0) | _RETURN(0), r0)
#define deflateParams(r0,r1,r2) \
_swi(ZLib_DeflateParams, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define inflateSetDictionary(r0,r1,r2) \
_swi(ZLib_InflateSetDictionary, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define inflateSync(r0) \
_swi(ZLib_InflateSync, _IN(0) | _RETURN(0), r0)
#define inflateReset(r0) \
_swi(ZLib_InflateReset, _IN(0) | _RETURN(0), r0)
#define gzopen(r0,r1) \
_swi(ZLib_GZOpen, _INR(0,1) | _RETURN(0), r0)
#define gzdopen(r0,r1) BUG()
#define gzsetparams(r0,r1,r2) BUG()
#define gzread(r0,r1,r2) \
_swi(ZLib_GZRead, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define gzwrite(r0,r1,r2) \
_swi(ZLib_GZWrite, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define gzprintf(r0,r1,...) BUG()
#define gzputs(r0,r1) BUG()
#define gzgets(r0,r1,r2) BUG()
#define gzputc(r0,r1) BUG()
#define gzgetc(r0) BUG()
#define gzflush(r0,r1) \
_swi(ZLib_GZFlush, _INR(0,1) | _RETURN(0), r0,r1)
#define gzclose(r0) \
_swi(ZLib_GZClose, _IN(0) | _RETURN(0), r0)
#define gzerror(r0,r1) \
_swi(ZLib_GZError, _IN(0) | _RETURN(0)|_OUT(1), r0, &r1)
#define gzseek(r0,r1,r2) \
_swi(ZLib_GZSeek, _INR(0,2) | _RETURN(0), r0,r1,r2)
#define gzrewind(r0) BUG()
#define gztell(r0) \
_swi(ZLib_GZTell, _IN(0) | _RETURN(0), r0)
#define gzeof(r0) \
_swi(ZLib_GZEOF, _IN(0) | _RETURN(0), r0)
#endif /* G10_ZLIB_RISCOS_H */

View File

@ -1,3 +1,7 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/Makefile: Updated to reflect latest changes.
2002-10-28 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h: Updated to reflect latest changes.

View File

@ -1,13 +1,26 @@
# Makefile for the RISC OS version of GnuPG
CC=cc
LINK=link
AR=libfile
AS=objasm
MAKE=amu
DEPEND=-depend !Depend
LIBLDAP=^.^.openldap-2/0/18
CC_FLAGS=-Wpc -apcs 3/26bit/fpe2 -throwback -Otime -IUnix:,include,mpi,intl,zlib,$(LIBLDAP).include -JUnix: -D__riscos__ -DHAVE_CONFIG_H -DNO_ASM -UIS_MODULE -DVERSION="\"$(GnuPG$Version)\"" $(GnuPG$DevDefine)
# 26-bit configuration
CC_FLAGS=-Wpc -zo -fw -apcs 3/26bit/fpe2 -throwback -Otime -IUnix:,include,mpi,intl,util,zlib,$(LIBLDAP).include,^.^.regex-0/12 -JUnix: -D__riscos__ -DHAVE_CONFIG_H -DNO_ASM -UIS_MODULE -DVERSION="\"$(GnuPG$Version)\"" $(GnuPG$DevDefine)
AR_FLAGS=
AS_FLAGS=-apcs 3/26bit -throwback -predefine "ARMv4 SETA 0"
LD_FLAGS=Unix:o.unixlib
LD_FLAGS=
UNIXLIB=Unix:o.UnixLib
# 32-bit configuration (not yet fully working!)
#CC_FLAGS=-Wpc -zo -fw -apcs 3/32bit/fpe3 -throwback -Otime -IUnix:,include,mpi,intl,util,zlib,$(LIBLDAP).include,^.^.regex-0/12 -JUnix: -D__riscos__ -DHAVE_CONFIG_H -DNO_ASM -UIS_MODULE -DVERSION="\"$(GnuPG$Version)\"" $(GnuPG$DevDefine)
#AR_FLAGS=
#AS_FLAGS=-apcs 3/32bit -throwback -predefine "ARMv4 SETA 0"
#LD_FLAGS=
#UNIXLIB=Unix:o.UnixLib32
CIPHER_OBJS=cipher.o.blowfish \
cipher.o.cast5 \
cipher.o.cipher \
@ -31,7 +44,10 @@ CIPHER_OBJS=cipher.o.blowfish \
cipher.o.twofish
GETTEXT_OBJS=intl.o.bindtextdom \
intl.o.dcgettext \
intl.o.dcigettext \
intl.o.dcngettext \
intl.o.dgettext \
intl.o.dngettext \
intl.o.explodename \
intl.o.finddomain \
intl.o.gettext \
@ -39,6 +55,8 @@ GETTEXT_OBJS=intl.o.bindtextdom \
intl.o.l10nflist \
intl.o.loadmsgcat \
intl.o.localealias \
intl.o.ngettext \
intl.o.plural \
intl.o.textdomain
MPI_OBJS=mpi.o.mpi-add \
mpi.o.mpi-bit \
@ -71,19 +89,6 @@ UTIL_OBJS=util.o.argparse \
util.o.strgutil \
util.o.ttyio \
util.o.riscos
ZLIB_OBJS=zlib.o.adler32 \
zlib.o.compress \
zlib.o.crc32 \
zlib.o.deflate \
zlib.o.infblock \
zlib.o.infcodes \
zlib.o.inffast \
zlib.o.inflate \
zlib.o.inftrees \
zlib.o.infutil \
zlib.o.trees \
zlib.o.uncompr \
zlib.o.zutil
G10_OBJS=g10.o.armor \
g10.o.build-packet \
g10.o.cipher \
@ -97,10 +102,8 @@ G10_OBJS=g10.o.armor \
g10.o.exec \
g10.o.export \
g10.o.free-packet \
g10.o.g10 \
g10.o.getkey \
g10.o.helptext \
g10.o.hkp \
g10.o.import \
g10.o.kbnode \
g10.o.keydb \
@ -180,13 +183,8 @@ GPGV_OBJS=g10.o.armor \
cipher.o.rsa \
cipher.o.sha1 \
cipher.o.tiger32 \
mpi.mpi \
zlib.zlib
GPGKEYS_OBJS=util.o.riscos \
util.o.strgutil \
util.o.memory \
util.o.logger \
util.o.secmem \
mpi.mpi
GPGKEYS_OBJS=util.util \
intl.gettext
## Rule Patterns ##
@ -208,45 +206,52 @@ all:
@echo All other targets are internal and shouldn't be used!
cipher.cipher: $(CIPHER_OBJS)
$(LINK) -aof $(CIPHER_OBJS) -o cipher.cipher
$(AR) $(AR_FLAGS) -c -o cipher.cipher $(CIPHER_OBJS)
intl.gettext: $(GETTEXT_OBJS)
$(LINK) -aof $(GETTEXT_OBJS) -o intl.gettext
$(AR) $(AR_FLAGS) -c -o intl.gettext $(GETTEXT_OBJS)
mpi.mpi: $(MPI_OBJS)
$(LINK) -aof $(MPI_OBJS) -o mpi.mpi
$(AR) $(AR_FLAGS) -c -o mpi.mpi $(MPI_OBJS)
tools.gpgsplit: tools.o.gpgsplit util.util intl.gettext zlib.zlib
$(LINK) $(LD_FLAGS) tools.o.gpgsplit util.util intl.gettext zlib.zlib -o tools.gpgsplit
tools.gpgsplit: tools.o.gpgsplit util.util intl.gettext
$(LINK) $(LD_FLAGS) -o tools.gpgsplit tools.o.gpgsplit util.util intl.gettext $(UNIXLIB)
-squeeze tools.gpgsplit
-copy tools.gpgsplit ADFS::A5.$.tmp.!GnuPG.gpgsplit ~CF~V
keyserver.gpgkeys_ldap: keyserver.o.gpgkeys_ldap $(GPGKEYS_OBJS) $(LIBLDAP).libraries.libldap.libldap
$(LINK) $(LD_FLAGS) keyserver.o.gpgkeys_ldap $(GPGKEYS_OBJS) $(LIBLDAP).libraries.libldap.libldap -o keyserver.gpgkeys_ldap
$(LINK) $(LD_FLAGS) -o keyserver.gpgkeys_ldap keyserver.o.gpgkeys_ldap $(GPGKEYS_OBJS) $(LIBLDAP).libraries.libldap.libldap $(UNIXLIB)
-squeeze keyserver.gpgkeys_ldap
-copy keyserver.gpgkeys_ldap ADFS::A5.$.tmp.!GnuPG.gpgkeys_ldap ~CF~V
keyserver.gpgkeys_hkp: keyserver.o.gpgkeys_hkp $(GPGKEYS_OBJS)
$(LINK) $(LD_FLAGS) -o keyserver.gpgkeys_hkp keyserver.o.gpgkeys_hkp $(GPGKEYS_OBJS) $(UNIXLIB)
-squeeze keyserver.gpgkeys_hkp
-copy keyserver.gpgkeys_hkp ADFS::A5.$.tmp.!GnuPG.gpgkeys_hkp ~CF~V
riscos.jpegview.jpegview:
-dir riscos.jpegview
-$(MAKE)
-back
util.util: $(UTIL_OBJS)
$(LINK) -aof $(UTIL_OBJS) -o util.util
$(AR) $(AR_FLAGS) -c -o util.util $(UTIL_OBJS)
zlib.zlib: $(ZLIB_OBJS)
$(LINK) -aof zlib.o.* -o zlib.zlib
g10.gpg: $(G10_OBJS) cipher.o.idea cipher.cipher intl.gettext mpi.mpi util.util zlib.zlib BUILD
$(LINK) $(G10_OBJS) $(LD_FLAGS) cipher.o.idea cipher.cipher intl.gettext mpi.mpi util.util zlib.zlib -o g10.gpg
g10.gpg: g10.o.g10 $(G10_OBJS) cipher.o.idea cipher.cipher intl.gettext mpi.mpi util.util BUILD
$(LINK) $(LD_FLAGS) -o g10.gpg g10.o.g10 $(G10_OBJS) cipher.o.idea cipher.cipher intl.gettext mpi.mpi util.util $(UNIXLIB)
-copy g10.gpg ADFS::A5.$.tmp.!GnuPG.gpg ~CFR~V
g10.gpgv: $(GPGV_OBJS) intl.gettext BUILD
$(LINK) $(GPGV_OBJS) intl.gettext $(LD_FLAGS) -o g10.gpgv
$(LINK) $(LD_FLAGS) -o g10.gpgv $(GPGV_OBJS) intl.gettext $(UNIXLIB)
-copy g10.gpgv ADFS::A5.$.tmp.!GnuPG.gpgv ~CFR~V
g10.gpgpart: $(G10_OBJS) cipher.cipher intl.gettext mpi.mpi util.util zlib.zlib BUILD
drlink034 -aof $(G10_OBJS) $(LD_FLAGS) cipher.cipher intl.gettext mpi.mpi util.util zlib.zlib -o g10.gpgpart
g10.gpgpart: $(G10_OBJS) BUILD
copy $(UNIXLIB) g10.gpgpart ~CF~V
$(AR) $(AR_FLAGS) -i g10.gpgpart $(CIPHER_OBJS)
$(AR) $(AR_FLAGS) -i g10.gpgpart $(GETTEXT_OBJS)
$(AR) $(AR_FLAGS) -i g10.gpgpart $(MPI_OBJS)
$(AR) $(AR_FLAGS) -i g10.gpgpart $(UTIL_OBJS)
$(AR) $(AR_FLAGS) -i g10.gpgpart $(G10_OBJS)
select-idea-src:
-copy distrib.idea-addon.cipher.c.idea cipher.c.idea ~CF~NR~V
@ -259,7 +264,7 @@ select-gpl-src:
distrib.gnupgsrc/zip: select-gpl-src
-zip -9@ distrib.gnupgsrc/zip < distrib.resources.distfiles
distrib.gnupg/zip: distrib.gpl-bin.!GnuPG.JPEGview distrib.gpl-bin.!GnuPG.gpgsplit distrib.gpl-bin.!GnuPG.gpg distrib.gpl-bin.!GnuPG.gpgv select-gpl-src
distrib.gnupg/zip: distrib.gpl-bin.!GnuPG.JPEGview distrib.gpl-bin.!GnuPG.gpgsplit distrib.private.!GnuPG.gpgkeys_hkp distrib.gpl-bin.!GnuPG.gpg distrib.gpl-bin.!GnuPG.gpgv select-gpl-src
-copy distrib.resources.History distrib.gpl-bin.History ~CFR~V
-copy distrib.resources.Upgrading distrib.gpl-bin.Upgrading ~CFR~V
-copy distrib.resources.ReadMe_bin distrib.gpl-bin.!ReadMe1st ~CFR~V
@ -271,7 +276,7 @@ distrib.gnupg/zip: distrib.gpl-bin.!GnuPG.JPEGview distrib.gpl-bin.!GnuPG.gpgspl
-zip -r9 ^.gnupg/zip *
-back
distrib.gnupgdev/zip: distrib.private.!GnuPG.JPEGview distrib.private.!GnuPG.gpgsplit distrib.private.!GnuPG.gpgkeys_ldap distrib.private.!GnuPG.gpg distrib.private.!GnuPG.gpgv select-idea-src
distrib.gnupgdev/zip: distrib.private.!GnuPG.JPEGview distrib.private.!GnuPG.gpgsplit distrib.private.!GnuPG.gpgkeys_ldap distrib.private.!GnuPG.gpgkeys_hkp distrib.private.!GnuPG.gpg distrib.private.!GnuPG.gpgv select-idea-src
-ifthere distrib.private.!GnuPG.locale then wipe distrib.private.!GnuPG.locale ~CFR~V
-copy distrib.intl.!GnuPG.locale distrib.private.!GnuPG.locale ~CFR~V
-copy distrib.resources.History distrib.private.History ~CFR~V
@ -292,9 +297,10 @@ distrib.gnupgidea/zip: cipher.o.idea select-idea-src
-zip -r9 ^.gnupgidea/zip *
-back
distrib.gnupgpart/zip: g10.gpgpart select-idea-src
distrib.gnupgpart/zip: g10.o.g10 g10.gpgpart select-idea-src
-copy distrib.resources.ReadMe_part distrib.part.!ReadMe1st ~CFR~V
-copy g10.gpgpart distrib.part.g10.gpgpart ~CFR~V
-copy g10.o.g10 distrib.part.g10.g10 ~CFR~V
-dir distrib.part
-zip -r9 ^.gnupgpart/zip *
-back
@ -323,6 +329,10 @@ distrib.gpl-bin.!GnuPG.gpgsplit: tools.gpgsplit
-copy tools.gpgsplit distrib.gpl-bin.!GnuPG.gpgsplit ~CFR~V
-squeeze distrib.gpl-bin.!GnuPG.gpgsplit
distrib.gpl-bin.!GnuPG.gpgkeys_hkp: keyserver.gpgkeys_hkp
-copy keyserver.gpgkeys_hkp distrib.gpl-bin.!GnuPG.gpgkeys_hkp ~CFR~V
-squeeze distrib.gpl-bin.!GnuPG.gpgkeys_hkp
distrib.gpl-bin.!GnuPG.JPEGview: riscos.jpegview.jpegview
-copy riscos.jpegview.jpegview distrib.gpl-bin.!GnuPG.JPEGview ~CFR~V
@ -342,6 +352,10 @@ distrib.private.!GnuPG.gpgkeys_ldap: keyserver.gpgkeys_ldap
-copy keyserver.gpgkeys_ldap distrib.private.!GnuPG.gpgkeys_ldap ~CFR~V
-squeeze distrib.private.!GnuPG.gpgkeys_ldap
distrib.private.!GnuPG.gpgkeys_hkp: keyserver.gpgkeys_hkp
-copy keyserver.gpgkeys_hkp distrib.private.!GnuPG.gpgkeys_hkp ~CFR~V
-squeeze distrib.private.!GnuPG.gpgkeys_hkp
distrib.private.!GnuPG.JPEGview: riscos.jpegview.jpegview
-copy riscos.jpegview.jpegview distrib.private.!GnuPG.JPEGview ~CFR~V
@ -362,10 +376,6 @@ clean-util:
-ifthere util.o.* then wipe util.o.* ~CFR~V
-ifthere util.util then wipe util.util ~CFR~V
clean-zlib:
-ifthere zlib.o.* then wipe zlib.o.* ~CFR~V
-ifthere zlib.zlib then wipe zlib.zlib ~CFR~V
clean-dist:
-ifthere distrib.*/zip then wipe distrib.*/zip ~CFR~V
@ -377,6 +387,7 @@ clean-g10:
clean-keyserver:
-ifthere keyserver.gpgkeys_ldap then wipe keyserver.gpgkeys_ldap ~CFR~V
-ifthere keyserver.gpgkeys_hkp then wipe keyserver.gpgkeys_hkp ~CFR~V
-ifthere keyserver.o.* then wipe keyserver.o.* ~CFR~V
clean-tools:
@ -392,12 +403,12 @@ clean-version:
-ifthere g10.o.g10 then wipe g10.o.g10 ~CFR~V
-ifthere g10.o.gpgv then wipe g10.o.gpgv ~CFR~V
-ifthere g10.o.keygen then wipe g10.o.keygen ~CFR~V
-ifthere g10.o.sign then wipe g10.o.sign ~CFR~V
-ifthere g10.o.keyserver then wipe g10.o.keyserver ~CFR~V
-ifthere g10.gpg then wipe g10.gpg ~CFR~V
-ifthere g10.gpgv then wipe g10.gpgv ~CFR~V
-ifthere g10.gpgpart then wipe g10.gpgpart ~CFR~V
clean: clean-dist clean-cipher clean-intl clean-mpi clean-util clean-zlib clean-g10 clean-keyserver clean-tools clean-riscos
clean: clean-dist clean-cipher clean-intl clean-mpi clean-util clean-g10 clean-keyserver clean-tools clean-riscos
g10.o.armor: BUILD
$(CC) $(CC_FLAGS) $(DEPEND) -c -o g10.o.armor g10.c.armor
@ -414,8 +425,8 @@ g10.o.gpgv: BUILD
g10.o.keygen: BUILD
$(CC) $(CC_FLAGS) $(DEPEND) -c -o g10.o.keygen g10.c.keygen
g10.o.sign: BUILD
$(CC) $(CC_FLAGS) $(DEPEND) -c -o g10.o.sign g10.c.sign
g10.o.keyserver: BUILD
$(CC) $(CC_FLAGS) $(DEPEND) -c -o g10.o.keyserver g10.c.keyserver
dev: clean-version
$(MAKE) fast-dev

View File

@ -1,3 +1,8 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* gpgsplit.c (write_part) [__riscos__]: Use riscos_load_module()
to load ZLib module.
2002-10-23 Werner Koch <wk@gnupg.org>
* gpgsplit.c: New options --secret-to-public and --no-split.

View File

@ -35,6 +35,7 @@
#endif
#include <zlib.h>
#ifdef __riscos__
# include "zlib-riscos.h"
# include <unixlib/local.h>
#endif /* __riscos__ */
@ -376,6 +377,12 @@ write_part ( const char *fname, FILE *fpin, unsigned long pktlen,
unsigned char *p;
const char *outname = create_filename (pkttype);
#ifdef __riscos__
static int initialized = 0;
if (!initialized)
initialized = riscos_load_module("ZLib", zlib_path, 1);
#endif
if (opt_no_split)
fpout = stdout;
else

View File

@ -1,3 +1,13 @@
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* riscos.c (riscos_load_module, riscos_check_regexp): New.
(riscos_set_filetype_by_mimetype, riscos_dump_fdlist)
(riscos_fdopenfile, riscos_close_fds, riscos_renamefile)
(riscos_gstrans, riscos_list_openfiles, riscos_not_implemented):
Renamed functions to contain riscos prefix.
* dotlock.c [__riscos__]: Renames due to changes in riscos.c.
* fileutil.c [__riscos__]: Likewise.
2002-10-29 Stefan Bellon <sbellon@sbellon.de>
* fileutil.c: Removed unnecessary left-over includes for RISC OS.

View File

@ -246,7 +246,7 @@ make_dotlock( DOTLOCK h, long timeout )
return -1;
}
#else /* __riscos__ */
if( !renamefile(h->tname, h->lockname) ) {
if( !riscos_renamefile(h->tname, h->lockname) ) {
h->locked = 1;
return 0; /* okay */
}
@ -340,7 +340,7 @@ release_dotlock( DOTLOCK h )
return -1;
}
#else /* __riscos__ */
if( renamefile(h->lockname, h->tname) ) {
if( riscos_renamefile(h->lockname, h->tname) ) {
log_error( "release_dotlock: error renaming lockfile `%s' to `%s'",
h->lockname, h->tname);
return -1;

View File

@ -124,7 +124,7 @@ make_filename( const char *first_part, ... )
#ifndef __riscos__
return name;
#else /* __riscos__ */
p = gstrans(name);
p = riscos_gstrans(name);
m_free(name);
return p;
#endif /* __riscos__ */
@ -147,8 +147,8 @@ compare_filenames( const char *a, const char *b )
int c = 0;
char *abuf, *bbuf;
abuf = gstrans(a);
bbuf = gstrans(b);
abuf = riscos_gstrans(a);
bbuf = riscos_gstrans(b);
c = ascii_strcasecmp (abuf, bbuf);

View File

@ -23,9 +23,7 @@
#include <config.h>
#include <stdlib.h>
#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
@ -35,8 +33,7 @@
#include "memory.h"
#define __UNIXLIB_INTERNALS
#include <unixlib/unix.h>
#include <unixlib/swiparams.h>
#include <unixlib/swiparams.h> /* needed for MMM_TYPE_* definitions */
#undef __UNIXLIB_INTERNALS
@ -47,7 +44,7 @@ struct fds_item {
struct fds_item *next;
};
static struct fds_item *fds_list = NULL;
static int initialized = 0;
static int fdlist_initialized = 0;
/* local RISC OS functions */
@ -59,10 +56,10 @@ is_read_only(const char *filename)
if (_swix(OS_File, _INR(0,1) | _OUT(0) | _OUT(5),
17, filename, &type, &attr))
log_fatal("Can't get file attributes for %s!\n", filename);
log_fatal("Can't get file attributes for file \"%s\"!\n", filename);
if (type == 0)
log_fatal("Can't find file %s!\n", filename);
log_fatal("Can't find file \"%s\"!\n", filename);
if (_swix(OS_File, _INR(0,1) | _IN(5), 4, filename, attr))
return 1;
@ -79,6 +76,30 @@ riscos_global_defaults(void)
__feature_imagefs_is_file = 1;
}
int
riscos_load_module(const char *name, const char * const path[], int fatal)
{
int i;
/* Is module already loaded? */
if (!_swix(OS_Module, _INR(0,1), 18, name))
return 1;
/* Check all the places where the module could be located */
for (i=0; path[i]; ++i)
if (!_swix(OS_Module, _INR(0,1), 1, path[i]))
return 1;
/* Can't find module in the default locations */
if (fatal)
log_fatal("Operation cannot be performed without \"%s\" module!\n",
name);
else
log_info("Can't load \"%s\" module, continuing anyway!\n", name);
return 0;
}
int
riscos_get_filetype_from_string(const char *string, int len)
{
@ -98,7 +119,7 @@ riscos_get_filetype(const char *filename)
int result;
if (_swix(OS_File, _INR(0,1) | _OUT(6), 23, filename, &result))
log_fatal("Can't get filetype for file %s!\n", filename);
log_fatal("Can't get filetype for file \"%s\"!\n", filename);
return result;
}
@ -107,18 +128,18 @@ void
riscos_set_filetype_by_number(const char *filename, int type)
{
if (_swix(OS_File, _INR(0,2), 18, filename, type))
log_fatal("Can't set filetype for file %s!\n"
log_fatal("Can't set filetype for file \"%s\"!\n"
"Is the file on a read-only file system?\n", filename);
}
void
riscos_set_filetype(const char *filename, const char *mimetype)
riscos_set_filetype_by_mimetype(const char *filename, const char *mimetype)
{
int result;
if (_swix(MimeMap_Translate, _INR(0,2) | _OUT(3),
MMM_TYPE_MIME, mimetype, MMM_TYPE_RISCOS, &result))
log_fatal("Can't translate MIME type %s!\n", mimetype);
log_fatal("Can't translate MIME type \"%s\"!\n", mimetype);
riscos_set_filetype_by_number(filename, result);
}
@ -133,7 +154,8 @@ riscos_getpid(void)
if (state)
if (_swix(Wimp_ReadSysInfo, _IN(0) | _OUT(0), 5, &state))
log_fatal("Wimp_ReadSysInfo failed: Can't get task handle (R0=5)!\n");
log_fatal("Wimp_ReadSysInfo failed: "
"Can't get task handle (R0=5)!\n");
return (pid_t) state;
}
@ -181,7 +203,7 @@ riscos_getchar(void)
#ifdef DEBUG
void
dump_fdlist(void)
riscos_dump_fdlist(void)
{
struct fds_item *iter = fds_list;
printf("List of open file descriptors:\n");
@ -193,7 +215,7 @@ dump_fdlist(void)
#endif /* DEBUG */
int
fdopenfile(const char *filename, const int allow_write)
riscos_fdopenfile(const char *filename, const int allow_write)
{
struct fds_item *h;
int fd;
@ -202,11 +224,12 @@ fdopenfile(const char *filename, const int allow_write)
else
fd = open(filename, O_RDONLY);
if (fd == -1)
log_error("Can't open file %s: %i, %s!\n", filename, errno, strerror(errno));
log_error("Can't open file \"%s\": %i, %s!\n",
filename, errno, strerror(errno));
if (!initialized) {
atexit (close_fds);
initialized = 1;
if (!fdlist_initialized) {
atexit (riscos_close_fds);
fdlist_initialized = 1;
}
h = fds_list;
@ -220,7 +243,7 @@ fdopenfile(const char *filename, const int allow_write)
}
void
close_fds(void)
riscos_close_fds(void)
{
FILE *fp;
struct fds_item *h = fds_list;
@ -236,7 +259,7 @@ close_fds(void)
}
int
renamefile(const char *old, const char *new)
riscos_renamefile(const char *old, const char *new)
{
_kernel_oserror *e;
@ -252,7 +275,7 @@ renamefile(const char *old, const char *new)
}
char *
gstrans(const char *old)
riscos_gstrans(const char *old)
{
int size = 256, last;
char *buf, *tmp;
@ -284,7 +307,7 @@ gstrans(const char *old)
char *
riscos_make_basename(const char *filepath, const char *realfname)
{
char *p = (char*)filepath-1, *result;
char *result, *p = (char*)filepath-1;
int i, filetype;
if ( !(p=strrchr(filepath, DIRSEP_C)) )
@ -311,9 +334,61 @@ riscos_make_basename(const char *filepath, const char *realfname)
return result;
}
#define RegEx_CompilePattern 0x52AC0
#define RegEx_Search 0x52AC2
#define RegEx_Free 0x52AC7
#define RegEx_CompileExtendedPattern 0x52AC9
static const char * const regex_path[] = {
"GnuPG:RegEx",
"System:310.Modules.RegEx",
"System:Modules.RegEx",
NULL
};
int
riscos_check_regexp(const char *exp, const char *string, int debug)
{
static int regex_initialized = 0;
int ret;
char *buf;
if (!regex_initialized)
regex_initialized = riscos_load_module("RegEx", regex_path, 0);
if (!regex_initialized) {
log_info("Regular expressions cannot be used!\n");
return 0;
}
if (_swix(RegEx_CompileExtendedPattern, _INR(0,2) | _OUT(0) | _OUT(3),
0, exp, 1<<18,
&buf, &ret)) {
log_info("RegEx could not compile pattern \"%s\".\n", exp);
log_info("ErrorCode = %i\n", ret);
return 0;
}
if (_swix(RegEx_Search, _INR(0,4) | _OUT(5),
buf, string, -1, 0, -1,
&ret)) {
log_info("RegEx error during execution of serach pattern \"%s\"\n",
exp);
log_info("on string \"%s\"\n", string);
return 0;
}
_swix(RegEx_Free, _IN(0), buf);
if(debug)
log_debug("regexp \"%s\" on \"%s\": %s\n",exp,string,ret>=0?"YES":"NO");
return (ret>=0);
}
#ifdef DEBUG
void
list_openfiles(void)
riscos_list_openfiles(void)
{
char *name;
int i, len;
@ -345,7 +420,7 @@ list_openfiles(void)
#endif
void
not_implemented(const char *feature)
riscos_not_implemented(const char *feature)
{
log_info("%s is not implemented in the RISC OS version!\n", feature);
}