See ChangeLog: Wed Aug 4 10:34:46 CEST 1999 Werner Koch

This commit is contained in:
Werner Koch 1999-08-04 08:45:27 +00:00
parent a5a8312251
commit 28c861268d
31 changed files with 2354 additions and 1606 deletions

View File

@ -1,13 +1,16 @@
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
Wed Aug 4 10:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* VERSION: Set to 0.9.10.
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): remove init of ac_cv_...
* Makefile.am (DISCLEANFILES): New
Fri Jul 23 13:53:03 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* VERSION: Set to 0.9.9.
* configure.in: Print a notice when rndunix is used.

5
NEWS
View File

@ -1,4 +1,9 @@
Noteworthy changes in version 0.9.10
------------------------------------
* Some strange new options to help pgpgpg
* Cleaned up the dox a bit.
Noteworthy changes in version 0.9.9

150
README
View File

@ -2,7 +2,7 @@
GnuPG - The GNU Privacy Guard
-------------------------------
Version 0.9.9
Version 0.9.10
GnuPG is now in Beta test and you should report all bugs to the
mailing list (see below). The 0.9.x versions are released mainly
@ -12,28 +12,6 @@
GnuPG works best on GNU/Linux or *BSD. Other Unices are
also supported but are not as well tested as the Free Unices.
Please verify the tar file with the PGP2 or OpenPGP
signatures provided. My PGP2 key is well known and published in
the "Global Trust Register for 1998", ISBN 0-9532397-0-5.
I have included my pubring as "g10/pubring.asc", which contains
the key used to make GnuPG signatures:
"pub 1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
"Key fingerprint = 6BD9 050F D8FC 941B 4341 2DCC 68B7 AB89 5754 8DCD"
You may want to add this DSA key to your GnuPG pubring and use it in
the future to verify new releases. Because you verified this README
file and _checked_that_it_is_really_my PGP2 key 0C9857A5, you can be
quite sure that the above fingerprint is correct.
Please subscribe to announce@gnupg.org by sending a mail with
a subject of "subscribe" to "announce-request@gnupg.org". If you
have problems, please subscribe to "gnupg-users@gnupg.org" by sending
mail with the subject "subscribe" to "gnupg-users-request@gnupg.org"
and ask there. The gnupg.org domain is hosted in Germany to avoid
possible legal problems (technical advices may count as a violation
of ITAR).
See the file COPYING for copyright and warranty information.
@ -62,23 +40,99 @@
Here is a quick summary:
1) "./configure"
1) Check that you have unmodified sources. The below on how to do this.
Don't skip it - this is an important step!
2) "make"
2) Unpack the TAR. With GNU tar you can do it this way:
"tar xzvf gnupg-x.y.z.tar.gz"
3) "make install"
3) "cd gnupg-x.y.z"
4) You end up with a "gpg" binary in /usr/local/bin.
Note: Because some programs rely on the existence of a
4) "./configure"
5) "make"
6) "make install"
7) You end up with a "gpg" binary in /usr/local/bin.
Note: Because some old programs rely on the existence of a
binary named "gpgm"; you should install a symbolic link
from gpgm to gpg:
$ cd /usr/local/bin; ln -s gpg gpgm
"cd /usr/local/bin; ln -s gpg gpgm"
5) To avoid swapping out of sensitive data, you can install "gpg" as
8) To avoid swapping out of sensitive data, you can install "gpg" as
suid root. If you don't do so, you may want to add the option
"no-secmem-warning" to ~/.gnupg/options
How to Verify the Source
------------------------
In order to check that the version of GnuPG which you are going to
install is an original and unmodified one, you can do it in one of
the following ways:
a) If you already have a trusted Version of GnuPG installed, you
can simply check the supplied signature:
$ gpg --verify gnupg-x.y.z.tar.gz.asc
This checks that the detached signature gnupg-x.y.z.tar.gz.asc
is indeed a a signature of gnupg-x.y.z.tar.gz. The key used to
create this signature is:
"pub 1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
If you do not have this key, you can get it from the source in
the file g10/pubring.asc (use "gpg --import g10/pubring.gpg" to
add it to the keyring) or from any keyserver. You have to make
sure that this is really the key and not a faked one. You can do
this by comparing the output of:
$ gpg --fingerprint 0x57548DCD
with the elsewhere published fingerprint, or - if you are able to
_positively_ verify the signature of this README file - with
this fingerprint: "6BD9 050F D8FC 941B 4341 2DCC 68B7 AB89 5754 8DCD"
Please note, that you have to use an old version of GnuPG to
do all this stuff. *Never* use the version which you are going
to check!
b) If you have a trusted Version of PGP 2 or 5 installed, you
can check the supplied PGP 2 signature:
$ pgp gnupg-x.y.z.tar.gz.sig gnupg-x.y.z.tar.gz
This checks that the detached signature gnupg-x.y.z.tar.gz.sig
is indeed a a signature of gnupg-x.y.z.tar.gz. Please note,
that this signature has been created with a RSA signature and
you probably can't use this method (due to legal reasons) when
you are in the U.S. The key used to create this signature is
the same as the one used to sign this README file. It should be
available at the keyservers and is also included in the source
of GnuPG in g10/pubring.asc.
"pub 768R/0C9857A5 1995-09-30 Werner Koch <werner.koch@guug.de>"
The finperprint of this key is published in printed form in the
"Global Trust Register for 1998", ISBN 0-9532397-0-5.
c) If you don't have any of the above programs, you have to verify
the MD5 checksum:
$ md5sum gnupg-x.y.z.tar.gz.sig
This should yield an output similar to this:
fd9351b26b3189c1d577f0970f9dcadc gnupg-x.y.z.tar.gz
Now check that this checksum is _exactly_ the same as the one
published via the anouncement list and probably via Usenet.
Introduction
------------
@ -409,15 +463,15 @@
inner structure of a encrypted packet. This command should list all
kinds of rfc2440 messages.
gpgm --list-trustdb
gpg --list-trustdb
List the contents of the trust DB in a human readable format
gpgm --list-trustdb <usernames>
gpg --list-trustdb <usernames>
List the tree of certificates for the given usernames
gpgm --list-trust-path username
gpg --list-trust-path username
List the possible trust paths for the given username. The length
of such a trust path is limited by the option --max-cert-depth
@ -435,8 +489,23 @@
See http://www.gnupg.org/mirrors.html for a list of FTP mirrors
and use them if possible.
To avoid possible legal problems we have decided, not to use
the normal www.gnu.org webserver.
We have some mailing lists dedicated to GnuPG:
gnupg-announce@gnupg.org For important announcements like
new versions and such stuff.
This is a moderated list and has
very low traffic.
gnupg-users@gnupg.org For general user discussion and
help.
gnupg-devel@gnupg.org GnuPG developers main forum.
You subscribe to one of the list by sending mail with a subject
of "subscribe" to x-request@gnupg.org, where x is the name of the
mailing list (gnupg-announce, gnupg-users, etc.). An archive of
the mailing lists is available at http://lists.gnupg.org .
The gnupg.org domain is hosted in Germany to avoid possible legal
problems (technical advices may count as a violation of ITAR).
Please direct bug reports to <gnupg-bugs@gnu.org> or post
them direct to the mailing list <gnupg-devel@gnupg.org>.
@ -447,12 +516,13 @@
Have fun and remember: Echelon is looking at you kid.
- -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v0.9.8a (GNU/Linux)
Version: GnuPG v0.9.9 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iQB1AwUBN5g4Lx0Z9MEMmFelAQE+RwL/Ws+kNklTHJnABT8YU8BqN8x310DyUm+e
ViS23npv3S/kRnHbCOOQo4cEjUYZFFrJXzQgodBvKbLVzMgdj4XQvkulTSBYK6pm
B7GeQptWRCNJ7m+Hw0Z4gwJ7giQTdfF8
=pJ7c
iQB1AwUBN6figR0Z9MEMmFelAQHydwL+LuKC3W6kRkm0clwab3v8I7zlX0bagxzA
RStlHXdO6ln1Mo3s3nBuCfrS6LogiUgNRFhNJQ5+rjrTydz00nzcorbyTalqvMlq
Gnsu9Pd/pTPzvk6kP79yDdoBxfaQGcgw
=W8uz
-----END PGP SIGNATURE-----

