Subject: Embedding licensing requirements into binary objects
To: None <tech-misc@NetBSD.org>
From: Luke Mewburn <lukem@NetBSD.org>
List: tech-misc
Date: 10/18/2003 11:53:39
It would be extremely useful to encode a file's binary license
requirements in the generated binary object.  Among other things,
it makes it easy to gather license compliance text for a given
group of binary objects using a tool.

I propose some new macros:

  __LICENSE(type,description)

	Generates an ELF "linkonce" section header, so that
	there's only one copy of each license type in the
	generated binary.

	The generated section header name would be
		".gnu.linkonce.netbsd.license." + #type

	type		Type of license as a string.
			Used as part of the section header name.
			Suggested types:
			GPL	GNU Public License, v2 or greater
			UCB3	UCB 3 clause
			TNF4	TNF 4 clause

	description	Text string describing license.
			Suggest a URL to www.NetBSD.org for the license.
			This could also contain the advertising text
			for licenses that require that, especially
			for "non standard" texts.

  __LICENSE_GPL   __LICENSE(GPL,  "http://www.NetBSD.org/license/GPL.html")
  __LICENSE_TNF4  __LICENSE(TNF4, "http://www.NetBSD.org/license/TNF4.html")
  __LICENSE_UCB3  __LICENSE(UCB3, "http://www.NetBSD.org/license/UCB3.html")


Thoughts?

Cheers,
Luke.