Liblicense

From Creative Commons
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. (country code from ISO3166)
  • dc:language - The language of the license. (language code under RFC3066)
  • dc:relation
    • hasVersion - version number
    • isReplacedBy - indicates retired license (URI)
    • isBasedOn - indicates ported version (URI)
  • dc:rights license - license the license is available under (URI)
  • dc:type - always "License"
  • dc:creator
  • dc:publisher
  • dc:identifier - URI of license (URI)

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