Licenses in Operating Systems Specification
This is a spec for including licenses in an Operating System. Currently, Gentoo is the only distro that puts licenses into a central location (/usr/portage/licenses) and they are just as text files. However, all software (open and closed) includes license declarations, links to licenses, etc in each package. This is an area in need for serious shared infrastructure. This spec. is written to support building a mechanism into common operating systems for supporting all types of licenses to help license different components of software as well as content/media on the system, and what users generate.
Contents
Licenses
Content
- CC licenses
- GNU FDL
- FreeArt
Source Code
- GNU GPL
- GNU LGPL
- MIT License
Questions
- What licenses should be allowed?
- Should licenses be weighted?
- How will they connect with mime-types and how will a system know which filetypes connect with which licenses?
Naming
What is the best way to name licenses for inclusion.
Possibly this form:
licenseprovider_licensecode[_version[_jurisdiction]][_(deed|legalcode)_language].filetype
Then, for the three file types, this possibly would make sense:
cc_by-sa_2.5.rdf cc_by-sa_2.5_legalcode.html cc_by-sa_2.5_deed.html
This way also, a system could have other versions of licenses, such as (these should mirror the above):
cc-attribution-2.5--machine.rdf cc-attribution-2.5--machine.xml cc-attribution-2.5-be-human.txt cc-attribution-2.5-de.html cc-attribution-2.5--human.odt cc-attribution-2.5-pt_BR-lawyer.txt cc-attribution-2.5-es.html cc-attribution-2.5--lawyer.rtf
Possibly even better than a mapping like the above, use license URI as filename. Requires escaping to access, but otherwise far less twisted than mappings like the above.
Forms
Human-Readable
This would be the human readable commons deed that is included with a license.
Lawyer-Readable
This would be the legalese for lawyers and courts to read that is specific and really the highest level (most abstract) version of a license.
Machine-Readable
This is the digital version of a license that is to be read by software (machines).
Operating Systems
Linux
Path
System-level
/usr/share/licenses
User-level
~/.licenses/
Please help us fill this out :)
Mac OS X
Path
System-level
/Library/Application\ Support/Licenses
User-level
~/Library/Application\ Support/Licenses
Windows
Path
System=level
C:\%COMMONFILES%\licenses
User-level
C:\%APPDATA%\licenses (for local use)
Filetype Mapping
There should be a simple mechanism for mapping known filetypes to types of licenses that can be used with a type of content. There should also be some mechanism for recognizing preferences and possible violations of licenses.
Questions
- How does this fit in with mimetypes?
- How can these preferences be dealt with?
- Is dealing with possible violation too DRM-like?
Preferences
This is a section TBD on how to deal with preferred licenses and also licenses whose filetype/mime-type mapping is not known.
Offline vs. Online
There needs to be away to use web services (like CC Web Services) to get the most up-to-date versions of licenses and as a fallback, use the on-disk versions of licenses. Also, some people and systems might not have web access, so there is a definite need for a place for these files to exist in an operating system. Also, most software just includes a license for source code and they forget that the GNU GPL is not for content. Thus, having a local link to licenses would promote licensing individual content distributed in an operating system through a distro to license-up and be legal.
NOTE: This is a long-time down the road, and the current recommendation is to use a systems package management facilities.
TODO
- Flesh out #Offline vs. Online section
- Add more to the #Preferences section
- Need to get reviews of this spec
- Need to get reviews of the #Naming component of this spec.