Package File-naming Convention for XUL Toolkit Applications
originally by Benjamin Smedberg <[email protected]>, adjusted by Robert kaiser <[email protected]>
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[-special][.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:
- 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);
- the platform of Macintosh (OSX) packages is "mac";
- "linux-gnu" is shortened to linux.
Special is used to distinguish non-default characteristics of the build:
- GTK2 is the default toolkit on linux platforms. If a GTK binary is built, "-gtk1" is appended to the platform;
- 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