root/trunk/llmozlib1/README-linux-linden.txt

Revision 1, 3.3 kB (checked in by rob.linden, 2 years ago)

Initial checkin of 2007-11-01 snapshot

  • Property svn:eol-style set to native
Line 
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.)
Note: See TracBrowser for help on using the browser.