Why a BSD License and not Apache 2.0 License

1,753 views
Skip to first unread message

Walter Schulze

unread,
Nov 19, 2012, 3:44:15 AM11/19/12
to golan...@googlegroups.com

Hi

Our company is thinking of open sourcing multiple software packages written in Go under the Apache 2.0 License.  We would like to know why Go decided on a BSD license instead of Apache 2.0 which, as I understand it, is prefered by google?

Thank you

Ian Lance Taylor

unread,
Nov 19, 2012, 1:15:39 PM11/19/12
to Walter Schulze, golan...@googlegroups.com
Only because the BSD license is simpler and the Go developers had good
past experiences with it. As you know we also added a patent
disclaimer.

If you feel the Apache license fits your needs better, by all means go for it.

Ian

Walter Schulze

unread,
Nov 19, 2012, 1:30:13 PM11/19/12
to Ian Lance Taylor, golan...@googlegroups.com
So I guess the Apache 2.0 License should be fine, given we start a project from scratch.

Let's try a concrete example which is a little more complicated.

If we copy the "go/scanner" and modify some of it to scan extra character sequences for a new project.
Can we license this under Apache 2.0?

What are the implications?

I would guess it should be fine if we keep the BSD license in those files that we copied and modified.
Do we also need to make the BSD license file available in binary format?
Would we also will need a LICENSE file which includes both licenses?

bryanturley

unread,
Nov 19, 2012, 1:39:38 PM11/19/12
to golan...@googlegroups.com, Ian Lance Taylor
On Monday, November 19, 2012 12:30:28 PM UTC-6, Walter Schulze wrote:
So I guess the Apache 2.0 License should be fine, given we start a project from scratch.

Let's try a concrete example which is a little more complicated.

If we copy the "go/scanner" and modify some of it to scan extra character sequences for a new project.
Can we license this under Apache 2.0?


http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses

Such a complicated subject but that might help some.

Ian Lance Taylor

unread,
Nov 19, 2012, 1:48:13 PM11/19/12
to Walter Schulze, golan...@googlegroups.com
On Mon, Nov 19, 2012 at 10:30 AM, Walter Schulze
<awalter...@gmail.com> wrote:
>
> If we copy the "go/scanner" and modify some of it to scan extra character
> sequences for a new project.
> Can we license this under Apache 2.0?
>
> What are the implications?
>
> I would guess it should be fine if we keep the BSD license in those files
> that we copied and modified.
> Do we also need to make the BSD license file available in binary format?
> Would we also will need a LICENSE file which includes both licenses?

You are asking legal questions on a programming mailing list, you will
have to judge for yourself the quality of the replies that you get.

The general trend that I've observed in free software when copying
files from one project to another is to simply retain the original
license for that file. But if you want to relicense, then, yes, my
understanding is that there is no conflict between Apache 2.0 and New
BSD. The resulting file will effectively be under Apache 2.0. Yes,
you should keep the existing BSD license--you don't have any
permission to remove it. Yes, your LICENSE file or equivalent should
include both licenses.

Ian

Walter Schulze

unread,
Nov 19, 2012, 1:51:23 PM11/19/12
to Ian Lance Taylor, golan...@googlegroups.com
Thank you everyone this was very helpful.

We are also getting advice from lawyers.
I just wanted a second opinion.

bryanturley

unread,
Nov 19, 2012, 2:23:54 PM11/19/12
to golan...@googlegroups.com
You are asking legal questions on a programming mailing list, you will
have to judge for yourself the quality of the replies that you get.


x := golang_nuts.(Lawyer) // WILL PANIC

Dan Kortschak

unread,
Nov 19, 2012, 3:18:53 PM11/19/12
to bryanturley, golan...@googlegroups.com
But interestingly, x := golang_nuts.(*Lawyer) runs without issue.

bryanturley

unread,
Nov 19, 2012, 3:32:48 PM11/19/12
to golan...@googlegroups.com
On Monday, November 19, 2012 2:19:12 PM UTC-6, kortschak wrote:
But interestingly, x := golang_nuts.(*Lawyer) runs without issue.

so offtopic but it does?
http://play.golang.org/p/sByBwjYxtU

bryanturley

unread,
Nov 19, 2012, 3:33:42 PM11/19/12
to golan...@googlegroups.com
Or i didn't get the joke ;)

Dan Kortschak

unread,
Nov 19, 2012, 4:04:17 PM11/19/12
to bryanturley, golan...@googlegroups.com
Requires '// +build deadpan'.

Walter Schulze

unread,
Nov 20, 2012, 10:12:16 AM11/20/12
to golan...@googlegroups.com, bryanturley
Ok so let's try one more little detail.

If we have a derivative work, we have to include both licenses.
This includes the copyright statement, which includes the copyright holder's name.

So it wouldn't matter if we license it under the same BSD or a different Apache 2.0, we still need to include both licenses?

Ian Lance Taylor

unread,
Nov 20, 2012, 10:15:41 AM11/20/12
to Walter Schulze, golan...@googlegroups.com, bryanturley
On Tue, Nov 20, 2012 at 7:12 AM, Walter Schulze
<awalter...@gmail.com> wrote:
>
> If we have a derivative work, we have to include both licenses.
> This includes the copyright statement, which includes the copyright holder's
> name.
>
> So it wouldn't matter if we license it under the same BSD or a different
> Apache 2.0, we still need to include both licenses?

Including both licenses is always safe.

It's conventional to only include the original license if you are just
making minor changes to the code. It's not clear that copyright law
applies to minor changes anyhow: copyright only applies to work with
creative content.

Ian

bryanturley

unread,
Nov 20, 2012, 10:42:01 AM11/20/12
to golan...@googlegroups.com
Neither are copyleft, and I think the go bsd-style license has a little bit stricter patent agreement.  I am not a lawyer.
To me the apache license seems like a lawyer rewrote the BSD license and the BSD license was written by someone who writes software.  That is a guess though.

The simplest thing to do is keep code from the go project under it's original license, then you don't even have to worry about it.

When is someone going to make a programming language for legal matters?  Reading that apache license gives me a headache to much english...

Devon H. O'Dell

unread,
Nov 20, 2012, 10:44:40 AM11/20/12
to Walter Schulze, golan...@googlegroups.com, bryanturley
2012/11/20 Walter Schulze <awalter...@gmail.com>:
It wouldn't matter what you license *your* work under because you own
*your* work. You do *not* own the work of the other contributors, and
these contributors have stated that you *must* include the copyright
statement, the names of the copyright holders, *and* the list of
conditions following.

--dho

> --
>
>

Walter Schulze

unread,
Nov 20, 2012, 11:00:50 AM11/20/12
to Devon H. O'Dell, golan...@googlegroups.com, bryanturley
So your LICENSE file would like something this if you have a New BSD License:


Copyright 2012 BlaBlaBlaCompany

New BSD License

Copyright 2012 Go Authors

New BSD License

THIS SOFTWARE ... ( I think patent stuff )



And if you have an Apache 2.0 License:



Copyright 2012 BlaBlaBlaCompany

Apache 2.0 License

Copyright 2012 Go Authors

New BSD License

THIS SOFTWARE ... ( I think patent stuff )

bryanturley

unread,
Nov 20, 2012, 11:20:32 AM11/20/12
to golan...@googlegroups.com
Are you releasing your code back to the public? 
If not you just have to do the bsd attribution things and follow the patent things.
Read the two license files they should be in your copy of go
http://golang.org/LICENSE and http://golang.org/PATENTS

They are a pretty simple read compared to most other licenses.



Reply all
Reply to author
Forward
0 new messages