[Haskell-cafe] Re: GPL answers from the SFLC (WAS: Re: ANN:
uzytkownik2 at gmail.com
Fri Mar 5 08:08:05 EST 2010
On Fri, 2010-03-05 at 01:42 -0700, Luke Palmer wrote:
> On Fri, Mar 5, 2010 at 12:53 AM, Kevin Jardine <kevinjardine at yahoo.com> wrote:
> > I'm a Haskell newbie but long time open source developer and I've been following this thread with some interest.
> > The GPL is not just a license - it is a form of social engineering and social contract. The idea if I use the GPL is that I am releasing free and open source software to the community. You are welcome to use it for any purpose but in exchange you must also agree to release any software you create that uses my software as free and open source.
> > That is the difference between GPL and BSD type licenses. The GPL very deliberately creates an obligation. Yes, that can be inconvenient. It is meant to be inconvenient.
> > Actually the GPL reminds me of a Haskell concept that I am struggling with right now - the monad. When I started writing Haskell code I was always trying to mix pure and IO code and I soon learned that once I used the IO monad I was stuck within it. The monad creates an inconvenient obligation and any IO code can only be used within other IO code. There are good reasons for monads (just as, in my view, there are good reasons for the GPL) but using them means that I need to make a lot of changes to the way I write software.
Hmm. I believe that there are sufficient loopholes in GPL as library to
not use it. Personally I follow such rules of thumb (for myself):
- BSD3/MIT/... - Small code or BSD3 community
- LGPL - Larger libraries
- GPL - Programs
BTW. What if package have multiply licenses? Cabal seems to not express
- It is dual licensed
- Library is LGPL but helper program is GPL
- Part of library is on striker license but part of it is for example
public domain (so it would be worth to note this)
> Sure. You can put a GPL license on any software:
> license :: a -> GPL a
> And if you could have used some public domain package 'a' to create
> some GPL'd software, then you can use the GPL'd 'a' to create that
> same software.
> usage :: (a -> GPL b) -> GPL a -> GPL b
Hmm. IMHO it is more similar
class Licence l where
license :: Package a => a -> l a
class Licence l => GPLCompatible l where
instance GPLCompatible GPL
instance GPLCompatible LGPL
liftToGPL :: (GPLCompatible l, Package a) => l a -> GPL a
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 836 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20100305/9a513128/attachment.bin
More information about the Haskell-Cafe