| 1 |
This document describes how to get a build of the llmozlib version of |
|---|
| 2 |
Mozilla which is: |
|---|
| 3 |
* Compatible with Second Life |
|---|
| 4 |
* Compatible out-of-the-box with the widest variety of x86 Linux systems |
|---|
| 5 |
as is practical - cross-distribution linux binary compatibility is quite |
|---|
| 6 |
delicate so we conservatively fine-tune Mozilla's wild build dependencies. |
|---|
| 7 |
|
|---|
| 8 |
If you are building apps which entirely rely upon system library versions |
|---|
| 9 |
and thus aren't meant to be portable between Linux distributions, you can |
|---|
| 10 |
skip this document. |
|---|
| 11 |
|
|---|
| 12 |
These steps otherwise need to be completed before moving on to README-linux.txt |
|---|
| 13 |
|
|---|
| 14 |
1. LIBJPEG |
|---|
| 15 |
========== |
|---|
| 16 |
|
|---|
| 17 |
<special instructions no longer applicable> |
|---|
| 18 |
|
|---|
| 19 |
2. GTK AND FRIENDS |
|---|
| 20 |
================== |
|---|
| 21 |
|
|---|
| 22 |
Optional, recommended. |
|---|
| 23 |
|
|---|
| 24 |
A GTK-using app's binary interfaces aren't really backward-compatible in the |
|---|
| 25 |
slightest, which is inconvenient since building on your distro is likely |
|---|
| 26 |
introducing binary dependancies on the latest gee-whiz version of GTK. |
|---|
| 27 |
Thus, we build against an older hand-rolled version of GTK which just about |
|---|
| 28 |
everyone will be run-time compatible with. |
|---|
| 29 |
|
|---|
| 30 |
0a. Get a build of GTK 2.4 and its many dependencies. For Linden, you can |
|---|
| 31 |
check out a recommended tree of prebuilt x86 linux goodness from |
|---|
| 32 |
lindenlib/trunk/GTK-2.4-i686-linux |
|---|
| 33 |
0b. In that GTK tree, edit lib/pkgconfig/*.pc so that every 'prefix=' line |
|---|
| 34 |
points to the absolute location of your GTK-2.4-i686-linux directory - |
|---|
| 35 |
yes this is a pain. |
|---|
| 36 |
1. Edit build_mozilla/linux-checkout_patch_build.sh |
|---|
| 37 |
* Uncomment the export PKG_CONFIG_PATH line |
|---|
| 38 |
* Edit the PKG_CONFIG_PATH to point to the /lib/pkgconfig directory |
|---|
| 39 |
inside your GTK-2.4-i686-linux tree. |
|---|
| 40 |
|
|---|
| 41 |
3. BUILDING |
|---|
| 42 |
=========== |
|---|
| 43 |
|
|---|
| 44 |
Proceed to README-linux.txt to build llmozlib and Mozilla, then come |
|---|
| 45 |
back here to verify that the build is appropriately 'compatible'. |
|---|
| 46 |
|
|---|
| 47 |
4. BASIC TESTS FOR COMPATIBILITY |
|---|
| 48 |
================================ |
|---|
| 49 |
|
|---|
| 50 |
1. strings libraries/i686-linux/runtime_release/libxul.so |grep lib|grep cairo |
|---|
| 51 |
... should return nothing; this demonstrates that you have not accidentally |
|---|
| 52 |
introduced a hard dependancy against cairo (indicating erroneous linking |
|---|
| 53 |
against a fairly recent GTK version). |
|---|
| 54 |
|
|---|
| 55 |
5. USING WITH SECOND LIFE |
|---|
| 56 |
========================= |
|---|
| 57 |
|
|---|
| 58 |
Probably only of interest if you're a Second Life developer! |
|---|
| 59 |
|
|---|
| 60 |
1. copy llmozlib2.h to ${SLSRC}/libraries/include/ |
|---|
| 61 |
2. copy libllmozlib2.a to ${SLSRC}/libraries/i686-linux/lib_release_client/ |
|---|
| 62 |
3. copy libraries/i686-linux/lib_release/libprofdirserviceprovider_s.a to ${SLSRC}/libraries/i686-linux/lib_release_client/ |
|---|
| 63 |
4. copy libraries/i686-linux/runtime_release to ${SLSRC}/indra/newview/app_settings/mozilla-runtime-linux-i686 |
|---|
| 64 |
|
|---|
| 65 |
5. Rebuild Second Life |
|---|
| 66 |
|
|---|
| 67 |
6. TESTING WITH SECOND LIFE |
|---|
| 68 |
=========================== |
|---|
| 69 |
|
|---|
| 70 |
Things to test: |
|---|
| 71 |
1. The HTML Login screen - should work! |
|---|
| 72 |
2. F1 Help |
|---|
| 73 |
3. Sending a postcard should work - if it crashes, it's probably a libjpeg |
|---|
| 74 |
problem (see Section 1.) |
|---|
| 75 |
4. Performing an upload should bring up a working file selector, otherwise it |
|---|
| 76 |
may be a GTK problem (see Second 2.) |
|---|