| 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 |
Linden Lab should NOT NEED TO CHANGE THIS by default, so they can skip this |
|---|
| 18 |
section. |
|---|
| 19 |
|
|---|
| 20 |
We use a specific configuration of x86 libjpeg for Mozilla because, sadly, |
|---|
| 21 |
the libjpeg ABI isn't very stable across distributions. If you want to |
|---|
| 22 |
AVOID this custom build of libjpeg and defer to the system libjpeg, |
|---|
| 23 |
perform these steps: |
|---|
| 24 |
|
|---|
| 25 |
1. Edit build_mozilla/linux-libxul-bits/mozconfig: |
|---|
| 26 |
* remove the 'ac_add_options --with-system-jpeg=...' line |
|---|
| 27 |
|
|---|
| 28 |
2. GTK AND FRIENDS |
|---|
| 29 |
================== |
|---|
| 30 |
|
|---|
| 31 |
Optional, recommended. |
|---|
| 32 |
|
|---|
| 33 |
A GTK-using app's binary interfaces aren't really backward-compatible in the |
|---|
| 34 |
slightest, which is inconvenient since building on your distro is likely |
|---|
| 35 |
introducing binary dependancies on the latest gee-whiz version of GTK. |
|---|
| 36 |
Thus, we build against an older hand-rolled version of GTK which just about |
|---|
| 37 |
everyone will be run-time compatible with. |
|---|
| 38 |
|
|---|
| 39 |
0a. Get a build of GTK 2.4 and its many dependencies. For Linden, you can |
|---|
| 40 |
check out a recommended tree of prebuilt x86 linux goodness from |
|---|
| 41 |
lindenlib/trunk/GTK-2.4-i686-linux |
|---|
| 42 |
0b. In that GTK tree, edit lib/pkgconfig/*.pc so that every 'prefix=' line |
|---|
| 43 |
points to the absolute location of your GTK-2.4-i686-linux directory - |
|---|
| 44 |
yes this is a pain. |
|---|
| 45 |
1. Edit build_mozilla/linux-checkout_patch_build.sh |
|---|
| 46 |
* Uncomment the export PKG_CONFIG_PATH line |
|---|
| 47 |
* Edit the PKG_CONFIG_PATH to point to the /lib/pkgconfig directory |
|---|
| 48 |
inside your GTK-2.4-i686-linux tree. |
|---|
| 49 |
|
|---|
| 50 |
3. BUILDING |
|---|
| 51 |
=========== |
|---|
| 52 |
|
|---|
| 53 |
Proceed to README-linux.txt to build llmozlib and Mozilla, then come |
|---|
| 54 |
back here to verify that the build is appropriately 'compatible'. |
|---|
| 55 |
|
|---|
| 56 |
4. BASIC TESTS FOR COMPATIBILITY |
|---|
| 57 |
================================ |
|---|
| 58 |
|
|---|
| 59 |
1. strings libraries/i686-linux/runtime_release/libxul.so |grep lib|grep cairo |
|---|
| 60 |
... should return nothing; this demonstrates that you have not accidentally |
|---|
| 61 |
introduced a hard dependancy against cairo (indicating erroneous linking |
|---|
| 62 |
against a fairly recent GTK version). |
|---|
| 63 |
|
|---|
| 64 |
5. USING WITH SECOND LIFE |
|---|
| 65 |
========================= |
|---|
| 66 |
|
|---|
| 67 |
Probably only of interest if you're a Second Life developer! |
|---|
| 68 |
|
|---|
| 69 |
1. copy llmozlib.h to ${SLSRC}/libraries/include/ |
|---|
| 70 |
2. copy libllmozlib.a to ${SLSRC}/libraries/i686-linux/lib_release_client/ |
|---|
| 71 |
3. copy libraries/i686-linux/lib_release/libprofdirserviceprovider_s.a to ${SLSRC}/libraries/i686-linux/lib_release_client/ |
|---|
| 72 |
4. copy libraries/i686-linux/runtime_release to ${SLSRC}/indra/newview/app_settings/mozilla-runtime-linux-i686 |
|---|
| 73 |
|
|---|
| 74 |
5. Rebuild Second Life |
|---|
| 75 |
|
|---|
| 76 |
6. TESTING WITH SECOND LIFE |
|---|
| 77 |
=========================== |
|---|
| 78 |
|
|---|
| 79 |
Things to test: |
|---|
| 80 |
1. The HTML Login screen - should work! |
|---|
| 81 |
2. F1 Help |
|---|
| 82 |
3. Sending a postcard should work - if it crashes, it's probably a libjpeg |
|---|
| 83 |
problem (see Section 1.) |
|---|
| 84 |
4. Performing an upload should bring up a working file selector, otherwise it |
|---|
| 85 |
may be a GTK problem (see Second 2.) |
|---|