Re: [Haskell-cafe] Cabal && license combinations

2011-02-16 Thread Henning Thielemann
Chris Smith schrieb:
> It feels to me like a quite reasonable simplification that if someone
> wants to offer different bits of code, with the intent that the license
> terms of the eventual executable may be different depending on which
> bits you use, then they ought to do so in different packages.  It's
> simple enough to do, and removes the need to do per-module license
> considerations.

I think separating bindings to GSL and LAPACK is a good idea anyway, and
as far as I remember the author of hmatrix agrees to that, but he did
not actually split the bindings due to lack of time.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-10 Thread wren ng thornton

On 2/7/11 9:42 AM, Malcolm Wallace wrote:

To combine licences, just aggregate them. There is no lattice of
subsumption; no "more" or "less" restrictive ordering. It's simple: you
must obey all of them.


In the event that my comments on the previous thread were a source of 
confusion, I agree with the first and last sentences though the middle 
one is a bit more ambiguous.


Lawyers can argue about whether individual licenses as written (i.e., 
MIT, BSD3, GPL,...) have any interesting preorder (i.e., other than 
equality). But in practice distributors must adhere to sets of licenses, 
and these sets have the obvious lattice structure: namely Malcolm's last 
sentence. Again, whether this lattice has any interesting (i.e., 
non-free) equalities is best left up to lawyers.


--
Live well,
~wren

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-10 Thread Duncan Coutts
On Thu, 2011-02-10 at 19:00 +1300, Vivian McPhail wrote:
> > > It seems then that a package should be the least restrictive
> > > combination of all the licenses in all the contained modules.
> >
> > Omit the words "least restrictive" and I think you are correct.
> >
> > To combine licences, just aggregate them.  There is no lattice of
> > subsumption; no "more" or "less" restrictive ordering.
> >
> 
> I was thinking that the lattice was already flattened into a list of
> licences.  Currently the top-level package has a single licence field
> which is an arbitrary disjunctive choice.  Much better is a
> conjunctive aggregation which is just as or less restrictive than the
> arbitrary disjunctive choice.

Note that the license field in the .cabal specifies the license *for
that package only* not the license of dependencies, or any notion of
"effective" given the dependencies.

Each package specifies its own license, then given a dependency tree we
can calculate the set of licenses that users must simultaneously comply
with.

Duncan


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-10 Thread Duncan Coutts
On Wed, 2011-02-09 at 03:47 +1300, Vivian McPhail wrote:

> > license: Foo, Bar
> >
> 
> Could this be computed automatically from the source files by Cabal?

I would not want to rely on that.


> Looking specifically at hmatrix, there are three kinds of modules
> 
>i) bindings to GSLGPL
>ii) bindings to LAPACK BSD
>iii) pure Haskellhmatrix author's choice
> 
> 1) Am I correct in thinking that even the bindings modules (the
> Haskell parts, not the C files) can be under any licence, FOO, chosen
> by the author, but the binary _linked_ to, say, GSL has to comply with
> FOO and GPL?

Yes. Code you write can be under any license you like. When someone uses
the combination then they have to comply with all the licenses (so
implicitly there's the constraint that the license you pick must be
compatible with the license of the other parts).

> 2) If someone uses hmatrix but no GSL functions (hence there are no
> GSL functions in the linked binary) can they get away with not
> complying with the GSL requirement?

Not sure. In practice I don't think you can achieve that with our
toolchain.

Duncan


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-09 Thread Vivian McPhail
> > It seems then that a package should be the least restrictive
> > combination of all the licenses in all the contained modules.
>
> Omit the words "least restrictive" and I think you are correct.
>
> To combine licences, just aggregate them.  There is no lattice of
> subsumption; no "more" or "less" restrictive ordering.
>

I was thinking that the lattice was already flattened into a list of
licences.  Currently the top-level package has a single licence field which
is an arbitrary disjunctive choice.  Much better is a conjunctive
aggregation which is just as or less restrictive than the arbitrary
disjunctive choice.

Cheers,

Vivian

P.S. OK := acknowledge [ACK]
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-08 Thread Chris Smith
It feels to me like a quite reasonable simplification that if someone
wants to offer different bits of code, with the intent that the license
terms of the eventual executable may be different depending on which
bits you use, then they ought to do so in different packages.  It's
simple enough to do, and removes the need to do per-module license
considerations.

-- 
Chris Smith



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-08 Thread Ketil Malde
Vivian McPhail  writes:

