Skip to content
Snippets Groups Projects
Eric Eide's avatar
Eric Eide authored
This commit is intended to makes the license status of Emulab and
ProtoGENI source files more clear.  It replaces license symbols like
"EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
blocks that contain actual license statements.

This change was driven by the fact that today, most people acquire and
track Emulab and ProtoGENI sources via git.

Before the Emulab source code was kept in git, the Flux Research Group
at the University of Utah would roll distributions by making tar
files.  As part of that process, the Flux Group would replace the
license symbols in the source files with actual license statements.

When the Flux Group moved to git, people outside of the group started
to see the source files with the "unexpanded" symbols.  This meant
that people acquired source files without actual license statements in
them.  All the relevant files had Utah *copyright* statements in them,
but without the expanded *license* statements, the licensing status of
the source files was unclear.

This commit is intended to clear up that confusion.

Most Utah-copyrighted files in the Emulab source tree are distributed
under the terms of the Affero GNU General Public License, version 3
(AGPLv3).

Most Utah-copyrighted files related to ProtoGENI are distributed under
the terms of the GENI Public License, which is a BSD-like open-source
license.

Some Utah-copyrighted files in the Emulab source tree are distributed
under the terms of the GNU Lesser General Public License, version 2.1
(LGPL).
6df609a9
History
These example programs show how to do various things with Trousers and
libtpm.  The only important ones are these:

	idkey.c		- Goes through the trouble of creating an
			identity key - this process is fairly complex
			under normal circumstances but in our
			environment it is much simpler.  This is why we
			are able to skip all the Privacy CA stuff.

	doquote.c	- This is a helper program that we use inside
			the TPM MFS; it was made to be used in scripts
			with tmcc.  It will take the output from TMCD
			'quoteprep' command, do the proper quote, and
			then write the output back out so it can be
			piped right back to tmcc for the 'nextstate'
			command.  See the usage for more details.

	loadkey.c	- This demonstrates how to load an encrypted
			identity key blob and make a quote with it.  It
			also has some bonus code that shows how to parse
			the quote.

	ltpmloadkey.c	- This also loads an identity key (but it uses
			libtpm, unlike all other code here), generates a
			quote with the identity key, parses it, and
			verifies it.  This is fairly valuable because
			there is/was practically no documentation on how
			to do this.

	pcrcomposite.c	- Shows the PCR composite structure (also in
			ltpmloadkey.c).

	tpm-signoff.c	- This is another helper program we use in the
			TPM MFS.  It extends rubbish into the specified
			PCR.  We use this for the sign-off phase of the
			boot chain.