don't screw up your licensing

44
Don’t Screw Up Your Licensing Ansel Halliburton [email protected] @anseljh https://halliburtonlegal.com/ Silicon Valley Code Camp October 12, 2014

Upload: ansel-halliburton

Post on 02-Dec-2014

307 views

Category:

Law


1 download

DESCRIPTION

Introduction to the legal aspects and pitfalls of open source and software licensing in general, with a walkthrough (and code snippets) of how to successfully apply a license to an open source project.

TRANSCRIPT

Page 1: Don't Screw Up Your Licensing

Don’t Screw UpYour Licensing

Ansel Halliburton"

[email protected]

@anseljh

https://halliburtonlegal.com/

Silicon Valley Code Camp October 12, 2014

Page 2: Don't Screw Up Your Licensing

Who am I?

2

Lawyer"• Starting startups • Keeping startups out of hot water • Defending patent troll cases • Suing bad guys

!

Hacker"• Since age 10 • Lex Machina • Mechanical Turk module for Boto

(AWS for Python) • Raspberry Pi & Arduino robot

Writer"• TechCrunch contributor

• legal tech • startup law • smartphone patent wars • computer crime

• Paper on Somali maritime piracy

Daddy"!!!!!!

Page 3: Don't Screw Up Your Licensing

Disclaimers!

IANAL

IAAL

but

IANYL

3

This is general information for

educational purposes. It might not be right

for you! Talk to a lawyer for advice about your own

specific situation.

1 2

Page 4: Don't Screw Up Your Licensing

What is open source?

• The Open Source Definition by the Open Source Initiative: 10 paragraphs

• The Free Software Definition by the Free Software Foundation: 4 pages

4

Page 5: Don't Screw Up Your Licensing

What is open source?

5

Open source

Public domain

Free software

FOSS

FLOSS

GPL

BSD

???

Page 6: Don't Screw Up Your Licensing

What is open source?

“Open source software is software that can be freely used, changed, and shared (in modified or unmodified form) by anyone.”

6

• Free of charge

• Published source code

• Varying restrictions on commercial use

Page 7: Don't Screw Up Your Licensing

Intellectual Property

7

Kind Protects Laws

Patent Technological inventions Federal

Copyright Expression Federal

Trademark Signals of source Federal and State

Trade SecretsInformation that is valuable because

it is secretState

Open Source Proprietary

Page 8: Don't Screw Up Your Licensing

What is a license?

1. Contract

2. Allows use of IP (copyrighted source code)

3. Imposes conditions

8

Page 9: Don't Screw Up Your Licensing

License dimensionsNotice Must include notice and a copy of the license with code

Source code disclosure Must include a copy of your source code

SublicensingCan you grant downstream licenses?

Copyleft You code must be under the same license

Patent license Some give express patent license (GPLv2 is silent!)

9

Page 10: Don't Screw Up Your Licensing

Major open source licensesNotice Source Code Sublicense

GPL Y Y N

BSD Y N Y

MIT Y N Y

Apache Y N Y

ChooseALicense.com by GitHub

Page 11: Don't Screw Up Your Licensing

MIT License

11

Page 12: Don't Screw Up Your Licensing

GPLv3

12

12 pages long!

Page 13: Don't Screw Up Your Licensing

GPLv3 § 5

13

Page 14: Don't Screw Up Your Licensing

GPLv3 § 8

14

Page 15: Don't Screw Up Your Licensing

Consequences of screwing up licensing

• Lose control of your…

• code

• patents

• trade secrets

• company

15

Page 16: Don't Screw Up Your Licensing

How to screw up• Pick a bad license

• Pick the wrong license for your project

• Fail to attribute

• Fail to give source code

• Forget to get contributor assignments

16

( )

Page 17: Don't Screw Up Your Licensing

Notable screw ups• BusyBox cases (GPL violations by embedded

developers)

