canmove, Confirmed users
2,850
edits
ChrisCooper (talk | contribs) No edit summary |
ChrisCooper (talk | contribs) |
||
| Line 70: | Line 70: | ||
== What the Makefiles do, or How to make your own updates == | == What the Makefiles do, or How to make your own updates == | ||
The build system generates update MAR files using the Makefile and associated scripts in the [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging tools/update-packaging] source directory. The Makefile isn't strictly necessary though. It simply formats the calls to the other scripts based on values stored in environment variables, making it easier to automate update generation. | The build system generates update MAR files using the Makefile and associated scripts in the [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging tools/update-packaging] source directory. The Makefile isn't strictly necessary though. It simply formats the calls to the other scripts based on values stored in environment variables, making it easier to automate update generation. | ||
The scripts rely on some tools that normally get built as part of a nightly Firefox build, namely [http://hg.mozilla.org/mozilla-central/file/default/modules/libmar/tool mar] and [http://hg.mozilla.org/mozilla-central/file/default/other-licenses/bsdiff mbsdiff]. You can either builds your own set of tools from the mozilla source, or use a pre-packaged version of the tools for your platform. | |||
These pre-packaged tools were taken from mozilla-central nightly builds on May 17, 2010: | |||
* [http://ftp.mozilla.org/pub/mozilla.org/xulrunner/mar-generation-tools/mar-generation-tools-linux.zip mar-generation-tools-linux.zip] | |||
* [http://ftp.mozilla.org/pub/mozilla.org/xulrunner/mar-generation-tools/mar-generation-tools-macosx.zip mar-generation-tools-macosx.zip] | |||
* [http://ftp.mozilla.org/pub/mozilla.org/xulrunner/mar-generation-tools/mar-generation-tools-win32.zip mar-generation-tools-win32.zip] | |||
=== Creating a complete MAR === | === Creating a complete MAR === | ||
This script used to generate a complete MAR file is [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging/make_full_update.sh make_full_update.sh]. | This script used to generate a complete MAR file is [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging/make_full_update.sh make_full_update.sh]. | ||
Here's a example of how you might use the full update script: | |||
BZIP2=/usr/bin/bzip2 \ | |||
MAR=~/bin/mar \ | |||
/tools/update-packaging/make_full_update.sh \ | |||
dist/update/firefox-3.7a5pre.en-US.linux-i686.complete.mar \ | |||
dist/firefox | |||
* You need to provide the path to your MAR and BZIP2 executables as environment variables. | |||
* The <code>make_full_update.sh</code> will then look in dist/firefox and generate a manifest of the files in that directory. | |||
* That manifest will then be added to the output file specified, in this case dist/update/firefox-3.7a5pre.en-US.linux-i686.complete.mar, along with all the files themselves. | |||
=== Creating a partial MAR === | === Creating a partial MAR === | ||
This script used to generate a partial MAR file is [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging/make_incremental_update.sh make_incremental_update.sh]. | This script used to generate a partial MAR file is [http://hg.mozilla.org/mozilla-central/file/default/tools/update-packaging/make_incremental_update.sh make_incremental_update.sh]. | ||
= Staging environment for nightly updates = | = Staging environment for nightly updates = | ||