Source Code & Licensing Question

Here’s one some of you guys offered to help with earlier.

Before this Devember I’ve never even considered making and hosting open-source software, particularly software that’s dependent on another code base or specification. Mostly do hardware stuff so it’s just something I’ve never encountered before. I’ll use the EFI utilities for my project as the obvious example here.


The code I’m writing follows the Intel UEFI specification provided by the UEFI Forum (previously Intel?):

https://uefi.org/specifications

And is not derived from but depends on the TianoCore toolkit libraries to compile and function.

The TianoCore source code is released under… whatever this license is…

/*
 * Copyright (c) 1999, 2000
 * Intel Corporation.
 * All rights reserved.
 * 
 * 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.
 * 
 * 3. All advertising materials mentioning features or use of this software must
 *    display the following acknowledgement:
 * 
 *    This product includes software developed by Intel Corporation and its
 *    contributors.
 * 
 * 4. Neither the name of Intel Corporation or its contributors may be used to
 *    endorse or promote products derived from this software without specific
 *    prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION AND CONTRIBUTORS ``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 INTEL CORPORATION 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
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 */

My interpretation is this: My source code is non-derivative and my own to release however I want. But, my binaries will include code compiled from the toolkit, so I expect I need to include their license terms for that. Do I copyright the code to myself with my ‘own’ Apache license and include a license file that it contains code licensed under TianoCore’s terms above? Is the binary copyrighted under their name? Mine? How exactly do you license/release a binary compiled from one or several different libraries with their own open source licenses?

I’m familiar with the Apache License and use it all the time but never for anything I haven’t built from the ground up before.

(post deleted by author)

1 Like

Looks like a BSD 4-Clause license:
https://spdx.org/licenses/BSD-4-Clause.html

As I read it, and I am not a lawyer or qualified to pose a legal interpretation in any way: You can use their software as long as you honor their stated conditions.

Seeing as the notice is dated 1999 / 2000 I’d triple check this is the latest version and license available to this product suite to cover your butt.