Commit 728b9ba2 authored by Jérome Perrin's avatar Jérome Perrin

Add Mosh component

Add a Mosh (mobile shell) component https://mosh.org/ , especially for the "local echo" feature ( see [demo](https://youtu.be/XsIxNYl0oyU?t=6m11s)) that makes remote shell over high latency network less painful.

---
I could not get the integrated `mosh` command to work with webrunner's openssh, but I'm already opening this MR for visibility.
For now, connecting using the way described as **Q: How do I run the mosh client and server separately?** in mosh [FAQ](https://mosh.org/#faq) works.

You can evaluate this with:
```ini
[buildout]
extends = component/mosh/buildout.cfg
parts = mosh
```

Start the server from the server side (after ssh'ing to the server) :
```bash
$ LC_ALL=C.UTF-8 ./parts/mosh/bin/mosh-server new -s -v
```
it will prints something like:
```
MOSH CONNECT 60002 XXXeu5nj+CLZtw/HiIcrLQ

mosh-server (mosh 1.3.0) [build mosh 1.3.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-server detached, pid = 24525]
```

then from client connect with:
 ```bash
$ MOSH_KEY=XXXeu5nj+CLZtw/HiIcrLQ mosh-client 2001:X:X:X:X  60002
```

/reviewed-on nexedi/slapos!164
parents fa8b6eaa 22561f34
......@@ -6,6 +6,7 @@ extends =
../perl/buildout.cfg
../xz-utils/buildout.cfg
../zlib/buildout.cfg
../python-2.7/buildout.cfg
parts =
glib
......
[buildout]
extends =
../pkgconfig/buildout.cfg
../protobuf/buildout.cfg
../ncurses/buildout.cfg
../perl/buildout.cfg
../zlib/buildout.cfg
../openssl/buildout.cfg
[mosh]
recipe = slapos.recipe.cmmi
url = https://mosh.org/mosh-1.3.0.tar.gz
md5sum = d961276995936953bf2d5a794068b076
configure-options =
--with-curses=${ncurses:location}
environment =
PATH=${perl:location}/bin:${pkgconfig:location}/bin:${protobuf-cpp:location}/bin:%(PATH)s
CXXFLAGS =-I${zlib:location}/include
LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${protobuf-cpp:location}/lib -Wl,-rpath=${protobuf-cpp:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib
PKG_CONFIG_PATH=${protobuf-cpp:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${ncurses:location}/lib/pkgconfig:${zlib:location}/lib/pkgconfig
......@@ -6,3 +6,12 @@ recipe = slapos.recipe.cmmi
url = https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-python-3.1.0.tar.gz
md5sum = 7a227a21379a2ea08cc5d7ba1fb1ba5b
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[protobuf-cpp]
recipe = slapos.recipe.cmmi
url = https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-cpp-3.1.0.tar.gz
md5sum = bd5e3eed635a8d32e2b99658633815ef
configure-command =
./autogen.sh
./configure --prefix=${buildout:parts-directory}/${:_buildout_section_name_}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment