Packaging Android host utilities: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "== Packaging Android host utilities == The host utilities are executable files that run on a *host* machine. The utilities provide services to an Android *target* device, in...")
 
Line 18: Line 18:
mv firefox host-utils-37.0a2.en-US.linux-x86_64
mv firefox host-utils-37.0a2.en-US.linux-x86_64
</pre>
</pre>
If preparing a new archive for upload to tooltool:
<pre>
tar cvf host-utils-37.0a2.en-US.linux-x86_64.tar host-utils-37.0a2.en-US.linux-x86_64
gzip host-utils-37.0a2.en-US.linux-x86_64.tar
</pre>
Then upload host-utils-37.0a2.en-US.linux-x86_64.tar.gz to tooltool and update the manifest in testing/config/tooltool-manifests/linux64/hostutils.manifest.
Repeat, using another archive, for 32 bit.


=== Mac OS X ===
=== Mac OS X ===

Revision as of 22:31, 10 August 2016

Packaging Android host utilities

The host utilities are executable files that run on a *host* machine. The utilities provide services to an Android *target* device, including a web server and certificate authority. For historical reason, the host utilities include an essentially complete version of Firefox. Here's how to package new versions of the host utilities.

First, identify the target build. Generally, prefer Aurora channel builds to Nightly channel builds. That usually means fetching target archives from http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/

Linux

Preparing for Linux is dead simple. If you have shell access to people.mozilla.org, use it -- the connection to ftp.mozilla.org is lightning fast.

wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/firefox-37.0a2.en-US.linux-x86_64.tar.bz2
tar jxf firefox-37.0a2.en-US.linux-x86_64.tar.bz2
rm -rf firefox/firefox* firefox/components
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/firefox-37.0a2.en-US.linux-x86_64.tests.zip
unzip firefox-37.0a2.en-US.linux-x86_64.tests.zip "bin/*"
mv bin/* firefox
mv firefox host-utils-37.0a2.en-US.linux-x86_64

If preparing a new archive for upload to tooltool:

tar cvf host-utils-37.0a2.en-US.linux-x86_64.tar host-utils-37.0a2.en-US.linux-x86_64
gzip host-utils-37.0a2.en-US.linux-x86_64.tar

Then upload host-utils-37.0a2.en-US.linux-x86_64.tar.gz to tooltool and update the manifest in testing/config/tooltool-manifests/linux64/hostutils.manifest.

Repeat, using another archive, for 32 bit.

Mac OS X

Preparing for Mac OS X is not quite so simple. Due to changes in the way that Mac OS X codesigns binaries, it's best to do this on a Mac OS X machine so that you can codesign the host utility binaries. If you don't codesign them, you will be prompted every invocation to "allow network connections". See http://apple.stackexchange.com/a/150711 for a discussion of the issue and the codesigning invocation used below. You will be prompted for your password (by sudo), but it's possible super user permissions are not needed.

wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/firefox-37.0a2.en-US.mac.tests.zip
unzip firefox-37.0a2.en-US.linux-x86_64.tests.zip "bin/*"
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/firefox-37.0a2.en-US.mac.dmg
open firefox-37.0a2.en-US.mac.dmg
cp -R /Volumes/FirefoxDeveloperEdition/FirefoxDeveloperEdition.app/Contents/MacOS/* bin
cp -R /Volumes/FirefoxDeveloperEdition/FirefoxDeveloperEdition.app/Contents/Resources/* bin
find bin -type f -perm +111 -print | grep -v \\. | xargs sudo codesign --force --deep --sign -
mv bin host-utils-37.0a2.en-US.mac