<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jan 14, 2019 at 1:02 PM Lawrence Rosen <<a href="mailto:lrosen@rosenlaw.com">lrosen@rosenlaw.com</a>> wrote:<br></div><div dir="ltr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5691795455672371608WordSection1"><p class="MsoNormal" style="margin-left:0.5in"><span style="font-size:12pt">What is the relevance of "convoluted interaction" and "deep knowledge," and why should open source licenses care about independent implementations regardless of their design for utility?</span></p></div></div></blockquote><div><br></div><div>I think (but don't actually know) that it was introduced in order to create a somewhat-bright-line test for the real goal, which would be extremely hard to establish directly; namely, if your program is designed to use a GPLed program, it also must be GPLed.</div><div><br></div><div>The CLISP program was originally distributed as a binary-library-only proprietary program along with binaries for readline (a GPLed library) and an alternative noreadline without readline function, and it was up to the user to link whichever library he chose.  The FSF advised the author that this evasion would not pass muster with a judge, and he reluctantly released the whole program under the GPL, because it was "designed to use" readline, which added considerable value.</div><div><br></div><div>But a program designed to use one library can be used with a compatible library instead: editline is a BSD-licensed drop-in replacement, and if CLISP being written today it would probably be distributed as an executable with editline.  Who's to say whether it was "designed to use" readline or editline?  The FSF therefore takes the position that a program which has always used editline is nonetheless "designed to use" readline, because editline is a clean-room copy of readline.</div><div><br></div><div>Apparently, therefore, editline has been replaced by libedit, which lacks the readline-compatible API.  Linenoise, a third library with the same purpose, has a unique API.  Finally, rlwrap is a separate executable which runs any interactive program and gives it readline services: the rlwrap program uses readline and so is under the GPL, but the program it invokes need not be, any more than the bash shell can only invoke programs that are made available under the GPL.</div></div></div>