Re: [Haskell-cafe] Cabal && license combinations
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
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
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
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
> > 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
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
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
> 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
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
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
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