1465 Commits

Author SHA1 Message Date
izackp 4c50eed0b4 docs: add CLAUDE.md
ci / build (auto, macos-latest) (push) Has been cancelled
ci / build (auto, ubuntu-22.04) (push) Has been cancelled
ci / build (auto, ubuntu-24.04) (push) Has been cancelled
ci / build (nettle, ubuntu-22.04) (push) Has been cancelled
2026-06-04 21:58:22 -04:00
Mike Frysinger b5775df441 prng: support getrandom & getentropy
If the C library supports these random functions, use them directly
instead of reading the /dev/urandom file.  This makes life easier on
platforms that don't have /dev/urandom (like WASM).
2026-02-27 19:55:52 -05:00
Mike Frysinger 8e472066be select: use SA_RESTART with signals
Rely on the OS to automatically restart syscalls that were interrupted
by signals.  This makes code overall more robust because we don't have
to explicitly handle EINTR everywhere ourselves.
2026-02-27 17:07:56 -05:00
Mike Frysinger 3f91cce5ff client: drop NACL check
Since Chrome has completely dropped NaCl support now on all platforms,
there's no sense in continuing to support it in mosh.
2026-02-27 17:04:59 -05:00
Alex Chernyakhovsky 5f5d35c7a8 Run apt update before apt install 2026-02-27 16:44:02 -05:00
Mike Frysinger b245486d9c gitignore: add config.cache
This is generated when running `./configure -C`.
2026-02-27 16:39:59 -05:00
Eric Dorland ee757a2210 Fix compile failure on MacOS X
std::shared_ptr::unique() is deprecated in C++17 and removed in C++20.

Inspired by PR#1362.

Snippet of the failure:

```
In file included from ../../src/terminal/terminal.h:42:
../../src/terminal/terminalframebuffer.h:431:23: error: 'unique' is deprecated [-Werror,-Wdeprecated-declarations]
  431 |     if ( !mutable_row.unique() ) {
      |                       ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/shared_ptr.h:752:3: note: 'unique' has been explicitly marked deprecated here
  752 |   _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_HIDE_FROM_ABI bool unique() const _NOEXCEPT { return use_count() == 1; }
      |   ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:731:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
  731 | #    define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
      |                                         ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:696:49: note: expanded from macro '_LIBCPP_DEPRECATED'
  696 | #      define _LIBCPP_DEPRECATED __attribute__((__deprecated__))
      |                                                 ^
1 error generated.
```
2026-02-27 16:38:09 -05:00
Eric Dorland 64ce9aad9a Drop the -pedantic flag from CXX_FLAGS
Abseil uses certain compiler extensions intentionally (see abseil/abseil-cpp#157) so it triggers multiple warnings enabled by -pedantic (-Wnullability-extension, -Wgcc-compat, -Wvariadic-macro-arguments-omitted at a minimum) as seen in #1373.
2026-02-27 16:38:09 -05:00
Alex Chernyakhovsky 59e3aa96c7 Upgrade ubuntu runners (+2y) 2026-02-23 17:42:45 -05:00
Benjamin Barenblat f7b350f0a8 Remove Benjamin Barenblat from Debian uploaders 2026-01-19 19:39:46 -05:00
Andrew Chin 9c4e59a701 Merge pull request #1366 from irbeam256/fedora-docs
Add Fedora/RHEL dependencies to the README
2026-01-10 21:01:21 -05:00
Irene Brown ad655d89a3 Add Fedora/RHEL dependencies to the README 2025-12-30 02:31:34 -08:00
Andrew Chin 2f3fff61c7 Merge pull request #1363 from eminence/fix_ci
Update to v4 of the upload artifact action
2025-12-06 12:41:29 -05:00
Andrew Chin dc530362bf Update to v4 of the upload artifact action
https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
2025-12-06 09:24:15 -05:00
Alex Chernyakhovsky 1105d481bb Run clang-format lint on pull requests 2023-08-07 22:11:46 -04:00
Benjamin Barenblat 05c7aceb1e Fix up clang-formatting a bit
Move some characters around to optimize clang-format output.
2023-08-07 22:03:00 -04:00
Benjamin Barenblat 3acaa1c4d3 clang-format Mosh
Run clang-format over the Mosh source tree. This is a large change and
has been factored into its own commit for auditability. Reproduce it
with

    find . -name \*.cc -or -name \*.h | while read f; do clang-format -i --style=file $f; done
2023-08-07 22:03:00 -04:00
Benjamin Barenblat 0b15dc94fa Add a clang-format file and prepare for clang-formatting
Create .clang-format to describe the current C++ style used in Mosh.

Mark one carefully-formatted array with `// clang-format off`. Also turn
off clang-format in src/crypto/ocb_internal.cc, since it was imported
almost wholesale from another project and is written in a style
different from the rest of Mosh.
2023-08-07 22:03:00 -04:00
Alex Chernyakhovsky f2904f95b3 Add missing fatal_assert.h include 2023-08-07 21:52:47 -04:00
Ashley Hedberg 4306b7cd42 Use pipe to communicate between client and server at startup
Fixes empty line on login
2023-08-07 20:59:47 -04:00
Alex Chernyakhovsky cf542739cc Switch to C++ versions of standard C headers 2023-07-30 19:02:51 -04:00
Alex Chernyakhovsky 19ad493dcb Remove using-declarations for std:: types 2023-07-30 19:02:51 -04:00
Alex Chernyakhovsky 8469db91db Modernize all typedefs with using statements 2023-07-30 19:02:51 -04:00
Alex Chernyakhovsky 38c84a9330 Removed shared_ptr shim
Since C++17 is now the default mosh version, remove the shared_ptr
shim in favor of std::shared_ptr.
2023-07-30 19:02:51 -04:00
John Hood 2224465cc9 Stop Cygwin CI 2023-07-30 17:03:50 -04:00
Alex Chernyakhovsky 325098ac07 Switch to fully-qualified #include
Previously, mosh used extensive -I flags and all of the mosh-local
makes it really hard to tell what the proper dependency graph is, so
instead remove the -I arguments in favvor of $(top_srcdir) and qualify
the paths wherever they are used.
2023-07-30 17:03:40 -04:00
Alex Chernyakhovsky 62869ae55f Rename VERSION to VERSION.stamp
-I$(top_srcdir) is not usable on macOS due to a conflicting C++ header
 `version`.
2023-07-30 17:03:40 -04:00
John Hood aa742478cb modernize configure.ac slightly 2023-07-30 16:53:06 -04:00
Alex Chernyakhovsky d5da710c02 Update ubuntu runner images
ubuntu-18.04 is no longer available on Github Actions; replace it with
ubuntu-22.04.
2023-07-30 16:52:57 -04:00
Alex Chernyakhovsky eee1a8cf41 Bump C++ version to C++17
Protobuf versions since 3.6.0 have long had a C++11 dependency; even
more recent versions have picked up an Abseil dependency bumping that
to C++14. Since it is now 2023, defaulting to C++17 is reasonable, so
remove the conditional C++ standards version check that mosh
previously had and replace it with an unconditional C++17 check.

This means that all future commits can use C++17 features. According
to https://en.cppreference.com/w/cpp/compiler_support/17 this means
that minimum effective compiler versions for mosh become:

gcc 7 (May 2017)
clang 5 (September 2017)

This, in turn, implies that future versions of mosh will no longer be
available for RHEL/CentOS 7 (June 2014).

Closes: #1267
2023-07-30 16:43:46 -04:00
ahedberg c16108f017 Add developer instructions to readme (#1252)
* Add developer instructions to readme

* Split dependencies by platform

* Remove unneeded packages
2023-01-19 20:11:30 -05:00
David Korczynski c516fb4256 Add github action for CIFuzz integration
Signed-off-by: David Korczynski <david@adalogics.com>
2022-11-20 16:06:53 -10:00
Benjamin Barenblat aafe2f9f02 Release for Debian unstable 2022-11-12 05:12:12 -05:00
Benjamin Barenblat bc73a26316 Bump version to 1.4.0 2022-10-26 21:18:11 -04:00
Benjamin Barenblat f111fbe936 Release for Debian experimental, take 2
experimental is spelled “experimental”, not “unstable”. Oops. Fix
3006ce6d041fc57e43b104472bf41fe9a1ae77d8’s debian/changelog.
2022-10-26 20:40:28 -04:00
Benjamin Barenblat 3006ce6d04 Release for Debian experimental 2022-10-26 20:30:08 -04:00
Benjamin Barenblat 42a3b52745 Support nocheck profile
Per release-team’s recent request that maintainers support the nocheck
profile <E1oit90-0073rh-LX@respighi.debian.org>, annotate build
dependencies that are test-only with <!nocheck>.
2022-10-26 20:30:08 -04:00
Benjamin Barenblat 2285ba4669 Add Rules-Requires-Root 2022-10-26 20:30:08 -04:00
Benjamin Barenblat 5eb5b044f3 Update Standards-Version 2022-10-26 20:30:08 -04:00
Benjamin Barenblat 413b979897 Update debian/watch to version 4 2022-10-26 20:30:08 -04:00
Benjamin Barenblat 684cda53da Update to Debhelper 12 2022-10-26 20:30:08 -04:00
Benjamin Barenblat 49760579bd Start updating Debian packaging for 1.3.2.95rc2 2022-10-26 20:30:08 -04:00
Benjamin Barenblat a08e682de6 Bump release candidate to 1.3.2.95rc2 2022-10-26 19:31:42 -04:00
Alex Chernyakhovsky 68226283cb Disable emulation-attributes-bce on tmux 3.3a
tmux 3.3a has a behavior change, since reverted, that is incompatible
with this test. Unfortunately, tmux 3.3a has already made it into some
distributions, so the test has to be disabled when tmux 3.3a is encountered.
2022-10-26 19:15:04 -04:00
Alex Chernyakhovsky f3665fb99b Switch 1.4.0-rc1 version to 1.3.2.95rc1
This helps to avoid problems when the 1.4.0 release is made and
distributions with version sort order think the rc sorts after
the non-suffixed version
2022-08-04 17:15:43 -04:00
Alex Chernyakhovsky fe72a3e084 Bump release candidate to 1.4.0-rc1 2022-08-03 21:42:26 -04:00
Alex Chernyakhovsky 3afba8985c Actually evaluate the github actions contains() expression for prerelease 2022-08-03 15:41:12 -10:00
Alex Chernyakhovsky 850c1f0955 Fetch forcibly while fetching tags
`git fetch --tags --unshallow`, run as part of the CI for `git
describe` to do the right thing, ran into the error:

```
 ! [rejected]        mosh-1.4.0-rc0   -> mosh-1.4.0-rc0  (would clobber existing tag)
```

This is because mosh uses annotated tags, whereas the initial fetch
command run by actions/checkout@v2 ends up creating an *unannotated*
tag of the same name.

This means that any time the release CI runs, it would fail.

The resolution is straightforward: --force so that the line becomes

```
 t [tag update]      mosh-1.4.0-rc0 -> mosh-1.4.0-rc0
```

and the annotation is brought in.
2022-08-03 15:22:36 -10:00
Alex Chernyakhovsky 7d2601d419 Tag mosh 1.4.0 Release Candidate 2022-08-03 14:13:43 -10:00
Benjamin Barenblat cd7050613c Audit and fix up format strings 2022-08-03 19:59:56 -04:00