> Looking specifically at hmatrix, there are three kinds of modules
>
>i) bindings to GSLGPL
>ii) bindings to LAPACK BSD
>iii) pure Haskellhmatrix author's choice
>
> 1) Am I correct in thinking that even the bindings modules (the Haskell
> parts, not the C files) can be under any licence, FOO, chosen by the author,
> but the binary _linked_ to, say, GSL has to comply with FOO and GPL?

This is my interpretation of it (assuming we're talking copyright, and
not other types of license, like patents or trademarks).  It is a topic
of endless debate, though.

> 2) If someone uses hmatrix but no GSL functions (hence there are no GSL
> functions in the linked binary) can they get away with not complying with
> the GSL requirement?

I would say yes.  But that too is merely an uninformed and uneducated
opinion, the operational semantics of the law is created by the rich in
their courtrooms.

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-08 Thread Vivian McPhail
> On Mon, 2011-02-07 at 14:42 +, Malcolm Wallace wrote:
> > > It seems then that a package should be the least restrictive
> > > combination of all the licenses in all the contained modules.
> >
> > Omit the words "least restrictive" and I think you are correct.
>

OK.


> >
> > To combine licences, just aggregate them.  There is no lattice of
> > subsumption; no "more" or "less" restrictive ordering.  It's simple:
> > you must obey all of them.  Some aggregations introduce a
> > contradiction of terms, so you cannot legally aggregate those modules
> > without breaking some term.  But if the terms of the aggregated
> > licences are compatible rather than contradictory, then all is good.
>
> Right, so the effect of per-file/mixed licenses could be achieved by
> letting packages specify a list of licenses:
>
> license: Foo, Bar
>

Could this be computed automatically from the source files by Cabal?


>
> Meaning you may copy/distribute provided you comply with all these
> licenses.
>
> Note that this does not cover dual licensing, e.g. Foo or Bar at
> distributor's choice.
>
> Duncan
>

Looking specifically at hmatrix, there are three kinds of modules

   i) bindings to GSLGPL
   ii) bindings to LAPACK BSD
   iii) pure Haskellhmatrix author's choice

1) Am I correct in thinking that even the bindings modules (the Haskell
parts, not the C files) can be under any licence, FOO, chosen by the author,
but the binary _linked_ to, say, GSL has to comply with FOO and GPL?

2) If someone uses hmatrix but no GSL functions (hence there are no GSL
functions in the linked binary) can they get away with not complying with
the GSL requirement?

Cheers,

Vivian
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-08 Thread Duncan Coutts
On Mon, 2011-02-07 at 14:42 +, Malcolm Wallace wrote:
> > It seems then that a package should be the least restrictive  
> > combination of all the licenses in all the contained modules.
> 
> Omit the words "least restrictive" and I think you are correct.
> 
> To combine licences, just aggregate them.  There is no lattice of  
> subsumption; no "more" or "less" restrictive ordering.  It's simple:  
> you must obey all of them.  Some aggregations introduce a  
> contradiction of terms, so you cannot legally aggregate those modules  
> without breaking some term.  But if the terms of the aggregated  
> licences are compatible rather than contradictory, then all is good.

Right, so the effect of per-file/mixed licenses could be achieved by
letting packages specify a list of licenses:

license: Foo, Bar

Meaning you may copy/distribute provided you comply with all these
licenses.

Note that this does not cover dual licensing, e.g. Foo or Bar at
distributor's choice.

Duncan


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal && license combinations

2011-02-07 Thread Malcolm Wallace
It seems then that a package should be the least restrictive  
combination of all the licenses in all the contained modules.


Omit the words "least restrictive" and I think you are correct.

To combine licences, just aggregate them.  There is no lattice of  
subsumption; no "more" or "less" restrictive ordering.  It's simple:  
you must obey all of them.  Some aggregations introduce a  
contradiction of terms, so you cannot legally aggregate those modules  
without breaking some term.  But if the terms of the aggregated  
licences are compatible rather than contradictory, then all is good.


Regards,
Malcolm

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Cabal && license combinations

2011-02-07 Thread Vivian McPhail
Dear All,

There was recently a discussion on haskell-cafe (
http://www.mail-archive.com/haskell-cafe@haskell.org/msg86472.html) about
licenses of libraries such as hmatrix and the combination of various
different licences.

One question was about per-package versus by-file licenses:

In Haskell the compilation unit is the module, and the per-file cabal header
allows for a license field.  It seems then that a package should be the
least restrictive combination of all the licenses in all the contained
modules.  If this has to become a hand-coded fancy function of various GPLx,
BSDy, OpenSource, and other licenses then so be it.  That is the legal
reality.  And use of a BSD3 module in hmatrix that does not depend upon
GPL'd GSL modules would be acceptable.

In short, I argue for a per-file(module) license regime.

Vivian
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe