wiki:SWLicense

Version 5 (modified by fpierfed, 11 years ago) (diff)

--

Introduction

LSST as a project has a mandate to publish all of its software as open source. There are a multitude of open source/free software licenses to choose from. At the same time, LSST has a few specific desiderata to take into consideration when choosing the "right" license:

  • Acknowledgement and credit of authorship
  • Establishing ownership without restricting use
  • Preserving all non-commercial use
  • Allowing, but not necessarily encouraging, commercial use

Another issue to take into consideration is that of copyright. Code written using LSST funds would have the approved LSST copyright notice, all other code would have the appropriate copyright notice instead. Whatever license is chosen should allow the specification and preservation of different copyright notices.

Proposal

Given all the above, the Apache License 2.0 appears to be a good fit. It allows users of Apache licensed software to

  • Copy, distribute and modify the software
  • Exercise patent rights on the portions of software that they use that would normally only be the right of the licensor only

At the same time, the Apache license requires that

  • All copies, modified or unmodified, are accompanied by a copy of the license
  • All modifications are clearly marked as being the work of the modifier
  • All notices of copyright, trademark and patent rights are reproduced accurately in distributed copies
  • The licensee does not start legal action against the licensor(s) over patent infringement
  • The licensee does not use any trademarks that belong to the licensor

It is useful to note that software distributed under the Apache license 2.0 is provided as is (i.e. without any warranty of any sort).

Implementation

In practice adopting the Apache License 2.0 means

  1. Adding a reference to the appropriate license and copyright information to each source file and each header.
  2. Distributing with the code or otherwise making available a LICENSE file and a NOTICE file.

The LICENSE file contains the Apache License 2.0 text itself. The NOTICE file contains all the copyright notices needed.

Proposed disclaimer in source/header files (local NOTICE file)

/* Licensed to the LSST Corporation (LSSTC) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The LSTC licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Proposed disclaimer in source/header files (remote NOTICE file)

/* Licensed to the LSST Corporation (LSSTC) under one or more
 * contributor license agreements.  See the NOTICE file available at
 *
 *     http://www.lsst.org/license/NOTICE
 *
 * for additional information regarding copyright ownership.
 * The LSTC licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Example NOTICE file (adapted from Apache httpd 2.0)

LSST Pipeline Framework Copyright 2008, 2009, 2010 LSST Corporation.

This product includes software developed at The Apache Software Foundation (http://www.apache.org/).

Portions of this software were developed at the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign.

This software contains code derived from the RSA Data Security Inc. MD5 Message-Digest Algorithm, including various modifications by Spyglass Inc., Carnegie Mellon University, and Bell Communications Research, Inc (Bellcore).

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. The original software is available from

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

Further Resources

  1. OSS Watch discussion of the Apache License 2.0
  2. Wikipedia Article on Apache License 2.0

Attachments