aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Fix up clang-formatting a bitHEADmasterGravatar Benjamin Barenblat2023-08-07
| | | | Move some characters around to optimize clang-format output.
* clang-format MoshGravatar Benjamin Barenblat2023-08-07
| | | | | | | | 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
* Add a clang-format file and prepare for clang-formattingGravatar Benjamin Barenblat2023-08-07
| | | | | | | | | 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.
* Add missing fatal_assert.h includeGravatar Alex Chernyakhovsky2023-08-07
|
* Use pipe to communicate between client and server at startupGravatar Ashley Hedberg2023-08-07
| | | | Fixes empty line on login
* Switch to C++ versions of standard C headersGravatar Alex Chernyakhovsky2023-07-30
|
* Remove using-declarations for std:: typesGravatar Alex Chernyakhovsky2023-07-30
|
* Modernize all typedefs with using statementsGravatar Alex Chernyakhovsky2023-07-30
|
* Removed shared_ptr shimGravatar Alex Chernyakhovsky2023-07-30
| | | | | Since C++17 is now the default mosh version, remove the shared_ptr shim in favor of std::shared_ptr.
* Stop Cygwin CIGravatar John Hood2023-07-30
|
* Switch to fully-qualified #includeGravatar Alex Chernyakhovsky2023-07-30
| | | | | | | 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.
* Rename VERSION to VERSION.stampGravatar Alex Chernyakhovsky2023-07-30
| | | | | -I$(top_srcdir) is not usable on macOS due to a conflicting C++ header `version`.
* modernize configure.ac slightlyGravatar John Hood2023-07-30
|
* Update ubuntu runner imagesGravatar Alex Chernyakhovsky2023-07-30
| | | | | ubuntu-18.04 is no longer available on Github Actions; replace it with ubuntu-22.04.
* Bump C++ version to C++17Gravatar Alex Chernyakhovsky2023-07-30
| | | | | | | | | | | | | | | | | | | | 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
* Add developer instructions to readme (#1252)Gravatar ahedberg2023-01-19
| | | | | | | * Add developer instructions to readme * Split dependencies by platform * Remove unneeded packages
* Add github action for CIFuzz integrationGravatar David Korczynski2022-11-20
| | | | Signed-off-by: David Korczynski <david@adalogics.com>
* Release for Debian unstableGravatar Benjamin Barenblat2022-11-12
|
* Bump version to 1.4.0Gravatar Benjamin Barenblat2022-10-26
|
* Release for Debian experimental, take 2Gravatar Benjamin Barenblat2022-10-26
| | | | | experimental is spelled “experimental”, not “unstable”. Oops. Fix 3006ce6d041fc57e43b104472bf41fe9a1ae77d8’s debian/changelog.
* Release for Debian experimentalGravatar Benjamin Barenblat2022-10-26
|
* Support nocheck profileGravatar Benjamin Barenblat2022-10-26
| | | | | | 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>.
* Add Rules-Requires-RootGravatar Benjamin Barenblat2022-10-26
|
* Update Standards-VersionGravatar Benjamin Barenblat2022-10-26
|
* Update debian/watch to version 4Gravatar Benjamin Barenblat2022-10-26
|
* Update to Debhelper 12Gravatar Benjamin Barenblat2022-10-26
|
* Start updating Debian packaging for 1.3.2.95rc2Gravatar Benjamin Barenblat2022-10-26
|
* Bump release candidate to 1.3.2.95rc2Gravatar Benjamin Barenblat2022-10-26
|
* Disable emulation-attributes-bce on tmux 3.3aGravatar Alex Chernyakhovsky2022-10-26
| | | | | | 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.
* Switch 1.4.0-rc1 version to 1.3.2.95rc1Gravatar Alex Chernyakhovsky2022-08-04
| | | | | | 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
* Bump release candidate to 1.4.0-rc1Gravatar Alex Chernyakhovsky2022-08-03
|
* Actually evaluate the github actions contains() expression for prereleaseGravatar Alex Chernyakhovsky2022-08-03
|
* Fetch forcibly while fetching tagsGravatar Alex Chernyakhovsky2022-08-03
| | | | | | | | | | | | | | | | | | | | | | | `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.
* Tag mosh 1.4.0 Release CandidateGravatar Alex Chernyakhovsky2022-08-03
|
* Audit and fix up format stringsGravatar Benjamin Barenblat2022-08-03
|
* Switch macOS multi-arch to x86_64+arm64Gravatar Alex Chernyakhovsky2022-08-03
| | | | | | | | | | | | | | | | | | | 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.
* Add -Wno-unused-parameterGravatar Alex Chernyakhovsky2022-08-03
| | | | | Work around protocolbuffers/protobuf#10357 by disabling -Wunused-parameter.
* Remove obsolete Travis CI configurationGravatar Alex Chernyakhovsky2022-07-11
|
* Add macOS release steps to Github ActionsGravatar Alex Chernyakhovsky2022-07-11
| | | | | | | 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.
* Add release action on LinuxGravatar Alex Chernyakhovsky2022-07-11
| | | | | | | | 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.
* Fixes for distcheckGravatar Alex Chernyakhovsky2022-07-05
|
* Correct memory leak in ocb-aes testGravatar Alex Chernyakhovsky2022-07-05
|
* OCB: Use OpenSSL EVP instead of deprecated AESGravatar Benjamin Barenblat2022-06-27
| | | | | | | 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
* Stop using deprecated Nettle functionsGravatar Alex Chernyakhovsky2022-06-27
| | | | | | | | | 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
* OCB: Heap-allocate keysGravatar Benjamin Barenblat2022-06-27
| | | | | | | 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
* OCB: Make primitive AES API explicitGravatar Benjamin Barenblat2022-06-27
| | | | | | | | | | | | 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
* Delete unused ROUNDS macroGravatar Benjamin Barenblat2022-06-27
| | | | | This macro was used in the reference and AES-NI AES implementations, both of which were deleted in a563093f16be3fca2127224d5c6db36db60c79ca.
* Add nettle to the CI matrixGravatar Alex Chernyakhovsky2022-06-27
|
* Put -lnettle back on the link line when using NettleGravatar Benjamin Barenblat2022-06-27
| | | | | | | | | bacc02408325db9650e60207407bb055100e627e inadvertently stopped propagating `pkg-config --libs` output into the link line. This didn’t affect OpenSSL (since configure.ac puts -lcrypto there manually) or Apple Common Crypto (since it’s not a separate dylib), but it broke Nettle builds. Fix Nettle builds by ensuring that `pkg-config --libs` output actually makes it to the linker.
* Go back to internal OCB implementationGravatar Benjamin Barenblat2022-06-22
| | | | | | | | | | | | | | | | | | | | After further discussion, the Mosh maintainers have decided to stick with the internal OCB implementation for this release. Restore support for using OpenSSL’s AES but internal OCB. To make this commit easy to audit, restore the code exactly, including calls to AES functions that are deprecated in OpenSSL 3; a future commit will update ocb_internal.cc to use EVP instead of directly calling the AES primitives. In anticipation of future changes, preserve support for OpenSSL’s AES-OCB, but don’t compile it in. Add --with-crypto-library=openssl-with-openssl-ocb and --with-crypto-library=openssl-with-internal-ocb options to configure so that developers can easily test Mosh using OpenSSL’s AES-OCB. These options are intended only for testing, are undocumented, and are not subject to any API stability guarantees. Rework configure to look for all possible cryptography libraries first and then dispatch on --with-crypto-library as appropriate.