mozilla

Revision 203668 of Package Filename Convention

  • Revision slug: Package_Filename_Convention
  • Revision title: Package Filename Convention
  • Revision id: 203668
  • Created:
  • Creator: FredChat1
  • Is current revision? Yes
  • Comment

Revision Content

Package File-naming Convention for XUL Toolkit Applications

originally by Benjamin Smedberg <benjamin@smedbergs.us>, 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('-special') }}{{ mediawiki.external('.type') }}.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.

Interwiki Language Links

{{ languages( { "fr": "fr/Convention_de_noms_de_fichiers_pour_les_paquetages" } ) }}

Revision Source

<p><b>Package File-naming Convention for XUL Toolkit Applications</b>
</p><p><i>originally by Benjamin Smedberg &lt;<a class=" link-mailto" href="mailto:benjamin@smedbergs.us" rel="freelink">benjamin@smedbergs.us</a>&gt;, adjusted by Robert kaiser &lt;<a class=" link-mailto" href="mailto:kairo@kairo.at" rel="freelink">kairo@kairo.at</a>&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 id="Convention" name="Convention"> Convention </h3>
<p><var>appname</var>-<var>version</var>.<var>langcode</var>.<var>platform</var>{{ mediawiki.external('-<var>special</var>') }}{{ mediawiki.external('.<var>type</var>') }}.<var>extension</var>
</p>
<h3 id="Appname" 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 id="Version" 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 id="Langcode" 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 id="Platform_.5B-special.5D" 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 id="Type" 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 id="Extension" 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><p><span class="comment">Interwiki Language Links</span>
</p>{{ languages( { "fr": "fr/Convention_de_noms_de_fichiers_pour_les_paquetages" } ) }}
Revert to this revision