<div dir="ltr">Hello Carlos,<div><br></div><div>If the whole thing is GPL, that's great news! Re: lawyers, we had a good experience dealing with the Software Freedom Law Center (<a href="http://softwarefreedom.org" target="_blank">softwarefreedom.org</a>); Aaron Williamson is the attorney who helped us draft the iOS waiver in the first place. I'm guessing they may be able to help you as well.</div><div><br></div><div>Best regards,</div><div>Keith</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 15, 2016 at 3:00 PM, Carlos Cabanero <span dir="ltr"><<a href="mailto:carlosecabanero@gmail.com" target="_blank">carlosecabanero@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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:<div><br></div><div>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.</div><div>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 :)</div><div><br></div><div>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).</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="monospace, monospace">int mosh_main(FILE *f_in, FILE *f_out, struct winsize *window_size,</font></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="monospace, monospace"> const char *ip, const char *port, const char *key, const char *predict_mode)</font></blockquote></blockquote><div><br></div><div>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. </div><div><br></div><div>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).</div><div><br></div><div>And I think this is it. If anyone please see any issues or has any more questions, please shoot!</div><div><br></div><div>Best</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 15, 2016 at 3:29 PM, Keith Winstein <span dir="ltr"><<a href="mailto:keithw@mit.edu" target="_blank">keithw@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">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:<div><br></div><div>(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?</div><div><br></div><div>(b) What is the interface that "Mosh as a library" exports? Is there documentation on this interface?</div><div><br></div><div>(c) What other libraries implement the same interface?</div><div><br></div><div>(d) What are the programs that implement the other side of this interface?</div><div><br></div><div>Best regards,</div><div>Keith</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, Jun 15, 2016 at 8:47 AM, Carlos Cabanero <span dir="ltr"><<a href="mailto:carlosecabanero@gmail.com" target="_blank">carlosecabanero@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div><div dir="ltr"><p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">Hi everyone! </p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69);min-height:14px"><br></p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">We’ve finally released Blink v 0.714, and most important, the code for it (<a href="https://github.com/blinksh/blink" target="_blank">https://github.com/blinksh/blink</a>) and our Mosh changes (<a href="https://github.com/blinksh/mosh" target="_blank">https://github.com/blinksh/mosh</a>), including build scripts too (<a href="https://github.com/blinksh/build-mosh" target="_blank">https://github.com/blinksh/build-mosh</a>)</p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69);min-height:14px"><br></p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">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:</p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69);min-height:14px"><br></p>
<ul>
<li style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">Mosh as a library, with iOSClient as a subclass of STMClient and makefiles with BUILD_IOS_CONTROLLER flag.</li>
<li style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">Mosh multithreaded.</li>
</ul>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69);min-height:14px"><br></p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">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.</p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69);min-height:14px"><br></p>
<p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">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.</p><p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)"><br></p><p style="margin:0px;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(69,69,69)">Thanks a lot!! :)</p></div>
<br></div></div>_______________________________________________<br>
mosh-devel mailing list<br>
<a href="mailto:mosh-devel@mit.edu" target="_blank">mosh-devel@mit.edu</a><br>
<a href="http://mailman.mit.edu/mailman/listinfo/mosh-devel" rel="noreferrer" target="_blank">http://mailman.mit.edu/mailman/listinfo/mosh-devel</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div></div>