Advancing the Software Package Data Exchange: An Update on SPDX
Phil Odence,a Scott Lamons,b Jilayne Lovejoyc
(a) Vice President of Corporate and Business Development, Black Duck Software; (b) Program Manager, HP Open Source Program Office; (c) Corporate Counsel, OpenLogic, Inc.
Abstract
Since 2010, the Software Package Data Exchange, a Linux Foundation work group, has made great progress. This article provides an overview of advancements on the specification itself, survey results on use, adoption by corporate users and FOSS communities, and future plans and initiatives.
Keywords
Law; information technology; Free and Open Source Software; SPDX; Software Package Data Exchange; software licensing; copyright; bill of materials.
While the specification has evolved since the original publication, the work group’s mission has remained constant:
Establishing a common data format enables producers and consumers of software (and the tool vendors that support them) to build processes and tooling that reduce the initial effort and rework involved in understanding and communicating what is in a software package. Thus, a standard format allows more effort be expended on licence compliance. After all, license compliance can only begin once all software and associated licenses have been identified in a particular code base.
The content of an SPDX document comprises, among other things, information definitively identifying the software package, and package level and file level licensing and copyright information. It also provides metadata about the analysis itself: who created the file, when, and how.
The SPDX work group consists of representatives from companies and organizations who use or are considering using the SPDX standard. The work group operates much like a meritocratic, consensus-based community project; that is, anyone with an interest in the project can join the community, contribute to the specification, and participate in the decision-making process.
Free and open source software (FOSS) projects continue to multiply at an accelerating rate. Since 2010, the number of freely available software projects on the Internet has climbed from about a quarter of a million to over a million and is projected to top two million in 2014.
Source: SPDX Survey4 conducted during May 2013
More notable points from of the results of the survey are discussed in the subsequent sections of this article.
As with other standards, adoption is often slower than expected, but interest is recently on the rise from both open source projects and companies. The SPDX survey cited above revealed that as of yet only a handful of organizations are producing or requiring SPDX documents from suppliers and most were, at best, experimenting internally. On the other hand, the need was clear; many more were intending to use SPDX in the future and only a tiny fraction expected to use another format. The longest journey starts with a single step, however, and SPDX is clearly beyond that.
Companies tend to be private about their contractual arrangements, which makes it hard to comprehensively track who is using SPDX, planning to use it, experimenting internally, and so forth. As to date, only a few companies have come forward publicly regarding their adoption or use.
The SPDX survey reinforced the “chicken and egg” nature of starting a standard; that is, adoption breeds adoption. Upstream FOSS projects are one of the keys to getting the cycle rolling in the right direction. Working with them provides an opportunity to improve the reach of the standard, fostering a broad adoption base with downstream consumers.
While the aforementioned survey pointed to a number of factors that are important to broad adoption of such a standard, tooling for producing SPDX files was considered very important by the most survey participants. In the past six months there have been some great advances along this dimension.
The SPDX group hosts a handful of open source tools for validating, reading, and translating SPDX documents. Now several FOSS and commercial tools have added the ability to produce SPDX documents.
At the 2013 Linux Collaboration Summit, the SPDX work group hosted a “bake off” or interoperability testing session to compare the output of several tools as well as some manually generated SPDX files. The testing analysed output from two open source tools (FOSSology, hosted by the University of Nebraska Omaha and Ninka, from University of Victoria) and one commercial tool (Black Duck). SourceAuditor has driven development of the SPDX open source tools, and Wind River also shared results from their internal processes and tooling. The extensive analysis uncovered the need for further clarity in the specification in order to ensure more consistency among differently-generated SPDX documents. This sharing represents significant progress against what is considered one of the biggest impediments to adoption. As these tools advance, it will become increasingly practical for organizations to use SPDX to exchange software BoMs information.
As with any open source project, the future will emerge from the activities of all the companies and individuals involved. But there are some clear directions for the project. As tools implementing the specification have become a reality, the group has been able to begin a cycle of testing the tools and at the same time, essentially testing the specification. Comparing the output of a variety of tools has enabled the group to identify some limitations and ambiguities. The work group recently released version 1.2 of the specification, which addresses these issues.
Beyond that, there are two areas where SPDX needs to be enhanced: hierarchy and signing. In regards to hierarchy, the current specification provides a fairly “flat” structure for licensing and copyright information with package and file level views. In other words, there is no explicit way to identify files for one package (and associated licenses) contained within other packages. Based on internal and outside input and due to license compliance requirements that are dependent on how software interacts, the work group has identified a requirement for accommodating the hierarchical nature of software. Because applications are made up of components, which can in turn be made up of other components, this suggests the desirability of a similar structure for SPDX documents to be able to describe the contents of those packages, and for SPDX documents to comprise other SPDX documents of lower level components.
The idea of signing is to allow creators of SPDX documents to associate their name with the work as long as the document isn’t modified. This provides the ability for a SPDX document recipient to make a judgement call as to the reliability of the information provided therein. It is related to hierarchy in that in a hierarchy signing should be maintained by a branch such that if pieces get combined or modified it remains clear who did what.
Beyond the technical evolution of the specification, the SPDX legal team continues to evolve the license list and process around it, with the latest developments being around guidelines for matching to license text. Such guidelines will help ensure consistent matching among tools and SPDX document creators so that when any SPDX document identifies a license using a SPDX License List short identifier, it can be relied upon to be consistent with the identification of that same license in other SPDX documents. There already exists a glossary of synonyms, for example to allow matching the American “license” to the English “licence,” and some other guidelines about handling spaces, punctuation, and copyright notices. Recent work focuses on handling variable text like the copyright holder names in the BSD licenses, as well as the overall implementation for the license matching guidelines.
There is clearly a need for a standard format for exchanging software bill of material information. SPDX is viable today for all open source projects and several early adopter companies. The specification will continue to improve and evolve, especially as more users and potential users from corporations to community groups become involved in shaping the standard.
About the authors
Phil Odence is the Vice President of Corporate and Business Development at Black Duck Software where he is responsible for all corporate and business development activities. A frequent speaker at open source industry events, Phil chairs the Linux Foundation's Software Package Data Exchange working group and participates on the GENIVI marketing team. Phil has over 20 years of software industry experience. He earned an AB in Engineering Science and a MS in System Simulation from the Thayer School of Engineering at Dartmouth College.
Scott Lamons works in HP’s Open Source Program office which is responsible for the companies’ open source policy, review process, and compliance related activities. He has been a member of HP’s Open Source Review Board (OSRB) since 2005. Over this time he has reviewed over 3000 open source proposals from teams across HP and has been involved in delivering company-wide training and consulting on a variety of open source activities. He also works closely with HP’s vendors and partners in the open source community and currently co-lead’s the SPDX business team.
Jilayne Lovejoy participates in open source industry groups including co-leading the SPDX legal team. Jilayne is also a frequent speaker and writer on topics related to open source licensing and compliance. Previously, she was the corporate counsel at OpenLogic where she helped ensure that OpenLogic’s scanning and compliance software met the needs of users and assisted customers with understanding open source license compliance and policy considerations to reduce barriers to open source software adoption. She earned her BA from the University of Colorado, Boulder and her JD from the Sturm College of Law at the University of Denver.
Licence and Attribution
This paper was published in the International Free and Open Source Software Law Review, Volume 5, Issue 2 (December 2013). It originally appeared online at http://www.ifosslr.org.
This article should be cited as follows:
Lovejoy, Jilayne; Odence, Phil; Lamons, Scott (2013) 'Advancing the Software Package Data Exchange: An update on SPDX', International Free and Open Source Software Law Review, 5(2), pp 145 – 152
DOI: 10.5033/ifosslr.v5i2.89
Copyright © 2013 Jilayne Lovejoy, Phil Odence, Scott Lamons.
This article is licensed under a Creative Commons UK (England and Wales) 2.0 licence, no derivative works, attribution, CC-BY-ND available at
http://creativecommons.org/licenses/by-nd/2.0/uk/
As a special exception, the author expressly permits faithful translations of the entire document into any language, provided that the resulting translation (which may include an attribution to the translator) is shared alike. This paragraph is part of the paper, and must be included when copying or translating the paper.
1Stewart, K., Odence P., Rockett, E. (2010) 'Software Package Data Exchange (SPDX™) Specification', IFOSS L. Rev., 2(2), pp 191 – 196 DOI: 10.5033/ifosslr.v2i2.45
3http://www.bearingpoint.com/en-uk/7-5601/study-foss-management/
4See http://wiki.spdx.org/view/Business_Team/Surveys for a summary of the responses and download of complete survey.
5See spdx.windriver.com and http://spdx.windriver.com/pkg_upload.aspx
6http://linuxconcloudopenna2013.sched.org/event/2faecbb5c51ea6089cdc5eb5159bc154#.UfAYgGQ6U4Q
7See http://wiki.spdx.org/view/Business_Team/Adoption
8http://www.chathamhouse.org/about-us/chathamhouserule
9http://ocrl.unomaha.edu/organizational-participation-in-open-communities/tooling/
12http://dep.debian.net/deps/dep5/ and http://en.opensuse.org/openSUSE:Packaging_guidelines; also see: http://www.linuxfoundation.org/news-media/announcements/2011/08/widespread-industry-support-spdx-10
13http://www.fossology.org/projects/fossology/wiki/Release_Notes#220-Released-June-28-2013 and http://lwn.net/Articles/556850/
14http://www.linuxfoundation.org/news-media/announcements/2012/08/supporting-comments-spdx-11
15See http://wiki.spdx.org/view/Technical_Team/SPDX_Meta_Tags for a working draft proposal.
16Indeed, the SPDX work group members are not the only ones who think so, as evidenced by this post: http://hakre.wordpress.com/2012/07/25/using-the-spdx-license-list-for-tagging-and-linking/
17http://getcomposer.org/doc/04-schema.md#license; https://github.com/isaacs/npm/pull/3673
18http://spdx.org/news/2013-10-22/spdx-releases-version-1.2-of-the-specification