[mosh-devel] Blink and Mosh changes released

Carlos Cabanero carlosecabanero at gmail.com
Wed Jun 15 18:00:19 EDT 2016


Thanks for your prompt response Keith. Hope this serves to clarify any
possible issues, and please let me know if there are any things I might
have missed:

a) Everything in Blink is Open Source already. There are no and will be no
parts kept proprietary. And it uses the same license as Mosh (GPL v3 with
OpenSSL exception). This is the only way that Mosh could be actually used
on iOS without building a separate implementation. My vision is that people
see Blink just like a very small distro with a few embedded tools to work,
and they basically trust this distribution.
a') Other pieces that integrate Blink are also important for the license
part, to avoid incompatibilities. These include: Libssh2 (BSD), OpenSSL,
Protobufs (BSD), linenoise (BSD), HTerm (BSD) and Mosh (GPL v3 with OpenSSL
and iOS exception). Also, icons are released under the CC by SA 4.0 which
is one way compatible with GPL. Fonts will be downloadable online but the
packaged ones will be OFL SIL, again GPL compatible. I think it is all
good, but I'm in process to corroborate all of this with Open Source
lawyers. If someone knows someone who could help I would appreciate that
too :)

b) The "interface" we are exporting (if it can be called like that as it is
only a bridge to keep the code separate) is only mosh_main, which can be
found in our iOS branch, the new file called terminalbridge.cc. It
instances an iOSClient object (copy of STMClient, removing stdin and stdout
to work with our custom streams).

> int mosh_main(FILE *f_in, FILE *f_out, struct winsize *window_size,
>
>               const char *ip, const char *port, const char *key, const
>> char *predict_mode)
>
>
c) No other libraries are implementing the same interface. This is just a
bridge for mosh. The reason why the GPL still applies is because we have to
compile it as a static library. In theory, it would be possible to do a
dynamic library since iOS 8, but really, I feel comfortable (and even
relieved) with doing Blink GPL too.

d) The other side to implement this interface, or the caller of the bridge,
is our MoshSession class. This is Blink's mosh-client per se. Our Session
objects try to act like a "Process" within a Thread and have a
TerminalStream (with a "stdin", "stdout", "stderr", "windowsize", etc...),
and a main function. You can see that in the code for Blink in
Sessions/Session.m and Sessions/MoshSession.m. And then MoshSession for
example calls SSHSession, etc... So yes, I tried to replicate the basis of
a pipes and process system so that connecting other tools would be easy too
(and linenoise for example was).

And I think this is it. If anyone please see any issues or has any more
questions, please shoot!

Best

On Wed, Jun 15, 2016 at 3:29 PM, Keith Winstein <keithw at mit.edu> wrote:

> Thanks, Carlos, it will be very interesting to read through the code. I'm
> trying to make sure I understand the licensing implications of what you're
> planning to release on the App Store. Could you please describe:
>
> (a) Which parts of the overall Blink application are you planning to
> release as open-source software, under which licenses? Which parts do you
> intend to keep proprietary?
>
> (b) What is the interface that "Mosh as a library" exports? Is there
> documentation on this interface?
>
> (c) What other libraries implement the same interface?
>
> (d) What are the programs that implement the other side of this interface?
>
> Best regards,
> Keith
>
> On Wed, Jun 15, 2016 at 8:47 AM, Carlos Cabanero <
> carlosecabanero at gmail.com> wrote:
>
>> Hi everyone!
>>
>>
>> We’ve finally released Blink v 0.714, and most important, the code for it
>> (https://github.com/blinksh/blink) and our Mosh changes (
>> https://github.com/blinksh/mosh), including build scripts too (
>> https://github.com/blinksh/build-mosh)
>>
>>
>> First of all, I did not merge with latest version, changes will be
>> required to our implementation anyway, as these were just to make sure the
>> project would be doable, and didn’t want to cover everything in a pile of
>> new commits. I’ll be focusing on fixing bugs and provide you with nicer
>> pull requests to Mosh during the next days. These are basically in two
>> areas, but nothing too big:
>>
>>
>>
>>    - Mosh as a library, with iOSClient as a subclass of STMClient and
>>    makefiles with BUILD_IOS_CONTROLLER flag.
>>    - Mosh multithreaded.
>>
>>
>> There is also a straightforward bug with the socket (commit 8b21ee1),
>> that we triggered because iOS always closes sockets when going to the
>> background. I will submit that one straight to GH as could help make Mosh
>> more stable in this corner cases.
>>
>>
>> To keep it clean, I will start the conversation on those in a separate
>> thread, and just keep this one for any issues related to Blink-Mosh
>> licensing, attributions, or compatibilities we might have.
>>
>>
>> Thanks a lot!! :)
>>
>> _______________________________________________
>> mosh-devel mailing list
>> mosh-devel at mit.edu
>> http://mailman.mit.edu/mailman/listinfo/mosh-devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/mosh-devel/attachments/20160615/fa985c1e/attachment-0001.html


More information about the mosh-devel mailing list