1
0
mirror of https://github.com/mobile-shell/mosh.git synced 2025-12-16 12:00:15 +01:00

1453 Commits

Author SHA1 Message Date
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 mosh-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 mosh-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
mosh-1.3.2.95rc1
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.
mosh-1.4.0-rc0
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
Alex Chernyakhovsky
4cd2da5202 Switch macOS multi-arch to x86_64+arm64
The previous CI attemtped to use Homebrew for builds, but
unfortunately Homebrew has dropped support for universal packages aka
multiarch (fat) binaries. This means that in order to build an arm64 +
x86_64 package, macports has to be used instead of homebrew.

Unlike Homebrew, MacPorts is not installed by default on the GitHub
Actions runners, so we need to install it ourselves. This means
managing our own instance of the cache, which itself produces
challenges as the `gtar` binary run by the action doesn't have enough
permissions to restore the MacPorts checkout. So we have to shim gtar
with a sudo wrapper.

With this commit, we produce a Mosh package that works on macOS 11.0
and newer, on both arm64 and x86_64 architectures. The protobuf
library is statically linked, but all other libraries are provided by
the system.
2022-08-03 13:52:18 -10:00
Alex Chernyakhovsky
6154bc04d9 Add -Wno-unused-parameter
Work around protocolbuffers/protobuf#10357 by disabling
-Wunused-parameter.
2022-08-03 13:44:57 -10:00
Alex Chernyakhovsky
0982212ca7 Remove obsolete Travis CI configuration 2022-07-11 21:21:18 -04:00
Alex Chernyakhovsky
7f0c3a4162 Add macOS release steps to Github Actions
This change ports the Travis CI release workflow for macOS to Github
Actions. Note that while this is functionally identical to the
previous Travis CI flow, no work has been done to update the macOS
build scripts to build for arm64.
2022-07-11 21:21:18 -04:00
Alex Chernyakhovsky
f0b0108c85 Add release action on Linux
This Github Actions workflow uses a Linux-based running to create the
release tarball for mosh. This is necessary since mosh does not check
in the autoconf/automake generated files, so the default release
action source download is missing files that are needed for
distributions that use the upstream-provided ./configure script.
2022-07-11 21:21:18 -04:00
Alex Chernyakhovsky
581bd67c5a Fixes for distcheck 2022-07-05 16:56:46 -04:00
Alex Chernyakhovsky
2b7dd9efc3 Correct memory leak in ocb-aes test 2022-07-05 15:36:13 -04:00
Benjamin Barenblat
1416e9a3c1 OCB: Use OpenSSL EVP instead of deprecated AES
Replace calls to AES_* APIs, which were deprecated in OpenSSL 3, with
calls to EVP_* APIs.

Closes: https://github.com/mobile-shell/mosh/issues/1174
2022-06-27 15:10:49 -10:00
Alex Chernyakhovsky
5ad20dbc50 Stop using deprecated Nettle functions
Previously, ocb_internal.cc supported different key sizes, by way of
the deprecated aes_* function family. However, in practice, mosh
always uses AES-128. In Nettle, the explicit key-size APIs are not
deprecated, so switch to AES-128 directly.

Fixes: 1202
2022-06-27 14:34:26 -10:00
Benjamin Barenblat
db49808ac3 OCB: Heap-allocate keys
The OpenSSL EVP API requires that keys be heap-allocated, so switch
_ae_ctx to use pointers to keys and opaque allocation functions.

Bug: https://github.com/mobile-shell/mosh/issues/1174
2022-06-27 14:11:09 -10:00
Benjamin Barenblat
ad85b90505 OCB: Make primitive AES API explicit
Explicitly define the primitive AES API used by the internal OCB
implementation, and move it into its own namespace (ocb_aes). This will
ease future implementation changes.

Also make some style fixes to affected lines: Replace C-style casts
with C++-style casts, add some missing spaces in argument lists, and
remove some `inline` that the compiler will ignore.

Bug: https://github.com/mobile-shell/mosh/issues/1174
2022-06-27 13:56:07 -10:00
Benjamin Barenblat
0a30c5acd5 Delete unused ROUNDS macro
This macro was used in the reference and AES-NI AES implementations,
both of which were deleted in a563093f16.
2022-06-27 13:56:07 -10:00