• Linksys (GPL violation in routers) Free Software Foundation, Inc. v. Cisco Systems, Inc.

• Settlement: $ donations to FSF + open source compliance director

• Versata (GPL violation in enterprise software) XimpleWare Corp. v. Versata Software, Inc.

17

Page 18: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license"

2. Give attribution

3. Give notice in source code

4. Include license

5. Contributor license agreement

18

Page 19: Don't Screw Up Your Licensing

ChooseALicense.com by GitHub

Page 20: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license

2. Give attribution"

3. Give notice in source code

4. Include license

5. Contributor license agreement

20

Page 21: Don't Screw Up Your Licensing

How NOT to screw up: attribution

21

Page 22: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license

2. Give attribution

3. Give notice in source code"

4. Include license

5. Contributor license agreement

22

Page 23: Don't Screw Up Your Licensing

License header (GPLv2)

23

one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author !This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. !This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. !You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Page 24: Don't Screw Up Your Licensing

License header (GPLv2)

24

#!/usr/bin/env python !# dont_screw_up.py - Demo program for Don't Screw Up Your License talk # Copyright (C) 2014 Ansel Halliburton # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. !LICENSE_INTERACTIVE = """dont_screw_up.py, Copyright (C) 2014 Ansel Halliburton dont_screw_up.py comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.""" !if __name__ == '__main__': print(LICENSE_INTERACTIVE) print("Now we'll do something useful.") print("Just kidding!")

Page 25: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license

2. Give attribution

3. Give notice in source code

4. Include license"

5. Contributor license agreement

25

Page 26: Don't Screw Up Your Licensing

26

Page 27: Don't Screw Up Your Licensing

27

Page 28: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license

2. Give attribution

3. Give notice in source code

4. Include license

5. Contributor license agreement

28

Page 29: Don't Screw Up Your Licensing

Contributor License Agreements (CLA)

• Default copyright rule: every author owns his own contributions

• 100 contributors —> 100 separate copyrights

• CLA assigns contributors’ copyrights to the project (or project leader)

29

Page 30: Don't Screw Up Your Licensing

How to do CLAs• Make sure all committers sign a CLA!

• The easy way:

• get a CLA from Project Harmony.http://www.harmonyagreements.org

• use CLAHub to integrate your CLA with a GitHub repohttps://www.clahub.com/

30

Page 31: Don't Screw Up Your Licensing

31

Get a CLA

Page 32: Don't Screw Up Your Licensing

32

Get a CLA

Page 33: Don't Screw Up Your Licensing

33

Using CLAHub

Page 34: Don't Screw Up Your Licensing

34

Authorize CLAHub

Page 35: Don't Screw Up Your Licensing

35

Paste & markup CLA with Markdown

Page 36: Don't Screw Up Your Licensing

36

What contributors see

Page 37: Don't Screw Up Your Licensing

37

Contributors sign

Page 38: Don't Screw Up Your Licensing

38

Owner gets a nice CSV report

Page 39: Don't Screw Up Your Licensing

39

Add it to your repository

Page 40: Don't Screw Up Your Licensing

Bigtime compliance

40

https://www.blackducksoftware.com/audits/open-source-audits https://www.blackducksoftware.com/products/black-duck-suite/protex/black-duck-code-label

Page 41: Don't Screw Up Your Licensing

Miscellaneous

• Copyright exists by default

• Copyright registration grants more remedies

• Copyright lasts as long as Mickey Mouse needs it

• Fair use is probably not what you think it is (and doesn’t exist outside the US)

41

Page 42: Don't Screw Up Your Licensing

How not to screw up

1. Pick the right license

2. Give attribution

3. Give notice in source code

4. Include license

5. Contributor license agreement

42

Page 43: Don't Screw Up Your Licensing

Q & A

43

Page 44: Don't Screw Up Your Licensing

Thanks!

Ansel Halliburton"

[email protected]

@anseljh

https://halliburtonlegal.com

44