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

Mark Brown mark at mercurylang.org
Tue Jun 5 13:06:03 AEST 2018


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?

Mark
--

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