View File

@ -216,6 +216,13 @@ of the existing key servers (I think they bail out on some rfc2440
packet formats).
Special procmail addresses
==========================
* foo+bar@example.net: Try to match the address without the "+bar".
Should be done by the MUA, but maybe we can do this.
Suggested things which I will not do:
=====================================
* Let take --help an option to select some topics.

2
TODO
View File

@ -47,5 +47,5 @@ Nice to have
trustdb.
* Evaluate whether it make sense to replace the namehashs either by
using the user ID directly or by using pointers into the trustdb.
* --gen-prime may trigger a log_bug; should be a log_fatal.

View File

@ -1 +1 @@
0.9.9a
0.9.10

View File

@ -1,3 +1,8 @@
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* defs.inc (echo_n): New and used instead of /bin/echo "\c"
Sun Apr 18 10:11:28 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* mkdemodirs: New

View File

@ -73,7 +73,7 @@ $srcdir/run-gpg --verify x
# bash's builtin echo needs the option -e so we use the external one.
# ======================================
echo "this is a sig test" >y
/bin/echo " \c" >>y
echo_n " " >>y
echo "$usrpass1" | $srcdir/run-gpg --passphrase-fd 0 --clearsign -o x --yes y
$srcdir/run-gpg --verify x

View File

@ -51,6 +51,28 @@ chdir () {
cd $1 || fatal "cannot cd to $1"
}
echo_n_init=no
echo_n () {
if test "$echo_n_init" = "no"; then
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
echo_n_n=
echo_n_c='
'
else
echo_n_n='-n'
echo_n_c=
fi
else
echo_n_n=
echo_n_c='\c'
fi
echo_n_init=yes
fi
echo $echo_n_n "${1}$echo_n_c"
}
#cleanup () {
# rm $cleanup_files 2>/dev/null || true
# echo "#empty" >./options

