Licensing changes - Dual-licensing model

542 views
Skip to first unread message

Matthias Ringwald

unread,
May 7, 2012, 5:58:42 PM5/7/12
to btstack-dev
Hi All!

I've changed the license of the public BTstack version by adding a 4th clause that only allows personal and/or non-commercial use. This mostly targets the use of BTstack on embedded systems. BTstack on iOS can still be used without restrictions.

In the year since I've released the MSP430 port, I've got positive feedback from companies interested in using BTstack in their embedded projects. Some even asked about licensing terms for a commercial license, i.e., without the BSD restrictions which are quite permissive but still require to inform the final customer about its inclusion. This made me dream about running my own company, developing and licensing BTstack for embedded systems. I want to follow up on that as good as possible. On the other hand, I also got emails suggesting that the inquiring person assumes that they can use BTstack in their products without any restrictions and free of charge. In order to be fair, I've finally decided to make that clear.

To achieve the goal of preventing commercial use of the public version without creating problems for other open source projects, I've choosen to augment the previous New BSD license with a 4th clause instead of switching to GPL as it is common practice.

While browsing for a suitable template, I've learned that the Open Source Initiative (http://www.opensource.org/) requires that commerical use must be allowed for a license to be classified as "open source". Well, that's inconvenient, but I still prefer "non-commercial" over GPL as it doesn't restrict other non-commercial non-GPL'ed projects . I hope this choice is in the best interest of people that started to use BTstack.

Best regards,
Matthias




mungewell

unread,
May 18, 2012, 12:22:23 PM5/18/12
to btstack-dev
> To achieve the goal of preventing commercial use of the public version without creating problems for other open source projects, I've choosen to augment the previous New BSD license with a 4th clause instead of switching to GPL as it is common practice.

Of course, since you are the (or assigned) copyright holder you are
perfectly at liberty to do this....

Without meaning to sound like a 'dick', since this clause was added in
r1666 does that mean that someone could take the early code under the
'normal' BSD conditions (ie. without clause 4) providing that they
adheirded to those conditions (ie. putting a BSD notice in
documentation).

Cheers,
Simon.

Matthias Ringwald

unread,
May 19, 2012, 4:25:25 PM5/19/12
to btsta...@googlegroups.com
Hi Simon

I'm not a lawyer, but yes, that's my understanding, too.

Best
Matthias
> --
> You received this message because you are subscribed to the Google Groups "btstack-dev" group.
> To post to this group, send email to btsta...@googlegroups.com.
> To unsubscribe from this group, send email to btstack-dev...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/btstack-dev?hl=en.
>

Mathieu Laurendeau

unread,
Jan 8, 2015, 3:51:32 AM1/8/15
to btsta...@googlegroups.com
Hello,

Did you realize that googlecode explicitly requires hosted projects to be open source?
https://code.google.com/p/support/wiki/FAQ

Did you also realize that your "new" license prevents all open source projects from using btstack?

Regards,
Mathieu

Matthias Ringwald

unread,
Jan 10, 2015, 4:02:47 AM1/10/15
to btsta...@googlegroups.com
Hello Mathieu

I'm don't think BTstack violates GoogleCode's requirements for hosting. BTstack is available there under the open-source BSD license with the additional restriction that it can not be used in commercially. 

I guess it depends on the definition of "open source project". At the minimum, the source code of such a project has to be open/accessible, which it clearly is. Restricting commercial use doesn't change that in my understanding.

When a project considers to use another project/library, it has to evaluate the other projects pros/cons, and of course the licensing conditions. The non-commercial part of BTstack could be considered a drawback from some projects, but it might still be ok acceptable. If someone starts a project for herself and others, it can build on top of BTstack, that's great. If that project gets matured such that its creator wants to use it commercially, e.g. by selling it via a Kickstarter, the license cost becomes another item on the bill as any other like production, shipment, Bluetooth listing.

What project are your working on and why does BTstack's license prevents it usage in that?

Best regards,
 Matthias


--
You received this message because you are subscribed to the Google Groups "btstack-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to btstack-dev...@googlegroups.com.

To post to this group, send email to btsta...@googlegroups.com.

Mathieu Laurendeau

unread,
Jan 10, 2015, 4:41:47 AM1/10/15
to btsta...@googlegroups.com
Hello,

"If for some reason, your project cannot use one of the ones listed, there is an option in the license selector to allow the use other OSI approved licenses. Simply select “Other Open Source” and indicate in your LICENSING, COPYING or similar file which license you are using." [1]

The OSI open-source definition [2] clearly excludes commercial restrictions in its first rule.
Adding a commercial restriction to a BSD license makes it non open-source and incompatible with open-source licenses.

I was thinking I could use btstack in the GIMX project [3] for adding Windows bluetooth features, and invested some time on making it work on Windows.
Then I noticed the non-commercial clause, and now it feels like a waste of time for me.

Regards,
Mathieu

[1] https://code.google.com/p/support/wiki/FAQ#Hosted_Tools
[2] http://opensource.org/definition
[3] https://github.com/matlo/GIMX/

Matthias Ringwald

unread,
Jan 11, 2015, 5:02:30 AM1/11/15
to btsta...@googlegroups.com
Hello Mathieu

Thanks for the clarification. We were considering moving to Github & Git before because it's more hip nowadays and using Git sometimes provides great benefits, too. With this license issue, it makes this move more urgent. We will move to GitHub soon. 

For your project: during some research on Windows Bluetooth capabilities, I found that Windows 8 at least allows to create "platform drivers" that use L2CAP, so maybe this can be used for users of Window 8. I don't know how this would be used to get access to provide an L2CAP service, but it might be worth to check out.

While GIMX cannot include BTstack due to license incompatibilities, I guess GIMX needs some Bluetooth driver abstraction to support different stacks/API anyway (if it doesn't already have such an abstraction). Would it be possible to create a driver for BTstack and require the user to download BTstack herself +add some compilation flag? I'm sorry you feel you have wasted time.

Best regards, 
 Matthias

Mathieu Laurendeau

unread,
Jan 17, 2015, 10:25:08 AM1/17/15
to btsta...@googlegroups.com
Hello,

I started forking the code at r1665 to build a driver that can communicate with the upstream btstack.

Does the following scenario look right to you:
- the user tries to use a bluetooth-related feature
- ask if he wants to download btstack
- display the license and ask for approval
- download a btstack binary provided by the GIMX project
?

Regards,
Mathieu

Matthias Ringwald

unread,
Jan 17, 2015, 1:49:44 PM1/17/15
to btsta...@googlegroups.com
Hello Mathieu

The scenario you describe is fine with me/BlueKitchen. 

Good luck
 Matthias
Reply all
Reply to author
Forward
0 new messages