Licenses in Operating Systems Specification

From Creative Commons
Revision as of 18:22, 21 June 2007 by Mike Linksvayer (talk | contribs) (Naming)
Jump to: navigation, search


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.

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