View File

@ -25,7 +25,7 @@ fi
[ "$failed" != "" ] && error "$failed failed for empty string"
/bin/echo "abcdefghijklmnopqrstuvwxyz\c" | $srcdir/run-gpg --print-mds >y
echo_n "abcdefghijklmnopqrstuvwxyz" | $srcdir/run-gpg --print-mds >y
test_one "MD5" "C3FCD3D76192E4007DFB496CCA67E13B"
test_one "SHA1" "32D10C7B8CF96570CA04CE37F2A19D84240D3A89"
test_one "RMD160" "F71C27109C692C1B56BBDCEB5B9D2865B3708DBC"

View File

@ -32,7 +32,7 @@ ssb::1536:20:5CE086B5B5A18FF4:1998-07-07:0:::
16 = ElGamal (encrypt only)
17 = DSA (sometimes called DH, sign only)
20 = ElGamal (sign and encrypt)
(for other id's see include/cipher.h)
(for other id's see include/cipher.h)
5. Field: KeyID
6. Field: Creation Date (in UTC)
7. Field: Key expiration date or empty if none.
@ -144,13 +144,20 @@ more arguments in future versions.
Issued whenever a passphrase for symmetric encryption is needed.
MISSING_PASSPHRASE
No passphrase was supplied. An application which encounters this
message may want to stop parsing immediately because the next message
will probably be a BAD_PASSPHRASE. However, if the application
is a wrapper around the key edit menu functionalty it might not
make sense to stop parsing but simply ignoring the following
PAD_PASSPHRASE.
BAD_PASSPHRASE <long keyid>
The supplied passphrase was wrong
The supplied passphrase was wrong or not given. In the latter case
you may have seen a MISSING_PASSPHRASE.
GOOD_PASSPHRASE
The supplied passphrase was good and the secret key material
is therefore usuable.
is therefore usable.
DECRYPTION_FAILED
The symmetric decryption failed - one reason could be a wrong
@ -577,9 +584,15 @@ The standard http URL encoded query parameters are this (always key=value):
- fingerprint=on. Also reports the fingerprints when used with 'index' or
'vindex'
New (already used by GnuPG):
The keyserver also recognizes http-POSTs to /pks/add. Use this to upload
keys.
A better way to to this would be a request like:
/pks/lookup/<gnupg_formatierte_user_id>?op=<operation>
The keyserver also recognizes http-POSTs to /pks/add. Use this to upload
keys.
this can be implemented using Hurd's translater mechanism.
However, I think the whole key server stuff has to be re-thougth;
I have some ideas and probably create a white paper.

View File

@ -27,7 +27,7 @@
-->
<!doctype refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!DOCTYPE RefEntry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity ParmDir "<parameter>directory</parameter>">
<!entity ParmFile "<parameter>file</parameter>">
<!entity OptParmFile "<optional>&ParmFile;</optional>">
@ -359,14 +359,14 @@ trust value. Letters are used for the values:</para>
<term>--sign-key &ParmName;</term>
<listitem><para>
Sign a public key with you secret key. This is a shortcut version
of the subcommand <term>sign</term> from --edit.
of the subcommand "sign" from --edit.
</para></listitem></varlistentry>
<varlistentry>
<term>--lsign-key &ParmName;</term>
<listitem><para>
Sign a public key with you secret key but mark it as non-exportable.
This is a shortcut version of the subcommand <term>lsign</term> from --edit.
This is a shortcut version of the subcommand "lsign" from --edit.
</para></listitem></varlistentry>
<varlistentry>
@ -432,7 +432,9 @@ This is normally not very useful and a security risk.
<term>--import &OptParmFiles;</term>
<term>--fast-import &OptParmFiles;</term>
<listitem><para>
Import/merge keys. The fast version does not build
Import/merge keys. This adds the given keys to the
keyring.
The fast version does not build
the trustdb; this can be done at any time with the
command --update-trustdb.
</para></listitem></varlistentry>
@ -1019,6 +1021,7 @@ will still get disabled.
Never allow the use of &ParmName; as public key algorithm.
The given name will not be checked so that a later loaded algorithm
will still get disabled.
</para></listitem></varlistentry>
<varlistentry>
<term>--throw-keyid</term>
@ -1099,10 +1102,11 @@ signatures on data.
Force the use of encryption with appended manipulation
code. This is always used with the newer cipher (those
with a blocksize greater than 64 bit).
This option might not be implemented yet.
</para></listitem></varlistentry>
<varlistentry>
<term>--allow-non-self-signed-uid</term>
<term>--allow-non-selfsigned-uid</term>
<listitem><para>
Allow the import of keys with user IDs which are not self-signed.
This is only allows the import - key validation will fail und you
@ -1145,6 +1149,12 @@ Suppress the initial copyright message but do not
enter batch mode.
</para></listitem></varlistentry>
<varlistentry>
<term>--no-secmem-warning</term>
<listitem><para>
Suppress the warning about "using insecure memory".
</para></listitem></varlistentry>
<varlistentry>
<term>--no-armor</term>
@ -1165,7 +1175,7 @@ keyrings.
<term>--skip-verify</term>
<listitem><para>
Skip the signature verification step. This may be
used to make the encryption faster if the signature
used to make the decryption faster if the signature
verification is not needed.
</para></listitem></varlistentry>
@ -1193,13 +1203,13 @@ and may be used together with another command.
<varlistentry>
<term>--no-literal</term>
<listitem><para>
This is not for normal use. Use the source to see for it might be used for.
This is not for normal use. Use the source to see for what it might be useful.
</para></listitem></varlistentry>
<varlistentry>
<term>--set-filesize</term>
<listitem><para>
This is not for normal use. Use the source to see for it might be used for.
This is not for normal use. Use the source to see for what it might be useful.
</para></listitem></varlistentry>
@ -1243,6 +1253,18 @@ a signature was bad, and other error codes for fatal errors.
<listitem><para>show fingerprint</para></listitem>
</varlistentry>
<varlistentry>
<term>gpg --verify <parameter/pgpfile/</term>
<term>gpg --verify <parameter/sigfile/ &OptParmFiles;</term>
<listitem><para>
Verify the signature of the file but do not output the data. The second form
is used for detached signatures, where <parameter/sigfile/ is the detached
signature (either ASCII armored of binary) and &OptParmFiles are the signed
data; if this is not given the name of the file holding the signed data is
constructed by cutting off the extension (".asc" or ".sig") of
<parameter/sigfile/ or by asking the user for the filename.
</para></listitem></varlistentry>
</variablelist>
</refsect1>

View File

@ -1,6 +1,17 @@
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* pubring.asc: Updated.
* pkclist.c (do_we_trust_pre,check_signatures_trust): Do not print
the warning about --always_trust when --quiet is used.
* pkclist.c (fpr_info): New and called at several places.
* parse-packet.c (dump_sig_subpkt): List revocation key contents.
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* pkclist.c (build_pk_list): Fixed typo in format string.
* trustdb.c (create_shadow_dir): Don't translate the error string.
@ -94,7 +105,7 @@ Mon Jul 12 14:55:34 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* openfile.c (make_outfile_name): s/error/info/
* passphrase.c (passphrase_to_dek): Return an empty passphrase when
in batch mode and don't make the warbing message fatal
in batch mode and don't make the warning message fatal
* seckey-cert.c (check_secret_key): Try only once when in batch mode.
* g10.c (make_username): New.
@ -148,7 +159,7 @@ Thu Jul 1 12:47:31 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
(trust_letter): Mask the value.
(do_check): Take disabled flag into account.
* passphrase.c (passphrase_to_dek): Add a pubkey_alfo arg and changed
* passphrase.c (passphrase_to_dek): Add a pubkey_algo arg and changed
all callers.
* g10.c (utf8_strings): 2 new options.

View File

@ -298,7 +298,7 @@ encode_crypt( const char *filename, STRLIST remusr )
if( rc )
goto leave;
if (!opt.no_literal)
if (!opt.no_literal) {
/* setup the inner packet */
if( filename || opt.set_filename ) {
char *s = make_basename( opt.set_filename ? opt.set_filename : filename );
@ -311,6 +311,7 @@ encode_crypt( const char *filename, STRLIST remusr )
pt = m_alloc( sizeof *pt - 1 );
pt->namelen = 0;
}
}
if( filename && !opt.textmode ) {
if( !(filesize = iobuf_get_filelength(inp)) )

View File

@ -684,7 +684,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
trim_spaces(answer);
} while( *answer == '#' );
arg_number = 0;
arg_number = 0; /* Yes, here is the init which egcc complains about*/
if( !*answer )
cmd = cmdLIST;
else if( *answer == CONTROL_D )

View File

@ -737,7 +737,14 @@ dump_sig_subpkt( int hashed, int type, int critical,
printf(" %d", buffer[i] );
break;
case SIGSUBPKT_REV_KEY:
p = "revocation key";
fputs("revocation key: ", stdout );
if( length < 22 )
p = "[too short]";
else {
printf("c=%02x a=%d f=", buffer[0], buffer[1] );
for( i=2; i < length; i++ )
printf("%02X", buffer[i] );
}
break;
case SIGSUBPKT_ISSUER:
if( length >= 8 )

View File

@ -68,6 +68,33 @@ print_fpr( PKT_public_key *pk )
tty_printf("\n");
}
static void
fpr_info( PKT_public_key *pk )
{
byte array[MAX_FINGERPRINT_LEN], *p;
size_t i, n;
FILE *fp = log_stream();
fingerprint_from_pk( pk, array, &n );
p = array;
log_info(_("Fingerprint:"));
if( n == 20 ) {
for(i=0; i < n ; i++, i++, p += 2 ) {
if( i == 10 )
putc(' ', fp);
fprintf(fp, " %02X%02X", *p, p[1] );
}
}
else {
for(i=0; i < n ; i++, p++ ) {
if( i && !(i%8) )
putc(' ', fp);
fprintf(fp, " %02X", *p );
}
}
putc('\n', fp );
}
static void
@ -453,7 +480,8 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
*/
}
else if( opt.always_trust && !rc ) {
log_info(_("WARNING: Using untrusted key!\n"));
if( !opt.quiet )
log_info(_("WARNING: Using untrusted key!\n"));
rc = 1;
}
return rc;
@ -475,7 +503,8 @@ check_signatures_trust( PKT_signature *sig )
if( opt.always_trust ) {
log_info(_("WARNING: Using untrusted key!\n"));
if( !opt.quiet )
log_info(_("WARNING: Using untrusted key!\n"));
return 0;
}
@ -523,6 +552,7 @@ check_signatures_trust( PKT_signature *sig )
case TRUST_EXPIRED:
log_info(_("Note: This key has expired!\n"));
fpr_info( pk );
break;
case TRUST_UNDEFINED:
@ -533,6 +563,7 @@ check_signatures_trust( PKT_signature *sig )
log_info(_(
" There is no indication that the "
"signature belongs to the owner.\n" ));
fpr_info( pk );
}
else {
int quit;
@ -560,6 +591,7 @@ check_signatures_trust( PKT_signature *sig )
log_info(_(
" It is not certain that the signature belongs to the owner.\n"
));
fpr_info( pk );
break;
case TRUST_FULLY:

View File

@ -1,20 +1,6 @@
pub 1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>
Key fingerprint = 6BD9 050F D8FC 941B 4341 2DCC 68B7 AB89 5754 8DCD
pub 1024D/621CC013 1998-07-07 Werner Koch <werner.koch@guug.de>
Key fingerprint = ECAF 7590 EB34 43B5 C7CF 3ACB 6C7E E1B8 621C C013
pub 768R/0C9857A5 1995-09-30 Werner Koch <werner.koch@guug.de>
Key fingerprint = 62 9E 97 C0 D5 55 76 3B 90 5A FA E9 81 1C 64 09
pub 768g/E1D81275 1998-02-09 werner <dd9jn@amsat.org>
Key fingerprint = 86E2 6681 6C0B 6DD5 4C06 BA6C E113 9763 E1D8 1275
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v0.4.3c (GNU/Linux)
Comment: For info finger gcrypt@ftp.guug.de
Version: GnuPG v0.9.9 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDWiHh4RBAD+l0rg5p9rW4M3sKvmeyzhs2mDxhRKDTVVUnTwpMIR2kIA9pT4
3No/coPajDvhZTaDM/vSz25IZDZWJ7gEu86RpoEdtr/eK8GuDcgsWvFs5+YpCDwW
@ -36,155 +22,204 @@ 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
=7eJ9
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
AJkBDI7hajSe1D6Krh2j0zf8VMWOIA==
=TbxO
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -385,7 +385,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
}
}
else {
if (!opt.no_literal)
if (!opt.no_literal) {
if( fname || opt.set_filename ) {
char *s = make_basename( opt.set_filename ? opt.set_filename : fname );
pt = m_alloc( sizeof *pt + strlen(s) - 1 );
@ -397,6 +397,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
pt = m_alloc( sizeof *pt - 1 );
pt->namelen = 0;
}
}
if( fname ) {
if( !(filesize = iobuf_get_filelength(inp)) )
@ -412,7 +413,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
}
else
filesize = opt.set_filesize ? opt.set_filesize : 0; /* stdin */
if (!opt.no_literal) {
pt->timestamp = make_timestamp();
pt->mode = opt.textmode && !outfile ? 't':'b';
@ -441,7 +442,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
/* catch errors from above blocks */
if (rc)
goto leave;
goto leave;
/* loop over the secret certificates */
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {

View File

@ -1,3 +1,8 @@
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* de.po: Updated (Walter).
Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>

479
po/de.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

395
po/fr.po

File diff suppressed because it is too large Load Diff

401
po/it.po

File diff suppressed because it is too large Load Diff

395
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

395
po/ru.po

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,9 @@
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* config.guess: Updated from gnu/common and applied my emx patch again.
* config.sub: Updated from gnu/common.
Wed Jul 14 19:42:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>

91
scripts/config.guess vendored
View File

@ -1,6 +1,7 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
# Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -114,7 +115,13 @@ EOF
esac
fi
rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
@ -158,7 +165,7 @@ EOF
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
@ -414,7 +421,7 @@ EOF
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/6?? | 9000/7?? | 9000/80[024] | 9000/8?[136790] | 9000/892 )
9000/[678][0-9][0-9])
sed 's/^ //' << EOF >$dummy.c
#include <stdlib.h>
#include <unistd.h>
@ -488,7 +495,7 @@ EOF
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
*9??*:MPE*:*:*)
*9??*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
@ -507,6 +514,9 @@ EOF
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
hppa*:OpenBSD:*:*)
echo hppa-unknown-openbsd
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
@ -546,7 +556,7 @@ EOF
echo cray2-cray-unicos
exit 0 ;;
F300:UNIX_System_V:*:*)
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
@ -559,12 +569,12 @@ EOF
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
@ -589,6 +599,15 @@ EOF
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i386-pc-interix
exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit 0 ;;
@ -622,7 +641,36 @@ EOF
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;;
elf32ppc)
# Determine Lib Version
cat >$dummy.c <<EOF
#include <features.h>
#if defined(__GLIBC__)
extern char __libc_version[];
extern char __libc_release[];
#endif
main(argc, argv)
int argc;
char *argv[];
{
#if defined(__GLIBC__)
printf("%s %s\n", __libc_version, __libc_release);
#else
printf("unkown\n");
#endif
return 0;
}
EOF
LIBC=""
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
if test "$?" = 0 ; then
./$dummy | grep 1\.99 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f $dummy.c $dummy
echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
@ -755,6 +803,14 @@ EOF
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:5:7*)
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) && UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent.*II' >/dev/null) && UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) && UNAME_MACHINE=i585
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
exit 0 ;;
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@ -764,18 +820,15 @@ EOF
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
i?86:UnixWare:*:*)
if /bin/uname -X 2>/dev/null >/dev/null ; then
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
fi
echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
exit 0 ;;
pc:*:*:*)
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
@ -862,7 +915,7 @@ EOF
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
@ -993,7 +1046,7 @@ main ()
#endif
#if defined(__EMX__)
printf ("i386-emx-os2"); exit(0);
printf ("i386-pc-os2_emx"); exit(0);
#endif
exit (1);

