ssheven/README.md

2.3 KiB

ssheven box

ssheven

A modern SSH client for Mac OS 7/8/9.

Project status: as of 0.6.0 (see github releases), a functional SSH client with decent terminal emulation, with login via key or password, and is able to run programs like htop and nano. See "to do" section below for upcoming work.

ssheven screenshot

system requirements

  • CPU: Any PPC processor, or a 33 MHz 68040/68LC040 (maybe 25 MHz). Presently, all 68030/68020 CPUs are too slow.
  • RAM: 2MB
  • Disk space: 1MB for the fat binary
  • System 7.5 recommended, earlier System 7 versions possible with the Thread Manager extension installed
  • Open Transport networking required, version 1.1.1 or later recommended

to do

  • preferences file
  • saving/loading connection settings as a filetype
  • check server keys/known hosts/keys
  • clean up libssh2 network ops
  • nicer error presentation for more failure cases
  • read Apple HIG and obsessively optimize placement of all GUI elements
  • hook scrolling into vterm
  • figure out retro68 mcpu issue
  • improve 68k connection performance (rewrite mbedtls_mpi_exp_mod in assembly)
  • improve draw speed (big refactor, need to use an "offscreen graphics world" framebuffer)
  • font size options
  • text selection + copy
  • color

build

Uses Retro68 and cmake.

Requires mbedtls, libssh2, and libvterm, see my (cy384's) ports of those libraries for details. Note that you need to build/install each for both platforms (m68k and PPC).

  • mkdir build && cd build
  • cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/powerpc-apple-macos/cmake/retroppc.toolchain.cmake or cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake
  • make

Use Rez to build the fat binary: join the data fork from the PPC version and the resource fork from the m68k version.

I have some build scripts that I'll clean up and publish with the 1.0.0 release.

note to self: binary resources can be extracted in MPW via: DeRez "Macintosh HD:whatever" -skip "'CODE'" -skip "'DATA'" -skip "'RELA'" -skip "'SIZE'" etc., this is especially useful for icons

license

Licensed under the BSD 2 clause license, see LICENSE file.