Ajouté les sources OpenSSH de Lucid
authorNicolas Cadou <ncadou@cadou.ca>
Fri, 9 Nov 2012 14:16:08 +0000 (09:16 -0500)
committerNicolas Cadou <ncadou@cadou.ca>
Fri, 9 Nov 2012 14:16:08 +0000 (09:16 -0500)
748 files changed:
openssh-5.3p1/.pc/.version [new file with mode: 0644]
openssh-5.3p1/.pc/applied-patches [new file with mode: 0644]
openssh-5.3p1/.pc/authorized-keys-man-symlink.patch/Makefile.in [new file with mode: 0644]
openssh-5.3p1/.pc/banner-noslash.patch/sshconnect2.c [new file with mode: 0644]
openssh-5.3p1/.pc/config-guess-sub.patch/config.guess [new file with mode: 0755]
openssh-5.3p1/.pc/config-guess-sub.patch/config.sub [new file with mode: 0755]
openssh-5.3p1/.pc/consolekit.patch/Makefile.in [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/configure.ac [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/consolekit.c [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/consolekit.h [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/monitor.c [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/monitor.h [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/monitor_wrap.c [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/monitor_wrap.h [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/session.c [new file with mode: 0644]
openssh-5.3p1/.pc/consolekit.patch/session.h [new file with mode: 0644]
openssh-5.3p1/.pc/debian-banner.patch/servconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/debian-banner.patch/servconf.h [new file with mode: 0644]
openssh-5.3p1/.pc/debian-banner.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/debian-banner.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/debian-config.patch/readconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/debian-config.patch/ssh_config [new file with mode: 0644]
openssh-5.3p1/.pc/debian-config.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/debian-config.patch/sshd_config [new file with mode: 0644]
openssh-5.3p1/.pc/debian-config.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/doc-connection-sharing.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/doc-hash-tab-completion.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/doc-upstart.patch/sshd.8 [new file with mode: 0644]
openssh-5.3p1/.pc/gnome-ssh-askpass2-icon.patch/contrib/gnome-ssh-askpass2.c [new file with mode: 0644]
openssh-5.3p1/.pc/gnome-ssh-askpass2-link.patch/contrib/Makefile [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi-autoconf.patch/config.h.in [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi-compat.patch/servconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi-dump.patch/servconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/ChangeLog.gssapi [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/Makefile.in [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/auth-krb5.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/auth.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/auth2-gss.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/auth2.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/clientloop.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/configure.ac [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/gss-genr.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/gss-serv-krb5.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/gss-serv.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/kex.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/kex.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/kexgssc.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/kexgsss.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/key.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/key.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/monitor.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/monitor.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/monitor_wrap.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/monitor_wrap.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/readconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/readconf.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/servconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/servconf.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/ssh-gss.h [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/ssh_config [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/sshconnect2.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/sshd_config [new file with mode: 0644]
openssh-5.3p1/.pc/gssapi.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/helpful-wait-terminate.patch/serverloop.c [new file with mode: 0644]
openssh-5.3p1/.pc/hurd-epfnosupport.patch/channels.c [new file with mode: 0644]
openssh-5.3p1/.pc/keepalive-extensions.patch/readconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/keepalive-extensions.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/keepalive-extensions.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/keyfile-debug.patch/auth.c [new file with mode: 0644]
openssh-5.3p1/.pc/lintian-symlink-pickiness.patch/Makefile.in [new file with mode: 0644]
openssh-5.3p1/.pc/no-constraint-fallback.patch/authfd.c [new file with mode: 0644]
openssh-5.3p1/.pc/no-constraint-fallback.patch/authfd.h [new file with mode: 0644]
openssh-5.3p1/.pc/no-constraint-fallback.patch/ssh-add.c [new file with mode: 0644]
openssh-5.3p1/.pc/no-openssl-version-check.patch/entropy.c [new file with mode: 0644]
openssh-5.3p1/.pc/old-gssapi.patch/sshconnect2.c [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust-always-reset.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust.patch/config.h.in [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust.patch/configure [new file with mode: 0755]
openssh-5.3p1/.pc/oom-adjust.patch/configure.ac [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust.patch/openbsd-compat/port-linux.c [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust.patch/openbsd-compat/port-linux.h [new file with mode: 0644]
openssh-5.3p1/.pc/oom-adjust.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/openbsd-docs.patch/moduli.5 [new file with mode: 0644]
openssh-5.3p1/.pc/openbsd-docs.patch/ssh-keygen.1 [new file with mode: 0644]
openssh-5.3p1/.pc/openbsd-docs.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/openbsd-docs.patch/sshd.8 [new file with mode: 0644]
openssh-5.3p1/.pc/openbsd-docs.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/package-versioning.patch/sshconnect.c [new file with mode: 0644]
openssh-5.3p1/.pc/package-versioning.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/package-versioning.patch/version.h [new file with mode: 0644]
openssh-5.3p1/.pc/quieter-signals.patch/clientloop.c [new file with mode: 0644]
openssh-5.3p1/.pc/scp-quoting.patch/scp.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-autoconf.patch/configure [new file with mode: 0755]
openssh-5.3p1/.pc/selinux-autoconf.patch/configure.ac [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-fix-chroot-directory.patch/session.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/auth.h [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/auth1.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/auth2.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/monitor.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/monitor.h [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/monitor_wrap.c [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/monitor_wrap.h [new file with mode: 0644]
openssh-5.3p1/.pc/selinux-role.patch/openbsd-compat/port-linux.c [new file with mode: 0644]
openssh-5.3p1/.pc/shell-path.patch/sshconnect.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-argv0.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-copy-id-status-check.patch/contrib/ssh-copy-id [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-copy-id-trailing-colons.patch/contrib/ssh-copy-id [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/Makefile.in [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth-rh-rsa.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth-rsa.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth.h [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth2-hostbased.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/auth2-pubkey.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/authfile.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/authfile.h [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/pathnames.h [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/readconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/readconf.h [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/servconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/servconf.h [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh-add.1 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh-add.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh-keygen.1 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh-vulnkey.1 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh-vulnkey.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/sshconnect2.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/sshd.8 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh-vulnkey.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/ssh1-keepalive.patch/clientloop.c [new file with mode: 0644]
openssh-5.3p1/.pc/ssh1-keepalive.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/sshd-ignore-sighup.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/clientloop.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/log.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/log.h [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/mux.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/sftp-server.8 [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/ssh.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/sshd.8 [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/sshd.c [new file with mode: 0644]
openssh-5.3p1/.pc/syslog-level-silent.patch/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/.pc/user-group-modes.patch/readconf.c [new file with mode: 0644]
openssh-5.3p1/.pc/user-group-modes.patch/ssh.1 [new file with mode: 0644]
openssh-5.3p1/.pc/user-group-modes.patch/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/CREDITS [new file with mode: 0644]
openssh-5.3p1/ChangeLog [new file with mode: 0644]
openssh-5.3p1/ChangeLog.gssapi [new file with mode: 0644]
openssh-5.3p1/INSTALL [new file with mode: 0644]
openssh-5.3p1/LICENCE [new file with mode: 0644]
openssh-5.3p1/Makefile.in [new file with mode: 0644]
openssh-5.3p1/OVERVIEW [new file with mode: 0644]
openssh-5.3p1/PROTOCOL [new file with mode: 0644]
openssh-5.3p1/PROTOCOL.agent [new file with mode: 0644]
openssh-5.3p1/README [new file with mode: 0644]
openssh-5.3p1/README.dns [new file with mode: 0644]
openssh-5.3p1/README.platform [new file with mode: 0644]
openssh-5.3p1/README.privsep [new file with mode: 0644]
openssh-5.3p1/README.smartcard [new file with mode: 0644]
openssh-5.3p1/README.tun [new file with mode: 0644]
openssh-5.3p1/TODO [new file with mode: 0644]
openssh-5.3p1/WARNING.RNG [new file with mode: 0644]
openssh-5.3p1/aclocal.m4 [new file with mode: 0644]
openssh-5.3p1/acss.c [new file with mode: 0644]
openssh-5.3p1/acss.h [new file with mode: 0644]
openssh-5.3p1/addrmatch.c [new file with mode: 0644]
openssh-5.3p1/atomicio.c [new file with mode: 0644]
openssh-5.3p1/atomicio.h [new file with mode: 0644]
openssh-5.3p1/audit-bsm.c [new file with mode: 0644]
openssh-5.3p1/audit.c [new file with mode: 0644]
openssh-5.3p1/audit.h [new file with mode: 0644]
openssh-5.3p1/auth-bsdauth.c [new file with mode: 0644]
openssh-5.3p1/auth-chall.c [new file with mode: 0644]
openssh-5.3p1/auth-krb5.c [new file with mode: 0644]
openssh-5.3p1/auth-options.c [new file with mode: 0644]
openssh-5.3p1/auth-options.h [new file with mode: 0644]
openssh-5.3p1/auth-pam.c [new file with mode: 0644]
openssh-5.3p1/auth-pam.h [new file with mode: 0644]
openssh-5.3p1/auth-passwd.c [new file with mode: 0644]
openssh-5.3p1/auth-rh-rsa.c [new file with mode: 0644]
openssh-5.3p1/auth-rhosts.c [new file with mode: 0644]
openssh-5.3p1/auth-rsa.c [new file with mode: 0644]
openssh-5.3p1/auth-shadow.c [new file with mode: 0644]
openssh-5.3p1/auth-sia.c [new file with mode: 0644]
openssh-5.3p1/auth-sia.h [new file with mode: 0644]
openssh-5.3p1/auth-skey.c [new file with mode: 0644]
openssh-5.3p1/auth.c [new file with mode: 0644]
openssh-5.3p1/auth.h [new file with mode: 0644]
openssh-5.3p1/auth1.c [new file with mode: 0644]
openssh-5.3p1/auth2-chall.c [new file with mode: 0644]
openssh-5.3p1/auth2-gss.c [new file with mode: 0644]
openssh-5.3p1/auth2-hostbased.c [new file with mode: 0644]
openssh-5.3p1/auth2-jpake.c [new file with mode: 0644]
openssh-5.3p1/auth2-kbdint.c [new file with mode: 0644]
openssh-5.3p1/auth2-none.c [new file with mode: 0644]
openssh-5.3p1/auth2-passwd.c [new file with mode: 0644]
openssh-5.3p1/auth2-pubkey.c [new file with mode: 0644]
openssh-5.3p1/auth2.c [new file with mode: 0644]
openssh-5.3p1/authfd.c [new file with mode: 0644]
openssh-5.3p1/authfd.h [new file with mode: 0644]
openssh-5.3p1/authfile.c [new file with mode: 0644]
openssh-5.3p1/authfile.h [new file with mode: 0644]
openssh-5.3p1/bufaux.c [new file with mode: 0644]
openssh-5.3p1/bufbn.c [new file with mode: 0644]
openssh-5.3p1/buffer.c [new file with mode: 0644]
openssh-5.3p1/buffer.h [new file with mode: 0644]
openssh-5.3p1/buildpkg.sh.in [new file with mode: 0644]
openssh-5.3p1/canohost.c [new file with mode: 0644]
openssh-5.3p1/canohost.h [new file with mode: 0644]
openssh-5.3p1/channels.c [new file with mode: 0644]
openssh-5.3p1/channels.h [new file with mode: 0644]
openssh-5.3p1/cipher-3des1.c [new file with mode: 0644]
openssh-5.3p1/cipher-acss.c [new file with mode: 0644]
openssh-5.3p1/cipher-aes.c [new file with mode: 0644]
openssh-5.3p1/cipher-bf1.c [new file with mode: 0644]
openssh-5.3p1/cipher-ctr.c [new file with mode: 0644]
openssh-5.3p1/cipher.c [new file with mode: 0644]
openssh-5.3p1/cipher.h [new file with mode: 0644]
openssh-5.3p1/cleanup.c [new file with mode: 0644]
openssh-5.3p1/clientloop.c [new file with mode: 0644]
openssh-5.3p1/clientloop.h [new file with mode: 0644]
openssh-5.3p1/compat.c [new file with mode: 0644]
openssh-5.3p1/compat.h [new file with mode: 0644]
openssh-5.3p1/compress.c [new file with mode: 0644]
openssh-5.3p1/compress.h [new file with mode: 0644]
openssh-5.3p1/config.guess [new file with mode: 0755]
openssh-5.3p1/config.h.in [new file with mode: 0644]
openssh-5.3p1/config.sub [new file with mode: 0755]
openssh-5.3p1/configure [new file with mode: 0755]
openssh-5.3p1/configure.ac [new file with mode: 0644]
openssh-5.3p1/consolekit.c [new file with mode: 0644]
openssh-5.3p1/consolekit.h [new file with mode: 0644]
openssh-5.3p1/contrib/Makefile [new file with mode: 0644]
openssh-5.3p1/contrib/README [new file with mode: 0644]
openssh-5.3p1/contrib/aix/README [new file with mode: 0644]
openssh-5.3p1/contrib/aix/buildbff.sh [new file with mode: 0755]
openssh-5.3p1/contrib/aix/inventory.sh [new file with mode: 0755]
openssh-5.3p1/contrib/aix/pam.conf [new file with mode: 0644]
openssh-5.3p1/contrib/caldera/openssh.spec [new file with mode: 0644]
openssh-5.3p1/contrib/caldera/ssh-host-keygen [new file with mode: 0755]
openssh-5.3p1/contrib/caldera/sshd.init [new file with mode: 0755]
openssh-5.3p1/contrib/caldera/sshd.pam [new file with mode: 0644]
openssh-5.3p1/contrib/cygwin/Makefile [new file with mode: 0644]
openssh-5.3p1/contrib/cygwin/README [new file with mode: 0644]
openssh-5.3p1/contrib/cygwin/ssh-host-config [new file with mode: 0644]
openssh-5.3p1/contrib/cygwin/ssh-user-config [new file with mode: 0644]
openssh-5.3p1/contrib/cygwin/sshd-inetd [new file with mode: 0644]
openssh-5.3p1/contrib/findssl.sh [new file with mode: 0644]
openssh-5.3p1/contrib/gnome-ssh-askpass1.c [new file with mode: 0644]
openssh-5.3p1/contrib/gnome-ssh-askpass2.c [new file with mode: 0644]
openssh-5.3p1/contrib/hpux/README [new file with mode: 0644]
openssh-5.3p1/contrib/hpux/egd [new file with mode: 0644]
openssh-5.3p1/contrib/hpux/egd.rc [new file with mode: 0755]
openssh-5.3p1/contrib/hpux/sshd [new file with mode: 0644]
openssh-5.3p1/contrib/hpux/sshd.rc [new file with mode: 0755]
openssh-5.3p1/contrib/redhat/gnome-ssh-askpass.csh [new file with mode: 0644]
openssh-5.3p1/contrib/redhat/gnome-ssh-askpass.sh [new file with mode: 0644]
openssh-5.3p1/contrib/redhat/openssh.spec [new file with mode: 0644]
openssh-5.3p1/contrib/redhat/sshd.init [new file with mode: 0755]
openssh-5.3p1/contrib/redhat/sshd.init.old [new file with mode: 0755]
openssh-5.3p1/contrib/redhat/sshd.pam [new file with mode: 0644]
openssh-5.3p1/contrib/redhat/sshd.pam.old [new file with mode: 0644]
openssh-5.3p1/contrib/solaris/README [new file with mode: 0755]
openssh-5.3p1/contrib/ssh-copy-id [new file with mode: 0644]
openssh-5.3p1/contrib/ssh-copy-id.1 [new file with mode: 0644]
openssh-5.3p1/contrib/sshd.pam.freebsd [new file with mode: 0644]
openssh-5.3p1/contrib/sshd.pam.generic [new file with mode: 0644]
openssh-5.3p1/contrib/suse/openssh.spec [new file with mode: 0644]
openssh-5.3p1/contrib/suse/rc.config.sshd [new file with mode: 0644]
openssh-5.3p1/contrib/suse/rc.sshd [new file with mode: 0644]
openssh-5.3p1/contrib/suse/sysconfig.ssh [new file with mode: 0644]
openssh-5.3p1/crc32.c [new file with mode: 0644]
openssh-5.3p1/crc32.h [new file with mode: 0644]
openssh-5.3p1/deattack.c [new file with mode: 0644]
openssh-5.3p1/deattack.h [new file with mode: 0644]
openssh-5.3p1/debian/NEWS [new file with mode: 0644]
openssh-5.3p1/debian/README.Debian [new file with mode: 0644]
openssh-5.3p1/debian/README.compromised-keys [new file with mode: 0644]
openssh-5.3p1/debian/README.source [new file with mode: 0644]
openssh-5.3p1/debian/changelog [new file with mode: 0644]
openssh-5.3p1/debian/clean [new file with mode: 0644]
openssh-5.3p1/debian/compat [new file with mode: 0644]
openssh-5.3p1/debian/control [new file with mode: 0644]
openssh-5.3p1/debian/copyright [new file with mode: 0644]
openssh-5.3p1/debian/copyright.head [new file with mode: 0644]
openssh-5.3p1/debian/faq.html [new file with mode: 0644]
openssh-5.3p1/debian/gnome-ssh-askpass.1 [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client-udeb.dirs [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.apport [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.config [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.dirs [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.docs [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.lintian-overrides [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.postinst [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.postrm [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.preinst [new file with mode: 0644]
openssh-5.3p1/debian/openssh-client.prerm [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server-udeb.dirs [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.apport [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.config [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.default [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.dirs [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.examples [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.if-up [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.init [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.links [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.lintian-overrides [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.postinst [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.postrm [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.preinst [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.prerm [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.sshd.pam [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.templates [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.ufw.profile [new file with mode: 0644]
openssh-5.3p1/debian/openssh-server.upstart [new file with mode: 0644]
openssh-5.3p1/debian/patches/authorized-keys-man-symlink.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/banner-noslash.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/config-guess-sub.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/consolekit.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/debian-banner.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/debian-config.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/doc-connection-sharing.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/doc-hash-tab-completion.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/doc-upstart.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gnome-ssh-askpass2-icon.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gnome-ssh-askpass2-link.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gssapi-autoconf.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gssapi-compat.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gssapi-dump.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/gssapi.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/helpful-wait-terminate.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/hurd-epfnosupport.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/keepalive-extensions.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/keyfile-debug.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/lintian-symlink-pickiness.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/no-constraint-fallback.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/no-openssl-version-check.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/old-gssapi.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/oom-adjust-always-reset.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/oom-adjust.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/openbsd-docs.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/package-versioning.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/quieter-signals.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/scp-quoting.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/selinux-autoconf.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/selinux-fix-chroot-directory.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/selinux-role.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/series [new file with mode: 0644]
openssh-5.3p1/debian/patches/shell-path.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/ssh-argv0.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/ssh-copy-id-status-check.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/ssh-copy-id-trailing-colons.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/ssh-vulnkey.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/ssh1-keepalive.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/sshd-ignore-sighup.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/syslog-level-silent.patch [new file with mode: 0644]
openssh-5.3p1/debian/patches/user-group-modes.patch [new file with mode: 0644]
openssh-5.3p1/debian/po/POTFILES.in [new file with mode: 0644]
openssh-5.3p1/debian/po/bg.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ca.po [new file with mode: 0644]
openssh-5.3p1/debian/po/cs.po [new file with mode: 0644]
openssh-5.3p1/debian/po/da.po [new file with mode: 0644]
openssh-5.3p1/debian/po/de.po [new file with mode: 0644]
openssh-5.3p1/debian/po/el.po [new file with mode: 0644]
openssh-5.3p1/debian/po/es.po [new file with mode: 0644]
openssh-5.3p1/debian/po/eu.po [new file with mode: 0644]
openssh-5.3p1/debian/po/fi.po [new file with mode: 0644]
openssh-5.3p1/debian/po/fr.po [new file with mode: 0644]
openssh-5.3p1/debian/po/gl.po [new file with mode: 0644]
openssh-5.3p1/debian/po/it.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ja.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ko.po [new file with mode: 0644]
openssh-5.3p1/debian/po/nb.po [new file with mode: 0644]
openssh-5.3p1/debian/po/nl.po [new file with mode: 0644]
openssh-5.3p1/debian/po/pl.po [new file with mode: 0644]
openssh-5.3p1/debian/po/pt.po [new file with mode: 0644]
openssh-5.3p1/debian/po/pt_BR.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ro.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ru.po [new file with mode: 0644]
openssh-5.3p1/debian/po/sk.po [new file with mode: 0644]
openssh-5.3p1/debian/po/sv.po [new file with mode: 0644]
openssh-5.3p1/debian/po/ta.po [new file with mode: 0644]
openssh-5.3p1/debian/po/templates.pot [new file with mode: 0644]
openssh-5.3p1/debian/po/tr.po [new file with mode: 0644]
openssh-5.3p1/debian/po/uk.po [new file with mode: 0644]
openssh-5.3p1/debian/po/vi.po [new file with mode: 0644]
openssh-5.3p1/debian/po/zh_CN.po [new file with mode: 0644]
openssh-5.3p1/debian/rules [new file with mode: 0755]
openssh-5.3p1/debian/source.lintian-overrides [new file with mode: 0644]
openssh-5.3p1/debian/source/format [new file with mode: 0644]
openssh-5.3p1/debian/ssh-argv0 [new file with mode: 0644]
openssh-5.3p1/debian/ssh-argv0.1 [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.copyright [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.desktop [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.dirs [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.examples [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.png.uue [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.postinst [new file with mode: 0644]
openssh-5.3p1/debian/ssh-askpass-gnome.prerm [new file with mode: 0644]
openssh-5.3p1/debian/ssh-krb5.NEWS [new file with mode: 0644]
openssh-5.3p1/debian/ssh-krb5.postinst [new file with mode: 0644]
openssh-5.3p1/debian/ssh.dirs [new file with mode: 0644]
openssh-5.3p1/debian/ssh.links [new file with mode: 0644]
openssh-5.3p1/debian/ssh.lintian-overrides [new file with mode: 0644]
openssh-5.3p1/debian/ssh.postinst [new file with mode: 0644]
openssh-5.3p1/debian/ssh.prerm [new file with mode: 0644]
openssh-5.3p1/debian/substitute-conffile.pl [new file with mode: 0644]
openssh-5.3p1/debian/tests/Makefile [new file with mode: 0644]
openssh-5.3p1/debian/tests/getpid.c [new file with mode: 0644]
openssh-5.3p1/debian/tests/keygen-test [new file with mode: 0755]
openssh-5.3p1/debian/watch [new file with mode: 0644]
openssh-5.3p1/defines.h [new file with mode: 0644]
openssh-5.3p1/dh.c [new file with mode: 0644]
openssh-5.3p1/dh.h [new file with mode: 0644]
openssh-5.3p1/dispatch.c [new file with mode: 0644]
openssh-5.3p1/dispatch.h [new file with mode: 0644]
openssh-5.3p1/dns.c [new file with mode: 0644]
openssh-5.3p1/dns.h [new file with mode: 0644]
openssh-5.3p1/entropy.c [new file with mode: 0644]
openssh-5.3p1/entropy.h [new file with mode: 0644]
openssh-5.3p1/fatal.c [new file with mode: 0644]
openssh-5.3p1/fixpaths [new file with mode: 0755]
openssh-5.3p1/fixprogs [new file with mode: 0755]
openssh-5.3p1/groupaccess.c [new file with mode: 0644]
openssh-5.3p1/groupaccess.h [new file with mode: 0644]
openssh-5.3p1/gss-genr.c [new file with mode: 0644]
openssh-5.3p1/gss-serv-krb5.c [new file with mode: 0644]
openssh-5.3p1/gss-serv.c [new file with mode: 0644]
openssh-5.3p1/hostfile.c [new file with mode: 0644]
openssh-5.3p1/hostfile.h [new file with mode: 0644]
openssh-5.3p1/includes.h [new file with mode: 0644]
openssh-5.3p1/install-sh [new file with mode: 0755]
openssh-5.3p1/jpake.c [new file with mode: 0644]
openssh-5.3p1/jpake.h [new file with mode: 0644]
openssh-5.3p1/kex.c [new file with mode: 0644]
openssh-5.3p1/kex.h [new file with mode: 0644]
openssh-5.3p1/kexdh.c [new file with mode: 0644]
openssh-5.3p1/kexdhc.c [new file with mode: 0644]
openssh-5.3p1/kexdhs.c [new file with mode: 0644]
openssh-5.3p1/kexgex.c [new file with mode: 0644]
openssh-5.3p1/kexgexc.c [new file with mode: 0644]
openssh-5.3p1/kexgexs.c [new file with mode: 0644]
openssh-5.3p1/kexgssc.c [new file with mode: 0644]
openssh-5.3p1/kexgsss.c [new file with mode: 0644]
openssh-5.3p1/key.c [new file with mode: 0644]
openssh-5.3p1/key.h [new file with mode: 0644]
openssh-5.3p1/log.c [new file with mode: 0644]
openssh-5.3p1/log.h [new file with mode: 0644]
openssh-5.3p1/loginrec.c [new file with mode: 0644]
openssh-5.3p1/loginrec.h [new file with mode: 0644]
openssh-5.3p1/logintest.c [new file with mode: 0644]
openssh-5.3p1/mac.c [new file with mode: 0644]
openssh-5.3p1/mac.h [new file with mode: 0644]
openssh-5.3p1/match.c [new file with mode: 0644]
openssh-5.3p1/match.h [new file with mode: 0644]
openssh-5.3p1/md-sha256.c [new file with mode: 0644]
openssh-5.3p1/md5crypt.c [new file with mode: 0644]
openssh-5.3p1/md5crypt.h [new file with mode: 0644]
openssh-5.3p1/mdoc2man.awk [new file with mode: 0644]
openssh-5.3p1/misc.c [new file with mode: 0644]
openssh-5.3p1/misc.h [new file with mode: 0644]
openssh-5.3p1/mkinstalldirs [new file with mode: 0755]
openssh-5.3p1/moduli [new file with mode: 0644]
openssh-5.3p1/moduli.0 [new file with mode: 0644]
openssh-5.3p1/moduli.5 [new file with mode: 0644]
openssh-5.3p1/moduli.c [new file with mode: 0644]
openssh-5.3p1/monitor.c [new file with mode: 0644]
openssh-5.3p1/monitor.h [new file with mode: 0644]
openssh-5.3p1/monitor_fdpass.c [new file with mode: 0644]
openssh-5.3p1/monitor_fdpass.h [new file with mode: 0644]
openssh-5.3p1/monitor_mm.c [new file with mode: 0644]
openssh-5.3p1/monitor_mm.h [new file with mode: 0644]
openssh-5.3p1/monitor_wrap.c [new file with mode: 0644]
openssh-5.3p1/monitor_wrap.h [new file with mode: 0644]
openssh-5.3p1/msg.c [new file with mode: 0644]
openssh-5.3p1/msg.h [new file with mode: 0644]
openssh-5.3p1/mux.c [new file with mode: 0644]
openssh-5.3p1/myproposal.h [new file with mode: 0644]
openssh-5.3p1/nchan.c [new file with mode: 0644]
openssh-5.3p1/nchan.ms [new file with mode: 0644]
openssh-5.3p1/nchan2.ms [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/Makefile.in [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/base64.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/base64.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/basename.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bindresvport.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-arc4random.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-asprintf.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-closefrom.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-cray.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-cray.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-cygwin_util.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-cygwin_util.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-getpeereid.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-misc.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-misc.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-nextstep.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-nextstep.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-openpty.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-poll.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-poll.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-snprintf.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-statvfs.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-statvfs.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-waitpid.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/bsd-waitpid.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/daemon.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/dirname.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/fake-rfc2553.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/fake-rfc2553.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/fmt_scaled.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/getcwd.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/getgrouplist.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/getopt.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/getrrsetbyname.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/getrrsetbyname.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/glob.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/glob.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/inet_aton.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/inet_ntoa.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/inet_ntop.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/mktemp.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/openbsd-compat.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/openssl-compat.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/openssl-compat.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-aix.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-aix.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-irix.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-irix.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-linux.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-linux.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-solaris.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-solaris.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-tun.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-tun.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-uw.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/port-uw.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/readpassphrase.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/readpassphrase.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/realpath.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/regress/Makefile.in [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/regress/closefromtest.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/regress/snprintftest.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/regress/strduptest.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/regress/strtonumtest.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/rresvport.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/setenv.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/setproctitle.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/sha2.c [new file with mode: 0755]
openssh-5.3p1/openbsd-compat/sha2.h [new file with mode: 0755]
openssh-5.3p1/openbsd-compat/sigact.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/sigact.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strlcat.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strlcpy.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strmode.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strsep.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strtoll.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strtonum.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/strtoul.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/sys-queue.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/sys-tree.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/vis.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/vis.h [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/xcrypt.c [new file with mode: 0644]
openssh-5.3p1/openbsd-compat/xmmap.c [new file with mode: 0644]
openssh-5.3p1/openssh.xml.in [new file with mode: 0644]
openssh-5.3p1/opensshd.init.in [new file with mode: 0755]
openssh-5.3p1/packet.c [new file with mode: 0644]
openssh-5.3p1/packet.h [new file with mode: 0644]
openssh-5.3p1/pathnames.h [new file with mode: 0644]
openssh-5.3p1/platform.c [new file with mode: 0644]
openssh-5.3p1/platform.h [new file with mode: 0644]
openssh-5.3p1/progressmeter.c [new file with mode: 0644]
openssh-5.3p1/progressmeter.h [new file with mode: 0644]
openssh-5.3p1/readconf.c [new file with mode: 0644]
openssh-5.3p1/readconf.h [new file with mode: 0644]
openssh-5.3p1/readpass.c [new file with mode: 0644]
openssh-5.3p1/regress/Makefile [new file with mode: 0644]
openssh-5.3p1/regress/README.regress [new file with mode: 0644]
openssh-5.3p1/regress/addrmatch.sh [new file with mode: 0644]
openssh-5.3p1/regress/agent-getpeereid.sh [new file with mode: 0644]
openssh-5.3p1/regress/agent-ptrace.sh [new file with mode: 0644]
openssh-5.3p1/regress/agent-timeout.sh [new file with mode: 0644]
openssh-5.3p1/regress/agent.sh [new file with mode: 0644]
openssh-5.3p1/regress/banner.sh [new file with mode: 0644]
openssh-5.3p1/regress/broken-pipe.sh [new file with mode: 0644]
openssh-5.3p1/regress/brokenkeys.sh [new file with mode: 0644]
openssh-5.3p1/regress/bsd.regress.mk [new file with mode: 0644]
openssh-5.3p1/regress/cfgmatch.sh [new file with mode: 0644]
openssh-5.3p1/regress/cipher-speed.sh [new file with mode: 0644]
openssh-5.3p1/regress/conch-ciphers.sh [new file with mode: 0644]
openssh-5.3p1/regress/connect-privsep.sh [new file with mode: 0644]
openssh-5.3p1/regress/connect.sh [new file with mode: 0644]
openssh-5.3p1/regress/dsa_ssh2.prv [new file with mode: 0644]
openssh-5.3p1/regress/dsa_ssh2.pub [new file with mode: 0644]
openssh-5.3p1/regress/dynamic-forward.sh [new file with mode: 0644]
openssh-5.3p1/regress/envpass.sh [new file with mode: 0644]
openssh-5.3p1/regress/exit-status.sh [new file with mode: 0644]
openssh-5.3p1/regress/forcecommand.sh [new file with mode: 0644]
openssh-5.3p1/regress/forwarding.sh [new file with mode: 0644]
openssh-5.3p1/regress/key-options.sh [new file with mode: 0644]
openssh-5.3p1/regress/keygen-change.sh [new file with mode: 0644]
openssh-5.3p1/regress/keyscan.sh [new file with mode: 0644]
openssh-5.3p1/regress/localcommand.sh [new file with mode: 0644]
openssh-5.3p1/regress/login-timeout.sh [new file with mode: 0644]
openssh-5.3p1/regress/multiplex.sh [new file with mode: 0644]
openssh-5.3p1/regress/proto-mismatch.sh [new file with mode: 0644]
openssh-5.3p1/regress/proto-version.sh [new file with mode: 0644]
openssh-5.3p1/regress/proxy-connect.sh [new file with mode: 0644]
openssh-5.3p1/regress/putty-ciphers.sh [new file with mode: 0644]
openssh-5.3p1/regress/putty-kex.sh [new file with mode: 0644]
openssh-5.3p1/regress/putty-transfer.sh [new file with mode: 0644]
openssh-5.3p1/regress/reconfigure.sh [new file with mode: 0644]
openssh-5.3p1/regress/reexec.sh [new file with mode: 0644]
openssh-5.3p1/regress/rekey.sh [new file with mode: 0644]
openssh-5.3p1/regress/rsa_openssh.prv [new file with mode: 0644]
openssh-5.3p1/regress/rsa_openssh.pub [new file with mode: 0644]
openssh-5.3p1/regress/rsa_ssh2.prv [new file with mode: 0644]
openssh-5.3p1/regress/runtests.sh [new file with mode: 0755]
openssh-5.3p1/regress/scp-ssh-wrapper.sh [new file with mode: 0644]
openssh-5.3p1/regress/scp.sh [new file with mode: 0644]
openssh-5.3p1/regress/sftp-badcmds.sh [new file with mode: 0644]
openssh-5.3p1/regress/sftp-batch.sh [new file with mode: 0644]
openssh-5.3p1/regress/sftp-cmds.sh [new file with mode: 0644]
openssh-5.3p1/regress/sftp-glob.sh [new file with mode: 0644]
openssh-5.3p1/regress/sftp.sh [new file with mode: 0644]
openssh-5.3p1/regress/ssh-com-client.sh [new file with mode: 0644]
openssh-5.3p1/regress/ssh-com-keygen.sh [new file with mode: 0644]
openssh-5.3p1/regress/ssh-com-sftp.sh [new file with mode: 0644]
openssh-5.3p1/regress/ssh-com.sh [new file with mode: 0644]
openssh-5.3p1/regress/ssh2putty.sh [new file with mode: 0755]
openssh-5.3p1/regress/sshd-log-wrapper.sh [new file with mode: 0644]
openssh-5.3p1/regress/stderr-after-eof.sh [new file with mode: 0644]
openssh-5.3p1/regress/stderr-data.sh [new file with mode: 0644]
openssh-5.3p1/regress/t4.ok [new file with mode: 0644]
openssh-5.3p1/regress/t5.ok [new file with mode: 0644]
openssh-5.3p1/regress/test-exec.sh [new file with mode: 0644]
openssh-5.3p1/regress/transfer.sh [new file with mode: 0644]
openssh-5.3p1/regress/try-ciphers.sh [new file with mode: 0644]
openssh-5.3p1/regress/yes-head.sh [new file with mode: 0644]
openssh-5.3p1/rijndael.c [new file with mode: 0644]
openssh-5.3p1/rijndael.h [new file with mode: 0644]
openssh-5.3p1/roaming.h [new file with mode: 0644]
openssh-5.3p1/roaming_common.c [new file with mode: 0644]
openssh-5.3p1/roaming_dummy.c [new file with mode: 0644]
openssh-5.3p1/rsa.c [new file with mode: 0644]
openssh-5.3p1/rsa.h [new file with mode: 0644]
openssh-5.3p1/scard-opensc.c [new file with mode: 0644]
openssh-5.3p1/scard.c [new file with mode: 0644]
openssh-5.3p1/scard.h [new file with mode: 0644]
openssh-5.3p1/scard/Makefile.in [new file with mode: 0644]
openssh-5.3p1/scard/Ssh.bin [new file with mode: 0644]
openssh-5.3p1/scard/Ssh.bin.uu [new file with mode: 0644]
openssh-5.3p1/scard/Ssh.java [new file with mode: 0644]
openssh-5.3p1/schnorr.c [new file with mode: 0644]
openssh-5.3p1/schnorr.h [new file with mode: 0644]
openssh-5.3p1/scp.0 [new file with mode: 0644]
openssh-5.3p1/scp.1 [new file with mode: 0644]
openssh-5.3p1/scp.c [new file with mode: 0644]
openssh-5.3p1/servconf.c [new file with mode: 0644]
openssh-5.3p1/servconf.h [new file with mode: 0644]
openssh-5.3p1/serverloop.c [new file with mode: 0644]
openssh-5.3p1/serverloop.h [new file with mode: 0644]
openssh-5.3p1/session.c [new file with mode: 0644]
openssh-5.3p1/session.h [new file with mode: 0644]
openssh-5.3p1/sftp-client.c [new file with mode: 0644]
openssh-5.3p1/sftp-client.h [new file with mode: 0644]
openssh-5.3p1/sftp-common.c [new file with mode: 0644]
openssh-5.3p1/sftp-common.h [new file with mode: 0644]
openssh-5.3p1/sftp-glob.c [new file with mode: 0644]
openssh-5.3p1/sftp-server-main.c [new file with mode: 0644]
openssh-5.3p1/sftp-server.0 [new file with mode: 0644]
openssh-5.3p1/sftp-server.8 [new file with mode: 0644]
openssh-5.3p1/sftp-server.c [new file with mode: 0644]
openssh-5.3p1/sftp.0 [new file with mode: 0644]
openssh-5.3p1/sftp.1 [new file with mode: 0644]
openssh-5.3p1/sftp.c [new file with mode: 0644]
openssh-5.3p1/sftp.h [new file with mode: 0644]
openssh-5.3p1/ssh-add.0 [new file with mode: 0644]
openssh-5.3p1/ssh-add.1 [new file with mode: 0644]
openssh-5.3p1/ssh-add.c [new file with mode: 0644]
openssh-5.3p1/ssh-agent.0 [new file with mode: 0644]
openssh-5.3p1/ssh-agent.1 [new file with mode: 0644]
openssh-5.3p1/ssh-agent.c [new file with mode: 0644]
openssh-5.3p1/ssh-dss.c [new file with mode: 0644]
openssh-5.3p1/ssh-gss.h [new file with mode: 0644]
openssh-5.3p1/ssh-keygen.0 [new file with mode: 0644]
openssh-5.3p1/ssh-keygen.1 [new file with mode: 0644]
openssh-5.3p1/ssh-keygen.c [new file with mode: 0644]
openssh-5.3p1/ssh-keyscan.0 [new file with mode: 0644]
openssh-5.3p1/ssh-keyscan.1 [new file with mode: 0644]
openssh-5.3p1/ssh-keyscan.c [new file with mode: 0644]
openssh-5.3p1/ssh-keysign.0 [new file with mode: 0644]
openssh-5.3p1/ssh-keysign.8 [new file with mode: 0644]
openssh-5.3p1/ssh-keysign.c [new file with mode: 0644]
openssh-5.3p1/ssh-rand-helper.0 [new file with mode: 0644]
openssh-5.3p1/ssh-rand-helper.8 [new file with mode: 0644]
openssh-5.3p1/ssh-rand-helper.c [new file with mode: 0644]
openssh-5.3p1/ssh-rsa.c [new file with mode: 0644]
openssh-5.3p1/ssh-vulnkey.1 [new file with mode: 0644]
openssh-5.3p1/ssh-vulnkey.c [new file with mode: 0644]
openssh-5.3p1/ssh.0 [new file with mode: 0644]
openssh-5.3p1/ssh.1 [new file with mode: 0644]
openssh-5.3p1/ssh.c [new file with mode: 0644]
openssh-5.3p1/ssh.h [new file with mode: 0644]
openssh-5.3p1/ssh1.h [new file with mode: 0644]
openssh-5.3p1/ssh2.h [new file with mode: 0644]
openssh-5.3p1/ssh_config [new file with mode: 0644]
openssh-5.3p1/ssh_config.0 [new file with mode: 0644]
openssh-5.3p1/ssh_config.5 [new file with mode: 0644]
openssh-5.3p1/ssh_prng_cmds.in [new file with mode: 0644]
openssh-5.3p1/sshconnect.c [new file with mode: 0644]
openssh-5.3p1/sshconnect.h [new file with mode: 0644]
openssh-5.3p1/sshconnect1.c [new file with mode: 0644]
openssh-5.3p1/sshconnect2.c [new file with mode: 0644]
openssh-5.3p1/sshd.0 [new file with mode: 0644]
openssh-5.3p1/sshd.8 [new file with mode: 0644]
openssh-5.3p1/sshd.c [new file with mode: 0644]
openssh-5.3p1/sshd_config [new file with mode: 0644]
openssh-5.3p1/sshd_config.0 [new file with mode: 0644]
openssh-5.3p1/sshd_config.5 [new file with mode: 0644]
openssh-5.3p1/sshlogin.c [new file with mode: 0644]
openssh-5.3p1/sshlogin.h [new file with mode: 0644]
openssh-5.3p1/sshpty.c [new file with mode: 0644]
openssh-5.3p1/sshpty.h [new file with mode: 0644]
openssh-5.3p1/sshtty.c [new file with mode: 0644]
openssh-5.3p1/survey.sh.in [new file with mode: 0644]
openssh-5.3p1/ttymodes.c [new file with mode: 0644]
openssh-5.3p1/ttymodes.h [new file with mode: 0644]
openssh-5.3p1/uidswap.c [new file with mode: 0644]
openssh-5.3p1/uidswap.h [new file with mode: 0644]
openssh-5.3p1/umac.c [new file with mode: 0644]
openssh-5.3p1/umac.h [new file with mode: 0644]
openssh-5.3p1/uuencode.c [new file with mode: 0644]
openssh-5.3p1/uuencode.h [new file with mode: 0644]
openssh-5.3p1/version.h [new file with mode: 0644]
openssh-5.3p1/xmalloc.c [new file with mode: 0644]
openssh-5.3p1/xmalloc.h [new file with mode: 0644]
openssh_5.3p1-3ubuntu3.debian.tar.gz [new file with mode: 0644]
openssh_5.3p1-3ubuntu3.dsc [new file with mode: 0644]
openssh_5.3p1.orig.tar.gz [new file with mode: 0644]

diff --git a/openssh-5.3p1/.pc/.version b/openssh-5.3p1/.pc/.version
new file mode 100644 (file)
index 0000000..0cfbf08
--- /dev/null
@@ -0,0 +1 @@
+2
diff --git a/openssh-5.3p1/.pc/applied-patches b/openssh-5.3p1/.pc/applied-patches
new file mode 100644 (file)
index 0000000..22d1ecf
--- /dev/null
@@ -0,0 +1,41 @@
+gssapi.patch
+gssapi-autoconf.patch
+gssapi-compat.patch
+gssapi-dump.patch
+old-gssapi.patch
+config-guess-sub.patch
+selinux-role.patch
+selinux-autoconf.patch
+selinux-fix-chroot-directory.patch
+ssh-vulnkey.patch
+ssh1-keepalive.patch
+keepalive-extensions.patch
+oom-adjust.patch
+oom-adjust-always-reset.patch
+syslog-level-silent.patch
+quieter-signals.patch
+helpful-wait-terminate.patch
+banner-noslash.patch
+keyfile-debug.patch
+gnome-ssh-askpass2-link.patch
+user-group-modes.patch
+hurd-epfnosupport.patch
+scp-quoting.patch
+shell-path.patch
+ssh-copy-id-status-check.patch
+ssh-copy-id-trailing-colons.patch
+no-constraint-fallback.patch
+sshd-ignore-sighup.patch
+package-versioning.patch
+debian-banner.patch
+authorized-keys-man-symlink.patch
+lintian-symlink-pickiness.patch
+openbsd-docs.patch
+ssh-argv0.patch
+doc-connection-sharing.patch
+doc-hash-tab-completion.patch
+no-openssl-version-check.patch
+gnome-ssh-askpass2-icon.patch
+debian-config.patch
+consolekit.patch
+doc-upstart.patch
diff --git a/openssh-5.3p1/.pc/authorized-keys-man-symlink.patch/Makefile.in b/openssh-5.3p1/.pc/authorized-keys-man-symlink.patch/Makefile.in
new file mode 100644 (file)
index 0000000..92fd4aa
--- /dev/null
@@ -0,0 +1,457 @@
+# $Id: Makefile.in,v 1.300 2009/08/28 00:47:38 djm Exp $
+
+# uncomment if you run a non bourne compatable shell. Ie. csh
+#SHELL = @SH@
+
+AUTORECONF=autoreconf
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+sbindir=@sbindir@
+libexecdir=@libexecdir@
+datadir=@datadir@
+datarootdir=@datarootdir@
+mandir=@mandir@
+mansubdir=@mansubdir@
+sysconfdir=@sysconfdir@
+piddir=@piddir@
+srcdir=@srcdir@
+top_srcdir=@top_srcdir@
+
+DESTDIR=
+VPATH=@srcdir@
+SSH_PROGRAM=@bindir@/ssh
+ASKPASS_PROGRAM=$(libexecdir)/ssh-askpass
+SFTP_SERVER=$(libexecdir)/sftp-server
+SSH_KEYSIGN=$(libexecdir)/ssh-keysign
+RAND_HELPER=$(libexecdir)/ssh-rand-helper
+SSH_DATADIR=$(datadir)/ssh
+PRIVSEP_PATH=@PRIVSEP_PATH@
+SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@
+STRIP_OPT=@STRIP_OPT@
+
+PATHS= -DSSHDIR=\"$(sysconfdir)\" \
+       -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \
+       -D_PATH_SSH_ASKPASS_DEFAULT=\"$(ASKPASS_PROGRAM)\" \
+       -D_PATH_SFTP_SERVER=\"$(SFTP_SERVER)\" \
+       -D_PATH_SSH_KEY_SIGN=\"$(SSH_KEYSIGN)\" \
+       -D_PATH_SSH_PIDDIR=\"$(piddir)\" \
+       -D_PATH_PRIVSEP_CHROOT_DIR=\"$(PRIVSEP_PATH)\" \
+       -DSSH_RAND_HELPER=\"$(RAND_HELPER)\" \
+       -D_PATH_SSH_DATADIR=\"$(SSH_DATADIR)\"
+
+CC=@CC@
+LD=@LD@
+CFLAGS=@CFLAGS@
+CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
+LIBS=@LIBS@
+SSHDLIBS=@SSHDLIBS@
+LIBEDIT=@LIBEDIT@
+AR=@AR@
+AWK=@AWK@
+RANLIB=@RANLIB@
+INSTALL=@INSTALL@
+PERL=@PERL@
+SED=@SED@
+ENT=@ENT@
+XAUTH_PATH=@XAUTH_PATH@
+LDFLAGS=-L. -Lopenbsd-compat/ @LDFLAGS@
+EXEEXT=@EXEEXT@
+
+INSTALL_SSH_PRNG_CMDS=@INSTALL_SSH_PRNG_CMDS@
+INSTALL_SSH_RAND_HELPER=@INSTALL_SSH_RAND_HELPER@
+
+TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-agent$(EXEEXT) scp$(EXEEXT) ssh-rand-helper${EXEEXT} sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-vulnkey$(EXEEXT)
+
+LIBSSH_OBJS=acss.o authfd.o authfile.o bufaux.o bufbn.o buffer.o \
+       canohost.o channels.o cipher.o cipher-acss.o cipher-aes.o \
+       cipher-bf1.o cipher-ctr.o cipher-3des1.o cleanup.o \
+       compat.o compress.o crc32.o deattack.o fatal.o hostfile.o \
+       log.o match.o md-sha256.o moduli.o nchan.o packet.o \
+       readpass.o rsa.o ttymodes.o xmalloc.o addrmatch.o \
+       atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \
+       monitor_fdpass.o rijndael.o ssh-dss.o ssh-rsa.o dh.o kexdh.o \
+       kexgex.o kexdhc.o kexgexc.o scard.o msg.o progressmeter.o dns.o \
+       entropy.o scard-opensc.o gss-genr.o umac.o jpake.o schnorr.o \
+       kexgssc.o
+
+SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \
+       sshconnect.o sshconnect1.o sshconnect2.o mux.o \
+       roaming_common.o
+
+SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o \
+       sshpty.o sshlogin.o servconf.o serverloop.o \
+       auth.o auth1.o auth2.o auth-options.o session.o \
+       auth-chall.o auth2-chall.o groupaccess.o \
+       auth-skey.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \
+       auth2-none.o auth2-passwd.o auth2-pubkey.o auth2-jpake.o \
+       monitor_mm.o monitor.o monitor_wrap.o kexdhs.o kexgexs.o \
+       auth-krb5.o \
+       auth2-gss.o gss-serv.o gss-serv-krb5.o kexgsss.o\
+       loginrec.o auth-pam.o auth-shadow.o auth-sia.o md5crypt.o \
+       audit.o audit-bsm.o platform.o sftp-server.o sftp-common.o \
+       roaming_common.o
+
+MANPAGES       = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-rand-helper.8.out ssh-keysign.8.out ssh-vulnkey.1.out sshd_config.5.out ssh_config.5.out
+MANPAGES_IN    = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-rand-helper.8 ssh-keysign.8 ssh-vulnkey.1 sshd_config.5 ssh_config.5
+MANTYPE                = @MANTYPE@
+
+CONFIGFILES=sshd_config.out ssh_config.out moduli.out
+CONFIGFILES_IN=sshd_config ssh_config moduli
+
+PATHSUBS       = \
+       -e 's|/etc/ssh/ssh_prng_cmds|$(sysconfdir)/ssh_prng_cmds|g' \
+       -e 's|/etc/ssh/ssh_config|$(sysconfdir)/ssh_config|g' \
+       -e 's|/etc/ssh/ssh_known_hosts|$(sysconfdir)/ssh_known_hosts|g' \
+       -e 's|/etc/ssh/sshd_config|$(sysconfdir)/sshd_config|g' \
+       -e 's|/usr/libexec|$(libexecdir)|g' \
+       -e 's|/etc/shosts.equiv|$(sysconfdir)/shosts.equiv|g' \
+       -e 's|/etc/ssh/ssh_host_key|$(sysconfdir)/ssh_host_key|g' \
+       -e 's|/etc/ssh/ssh_host_dsa_key|$(sysconfdir)/ssh_host_dsa_key|g' \
+       -e 's|/etc/ssh/ssh_host_rsa_key|$(sysconfdir)/ssh_host_rsa_key|g' \
+       -e 's|/var/run/sshd.pid|$(piddir)/sshd.pid|g' \
+       -e 's|/etc/moduli|$(sysconfdir)/moduli|g' \
+       -e 's|/etc/ssh/moduli|$(sysconfdir)/moduli|g' \
+       -e 's|/etc/ssh/sshrc|$(sysconfdir)/sshrc|g' \
+       -e 's|/usr/X11R6/bin/xauth|$(XAUTH_PATH)|g' \
+       -e 's|/var/empty|$(PRIVSEP_PATH)|g' \
+       -e 's|/usr/bin:/bin:/usr/sbin:/sbin|@user_path@|g'
+
+FIXPATHSCMD    = $(SED) $(PATHSUBS)
+
+all: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS)
+
+$(LIBSSH_OBJS): Makefile.in config.h
+$(SSHOBJS): Makefile.in config.h
+$(SSHDOBJS): Makefile.in config.h
+
+.c.o:
+       $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+LIBCOMPAT=openbsd-compat/libopenbsd-compat.a
+$(LIBCOMPAT): always
+       (cd openbsd-compat && $(MAKE))
+always:
+
+libssh.a: $(LIBSSH_OBJS)
+       $(AR) rv $@ $(LIBSSH_OBJS)
+       $(RANLIB) $@
+
+ssh$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHOBJS)
+       $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+sshd$(EXEEXT): libssh.a        $(LIBCOMPAT) $(SSHDOBJS)
+       $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS)
+
+scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o
+       $(LD) -o $@ scp.o progressmeter.o bufaux.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-add.o
+       $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-agent$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-agent.o
+       $(LD) -o $@ ssh-agent.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o
+       $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o roaming_dummy.o
+       $(LD) -o $@ ssh-keysign.o readconf.o roaming_dummy.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keyscan.o roaming_dummy.o
+       $(LD) -o $@ ssh-keyscan.o roaming_dummy.o $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS)
+
+sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-common.o sftp-server.o sftp-server-main.o
+       $(LD) -o $@ sftp-server.o sftp-common.o sftp-server-main.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+sftp$(EXEEXT): $(LIBCOMPAT) libssh.a sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o
+       $(LD) -o $@ progressmeter.o sftp.o sftp-client.o sftp-common.o sftp-glob.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT)
+
+ssh-rand-helper${EXEEXT}: $(LIBCOMPAT) libssh.a ssh-rand-helper.o
+       $(LD) -o $@ ssh-rand-helper.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+ssh-vulnkey$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-vulnkey.o
+       $(LD) -o $@ ssh-vulnkey.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
+
+# test driver for the loginrec code - not built by default
+logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o
+       $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS)
+
+$(MANPAGES): $(MANPAGES_IN)
+       if test "$(MANTYPE)" = "cat"; then \
+               manpage=$(srcdir)/`echo $@ | sed 's/\.[1-9]\.out$$/\.0/'`; \
+       else \
+               manpage=$(srcdir)/`echo $@ | sed 's/\.out$$//'`; \
+       fi; \
+       if test "$(MANTYPE)" = "man"; then \
+               $(FIXPATHSCMD) $${manpage} | $(AWK) -f $(srcdir)/mdoc2man.awk > $@; \
+       else \
+               $(FIXPATHSCMD) $${manpage} > $@; \
+       fi
+
+$(CONFIGFILES): $(CONFIGFILES_IN)
+       conffile=`echo $@ | sed 's/.out$$//'`; \
+       $(FIXPATHSCMD) $(srcdir)/$${conffile} > $@
+
+ssh_prng_cmds.out:     ssh_prng_cmds
+       if test ! -z "$(INSTALL_SSH_PRNG_CMDS)"; then \
+               $(PERL) $(srcdir)/fixprogs ssh_prng_cmds $(ENT); \
+       fi
+
+# fake rule to stop make trying to compile moduli.o into a binary "moduli.o"
+moduli:
+       echo
+
+clean: regressclean
+       rm -f *.o *.a $(TARGETS) logintest config.cache config.log
+       rm -f *.out core survey
+       (cd openbsd-compat && $(MAKE) clean)
+
+distclean:     regressclean
+       rm -f *.o *.a $(TARGETS) logintest config.cache config.log
+       rm -f *.out core opensshd.init openssh.xml
+       rm -f Makefile buildpkg.sh config.h config.status ssh_prng_cmds
+       rm -f survey.sh openbsd-compat/regress/Makefile *~ 
+       rm -rf autom4te.cache
+       (cd openbsd-compat && $(MAKE) distclean)
+       (cd scard && $(MAKE) distclean)
+       if test -d pkg ; then \
+               rm -fr pkg ; \
+       fi
+
+veryclean: distclean
+       rm -f configure config.h.in *.0
+
+mrproper: veryclean
+
+realclean: veryclean
+
+catman-do:
+       @for f in $(MANPAGES_IN) ; do \
+               base=`echo $$f | sed 's/\..*$$//'` ; \
+               echo "$$f -> $$base.0" ; \
+               nroff -mandoc $$f | cat -v | sed -e 's/.\^H//g' \
+                       >$$base.0 ; \
+       done
+
+distprep: catman-do
+       $(AUTORECONF)
+       -rm -rf autom4te.cache
+       (cd scard && $(MAKE) -f Makefile.in distprep)
+
+install: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS) install-files install-sysconf host-key check-config
+install-nokeys: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS) install-files install-sysconf
+install-nosysconf: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS) install-files
+
+check-config:
+       -$(DESTDIR)$(sbindir)/sshd -t -f $(DESTDIR)$(sysconfdir)/sshd_config
+
+scard-install:
+       (cd scard && env DESTDIR=$(DESTDIR) $(MAKE) DESTDIR=$(DESTDIR) install)
+
+install-files: scard-install
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(sbindir)
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(mandir)
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(datadir)
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/$(mansubdir)1
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/$(mansubdir)5
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/$(mansubdir)8
+       $(srcdir)/mkinstalldirs $(DESTDIR)$(libexecdir)
+       (umask 022 ; $(srcdir)/mkinstalldirs $(DESTDIR)$(PRIVSEP_PATH))
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh $(DESTDIR)$(bindir)/ssh
+       $(INSTALL) -m 0755 $(STRIP_OPT) scp $(DESTDIR)$(bindir)/scp
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh-add $(DESTDIR)$(bindir)/ssh-add
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh-agent $(DESTDIR)$(bindir)/ssh-agent
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keygen $(DESTDIR)$(bindir)/ssh-keygen
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keyscan $(DESTDIR)$(bindir)/ssh-keyscan
+       $(INSTALL) -m 0755 $(STRIP_OPT) sshd $(DESTDIR)$(sbindir)/sshd
+       if test ! -z "$(INSTALL_SSH_RAND_HELPER)" ; then \
+               $(INSTALL) -m 0755 $(STRIP_OPT) ssh-rand-helper $(DESTDIR)$(libexecdir)/ssh-rand-helper ; \
+       fi
+       $(INSTALL) -m 4711 $(STRIP_OPT) ssh-keysign $(DESTDIR)$(SSH_KEYSIGN)
+       $(INSTALL) -m 0755 $(STRIP_OPT) sftp $(DESTDIR)$(bindir)/sftp
+       $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server $(DESTDIR)$(SFTP_SERVER)
+       $(INSTALL) -m 0755 $(STRIP_OPT) ssh-vulnkey $(DESTDIR)$(bindir)/ssh-vulnkey
+       $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1
+       $(INSTALL) -m 644 scp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1
+       $(INSTALL) -m 644 ssh-add.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1
+       $(INSTALL) -m 644 ssh-agent.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-agent.1
+       $(INSTALL) -m 644 ssh-keygen.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keygen.1
+       $(INSTALL) -m 644 ssh-keyscan.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keyscan.1
+       $(INSTALL) -m 644 moduli.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/moduli.5
+       $(INSTALL) -m 644 sshd_config.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/sshd_config.5
+       $(INSTALL) -m 644 ssh_config.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/ssh_config.5
+       $(INSTALL) -m 644 sshd.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sshd.8
+       if [ ! -z "$(INSTALL_SSH_RAND_HELPER)" ]; then \
+               $(INSTALL) -m 644 ssh-rand-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-rand-helper.8 ; \
+       fi
+       $(INSTALL) -m 644 sftp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/sftp.1
+       $(INSTALL) -m 644 sftp-server.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8
+       $(INSTALL) -m 644 ssh-keysign.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8
+       $(INSTALL) -m 644 ssh-vulnkey.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-vulnkey.1
+       -rm -f $(DESTDIR)$(bindir)/slogin
+       ln -s ./ssh$(EXEEXT) $(DESTDIR)$(bindir)/slogin
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
+       ln -s ./ssh.1 $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
+
+install-sysconf:
+       if [ ! -d $(DESTDIR)$(sysconfdir) ]; then \
+               $(srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir); \
+       fi
+       @if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_config ]; then \
+               $(INSTALL) -m 644 ssh_config.out $(DESTDIR)$(sysconfdir)/ssh_config; \
+       else \
+               echo "$(DESTDIR)$(sysconfdir)/ssh_config already exists, install will not overwrite"; \
+       fi
+       @if [ ! -f $(DESTDIR)$(sysconfdir)/sshd_config ]; then \
+               $(INSTALL) -m 644 sshd_config.out $(DESTDIR)$(sysconfdir)/sshd_config; \
+       else \
+               echo "$(DESTDIR)$(sysconfdir)/sshd_config already exists, install will not overwrite"; \
+       fi
+       @if [ -f ssh_prng_cmds ] && [ ! -z "$(INSTALL_SSH_PRNG_CMDS)" ]; then \
+               if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_prng_cmds ] ; then \
+                       $(INSTALL) -m 644 ssh_prng_cmds.out $(DESTDIR)$(sysconfdir)/ssh_prng_cmds; \
+               else \
+                       echo "$(DESTDIR)$(sysconfdir)/ssh_prng_cmds already exists, install will not overwrite"; \
+               fi ; \
+       fi
+       @if [ ! -f $(DESTDIR)$(sysconfdir)/moduli ]; then \
+               if [ -f $(DESTDIR)$(sysconfdir)/primes ]; then \
+                       echo "moving $(DESTDIR)$(sysconfdir)/primes to $(DESTDIR)$(sysconfdir)/moduli"; \
+                       mv "$(DESTDIR)$(sysconfdir)/primes" "$(DESTDIR)$(sysconfdir)/moduli"; \
+               else \
+                       $(INSTALL) -m 644 moduli.out $(DESTDIR)$(sysconfdir)/moduli; \
+               fi ; \
+       else \
+               echo "$(DESTDIR)$(sysconfdir)/moduli already exists, install will not overwrite"; \
+       fi
+
+host-key: ssh-keygen$(EXEEXT)
+       @if [ -z "$(DESTDIR)" ] ; then \
+               if [ -f "$(DESTDIR)$(sysconfdir)/ssh_host_key" ] ; then \
+                       echo "$(DESTDIR)$(sysconfdir)/ssh_host_key already exists, skipping." ; \
+               else \
+                       ./ssh-keygen -t rsa1 -f $(DESTDIR)$(sysconfdir)/ssh_host_key -N "" ; \
+               fi ; \
+               if [ -f $(DESTDIR)$(sysconfdir)/ssh_host_dsa_key ] ; then \
+                       echo "$(DESTDIR)$(sysconfdir)/ssh_host_dsa_key already exists, skipping." ; \
+               else \
+                       ./ssh-keygen -t dsa -f $(DESTDIR)$(sysconfdir)/ssh_host_dsa_key -N "" ; \
+               fi ; \
+               if [ -f $(DESTDIR)$(sysconfdir)/ssh_host_rsa_key ] ; then \
+                       echo "$(DESTDIR)$(sysconfdir)/ssh_host_rsa_key already exists, skipping." ; \
+               else \
+                       ./ssh-keygen -t rsa -f $(DESTDIR)$(sysconfdir)/ssh_host_rsa_key -N "" ; \
+               fi ; \
+       fi ;
+
+host-key-force: ssh-keygen$(EXEEXT)
+       ./ssh-keygen -t rsa1 -f $(DESTDIR)$(sysconfdir)/ssh_host_key -N ""
+       ./ssh-keygen -t dsa -f $(DESTDIR)$(sysconfdir)/ssh_host_dsa_key -N ""
+       ./ssh-keygen -t rsa -f $(DESTDIR)$(sysconfdir)/ssh_host_rsa_key -N ""
+
+uninstallall:  uninstall
+       -rm -f $(DESTDIR)$(sysconfdir)/ssh_config
+       -rm -f $(DESTDIR)$(sysconfdir)/sshd_config
+       -rm -f $(DESTDIR)$(sysconfdir)/ssh_prng_cmds
+       -rmdir $(DESTDIR)$(sysconfdir)
+       -rmdir $(DESTDIR)$(bindir)
+       -rmdir $(DESTDIR)$(sbindir)
+       -rmdir $(DESTDIR)$(mandir)/$(mansubdir)1
+       -rmdir $(DESTDIR)$(mandir)/$(mansubdir)8
+       -rmdir $(DESTDIR)$(mandir)
+       -rmdir $(DESTDIR)$(libexecdir)
+
+uninstall:
+       -rm -f $(DESTDIR)$(bindir)/slogin
+       -rm -f $(DESTDIR)$(bindir)/ssh$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/scp$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/ssh-add$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/ssh-agent$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/ssh-keygen$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/ssh-keyscan$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/ssh-vulnkey$(EXEEXT)
+       -rm -f $(DESTDIR)$(bindir)/sftp$(EXEEXT)
+       -rm -f $(DESTDIR)$(sbindir)/sshd$(EXEEXT)
+       -rm -r $(DESTDIR)$(SFTP_SERVER)$(EXEEXT)
+       -rm -f $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT)
+       -rm -f $(DESTDIR)$(RAND_HELPER)$(EXEEXT)
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-agent.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keygen.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/sftp.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keyscan.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-vulnkey.1
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/sshd.8
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-rand-helper.8
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8
+       -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
+
+tests interop-tests:   $(TARGETS)
+       BUILDDIR=`pwd`; \
+       [ -d `pwd`/regress ]  ||  mkdir -p `pwd`/regress; \
+       [ -f `pwd`/regress/Makefile ]  || \
+           ln -s `cd $(srcdir) && pwd`/regress/Makefile `pwd`/regress/Makefile ; \
+       TEST_SHELL="@TEST_SHELL@"; \
+       TEST_SSH_SSH="$${BUILDDIR}/ssh"; \
+       TEST_SSH_SSHD="$${BUILDDIR}/sshd"; \
+       TEST_SSH_SSHAGENT="$${BUILDDIR}/ssh-agent"; \
+       TEST_SSH_SSHADD="$${BUILDDIR}/ssh-add"; \
+       TEST_SSH_SSHKEYGEN="$${BUILDDIR}/ssh-keygen"; \
+       TEST_SSH_SSHKEYSCAN="$${BUILDDIR}/ssh-keyscan"; \
+       TEST_SSH_SFTP="$${BUILDDIR}/sftp"; \
+       TEST_SSH_SFTPSERVER="$${BUILDDIR}/sftp-server"; \
+       TEST_SSH_PLINK="plink"; \
+       TEST_SSH_PUTTYGEN="puttygen"; \
+       TEST_SSH_CONCH="conch"; \
+       TEST_SSH_IPV6="@TEST_SSH_IPV6@" ; \
+       cd $(srcdir)/regress || exit $$?; \
+       $(MAKE) \
+               .OBJDIR="$${BUILDDIR}/regress" \
+               .CURDIR="`pwd`" \
+               BUILDDIR="$${BUILDDIR}" \
+               OBJ="$${BUILDDIR}/regress/" \
+               PATH="$${BUILDDIR}:$${PATH}" \
+               TEST_SHELL="$${TEST_SHELL}" \
+               TEST_SSH_SSH="$${TEST_SSH_SSH}" \
+               TEST_SSH_SSHD="$${TEST_SSH_SSHD}" \
+               TEST_SSH_SSHAGENT="$${TEST_SSH_SSHAGENT}" \
+               TEST_SSH_SSHADD="$${TEST_SSH_SSHADD}" \
+               TEST_SSH_SSHKEYGEN="$${TEST_SSH_SSHKEYGEN}" \
+               TEST_SSH_SSHKEYSCAN="$${TEST_SSH_SSHKEYSCAN}" \
+               TEST_SSH_SFTP="$${TEST_SSH_SFTP}" \
+               TEST_SSH_SFTPSERVER="$${TEST_SSH_SFTPSERVER}" \
+               TEST_SSH_PLINK="$${TEST_SSH_PLINK}" \
+               TEST_SSH_PUTTYGEN="$${TEST_SSH_PUTTYGEN}" \
+               TEST_SSH_CONCH="$${TEST_SSH_CONCH}" \
+               TEST_SSH_IPV6="@TEST_SSH_IPV6@" \
+               EXEEXT="$(EXEEXT)" \
+               $@ && echo all tests passed
+
+compat-tests: $(LIBCOMPAT)
+       (cd openbsd-compat/regress && $(MAKE))
+
+regressclean:
+       if [ -f regress/Makefile ] && [ -r regress/Makefile ]; then \
+               (cd regress && $(MAKE) clean) \
+       fi
+
+survey: survey.sh ssh
+       @$(SHELL) ./survey.sh > survey
+       @echo 'The survey results have been placed in the file "survey" in the'
+       @echo 'current directory.  Please review the file then send with'
+       @echo '"make send-survey".'
+
+send-survey:   survey
+       mail portable-survey@mindrot.org <survey
+
+package: $(CONFIGFILES) ssh_prng_cmds.out $(MANPAGES) $(TARGETS)
+       if [ "@MAKE_PACKAGE_SUPPORTED@" = yes ]; then \
+               sh buildpkg.sh; \
+       fi
+
diff --git a/openssh-5.3p1/.pc/banner-noslash.patch/sshconnect2.c b/openssh-5.3p1/.pc/banner-noslash.patch/sshconnect2.c
new file mode 100644 (file)
index 0000000..cf1ba63
--- /dev/null
@@ -0,0 +1,1966 @@
+/* $OpenBSD: sshconnect2.c,v 1.171 2009/03/05 07:18:19 djm Exp $ */
+/*
+ * Copyright (c) 2000 Markus Friedl.  All rights reserved.
+ * Copyright (c) 2008 Damien Miller.  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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ */
+
+#include "includes.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+
+#include <errno.h>
+#include <netdb.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#if defined(HAVE_STRNVIS) && defined(HAVE_VIS_H)
+#include <vis.h>
+#endif
+
+#include "openbsd-compat/sys-queue.h"
+
+#include "xmalloc.h"
+#include "ssh.h"
+#include "ssh2.h"
+#include "buffer.h"
+#include "packet.h"
+#include "compat.h"
+#include "cipher.h"
+#include "key.h"
+#include "kex.h"
+#include "myproposal.h"
+#include "sshconnect.h"
+#include "authfile.h"
+#include "dh.h"
+#include "authfd.h"
+#include "log.h"
+#include "readconf.h"
+#include "misc.h"
+#include "match.h"
+#include "dispatch.h"
+#include "canohost.h"
+#include "msg.h"
+#include "pathnames.h"
+#include "uidswap.h"
+#include "schnorr.h"
+#include "jpake.h"
+
+#ifdef GSSAPI
+#include "ssh-gss.h"
+#endif
+
+/* import */
+extern char *client_version_string;
+extern char *server_version_string;
+extern Options options;
+
+/*
+ * SSH2 key exchange
+ */
+
+u_char *session_id2 = NULL;
+u_int session_id2_len = 0;
+
+char *xxx_host;
+struct sockaddr *xxx_hostaddr;
+
+Kex *xxx_kex = NULL;
+
+static int
+verify_host_key_callback(Key *hostkey)
+{
+       if (verify_host_key(xxx_host, xxx_hostaddr, hostkey) == -1)
+               fatal("Host key verification failed.");
+       return 0;
+}
+
+void
+ssh_kex2(char *host, struct sockaddr *hostaddr)
+{
+       Kex *kex;
+
+#ifdef GSSAPI
+       char *orig = NULL, *gss = NULL;
+       char *gss_host = NULL;
+#endif
+
+       xxx_host = host;
+       xxx_hostaddr = hostaddr;
+
+#ifdef GSSAPI
+       if (options.gss_keyex) {
+               /* Add the GSSAPI mechanisms currently supported on this 
+                * client to the key exchange algorithm proposal */
+               orig = myproposal[PROPOSAL_KEX_ALGS];
+
+               if (options.gss_trust_dns)
+                       gss_host = (char *)get_canonical_hostname(1);
+               else
+                       gss_host = host;
+
+               gss = ssh_gssapi_client_mechanisms(gss_host, options.gss_client_identity);
+               if (gss) {
+                       debug("Offering GSSAPI proposal: %s", gss);
+                       xasprintf(&myproposal[PROPOSAL_KEX_ALGS],
+                           "%s,%s", gss, orig);
+               }
+       }
+#endif
+
+       if (options.ciphers == (char *)-1) {
+               logit("No valid ciphers for protocol version 2 given, using defaults.");
+               options.ciphers = NULL;
+       }
+       if (options.ciphers != NULL) {
+               myproposal[PROPOSAL_ENC_ALGS_CTOS] =
+               myproposal[PROPOSAL_ENC_ALGS_STOC] = options.ciphers;
+       }
+       myproposal[PROPOSAL_ENC_ALGS_CTOS] =
+           compat_cipher_proposal(myproposal[PROPOSAL_ENC_ALGS_CTOS]);
+       myproposal[PROPOSAL_ENC_ALGS_STOC] =
+           compat_cipher_proposal(myproposal[PROPOSAL_ENC_ALGS_STOC]);
+       if (options.compression) {
+               myproposal[PROPOSAL_COMP_ALGS_CTOS] =
+               myproposal[PROPOSAL_COMP_ALGS_STOC] = "zlib@openssh.com,zlib,none";
+       } else {
+               myproposal[PROPOSAL_COMP_ALGS_CTOS] =
+               myproposal[PROPOSAL_COMP_ALGS_STOC] = "none,zlib@openssh.com,zlib";
+       }
+       if (options.macs != NULL) {
+               myproposal[PROPOSAL_MAC_ALGS_CTOS] =
+               myproposal[PROPOSAL_MAC_ALGS_STOC] = options.macs;
+       }
+       if (options.hostkeyalgorithms != NULL)
+               myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] =
+                   options.hostkeyalgorithms;
+
+#ifdef GSSAPI
+       /* If we've got GSSAPI algorithms, then we also support the
+        * 'null' hostkey, as a last resort */
+       if (options.gss_keyex && gss) {
+               orig = myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS];
+               xasprintf(&myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS], 
+                   "%s,null", orig);
+               xfree(gss);
+       }
+#endif
+
+       if (options.rekey_limit)
+               packet_set_rekey_limit((u_int32_t)options.rekey_limit);
+
+       /* start key exchange */
+       kex = kex_setup(myproposal);
+       kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client;
+       kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client;
+       kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
+       kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
+#ifdef GSSAPI
+       if (options.gss_keyex) {
+               kex->kex[KEX_GSS_GRP1_SHA1] = kexgss_client;
+               kex->kex[KEX_GSS_GRP14_SHA1] = kexgss_client;
+               kex->kex[KEX_GSS_GEX_SHA1] = kexgss_client;
+       }
+#endif
+       kex->client_version_string=client_version_string;
+       kex->server_version_string=server_version_string;
+       kex->verify_host_key=&verify_host_key_callback;
+
+#ifdef GSSAPI
+       if (options.gss_keyex) {
+               kex->gss_deleg_creds = options.gss_deleg_creds;
+               kex->gss_trust_dns = options.gss_trust_dns;
+               kex->gss_client = options.gss_client_identity;
+               kex->gss_host = gss_host;
+       }
+#endif
+
+       xxx_kex = kex;
+
+       dispatch_run(DISPATCH_BLOCK, &kex->done, kex);
+
+       session_id2 = kex->session_id;
+       session_id2_len = kex->session_id_len;
+
+#ifdef DEBUG_KEXDH
+       /* send 1st encrypted/maced/compressed message */
+       packet_start(SSH2_MSG_IGNORE);
+       packet_put_cstring("markus");
+       packet_send();
+       packet_write_wait();
+#endif
+}
+
+/*
+ * Authenticate user
+ */
+
+typedef struct Authctxt Authctxt;
+typedef struct Authmethod Authmethod;
+typedef struct identity Identity;
+typedef struct idlist Idlist;
+
+struct identity {
+       TAILQ_ENTRY(identity) next;
+       AuthenticationConnection *ac;   /* set if agent supports key */
+       Key     *key;                   /* public/private key */
+       char    *filename;              /* comment for agent-only keys */
+       int     tried;
+       int     isprivate;              /* key points to the private key */
+};
+TAILQ_HEAD(idlist, identity);
+
+struct Authctxt {
+       const char *server_user;
+       const char *local_user;
+       const char *host;
+       const char *service;
+       Authmethod *method;
+       int success;
+       char *authlist;
+       /* pubkey */
+       Idlist keys;
+       AuthenticationConnection *agent;
+       /* hostbased */
+       Sensitive *sensitive;
+       /* kbd-interactive */
+       int info_req_seen;
+       /* generic */
+       void *methoddata;
+};
+struct Authmethod {
+       char    *name;          /* string to compare against server's list */
+       int     (*userauth)(Authctxt *authctxt);
+       void    (*cleanup)(Authctxt *authctxt);
+       int     *enabled;       /* flag in option struct that enables method */
+       int     *batch_flag;    /* flag in option struct that disables method */
+};
+
+void   input_userauth_success(int, u_int32_t, void *);
+void   input_userauth_failure(int, u_int32_t, void *);
+void   input_userauth_banner(int, u_int32_t, void *);
+void   input_userauth_error(int, u_int32_t, void *);
+void   input_userauth_info_req(int, u_int32_t, void *);
+void   input_userauth_pk_ok(int, u_int32_t, void *);
+void   input_userauth_passwd_changereq(int, u_int32_t, void *);
+void   input_userauth_jpake_server_step1(int, u_int32_t, void *);
+void   input_userauth_jpake_server_step2(int, u_int32_t, void *);
+void   input_userauth_jpake_server_confirm(int, u_int32_t, void *);
+
+int    userauth_none(Authctxt *);
+int    userauth_pubkey(Authctxt *);
+int    userauth_passwd(Authctxt *);
+int    userauth_kbdint(Authctxt *);
+int    userauth_hostbased(Authctxt *);
+int    userauth_jpake(Authctxt *);
+
+void   userauth_jpake_cleanup(Authctxt *);
+
+#ifdef GSSAPI
+int    userauth_gssapi(Authctxt *authctxt);
+void   input_gssapi_response(int type, u_int32_t, void *);
+void   input_gssapi_token(int type, u_int32_t, void *);
+void   input_gssapi_hash(int type, u_int32_t, void *);
+void   input_gssapi_error(int, u_int32_t, void *);
+void   input_gssapi_errtok(int, u_int32_t, void *);
+int    userauth_gsskeyex(Authctxt *authctxt);
+#endif
+
+void   userauth(Authctxt *, char *);
+
+static int sign_and_send_pubkey(Authctxt *, Identity *);
+static void pubkey_prepare(Authctxt *);
+static void pubkey_cleanup(Authctxt *);
+static Key *load_identity_file(char *);
+
+static Authmethod *authmethod_get(char *authlist);
+static Authmethod *authmethod_lookup(const char *name);
+static char *authmethods_get(void);
+
+Authmethod authmethods[] = {
+#ifdef GSSAPI
+       {"gssapi-keyex",
+               userauth_gsskeyex,
+               NULL,
+               &options.gss_authentication,
+               NULL},
+       {"gssapi-with-mic",
+               userauth_gssapi,
+               NULL,
+               &options.gss_authentication,
+               NULL},
+       {"gssapi",
+               userauth_gssapi,
+               NULL,
+               &options.gss_authentication,
+               NULL},
+#endif
+       {"hostbased",
+               userauth_hostbased,
+               NULL,
+               &options.hostbased_authentication,
+               NULL},
+       {"publickey",
+               userauth_pubkey,
+               NULL,
+               &options.pubkey_authentication,
+               NULL},
+#ifdef JPAKE
+       {"jpake-01@openssh.com",
+               userauth_jpake,
+               userauth_jpake_cleanup,
+               &options.zero_knowledge_password_authentication,
+               &options.batch_mode},
+#endif
+       {"keyboard-interactive",
+               userauth_kbdint,
+               NULL,
+               &options.kbd_interactive_authentication,
+               &options.batch_mode},
+       {"password",
+               userauth_passwd,
+               NULL,
+               &options.password_authentication,
+               &options.batch_mode},
+       {"none",
+               userauth_none,
+               NULL,
+               NULL,
+               NULL},
+       {NULL, NULL, NULL, NULL, NULL}
+};
+
+void
+ssh_userauth2(const char *local_user, const char *server_user, char *host,
+    Sensitive *sensitive)
+{
+       Authctxt authctxt;
+       int type;
+
+       if (options.challenge_response_authentication)
+               options.kbd_interactive_authentication = 1;
+
+       packet_start(SSH2_MSG_SERVICE_REQUEST);
+       packet_put_cstring("ssh-userauth");
+       packet_send();
+       debug("SSH2_MSG_SERVICE_REQUEST sent");
+       packet_write_wait();
+       type = packet_read();
+       if (type != SSH2_MSG_SERVICE_ACCEPT)
+               fatal("Server denied authentication request: %d", type);
+       if (packet_remaining() > 0) {
+               char *reply = packet_get_string(NULL);
+               debug2("service_accept: %s", reply);
+               xfree(reply);
+       } else {
+               debug2("buggy server: service_accept w/o service");
+       }
+       packet_check_eom();
+       debug("SSH2_MSG_SERVICE_ACCEPT received");
+
+       if (options.preferred_authentications == NULL)
+               options.preferred_authentications = authmethods_get();
+
+       /* setup authentication context */
+       memset(&authctxt, 0, sizeof(authctxt));
+       pubkey_prepare(&authctxt);
+       authctxt.server_user = server_user;
+       authctxt.local_user = local_user;
+       authctxt.host = host;
+       authctxt.service = "ssh-connection";            /* service name */
+       authctxt.success = 0;
+       authctxt.method = authmethod_lookup("none");
+       authctxt.authlist = NULL;
+       authctxt.methoddata = NULL;
+       authctxt.sensitive = sensitive;
+       authctxt.info_req_seen = 0;
+       if (authctxt.method == NULL)
+               fatal("ssh_userauth2: internal error: cannot send userauth none request");
+
+       /* initial userauth request */
+       userauth_none(&authctxt);
+
+       dispatch_init(&input_userauth_error);
+       dispatch_set(SSH2_MSG_USERAUTH_SUCCESS, &input_userauth_success);
+       dispatch_set(SSH2_MSG_USERAUTH_FAILURE, &input_userauth_failure);
+       dispatch_set(SSH2_MSG_USERAUTH_BANNER, &input_userauth_banner);
+       dispatch_run(DISPATCH_BLOCK, &authctxt.success, &authctxt);     /* loop until success */
+
+       pubkey_cleanup(&authctxt);
+       dispatch_range(SSH2_MSG_USERAUTH_MIN, SSH2_MSG_USERAUTH_MAX, NULL);
+
+       debug("Authentication succeeded (%s).", authctxt.method->name);
+}
+
+void
+userauth(Authctxt *authctxt, char *authlist)
+{
+       if (authctxt->method != NULL && authctxt->method->cleanup != NULL)
+               authctxt->method->cleanup(authctxt);
+
+       if (authctxt->methoddata) {
+               xfree(authctxt->methoddata);
+               authctxt->methoddata = NULL;
+       }
+       if (authlist == NULL) {
+               authlist = authctxt->authlist;
+       } else {
+               if (authctxt->authlist)
+                       xfree(authctxt->authlist);
+               authctxt->authlist = authlist;
+       }
+       for (;;) {
+               Authmethod *method = authmethod_get(authlist);
+               if (method == NULL)
+                       fatal("Permission denied (%s).", authlist);
+               authctxt->method = method;
+
+               /* reset the per method handler */
+               dispatch_range(SSH2_MSG_USERAUTH_PER_METHOD_MIN,
+                   SSH2_MSG_USERAUTH_PER_METHOD_MAX, NULL);
+
+               /* and try new method */
+               if (method->userauth(authctxt) != 0) {
+                       debug2("we sent a %s packet, wait for reply", method->name);
+                       break;
+               } else {
+                       debug2("we did not send a packet, disable method");
+                       method->enabled = NULL;
+               }
+       }
+}
+
+/* ARGSUSED */
+void
+input_userauth_error(int type, u_int32_t seq, void *ctxt)
+{
+       fatal("input_userauth_error: bad message during authentication: "
+           "type %d", type);
+}
+
+/* ARGSUSED */
+void
+input_userauth_banner(int type, u_int32_t seq, void *ctxt)
+{
+       char *msg, *raw, *lang;
+       u_int len;
+
+       debug3("input_userauth_banner");
+       raw = packet_get_string(&len);
+       lang = packet_get_string(NULL);
+       if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) {
+               if (len > 65536)
+                       len = 65536;
+               msg = xmalloc(len * 4 + 1); /* max expansion from strnvis() */
+               strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL);
+               fprintf(stderr, "%s", msg);
+               xfree(msg);
+       }
+       xfree(raw);
+       xfree(lang);
+}
+
+/* ARGSUSED */
+void
+input_userauth_success(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       if (authctxt == NULL)
+               fatal("input_userauth_success: no authentication context");
+       if (authctxt->authlist) {
+               xfree(authctxt->authlist);
+               authctxt->authlist = NULL;
+       }
+       if (authctxt->methoddata) {
+               xfree(authctxt->methoddata);
+               authctxt->methoddata = NULL;
+       }
+       authctxt->success = 1;                  /* break out */
+}
+
+/* ARGSUSED */
+void
+input_userauth_failure(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       char *authlist = NULL;
+       int partial;
+
+       if (authctxt == NULL)
+               fatal("input_userauth_failure: no authentication context");
+
+       authlist = packet_get_string(NULL);
+       partial = packet_get_char();
+       packet_check_eom();
+
+       if (partial != 0)
+               logit("Authenticated with partial success.");
+       debug("Authentications that can continue: %s", authlist);
+
+       userauth(authctxt, authlist);
+}
+
+/* ARGSUSED */
+void
+input_userauth_pk_ok(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       Key *key = NULL;
+       Identity *id = NULL;
+       Buffer b;
+       int pktype, sent = 0;
+       u_int alen, blen;
+       char *pkalg, *fp;
+       u_char *pkblob;
+
+       if (authctxt == NULL)
+               fatal("input_userauth_pk_ok: no authentication context");
+       if (datafellows & SSH_BUG_PKOK) {
+               /* this is similar to SSH_BUG_PKAUTH */
+               debug2("input_userauth_pk_ok: SSH_BUG_PKOK");
+               pkblob = packet_get_string(&blen);
+               buffer_init(&b);
+               buffer_append(&b, pkblob, blen);
+               pkalg = buffer_get_string(&b, &alen);
+               buffer_free(&b);
+       } else {
+               pkalg = packet_get_string(&alen);
+               pkblob = packet_get_string(&blen);
+       }
+       packet_check_eom();
+
+       debug("Server accepts key: pkalg %s blen %u", pkalg, blen);
+
+       if ((pktype = key_type_from_name(pkalg)) == KEY_UNSPEC) {
+               debug("unknown pkalg %s", pkalg);
+               goto done;
+       }
+       if ((key = key_from_blob(pkblob, blen)) == NULL) {
+               debug("no key from blob. pkalg %s", pkalg);
+               goto done;
+       }
+       if (key->type != pktype) {
+               error("input_userauth_pk_ok: type mismatch "
+                   "for decoded key (received %d, expected %d)",
+                   key->type, pktype);
+               goto done;
+       }
+       fp = key_fingerprint(key, SSH_FP_MD5, SSH_FP_HEX);
+       debug2("input_userauth_pk_ok: fp %s", fp);
+       xfree(fp);
+
+       /*
+        * search keys in the reverse order, because last candidate has been
+        * moved to the end of the queue.  this also avoids confusion by
+        * duplicate keys
+        */
+       TAILQ_FOREACH_REVERSE(id, &authctxt->keys, idlist, next) {
+               if (key_equal(key, id->key)) {
+                       sent = sign_and_send_pubkey(authctxt, id);
+                       break;
+               }
+       }
+done:
+       if (key != NULL)
+               key_free(key);
+       xfree(pkalg);
+       xfree(pkblob);
+
+       /* try another method if we did not send a packet */
+       if (sent == 0)
+               userauth(authctxt, NULL);
+}
+
+#ifdef GSSAPI
+int
+userauth_gssapi(Authctxt *authctxt)
+{
+       Gssctxt *gssctxt = NULL;
+       static gss_OID_set gss_supported = NULL;
+       static u_int mech = 0;
+       OM_uint32 min;
+       int ok = 0;
+       const char *gss_host;
+       int old_gssapi_method;
+
+       if (options.gss_trust_dns)
+               gss_host = get_canonical_hostname(1);
+       else
+               gss_host = authctxt->host;
+
+       /* Try one GSSAPI method at a time, rather than sending them all at
+        * once. */
+
+       if (gss_supported == NULL)
+               if (GSS_ERROR(gss_indicate_mechs(&min, &gss_supported))) {
+                       gss_supported = NULL;
+                       return 0;
+               }
+
+       /* Check to see if the mechanism is usable before we offer it */
+       while (mech < gss_supported->count && !ok) {
+               /* My DER encoding requires length<128 */
+               if (gss_supported->elements[mech].length < 128 &&
+                   ssh_gssapi_check_mechanism(&gssctxt, 
+                   &gss_supported->elements[mech], gss_host, 
+                    options.gss_client_identity)) {
+                       ok = 1; /* Mechanism works */
+               } else {
+                       mech++;
+               }
+       }
+
+       if (!ok)
+               return 0;
+
+       authctxt->methoddata=(void *)gssctxt;
+
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+
+       old_gssapi_method = !strcmp(authctxt->method->name, "gssapi");
+
+       /* Versions of Debian ssh-krb5 prior to 3.8.1p1-1 don't expect
+        * tagged OIDs.  As such we include both tagged and untagged oids
+        * for the old gssapi method.
+        * We only include tagged oids for the new gssapi-with-mic method.
+        */
+       packet_put_int(old_gssapi_method ? 2 : 1);
+
+       packet_put_int((gss_supported->elements[mech].length) + 2);
+       packet_put_char(SSH_GSS_OIDTYPE);
+       packet_put_char(gss_supported->elements[mech].length);
+       packet_put_raw(gss_supported->elements[mech].elements,
+           gss_supported->elements[mech].length);
+       if (old_gssapi_method) {
+               packet_put_int(gss_supported->elements[mech].length);
+               packet_put_raw(gss_supported->elements[mech].elements,
+                              gss_supported->elements[mech].length);
+       }
+
+       packet_send();
+
+       dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE, &input_gssapi_response);
+       dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, &input_gssapi_token);
+       dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error);
+       dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok);
+
+       mech++; /* Move along to next candidate */
+
+       return 1;
+}
+
+static OM_uint32
+process_gssapi_token(void *ctxt, gss_buffer_t recv_tok)
+{
+       Authctxt *authctxt = ctxt;
+       Gssctxt *gssctxt = authctxt->methoddata;
+       gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER;
+       gss_buffer_desc mic = GSS_C_EMPTY_BUFFER;
+       gss_buffer_desc gssbuf;
+       OM_uint32 status, ms, flags;
+       Buffer b;
+
+       status = ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds,
+           recv_tok, &send_tok, &flags);
+
+       if (send_tok.length > 0) {
+               if (GSS_ERROR(status))
+                       packet_start(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK);
+               else
+                       packet_start(SSH2_MSG_USERAUTH_GSSAPI_TOKEN);
+
+               packet_put_string(send_tok.value, send_tok.length);
+               packet_send();
+               gss_release_buffer(&ms, &send_tok);
+       }
+
+       if (status == GSS_S_COMPLETE) {
+               int old_gssapi_method = !strcmp(authctxt->method->name,
+                                               "gssapi");
+               /* send either complete or MIC, depending on mechanism */
+               if (old_gssapi_method || !(flags & GSS_C_INTEG_FLAG)) {
+                       packet_start(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE);
+                       packet_send();
+               } else {
+                       ssh_gssapi_buildmic(&b, authctxt->server_user,
+                           authctxt->service, "gssapi-with-mic");
+
+                       gssbuf.value = buffer_ptr(&b);
+                       gssbuf.length = buffer_len(&b);
+
+                       status = ssh_gssapi_sign(gssctxt, &gssbuf, &mic);
+
+                       if (!GSS_ERROR(status)) {
+                               packet_start(SSH2_MSG_USERAUTH_GSSAPI_MIC);
+                               packet_put_string(mic.value, mic.length);
+
+                               packet_send();
+                       }
+
+                       buffer_free(&b);
+                       gss_release_buffer(&ms, &mic);
+               }
+       }
+
+       return status;
+}
+
+/* ARGSUSED */
+void
+input_gssapi_response(int type, u_int32_t plen, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       Gssctxt *gssctxt;
+       u_int oidlen;
+       u_char *oidv, *oidv_free;
+
+       if (authctxt == NULL)
+               fatal("input_gssapi_response: no authentication context");
+       gssctxt = authctxt->methoddata;
+
+       /* Setup our OID */
+       oidv = packet_get_string(&oidlen);
+       oidv_free = oidv;
+
+       if (oidlen <= 2 ||
+           oidv[0] != SSH_GSS_OIDTYPE ||
+           oidv[1] != oidlen - 2) {
+               debug("Badly encoded mechanism OID received");
+               if (oidlen < 2) {
+                       xfree(oidv_free);
+                       userauth(authctxt, NULL);
+                       return;
+               }
+       } else {
+               oidlen -= 2;
+               oidv += 2;
+       }
+
+       if (!ssh_gssapi_check_oid(gssctxt, oidv, oidlen))
+               fatal("Server returned different OID than expected");
+
+       packet_check_eom();
+
+       xfree(oidv_free);
+
+       if (GSS_ERROR(process_gssapi_token(ctxt, GSS_C_NO_BUFFER))) {
+               /* Start again with next method on list */
+               debug("Trying to start again");
+               userauth(authctxt, NULL);
+               return;
+       }
+}
+
+/* ARGSUSED */
+void
+input_gssapi_token(int type, u_int32_t plen, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       gss_buffer_desc recv_tok;
+       OM_uint32 status;
+       u_int slen;
+
+       if (authctxt == NULL)
+               fatal("input_gssapi_response: no authentication context");
+
+       recv_tok.value = packet_get_string(&slen);
+       recv_tok.length = slen; /* safe typecast */
+
+       packet_check_eom();
+
+       status = process_gssapi_token(ctxt, &recv_tok);
+
+       xfree(recv_tok.value);
+
+       if (GSS_ERROR(status)) {
+               /* Start again with the next method in the list */
+               userauth(authctxt, NULL);
+               return;
+       }
+}
+
+/* ARGSUSED */
+void
+input_gssapi_errtok(int type, u_int32_t plen, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       Gssctxt *gssctxt;
+       gss_buffer_desc send_tok = GSS_C_EMPTY_BUFFER;
+       gss_buffer_desc recv_tok;
+       OM_uint32 status, ms;
+       u_int len;
+
+       if (authctxt == NULL)
+               fatal("input_gssapi_response: no authentication context");
+       gssctxt = authctxt->methoddata;
+
+       recv_tok.value = packet_get_string(&len);
+       recv_tok.length = len;
+
+       packet_check_eom();
+
+       /* Stick it into GSSAPI and see what it says */
+       status = ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds,
+           &recv_tok, &send_tok, NULL);
+
+       xfree(recv_tok.value);
+       gss_release_buffer(&ms, &send_tok);
+
+       /* Server will be returning a failed packet after this one */
+}
+
+/* ARGSUSED */
+void
+input_gssapi_error(int type, u_int32_t plen, void *ctxt)
+{
+       OM_uint32 maj, min;
+       char *msg;
+       char *lang;
+
+       maj=packet_get_int();
+       min=packet_get_int();
+       msg=packet_get_string(NULL);
+       lang=packet_get_string(NULL);
+
+       packet_check_eom();
+
+       debug("Server GSSAPI Error:\n%s", msg);
+       xfree(msg);
+       xfree(lang);
+}
+
+int
+userauth_gsskeyex(Authctxt *authctxt)
+{
+       Buffer b;
+       gss_buffer_desc gssbuf;
+       gss_buffer_desc mic = GSS_C_EMPTY_BUFFER;
+       OM_uint32 ms;
+
+       static int attempt = 0;
+       if (attempt++ >= 1)
+               return (0);
+
+       if (gss_kex_context == NULL) {
+               debug("No valid Key exchange context"); 
+               return (0);
+       }
+
+       ssh_gssapi_buildmic(&b, authctxt->server_user, authctxt->service,
+           "gssapi-keyex");
+
+       gssbuf.value = buffer_ptr(&b);
+       gssbuf.length = buffer_len(&b);
+
+       if (GSS_ERROR(ssh_gssapi_sign(gss_kex_context, &gssbuf, &mic))) {
+               buffer_free(&b);
+               return (0);
+       }
+
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_string(mic.value, mic.length);
+       packet_send();
+
+       buffer_free(&b);
+       gss_release_buffer(&ms, &mic);
+
+       return (1);
+}
+
+#endif /* GSSAPI */
+
+int
+userauth_none(Authctxt *authctxt)
+{
+       /* initial userauth request */
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_send();
+       return 1;
+}
+
+int
+userauth_passwd(Authctxt *authctxt)
+{
+       static int attempt = 0;
+       char prompt[150];
+       char *password;
+
+       if (attempt++ >= options.number_of_password_prompts)
+               return 0;
+
+       if (attempt != 1)
+               error("Permission denied, please try again.");
+
+       snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password: ",
+           authctxt->server_user, authctxt->host);
+       password = read_passphrase(prompt, 0);
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_char(0);
+       packet_put_cstring(password);
+       memset(password, 0, strlen(password));
+       xfree(password);
+       packet_add_padding(64);
+       packet_send();
+
+       dispatch_set(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ,
+           &input_userauth_passwd_changereq);
+
+       return 1;
+}
+
+/*
+ * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST
+ */
+/* ARGSUSED */
+void
+input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       char *info, *lang, *password = NULL, *retype = NULL;
+       char prompt[150];
+
+       debug2("input_userauth_passwd_changereq");
+
+       if (authctxt == NULL)
+               fatal("input_userauth_passwd_changereq: "
+                   "no authentication context");
+
+       info = packet_get_string(NULL);
+       lang = packet_get_string(NULL);
+       if (strlen(info) > 0)
+               logit("%s", info);
+       xfree(info);
+       xfree(lang);
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_char(1);                     /* additional info */
+       snprintf(prompt, sizeof(prompt),
+           "Enter %.30s@%.128s's old password: ",
+           authctxt->server_user, authctxt->host);
+       password = read_passphrase(prompt, 0);
+       packet_put_cstring(password);
+       memset(password, 0, strlen(password));
+       xfree(password);
+       password = NULL;
+       while (password == NULL) {
+               snprintf(prompt, sizeof(prompt),
+                   "Enter %.30s@%.128s's new password: ",
+                   authctxt->server_user, authctxt->host);
+               password = read_passphrase(prompt, RP_ALLOW_EOF);
+               if (password == NULL) {
+                       /* bail out */
+                       return;
+               }
+               snprintf(prompt, sizeof(prompt),
+                   "Retype %.30s@%.128s's new password: ",
+                   authctxt->server_user, authctxt->host);
+               retype = read_passphrase(prompt, 0);
+               if (strcmp(password, retype) != 0) {
+                       memset(password, 0, strlen(password));
+                       xfree(password);
+                       logit("Mismatch; try again, EOF to quit.");
+                       password = NULL;
+               }
+               memset(retype, 0, strlen(retype));
+               xfree(retype);
+       }
+       packet_put_cstring(password);
+       memset(password, 0, strlen(password));
+       xfree(password);
+       packet_add_padding(64);
+       packet_send();
+
+       dispatch_set(SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ,
+           &input_userauth_passwd_changereq);
+}
+
+#ifdef JPAKE
+static char *
+pw_encrypt(const char *password, const char *crypt_scheme, const char *salt)
+{
+       /* OpenBSD crypt(3) handles all of these */
+       if (strcmp(crypt_scheme, "crypt") == 0 ||
+           strcmp(crypt_scheme, "bcrypt") == 0 ||
+           strcmp(crypt_scheme, "md5crypt") == 0 ||
+           strcmp(crypt_scheme, "crypt-extended") == 0)
+               return xstrdup(crypt(password, salt));
+       error("%s: unsupported password encryption scheme \"%.100s\"",
+           __func__, crypt_scheme);
+       return NULL;
+}
+
+static BIGNUM *
+jpake_password_to_secret(Authctxt *authctxt, const char *crypt_scheme,
+    const char *salt)
+{
+       char prompt[256], *password, *crypted;
+       u_char *secret;
+       u_int secret_len;
+       BIGNUM *ret;
+
+       snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password (JPAKE): ",
+           authctxt->server_user, authctxt->host);
+       password = read_passphrase(prompt, 0);
+
+       if ((crypted = pw_encrypt(password, crypt_scheme, salt)) == NULL) {
+               logit("Disabling %s authentication", authctxt->method->name);
+               authctxt->method->enabled = NULL;
+               /* Continue with an empty password to fail gracefully */
+               crypted = xstrdup("");
+       }
+
+#ifdef JPAKE_DEBUG
+       debug3("%s: salt = %s", __func__, salt);
+       debug3("%s: scheme = %s", __func__, crypt_scheme);
+       debug3("%s: crypted = %s", __func__, crypted);
+#endif
+
+       if (hash_buffer(crypted, strlen(crypted), EVP_sha256(),
+           &secret, &secret_len) != 0)
+               fatal("%s: hash_buffer", __func__);
+
+       bzero(password, strlen(password));
+       bzero(crypted, strlen(crypted));
+       xfree(password);
+       xfree(crypted);
+
+       if ((ret = BN_bin2bn(secret, secret_len, NULL)) == NULL)
+               fatal("%s: BN_bin2bn (secret)", __func__);
+       bzero(secret, secret_len);
+       xfree(secret);
+
+       return ret;
+}
+
+/* ARGSUSED */
+void
+input_userauth_jpake_server_step1(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       struct jpake_ctx *pctx = authctxt->methoddata;
+       u_char *x3_proof, *x4_proof, *x2_s_proof;
+       u_int x3_proof_len, x4_proof_len, x2_s_proof_len;
+       char *crypt_scheme, *salt;
+
+       /* Disable this message */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1, NULL);
+
+       if ((pctx->g_x3 = BN_new()) == NULL ||
+           (pctx->g_x4 = BN_new()) == NULL)
+               fatal("%s: BN_new", __func__);
+
+       /* Fetch step 1 values */
+       crypt_scheme = packet_get_string(NULL);
+       salt = packet_get_string(NULL);
+       pctx->server_id = packet_get_string(&pctx->server_id_len);
+       packet_get_bignum2(pctx->g_x3);
+       packet_get_bignum2(pctx->g_x4);
+       x3_proof = packet_get_string(&x3_proof_len);
+       x4_proof = packet_get_string(&x4_proof_len);
+       packet_check_eom();
+
+       JPAKE_DEBUG_CTX((pctx, "step 1 received in %s", __func__));
+
+       /* Obtain password and derive secret */
+       pctx->s = jpake_password_to_secret(authctxt, crypt_scheme, salt);
+       bzero(crypt_scheme, strlen(crypt_scheme));
+       bzero(salt, strlen(salt));
+       xfree(crypt_scheme);
+       xfree(salt);
+       JPAKE_DEBUG_BN((pctx->s, "%s: s = ", __func__));
+
+       /* Calculate step 2 values */
+       jpake_step2(pctx->grp, pctx->s, pctx->g_x1,
+           pctx->g_x3, pctx->g_x4, pctx->x2,
+           pctx->server_id, pctx->server_id_len,
+           pctx->client_id, pctx->client_id_len,
+           x3_proof, x3_proof_len,
+           x4_proof, x4_proof_len,
+           &pctx->a,
+           &x2_s_proof, &x2_s_proof_len);
+
+       bzero(x3_proof, x3_proof_len);
+       bzero(x4_proof, x4_proof_len);
+       xfree(x3_proof);
+       xfree(x4_proof);
+
+       JPAKE_DEBUG_CTX((pctx, "step 2 sending in %s", __func__));
+
+       /* Send values for step 2 */
+       packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2);
+       packet_put_bignum2(pctx->a);
+       packet_put_string(x2_s_proof, x2_s_proof_len);
+       packet_send();
+
+       bzero(x2_s_proof, x2_s_proof_len);
+       xfree(x2_s_proof);
+
+       /* Expect step 2 packet from peer */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2,
+           input_userauth_jpake_server_step2);
+}
+
+/* ARGSUSED */
+void
+input_userauth_jpake_server_step2(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       struct jpake_ctx *pctx = authctxt->methoddata;
+       u_char *x4_s_proof;
+       u_int x4_s_proof_len;
+
+       /* Disable this message */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2, NULL);
+
+       if ((pctx->b = BN_new()) == NULL)
+               fatal("%s: BN_new", __func__);
+
+       /* Fetch step 2 values */
+       packet_get_bignum2(pctx->b);
+       x4_s_proof = packet_get_string(&x4_s_proof_len);
+       packet_check_eom();
+
+       JPAKE_DEBUG_CTX((pctx, "step 2 received in %s", __func__));
+
+       /* Derive shared key and calculate confirmation hash */
+       jpake_key_confirm(pctx->grp, pctx->s, pctx->b,
+           pctx->x2, pctx->g_x1, pctx->g_x2, pctx->g_x3, pctx->g_x4,
+           pctx->client_id, pctx->client_id_len,
+           pctx->server_id, pctx->server_id_len,
+           session_id2, session_id2_len,
+           x4_s_proof, x4_s_proof_len,
+           &pctx->k,
+           &pctx->h_k_cid_sessid, &pctx->h_k_cid_sessid_len);
+
+       bzero(x4_s_proof, x4_s_proof_len);
+       xfree(x4_s_proof);
+
+       JPAKE_DEBUG_CTX((pctx, "confirm sending in %s", __func__));
+
+       /* Send key confirmation proof */
+       packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM);
+       packet_put_string(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len);
+       packet_send();
+
+       /* Expect confirmation from peer */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM,
+           input_userauth_jpake_server_confirm);
+}
+
+/* ARGSUSED */
+void
+input_userauth_jpake_server_confirm(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       struct jpake_ctx *pctx = authctxt->methoddata;
+
+       /* Disable this message */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM, NULL);
+
+       pctx->h_k_sid_sessid = packet_get_string(&pctx->h_k_sid_sessid_len);
+       packet_check_eom();
+
+       JPAKE_DEBUG_CTX((pctx, "confirm received in %s", __func__));
+
+       /* Verify expected confirmation hash */
+       if (jpake_check_confirm(pctx->k,
+           pctx->server_id, pctx->server_id_len,
+           session_id2, session_id2_len,
+           pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len) == 1)
+               debug("%s: %s success", __func__, authctxt->method->name);
+       else {
+               debug("%s: confirmation mismatch", __func__);
+               /* XXX stash this so if auth succeeds then we can warn/kill */
+       }
+
+       userauth_jpake_cleanup(authctxt);
+}
+#endif /* JPAKE */
+
+static int
+identity_sign(Identity *id, u_char **sigp, u_int *lenp,
+    u_char *data, u_int datalen)
+{
+       Key *prv;
+       int ret;
+
+       /* the agent supports this key */
+       if (id->ac)
+               return (ssh_agent_sign(id->ac, id->key, sigp, lenp,
+                   data, datalen));
+       /*
+        * we have already loaded the private key or
+        * the private key is stored in external hardware
+        */
+       if (id->isprivate || (id->key->flags & KEY_FLAG_EXT))
+               return (key_sign(id->key, sigp, lenp, data, datalen));
+       /* load the private key from the file */
+       if ((prv = load_identity_file(id->filename)) == NULL)
+               return (-1);
+       ret = key_sign(prv, sigp, lenp, data, datalen);
+       key_free(prv);
+       return (ret);
+}
+
+static int
+sign_and_send_pubkey(Authctxt *authctxt, Identity *id)
+{
+       Buffer b;
+       u_char *blob, *signature;
+       u_int bloblen, slen;
+       u_int skip = 0;
+       int ret = -1;
+       int have_sig = 1;
+
+       debug3("sign_and_send_pubkey");
+
+       if (key_to_blob(id->key, &blob, &bloblen) == 0) {
+               /* we cannot handle this key */
+               debug3("sign_and_send_pubkey: cannot handle key");
+               return 0;
+       }
+       /* data to be signed */
+       buffer_init(&b);
+       if (datafellows & SSH_OLD_SESSIONID) {
+               buffer_append(&b, session_id2, session_id2_len);
+               skip = session_id2_len;
+       } else {
+               buffer_put_string(&b, session_id2, session_id2_len);
+               skip = buffer_len(&b);
+       }
+       buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST);
+       buffer_put_cstring(&b, authctxt->server_user);
+       buffer_put_cstring(&b,
+           datafellows & SSH_BUG_PKSERVICE ?
+           "ssh-userauth" :
+           authctxt->service);
+       if (datafellows & SSH_BUG_PKAUTH) {
+               buffer_put_char(&b, have_sig);
+       } else {
+               buffer_put_cstring(&b, authctxt->method->name);
+               buffer_put_char(&b, have_sig);
+               buffer_put_cstring(&b, key_ssh_name(id->key));
+       }
+       buffer_put_string(&b, blob, bloblen);
+
+       /* generate signature */
+       ret = identity_sign(id, &signature, &slen,
+           buffer_ptr(&b), buffer_len(&b));
+       if (ret == -1) {
+               xfree(blob);
+               buffer_free(&b);
+               return 0;
+       }
+#ifdef DEBUG_PK
+       buffer_dump(&b);
+#endif
+       if (datafellows & SSH_BUG_PKSERVICE) {
+               buffer_clear(&b);
+               buffer_append(&b, session_id2, session_id2_len);
+               skip = session_id2_len;
+               buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST);
+               buffer_put_cstring(&b, authctxt->server_user);
+               buffer_put_cstring(&b, authctxt->service);
+               buffer_put_cstring(&b, authctxt->method->name);
+               buffer_put_char(&b, have_sig);
+               if (!(datafellows & SSH_BUG_PKAUTH))
+                       buffer_put_cstring(&b, key_ssh_name(id->key));
+               buffer_put_string(&b, blob, bloblen);
+       }
+       xfree(blob);
+
+       /* append signature */
+       buffer_put_string(&b, signature, slen);
+       xfree(signature);
+
+       /* skip session id and packet type */
+       if (buffer_len(&b) < skip + 1)
+               fatal("userauth_pubkey: internal error");
+       buffer_consume(&b, skip + 1);
+
+       /* put remaining data from buffer into packet */
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_raw(buffer_ptr(&b), buffer_len(&b));
+       buffer_free(&b);
+       packet_send();
+
+       return 1;
+}
+
+static int
+send_pubkey_test(Authctxt *authctxt, Identity *id)
+{
+       u_char *blob;
+       u_int bloblen, have_sig = 0;
+
+       debug3("send_pubkey_test");
+
+       if (key_to_blob(id->key, &blob, &bloblen) == 0) {
+               /* we cannot handle this key */
+               debug3("send_pubkey_test: cannot handle key");
+               return 0;
+       }
+       /* register callback for USERAUTH_PK_OK message */
+       dispatch_set(SSH2_MSG_USERAUTH_PK_OK, &input_userauth_pk_ok);
+
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_char(have_sig);
+       if (!(datafellows & SSH_BUG_PKAUTH))
+               packet_put_cstring(key_ssh_name(id->key));
+       packet_put_string(blob, bloblen);
+       xfree(blob);
+       packet_send();
+       return 1;
+}
+
+static Key *
+load_identity_file(char *filename)
+{
+       Key *private;
+       char prompt[300], *passphrase;
+       int perm_ok, quit, i;
+       struct stat st;
+
+       if (stat(filename, &st) < 0) {
+               debug3("no such identity: %s", filename);
+               return NULL;
+       }
+       private = key_load_private_type(KEY_UNSPEC, filename, "", NULL, &perm_ok);
+       if (!perm_ok)
+               return NULL;
+       if (private == NULL) {
+               if (options.batch_mode)
+                       return NULL;
+               snprintf(prompt, sizeof prompt,
+                   "Enter passphrase for key '%.100s': ", filename);
+               for (i = 0; i < options.number_of_password_prompts; i++) {
+                       passphrase = read_passphrase(prompt, 0);
+                       if (strcmp(passphrase, "") != 0) {
+                               private = key_load_private_type(KEY_UNSPEC,
+                                   filename, passphrase, NULL, NULL);
+                               quit = 0;
+                       } else {
+                               debug2("no passphrase given, try next key");
+                               quit = 1;
+                       }
+                       memset(passphrase, 0, strlen(passphrase));
+                       xfree(passphrase);
+                       if (private != NULL || quit)
+                               break;
+                       debug2("bad passphrase given, try again...");
+               }
+       }
+       return private;
+}
+
+/*
+ * try keys in the following order:
+ *     1. agent keys that are found in the config file
+ *     2. other agent keys
+ *     3. keys that are only listed in the config file
+ */
+static void
+pubkey_prepare(Authctxt *authctxt)
+{
+       Identity *id;
+       Idlist agent, files, *preferred;
+       Key *key;
+       AuthenticationConnection *ac;
+       char *comment;
+       int i, found;
+
+       TAILQ_INIT(&agent);     /* keys from the agent */
+       TAILQ_INIT(&files);     /* keys from the config file */
+       preferred = &authctxt->keys;
+       TAILQ_INIT(preferred);  /* preferred order of keys */
+
+       /* list of keys stored in the filesystem */
+       for (i = 0; i < options.num_identity_files; i++) {
+               if (options.identity_files[i] == NULL)
+                       continue;
+               key = options.identity_keys[i];
+               if (key && key->type == KEY_RSA1)
+                       continue;
+               options.identity_keys[i] = NULL;
+               id = xcalloc(1, sizeof(*id));
+               id->key = key;
+               id->filename = xstrdup(options.identity_files[i]);
+               TAILQ_INSERT_TAIL(&files, id, next);
+       }
+       /* list of keys supported by the agent */
+       if ((ac = ssh_get_authentication_connection())) {
+               for (key = ssh_get_first_identity(ac, &comment, 2);
+                   key != NULL;
+                   key = ssh_get_next_identity(ac, &comment, 2)) {
+                       found = 0;
+                       TAILQ_FOREACH(id, &files, next) {
+                               /* agent keys from the config file are preferred */
+                               if (key_equal(key, id->key)) {
+                                       key_free(key);
+                                       xfree(comment);
+                                       TAILQ_REMOVE(&files, id, next);
+                                       TAILQ_INSERT_TAIL(preferred, id, next);
+                                       id->ac = ac;
+                                       found = 1;
+                                       break;
+                               }
+                       }
+                       if (!found && !options.identities_only) {
+                               id = xcalloc(1, sizeof(*id));
+                               id->key = key;
+                               id->filename = comment;
+                               id->ac = ac;
+                               TAILQ_INSERT_TAIL(&agent, id, next);
+                       }
+               }
+               /* append remaining agent keys */
+               for (id = TAILQ_FIRST(&agent); id; id = TAILQ_FIRST(&agent)) {
+                       TAILQ_REMOVE(&agent, id, next);
+                       TAILQ_INSERT_TAIL(preferred, id, next);
+               }
+               authctxt->agent = ac;
+       }
+       /* append remaining keys from the config file */
+       for (id = TAILQ_FIRST(&files); id; id = TAILQ_FIRST(&files)) {
+               TAILQ_REMOVE(&files, id, next);
+               TAILQ_INSERT_TAIL(preferred, id, next);
+       }
+       TAILQ_FOREACH(id, preferred, next) {
+               debug2("key: %s (%p)", id->filename, id->key);
+       }
+}
+
+static void
+pubkey_cleanup(Authctxt *authctxt)
+{
+       Identity *id;
+
+       if (authctxt->agent != NULL)
+               ssh_close_authentication_connection(authctxt->agent);
+       for (id = TAILQ_FIRST(&authctxt->keys); id;
+           id = TAILQ_FIRST(&authctxt->keys)) {
+               TAILQ_REMOVE(&authctxt->keys, id, next);
+               if (id->key)
+                       key_free(id->key);
+               if (id->filename)
+                       xfree(id->filename);
+               xfree(id);
+       }
+}
+
+int
+userauth_pubkey(Authctxt *authctxt)
+{
+       Identity *id;
+       int sent = 0;
+
+       while ((id = TAILQ_FIRST(&authctxt->keys))) {
+               if (id->tried++)
+                       return (0);
+               /* move key to the end of the queue */
+               TAILQ_REMOVE(&authctxt->keys, id, next);
+               TAILQ_INSERT_TAIL(&authctxt->keys, id, next);
+               /*
+                * send a test message if we have the public key. for
+                * encrypted keys we cannot do this and have to load the
+                * private key instead
+                */
+               if (id->key && id->key->type != KEY_RSA1) {
+                       debug("Offering public key: %s", id->filename);
+                       sent = send_pubkey_test(authctxt, id);
+               } else if (id->key == NULL && id->filename) {
+                       debug("Trying private key: %s", id->filename);
+                       id->key = load_identity_file(id->filename);
+                       if (id->key != NULL) {
+                               id->isprivate = 1;
+                               sent = sign_and_send_pubkey(authctxt, id);
+                               key_free(id->key);
+                               id->key = NULL;
+                       }
+               }
+               if (sent)
+                       return (sent);
+       }
+       return (0);
+}
+
+/*
+ * Send userauth request message specifying keyboard-interactive method.
+ */
+int
+userauth_kbdint(Authctxt *authctxt)
+{
+       static int attempt = 0;
+
+       if (attempt++ >= options.number_of_password_prompts)
+               return 0;
+       /* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */
+       if (attempt > 1 && !authctxt->info_req_seen) {
+               debug3("userauth_kbdint: disable: no info_req_seen");
+               dispatch_set(SSH2_MSG_USERAUTH_INFO_REQUEST, NULL);
+               return 0;
+       }
+
+       debug2("userauth_kbdint");
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_cstring("");                                 /* lang */
+       packet_put_cstring(options.kbd_interactive_devices ?
+           options.kbd_interactive_devices : "");
+       packet_send();
+
+       dispatch_set(SSH2_MSG_USERAUTH_INFO_REQUEST, &input_userauth_info_req);
+       return 1;
+}
+
+/*
+ * parse INFO_REQUEST, prompt user and send INFO_RESPONSE
+ */
+void
+input_userauth_info_req(int type, u_int32_t seq, void *ctxt)
+{
+       Authctxt *authctxt = ctxt;
+       char *name, *inst, *lang, *prompt, *response;
+       u_int num_prompts, i;
+       int echo = 0;
+
+       debug2("input_userauth_info_req");
+
+       if (authctxt == NULL)
+               fatal("input_userauth_info_req: no authentication context");
+
+       authctxt->info_req_seen = 1;
+
+       name = packet_get_string(NULL);
+       inst = packet_get_string(NULL);
+       lang = packet_get_string(NULL);
+       if (strlen(name) > 0)
+               logit("%s", name);
+       if (strlen(inst) > 0)
+               logit("%s", inst);
+       xfree(name);
+       xfree(inst);
+       xfree(lang);
+
+       num_prompts = packet_get_int();
+       /*
+        * Begin to build info response packet based on prompts requested.
+        * We commit to providing the correct number of responses, so if
+        * further on we run into a problem that prevents this, we have to
+        * be sure and clean this up and send a correct error response.
+        */
+       packet_start(SSH2_MSG_USERAUTH_INFO_RESPONSE);
+       packet_put_int(num_prompts);
+
+       debug2("input_userauth_info_req: num_prompts %d", num_prompts);
+       for (i = 0; i < num_prompts; i++) {
+               prompt = packet_get_string(NULL);
+               echo = packet_get_char();
+
+               response = read_passphrase(prompt, echo ? RP_ECHO : 0);
+
+               packet_put_cstring(response);
+               memset(response, 0, strlen(response));
+               xfree(response);
+               xfree(prompt);
+       }
+       packet_check_eom(); /* done with parsing incoming message. */
+
+       packet_add_padding(64);
+       packet_send();
+}
+
+static int
+ssh_keysign(Key *key, u_char **sigp, u_int *lenp,
+    u_char *data, u_int datalen)
+{
+       Buffer b;
+       struct stat st;
+       pid_t pid;
+       int to[2], from[2], status, version = 2;
+
+       debug2("ssh_keysign called");
+
+       if (stat(_PATH_SSH_KEY_SIGN, &st) < 0) {
+               error("ssh_keysign: no installed: %s", strerror(errno));
+               return -1;
+       }
+       if (fflush(stdout) != 0)
+               error("ssh_keysign: fflush: %s", strerror(errno));
+       if (pipe(to) < 0) {
+               error("ssh_keysign: pipe: %s", strerror(errno));
+               return -1;
+       }
+       if (pipe(from) < 0) {
+               error("ssh_keysign: pipe: %s", strerror(errno));
+               return -1;
+       }
+       if ((pid = fork()) < 0) {
+               error("ssh_keysign: fork: %s", strerror(errno));
+               return -1;
+       }
+       if (pid == 0) {
+               permanently_drop_suid(getuid());
+               close(from[0]);
+               if (dup2(from[1], STDOUT_FILENO) < 0)
+                       fatal("ssh_keysign: dup2: %s", strerror(errno));
+               close(to[1]);
+               if (dup2(to[0], STDIN_FILENO) < 0)
+                       fatal("ssh_keysign: dup2: %s", strerror(errno));
+               close(from[1]);
+               close(to[0]);
+               execl(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *) 0);
+               fatal("ssh_keysign: exec(%s): %s", _PATH_SSH_KEY_SIGN,
+                   strerror(errno));
+       }
+       close(from[1]);
+       close(to[0]);
+
+       buffer_init(&b);
+       buffer_put_int(&b, packet_get_connection_in()); /* send # of socket */
+       buffer_put_string(&b, data, datalen);
+       if (ssh_msg_send(to[1], version, &b) == -1)
+               fatal("ssh_keysign: couldn't send request");
+
+       if (ssh_msg_recv(from[0], &b) < 0) {
+               error("ssh_keysign: no reply");
+               buffer_free(&b);
+               return -1;
+       }
+       close(from[0]);
+       close(to[1]);
+
+       while (waitpid(pid, &status, 0) < 0)
+               if (errno != EINTR)
+                       break;
+
+       if (buffer_get_char(&b) != version) {
+               error("ssh_keysign: bad version");
+               buffer_free(&b);
+               return -1;
+       }
+       *sigp = buffer_get_string(&b, lenp);
+       buffer_free(&b);
+
+       return 0;
+}
+
+int
+userauth_hostbased(Authctxt *authctxt)
+{
+       Key *private = NULL;
+       Sensitive *sensitive = authctxt->sensitive;
+       Buffer b;
+       u_char *signature, *blob;
+       char *chost, *pkalg, *p, myname[NI_MAXHOST];
+       const char *service;
+       u_int blen, slen;
+       int ok, i, len, found = 0;
+
+       /* check for a useful key */
+       for (i = 0; i < sensitive->nkeys; i++) {
+               private = sensitive->keys[i];
+               if (private && private->type != KEY_RSA1) {
+                       found = 1;
+                       /* we take and free the key */
+                       sensitive->keys[i] = NULL;
+                       break;
+               }
+       }
+       if (!found) {
+               debug("No more client hostkeys for hostbased authentication.");
+               return 0;
+       }
+       if (key_to_blob(private, &blob, &blen) == 0) {
+               key_free(private);
+               return 0;
+       }
+       /* figure out a name for the client host */
+       p = NULL;
+       if (packet_connection_is_on_socket())
+               p = get_local_name(packet_get_connection_in());
+       if (p == NULL) {
+               if (gethostname(myname, sizeof(myname)) == -1) {
+                       verbose("userauth_hostbased: gethostname: %s", 
+                           strerror(errno));
+               } else
+                       p = xstrdup(myname);
+       }
+       if (p == NULL) {
+               error("userauth_hostbased: cannot get local ipaddr/name");
+               key_free(private);
+               xfree(blob);
+               return 0;
+       }
+       len = strlen(p) + 2;
+       xasprintf(&chost, "%s.", p);
+       debug2("userauth_hostbased: chost %s", chost);
+       xfree(p);
+
+       service = datafellows & SSH_BUG_HBSERVICE ? "ssh-userauth" :
+           authctxt->service;
+       pkalg = xstrdup(key_ssh_name(private));
+       buffer_init(&b);
+       /* construct data */
+       buffer_put_string(&b, session_id2, session_id2_len);
+       buffer_put_char(&b, SSH2_MSG_USERAUTH_REQUEST);
+       buffer_put_cstring(&b, authctxt->server_user);
+       buffer_put_cstring(&b, service);
+       buffer_put_cstring(&b, authctxt->method->name);
+       buffer_put_cstring(&b, pkalg);
+       buffer_put_string(&b, blob, blen);
+       buffer_put_cstring(&b, chost);
+       buffer_put_cstring(&b, authctxt->local_user);
+#ifdef DEBUG_PK
+       buffer_dump(&b);
+#endif
+       if (sensitive->external_keysign)
+               ok = ssh_keysign(private, &signature, &slen,
+                   buffer_ptr(&b), buffer_len(&b));
+       else
+               ok = key_sign(private, &signature, &slen,
+                   buffer_ptr(&b), buffer_len(&b));
+       key_free(private);
+       buffer_free(&b);
+       if (ok != 0) {
+               error("key_sign failed");
+               xfree(chost);
+               xfree(pkalg);
+               xfree(blob);
+               return 0;
+       }
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_put_cstring(pkalg);
+       packet_put_string(blob, blen);
+       packet_put_cstring(chost);
+       packet_put_cstring(authctxt->local_user);
+       packet_put_string(signature, slen);
+       memset(signature, 's', slen);
+       xfree(signature);
+       xfree(chost);
+       xfree(pkalg);
+       xfree(blob);
+
+       packet_send();
+       return 1;
+}
+
+#ifdef JPAKE
+int
+userauth_jpake(Authctxt *authctxt)
+{
+       struct jpake_ctx *pctx;
+       u_char *x1_proof, *x2_proof;
+       u_int x1_proof_len, x2_proof_len;
+       static int attempt = 0; /* XXX share with userauth_password's? */
+
+       if (attempt++ >= options.number_of_password_prompts)
+               return 0;
+       if (attempt != 1)
+               error("Permission denied, please try again.");
+
+       if (authctxt->methoddata != NULL)
+               fatal("%s: authctxt->methoddata already set (%p)",
+                   __func__, authctxt->methoddata);
+
+       authctxt->methoddata = pctx = jpake_new();
+
+       /*
+        * Send request immediately, to get the protocol going while
+        * we do the initial computations.
+        */
+       packet_start(SSH2_MSG_USERAUTH_REQUEST);
+       packet_put_cstring(authctxt->server_user);
+       packet_put_cstring(authctxt->service);
+       packet_put_cstring(authctxt->method->name);
+       packet_send();
+       packet_write_wait();
+
+       jpake_step1(pctx->grp,
+           &pctx->client_id, &pctx->client_id_len,
+           &pctx->x1, &pctx->x2, &pctx->g_x1, &pctx->g_x2,
+           &x1_proof, &x1_proof_len,
+           &x2_proof, &x2_proof_len);
+
+       JPAKE_DEBUG_CTX((pctx, "step 1 sending in %s", __func__));
+
+       packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1);
+       packet_put_string(pctx->client_id, pctx->client_id_len);
+       packet_put_bignum2(pctx->g_x1);
+       packet_put_bignum2(pctx->g_x2);
+       packet_put_string(x1_proof, x1_proof_len);
+       packet_put_string(x2_proof, x2_proof_len);
+       packet_send();
+
+       bzero(x1_proof, x1_proof_len);
+       bzero(x2_proof, x2_proof_len);
+       xfree(x1_proof);
+       xfree(x2_proof);
+
+       /* Expect step 1 packet from peer */
+       dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1,
+           input_userauth_jpake_server_step1);
+
+       return 1;
+}
+
+void
+userauth_jpake_cleanup(Authctxt *authctxt)
+{
+       debug3("%s: clean up", __func__);
+       if (authctxt->methoddata != NULL) {
+               jpake_free(authctxt->methoddata);
+               authctxt->methoddata = NULL;
+       }
+}
+#endif /* JPAKE */
+
+/* find auth method */
+
+/*
+ * given auth method name, if configurable options permit this method fill
+ * in auth_ident field and return true, otherwise return false.
+ */
+static int
+authmethod_is_enabled(Authmethod *method)
+{
+       if (method == NULL)
+               return 0;
+       /* return false if options indicate this method is disabled */
+       if  (method->enabled == NULL || *method->enabled == 0)
+               return 0;
+       /* return false if batch mode is enabled but method needs interactive mode */
+       if  (method->batch_flag != NULL && *method->batch_flag != 0)
+               return 0;
+       return 1;
+}
+
+static Authmethod *
+authmethod_lookup(const char *name)
+{
+       Authmethod *method = NULL;
+       if (name != NULL)
+               for (method = authmethods; method->name != NULL; method++)
+                       if (strcmp(name, method->name) == 0)
+                               return method;
+       debug2("Unrecognized authentication method name: %s", name ? name : "NULL");
+       return NULL;
+}
+
+/* XXX internal state */
+static Authmethod *current = NULL;
+static char *supported = NULL;
+static char *preferred = NULL;
+
+/*
+ * Given the authentication method list sent by the server, return the
+ * next method we should try.  If the server initially sends a nil list,
+ * use a built-in default list.
+ */
+static Authmethod *
+authmethod_get(char *authlist)
+{
+       char *name = NULL;
+       u_int next;
+
+       /* Use a suitable default if we're passed a nil list.  */
+       if (authlist == NULL || strlen(authlist) == 0)
+               authlist = options.preferred_authentications;
+
+       if (supported == NULL || strcmp(authlist, supported) != 0) {
+               debug3("start over, passed a different list %s", authlist);
+               if (supported != NULL)
+                       xfree(supported);
+               supported = xstrdup(authlist);
+               preferred = options.preferred_authentications;
+               debug3("preferred %s", preferred);
+               current = NULL;
+       } else if (current != NULL && authmethod_is_enabled(current))
+               return current;
+
+       for (;;) {
+               if ((name = match_list(preferred, supported, &next)) == NULL) {
+                       debug("No more authentication methods to try.");
+                       current = NULL;
+                       return NULL;
+               }
+               preferred += next;
+               debug3("authmethod_lookup %s", name);
+               debug3("remaining preferred: %s", preferred);
+               if ((current = authmethod_lookup(name)) != NULL &&
+                   authmethod_is_enabled(current)) {
+                       debug3("authmethod_is_enabled %s", name);
+                       debug("Next authentication method: %s", name);
+                       return current;
+               }
+       }
+}
+
+static char *
+authmethods_get(void)
+{
+       Authmethod *method = NULL;
+       Buffer b;
+       char *list;
+
+       buffer_init(&b);
+       for (method = authmethods; method->name != NULL; method++) {
+               if (authmethod_is_enabled(method)) {
+                       if (buffer_len(&b) > 0)
+                               buffer_append(&b, ",", 1);
+                       buffer_append(&b, method->name, strlen(method->name));
+               }
+       }
+       buffer_append(&b, "\0", 1);
+       list = xstrdup(buffer_ptr(&b));
+       buffer_free(&b);
+       return list;
+}
+
diff --git a/openssh-5.3p1/.pc/config-guess-sub.patch/config.guess b/openssh-5.3p1/.pc/config-guess-sub.patch/config.guess
new file mode 100755 (executable)
index 0000000..c7607c7
--- /dev/null
@@ -0,0 +1,1526 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
+
+timestamp='2008-04-14'
+
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           sh5el) machine=sh5le-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       # Debian GNU/NetBSD machines have a different userland, and
+       # thus, need a distinct triplet. However, they do not need
+       # kernel version information, so it can be replaced with a
+       # suitable tag, in the style of linux-gnu.
+       case "${UNAME_VERSION}" in
+           Debian*)
+               release='-gnu'
+               ;;
+           *)
+               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               ;;
+       esac
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit ;;
+    *:OpenBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       exit ;;
+    *:ekkoBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       exit ;;
+    *:SolidBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       exit ;;
+    macppc:MirBSD:*:*)
+       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    *:MirBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    alpha:OSF1:*:*)
+       case $UNAME_RELEASE in
+       *4.0)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+               ;;
+       *5.*)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               ;;
+       esac
+       # According to Compaq, /usr/sbin/psrinfo has been available on
+       # OSF/1 and Tru64 systems produced since 1995.  I hope that
+       # covers most systems running today.  This code pipes the CPU
+       # types through head -n 1, so we only detect the type of CPU 0.
+       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+       case "$ALPHA_CPU_TYPE" in
+           "EV4 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "EV4.5 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "LCA4 (21066/21068)")
+               UNAME_MACHINE="alpha" ;;
+           "EV5 (21164)")
+               UNAME_MACHINE="alphaev5" ;;
+           "EV5.6 (21164A)")
+               UNAME_MACHINE="alphaev56" ;;
+           "EV5.6 (21164PC)")
+               UNAME_MACHINE="alphapca56" ;;
+           "EV5.7 (21164PC)")
+               UNAME_MACHINE="alphapca57" ;;
+           "EV6 (21264)")
+               UNAME_MACHINE="alphaev6" ;;
+           "EV6.7 (21264A)")
+               UNAME_MACHINE="alphaev67" ;;
+           "EV6.8CB (21264C)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8AL (21264B)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8CX (21264D)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.9A (21264/EV69A)")
+               UNAME_MACHINE="alphaev69" ;;
+           "EV7 (21364)")
+               UNAME_MACHINE="alphaev7" ;;
+           "EV7.9 (21364A)")
+               UNAME_MACHINE="alphaev79" ;;
+       esac
+       # A Pn.n version is a patched version.
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit ;;
+    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 ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
+       exit ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+       exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+       echo arm-unknown-riscos
+       exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+       echo hppa1.1-hitachi-hiuxmpp
+       exit ;;
+    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
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit ;;
+    NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit ;;
+    DRS?6000:unix:4.0:6*)
+       echo sparc-icl-nx6
+       exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7; exit ;;
+       esac ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit ;;
+    aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+       echo m68k-apple-machten${UNAME_RELEASE}
+       exit ;;
+    powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit ;;
+    RISC*:Mach:*:*)
+       echo mips-dec-mach_bsd4.3
+       exit ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
+       #if defined (host_mips) && defined (MIPSEB)
+       #if defined (SYSTYPE_SYSV)
+         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_SVR4)
+         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+       #endif
+       #endif
+         exit (-1);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c &&
+         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`$dummy $dummyarg` &&
+           { echo "$SYSTEM_NAME"; exit; }
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+           else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
+       fi
+       exit ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+       echo i386-ibm-aix
+       exit ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               then
+                       echo "$SYSTEM_NAME"
+               else
+                       echo rs6000-ibm-aix3.2.5
+               fi
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit ;;
+    *:AIX:*:[456])
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit ;;
+    9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   test -z "$HP_ARCH" && HP_ARCH=hppa
+               fi ;;
+       esac
+       if [ ${HP_ARCH} = "hppa2.0w" ]
+       then
+           eval $set_cc_for_build
+
+           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+           # generating 64-bit code.  GNU and HP use different nomenclature:
+           #
+           # $ CC_FOR_BUILD=cc ./config.guess
+           # => hppa2.0w-hp-hpux11.23
+           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+           # => hppa64-hp-hpux11.23
+
+           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+               grep __LP64__ >/dev/null
+           then
+               HP_ARCH="hppa2.0w"
+           else
+               HP_ARCH="hppa64"
+           fi
+       fi
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit ;;
+    3050*:HI-UX:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+               { echo "$SYSTEM_NAME"; exit; }
+       echo unknown-hitachi-hiuxwe2
+       exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit ;;
+    i*86:OSF1:*:*)
+       if [ -x /usr/sbin/sysversion ] ; then
+           echo ${UNAME_MACHINE}-unknown-osf1mk
+       else
+           echo ${UNAME_MACHINE}-unknown-osf1
+       fi
+       exit ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    *:UNICOS/mp:*:*)
+       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:FreeBSD:*:*)
+       case ${UNAME_MACHINE} in
+           pc98)
+               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           *)
+               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       esac
+       exit ;;
+    i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit ;;
+    *:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
+       exit ;;
+    i*:windows32*:*)
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
+       exit ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit ;;
+    *:Interix*:[3456]*)
+       case ${UNAME_MACHINE} in
+           x86)
+               echo i586-pc-interix${UNAME_RELEASE}
+               exit ;;
+           EM64T | authenticamd)
+               echo x86_64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+           IA64)
+               echo ia64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+       esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+       echo i${UNAME_MACHINE}-pc-mks
+       exit ;;
+    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 i586-pc-interix
+       exit ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+       echo x86_64-unknown-cygwin
+       exit ;;
+    p*:CYGWIN*:*)
+       echo powerpcle-unknown-cygwin
+       exit ;;
+    prep*:SunOS:5.*:*)
+       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    *:GNU:*:*)
+       # the GNU system
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit ;;
+    *:GNU/*:*:*)
+       # other systems with GNU libc and userland
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       exit ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit ;;
+    arm*:Linux:*:*)
+       eval $set_cc_for_build
+       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_EABI__
+       then
+           echo ${UNAME_MACHINE}-unknown-linux-gnu
+       else
+           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+       fi
+       exit ;;
+    avr32*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    cris:Linux:*:*)
+       echo cris-axis-linux-gnu
+       exit ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-gnu
+       exit ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-gnu
+       exit ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    mips:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef mips
+       #undef mipsel
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=mipsel
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=mips
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+           /^CPU/{
+               s: ::g
+               p
+           }'`"
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       ;;
+    mips64:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef mips64
+       #undef mips64el
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=mips64el
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=mips64
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+           /^CPU/{
+               s: ::g
+               p
+           }'`"
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-gnu
+       exit ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit ;;
+    sh64*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    vax:Linux:*:*)
+       echo ${UNAME_MACHINE}-dec-linux-gnu
+       exit ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit ;;
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    i*86:Linux:*:*)
+       # The BFD linker knows what the default object file format is, so
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       # Set LC_ALL=C to ensure ld outputs messages in English.
+       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+                        | sed -ne '/supported targets:/!d
+                                   s/[         ][      ]*/ /g
+                                   s/.*supported targets: *//
+                                   s/ .*//
+                                   p'`
+        case "$ld_supported_targets" in
+         elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+               ;;
+         a.out-i386-linux)
+               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+               exit ;;
+         "")
+               # Either a pre-BFD a.out linker (linux-gnuoldld) or
+               # one that does not give us useful --help.
+               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+               exit ;;
+       esac
+       # Determine whether the default compiler is a.out or elf
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #ifdef __ELF__
+       # ifdef __GLIBC__
+       #  if __GLIBC__ >= 2
+       LIBC=gnu
+       #  else
+       LIBC=gnulibc1
+       #  endif
+       # else
+       LIBC=gnulibc1
+       # endif
+       #else
+       #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+       LIBC=gnu
+       #else
+       LIBC=gnuaout
+       #endif
+       #endif
+       #ifdef __dietlibc__
+       LIBC=dietlibc
+       #endif
+EOF
+       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+           /^LIBC/{
+               s: ::g
+               p
+           }'`"
+       test x"${LIBC}" != x && {
+               echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+               exit
+       }
+       test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+       ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit ;;
+    i*86:syllable:*:*)
+       echo ${UNAME_MACHINE}-pc-syllable
+       exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+       echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit ;;
+    i*86:*:5:[678]*)
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit ;;
+    i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit ;;
+    pc:*:*:*)
+       # Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+       echo i386-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+       echo i386-pc-mach3
+       exit ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit ;;
+    M680?0:D-NIX:5.3:*)
+       echo m68k-diab-dnix
+       exit ;;
+    M68*:*:R3V[5678]*:*)
+       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    rs6000:LynxOS:2.*:*)
+       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+       echo mips-dde-sysv${UNAME_RELEASE}
+       exit ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+       # From Gerald Hewes <hewes@openmarket.com>.
+       # How about differentiating between stratus architectures? -djm
+       echo hppa1.1-stratus-sysv4
+       exit ;;
+    *:*:*:FTX*)
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit ;;
+    i*86:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit ;;
+    mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit ;;
+    news*:NEWS-OS:6*:*)
+       echo mips-sony-newsos6
+       exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+       if [ -d /usr/nec ]; then
+               echo mips-nec-sysv${UNAME_RELEASE}
+       else
+               echo mips-unknown-sysv${UNAME_RELEASE}
+       fi
+        exit ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-7:SUPER-UX:*:*)
+       echo sx7-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8:SUPER-UX:*:*)
+       echo sx8-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8R:SUPER-UX:*:*)
+       echo sx8r-nec-superux${UNAME_RELEASE}
+       exit ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Darwin:*:*)
+       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+       case $UNAME_PROCESSOR in
+           unknown) UNAME_PROCESSOR=powerpc ;;
+       esac
+       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+       echo nse-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+       exit ;;
+    *:DragonFly:*:*)
+       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
+    *:*VMS:*:*)
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       case "${UNAME_MACHINE}" in
+           A*) echo alpha-dec-vms ; exit ;;
+           I*) echo ia64-dec-vms ; exit ;;
+           V*) echo vax-dec-vms ; exit ;;
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit ;;
+    i*86:skyos:*:*)
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       exit ;;
+    i*86:rdos:*:*)
+       echo ${UNAME_MACHINE}-pc-rdos
+       exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+         ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+       printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+       printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+       { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit ;;
+    c34*)
+       echo c34-convex-bsd
+       exit ;;
+    c38*)
+       echo c38-convex-bsd
+       exit ;;
+    c4*)
+       echo c4-convex-bsd
+       exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/openssh-5.3p1/.pc/config-guess-sub.patch/config.sub b/openssh-5.3p1/.pc/config-guess-sub.patch/config.sub
new file mode 100755 (executable)
index 0000000..a649350
--- /dev/null
@@ -0,0 +1,1673 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
+
+timestamp='2008-06-16'
+
+# 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.
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis | -knuth | -cray)
+               os=
+               basic_machine=$1
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               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/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | bfin \
+       | c4x | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | fido | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k | iq2000 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | mt \
+       | msp430 \
+       | nios | nios2 \
+       | ns16k | ns32k \
+       | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu | strongarm \
+       | tahoe | thumb | tic4x | tic80 | tron \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | z8k)
+               basic_machine=$basic_machine-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+       | clipper-* | craynv-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+       | nios-* | nios2-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+       | tron-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+       | z8k-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # 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
+               ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amd64)
+               basic_machine=x86_64-pc
+               ;;
+       amd64-*)
+               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+        cegcc)
+               basic_machine=arm-unknown
+               os=-cegcc
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               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
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               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
+               ;;
+       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])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               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
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       openrisc | openrisc-*)
+               basic_machine=or32-unknown
+               ;;
+       os400)
+               basic_machine=powerpc-ibm
+               os=-os400
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2 | pentiumiii | pentium3)
+               basic_machine=i686-pc
+               ;;
+       pentium4)
+               basic_machine=i786-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium4-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rdos)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
+               ;;
+       sei)
+               basic_machine=mips-sei
+               os=-seiux
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
+       tic55x | c55x*)
+               basic_machine=tic55x-unknown
+               os=-coff
+               ;;
+       tic6x | c6x*)
+               basic_machine=tic6x-unknown
+               os=-coff
+               ;;
+       tile*)
+               basic_machine=tile-unknown
+               os=-linux-gnu
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# 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)
+