Kalgoorlie Retro Docs

Documentation for the Kalgoorlie Retro BBS, its games and servers

User Tools

Site Tools


lanternterminal:building

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lanternterminal:building [2026-11-07 21:22] – Update Lantern Terminal guides for 0.2.0 slatermlanternterminal:building [2026-11-11 08:56] (current) – Update Lantern Terminal guides for 0.6.0 slaterm
Line 3: Line 3:
 ===== Source package ===== ===== Source package =====
  
-Extract ''lantern-terminal-0.2.0-source.tar.gz'' and enter its top-level directory. Paths containing spaces are supported. The source archive contains C++ code, CMake configuration, shell/PowerShell scripts, terminal-parser source, specifications, examples, tests and dependency/download manifests. Build outputs go to ''build/''; release files go to ''dist/''.+Extract ''lantern-terminal-0.6.0-source.tar.gz'' and enter its top-level directory. Paths containing spaces are supported. The source archive contains C++ code, CMake configuration, shell/PowerShell scripts, terminal-parser and Lua runtime source, specifications, examples, tests and dependency/download manifests. Build outputs go to ''build/''; release files go to ''dist/''.
  
 ===== Linux — easiest build ===== ===== Linux — easiest build =====
Line 12: Line 12:
  
 <code sh> <code sh>
-sudo apt install build-essential cmake ninja-build qt6-base-dev qt6-serialport-dev qt6-5compat-dev openssh-client python3 libglib2.0-bin desktop-file-utils+sudo apt install build-essential cmake ninja-build qt6-base-dev qt6-serialport-dev qt6-5compat-dev libssh-dev libssl-dev freerdp3-dev openssh-client python3 libglib2.0-bin desktop-file-utils
 ./scripts/build-linux.sh ./scripts/build-linux.sh
 ./build/linux/lantern-terminal ./build/linux/lantern-terminal
Line 32: Line 32:
 LANTERN_BUILD_DIR="$PWD/build/debug" LANTERN_BUILD_TYPE=Debug LANTERN_JOBS=4 ./scripts/build-linux.sh LANTERN_BUILD_DIR="$PWD/build/debug" LANTERN_BUILD_TYPE=Debug LANTERN_JOBS=4 ./scripts/build-linux.sh
 </code> </code>
 +
 +The ''lantern-lua'' worker is built automatically with the application from vendored Lua 5.4.9 source. No Lua SDK, interpreter download or LuaSocket installation is needed. Both executables must remain together in the installed ''bin/'' directory (Windows: application directory).
  
 ===== Windows — native build ===== ===== Windows — native build =====
Line 52: Line 54:
 sudo apt install mingw-w64 cmake ninja-build nsis python3-venv sudo apt install mingw-w64 cmake ninja-build nsis python3-venv
 ./scripts/setup-windows-cross.sh ./scripts/setup-windows-cross.sh
 +./scripts/build-windows-libssh.sh
 +./scripts/build-windows-freerdp.sh
 ./scripts/build-windows-cross.sh ./scripts/build-windows-cross.sh
 </code> </code>
 +
 +''build-windows-libssh.sh'' cross-builds zlib, OpenSSL and libssh (versions and SHA256 checksums pinned in ''scripts/dependencies.json'') into the toolchain cache for the built-in SSH engine; it needs ''make'' and ''perl'' and takes several minutes the first time. Without it the Windows build still works but offers only the OpenSSH engine. ''LANTERN_LIBSSH_WINDOWS'' selects a different libssh kit. ''build-windows-freerdp.sh'' then cross-builds the FreeRDP 3 client libraries (pinned with their checksum) using that OpenSSL, for RDP sessions; without it the Windows build has no RDP. ''LANTERN_FREERDP_WINDOWS'' selects a different FreeRDP kit. On Linux, RDP uses the distribution's FreeRDP 3 (''freerdp3-dev''); CMake leaves RDP out with a warning if it is missing.
  
 The setup script installs a pinned aqt helper into a user virtual environment and downloads the official Qt 6.8.3 MinGW Windows kit. The cross build uses the POSIX MinGW compiler variant and vendored Vulkan headers so Linux headers do not enter the Windows build. It does not alter the system compiler configuration. The setup script installs a pinned aqt helper into a user virtual environment and downloads the official Qt 6.8.3 MinGW Windows kit. The cross build uses the POSIX MinGW compiler variant and vendored Vulkan headers so Linux headers do not enter the Windows build. It does not alter the system compiler configuration.
Line 76: Line 82:
 python3 tests/launch_checks.py build/linux/lantern-terminal python3 tests/launch_checks.py build/linux/lantern-terminal
 </code> </code>
 +
 +The RLogin, BBS-session and Zmodem tests (''tests/rlogin.py'', ''tests/bbs.py'', ''tests/zmodem.py'') run in ctest; the Zmodem test needs lrzsz (''sz'', ''rz'') and is skipped by CMake when they are not installed. Also in ctest: ''tests/ssh_tools.py'' (SFTP Browser and Copy Public Key, needs ''sshd''), ''tests/xfer.py'' (Xmodem, Ymodem and Kermit; needs lrzsz and ''gkermit''), ''tests/rdp.py'' (needs ''Xvfb'', ''xterm'', ''freerdp-shadow-cli3'' from freerdp3-shadow-x11 and ''winpr-hash''; it runs on a private display) and ''tests/update.py''. ''tests/windows_rdp.py'' and ''tests/windows_libssh.py'' run the packaged Windows build under Wine on private displays. The built-in VGA font in ''src/vgafont.h'' is generated: ''python3 scripts/make-vga-font.py > src/vgafont.h'' (needs the console-setup-linux fonts).
  
 Integration tests create disposable profiles, loopback TCP/Telnet endpoints, a serial PTY, TFTP files and an SSH daemon with temporary keys. SSH tests need ''sshd'' and ''ssh-keygen''; no production hosts, credentials, service configurations or SSH trust stores are modified. The test daemon listens only on loopback. Tests use a protected user cache so OpenSSH strict ownership checks remain enabled. Integration tests create disposable profiles, loopback TCP/Telnet endpoints, a serial PTY, TFTP files and an SSH daemon with temporary keys. SSH tests need ''sshd'' and ''ssh-keygen''; no production hosts, credentials, service configurations or SSH trust stores are modified. The test daemon listens only on loopback. Tests use a protected user cache so OpenSSH strict ownership checks remain enabled.
Line 82: Line 90:
  
 The native core suite exercises a desktop launcher through ''gio'' (libglib2.0-bin); launch_checks.py also uses desktop-file-validate (desktop-file-utils). Appearance and workspace tests use disposable/offscreen UI instances. The SSH trace check runs OpenSSH configuration inspection without making a network connection. The native core suite exercises a desktop launcher through ''gio'' (libglib2.0-bin); launch_checks.py also uses desktop-file-validate (desktop-file-utils). Appearance and workspace tests use disposable/offscreen UI instances. The SSH trace check runs OpenSSH configuration inspection without making a network connection.
- 
-[[lanternterminal:start|Back to Lantern Terminal]] 
  
lanternterminal/building.1794086539.txt.gz · Last modified: by slaterm