[m-dev.] [m-users.] Closed source Mercury projects on Windows

Peter Wang novalazy at gmail.com
Tue Jun 5 15:08:31 AEST 2018


On Tue, 5 Jun 2018 13:06:03 +1000, Mark Brown <mark at mercurylang.org> wrote:
> On Tue, Jun 5, 2018 at 7:28 AM, Zoltan Somogyi
> <zoltan.somogyi at runbox.com> wrote:
> >
> >
> > On Tue, 5 Jun 2018 06:50:26 +1000, Mark Brown <mark at mercurylang.org> wrote:
> >> +In the following, "the Mercury Core Libraries" refers to all source
> >> +code in the library, runtime, trace, browser and mdbcomp directories
> >> +in this distribution.
> >
> > I would put that list of directories into alphabetical order, and add this:
> >
> > All Mercury programs have to have parts of the runtime directory
> > linked into them, and almost all have to have parts of the library
> > directory linked into them. In addition, Mercury programs compiled
> > for debugging and/or profiling have parts of the browser, mdbcomp
> > and/or trace directories linked into them. These five directories
> > are *all* the directories that *ever* have *any* part of them
> > automatically linked into an executable program by the Mercury
> > system.
> >
> > The last sentence is the key: it explains why the exception applies
> > to these directories, and why these are enough.
> 
> I don't think it does actually give a full explanation of why the
> exception applies ;-)
> 
> Would it be correct to say that no other part of the distribution is
> automatically linked by the Mercury system? That would sufficiently
> and concisely explain why these directories are enough.
> 
> >
> >> +The Mercury Core Libraries are distributed under the terms of the
> >> +GNU Library General Public License (LGPL) version 2 (included below).
> >> +
> >> +As a special exception to the GNU Library General Public License, you
> >> +may link, statically or dynamically, a "work that uses the Mercury
> >> +Core Libraries" with the Mercury Core Libraries to produce an
> >> +executable file containing portions of the Mercury Core Libraries,
> >> +and distribute that executable file under terms of your choice,
> >> +without any of the additional requirements listed in clause 6 of the
> >> +GNU Library General Public License.
> >
> > I would delete "in clause 6 of", since this is clearer; people shouldn't
> > have to look for gotchas in all the *other* clauses, since we don't intend
> > for there to be any.
> 
> Clause 6 contains the phrase "under the terms of your choice" already,
> just before adding a bunch of provisions. So I think the reason the
> ocaml license includes that last part of the sentence is to make it
> clear that those provisions don't apply even though the same phrase is
> used. In view of that, would you rather "in clause 6 of" be kept as
> is?
> 
> Below is an adjusted version, including Julien's suggestions; it's
> probably best to look at the whole thing rather than a relative diff.
> Peter, does this follow existing examples satisfactorily?

It's fine for me.

I think we should retain the "in clause 6 of" part as it effectively
makes the license shorter and clearer: all of clause 6 is struck out
beginning at the words "provided that". Otherwise, the special exception
adds another clause to the license, that still must be understood in
whole. (My opinion only, of course.)

One thing that hasn't been pointed out: the special exception in the
OCaml license does not apply to private modifications of the OCaml
Core System. In contrast, the exception as worded below would apply to
executables linked to private modifications of the Mercury Core Libraries,
correct? I don't have a problem with it, just want to clarify that
it was an intentional change.

Peter

> --
> 
> In the following, "Mercury Core Libraries" refers to all source
> code in the following directories of this distribution:
> 
>     browser, java/runtime, library, mdbcomp, runtime, trace
> 
> (No other part of this distribution is automatically linked into an
> executable program by the Mercury system.)
> 
> The Mercury Core Libraries are distributed under the terms of the
> GNU Library General Public License (LGPL) version 2 (included below).
> 
> As a special exception to the GNU Library General Public License, you
> may link, statically or dynamically, a "work that uses the Mercury
> Core Libraries" with the Mercury Core Libraries to produce an
> executable file containing portions of the Mercury Core Libraries,
> and distribute that executable file under terms of your choice,
> without any of the additional requirements listed in clause 6 of the
> GNU Library General Public License. This exception does not however
> invalidate any other reasons why the executable file might be covered
> by the GNU Library General Public License. If you modify the Mercury
> Core Libraries, you may extend this exception to your version, but you
> are not obligated to do so. If you do not wish to do so, delete this
> exception statement from your version.



More information about the developers mailing list