Developing an Open Source Option for NASA Software
Total Page:16
File Type:pdf, Size:1020Kb
Developing An Open Source Option for NASA Software Patrick J. Moran NASA Ames Research Center, M/S T27A-2 Moffett Field, CA, 94035, USA [email protected] NAS Technical Report NAS-03-nnn April 7,2003 Abstract We present arguments in favor of developing an Open Source option for NASA software; in particular we discuss how Open Source is compatible with NASA’s mission. We compare and contrast several of the leading Open Source licenses, and propose one - the Mozilla license - for use by NASA. We also address some of the related issues for NASA with respect to Open Source. In particular, we dis- cuss some of the elements in the “External Release of NASA Software” document (NPG 2210.1A) that will likely have to be changed in order to make Open Source a’reality withm the agency. Contents 1 Introduction 3 2 Why Open Source Software? 4 2.1 NASA Perspective ........................... 4 2.2 Software Users’ Perspective ...................... 5 2.3 Software Developers’ Perspective ................... 5 2.4 PITAC Perspective ........................... 6 2.5 Academia Perspective .......................... 6 2.6 Department of Energy Perspective ................... 7 3 The Leading Open Source Licenses 7 3.1 GNU General Public License ...................... 7 3.2 GNU Lesser General Public License .................. 8 3.3 Mozilla Public License ......................... 8 3.4 BSD License .............................. 8 1 4 License Properties 9 4.1 Recognized by the Open Source Initiative ............... 9 4.2 Attribution Required ........................... 9 4.3 Redistribution Allowed ......................... 10 4.4 License Trumps in Derivative Works .................. 10 4.5 Derivatives Must Be Open Source Software .............. 10 4.6 Commercialization Allowed ...................... 10 5 Associated Issues 10 5.1 ExportControl ............................. 11 5.2 “External Release of NASA Software” (NPG2210.1A) ........ 11 5.3 Contractor Rights ............................ 12 5.4 Copyright for Government-Employee-AuthoredWork ......... 13 6 Proposed NASA Open Source License 14 7 Conclusion 14 A Acronyms 16 B Open Source Definition 18 C GNU General Public License 21 D GNU Lesser General Public License 27 E Mozilla Public License 35 F BSDLicense 44 G Glossary 45 H DOE-Related Open Source Projects 46 I Open Source License Usage Statistics 48 2 1 Introduction In the past decade the rapid growth of the Internet has changed how we use computers. For software developers, the widespread network availability and growth of network- aware tools have led to new forms of distributed development and collaboration. Soft- ware distribution has also changed. Distributions in the past, requiring sending disks and tapes through the postal service, have in many cases been superseded by the sim- pler and more rapid distributions enabled by the network. One of the more exciting developments has been the growth in what is known as Open Source software. From the name alone it might seem that Open Source simply means that when software is distributed, source code is included. But Open Source is more than that. Open Source is about enhanced software quality, more efficient software development, and increased collaboration. An organization known as the Open Source Initiative (OSI) [21] provides the most widely recognized guidelines as to what constitutes Open Source; in particular the OS1 provides guidance with respect to how to balance the intellectual property rights concerns of developers with openness. The OSI’s contribution is particularly important because there is the temptation by many to use the terms “open” and “open source” rather loosely, and in particular to apply the adjectives to software that in reality is not particularly open. An article by Tim O’Reilly (of O’Reilly & Associates, one of the most prolific computer science book publishers) also provides help with clarifying what Open Source is about [34]. Currently, the largest Open Source software hosting site, SourceForge, provides the home to over 36,000 Open Source projects. For NASA, the adoption of an Open Source option for software distribution would lead to three main benefits: 1. improved software development; 2. enhanced collaboration, in particular across organizational boundaries; 3. more efficient and effective dissemination. The first benefit is described by the OS1 as “when programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing” [21]. In one sense, Open Source enables a type of peer review for software. The second benefit is important because IVASA’s overall mission to “understand and protect our home planet, to explore the universe and to search for life” [32] is not one that NASA can effectively achieve alone. To be successful, NASA will need to work with other government agencies, academia and industry. Open Source makes those types of collaborations easier. Finally, from the beginning NASA has been directed to “provide for the widest practicable and appropriate dissemination of information concerning its activities and the results thereof” [8]. An Open Source distribution, coupled with the opportunities provided by the Internet, would enable far greater dissemination than has ever been achieved before. In this report we propose that NASA develop an Open Source option for software developed within the agency. We say option because we are not proposing that all 3 m NASA software be released Open Source. We recognize that some software, because of export control, ownership or commercialization concerns, may not be suitable for Open Source. Nevertheless, we expect that many NASA projects would be appropriate for, and would benefit greatly from, an Open Source distribution. In the following sections we begin with some of the rationale behind Open Source. Next we consider some of the leading Open Source licenses and their properties. We also address some associated issues that impact potential Open Source distribution for NASA software, in particular issues related to NPG 2210. IA, the “External Release of NASA Software” guideline. We propose one particular license, the Mozilla public license, for consideration. And finally, we conclude with some proposed next steps. 2 Why Open Source Software? There are many arguments in favor of Open Source software. Which argument res- onates with the listener depends on ones viewpoint. Here we discuss some of the key perspectives. 2.1 NASA Perspective The functions of NASA were prescribed in the “National Aeronautics and Space Act of 1958”, NASA’s charter [8]. The charter states that NASA shall: 1. plan, direct, and conduct aeronautical and space activities; 2. arrange for participation by the scientific community in planning scientific mea- surements and observations to be made through use of aeronautical and space vehicles, and conduct or arrange for the conduct of such measurements and ob- servations; 3. provide for the widest practicable and appropriate dissemination of information concerning its activities and the results thereofi 4. seek and encourage, to the maximum extent possible, the fullest commercial use of space; and 5. encourage and provide for Federal Government use of commercially provided space services and hardware, consistent with the requirements of the Federal Government. (Emphasis added). An Open Source distribution option for NASA software would provide for the widest dissemination of the work, with minimal overhead. A more recent expression of NASA’s priorities comes in the form of the NASA Mission Statement (found for example in the NASA 2003 Strategic Plan [32]): 0 To understand and protect our home planet, 0 To explore the universe and search for life, 0 To inspire the next generation of explorers ... as only NASA can. 4 1’ To most effectively achieve the first two goals NASA will need to work closely with other government laboratories, universities, and industry. Open Source software low- ers the barriers to collaboration and enables sharing with minimal overhead. The third goal would also benefit if NASA were to adopt an Open Source option. NASA pro- duces software specifically intended for teachers and children; for example, see the applications sponsored by the NASA Learning Technologies Project [30]. Schools, especially K-12, tend to be especially sensitive to software cost. Open Source would enable easier transfer of software from NASA to teachers and students with little or no cost to the recipients. Open Source would also make it easier for more advanced students and teachers to add new features to the software and contribute those features back to NASA, so that they may be shared by other schools. Imagine the excitement and pride fostered in a student when his or her work was appreciated not only by class- mates but by peers worldwide. 2.2 Software Users’ Perspective The appeal of Open Source software for users is based on more than simply the de- sire to avoid paying money or to make a political statement. The decision to utilize a particular software library or application has serious implications because most non- trivial software requires a significant amount of time and effort to master and use ef- fectively. Software that is available Open Source is easier to evaluate before making a deeper commitment. Furthermore, software used by NASA researchers tends to come