Homebrew / homebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
13.79k stars 12.45k forks source link

Updating mosh from 1.4.0_21 to 1.4.0_22 on MacOS Sonoma 14.7 (23H124) broke protocol compatibility #195812

Open pascalbertrand opened 3 weeks ago

pascalbertrand commented 3 weeks ago

brew gist-logs <formula> link OR brew config AND brew doctor output

% brew config
HOMEBREW_VERSION: 4.4.2-71-g91f3671
ORIGIN: https://github.com/Homebrew/brew
HEAD: 91f3671b16fe62121364c465c14e0dfd088d7ead
Last commit: 21 hours ago
Core tap JSON: 28 Oct 13:28 UTC
Core cask tap JSON: 28 Oct 13:28 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 12
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.3.5 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.5/bin/ruby
CPU: dodeca-core 64-bit arm_blizzard_avalanche
Clang: 16.0.0 build 1600
Git: 2.39.5 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 14.7-arm64
CLT: 16.0.0.0.1.1724870825
Xcode: N/A
Rosetta 2: false

% brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  python-packaging
  pycparser
  cryptography
  cffi
  numpy

PS: mosh only dependence is protobuf.

Verification

What were you trying to do (and why)?

I tried connecting to remote a server and the connection did not establish. Network has been tested successfully. ssh is working.

I connected successfully locally with the installed client and server.

mosh-1.4.0 is stable from Oct 27, 2022. The update is for protobuf ; the likely culprit.

What happened (include all command output)?

On server (Ubuntu 22.04.5 LTS)

$ mosh-server new -i 10.0.0.5 -p 60000 -v

MOSH CONNECT 60000 lB3eGidCyH/6JjkJmsfzFg

mosh-server (mosh 1.3.2) [build mosh 1.3.2]
Copyright 2012 Keith Winstein <mosh-devel@mit.edu>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

[mosh-server detached, pid = 1103038]

No connection within 60 seconds.

[mosh-server is exiting.]

On client (MacOS Sonoma 14.7)

% mosh --version
mosh 1.4.0 [build mosh 1.4.0]
Copyright 2012 Keith Winstein <mosh-devel@mit.edu>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

% MOSH_KEY=lB3eGidCyH/6JjkJmsfzFg mosh-client 10.0.0.5 60000

mosh did not make a successful connection to 10.0.0.5:60000.
Please verify that UDP port 60000 is not firewalled and can reach the server.

(By default, mosh uses a UDP port between 60000 and 61000. The -p option
selects a specific UDP port number.)
[mosh is exiting.]

What did you expect to happen?

I expected the connection to establish a usable shell.

Step-by-step reproduction instructions (by running brew commands)

brew install mosh
pascalbertrand commented 3 weeks ago

As a temporary fix, I copied the necessary bottles over from my macbook's /opt/homebrew/Cellar/ before running brew link mosh protobuf abseil

I had to authorize every .dylib through security.

This version can establish connections with remote servers.

Bottles copied from Mac Sonoma 14.6.1 (23G93):

I'm pinning the versions for the time being. brew pin mosh protobuf abseil

github-actions[bot] commented 3 days ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.