SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Daniel M. German (dmg) http://turingmachine.org
Source Code Licensing as an Essential Aspect of
Modern Software Development
Technical Briefing
Max Di Penta and
Daniel German
Daniel M. German (dmg) http://turingmachine.org
“The way software is built is
changing”
--Scott Peterson
Senior Counsel HP
Daniel M. German (dmg) http://turingmachine.org
Open Office
dependency graph
in Debian 5
Daniel M. German (dmg) http://turingmachine.org
“Anybody can fix code bugs, but only a
few can deal with licensing bugs.”
--Aaron Siego, previous president KDE Foundation
Daniel M. German (dmg) http://turingmachine.org
Software and Intellectual Property
(IP)
● IP: “the commercial application of imaginative
thought to solving a technical or artistic
challenge” [WIPO 2005]
● Since 1980 software has the same protection
as any other literary work (US)
Daniel M. German (dmg) http://turingmachine.org
An micro-intro to Copyright
● It is a monopolistic right to:
● Make copies
● “Perform” the work
● Prepare derivative works
● Software is like Music and Writing
● Owners want to control how it is used and reused
● The owner is:
● In the absence of contract, its author
● Employer usually owns copyright of employees
Daniel M. German (dmg) http://turingmachine.org
Joint Works
● a work is joint if the authors collaborated with
each other,
● with the knowledge and intention that it would
be merged with the contributions of other
authors as inseparable or interdependent
parts of a unitary whole.
● Each author can independently license the
work
● But should compensate the co-authors
Daniel M. German (dmg) http://turingmachine.org
Derivative Works
● A key concept in software development
● A derivative work is “a work based upon one
or more preexisting works, such as a
translation.... or any other form in which work
may be recast, transformed or adapted” (17
USC)
Daniel M. German (dmg) http://turingmachine.org
Collective Works/Compilations
● A “collective work”:
● A number of contributions, constituting separate and
independent works in themselves, are assembled
into a collective whole.
● A “compilation”:
● collection and assembling of preexisting materials or
of data that are selected, coordinated, or arranged in
such a way that the resulting work as a whole
constitutes an original work of authorship.
● Includes collective works.
Daniel M. German (dmg) http://turingmachine.org
Chain of Title
● Ownership can be transferred via a contract
● One sells copyright to another
● Derivative works:
● The creator of a derivative work is added to the
chain of title of the original work
● Compilations:
● Each work maintains its original ownership
● The compilation receives its own ownership
Daniel M. German (dmg) http://turingmachine.org
Licenses
● Owner of copyright can grant licenses to third
parties
● They grant permissions that otherwise would be
forbidden by law
– Creating derivative works
● Example:
– EULAs
– Software contracts
– Free and Open Source Licenses
● Typically, a licensor would negotiate a license from
the licensee under a contract
Daniel M. German (dmg) http://turingmachine.org
Open Source Software
● Software licensed under an Open Source
License
● Open Source Licenses
● Created to simplify software reuse
● Examples:
– BSD family
– GPL family
– Even Microsoft has open source licenses
● Microsoft Public License and
● Microsoft Reciprocal License
Daniel M. German (dmg) http://turingmachine.org
F/OSS Licenses
● Like any other license, it grants some rights on
the work to the licensee
● In exchange, licensee should abide to some
requirements
● Usually licensor does not know its licensees
● Many different licenses:
● Open Source Initiative approved licenses (OSI)
● Free Software Foundation Licenses
● Many others
Daniel M. German (dmg) http://turingmachine.org
Types of F/OSS Licenses
● Academic or Permissive:
● they allow the licensee a wide range of rights,
including creating proprietary derivative works:
● BSD, MIT, Apache
● Reciprocal:
● in return you should release any derivative works
under the same license:
● GPL, MPL
Daniel M. German (dmg) http://turingmachine.org
License Compatibility
By D. Wheeler
Daniel M. German (dmg) http://turingmachine.org
Lex Hacketoria*
● Like Lex Mercatoria, it goes beyond the current law
● Hackers have created a code of conduct:
● Those who don't abide are chided
● Lawsuits are not always practical
● Law might not support this code
● Examples:
● Is linking a derivative work?
– Lex Hacketoria says yes!
– Many high profile lawyers (e.g. Lawrence Rosen) argue that dynamic
linking should not
* concept developed by Richard Fontana,
OSS Counsel at RedHat
Daniel M. German (dmg) http://turingmachine.org
Research in Licensing Issues
● Lawyers are risk managers
● Software engineers are builders
● Licensing (and other IP related issues) has
become core to the practice of Soft Eng.
● Open source has emphasized the need for this
are
●
Legal Compliance in Software DevelopmentLegal Compliance in Software Development
Daniel M. German (dmg) http://turingmachine.org
The Big Goal
● The long term goal is to incorporate software
licensing concerns of reusing licensed
components into the software development
processes.
● From the point of view of:
– The Licensor: how to license the software
– The licensee: how does licensing affect the reuse of
software components?
Daniel M. German (dmg) http://turingmachine.org
What does it mean?
● Understanding the problem
● Doing Empirical Studies
● Creating models
● Building tools
● Ultimately helping the lawyers and the software
engineers manage more easily the licensing
concerns associated with component reuse.
● Legal Compliance
Daniel M. German (dmg) http://turingmachine.org
Architectural Problems
● What components are used in this system?
● How do they interconnect?
● Do they create a compilation?
● Do they create a derivative work?
● What constraints do they impose onto the
system?
● Can the system be re-architectured to change
its licensing constraints?
Daniel M. German (dmg) http://turingmachine.org
License Incompatibility Problem
● Can I combine components under two different
licenses?
● If yes, what should I do to comply to all the licenses
requirements?
● Example:
● GPLv2 does not allow imposition of any further
restrictions.
– You can't combined BSD-4 clauses
● If not, are there work arounds?
Daniel M. German (dmg) http://turingmachine.org
License Integration Patterns: Dealing with Licenses
Mismatches in Component-Based Development (German
et al ICSE'09)
● A formalization of licenses in the context of
component reuse
● The specific grant to be able to integrate a
component C in a software system S depends
on two factors:
1. Whether S is a derivative work of S,
● depends on the type of interconnection of C with the rest
of S;
2. the rights required to use, and potentially distribute
C
Daniel M. German (dmg) http://turingmachine.org
Daniel M. German (dmg) http://turingmachine.org
What is the license of a
Component?
● File is the minimal licensing unit
● Software components are collections of files
● Not always all files in a “source” archive are used to
create the binary
● In Fedora 15, in only 25% packages contained files
under one license (di Penta et al ICPC, 2010)
● Sometimes they are many
– Linux contains files under than 30 licenses
● Question: what is the license of a
component?
Daniel M. German (dmg) http://turingmachine.org
License of a File
● License identification problem
● Given a file, under what license is it?
● Not trivial (German et al, ASE 2010)
Daniel M. German (dmg) http://turingmachine.org
Ninka (German et al ASE'10)
● Lightweight license identification tool
● Only applicable to source code files
● Capable of identifying 200 different licenses
● Its goal is to minimize errors in the detection
● In experiments, capable of identifying 85-80%
licenses in files
● Most likely error: not able to identify all licenses in a
file
Daniel M. German (dmg) http://turingmachine.org
●
/* Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
●
* Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com
●
* Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com>
●
*
●
* Redistribution and use in source and binary forms, with or
●
* without modification, are permitted provided that the following
●
* conditions are met:
●
* 1. Redistributions of source code must retain the above copyright
●
* notice, this list of conditions and the following disclaimer.
●
* 2. Redistributions in binary form must reproduce the above
● * copyright notice, this list of conditions and the following
●
* disclaimer in the documentation and/or other materials
●
* provided with the distribution.
●
*
●
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND
●
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
● * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
●
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE
●
* COMPUTER, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
●
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
●
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
●
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
●
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
●
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
●
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
●
* THE USE OF THIS
Daniel M. German (dmg) http://turingmachine.org
Converted to a sequence of
sentences
1 Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
2 Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com Copyri[...]
3 Redistribution and use in source and binary forms, with or w[...]
4 Redistributions of source code must retain the above copyrig[...]
5 Redistributions in binary form must reproduce the above copy[...]
6 THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC.
<QUOTES>AS[...]
7 IN NO EVENT SHALL APPLE COMPUTER, INC. OR CONTRIBUTORS BE
LI[...]
Daniel M. German (dmg) http://turingmachine.org
Sentences are matched
1 <AllRights, <Copyright (C) 2006 Apple Computer, Inc.>>
3 <BSDpre, <:>>
4 <BSDcondSource, <above>>
5 <BSDcondBinary, <>>
6 <BSDasIs, <APPLE COMPUTER, INC.>>
7 <BSDWarr, <APPLE COMPUTER, INC. OR
CONTRIBUTORS>>
Which translates to a BSD-2 license.
Daniel M. German (dmg) http://turingmachine.org
Provenance Discovery
● Reuse is not always easy to identify
● Cut&Paste reuse
● At the file level
● At the component level
● At statements level
● Malicious vs Legally allowed copying
● Copyright violations
● License violations
Daniel M. German (dmg) http://turingmachine.org
Provenance Discovery
● Copyright violations: Who are you?
● Is this code derived from another?
● License violations: Does your mother know
you are here?
● Do we have a license to reuse the code?
Daniel M. German (dmg) http://turingmachine.org
Binary Provenance
● Frequently dependencies are managed by
embedding its binary
● Very common in Java
● Two problems:
● What is the license of the binary?
– Di Penta et al MSR'09
● What is the source of the binary?
– Davis et al MSR'10
Daniel M. German (dmg) http://turingmachine.org
Software Bertillionage
● Finding the source of a binary is a hard problem
● Corpus needs to be large to be useful:
● Maven2 is almost 300GB of compressed Java
● Bertillionage:
● Narrow the search space using a fast method
● Then other more expensive methods can be used (including
manual analysis)
● Examples:
● Java: using type signatures of Java methods (Davis et al, MSR'11)
● C/C++: using strings present in binaries (Hemel et al MSR'11)
Daniel M. German (dmg) http://turingmachine.org
Software Package Data Exchange
(SPDX)
● Standardizes the exchange of licensing
information across the supply chain:
● What components are used to create a given
product?
● Where do they come from?
● What are their licenses?
● Ideally, every F/OSS component should have its
attached SPDX description
● Version 1.0 was just released (Aug 2011)
Daniel M. German (dmg) http://turingmachine.org
Summary
● Copyright and software licensing are affecting
the way software is created
● Areas of research
● Impact of IP on Software Architectures
● License identification
● Component identification/Provenance discovery
● Many others (wait for second part of TechBrief.)

Weitere ähnliche Inhalte

Ähnlich wie Source Code Licensing as an Essential Aspect of Modern Software Development

Start your open source project
Start your open source projectStart your open source project
Start your open source projectAhmed Othman
 
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015Codemotion
 
Introduction to Open Source License and Business Model
Introduction to Open Source License and Business ModelIntroduction to Open Source License and Business Model
Introduction to Open Source License and Business ModelMohd Izhar Firdaus Ismail
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesIresha Rubasinghe
 
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)Ron Munitz
 
CodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallowsCodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallowsRon Munitz
 
Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessPromet Source
 
Voxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning MarshmallowsVoxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning MarshmallowsRon Munitz
 
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...South Tyrol Free Software Conference
 
The Ultimate Android Security Checklist (AnDevCon Boston 2014)
The Ultimate Android Security Checklist (AnDevCon Boston 2014)The Ultimate Android Security Checklist (AnDevCon Boston 2014)
The Ultimate Android Security Checklist (AnDevCon Boston 2014)Ron Munitz
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabRon Munitz
 
OpenChain Mini-Summit 2023 - State of Tooling in Open Source Automation
OpenChain Mini-Summit 2023 - State of Tooling in Open Source AutomationOpenChain Mini-Summit 2023 - State of Tooling in Open Source Automation
OpenChain Mini-Summit 2023 - State of Tooling in Open Source AutomationShane Coughlan
 
Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentJamie Coleman
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 
MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows Ron Munitz
 
Linux fest cpt_presentation
Linux fest cpt_presentationLinux fest cpt_presentation
Linux fest cpt_presentationfoxcm2000
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteOpersys inc.
 
The Ultimate Android Security Checklist (Mdevcon 2014)
The Ultimate Android Security Checklist (Mdevcon 2014)The Ultimate Android Security Checklist (Mdevcon 2014)
The Ultimate Android Security Checklist (Mdevcon 2014)Ron Munitz
 
Open source freeopensource & linux
Open source freeopensource & linuxOpen source freeopensource & linux
Open source freeopensource & linuxManura Perera
 

Ähnlich wie Source Code Licensing as an Essential Aspect of Modern Software Development (20)

Start your open source project
Start your open source projectStart your open source project
Start your open source project
 
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015
Ron Munitz - The Ultimate Android Security Checklist - Codemotion Rome 2015
 
Introduction to Open Source License and Business Model
Introduction to Open Source License and Business ModelIntroduction to Open Source License and Business Model
Introduction to Open Source License and Business Model
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and Differences
 
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)
The Ultimate Android Security Checklist (Codemotion Tel-Aviv, 2014)
 
CodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallowsCodeMotion tel aviv 2015 - burning marshmallows
CodeMotion tel aviv 2015 - burning marshmallows
 
Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing Business
 
Voxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning MarshmallowsVoxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning Marshmallows
 
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...
SFScon 2020 - Kate Downing - Philippe Obredanne - FOSS & Third Party Software...
 
The Ultimate Android Security Checklist (AnDevCon Boston 2014)
The Ultimate Android Security Checklist (AnDevCon Boston 2014)The Ultimate Android Security Checklist (AnDevCon Boston 2014)
The Ultimate Android Security Checklist (AnDevCon Boston 2014)
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
 
OpenChain Mini-Summit 2023 - State of Tooling in Open Source Automation
OpenChain Mini-Summit 2023 - State of Tooling in Open Source AutomationOpenChain Mini-Summit 2023 - State of Tooling in Open Source Automation
OpenChain Mini-Summit 2023 - State of Tooling in Open Source Automation
 
Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software Development
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows MobSecCon 2015 - Burning Marshmallows
MobSecCon 2015 - Burning Marshmallows
 
Linux fest cpt_presentation
Linux fest cpt_presentationLinux fest cpt_presentation
Linux fest cpt_presentation
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon V
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
 
The Ultimate Android Security Checklist (Mdevcon 2014)
The Ultimate Android Security Checklist (Mdevcon 2014)The Ultimate Android Security Checklist (Mdevcon 2014)
The Ultimate Android Security Checklist (Mdevcon 2014)
 
Open source freeopensource & linux
Open source freeopensource & linuxOpen source freeopensource & linux
Open source freeopensource & linux
 

Mehr von dmgerman

Fairness and Code Reviews
Fairness and Code ReviewsFairness and Code Reviews
Fairness and Code Reviewsdmgerman
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)dmgerman
 
Cregit Recovering token level authorship from Git
Cregit Recovering token level authorship from GitCregit Recovering token level authorship from Git
Cregit Recovering token level authorship from Gitdmgerman
 
The Promises and Perils of Mining Github: MSR'2014
The Promises and Perils of Mining Github: MSR'2014The Promises and Perils of Mining Github: MSR'2014
The Promises and Perils of Mining Github: MSR'2014dmgerman
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...dmgerman
 
On editing text and Emacs: 9 habits of highly effective text editing
On editing text and Emacs: 9 habits of highly effective text editingOn editing text and Emacs: 9 habits of highly effective text editing
On editing text and Emacs: 9 habits of highly effective text editingdmgerman
 
How Linux uses Git
How Linux uses GitHow Linux uses Git
How Linux uses Gitdmgerman
 
Components license
Components licenseComponents license
Components licensedmgerman
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME dmgerman
 
Towards a Census of Free and Open Source Licenses
Towards a Census of Free and Open Source LicensesTowards a Census of Free and Open Source Licenses
Towards a Census of Free and Open Source Licensesdmgerman
 

Mehr von dmgerman (10)

Fairness and Code Reviews
Fairness and Code ReviewsFairness and Code Reviews
Fairness and Code Reviews
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
 
Cregit Recovering token level authorship from Git
Cregit Recovering token level authorship from GitCregit Recovering token level authorship from Git
Cregit Recovering token level authorship from Git
 
The Promises and Perils of Mining Github: MSR'2014
The Promises and Perils of Mining Github: MSR'2014The Promises and Perils of Mining Github: MSR'2014
The Promises and Perils of Mining Github: MSR'2014
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
On editing text and Emacs: 9 habits of highly effective text editing
On editing text and Emacs: 9 habits of highly effective text editingOn editing text and Emacs: 9 habits of highly effective text editing
On editing text and Emacs: 9 habits of highly effective text editing
 
How Linux uses Git
How Linux uses GitHow Linux uses Git
How Linux uses Git
 
Components license
Components licenseComponents license
Components license
 
he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME he Future of Continuous Integration in GNOME
he Future of Continuous Integration in GNOME
 
Towards a Census of Free and Open Source Licenses
Towards a Census of Free and Open Source LicensesTowards a Census of Free and Open Source Licenses
Towards a Census of Free and Open Source Licenses
 

Kürzlich hochgeladen

Divorce Procedure in India (Info) (1).pdf
Divorce Procedure in India (Info) (1).pdfDivorce Procedure in India (Info) (1).pdf
Divorce Procedure in India (Info) (1).pdfdigitalnikesh24
 
一比一原版西澳大学毕业证学位证书
 一比一原版西澳大学毕业证学位证书 一比一原版西澳大学毕业证学位证书
一比一原版西澳大学毕业证学位证书SS A
 
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.ppt
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.pptFINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.ppt
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.pptjudeplata
 
一比一原版利兹大学毕业证学位证书
一比一原版利兹大学毕业证学位证书一比一原版利兹大学毕业证学位证书
一比一原版利兹大学毕业证学位证书E LSS
 
PPT- Voluntary Liquidation (Under section 59).pptx
PPT- Voluntary Liquidation (Under section 59).pptxPPT- Voluntary Liquidation (Under section 59).pptx
PPT- Voluntary Liquidation (Under section 59).pptxRRR Chambers
 
Indemnity Guarantee Section 124 125 and 126
Indemnity Guarantee Section 124 125 and 126Indemnity Guarantee Section 124 125 and 126
Indemnity Guarantee Section 124 125 and 126Oishi8
 
一比一原版牛津布鲁克斯大学毕业证学位证书
一比一原版牛津布鲁克斯大学毕业证学位证书一比一原版牛津布鲁克斯大学毕业证学位证书
一比一原版牛津布鲁克斯大学毕业证学位证书E LSS
 
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptx
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptxKEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptx
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptxRRR Chambers
 
Introduction to Corruption, definition, types, impact and conclusion
Introduction to Corruption, definition, types, impact and conclusionIntroduction to Corruption, definition, types, impact and conclusion
Introduction to Corruption, definition, types, impact and conclusionAnuragMishra811030
 
The Active Management Value Ratio: The New Science of Benchmarking Investment...
The Active Management Value Ratio: The New Science of Benchmarking Investment...The Active Management Value Ratio: The New Science of Benchmarking Investment...
The Active Management Value Ratio: The New Science of Benchmarking Investment...James Watkins, III JD CFP®
 
THE FACTORIES ACT,1948 (2).pptx labour
THE FACTORIES ACT,1948 (2).pptx   labourTHE FACTORIES ACT,1948 (2).pptx   labour
THE FACTORIES ACT,1948 (2).pptx labourBhavikaGholap1
 
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书如何办理(Lincoln文凭证书)林肯大学毕业证学位证书
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书Fs Las
 
Chp 1- Contract and its kinds-business law .ppt
Chp 1- Contract and its kinds-business law .pptChp 1- Contract and its kinds-business law .ppt
Chp 1- Contract and its kinds-business law .pptzainabbkhaleeq123
 
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual serviceanilsa9823
 
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881mayurchatre90
 
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)Delhi Call girls
 

Kürzlich hochgeladen (20)

Russian Call Girls Rohini Sector 7 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
Russian Call Girls Rohini Sector 7 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...Russian Call Girls Rohini Sector 7 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
Russian Call Girls Rohini Sector 7 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
 
Divorce Procedure in India (Info) (1).pdf
Divorce Procedure in India (Info) (1).pdfDivorce Procedure in India (Info) (1).pdf
Divorce Procedure in India (Info) (1).pdf
 
一比一原版西澳大学毕业证学位证书
 一比一原版西澳大学毕业证学位证书 一比一原版西澳大学毕业证学位证书
一比一原版西澳大学毕业证学位证书
 
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.ppt
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.pptFINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.ppt
FINALTRUEENFORCEMENT OF BARANGAY SETTLEMENT.ppt
 
一比一原版利兹大学毕业证学位证书
一比一原版利兹大学毕业证学位证书一比一原版利兹大学毕业证学位证书
一比一原版利兹大学毕业证学位证书
 
PPT- Voluntary Liquidation (Under section 59).pptx
PPT- Voluntary Liquidation (Under section 59).pptxPPT- Voluntary Liquidation (Under section 59).pptx
PPT- Voluntary Liquidation (Under section 59).pptx
 
Indemnity Guarantee Section 124 125 and 126
Indemnity Guarantee Section 124 125 and 126Indemnity Guarantee Section 124 125 and 126
Indemnity Guarantee Section 124 125 and 126
 
Sensual Moments: +91 9999965857 Independent Call Girls Vasundhara Delhi {{ Mo...
Sensual Moments: +91 9999965857 Independent Call Girls Vasundhara Delhi {{ Mo...Sensual Moments: +91 9999965857 Independent Call Girls Vasundhara Delhi {{ Mo...
Sensual Moments: +91 9999965857 Independent Call Girls Vasundhara Delhi {{ Mo...
 
一比一原版牛津布鲁克斯大学毕业证学位证书
一比一原版牛津布鲁克斯大学毕业证学位证书一比一原版牛津布鲁克斯大学毕业证学位证书
一比一原版牛津布鲁克斯大学毕业证学位证书
 
Russian Call Girls Rohini Sector 6 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
Russian Call Girls Rohini Sector 6 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...Russian Call Girls Rohini Sector 6 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
Russian Call Girls Rohini Sector 6 💓 Delhi 9999965857 @Sabina Modi VVIP MODEL...
 
Vip Call Girls Greater Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Greater Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Greater Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Greater Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptx
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptxKEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptx
KEY NOTE- IBC(INSOLVENCY & BANKRUPTCY CODE) DESIGN- PPT.pptx
 
Introduction to Corruption, definition, types, impact and conclusion
Introduction to Corruption, definition, types, impact and conclusionIntroduction to Corruption, definition, types, impact and conclusion
Introduction to Corruption, definition, types, impact and conclusion
 
The Active Management Value Ratio: The New Science of Benchmarking Investment...
The Active Management Value Ratio: The New Science of Benchmarking Investment...The Active Management Value Ratio: The New Science of Benchmarking Investment...
The Active Management Value Ratio: The New Science of Benchmarking Investment...
 
THE FACTORIES ACT,1948 (2).pptx labour
THE FACTORIES ACT,1948 (2).pptx   labourTHE FACTORIES ACT,1948 (2).pptx   labour
THE FACTORIES ACT,1948 (2).pptx labour
 
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书如何办理(Lincoln文凭证书)林肯大学毕业证学位证书
如何办理(Lincoln文凭证书)林肯大学毕业证学位证书
 
Chp 1- Contract and its kinds-business law .ppt
Chp 1- Contract and its kinds-business law .pptChp 1- Contract and its kinds-business law .ppt
Chp 1- Contract and its kinds-business law .ppt
 
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Singar Nagar Lucknow best sexual service
 
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881
Negotiable Instruments Act 1881.UNDERSTAND THE LAW OF 1881
 
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Nangli Wazidpur Sector 135 ( Noida)
 

Source Code Licensing as an Essential Aspect of Modern Software Development

  • 1. Daniel M. German (dmg) http://turingmachine.org Source Code Licensing as an Essential Aspect of Modern Software Development Technical Briefing Max Di Penta and Daniel German Daniel M. German (dmg) http://turingmachine.org “The way software is built is changing” --Scott Peterson Senior Counsel HP
  • 2. Daniel M. German (dmg) http://turingmachine.org Open Office dependency graph in Debian 5 Daniel M. German (dmg) http://turingmachine.org “Anybody can fix code bugs, but only a few can deal with licensing bugs.” --Aaron Siego, previous president KDE Foundation
  • 3. Daniel M. German (dmg) http://turingmachine.org Software and Intellectual Property (IP) ● IP: “the commercial application of imaginative thought to solving a technical or artistic challenge” [WIPO 2005] ● Since 1980 software has the same protection as any other literary work (US) Daniel M. German (dmg) http://turingmachine.org An micro-intro to Copyright ● It is a monopolistic right to: ● Make copies ● “Perform” the work ● Prepare derivative works ● Software is like Music and Writing ● Owners want to control how it is used and reused ● The owner is: ● In the absence of contract, its author ● Employer usually owns copyright of employees
  • 4. Daniel M. German (dmg) http://turingmachine.org Joint Works ● a work is joint if the authors collaborated with each other, ● with the knowledge and intention that it would be merged with the contributions of other authors as inseparable or interdependent parts of a unitary whole. ● Each author can independently license the work ● But should compensate the co-authors Daniel M. German (dmg) http://turingmachine.org Derivative Works ● A key concept in software development ● A derivative work is “a work based upon one or more preexisting works, such as a translation.... or any other form in which work may be recast, transformed or adapted” (17 USC)
  • 5. Daniel M. German (dmg) http://turingmachine.org Collective Works/Compilations ● A “collective work”: ● A number of contributions, constituting separate and independent works in themselves, are assembled into a collective whole. ● A “compilation”: ● collection and assembling of preexisting materials or of data that are selected, coordinated, or arranged in such a way that the resulting work as a whole constitutes an original work of authorship. ● Includes collective works. Daniel M. German (dmg) http://turingmachine.org Chain of Title ● Ownership can be transferred via a contract ● One sells copyright to another ● Derivative works: ● The creator of a derivative work is added to the chain of title of the original work ● Compilations: ● Each work maintains its original ownership ● The compilation receives its own ownership
  • 6. Daniel M. German (dmg) http://turingmachine.org Licenses ● Owner of copyright can grant licenses to third parties ● They grant permissions that otherwise would be forbidden by law – Creating derivative works ● Example: – EULAs – Software contracts – Free and Open Source Licenses ● Typically, a licensor would negotiate a license from the licensee under a contract Daniel M. German (dmg) http://turingmachine.org Open Source Software ● Software licensed under an Open Source License ● Open Source Licenses ● Created to simplify software reuse ● Examples: – BSD family – GPL family – Even Microsoft has open source licenses ● Microsoft Public License and ● Microsoft Reciprocal License
  • 7. Daniel M. German (dmg) http://turingmachine.org F/OSS Licenses ● Like any other license, it grants some rights on the work to the licensee ● In exchange, licensee should abide to some requirements ● Usually licensor does not know its licensees ● Many different licenses: ● Open Source Initiative approved licenses (OSI) ● Free Software Foundation Licenses ● Many others Daniel M. German (dmg) http://turingmachine.org Types of F/OSS Licenses ● Academic or Permissive: ● they allow the licensee a wide range of rights, including creating proprietary derivative works: ● BSD, MIT, Apache ● Reciprocal: ● in return you should release any derivative works under the same license: ● GPL, MPL
  • 8. Daniel M. German (dmg) http://turingmachine.org License Compatibility By D. Wheeler Daniel M. German (dmg) http://turingmachine.org Lex Hacketoria* ● Like Lex Mercatoria, it goes beyond the current law ● Hackers have created a code of conduct: ● Those who don't abide are chided ● Lawsuits are not always practical ● Law might not support this code ● Examples: ● Is linking a derivative work? – Lex Hacketoria says yes! – Many high profile lawyers (e.g. Lawrence Rosen) argue that dynamic linking should not * concept developed by Richard Fontana, OSS Counsel at RedHat
  • 9. Daniel M. German (dmg) http://turingmachine.org Research in Licensing Issues ● Lawyers are risk managers ● Software engineers are builders ● Licensing (and other IP related issues) has become core to the practice of Soft Eng. ● Open source has emphasized the need for this are ● Legal Compliance in Software DevelopmentLegal Compliance in Software Development Daniel M. German (dmg) http://turingmachine.org The Big Goal ● The long term goal is to incorporate software licensing concerns of reusing licensed components into the software development processes. ● From the point of view of: – The Licensor: how to license the software – The licensee: how does licensing affect the reuse of software components?
  • 10. Daniel M. German (dmg) http://turingmachine.org What does it mean? ● Understanding the problem ● Doing Empirical Studies ● Creating models ● Building tools ● Ultimately helping the lawyers and the software engineers manage more easily the licensing concerns associated with component reuse. ● Legal Compliance Daniel M. German (dmg) http://turingmachine.org Architectural Problems ● What components are used in this system? ● How do they interconnect? ● Do they create a compilation? ● Do they create a derivative work? ● What constraints do they impose onto the system? ● Can the system be re-architectured to change its licensing constraints?
  • 11. Daniel M. German (dmg) http://turingmachine.org License Incompatibility Problem ● Can I combine components under two different licenses? ● If yes, what should I do to comply to all the licenses requirements? ● Example: ● GPLv2 does not allow imposition of any further restrictions. – You can't combined BSD-4 clauses ● If not, are there work arounds? Daniel M. German (dmg) http://turingmachine.org License Integration Patterns: Dealing with Licenses Mismatches in Component-Based Development (German et al ICSE'09) ● A formalization of licenses in the context of component reuse ● The specific grant to be able to integrate a component C in a software system S depends on two factors: 1. Whether S is a derivative work of S, ● depends on the type of interconnection of C with the rest of S; 2. the rights required to use, and potentially distribute C
  • 12. Daniel M. German (dmg) http://turingmachine.org Daniel M. German (dmg) http://turingmachine.org What is the license of a Component? ● File is the minimal licensing unit ● Software components are collections of files ● Not always all files in a “source” archive are used to create the binary ● In Fedora 15, in only 25% packages contained files under one license (di Penta et al ICPC, 2010) ● Sometimes they are many – Linux contains files under than 30 licenses ● Question: what is the license of a component?
  • 13. Daniel M. German (dmg) http://turingmachine.org License of a File ● License identification problem ● Given a file, under what license is it? ● Not trivial (German et al, ASE 2010) Daniel M. German (dmg) http://turingmachine.org Ninka (German et al ASE'10) ● Lightweight license identification tool ● Only applicable to source code files ● Capable of identifying 200 different licenses ● Its goal is to minimize errors in the detection ● In experiments, capable of identifying 85-80% licenses in files ● Most likely error: not able to identify all licenses in a file
  • 14. Daniel M. German (dmg) http://turingmachine.org ● /* Copyright (C) 2006 Apple Computer, Inc. All rights reserved. ● * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com ● * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com> ● * ● * Redistribution and use in source and binary forms, with or ● * without modification, are permitted provided that the following ● * conditions are met: ● * 1. Redistributions of source code must retain the above copyright ● * notice, this list of conditions and the following disclaimer. ● * 2. Redistributions in binary form must reproduce the above ● * copyright notice, this list of conditions and the following ● * disclaimer in the documentation and/or other materials ● * provided with the distribution. ● * ● * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ● * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ● * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ● * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE ● * COMPUTER, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, ● * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ● * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ● * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ● * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ● * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ● * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF ● * THE USE OF THIS Daniel M. German (dmg) http://turingmachine.org Converted to a sequence of sentences 1 Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 2 Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com Copyri[...] 3 Redistribution and use in source and binary forms, with or w[...] 4 Redistributions of source code must retain the above copyrig[...] 5 Redistributions in binary form must reproduce the above copy[...] 6 THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. <QUOTES>AS[...] 7 IN NO EVENT SHALL APPLE COMPUTER, INC. OR CONTRIBUTORS BE LI[...]
  • 15. Daniel M. German (dmg) http://turingmachine.org Sentences are matched 1 <AllRights, <Copyright (C) 2006 Apple Computer, Inc.>> 3 <BSDpre, <:>> 4 <BSDcondSource, <above>> 5 <BSDcondBinary, <>> 6 <BSDasIs, <APPLE COMPUTER, INC.>> 7 <BSDWarr, <APPLE COMPUTER, INC. OR CONTRIBUTORS>> Which translates to a BSD-2 license. Daniel M. German (dmg) http://turingmachine.org Provenance Discovery ● Reuse is not always easy to identify ● Cut&Paste reuse ● At the file level ● At the component level ● At statements level ● Malicious vs Legally allowed copying ● Copyright violations ● License violations
  • 16. Daniel M. German (dmg) http://turingmachine.org Provenance Discovery ● Copyright violations: Who are you? ● Is this code derived from another? ● License violations: Does your mother know you are here? ● Do we have a license to reuse the code? Daniel M. German (dmg) http://turingmachine.org Binary Provenance ● Frequently dependencies are managed by embedding its binary ● Very common in Java ● Two problems: ● What is the license of the binary? – Di Penta et al MSR'09 ● What is the source of the binary? – Davis et al MSR'10
  • 17. Daniel M. German (dmg) http://turingmachine.org Software Bertillionage ● Finding the source of a binary is a hard problem ● Corpus needs to be large to be useful: ● Maven2 is almost 300GB of compressed Java ● Bertillionage: ● Narrow the search space using a fast method ● Then other more expensive methods can be used (including manual analysis) ● Examples: ● Java: using type signatures of Java methods (Davis et al, MSR'11) ● C/C++: using strings present in binaries (Hemel et al MSR'11) Daniel M. German (dmg) http://turingmachine.org Software Package Data Exchange (SPDX) ● Standardizes the exchange of licensing information across the supply chain: ● What components are used to create a given product? ● Where do they come from? ● What are their licenses? ● Ideally, every F/OSS component should have its attached SPDX description ● Version 1.0 was just released (Aug 2011)
  • 18. Daniel M. German (dmg) http://turingmachine.org Summary ● Copyright and software licensing are affecting the way software is created ● Areas of research ● Impact of IP on Software Architectures ● License identification ● Component identification/Provenance discovery ● Many others (wait for second part of TechBrief.)