Difference between revisions of "ThemeChooser"

From MythTV Official Wiki
Jump to: navigation, search
m (mark as developer documentation, as it lists the requirements for official theme hosting)
(How to get your theme to the official download site)
Line 13: Line 13:
 
In order to be distributed via the official themes download site, a theme must meet certain criteria:
 
In order to be distributed via the official themes download site, a theme must meet certain criteria:
  
* Feature Complete.  At a minimum, the following list of screens must be themed so that they do not fall back to the default theme windowsAlso, these screens should not just be cut-and-pasted from the defaults in order to pass the completeness test.  We are investigating writing a script to show a themes "completeness" so that this information can be provided to users in the Theme Chooser screen.
+
* The theme must be freely distributableThe theme must be covered under a license which allows redistribution from the MythTV themes download site.
** Fixme Screen #1
+
* There should be no copyright violations.
** Fixme Screen #2
+
** Only freely distributable images and fonts may be included.  These may be in the public domain or covered by a copyright that allows free distribution.  All image use must comply with the original artists' copyright.
** Fixme Screen #3
 
** .
 
** .
 
** .
 
* No copyright violations. This includes the following:
 
** Only freely distributable images may be used.  These may be in the public domain or covered by a copyright that allows free distribution.  All image use must comply with the original artists' copyright.
 
 
** Proper display of copyright notices/images where applicable (ie, MythWeather)
 
** Proper display of copyright notices/images where applicable (ie, MythWeather)
* Fixme Criteria #3
+
* A LICENSE file must be included in the theme's main directory which details the following:
* Fixme Criteria #4
+
** License the theme is being distributed under.
* Fixme Criteria #5
+
** Any additional licenses which apply to any freely distributable images or fonts included with the theme.
* .
 
* .
 
* .
 
  
<!--
 
=== Providing your theme via the unofficial user-submitted area ===
 
  
FIXME
+
Packaging:
  
[[ThemeChooserThemeList]]
+
 
-->
+
Themes are repackaged in a standard format for the Theme Chooser to download and install.  This is a scripted process which will eventually be run automatically.  The packaging script can repackage themes which are distributed via the following methods:
 +
* Tarball on a remote web or FTP server.  If a tarball is used, it is preferable to have the tarball contain a directory named for the theme as the top level directory in the tarball rather than having themeinfo.xml be in the top-level directory.  The script currently understands both compressed and uncompressed tarballs and can work with gzip, bzip2, and lzma compression methods.  If tarballs are used, it is preferred that the filename contain both the theme's version and the MythTV version that this particular version works with, for instance Terra_1.1_trunk.tgz or MythCenter_1.0_0.24.tar.bz2.
 +
* Git or Subversion repository.  If the theme's source is managed under a Git or Subversion repository, the packaging script can fetch the latest theme source directly from the repository.
 +
** To make things easier and allow tracking both development and stable versions of a theme, the following branch layout is recommended (but not required):
 +
*** master (this is where the theme development happens, 'trunk' is using Subversion)
 +
*** mythtv-master branch (theme packages for MythTV 'master' are packaged from this branch)
 +
*** 0.24 (theme packages for MythTV v0.24 are packaged from this branch)
 +
** The above layout provides the following advantages:
 +
*** Theme development can continue without affecting packaging of themes.  Theme changes that are ready for distribution can be merged into the proper packaging branch and the theme version can be bumped up inside the branch's themeinfo.xml.
 +
*** Theme can be maintained for multiple MythTV versions in the same repository.
 +
** For themers who are distributing more than one theme, the packaging script allows multiple themes to be stored in the same repository.  This feature is actually used to package up stock MythTV themes from MythTV's git repository on github.

Revision as of 05:02, 27 December 2010


This page is a work in progress, ask in IRC in #mythtv-theming if there are any questions


Theme Chooser/Downloader

A new Theme Chooser screen was introduced in mythfrontend in the v0.24 release of MythTV. This screen allows the user to choose a new theme from an available list of locally installed themes and themes which can be downloaded from the official themes.mythtv.org repository.

How to get your theme to the official download site

In order to be distributed via the official themes download site, a theme must meet certain criteria:

  • The theme must be freely distributable. The theme must be covered under a license which allows redistribution from the MythTV themes download site.
  • There should be no copyright violations.
    • Only freely distributable images and fonts may be included. These may be in the public domain or covered by a copyright that allows free distribution. All image use must comply with the original artists' copyright.
    • Proper display of copyright notices/images where applicable (ie, MythWeather)
  • A LICENSE file must be included in the theme's main directory which details the following:
    • License the theme is being distributed under.
    • Any additional licenses which apply to any freely distributable images or fonts included with the theme.


Packaging:


Themes are repackaged in a standard format for the Theme Chooser to download and install. This is a scripted process which will eventually be run automatically. The packaging script can repackage themes which are distributed via the following methods:

  • Tarball on a remote web or FTP server. If a tarball is used, it is preferable to have the tarball contain a directory named for the theme as the top level directory in the tarball rather than having themeinfo.xml be in the top-level directory. The script currently understands both compressed and uncompressed tarballs and can work with gzip, bzip2, and lzma compression methods. If tarballs are used, it is preferred that the filename contain both the theme's version and the MythTV version that this particular version works with, for instance Terra_1.1_trunk.tgz or MythCenter_1.0_0.24.tar.bz2.
  • Git or Subversion repository. If the theme's source is managed under a Git or Subversion repository, the packaging script can fetch the latest theme source directly from the repository.
    • To make things easier and allow tracking both development and stable versions of a theme, the following branch layout is recommended (but not required):
      • master (this is where the theme development happens, 'trunk' is using Subversion)
      • mythtv-master branch (theme packages for MythTV 'master' are packaged from this branch)
      • 0.24 (theme packages for MythTV v0.24 are packaged from this branch)
    • The above layout provides the following advantages:
      • Theme development can continue without affecting packaging of themes. Theme changes that are ready for distribution can be merged into the proper packaging branch and the theme version can be bumped up inside the branch's themeinfo.xml.
      • Theme can be maintained for multiple MythTV versions in the same repository.
    • For themers who are distributing more than one theme, the packaging script allows multiple themes to be stored in the same repository. This feature is actually used to package up stock MythTV themes from MythTV's git repository on github.