Liblicense

From Creative Commons
Revision as of 18:58, 22 June 2007 by Scott Shawcroft (talk | contribs) (Architecture)
Jump to: navigation, search


System Overview

Purpose

To provide a simple way for developers to make their applications license aware. Additionally, supplemental modules aim to provide a method for users to track licenses of files on their system. This project complements Companion File metadata specification and Tracker CC Indexing.

Architecture

System architecture.png

svg version

Config Modules

  • in_use() - returns whether or not the corresponding config system exists on the computer
  • get() - returns the current default license uri
  • set(uri) - sets the default license uri and returns 0 upon success (non-zero for errors)

I/O Modules

  • mime_types - null terminated list of handled mime-types (all indicates external storage method which works for any file)
  • read(filename) - returns the license uri for the given file (embedded license takes precedence)
  • write(filename,uri) - writes the license uri for the given file

License Files (.rdf)

Attributes

  • cc:license
    • about
    • permits
    • requires
    • prohibits
  • dc:title - The human readable name of the license.
  • dc:description - Description of the license.
  • dc:coverage - The jurisdiction of the license.
  • dc:language - The language of the license.
  • dc:relation
    • hasVersion - version number
    • isReplacedBy - indicates retired license
    • isBasedOn - indicates ported version
  • dc:license - license the license is available under
  • dc:type - always license
  • dc:creator
  • dc:publisher
  • dc:identifier - URI of license

Example

Frontends

See Desktop Integration

Timeline

6/18

  • Finalize liblicense API.

6/25

  • Write liblicense.
  • Stub config and IO modules.

7/2

  • liblicense python bindings.

7/9

  • Gconf config module.
  • Nautilus IO module.

7/16

  • Nautilus GUI frontend.
  • Gnome control panel frontend.

7/23

  • Sugar Journal backend.
  • Sugar frontend.

7/30

  • Bug hunting.
  • Frontend polishing.

8/6

8/13

8/20