[Haskell-cafe] Licenses and dependencies

Mateusz Kowalczyk fuuzetsu at fuuzetsu.co.uk
Sat Jan 11 19:26:56 UTC 2014

Disclaimer: I'm not a lawyer.

On 11/01/14 18:44, Ben Foppa wrote:
> Many permissive licenses (I'm specifically looking at MIT and BSD3) include
> a clause that the license file must be included in distributions of the
> source or the binary. It seems to me that if I have a project on Github,
> that qualifies as redistribution of the source. My questions are thus:

You can put things up on GitHub without a license and legally, no one is
allowed to do anything with it.

> Do I need to include the license files from all my dependencies in my
> Github repository?

Only if you include the source of dependencies themselves, so most
likely you don't have to.

> Does having them listed as dependencies in my .cabal file "implicitly"
> include them?

I'm unsure. Considering you're referring to packages by name, one would
imagine that you're restricting the project to that particular source.
On the other hand, anyone is free to come in and replace dependencies
with their own source, under their own license.

I think you're safe releasing code under whatever license you want as
long as:

* You don't release dependencies with it
* You don't build the project and distribute it

Once you distribute the binary, you have probably pulled in and used the
licensed libraries (unless replaced) so you're subject to the strongest
license used.

So overall, I think you're safe publishing under whatever license suits
you and it's up to the programmer using your code to decide whether or
not they want to build and/or distribute it as-is.

> Does making a project "PublicDomain" only refer to the code contained in
> that project, or would it (unintentionally and unlawfully) give
> distributors of that source code the freedom to not include the BSD3/MIT
> license files from dependencies?

Making your code public domain would not affect the dependencies at all,
after all, someone can come later, take half of your code and use it for
something totally different.

> Essentially my goal is to waive all intellectual property rights to most of
> my Haskell projects, to the extent that, were I to unintentionally sign
> away my intellectual property, my open-source contributions would be safe -
> what's the easiest way to do this?

I think you'll be fine just choosing the PublicDomain license option.
Things you can't do with such an option:

* bundle other people's code which isn't under public domain
* somehow enforce that only certain libraries will run with your
program: the user should be able to replace the BSD3 licensed
dependencies with their own if they want to

I think in the end, the fact that pretty much every package ever depends
on ‘base’ which is BSD3 and PublicDomain option exists in Cabal should
be convincing enough that you are in fact able to publish your part of
the code under more lenient license.

> Thanks,
> Ben Foppa

If anything's wrong in my post, I hope someone can correct me.

Mateusz K.

More information about the Haskell-Cafe mailing list