What's new in Mosh 1.4.0
Oct 27, 2022
- New features:
- Support OSC 52 clipboard copy integration (Alex Cornejo)
- Allow non-inserting prediction (--predict-overwrite) (John Hood)
- Don't do prediction on large pastes into mosh-client (John Hood)
- Add true color support (Kang Jianbin)
- Add syslog logging of connections (Tom Judge)
- If exec()ing the remote command fails, pause briefly (John Hood)
- Bug fixes:
- ignore unknown renditions (Keith Winstein)
- Overlays were getting set to the wrong colors (John Hood)
- Fix issue with incorrect true-color background erase colors (John Hood)
- Use HAVE_UTEMPTER instead of HAVE_UPTEMPTER (Michael Jarvis)
- Apply latest consecutive resize, not earliest (Peter Edwards)
- Use CLOCK_MONOTONIC_RAW when available (Harry Sintonen)
- Add tmux and alacritty to title_term_types (Naïm Favier)
- Don't sometimes hang just after launching ssh (Kalle Samuels)
- Internal changes:
- Reformat printed strings in source (John Hood)
- Code cleanups (John Hood, Anders Kaseorg, Benjamin Barenblat, Alex Chernyakhovsky)
- Always use non-blocking sockets for recvmsg() (John Hood)
- Add Perl compile (John Hood)
- Improvements to the test suite (John Hood)
- Fixes to autoconf configure (Anders Kaseorg)
- Cleanups to our cryptography code (Benjamin Barenblat, Alex Chernyakhovsky)
- Infrastructure changes:
- Add support for OCLint static checker (John Hood)
- Switch from Travis-CI to Github Actions (Wolfgang E. Sanyer, Alex Chernyakhovsky)
- Add code coverage and fuzzing infrastructure (Alex Chernyakhovsky)
New in Mosh 1.3.2.95 RC 1 (Aug 5, 2022)
- Reformat printed strings in source by @cgull in #869
- Support OCLint static checker; do some source cleanup by @cgull in #826
- Ignore unknown rendition numbers by @keithw in #919
- Add Perl compile by @cgull in #937
- mosh.pl: Fix the error message if getaddrinfo is missing by @andersk in #940
- Use HAVE_UTEMPTER instead of HAVE_UPTEMPTER by @mojotx in #944
- mosh.pl: Allow shell expansion of --server with --local by @andersk in #947
- Type Select::got_signal as volatile sig_atomic_t by @andersk in #954
- Require C++11 if protobuf version >= 3.6.0 is installed by @cgull in #990
- Fix FreeBSD issue with bind(2), do some namespace/using cleanup by @cgull in #996
- Apply latest consecutive resize, not earliest. by @peadar in #1019
- configure: Add --enable-static-LIBRARY options for selective static linking by @andersk in #1024
- Various configure cleanups and improvements by @andersk in #1048
- If exec()ing the remote command fails, pause briefly by @cgull in #1053
- fixed the irc channel link in README by @buzztiaan in #1146
- .gitignore: add autogenerated files by @black-desk in #1125
- Don't sometimes hang just after launching ssh by @njaard in #1160
- Use CLOCK_MONOTONIC_RAW when available by @piru in #1124
- Add tmux and alacritty to title_term_types by @ncfavier in #1150
- GitHub actions by @ezzieyguywuf in #1170
- Add support for generating coverage reports by @achernya in #1173
- Add fuzzing infrastructure by @achernya in #1193
- Revert "Remove redundant malloc/free" by @achernya in #1194
- Separate OpenSSL-based OCB implementation from others by @bbarenblat in #1195
- Use OpenSSL native OCB-AES implementation by @achernya in #1196
- Go back to internal OCB implementation by @bbarenblat in #1198
- Put -lnettle back on the link line when using Nettle by @bbarenblat in #1199
- Add nettle to the CI matrix by @achernya in #1201
- OCB: Make primitive AES API explicit by @bbarenblat in #1200
- OCB: Heap-allocate keys by @bbarenblat in #1203
- Stop using deprecated Nettle functions by @achernya in #1204
- OCB: Use OpenSSL EVP instead of deprecated AES by @bbarenblat in #1205
- Correct memory leak in ocb-aes test by @achernya in #1206
- Fixes for distcheck by @achernya in #1207
- Release CI using Github Actions by @achernya in #1208
- Add -Wno-unused-parameter by @achernya in #1215
- Switch macOS multi-arch to x86_64+arm64 by @achernya in #1213
- Audit and fix up format strings by @bbarenblat in #1212
- Tag mosh 1.4.0 Release Candidate by @achernya in #1216
- Fetch forcibly while fetching tags by @achernya in #1217
- Actually evaluate the github actions contains() expression for prerel… by @achernya in #1218
New in Mosh 1.3.2 (Oct 24, 2021)
- Platform support:
- Explicitly enable binding to both IPv4 and IPv6 addresses. (Giel van Schijndel)
- Restore perl 5.8.8 support for RHEL5. (Alexander Chernyakhovsky)
- Make tests detect UTF-8 locale with a helper executable. (John Hood)
- Don't print /etc/motd on IllumOS. (John Hood)
- Print {,/var}/run/motd.dynamic on Ubuntu. (John Hood)
- Fix build on Haiku. (Adrien Destugues)
- Disable unicode-later-combining.test for tmux 2.4. This fixes build failures. (John Hood)
- Bug fixes:
- In tests, explicitly set 80x24 tmux window, for newer versions of tmux. (John Hood)
- Work around JuiceSSH rendering bug. (John Hood)
- Do not move cursor for SCROLL UP and SCROLL DOWN--fixes an issue with tmux 2.4. (John Hood)
New in Mosh 1.3.0 (Mar 27, 2017)
- New features:
- Change website URLs from http://mosh.mit.edu to https://mosh.org. (Keith Winstein)
- Add --no-ssh-pty option for Dropbear compatibility and other issues.
- Switch to semantic versioning, making this version 1.3.0 instead of 1.2.7.
- Platform support:
- Added nonce-incrementing test. (Keith Winstein)
- Add build-source-package.sh for Debian. (Keith Winstein)
- Fix CPPFLAGS handling possibly causing curses detection failure. (John Hood)
- Add an Appveyor/Cygwin CI build.
- Improve warning-flags detection for 'make distcheck'. (John Hood)
- Improve robustness of regression tests. (John Hood)
- Support OpenBSD pledge() sandboxing. (John Hood)
- Use backward-compatible name for AES in AppleCommonCrypto, fixing builds with older OS X SDKs. (John Hood)
- Detect clock_gettime() and CLOCK_MONOTONIC carefully, fixing OS X 10.12 + Xcode 7.3 builds. (John Hood)
- Support older versions of Perl, back to 5.10, fixing RHEL 5 builds. (Anders Kaseorg)
- Add a Travis OS X CI and release build. (John Hood)
- Add --help and --version, enabling Automake's 'std-options' checks. (Anders Kaseorg)
- Add a simple smoke test not requiring tmux, to help validate builds on older platforms including RHEL 5. (Anders Kaseorg)
- Check for presence of clock_gettime() for OS X, where the symbol may not be resolved on older OS X versions. (John Hood)
- Fix a memory alignment issue in OCB with ARM/Neon. (Carlos Cabanero)
- Mosh now runs correctly on Bash for Windows with Windows 10 Insider builds 15002 and higher. (No change in Mosh)
- Other minor platform compatibility fixes for Mosh sources and tests. (John Hood)
- Bug fixes:
- Work around a pty buffering issue causing failed connections on FreeBSD 11, or with Dropbear. (John Hood)
- Restore '-p 0' option for OS-selected UDP port bindings. (John Hood)
- Shell hygiene fixes, including better quoting of pathnames. (Anders Kaseorg)
- Fix typos in project docs. (Jakub Wilk)
- Fix excess newlines on mosh client startup/shutdown. (John Hood)
- Exit gracefully, closing session, on pty write or ioctl failure. (John Hood)
- Fix two bugs that caused mosh-server to consume excessive CPU in certain circumstances. (John Hood)
- Fix bug that caused text copied from mosh-client to paste as long lines joined by spaces. (John Hood)
- Documentation improvements. (chenxiaoqino, Ashish Gupta)
- Use getuid(), not geteuid(), for correct getpw* lookups. (John Hood)
New in Mosh 1.2.6 (Aug 12, 2016)
- Highlights:
- huge performance improvements, especially on large terminals,
- the ability to set a timeout to end dormant sessions automatically, and
- support for crypto libraries other than OpenSSL (Nettle and Apple Common Crypto).
- New features:
- Add Travis CI builds for Linux and Mac. (Anders Kaseorg, others)
- Add a --local option to run without ssh. (John Hood)
- Mosh now returns exitstatus reflecting connection success. (John Hood)
- Add a end-to-end test suite and many tests. (John Hood)
- Implement timeouts and signals to help address orphaned sessions. (John Hood)
- Major rework of Mosh's display differencing/rendering code with much improved performance for slow machines. (John Hood)
- Implement ANSI back/forward tab (CSI CBT, CSI CHT). (John Hood)
- Do not start user shell until network session starts. (John Hood)
- Add options for more flexible specification of IPv4/IPv6 hostname resolution. (John Hood)
- Improved bash completion. (Steve Dignam, HIGUCHI Yuta)
- Add options for different methods of resolving the remote host address, allowing operation without SshProxyCommand. (John Hood)
- Platform support:
- Add configurable support for Apple Common Crypto and Nettle, in place of OpenSSL. Implement base64 locally. (John Hood)
- Workaround Cygwin select() bug. (John Hood)
- Updates to Debian packaging. (Anders Kaseorg, Keith Winstein)
- Workaround a glibc-2.22 issue causing segfaults on Debian Sid. (John Hood with help from many others)
- Prefer c++ to g++, for systems like FreeBSD where g++ is not usable. (John Hood)
- Fixes for Illumos Hipster 20151003. (John Hood)
- Disable -Werror for protobuf code, to resolve a new gcc6 warning. (John Hood)
- Link test for -fstack-protector-all on an embedded platform. (Baruch Siach)
- Resolve issue with bswap64() on FreeBSD-CURRENT with libc++-3.8.0. (John Hood)
- Fix issue with RECVTOS error message on client on FreeBSD. (John Hood)
- Bug fixes:
- Remove an assertion causing aborts on Unicode fallback found by fuzzing with afl. (Keith Winstein)
- Fix a server hang with XON/XOFF on BSD systems. (John Hood)
- Fix a typeahead-prediction bug that caused display corruption on urxvt. (John Hood)
New in Mosh 1.2.5.95 RC 1 (May 27, 2016)
- New features:
- Add Travis CI builds for Linux and Mac. (Anders Kaseorg, others)
- Add a --local option to run without ssh. (John Hood)
- Mosh now returns exitstatus reflecting connection success. (John Hood)
- Add a end-to-end test suite and many tests. (John Hood)
- Implement timeouts and signals to help address orphaned sessions. (John Hood)
- Major rework of Mosh's display differencing/rendering code with much improved performance for slow machines. (John Hood)
- Implement ANSI back/forward tab (CSI CBT, CSI CHT). (John Hood)
- Do not start user shell until network session starts. (John Hood)
- Add options for more flexible specification of IPv4/IPv6 hostname resolution. (John Hood)
- Improved bash completion. (Steve Dignam, HIGUCHI Yuta)
- Add options for different methods of resolving the remote host address, allowing operation without SshProxyCommand. (John Hood)
- Platform support:
- Add configurable support for Apple Common Crypto and Nettle, in place of OpenSSL. Implement base64 locally. (John Hood)
- Workaround Cygwin select() bug. (John Hood)
- Updates to Debian packaging. (Anders Kaseorg, Keith Winstein)
- Workaround a glibc-2.22 issue causing segfaults on Debian Sid. (John Hood with help from many others)
- Prefer c++ to g++, for systems like FreeBSD where g++ is not usable. (John Hood)
- Fixes for Illumos Hipster 20151003. (John Hood)
- Disable -Werror for protobuf code, to resolve a new gcc6 warning. (John Hood)
- Link test for -fstack-protector-all on an embedded platform. (Baruch Siach)
- Resolve issue with bswap64() on FreeBSD-CURRENT with libc++-3.8.0. (John Hood)
- Fix issue with RECVTOS error message on client on FreeBSD. (John Hood)
- Bug fixes:
- Remove an assertion causing aborts on Unicode fallback found by fuzzing with afl. (Keith Winstein)
- Fix a server hang with XON/XOFF on BSD systems. (John Hood)
- Fix a typeahead-prediction bug that caused display corruption on urxvt. (John Hood)
New in Mosh 1.2.5 (Oct 29, 2015)
- New features:
- Bind to a specific IP address with --bind-server. (Philipp Haselwarter)
- MOSH_ESCAPE_KEY configures escape character. (Timo J. Rinne)
- Support non-roaming IPv6. (Anders Kaseorg)
- Implement XTerm mouse mode. (Barosl LEE, Andrew Chin, Louis Kruger)
- Report Git revision along with version if available. (John Hood)
- Platform support:
- Add pselect() emulation. (Jeremie Courrèges-Anglas)
- OpenBSD, OS X: Fix be64toh-related issues. (Jeremie Courrages-Anglas)
- ARM Neon: fix gcc4.8 compiling problem(Pasi Sjäholm)
- NaCl: Conditionally rename main to mosh_main. (Richard Woodbury)
- FreeBSD: Token pasting, forkpty(), ARM fixes. (John Hood)
- AIX: Implement CTTY grabbing when TIOCSCTTY is missing (Anton Lundin)
- OS X: Broaden build support to cover OS X 10.5 through 10.10. (John Hood)
- Debian: Improve bash-completion install and functionality. (Suggested by Gabriel Filion, John Hood)
- Bug fixes:
- Automake/autoconf workarounds. (Anders Kaseorg)
- mosh-server: Allow startup without PTY. (Keith Winstein)
- network.cc: Properly close old fd on Socket assignment operator. (Thanks to Igor Bukanov)
- mosh-server: Allow startup with zero-window-size PTY. (Igor Bukanov)
- AddrInfo: Fix error message generation when node == NULL (Anders Kaseorg)
- Timestamp: Prevent integer overflow on Darwin PPC 32-bit (Anders Kaseorg)
- scripts/mosh: Fix hang when remote closes the connection (Anders Kaseorg)
- Fix issues with parsing of 256-color SGR sequences. (John Hood)
- Numerous code hygiene, Coverity, and Clang static analyzer fixes. (Anders Kaseorg, Geoffrey Thomas, John Hood)
New in Mosh 1.2.2 (Sep 29, 2012)
- Remove warning on out-of-order/duplicated datagrams
- Add "experimental" prediction mode
New in Mosh 1.2.1 (Sep 29, 2012)
- Improve performance on lossy links.
- New diagnostic message when link is dead in only one direction.
- Use less CPU when link is down. (Keegan McAllister)
- Use much less CPU when application or mosh-server sends large repeat counts (resolves CVE-2012-2385, reported by Timo Juhani Lindfors).
- Use less memory when mosh-server is malicious.
- Fix vttest regression re: wrapping and tabs.
- Enable roundtrip verifier of terminal emulator correctness when verbose.
- Remove skalibs as a dependency. (Keegan McAllister)
- Remove use of poll() and OS X poll workaround. (Keegan McAllister)
- Include bash_completion file. (ejeffrey)
- Include UFW firewall profile. (Fumihito YOSHIDA)
- Warning on out-of-order/duplicated datagrams (or failed nonce increment).
- Clearer error message on invalid port number.
- Cleanups to quit scenario when firewalled.
New in Mosh 1.2 (Sep 29, 2012)
- Remove Boost as a dependency (Keegan McAllister)
- Add support for FreeBSD, Cygwin, RHEL/CentOS 5, OS X 10.5 on PPC.
- More verbose and helpful diagnostics. Server now has -v flag.
- Client now has --ssh= flag to set SSH options (like port)
- Remove skalibs as a dependency on Debian/Ubuntu (Keegan McAllister)
- Now passes locale-related env vars over the connection
- Fix startup script to no longer hang on some Macs (Jay Freeman)
- Fix terminal emulation and argument parsing on FreeBSD
- Fix alignment problems on ARM
- Now prints message of the day
- Use binary hardening flags where available (Keegan McAllister)
- Responsiveness and CPU-usage improvements
- Several terminal-emulation improvements and bug fixes
New in Mosh 1.1.3 (Apr 7, 2012)
- Builds on armel, armhf, and kFreeBSD.
- Fixes bug causing occasional missing/extra wraparound copy-and-paste.
- Eliminates valgrind complaint over unused winsize fields.
- Close connection after four petabytes (per OCB recommendation).