mozilla

Revision 203665 of Package Filename Convention

  • Revision slug: Package_Filename_Convention
  • Revision title: Package Filename Convention
  • Revision id: 203665
  • Created:
  • Creator: KaiRo
  • Is current revision? No
  • Comment First, slightly modified version of package naming convention, originally from https://bugzilla.mozilla.org/attachment.cgi?id=157639

Revision Content

Package File-naming Convention for XUL Toolkit Applications

originally by Benjamin Smedberg <bsmedberg@covad.net>, adjusted by Robert kaiser <kairo@kairo.at>

The following convention will be used for XUL toolkit applications distributed by mozilla.org, and is used internally by package-name.mk, as well as for files distributed by the MLP and the SeaMonkey project.

Convention

appname-version.langcode.platform{{mediawiki.external('-<var>special</var>')}}{{mediawiki.external('.<var>type</var>')}}.extension

Appname

Appname is lowercase, with no hyphens or dots:

  • firefox
  • thunderbird
  • seamonkey
  • sunbird
  • inspector

Version

Version is a series of dot-separated version parts, each beginning with at least one numeral:

  • 0.1
  • 1.4.2
  • 0.9PR
  • 0.9.24b.7
  • 1.8a
  • 1.8a4

Langcode

Langcode is a locale code, basically as specified in the "language tag" RFC 3066. If a source tarball or extension contains multiple locales, this field is omitted:

  • en-US
  • de
  • es-ES
  • ast
  • roa-IT-vec

Platform [-special]

The platform identifies the operating system/processor/toolkit for a binary package. For package types that are platform-independent, this field is omitted. Normally, this field is $(TARGET_OS)-$(TARGET_CPU) variables from autoconf. However, there are some exceptions to make files more readable:

  1. The platform of Windows packages is "win32" (or "win64", need help here if we actually ever distribute win64 packages, as there are multiple kinds of win64);
  2. the platform of Macintosh (OSX) packages is "mac";
  3. "linux-gnu" is shortened to linux.

Special is used to distinguish non-default characteristics of the build:

  1. GTK2 is the default toolkit on linux platforms. If a GTK binary is built, "-gtk1" is appended to the platform;
  2. for distiction to other builds, other non-default build options should be specified there in short but meaningful identifiers, e.g. builds including a patch for the MNG image format should specify -mng, or windows builds compiled with gcc instead of MSVC may specify -gcc here.

Examples:

  • linux-i686
  • mac
  • win32-gcc
  • linux-i386-gtk1-mng

Type

The kind of package being distributed. If the package is a binary tarball/zip build, the type is omitted. Other "type" possibilities are:

  • installer
  • langpack
  • src

Extension

File-specific extension. Packages which differ only by extension are the same, except for the compression method:

  • firefox-1.0PR.en-US.linux-i386.tar.gz
  • firefox-1.0PR.en-US.linux-i386.tar.bz2
  • firefox-1.0PR.en-US.linux-i386.7z

are all the same package.

Revision Source

<p><b>Package File-naming Convention for XUL Toolkit Applications</b>
</p><p><i>originally by Benjamin Smedberg &lt;bsmedberg@covad.net&gt;, adjusted by Robert kaiser &lt;kairo@kairo.at&gt;</i>
</p><p>The following convention will be used for XUL toolkit applications distributed by mozilla.org, and is used internally by <a class="external" href="http://lxr.mozilla.org/mozilla/source/toolkit/mozapps/installer/package-name.mk">package-name.mk</a>, as well as for files distributed by the <a class="external" href="http://www.mozilla.org/projects/l10n/">MLP</a> and the <a class="external" href="http://www.mozilla.org/projects/seamonkey/">SeaMonkey project</a>.
</p>
<h3 name="Convention"> Convention </h3>
<p><var>appname</var>-<var>version</var>.<var>langcode</var>.<var>platform</var>{{mediawiki.external('-&lt;var&gt;special&lt;/var&gt;')}}{{mediawiki.external('.&lt;var&gt;type&lt;/var&gt;')}}.<var>extension</var>
</p>
<h3 name="Appname"> Appname </h3>
<p>Appname is lowercase, with no hyphens or dots:
</p>
<ul><li> firefox
</li><li> thunderbird
</li><li> seamonkey
</li><li> sunbird
</li><li> inspector
</li></ul>
<h3 name="Version"> Version </h3>
<p>Version is a series of dot-separated version parts, each beginning with at least one numeral:
</p>
<ul><li> 0.1
</li><li> 1.4.2
</li><li> 0.9PR
</li><li> 0.9.24b.7
</li><li> 1.8a
</li><li> 1.8a4
</li></ul>
<h3 name="Langcode"> Langcode </h3>
<p>Langcode is a <a class="external" href="http://wiki.mozilla.org/L10n:Simple_locale_names">locale code</a>, basically as specified in the "language tag" <a class="external" href="http://tools.ietf.org/html/rfc3066" title="http://tools.ietf.org/html/rfc3066">RFC 3066</a>. If a source tarball or extension contains multiple locales, this field is omitted:
</p>
<ul><li> en-US
</li><li> de
</li><li> es-ES
</li><li> ast
</li><li> roa-IT-vec
</li></ul>
<h3 name="Platform_.5B-special.5D"> Platform [-special] </h3>
<p>The platform identifies the operating system/processor/toolkit for a binary package. For package types that are platform-independent, this field is omitted. Normally, this field is $(TARGET_OS)-$(TARGET_CPU) variables from autoconf. However, there are some exceptions to make files more readable:
</p>
<ol><li> The platform of Windows packages is "win32" (or "win64", need help here if we actually ever distribute win64 packages, as there are multiple kinds of win64);
</li><li> the platform of Macintosh (OSX) packages is "mac";
</li><li> "linux-gnu" is shortened to linux.
</li></ol>
<p>Special is used to distinguish non-default characteristics of the build:
</p>
<ol><li> GTK2 is the default toolkit on linux platforms. If a GTK binary is built, "-gtk1" is appended to the platform;
</li><li> for distiction to other builds, other non-default build options should be specified there in short but meaningful identifiers, e.g. builds including a patch for the MNG image format should specify -mng, or windows builds compiled with gcc instead of MSVC may specify -gcc here.
</li></ol>
<p>Examples:
</p>
<ul><li> linux-i686
</li><li> mac
</li><li> win32-gcc
</li><li> linux-i386-gtk1-mng
</li></ul>
<h3 name="Type"> Type </h3>
<p>The kind of package being distributed. If the package is a binary tarball/zip build, the type is omitted. Other "type" possibilities are:
</p>
<ul><li> installer
</li><li> langpack
</li><li> src
</li></ul>
<h3 name="Extension"> Extension </h3>
<p>File-specific extension. Packages which differ only by extension are the same, except for the compression method:
</p>
<ul><li> firefox-1.0PR.en-US.linux-i386.tar.gz
</li><li> firefox-1.0PR.en-US.linux-i386.tar.bz2
</li><li> firefox-1.0PR.en-US.linux-i386.7z
</li></ul>
<p>are all the same package.
</p>
Revert to this revision