289
scripts/config.sub vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
@ -98,11 +98,21 @@ case $os in
os=
basic_machine=$1
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=vxworks
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=sco3.2v5
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
@ -121,6 +131,9 @@ case $os in
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@ -152,14 +165,20 @@ case $basic_machine in
tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
| 1750a | dsp16xx | pdp11 | mips64 | mipsel | mips64el \
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| sparc | sparclet | sparclite | sparc64 | v850)
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | miprs64vr5000el \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
| thumb | d10v)
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65)
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@ -175,26 +194,41 @@ case $basic_machine in
vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
| xmp-* | ymp-* \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
| alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67] \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
| alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
| clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* \
| f301-* | armv*-*)
| f301-* | armv*-* | t3e-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | c30-* )
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
@ -224,6 +258,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aux)
basic_machine=m68k-apple
os=-aux
@ -300,6 +338,10 @@ case $basic_machine in
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
@ -318,6 +360,14 @@ case $basic_machine in
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
@ -333,13 +383,30 @@ case $basic_machine in
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
@ -348,13 +415,13 @@ case $basic_machine in
hppa-next)
os=-nextstep3
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
os=-mpeix
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
os=-mpeix
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
@ -377,6 +444,22 @@ case $basic_machine in
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
i386-go32 | go32)
basic_machine=i386-unknown
os=-go32
;;
i386-mingw32 | mingw32)
basic_machine=i386-unknown
os=-mingw32
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
@ -405,6 +488,10 @@ case $basic_machine in
miniframe)
basic_machine=m68000-convergent
;;
*mint | *MiNT)
basic_machine=m68k-atari
os=-mint
;;
mipsel*-linux*)
basic_machine=mipsel-unknown
os=-linux-gnu
@ -419,10 +506,22 @@ case $basic_machine in
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
msdos)
basic_machine=i386-unknown
os=-msdos
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-corel
os=-linux
@ -439,6 +538,10 @@ case $basic_machine in
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
@ -464,9 +567,25 @@ case $basic_machine in
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
np1)
basic_machine=np1-gould
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
@ -484,19 +603,19 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | nexen)
pentium | p5 | k5 | k6 | nexen)
basic_machine=i586-pc
;;
pentiumpro | p6 | k6 | 6x86)
pentiumpro | p6 | 6x86)
basic_machine=i686-pc
;;
pentiumii | pentium2)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | nexen-*)
pentium-* | p5-* | k5-* | k6-* | nexen-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | k6-* | 6x86-*)
pentiumpro-* | p6-* | 6x86-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-*)
@ -520,12 +639,20 @@ case $basic_machine in
ps2)
basic_machine=i386-ibm
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sequent)
basic_machine=i386-sequent
;;
@ -533,6 +660,10 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
sparclite-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
@ -540,6 +671,13 @@ case $basic_machine in
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
sun2)
basic_machine=m68000-sun
;;
@ -584,6 +722,10 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
t3e)
basic_machine=t3e-cray
os=-unicos
;;
tx39)
basic_machine=mipstx39-unknown
;;
@ -601,6 +743,10 @@ case $basic_machine in
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
@ -624,6 +770,14 @@ case $basic_machine in
basic_machine=a29k-wrs
os=-vxworks
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
xmp)
basic_machine=xmp-cray
os=-unicos
@ -631,12 +785,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
*mint | *MiNT)
basic_machine=m68k-atari
os=-mint
;;
os2 )
os=-os2
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
none)
basic_machine=none-none
@ -645,6 +796,15 @@ case $basic_machine in
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
mips)
if [ x$os = x-linux-gnu ]; then
basic_machine=mips-unknown
@ -667,7 +827,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
sparc)
sparc | sparcv9)
basic_machine=sparc-sun
;;
cydra)
@ -679,6 +839,16 @@ case $basic_machine in
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
c4x*)
basic_machine=c4x-none
os=-coff
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
@ -732,14 +902,21 @@ case $os in
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
| -openstep* | -mpeix* | -oskit*)
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
| -macos* | -mpw* | -magic* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
@ -764,6 +941,9 @@ case $os in
-acis*)
os=-aos
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
@ -795,6 +975,12 @@ case $os in
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
@ -850,6 +1036,15 @@ case $basic_machine in
# default.
# os=-sunos4
;;
m68*-cisco)
os=-aout
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
@ -862,6 +1057,15 @@ case $basic_machine in
*-ibm)
os=-aix
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
@ -925,6 +1129,15 @@ case $basic_machine in
f301-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
@ -949,10 +1162,10 @@ case $basic_machine in
-aix*)
vendor=ibm
;;
-hpux*)
vendor=hp
-beos*)
vendor=be
;;
-mpeix*)
-hpux*)
vendor=hp
;;
-mpeix*)
@ -985,6 +1198,12 @@ case $basic_machine in
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -*MiNT)
vendor=atari
;;

View File

@ -92,7 +92,7 @@ file_filter(void *opaque, int control, IOBUF chain, byte *buf, size_t *ret_len)
if( control == IOBUFCTRL_UNDERFLOW ) {
assert( size ); /* need a buffer */
if ( feof(fp)) { /* On terminals you could easiely read as many EOFs as you call */
if ( feof(fp)) { /* On terminals you could easiely read as many EOFs as you call */
rc = -1; /* fread() or fgetc() repeatly. Every call will block until you press */
*ret_len = 0; /* CTRL-D. So we catch this case before we call fread() again. */
}
@ -425,7 +425,7 @@ print_chain( IOBUF a )
log_debug("iobuf chain: %d.%d `%s' filter_eof=%d start=%d len=%d\n",
a->no, a->subno, desc, a->filter_eof,
a->d.start, a->d.len );
(int)a->d.start, (int)a->d.len );
}
}