Changeset aed37975 for xsoft


Ignore:
Timestamp:
03/12/2009 01:37:30 PM (15 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
f40a6e9
Parents:
1db74e9
Message:

Now that firefox2 is no longer supported upstream, move to firefox3. Thanks to the many people who have contributed to this, particularly to Simon Geard who pointed out that firefox can be used to build xulrunner, and to Jack Stone who helped me understand why the nss nd nspr libs need to be symlinked. All errors, are of course, my own. E&OE.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@7804 af4574ff-66df-0310-9fd7-8a98e5e911e0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • xsoft/graphweb/firefox.xml

    r1db74e9 raed37975  
    77  <!ENTITY firefox-download-http "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;-source.tar.bz2">
    88  <!ENTITY firefox-download-ftp  "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;-source.tar.bz2">
    9   <!ENTITY firefox-md5sum        "ef827973830cc6453adf8ca3b88a9c6d">
    10   <!ENTITY firefox-size          "38 MB">
    11   <!ENTITY firefox-buildsize     "574 MB">
    12   <!ENTITY firefox-time          "13 SBU">
     9  <!ENTITY firefox-md5sum        "9875c9237b532009df8e91c3785539a3">
     10  <!ENTITY firefox-size          "35.3 MB">
     11  <!ENTITY firefox-buildsize     "674 MB (stand-alone) or 408MB (on xulrunner)">
     12  <!ENTITY firefox-time          "13.4 SBU (stand-alone) or 0.3 SBU (on xulrunner)">
    1313]>
    1414
     
    3333    based on the <application>Mozilla</application> codebase.</para>
    3434
     35    <para>With the introduction of firefox-3, the <application>pkgconfig</application>
     36    files for the Gecko engine (and for <application>nss</application> and
     37    <application>nspr</application>) are not installed.  This means that applications
     38    such as <application>Epiphany</application> can no longer be built against firefox,
     39    and must instead be built against xulrunner (which is actually the same code, but
     40    built in a different way).  If you wish to build other packages which use Gecko (for
     41    the moment, probably only gnome-2.24 or later versions will recognize xulrunner),
     42    build <xref linkend="xulrunner"/> first.</para>
     43
     44   <tip>
     45    <para>Firefox is updated frequently as new vulnerabilities are found.  Consult
     46    <ulink url="http://www.mozilla.org/security/known-vulnerabilities/">mozilla security</ulink>
     47    for details of what is fixed in newer releases.  The editors cannot guess what
     48    will differ in newer versions: it should be straightforward to upgrade within the
     49    same series (3.0), but it is always possible that newer versions will have increased
     50    dependencies, or that something using the nss or gecko libraries will break.  If you
     51    update, begin by updating <application>xulrunner</application> if you use that, then
     52    update firefox (ensuring the libxul-sdk option points to the new version).</para>
     53   </tip>
     54
    3555    <bridgehead renderas="sect3">Package Information</bridgehead>
    3656    <itemizedlist spacing="compact">
     
    5777    <bridgehead renderas="sect3">Firefox Dependencies</bridgehead>
    5878
     79    <bridgehead renderas="sect4">Recommended</bridgehead>
     80    <para role="optional"><xref linkend="xulrunner"/> which shares all these
     81    dependencies, or for a standalone firefox the following Required and
     82    Optional dependencies:</para>
     83
    5984    <bridgehead renderas="sect4">Required</bridgehead>
    6085    <para role="required"><xref linkend="gtk2"/>,
    61     <xref linkend="libidl"/>, and
     86    <xref linkend="libidl"/>
     87    <xref linkend="pango"/>
     88    <xref linkend="python"/>, and
    6289    <xref linkend="zip"/></para>
    6390
     
    6895    <filename>.mozconfig</filename> file created below.</para>
    6996
    70     <bridgehead renderas="sect4">Recommended</bridgehead>
    71     <para role="recommended"><xref linkend="nss"/>(if you will be installing
    72     any other package that utilizes NSS/NSPR, such as
    73     <application>Thunderbird</application>,
    74     <application>SeaMonkey</application>,
    75     <application>Evolution</application>, or
    76     <application>OpenOffice</application>)</para>
    77 
    7897    <bridgehead renderas="sect4">Optional</bridgehead>
    79     <para role="optional"><xref linkend="unzip"/> and
    80     <xref linkend="libgnomeui"/> (to build the gnomevfs extension)</para>
     98    <para role="optional"><xref linkend="dbus-glib"/>,
     99    <xref linkend="doxygen"/>,
     100    <xref linkend="curl"/> (only for crash-reporter),
     101    <xref linkend="gnome-vfs"/> and <xref linkend="libgnomeui"/>
     102    (for gnome integration),
     103    <xref linkend="lcms"/>,
     104    <xref linkend="libpng"/> (patched for apng support),
     105    <ulink url="http://sqlite.org/">SQLite</ulink>,
     106    <xref linkend="startup-notification"/>.
     107    <xref linkend="unzip"/>,
     108    <ulink url="http://www.valgrind.org/">Valgrind</ulink> (only for testing the
     109    jemalloc code), and
     110    <xref linkend="wget"/></para>
    81111
    82112    <para condition="html" role="usernotes">User Notes:
     
    101131    <application>Mozilla</application> source, ensure you uncomment the
    102132    <option>--enable-ldap</option> option in the file created below.
     133    If you are building against <application>Xulrunner</application> you
     134    must uncomment the 'xulrunner' item.
    103135    You may also wish to review the entire file and uncomment any other desired
    104136    options. If you would prefer to download the file instead of creating it by
     
    111143
    112144<screen><?dbfo keep-together="auto"?><userinput>cat &gt; .mozconfig &lt;&lt; "EOF"
    113 <literal># This file contains the options used in the Firefox build. You may
    114 # need to specify additional options for your specific build needs.
     145<literal># This file contains the options used to build firefox on top
     146# of xulrunner. If you do not wish to build xulrunner, make the changes
     147# noted for a 'standalone browser'. You may need to specify additional
     148# options for your specific build needs (if you are building 'standalone')
    115149# Use the information provided by running './configure --help' to
    116150# help you determine if you need to add any additional options.
     
    119153# 'ac_add_options --some-option-you-need'.
    120154
     155# build the browser
     156ac_add_options --enable-application=browser
    121157
    122158# Use the default settings specified in the source tree
     
    131167# Specify the installation prefix. If you would prefer Firefox
    132168# installed in a different prefix, modify the line below to fit
    133 # your needs. You'll also need to modify some of the instructions in
     169# your needs. You may also need to modify some of the instructions in
    134170# the BLFS book to point to your desired prefix.
    135171ac_add_options --prefix=/usr
    136172
    137 # These options are used so that the Firefox binaries are linked to
    138 # the system-installed copies of the specified libraries instead of
    139 # the source tree code which may not be the most recent versions.
     173# Compile with a minimal level of optimization
     174ac_add_options --enable-optimize
     175
     176# (the --enable-system options)
     177# comment this if you want to use whatever patched version of cairo
     178# is in the shipped mozilla tree, together with the system headers
     179ac_add_options --enable-system-cairo
     180
     181# comment this if you have not installed lcms - firefox will use
     182# its own copy
     183ac_add_options --enable-system-lcms
     184
     185# comment this if you have not installed sqlite, firefox will use
     186# its own old copy
     187ac_add_options --enable-system-sqlite
     188
     189# (the --with-system options)
     190# comment this if you did not build libjpeg before gtk+-2
     191ac_add_options --with-system-jpeg
     192
     193# These two options enable support for building Firefox with
     194# system-installed versions of the Network Security Services (NSS)
     195# and Netscape Portable Runtime (NSPR) libraries. We build these
     196# as part of xulrunner, so we can use them here.  For a standalone
     197# firefox you might want to comment these.
     198ac_add_options --with-system-nspr
     199ac_add_options --with-system-nss
     200
     201# comment this if you have not installed png with the apng patch
     202ac_add_options --with-system-png
     203
     204# uncomment this if you are building nspr as part of firefox
     205#ac_add_options --with-pthreads
     206
     207# zlib is in LFS
    140208ac_add_options --with-system-zlib
    141 ac_add_options --with-system-png
    142 ac_add_options --with-system-jpeg
    143 ac_add_options --enable-system-cairo
    144 
    145 # This option causes the installed binaries to have the official
    146 # Firefox name embedded in them. Due to license restrictions, you
    147 # may not distribute binaries created using this option.
    148 ac_add_options --enable-official-branding
    149 
    150 # This option is used to enable support for rendering SVG files in the
    151 # Firefox browser. Comment out the line to disable the option.
    152 ac_add_options --enable-svg
    153 
    154 # This option is used so that the debugging symbols are removed from
    155 # the installed binaries during the installation process. Comment out
    156 # this option if you may have a need to retain the debugging symbols
    157 # in the installed binaries. Note that this can substantially
    158 # increase the size of the installed binaries.
    159 ac_add_options --enable-strip
    160 
    161 # This option is added so that test libraries and programs are not
    162 # built. These would only be required for debugging purposes.
    163 ac_add_options --disable-tests
     209
     210# (options to disable parts of the package)
     211# This option is used to disable the a11y support in the Firefox
     212# binaries. Comment out this option if you require a11y support.
     213ac_add_options --disable-accessibility
     214
     215# uncomment this if you did not build curl
     216#ac_add_options --disable-crashreporter
     217
     218# comment this if you have built dbus-glib
     219ac_add_options --disable-dbus
     220
     221# comment this if you have gnome-vfs and libgnomeui, and wish to
     222# integrate firefox into your gnome desktop
     223ac_add_options --disable-gnomevfs
    164224
    165225# This option is added so that the Mozilla Installer program is not
     
    168228ac_add_options --disable-installer
    169229
    170 # This option is used to disable the a11y support in the Firefox
    171 # binaries. Comment out this option if you require a11y support.
    172 ac_add_options --disable-accessibility
    173 
     230# The mochitest is a separate test feature and has caused problems
     231# in the past.
     232ac_add_options --disable-mochitest
     233
     234# This option is added so that test libraries and programs are not
     235# built. These would only be required for debugging purposes.
     236ac_add_options --disable-tests
     237
     238# The updater is not useful if you build from source.
     239ac_add_options --disable-updater
     240
     241# (options to add extra parts of the package)
    174242# This option is used to enable source tree included LDAP support in
    175243# the Firefox binaries.
     
    179247# compiling the OpenOffice package from source code using this copy
    180248# of Firefox for your Mozilla support.
     249# This has NOT been tested, current versions of OpenOffice are
     250# assumed not to compile agaisnt this version of xulrunner!
    181251#
    182252###################################################################
    183253#ac_add_options --enable-ldap
    184254
     255# This option causes the installed binaries to have the official
     256# Firefox name embedded in them. Due to license restrictions, you
     257# may not distribute binaries created using this option.  It also
     258# means you get a popup EULA when you first run firefox.
     259# If you disable this, the browser will call itself Minefield.
     260ac_add_options --enable-official-branding
     261
     262# use the anti-phishing blacklist
     263ac_add_options --enable-safe-browsing
     264
     265# This option is used so that the debugging symbols are removed from
     266# the installed binaries during the installation process. Comment out
     267# this option if you may have a need to retain the debugging symbols
     268# in the installed binaries (the resulting binaries will be about 7MB
     269# bigger).
     270ac_add_options --enable-strip
     271
    185272# Uncomment this option if you desire support for dual-monitor
    186273# display of Firefox using the X-Window Xinerama libraries.
    187274#ac_add_options --enable-xinerama
    188275
    189 # These two options enable support for building Firefox with
    190 # system-installed versions of the Network Security Services (NSS)
    191 # and Netscape Portable Runtime (NSPR) libraries. Uncomment both
    192 # lines to enable support for system-installed NSS/NSPR.
    193 #ac_add_options --with-system-nss
    194 #ac_add_options --with-system-nspr
    195 
    196 # Complex scripts such as Thai can only be rendered in Firefox with the
    197 # help of Pango. This option significantly slows rendering, so only use
    198 # it if necessary.
    199 #ac_add_options --enable-pango
    200 
     276# ('with' options)
    201277# This option identifies the default binary directory of the Firefox
    202278# installation and is used to locate Firefox's installed files. This
     
    205281#ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-&firefox-version;</literal>
    206282
     283# Point to the xulrunner libraries - comment this for a standalone browser
     284ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-&xulrunner-version;
     285
    207286EOF</userinput></screen>
    208287
     
    210289    following commands:</para>
    211290
    212 <screen><userinput>cat &gt;&gt; layout/build/Makefile.in &lt;&lt; "EOF" &amp;&amp;
    213 ifdef MOZ_ENABLE_CANVAS
    214 EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender
    215 endif
    216 EOF
    217 
    218 sed -i "s/^    enum$/&amp; xptinfo_enum_1/" \
    219     xpcom/reflect/xptinfo/public/xptinfo.h &amp;&amp;
    220 
    221 make -f client.mk build</userinput></screen>
     291<screen><userinput>make -f client.mk build</userinput></screen>
    222292
    223293    <para>This package does not come with a test suite.</para>
     
    226296    install the package:</para>
    227297
    228 <screen role="root"><userinput>make -f client.mk install &amp;&amp;
    229 
    230 install -v -m755 -d /usr/lib/firefox-&firefox-version;/chrome/icons/default &amp;&amp;
    231 ln -v -s ../../../icons/default.xpm \
    232     /usr/lib/firefox-&firefox-version;/chrome/icons/default &amp;&amp;
    233 
    234 chown -v -R root:root \
    235     /usr/lib/firefox-&firefox-version;/extensions/inspector@mozilla.org/*</userinput></screen>
    236 
    237     <para>If you enabled LDAP support in the <application>Firefox</application>
    238     build, install some additional interface headers as the
    239     <systemitem class="username">root</systemitem> user:</para>
    240 
    241 <screen role="root"><userinput>install -v -m644 ../firefox-build/dist/public/ldap-private/* \
    242     /usr/include/firefox-&firefox-version;/ldap</userinput></screen>
    243 
    244     <para>If you built <application>Firefox</application> utilizing
    245     system-installed NSS and NSPR libraries, the
    246     <filename>firefox-ns*.pc</filename> <application>pkgconfig</application>
    247     files are broken as they point to the wrong directories where the actual
    248     libraries and interface headers are located. Issue the following commands
    249     as the <systemitem class="username">root</systemitem> user to replace the
    250     broken files with symbolic links to known good files:</para>
    251 
    252 <screen role="root"><userinput>ln -v -sf nss.pc /usr/lib/pkgconfig/firefox-nss.pc &amp;&amp;
    253 ln -v -sf nspr.pc /usr/lib/pkgconfig/firefox-nspr.pc</userinput></screen>
    254 
    255     <para>If you did <emphasis role="strong">NOT</emphasis> build
    256     <application>Firefox</application> utilizing system-installed NSS and
    257     NSPR libraries, issue the following commands as the
    258     <systemitem class="username">root</systemitem> user to install the NSS
    259     interface headers:</para>
    260 
    261 <screen role="root"><userinput>install -v -m755 -d /usr/include/firefox-&firefox-version;/nss &amp;&amp;
    262 cp -v -Lf ../firefox-build/dist/{private,public}/nss/*.h \
    263     /usr/include/firefox-&firefox-version;/nss</userinput></screen>
    264 
    265     <note>
    266       <para>You should run <command>/usr/bin/firefox</command> once as the
    267       <systemitem class="username">root</systemitem> user (or any user with
    268       write privileges) to create some necessary additional files in the
    269       <filename class='directory'>/usr</filename> hierarchy.</para>
    270     </note>
     298<screen role="root"><userinput>make -f client.mk install</userinput></screen>
     299
     300    <para>If you are building firefox on xulrunner, as the
     301    <systemitem class="username">root</systemitem> user enter the following
     302    symbolic link:</para>
     303
     304<screen role="root"><userinput>ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins
     305 /usr/lib/firefox-$firefox-version;/plugins</userinput></screen>
    271306
    272307  </sect2>
     
    274309  <sect2 role="commands">
    275310    <title>Command Explanations</title>
    276 
    277     <para><command>'EXTRA_DSO_LDOPTS' += -lX11 -lXrender ...</command>:
    278     Building the layout backend will break when the canvas element is enabled
    279     without adding these two required libraries.</para>
    280 
    281     <para><command>sed -i "s/^    enum$/&amp; xptinfo_enum_1/" ...</command>:
    282     This command is used to fix an anonymous enum in an external/public
    283     interface header file.</para>
    284311
    285312    <para><command>make -f client.mk ...</command>: Mozilla products are
     
    293320    the package.</para>
    294321
    295     <para><command>install -v -m755 -d .../chrome/icons/default</command> and
     322    <!--<para><command>install -v -m755 -d .../chrome/icons/default</command> and
    296323    <command>ln -v -s ../../../icons/default.xpm ...</command>: These two
    297324    commands are used to create a symlink in the required directory so that
    298325    the proper icon is displayed in the taskbar and when
    299     <application>Firefox</application> windows are minimized.</para>
    300 
    301     <para><command>chown -v -R root:root ...</command>: This command changes
    302     the ownership of some installed files to more appropriate user:group
    303     names.</para>
     326    <application>Firefox</application> windows are minimized.</para> -->
     327
     328    <para><command>ln -s /usr/lib/xulrunner-&xulrunner-version;/plugins
     329    /usr/lib/firefox-$firefox-version;/plugins</command>:
     330    <application>Firefox</application> looks for plugins in its own directory,
     331    but when building on <application>xulrunner</application> the plugins were
     332    installed by that package.</para>
     333
     334   <tip>
     335    <para>If you upgrade firefox, ensure that any additional plugins are moved to
     336    the plugin directory of the new version.</para>
     337   </tip>
    304338
    305339  </sect2>
     
    370404    <para>Some packages install Mozilla plugins into the default system-wide
    371405    directory <filename class='directory'>/usr/lib/mozilla/plugins</filename>.
    372     If desired, create symbolic links in the <application>Firefox</application>
     406    If you have not already done this for <application>Xulrunner</application>
     407    create symbolic links in the <application>Firefox</application>
    373408    plugin directory
    374409    <filename class='directory'>/usr/lib/firefox-&firefox-version;/plugins</filename>
Note: See TracChangeset for help on using the changeset viewer.