BLFS‎ > ‎

7. Firefox

created : 2010-02-14   updated : 2010-02-14
 
 
Since Firefox is an actively developing project, the version is changing so fast that the one in BLFS 6.3 is a bit outdated.
BLFS 6.3 is still using Firefox-2.0.0.15.  I decided to move to more recent version of firefox, so I go for the "svn" version of BLFS.
 
Dependency tree :
The dependency tree implies the order of the package to be installed.

(23)Firefox-3.5.2 :
  └(22)Xulrunner-1.9.1.2 :
      ├(01)ALSA Library-1.0.21
      ├(17)GTK+-2.18.5
      │  ├(05)cairo-1.8.8
      │  │    (02)libpng-1.2.39
      │  │    (03)pixman-0.15.20
      │  │    (04)Fontconfig-2.7.3 (cannot use previously installed Fontconfig-2.4.2)
      │  ├(08)Pango-1.26.2
      │  │    (07)GLib-2.22.3
      │  │        (06)PCRE-8.00
      │  ├(09)ATK-1.28.0
      │  ├(10)libjpeg-7
      │  ├(12)LibTIFF-3.8.2
      │  │    (11)freeglut-2.4.0 (may not need, MesaLib-6.5.2 installed)
      │  ├(15)JasPer-1.900.1
      │  │    (13)UnZip-5.52
      │  │    (14)MesaLib-7.6 (may not need, MesaLib-6.5.2 installed)
      │  └(16)hicolor-icon-theme-0.11
      ├(18)libIDL-0.8.13
      ├(08)Pango-1.26.2 (installed above)
      ├(19)Python-2.6.4
      ├(20)Zip-3.0
      └(21)SQLite-3.6.16
 

Note : All packages in this page is assumed to be downloaded in the /blfs/firefox folder.

 


real 7m0.926s
user 0m55.743s
sys 5m49.774s

ALSA Library-1.0.21

Introduction to ALSA Library

The ALSA Library package contains the ALSA library. This is used by programs (including ALSA Utilities) requiring access to the ALSA sound interface.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

ALSA Library Dependencies

Optional

Doxygen-1.5.9 and resmgr

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib

Kernel Configuration

In the Device Drivers ⇒ Sound ⇒ Advanced Linux Sound Architecture section of the kernel configuration, select the settings and drivers appropriate for your hardware. Ensure that the deprecated Device Drivers ⇒ Sound ⇒ Open Sound System is not selected. If necessary, recompile and install your new kernel.

Installation of ALSA Library

Install ALSA Library by running the following commands:

./configure --enable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install &&
install -v -m644 -D doc/asoundrc.txt \
    /usr/share/doc/alsa-lib-1.0.21/asoundrc.txt

If you have Doxygen installed and you wish to build the library API documentation, run the following commands from the top-level directory of the source tree:

make doc

Now, as the root user:

install -v -d -m755 /usr/share/doc/alsa-1.0.21/html &&
install -v -m644 doc/doxygen/html/* /usr/share/doc/alsa-1.0.21/html

Command Explanations

--enable-static: This switch is used to enable building the static library as some programs link against it.

Configuring ALSA Library

Config Files

~/.asoundrc, /etc/asound.conf, /usr/share/alsa/alsa.conf, and /usr/share/alsa/{cards,pcm}/*.conf

Configuration Information

The default alsa.conf is adequate for most installations. For extra functionality and/or advanced control of your sound device, you may need to create additional configuration files. For information on the available configuration parameters, visit http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php.

Contents

Installed Program: aserver
Installed Libraries: libasound.{so,a} and smixer-*.{so,a}
Installed Directories: /usr/include/alsa, /usr/lib/alsa-lib, /usr/share/alsa and /usr/share/doc/alsa-lib-1.0.21

Short Descriptions

aserver

provides the ALSA server.

libasound.{so,a}

provides ALSA functions for application programs.

smixer-*.{so,a}

provides hardware dependent ALSA mixer functions.

Last updated on 2009-09-08 00:55:14 +0000


real    1m52.401s
user    0m15.129s
sys     1m30.206s

libpng-1.2.42

Introduction to libpng

The libpng package contains libraries used by other programs for reading and writing PNG files.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Additional Downloads

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpng

Installation of libpng

Install libpng by running the following commands:

patch -Np1 -i ../libpng-1.2.42-apng-1.patch &&
./configure --prefix=/usr &&
make

To test the results, issue: make check.

Now, as the root user:

make install &&

install -v -m755 -d /usr/share/doc/libpng-1.2.42 &&
install -v -m644    README libpng-1.2.42.txt \
                    /usr/share/doc/libpng-1.2.42

Contents

Installed Programs: libpng-config and libpng12-config
Installed Libraries: libpng.{so,a} and libpng12.{so,a}
Installed Directories: /usr/include/libpng12 and /usr/share/doc/libpng-1.2.42

Short Descriptions

libpng-config

is a symlink to libpng12-config.

libpng12-config

provides configuration information for libpng.

libpng.{so,a} and libpng12.{so,a}

are a collection of routines used to create and manipulate PNG format graphics files. The PNG format was designed as a replacement for GIF and, to a lesser extent, TIFF, with many improvements and extensions and lack of patent problems.

Last updated on 2010-02-14 00:15:12 +0000

 


libpng-1.2.39 (Obsolete, use 1.2.42 above)

Introduction to libpng

The libpng package contains libraries used by other programs for reading and writing PNG files.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Additional Downloads

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libpng

Installation of libpng

Install libpng by running the following commands:

patch -Np1 -i ../libpng-1.2.39-apng-1.patch &&
./configure --prefix=/usr &&
make

To test the results, issue: make check.

Now, as the root user:

make install &&

install -v -m755 -d /usr/share/doc/libpng-1.2.39 &&
install -v -m644    README libpng-1.2.39.txt \
                    /usr/share/doc/libpng-1.2.39

Contents

Installed Programs: libpng-config and libpng12-config
Installed Libraries: libpng.{so,a} and libpng12.{so,a}
Installed Directories: /usr/include/libpng12 and /usr/share/doc/libpng-1.2.39

Short Descriptions

libpng-config

is a symlink to libpng12-config.

libpng12-config

provides configuration information for libpng.

libpng.{so,a} and libpng12.{so,a}

are a collection of routines used to create and manipulate PNG format graphics files. The PNG format was designed as a replacement for GIF and, to a lesser extent, TIFF, with many improvements and extensions and lack of patent problems.

Last updated on 2010-02-14 00:15:12 +0000


real    3m1.022s
user    0m25.986s
sys     2m26.625s

pixman-0.15.20

Introduction to pixman

The pixman package contains a library that provides low-level pixel manipulation features such as image compositing and trapezoid rasterization.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

pixman Dependencies

Optional (required to run the test suite)

GTK+-2.18.5

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pixman

Installation of pixman

Install pixman by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make check. Note that GTK+2 must be installed.

Now, as the root user:

make install

Contents

Installed Programs: None
Installed Library: libpixman-1.{so,a}
Installed Directory: /usr/include/pixman-1

Short Descriptions

libpixman1.{so,a}

contains functions that provide low-level pixel manipulation features.

Last updated on 2009-08-25 05:51:17 +0000



real    2m5.496s
user    0m3.020s
sys     0m19.161s
 

Fontconfig-2.7.3

Introduction to Fontconfig

The Fontconfig package is a library for configuring and customizing font access.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

[Note]

Note

The numbering system of Fontconfig is unusual. The beta versions of the package are numbered with a 9x in the last portion of the release number. This means that 2.6.92 is a beta release and the most current release is of the form 2.7.3

Fontconfig Dependencies

Required

FreeType-2.3.11 and either expat-2.0.1 or libxml2-2.7.6

Optional

DocBook-utils-0.6.14

[Note]

Note

If you have DocBook-utils installed and you remove the --disable-docs parameter from the configure command below, you must have SGMLSpm-1.03ii and JadeTeX-3.13 installed also, or the Fontconfig build will fail.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Fontconfig

Installation of Fontconfig

Install Fontconfig by running the following commands:

./configure --prefix=/usr \
    --sysconfdir=/etc --localstatedir=/var \
    --disable-docs --without-add-fonts \
    --with-docdir=/usr/share/doc/fontconfig-2.7.3 &&
make

To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

--localstatedir=/var: This switch places the system font cache files in /var/cache/fontconfig.

--without-add-fonts: This switch disables the automatic search for X Window System fonts which, if found, may confuse some applications.

--disable-docs: This switch avoids building the documentation (the release tarball includes pre-generated documentation).

--with-docdir=/usr/share/doc/fontconfig-2.7.3: Though this parameter seems counter-intuitive following the preceding parameter to the configure command, it is used so that if the builder removes the --disable-docs parameter, the documentation will be installed in a versioned directory name instead of the default /usr/share/doc/fontconfig.

Configuring Fontconfig

Config Files

/etc/fonts/*, /etc/fonts/conf.avail/*, and /etc/fonts/conf.d/*

Configuration Information

The main configuration file for Fontconfig is /etc/fonts/fonts.conf. Generally you do not want to edit this file. It will also read /etc/fonts/local.conf and any files in /etc/fonts/conf.d. To put a new font directory in the configuration, create (or update) the /etc/fonts/local.conf file with your local information or add a new file in /etc/fonts/conf.d. The default location of fonts in Fontconfig is:

  • /usr/share/fonts

  • ~/.fonts

Fontconfig also ships many example configuration files in the /etc/fonts/conf.avail directory. Symlinking to specific files from /etc/fonts/conf.d will enable them. The default setup is generally good enough for most users. See /etc/fonts/conf.avail/README for a description of the configuration files.

More information about configuring Fontconfig can be found in the user's manual in file:///usr/share/doc/fontconfig-2.7.3/fontconfig-user.html.

Contents

Installed Programs: fc-cache, fc-cat, fc-list, fc-match, fc-query, and fc-scan
Installed Library: libfontconfig.{so,a}
Installed Directories: /etc/fonts, /usr/include/fontconfig, /usr/share/doc/fontconfig-2.7.3 and /var/cache/fontconfig

Short Descriptions

fc-cache

is used to create font information caches.

fc-cat

is used to read font information caches.

fc-list

is used to create font lists.

fc-match

is used to match available fonts, or find fonts that match a given pattern.

fc-query

is used to query fonts files and print resulting patterns.

fc-scan

is used to scan font files and directories, and print resulting patterns.

libfontconfig.{so,a}

contains functions used by the Fontconfig programs and also by other programs to configure or customize font access.

Last updated on 2009-10-21 15:23:33 +0000

 
 


real    4m1.462s
user    0m29.790s
sys     3m15.456s
 

cairo-1.8.8

Introduction to cairo

cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, win32, image buffers, PostScript, PDF and SVG. Experimental backends include OpenGL (through glitz), Quartz and XCB file output. cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (e.g., through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo include stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.).

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

cairo Dependencies

Required

libpng-1.2.39, pixman-0.15.20, and Fontconfig-2.7.3

Recommended

X Window System

Optional

glitz, DirectFB, GTK-Doc-1.11, xcb-util-0.3.6, libspectre, and Valgrind

Optional (to provide extended test suite coverage)

GTK+-2.18.5 (for testing the PDF backend), Poppler-0.12.0 (for testing the PDF backend), and librsvg-2.26.0 (for testing the SVG backend)

Note that the GTK, Poppler and librsvg packages are circular in that using them for test suite coverage requires installing cairo first, then installing the desired package(s), then installing cairo again.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cairo

Installation of cairo

Install cairo by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make check. Note that as many as 29 of the tests are known to fail for unknown reasons. If you do not have a gs binary in your path, many of the 205 tests will fail. Also, to enhance test coverage, the tests should be run with an available X Window screen (e.g. from a local xterm or equivalent window).

Now, as the root user:

make install

Command Explanations

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.

--enable-xcb=yes: Enable the xcb back end.

--disable-static: Prevent static libraries being built and installed.

Contents

Installed Programs: None
Installed Library: libcairo.{so,a}
Installed Directories: /usr/include/cairo and /usr/share/gtk-doc/html/cairo

Short Descriptions

libcairo.{so,a}

contains the 2D graphics functions required for rendering to the various output targets.

Last updated on 2009-08-27 12:54:22 +0000


real    2m28.572s
user    0m29.690s
sys     1m49.515s
 

PCRE-8.00

Introduction to PCRE

The PCRE package contains Perl Compatible Regular Expression libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pcre

Installation of PCRE

Install PCRE by running the following commands:

./configure --prefix=/usr \
            --docdir=/usr/share/doc/pcre-8.00 \
            --enable-utf8 --enable-unicode-properties \
            --enable-pcregrep-libz \
            --enable-pcregrep-libbz2 &&
make

To test the results, issue: make check. Note: The third set of the tests cannot be run if the "fr_FR" locale is missing from the system.

Now, as the root user:

make install

If you reinstall Grep after installing PCRE, Grep will get linked against PCRE and may cause problems if /usr is a separate mount point. To avoid this, either pass the option --disable-perl-regexp when executing ./configure for Grep or move libpcre to /lib as follows.

mv -v /usr/lib/libpcre.so.* /lib/ &&
ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so

Command Explanations

--enable-utf8: This switch includes the code for handling UTF-8 character strings in the library.

--enable-unicode-properties: This switch enables Unicode properties support. Note: You need this switch if you are going to build GLib-2.22.3 with the --with-pcre=system switch.

--enable-pcregrep-libz: This switch adds support to pcregrep to read .gz compressed files.

--enable-pcregrep-libbz2: This switch adds support to pcregrep to read .bz2 compressed files.

--enable-shared --disable-static: This pair of switches prevents the static libraries in this package from being built and installed.

Contents

Installed Programs: pcregrep, pcretest, and pcre-config
Installed Libraries: libpcre.{so,a}, libpcrecpp.{so,a} and libpcreposix.{so,a}
Installed Directory: /usr/share/doc/pcre-8.00

Short Descriptions

pcregrep

is a grep that understands Perl compatible regular expressions.

pcretest

can test a Perl compatible regular expression.

pcre-config

is used during the compile process of programs linking to the PCRE libraries.

Last updated on 2010-01-05 23:47:06 +0000

 

real    10m51.539s
user    1m9.636s
sys     9m0.934s
 

GLib-2.22.3

Introduction to GLib

The GLib package contains a low-level core library. This is useful for providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

GLib Dependencies

Recommended

PCRE-8.00 (built with unicode properties)

Optional

attr-2.4.44, Gamin-0.1.10, and GTK-Doc-1.11

Gamin requires GLib in order to compile; therefore, you must first install GLib, then compile Gamin, and recompile GLib against it.

Optional Runtime Dependency for the gtester-report program

Python-2.6.4

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib2

Installation of GLib

Install GLib by running the following commands:

./configure --prefix=/usr \
            --with-pcre=system &&
make

The GLib test suite requires desktop-file-utils in order to run. However, desktop-file-utils requires GLib in order to compile; therefore, you must first install GLib and then run the test suite.

Now, as the root user:

make install &&
chmod -v 755 /usr/bin/gtester-report

You should now install desktop-file-utils-0.15 and proceed to run the test suite.

To test the results, issue: make check.

Command Explanations

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.

--with-pcre=system: This parameter causes the build to use a system-provided version of the PCRE library instead of an internal version.

--disable-static: prevent static libraries being built and installed.

Configuring GLib

Configuration Information

By default, GLib assumes that all filenames are in the UTF-8 charset. See the Wrong Filename Encoding section of the Locale Related Issues page for more details on this kind of issue. In order to tell GLib and applications that use it that filenames are in the default locale encoding, set the variable G_FILENAME_ENCODING to the value "@locale":

cat > /etc/profile.d/glib2-locale.sh << "EOF"
# Use the current locale charset for filenames
# in applications using GLib
export G_FILENAME_ENCODING=@locale
EOF

Contents

Installed Programs: glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gtester and gtester-report
Installed Libraries: libgio-2.0.so, libglib-2.0.so, libgobject-2.0.so, libgmodule-2.0.so, and libgthread-2.0.so
Installed Directories: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/gio, /usr/lib/glib-2.0, /usr/share/glib-2.0, /usr/share/gtk-doc/html/gio, /usr/share/gtk-doc/html/glib, and /usr/share/gtk-doc/html/gobject

Short Descriptions

glib-genmarshal

is a C code marshaller generation utility for GLib closures.

glib-gettextize

is a variant of the gettext internationalization utility.

glib-mkenums

is a C language enum description generation utility.

gobject-query

is a small utility that draws a tree of types.

GLib libraries

contain a low-level core library for the GIMP Toolkit.

Last updated on 2010-01-01 06:38:02 +0000


real    2m46.664s
user    0m9.333s
sys     1m17.757s
 

Pango-1.26.2

Introduction to Pango

The Pango package contains the libpango libraries. These are useful for the layout and rendering of text.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Pango Dependencies

Required

GLib-2.22.3 and one of cairo-1.8.8 or X Window System or Fontconfig-2.7.3

cairo is not required to build Pango, but it is highly recommended that you install cairo before building Pango. If you don't build Pango with a cairo backend, then GTK+-2 will not build.

Optional

LibThai

Optional (If cairo is Not Installed)

X Window System

Optional (To Rebuild the API Documentation)

GTK-Doc-1.11

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pango

Installation of Pango

Install Pango by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make

To test the results, issue: make check. You can install GTK-Doc-1.11 if you wish to test the documentation section of the test suite. Also, the “testboundries” test could fail if you have LibThai installed.

Now, as the root user:

make install

Command Explanations

--sysconfdir=/etc: This switch installs the configuration files into /etc instead of /usr/etc.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.

--disable-static: This switch prevents the static libraries from being built.

Configuring Pango

Config Files

/etc/pango/pangorc, ~/.pangorc, and the file specified in the environment variable PANGO_RC_FILE

Configuration Information

The Pango module path is specified by the key Pango/ModulesPath in the Pango config database, which is read from the config files listed above.

Contents

Installed Programs: pango-querymodules and pango-view
Installed Libraries: libpango*-1.0.so and Pango loadable modules.
Installed Directories: /etc/pango, /usr/include/pango-1.0, /usr/lib/pango, and /usr/share/gtk-doc/html/pango

Short Descriptions

pango-querymodules

is a module registration utility that collects information about Pango loadable modules.

pango-view

renders a given file through Pango for viewing purposes.

libpango*-1.0.so

contain low level layout rendering routines, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text.

Last updated on 2010-01-01 07:55:42 +0000

 


real    2m11.063s
user    0m2.484s
sys     0m20.605s
 
 

ATK-1.28.0

Introduction to ATK

The ATK package contains the ATK libraries. They are useful for allowing accessibility solutions to be available for all GTK2 applications.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

ATK Dependencies

Required

GLib-2.22.3

Optional

GTK-Doc-1.11

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/atk

Installation of ATK

Install ATK by running the following commands:

./configure --prefix=/usr &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild the API documentation.

--disable-static: This switch prevents the static libraries from being built.

Contents

Installed Programs: None
Installed Library: libatk-1.0.so
Installed Directories: /usr/include/atk-1.0 and /usr/share/gtk-doc/html/atk

Short Descriptions

atklib-1.0.so

contains functions that are used by assistive technologies in order to interact with the desktop and applications.

Last updated on 2009-10-21 16:11:18 +0000


real    2m2.354s
user    0m3.588s
sys     0m18.089s 
 

libjpeg-7

Introduction to libjpeg

The libjpeg package contains libraries that allow compression of image files based on the Joint Photographic Experts Group standard. It is a "lossy" compression algorithm.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libjpeg

Installation of libjpeg

Install libjpeg by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make test.

Now, as the root user:

make install

Contents

Installed Programs: cjpeg, djpeg, jpegtran, rdjpgcom, and wrjpgcom
Installed Library: libjpeg.{so,a}
Installed Directories: None

Short Descriptions

cjpeg

compresses image files to produce a JPEG/JFIF file on the standard output. Currently supported input file formats are: PPM (PBMPLUS color format), PGM (PBMPLUS gray-scale format), BMP, and Targa.

djpeg

decompresses image files from JPEG/JFIF format to either PPM (PBMPLUS color format), PGM (PBMPLUS gray-scale format), BMP, or Targa format.

jpegtran

is used for lossless transformation of JPEG files.

rdjpgcom

displays text comments from within a JPEG file.

wrjpgcom

inserts text comments into a JPEG file.

libjpeg.{so,a}

library is used by many programs for reading and writing JPEG format files.

Last updated on 2010-02-11 22:52:39 +0000

 

real    5m21.520s
user    0m6.784s
sys     0m50.055s
 
 

LibTIFF-3.8.2

Introduction to LibTIFF

The LibTIFF package contains the TIFF libraries and associated utilities. The libraries are used by many programs for reading and writing TIFF files and the utilities are useful for general work with TIFF files.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Additional Downloads

LibTIFF Dependencies

Optional

libjpeg-7, X Window System, and freeglut-2.4.0

Note that if you installed the optional MesaGLUT package with the MesaLib-7.6 package during an Xorg7 installation, a GLUT library is already installed and you don't need freeglut.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libtiff

Installation of LibTIFF

Install LibTIFF by running the following commands:

patch -Np1 -i ../tiff-3.8.2-fixes-2.patch &&
./configure --prefix=/usr &&
make

To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents the static library from being built.

Contents

Installed Programs: bmp2tiff, fax2ps, fax2tiff, gif2tiff, pal2rgb, ppm2tiff, ras2tiff, raw2tiff, rgb2ycbcr, thumbnail, tiff2bw, tiff2pdf, tiff2ps, tiff2rgba, tiffcmp, tiffcp, tiffdither, tiffdump, tiffgt, tiffinfo, tiffmedian, tiffset, and tiffsplit
Installed Libraries: libtiff.{so,a} and libtiffxx.{so,a}
Installed Directory: /usr/share/doc/tiff-3.8.2

Short Descriptions

bmp2tiff

converts a Microsoft Windows Device Independent Bitmap image file to a TIFF image.

fax2ps

converts a TIFF facsimile to compressed PostScript file.

fax2tiff

creates a TIFF Class F fax file from raw fax data.

gif2tiff

creates a TIFF file from a GIF87 format image file.

pal2rgb

converts a palette color TIFF image to a full color image.

ppm2tiff

creates a TIFF file from a PPM image file.

ras2tiff

creates a TIFF file from a Sun rasterfile.

raw2tiff

converts a raw byte sequence into TIFF.

rgb2ycbcr

converts non-YCbCr TIFF images to YCbCr TIFF images.

thumbnail

creates a TIFF file with thumbnail images.

tiff2bw

converts a color TIFF image to grayscale.

tiff2pdf

converts a TIFF image to a PDF document.

tiff2ps

converts a TIFF image to a PostScript file.

tiff2rgba

converts a wide variety of TIFF images into an RGBA TIFF image.

tiffcmp

compares two TIFF files.

tiffcp

copies (and possibly converts) a TIFF file.

tiffdither

converts a grayscale image to bilevel using dithering.

tiffdump

prints verbatim information about TIFF files.

tiffgt

displays an image stored in a TIFF file in an X window.

tiffinfo

prints information about TIFF files.

tiffmedian

applies the median cut algorithm to data in a TIFF file.

tiffset

sets the value of a TIFF header to a specified value.

tiffsplit

splits a multi-image TIFF into single-image TIFF files.

libtiff.{so,a}

contains the API functions used by the libtiff programs as well as other programs to read and write TIFF files.

libtiffxx.{so,a}

contains the C++ API functions used by programs to read and write TIFF files.

Last updated on 2009-07-31 18:10:06 +0000

 

real    0m24.495s
user    0m0.960s
sys     0m3.376s
 

UnZip-6.0

Introduction to UnZip

The UnZip package contains ZIP extraction utilities. These are useful for extracting files from ZIP archives. ZIP archives are created with PKZIP or Info-ZIP utilities, primarily in a DOS environment.

[Caution]

Caution

The previous version of the UnZip package had some locale related issues. Currently there are no BLFS editors capable of testing these local issues. Therefore, the locale related information is left on this page, but has not been tested. Note that the patch recommended for the locale issues will not apply to this version of UnZip. See the discussion below in the section called “UnZip Locale Issues”. A more general discussion of these problems can be found in the Program Assumes Encoding section of the Locale Related Issues page.

Package Information

Additional Downloads

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unzip

UnZip Locale Issues

[Note]

Note

Use of UnZip in the JDK, Mozilla, DocBook or any other BLFS package installation is not a problem, as BLFS instructions never use UnZip to extract a file with non-ASCII characters in the file's name.

The UnZip package assumes that filenames stored in the ZIP archives created on non-Unix systems are encoded in CP850, and that they should be converted to ISO-8859-1 when writing files onto the filesystem. Such assumptions are not always valid. In fact, inside the ZIP archive, filenames are encoded in the DOS codepage that is in use in the relevant country, and the filenames on disk should be in the locale encoding. In MS Windows, the OemToChar() C function (from User32.DLL) does the correct conversion (which is indeed the conversion from CP850 to a superset of ISO-8859-1 if MS Windows is set up to use the US English language), but there is no equivalent in Linux.

When using unzip to unpack a ZIP archive containing non-ASCII filenames, the filenames are damaged because unzip uses improper conversion when any of its encoding assumptions are incorrect. For example, in the ru_RU.KOI8-R locale, conversion of filenames from CP866 to KOI8-R is required, but conversion from CP850 to ISO-8859-1 is done, which produces filenames consisting of undecipherable characters instead of words (the closest equivalent understandable example for English-only users is rot13). There are several ways around this limitation:

1) For unpacking ZIP archives with filenames containing non-ASCII characters, use WinZip while running the Wine Windows emulator.

2) After running unzip, fix the damage made to the filenames using the convmv tool (http://j3e.de/linux/convmv/). The following is an example for the ru_RU.KOI8-R locale:

Step 1. Undo the conversion done by unzip:

convmv -f iso-8859-1 -t cp850 -r --nosmart --notest \
    </path/to/unzipped/files>

Step 2. Do the correct conversion instead:

convmv -f cp866 -t koi8-r -r --nosmart --notest \
    </path/to/unzipped/files>

3) Apply the optional unzip-5.50-alt-iconv-v1.1.patch patch to UnZip. It will apply with some offsets.

It allows to specify the assumed filename encoding in the ZIP archive using the -O charset_name option and the on-disk filename encoding using the -I charset_name option. Defaults: the on-disk filename encoding is the locale encoding, the encoding inside the ZIP archive is guessed according to the builtin table based on the locale encoding. For US English users, this still means that unzip converts from CP850 to ISO-8859-1 by default.

Caveat: this method works only with 8-bit locale encodings, not with UTF-8. Attempting to use a patched unzip in UTF-8 locales may result in a segmentation fault and is probably a security risk.

Installation of UnZip

make -f unix/Makefile linux

To test the results, issue: make check.

Now, as the root user:

make prefix=/usr install

Command Explanations

linux: This target in the Makefile makes assumptions that are useful for a Linux system when compiling the executables. To obtain alternatives to this target, use make list

Contents

Installed Programs: funzip, unzip, unzipfsx, zipgrep, and zipinfo
Installed Libraries: None
Installed Directories: None

Short Descriptions

funzip

allows the output of unzip commands to be redirected.

unzip

lists, tests or extracts files from a ZIP archive.

unzipfsx

is a self-extracting stub that can be prepended to a ZIP archive. Files in this format allow the recipient to decompress the archive without installing UnZip.

zipgrep

searches files in a ZIP archive for lines matching a pattern.

zipinfo

produces technical information about the files in a ZIP archive, including file access permissions, encryption status, type of compression, etc.

libunzip.so

contains the API functions required by the UnZip programs.

Last updated on 2010-02-14 17:46:46 +0000

 

UnZip-5.52 (Obsoleted : use 6.0 above)

Introduction to UnZip

The UnZip package contains ZIP extraction utilities. These are useful for extracting files from ZIP archives. ZIP archives are created with PKZIP or Info-ZIP utilities, primarily in a DOS environment.

[Caution]

Caution

The UnZip package has some locale related issues. See the discussion below in the section called “UnZip Locale Issues”. A more general discussion of these problems can be found in the Program Assumes Encoding section of the Locale Related Issues page.

Package Information

Additional Downloads

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/unzip

UnZip Locale Issues

[Note]

Note

Use of UnZip in the JDK, Mozilla, DocBook or any other BLFS package installation is not a problem, as BLFS instructions never use UnZip to extract a file with non-ASCII characters in the file's name.

The UnZip package assumes that filenames stored in the ZIP archives created on non-Unix systems are encoded in CP850, and that they should be converted to ISO-8859-1 when writing files onto the filesystem. Such assumptions are not always valid. In fact, inside the ZIP archive, filenames are encoded in the DOS codepage that is in use in the relevant country, and the filenames on disk should be in the locale encoding. In MS Windows, the OemToChar() C function (from User32.DLL) does the correct conversion (which is indeed the conversion from CP850 to a superset of ISO-8859-1 if MS Windows is set up to use the US English language), but there is no equivalent in Linux.

When using unzip to unpack a ZIP archive containing non-ASCII filenames, the filenames are damaged because unzip uses improper conversion when any of its encoding assumptions are incorrect. For example, in the ru_RU.KOI8-R locale, conversion of filenames from CP866 to KOI8-R is required, but conversion from CP850 to ISO-8859-1 is done, which produces filenames consisting of undecipherable characters instead of words (the closest equivalent understandable example for English-only users is rot13). There are several ways around this limitation:

1) For unpacking ZIP archives with filenames containing non-ASCII characters, use WinZip while running the Wine Windows emulator.

2) After running unzip, fix the damage made to the filenames using the convmv tool (http://j3e.de/linux/convmv/). The following is an example for the ru_RU.KOI8-R locale:

Step 1. Undo the conversion done by unzip:

convmv -f iso-8859-1 -t cp850 -r --nosmart --notest \
    </path/to/unzipped/files>

Step 2. Do the correct conversion instead:

convmv -f cp866 -t koi8-r -r --nosmart --notest \
    </path/to/unzipped/files>

3) Apply the optional unzip-5.50-alt-iconv-v1.1.patch patch to UnZip. It will apply with some offsets.

It allows to specify the assumed filename encoding in the ZIP archive using the -O charset_name option and the on-disk filename encoding using the -I charset_name option. Defaults: the on-disk filename encoding is the locale encoding, the encoding inside the ZIP archive is guessed according to the builtin table based on the locale encoding. For US English users, this still means that unzip converts from CP850 to ISO-8859-1 by default.

Caveat: this method works only with 8-bit locale encodings, not with UTF-8. Attempting to use a patched unzip in UTF-8 locales may result in a segmentation fault and is probably a security risk.

Installation of UnZip

Note that if you applied the patch described above for locale issues, the first required security patch will have some offsets. Now install UnZip by running the following commands:

patch -Np1 -i ../unzip-5.52-security_fix-1.patch &&
patch -Np1 -i ../unzip-5.52-security_fix-2.patch &&
make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux

To test the results, issue: make check.

Now, as the root user:

make prefix=/usr install

Command Explanations

linux: This target in the Makefile makes assumptions that are useful for a Linux system when compiling the executables. To obtain alternatives to this target, use make list

LOCAL_UNZIP=...: This sets the compilation flags to allow UnZip to handle files up to 4 GB.

Contents

Installed Programs: funzip, unzip, unzipfsx, zipgrep, and zipinfo
Installed Libraries: None
Installed Directories: None

Short Descriptions

funzip

allows the output of unzip commands to be redirected.

unzip

lists, tests or extracts files from a ZIP archive.

unzipfsx

is a self-extracting stub that can be prepended to a ZIP archive. Files in this format allow the recipient to decompress the archive without installing UnZip.

zipgrep

searches files in a ZIP archive for lines matching a pattern.

zipinfo

produces technical information about the files in a ZIP archive, including file access permissions, encryption status, type of compression, etc.

libunzip.so

contains the API functions required by the UnZip programs.

Last updated on 2008-10-13 14:49:44 +0000


real    4m41.401s
user    0m7.060s
sys     0m43.219s
 
 

JasPer-1.900.1

Introduction to JasPer

The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the JPEG-2000 codec.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Additional Downloads

JasPer Dependencies

Required

UnZip-5.52

Recommended

libjpeg-7, X Window System, and MesaLib-7.6 or freeglut-2.4.0

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/jasper

Installation of JasPer

[Note]

Note

The package source is distributed in .zip format and requires unzip, but it has been correctly packaged and will create the jasper-1.900.1 directory when you unzip it.

patch -Np1 -i ../jasper-1.900.1-security_fixes-1.patch &&
./configure --prefix=/usr --enable-shared &&
make

This package does not come with a testsuite.

Now, as the root user:

make install

If you wish to install the PDF files for the Reference Manual and a tutorial on the JPEG-2000 standard, run the following commands as the root user:

install -v -m755 -d /usr/share/doc/jasper-1.900.1 &&
install -v -m644 doc/*.pdf /usr/share/doc/jasper-1.900.1

Command Explanations

--enable-shared: This command causes the shared library to be built.

--disable-static: This causes the static library to not be built.

--x-includes=DIR --x-libraries=DIR: These tell the configure script where to find Xorg if it is not in /usr/X11, /usr/X11R6, or /usr.

Contents

Installed Programs: imgcmp, imginfo, jasper, jiv, and tmrdemo
Installed Library: libjasper.{so,a}
Installed Directories: /usr/include/jasper and /usr/share/doc/jasper-1.900.1

Short Descriptions

imgcmp

compares two images of the same geometry.

imginfo

displays information about an image.

jasper

converts images between formats (BMP, JPS, JPC, JPG, PGX, PNM, MIF, and RAS).

jiv

displays images.

tmrdemo

is a timer demonstration program.

libjasper.{so,a}

a library used by programs for reading and writing JPEG2000 format files.

Last updated on 2009-07-31 18:10:06 +0000


 
real    0m3.272s
user    0m0.096s
sys     0m0.492s
 

hicolor-icon-theme-0.11

Introduction to hicolor-icon-theme

The hicolor-icon-theme package contains a default fallback theme for implementations of the icon theme specification.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/hicolor-icon-theme

Installation of hicolor-icon-theme

Install hicolor-icon-theme by running the following commands:

./configure --prefix=/usr

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: None
Installed Libraries: None
Installed Directory: /usr/share/icons/hicolor

Short Descriptions

/usr/share/icons/hicolor/*

contains icon definitions used as defaults.

Last updated on 2009-10-21 16:34:30 +0000


 
real    36m8.662s
user    0m48.987s
sys     5m33.153s
 

GTK+-2.18.5

Introduction to GTK+

The GTK+ package contains GTK+ libraries. These are useful for creating graphical user interfaces for applications.

Package Information

GTK+ Dependencies

Required

cairo-1.8.8, Pango-1.26.2, and ATK-1.28.0

Recommended

LibTIFF-3.8.2, JasPer-1.900.1, libjpeg-7, and hicolor-icon-theme-0.11

Though not required, the GTK+ developers expect libtiff, libjasper and libjpeg to be installed. Other packages also expect GTK+-2 to be built with support for these graphics packages as well.

Optional

CUPS-1.2.12, DocBook-utils-0.6.14, libbeagle, GTK-Doc-1.11, and Tracker

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gtk+2

Installation of GTK+

Install GTK+ by running the following commands:

./configure --prefix=/usr --sysconfdir=/etc &&
make

To test the results, issue: make check. Note that you must run the tests from a session with X Window Display capability (i.e., not a text-based terminal/console) as the tests attempt to open an X window, and the tests can take an excessively long time.

Now, as the root user:

make install &&
install -v -m755 -d /usr/share/doc/gtk+-2.18.5/{faq,tutorial} &&
cp -v -R docs/faq/html/* /usr/share/doc/gtk+-2.18.5/faq &&
cp -v -R docs/tutorial/html/* /usr/share/doc/gtk+-2.18.5/tutorial &&
install -v -m644 docs/*.txt /usr/share/doc/gtk+-2.18.5

Command Explanations

--sysconfdir=/etc: This switch installs the configuration files into /etc instead of /usr/etc.

--enable-gtk-doc: This switch will rebuild the API documentation during the make command. Ensure you really want to rebuild this documentation (and end up with what is already shipped in the source tree) as it takes a very long time.

--without-libtiff: Use this switch if you don't have libtiff installed.

--without-libjpeg: Use this switch if you don't have libjpeg installed.

--without-libjasper: Use this switch if you don't have libjasper installed.

--disable-static: This switch prevents the static libraries from being built.

Contents

Installed Programs: gdk-pixbuf-csource, gdk-pixbuf-query-loaders, gtk-builder-convert, gtk-demo, gtk-query-immodules-2.0, and gtk-update-icon-cache
Installed Libraries: libgailutil.so, libgdk-x11-2.0.so, libgdk_pixbuf-2.0.so, libgdk_pixbuf_xlib-2.0.so, libgtk-x11-2.0.so, and numerous engine, module, and loader plugins
Installed Directories: /etc/gtk-2.0, /usr/include/gail-1.0, /usr/include/gtk-2.0, /usr/include/gtk-unix-print-2.0, /usr/lib/gtk-2.0, /usr/share/doc/gtk+-2.18.5, /usr/share/gtk-2.0, /usr/share/gtk-doc/html/{gail-libgail-util,gdk,gdk-pixbuf,gtk}, /usr/share/themes/Default/gtk*, /usr/share/themes/Emacs, and /usr/share/themes/Raleigh

Short Descriptions

gdk-pixbuf-csource

generates C code containing images, useful for compiling images directly into programs.

gdk-pixbuf-query-loaders

collects information about loadable modules for gdk-pixbuf and writes it to standard output.

gtk-builder-convert

converts glade files into XML files which can be loaded with GtkBuilder.

gtk-demo

demonstrates GTK+ functionality and provides code for the examples.

gtk-query-immodules-2.0

collects information about loadable input method modules for GTK+ and writes it to standard output.

gtk-update-icon-cache

creates mmap()able cache files for icon themes.

GTK+ Libraries

provide an API to implement graphical user interfaces.

Last updated on 2010-01-02 06:54:21 +0000

 

 
real    1m24.869s
user    0m2.204s
sys     0m12.497s
 

LibIDL-0.8.13

Introduction to LibIDL

The libIDL package contains libraries for Interface Definition Language files. This is a specification for defining portable interfaces.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

LibIDL Dependencies

Required

GLib-2.22.3

Optional to Build Documentation

teTeX-3.0

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libidl

Installation of LibIDL

Install libIDL by running the following commands:

./configure --prefix=/usr &&
make

If you have teTeX installed and wish to build the documentation, issue the following commands:

make pdf &&
make ps &&
makeinfo --plaintext libIDL2.texi >libIDL2.txt

This package does not come with a test suite.

Now, as the root user:

make install

If you built the documentation, issue the following commands as the root user to install it:

install -v -m755 -d /usr/share/doc/libIDL-0.8.13 &&
install -v -m644 libIDL2.{pdf,dvi,ps,txt} README \
    /usr/share/doc/libIDL-0.8.13

Contents

Installed Program: libIDL-config-2
Installed Library: libIDL-2.{so,a}
Installed Directories: /usr/include/libIDL-2.0/libIDL and /usr/share/doc/libIDL-0.8.13

Short Descriptions

libIDL-config-2

determines the compile and linker flags that should be used to compile and link programs that use libIDL-2.

libIDL-2.{so,a}

libraries provide the functions to create and maintain trees of CORBA Interface Definition Language (IDL) files.

Last updated on 2009-08-06 17:06:42 +0000

 


 
real    8m3.615s
user    0m14.897s
sys     1m9.860s
 
 

Python-2.6.4

Introduction to Python

The Python package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Additional Downloads

Optional HTML Documentation

Python Dependencies

Optional

Pth-2.0.7, GCC-4.1.2 (install JAVA for the libffi library) or libffi, and BlueZ

Optional (to create package-specific support modules)

OpenSSL-0.9.8l, Tk-8.5.6, Berkeley DB-4.5.20, and SQLite-3.6.22

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Python

Installation of Python

Install Python by running the following commands:

sed -i "s/ndbm_libs = \[\]/ndbm_libs = ['gdbm', 'gdbm_compat']/" \
     setup.py &&

./configure --prefix=/usr --enable-shared &&
make

To test the results, issue: make test. Note that if you have an existing Python installation which includes the PyXML module, the tests could produce a segmentation fault.

Now, as the root user:

make install

There is no documentation installed using the instructions above. See the Doc/README.txt file in the source distribution for instructions on how to create the html. Alternatively, you can download preformatted documentation from http://docs.python.org/download.html.

In order to use the help ('name_string') feature of the python interpreter with some statements and keywords, you must download (or create) the optional HTML documentation and install it. If you downloaded the HTML docs, issue the following commands as the root user:

install -v -m755 -d /usr/share/doc/Python-2.6.4/html &&
tar --strip-components=1 \
    --no-same-owner \
    --no-same-permissions \
    -C /usr/share/doc/Python-2.6.4/html \
    -xvf ../python-2.6-docs-html.tar.bz2

Command Explanations

sed -i "s/ndbm_libs = ..." setup.py: This command is used to fix a build problem with the GDBM library.

Configuring Python

In order for python to find the installed documentation, you must add the following environment variable to individual user's or the system's profile:

export PYTHONDOCS=/usr/share/doc/Python-2.6.4/html

Contents

Installed Programs: 2to3, pydoc, python, python-config, python2.6, python2.6-config, smtpd.py, and optionally if Tk is installed, idle
Installed Libraries: libpython2.6.so and numerous modules installed in /usr/lib/python2.6/lib-dynload
Installed Directories: /usr/include/python2.6, /usr/lib/python2.6, and /usr/share/doc/python-2.6.4

Short Descriptions

idle

is a wrapper script that opens a Python aware GUI editor.

pydoc

is the Python documentation tool.

python

is an interpreted, interactive, object-oriented programming language.

python2.6

is a version-specific name for the python program.

smtpd.py

is an SMTP proxy implemented in Python.

Last updated on 2010-01-05 23:54:28 +0000

 

 
real    0m38.211s
user    0m1.492s
sys     0m4.584s
 

Zip-3.0

Introduction to Zip

The Zip package contains Zip utilities. These are useful for compressing files into ZIP archives.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/zip

Installation of Zip

Install Zip by running the following commands:

make -f unix/Makefile generic_gcc

This package does not come with a test suite.

Now, as the root user:

make prefix=/usr -f unix/Makefile install

Command Explanations

make prefix=/usr -f unix/Makefile install: This command overrides the prefix variable that is set to /usr/local in the unix/Makefile. Alternatives to generic_gcc can be seen with a make -f unix/Makefile list command.

Contents

Installed Programs: zip, zipcloak, zipnote, and zipsplit
Installed Libraries: None
Installed Directories: None

Short Descriptions

zip

compresses files into a ZIP archive.

zipcloak

is a utility to encrypt and decrypt a ZIP archive.

zipnote

reads or writes comments stored in a ZIP file.

zipsplit

is a utility to split ZIP files into smaller files.

Last updated on 2008-12-31 05:22:14 +0000

 

 
real    2m24.195s
user    0m10.065s
sys     0m14.621s
 

SQLite-3.6.22

Introduction to SQLite

The SQLite package is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.

This package is known to build and work properly using an LFS-6.5 platform.

Package Information

Optional Documentation

http://sqlite.org/sqlite_docs_3_6_22.zip

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sqlite

Installation of SQLite

If you downloaded the optional documentation, issue the following command to install the documentation into the source tree:

unzip -q ../sqlite_docs_3_6_22.zip

Install SQLite by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make test.

Now, as the root user:

make install

If you downloaded the optional documentation, issue the following commands as the root user to install it:

install -v -m755 -d destdir/usr/share/doc/sqlite-3.6.22 &
cp      -v -R       sqlite-3_6_22-docs/* \
                    destdir/usr/share/doc/sqlite-3.6.22

Contents

Installed Program: sqlite3
Installed Library: libsqlite3.{so,a}
Installed Directories: None

Short Descriptions

sqlite3

A terminal-based front-end to the SQLite library that can evaluate queries interactively and display the results.

libsqlite3.{so,a}

Contains the SQLite API functions.

Last updated on 2010-02-15 01:27:35 +0000

 

 
real    81m40.567s
user    2m13.156s
sys     11m3.053s
 

Xulrunner-1.9.1.2

Introduction to Xulrunner

Xulrunner is a runtime environment for XUL applications, and forms the major part of the Mozilla codebase. In particular, it provides the gecko engine together with pkgconfig files so that applications such as Epiphany and Yelp can use it.

Package Information

Note : The actual version I used was 3.5.7 
 http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.5.7/source/firefox-3.5.7.source.tar.bz2

[Tip]

Tip

When a new version of firefox is released, sometimes a corresponding new version of xulrunner appears at the same time. At other times it appears several days later or not at all. So far in the firefox-3.x series, every new release has created xulrunner libraries with a corresponding new version. Whenever a separate xulrunner tarball has been released, it has been bitwise identical to the corresponding firefox tarball. So, we will use the firefox tarball to save downloading this large package twice.

  • Download MD5 sum: 136867f95c86f3988b7f825e874b85de

  • Download size: 45 MB

  • Estimated disk space required: 318 MB (using recommended dependencies)

  • Estimated build time: 11 SBU (using recommended dependencies)

Additional Downloads

Xulrunner Dependencies

Required

ALSA Library-1.0.21 GTK+-2.18.5, libIDL-0.8.13, Pango-1.26.2, Python-2.6.4, and Zip-3.0

Note: libjpeg should have been installed before GTK+ and should exist on your system. If for some reason you haven't installed libjpeg, you should remove the --with-system-jpeg option from the .mozconfig file created below.

Recommended

SQLite-3.6.16 (internal sqlite is incompatable with existing or future installations)

Optional

D-Bus GLib Bindings-0.82, Doxygen-1.5.9, cURL-7.19.7 (only for crash-reporter), GNOME Virtual File System-2.24.2 and libgnomeui-2.24.2 (for gnome integration), little cms-1.18a, libpng-1.2.39 (patched for apng support), NSPR-4.8.2 (recommended if you build any other Mozilla.org packages), NSS-3.12.4 (recommended if you build any other Mozilla.org packages), startup-notification-0.9. UnZip-5.52, Valgrind (only for testing the jemalloc code), and Wget-1.11.4

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xulrunner

Installation of Xulrunner

The configuration of Xulrunner is accomplished by creating a .mozconfig file containing the desired configuration options. A default .mozconfig is created below. To see the entire list of available configuration options (and an abbreviated description of each one), issue ./configure --help. You should review the entire file and comment or uncomment options as necessary. If you would prefer to download the file instead of creating it by typing or cut-and-pasting, you can find it at http://anduin.linuxfromscratch.org/files/BLFS/svn/xulrunner-1.9.1.2-mozconfig (the file must be installed in the root of the source tree mozilla directory, and named .mozconfig).

cat > .mozconfig << "EOF"
# This file contains the options used in the Xulrunner build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.  Be aware that some accepted
# options, such as '--with-system-bz2', do not affect the build.

# specify that we want to build xulrunner
ac_add_options --enable-application=xulrunner

# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../xulrunner-build

# Specify the installation prefix. If you would prefer Xulrunner
# installed in a different prefix, modify the line below to fit
# your needs (the config will always be written to /etc/gre.d)
ac_add_options --prefix=/usr

# apply a minimal level of optimization (-O)
ac_add_options --enable-optimize

# These options are used so that the Xulrunner binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
# With the exception of libsqlite3, the libraries are statically linked.

# (Options to use system installed libraries)
# Using the shipped version of libsqlite3 has been reported to cause
# problems with other applications which were using sqlite3.
# Only comment this line if you know exactly what you are doing!
ac_add_options --enable-system-sqlite

# Comment this only if you want to use whatever patched version of cairo
# is in the shipped mozilla tree, together with the system headers.
ac_add_options --enable-system-cairo

# Comment this if you have not installed lcms.
ac_add_options --enable-system-lcms

# Comment this if you did not build libjpeg before GTK+-2.
ac_add_options --with-system-jpeg

# These two options enable support for building Xulrunner with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Comment them if
# you wish to use the included copies (not recommended).
#ac_add_options --with-system-nspr
#ac_add_options --with-system-nss

# Comment this if you have not built png with the apng patch.
ac_add_options --with-system-png

# The pthreads option is only used when building nspr
# Uncomment this if you build the included nspr.
#ac_add_options --with-pthreads

# zlib is included in LFS. Do not comment this line.
ac_add_options --with-system-zlib

# (Options to disable parts of the package)
# This option is used to disable the a11y support in the Xulrunner
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility

# Uncomment this if you did not build curl.
#ac_add_options --disable-crashreporter

# Comment this if you have built dbus-glib.
ac_add_options --disable-dbus

# Comment this if you have gnome-vfs and libgnomeui, and wish to
# integrate xulrunner into your gnome desktop
ac_add_options --disable-gnomevfs

# This option is added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Xulrunner.
ac_add_options --disable-installer

# If you enable javaxpcom, you must have a java compiler installed.
ac_add_options --disable-javaxpcom

# mochitest often causes problems
ac_add_options --disable-mochitest

# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests

# Disable the updater, which is not appropriate if you build from source
ac_add_options --disable-updater

# (options to add extra parts of the package)
# This option is used to enable source tree included LDAP support in
# the Xulrunner binaries.
###################################################################
#
# NOTE: You must uncomment this option if there is any chance of
# compiling the OpenOffice package from source code using this copy
# of Xulrunner for your Mozilla support.
#
# This has NOT been tested, the current status of OpenOffice
# and xulrunner is unknown! (Remove this comment before release)
#
###################################################################
#ac_add_options --enable-ldap

# Use the anti-phishing measures (a blacklist of sites).
ac_add_options --enable-safe-browsing

# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries (the resulting binaries will be about 7MB
# bigger).
ac_add_options --enable-strip

# Uncomment this option if you desire support for dual-monitor
# display using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama

# This option identifies the default binary directory of the Xulrunner
# installation and is used to locate Xulrunner's installed files. This
# option is is only used for development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/xulrunner-1.9.1.2
ac_add_options --disable-crashreporter
EOF

Note : I added the options --disable-creashreporter

removed the options :

ac_add_options --with-system-nspr
ac_add_options --with-system-nss

 

If you did not install NSPR-4.8.2 and NSS-3.12.4, then apply the patch with the following command:

patch -Np1 -i ../firefox-3.5.2-provide_system_nss_nspr-1.patch
patch -Np1 -i ../firefox-3.5.2-provide_system_nspr_nss-2.patch

Note : I applied the patch even though the version does not match

Compile Xulrunner by issuing the following commands:

sed 's@stable@unstable@' \
    -i xulrunner/installer/mozilla-js.pc.in && 
echo "Requires: nspr" >>xulrunner/installer/libxul-embedding.pc.in &&
make -f client.mk build

This package does not come with a test suite.

Now, as the root user, install the package:

make -f client.mk install &&
mkdir /usr/lib/mozilla &&
ln -sv /usr/lib/xulrunner-1.9.1.7/plugins \
    /usr/lib/mozilla/plugins &&
chown -R root:root /usr/lib/xulrunner-* /usr/bin/xulrunner

Note : changed from 1.9.1.2 to 1.9.1.7

If you've elected to use the included NSPR and NSS, while still the root user, complete the installation with the following commands:

for DL in \
    libnss3.so libnssutil3.so libsmime3.so libssl3.so libsoftokn3.so \
    libplds4.so libplc4.so libnspr4.so
do
    ln -sv xulrunner-1.9.1.7/$DL /usr/lib/$DL
done
Note : changed from 1.9.1.2 to 1.9.1.7

Command Explanations

echo "Requires: nspr" >>xulrunner/installer/libxul-embedding.pc.in : If you try to build Yelp without this, the prtypes header from nspr will not be found. It is arguable whose error this is (the code presumably works on earlier geckos), but this fix is unlikely to cause any damage in other packages.

make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass the configuration settings to the configure command. make uses the client.mk file to get initial configuration and setup parameters, then depending on the target parameter (build or install), either runs the configure script and compiles the package or installs the package.

for DL in ...: The nspr and nss libraries shipped with this package are installed into /usr/lib/xulrunner-1.9.1.2 which means they will not be found at runtime. By using symbolic links from /usr/lib they will be found and we can easily change the links to point to a newer version when we upgrade.

ln -sv /usr/lib/xulrunner-1.9.1.2/plugins /usr/lib/mozilla/plugins: Some packages will install browser plugins into /usr/lib/mozilla/plugins. By creating this as a symlink to the basic plugins we keep them all together.

[Tip]

Tip

When you upgrade xulrunner, remember to update the symlinks and to copy any additional plugins compiled agaisnt this series of xulrunner to the new plugin directory.

Contents

Installed Programs: xulrunner
Installed Libraries: Numerous libraries, browser components, plugins, extensions, and helper modules installed in /usr/lib/xulrunner-1.9.1.2
Installed Directories: /etc/gre.d, /usr/include/xulrunner-1.9.1.2, /usr/lib/xulrunner-1.9.1.2, and /usr/lib/xulrunner-devel-1.9.1.2

Short Descriptions

xulrunner

is a shell script, useful for identifying the version installed.

Last updated on 2009-11-02 00:40:51 +0000

 
 
 

 
 
 
real    3m19.405s
user    0m21.553s
sys     2m13.668s
 
 

Firefox-3.5.2

Introduction to Firefox

Firefox is a stand-alone browser based on the Mozilla codebase.

With the introduction of firefox-3.x, the pkgconfig files for the Gecko engine (and for nss and nspr) are not installed. This means that applications such as Epiphany can no longer be built against firefox, and must instead be built against xulrunner (which is actually the same code, but built in a different way). If you wish to build other packages which use Gecko (for the moment, probably only gnome-2.24 or later versions will recognize xulrunner), build Xulrunner-1.9.1.2 first.

[Tip]

Tip

Firefox is updated frequently as new vulnerabilities are found. Consult mozilla security for details of what is fixed in newer releases. The editors cannot guess what will differ in newer versions: it should be straightforward to upgrade within the same series (3.5), but it is always possible that newer versions will have increased dependencies, or that something using the nss or gecko libraries will break. If you update, begin by updating xulrunner if you use that, then update firefox (ensuring the libxul-sdk option points to the new version).

Package Information

Additional Downloads

Firefox Dependencies

Recommended

Xulrunner-1.9.1.2 which shares all these dependencies, or for a standalone firefox the following Required and Optional dependencies:

Required

ALSA Library-1.0.21, GTK+-2.18.5, libIDL-0.8.13 Pango-1.26.2 Python-2.6.4, and Zip-3.0

Note: libjpeg should have been installed before GTK+ and should exist on your system. If for some reason you haven't installed libjpeg, you should remove the --with-system-jpeg option from the .mozconfig file created below.

Optional

D-Bus GLib Bindings-0.82, Doxygen-1.5.9, cURL-7.19.7 (only for crash-reporter), GNOME Virtual File System-2.24.2 and libgnomeui-2.24.2 (for gnome integration), little cms-1.18a, libpng-1.2.39 (patched for apng support), NSPR-4.8.2, NSS-3.12.4, startup-notification-0.9. SQLite-3.6.16, UnZip-5.52, Valgrind (only for testing the jemalloc code), and Wget-1.11.4

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/firefox

Installation of Firefox

The configuration of Firefox is accomplished by creating a .mozconfig file containing the desired configuration options. A default .mozconfig is created below. To see the entire list of available configuration options (and an abbreviated description of each one), issue ./configure --help. If you are not building against Xulrunner you must comment the 'xulrunner' items. You may also wish to review the entire file and uncomment any other desired options. If you would prefer to download the file instead of creating it by typing or cut-and-pasting, you can find it at http://anduin.linuxfromscratch.org/files/BLFS/svn/firefox-3.5.2-mozconfig (the file must be installed in the root of the source tree mozilla directory, and named .mozconfig). Create the file by issuing the following command:

cat > .mozconfig << "EOF"
# This file contains the options used in the Firefox build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.  Be aware that some accepted
# options, such as '--with-system-bz2', do not affect the build.

# specify that we want to build firefox
ac_add_options --enable-application=browser

# Use the default settings specified in the source tree
. $topsrcdir/browser/config/mozconfig

# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build

# Specify the installation prefix. If you would prefer Xulrunner
# installed in a different prefix, modify the line below to fit
# your needs (the config will always be written to /etc/gre.d)
ac_add_options --prefix=/usr

# apply a minimal level of optimization (-O)
ac_add_options --enable-optimize

# These options are used so that the Xulrunner binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
# With the exception of libsqlite3, the libraries are statically linked.

# (Options to use system installed libraries)
# Using the shipped version of libsqlite3 has been reported to cause
# problems with other applications which were using sqlite3.
# Only comment this line if you know exactly what you are doing!
ac_add_options --enable-system-sqlite

# Comment this only if you want to use whatever patched version of cairo
# is in the shipped mozilla tree, together with the system headers.
ac_add_options --enable-system-cairo

# Comment this if you have not installed lcms.
ac_add_options --enable-system-lcms

# Comment this if you did not build libjpeg before GTK+-2.
ac_add_options --with-system-jpeg

# These two options enable support for building Xulrunner with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Comment them if
# you wish to use the included copies (not recommended).
ac_add_options --with-system-nspr
ac_add_options --with-system-nss

# Comment this if you have not built png with the apng patch.
ac_add_options --with-system-png

# The pthreads option is only used when building nspr
# Uncomment this if you build the included nspr.
#ac_add_options --with-pthreads

# zlib is included in LFS. Do not comment this line.
ac_add_options --with-system-zlib

# (Options to disable parts of the package)
# This option is used to disable the a11y support in the Xulrunner
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility

# Uncomment this if you did not build curl.
ac_add_options --disable-crashreporter

# Comment this if you have built dbus-glib.
ac_add_options --disable-dbus

# Comment this if you have gnome-vfs and libgnomeui, and wish to
# integrate xulrunner into your gnome desktop
ac_add_options --disable-gnomevfs

# This option is added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Xulrunner.
ac_add_options --disable-installer

# If you enable javaxpcom, you must have a java compiler installed.
ac_add_options --disable-javaxpcom

# mochitest often causes problems
ac_add_options --disable-mochitest

# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests

# Disable the updater, which is not appropriate if you build from source
ac_add_options --disable-updater

# (options to add extra parts of the package)
# This option is used to enable source tree included LDAP support in
# the Xulrunner binaries.
###################################################################
#
# NOTE: You must uncomment this option if there is any chance of
# compiling the OpenOffice package from source code using this copy
# of Xulrunner for your Mozilla support.
#
# This has NOT been tested, the current status of OpenOffice
# and xulrunner is unknown! (Remove this comment before release)
#
###################################################################
#ac_add_options --enable-ldap

# This option causes the installed binaries to have the official
# Firefox name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option.  It also
# means you get a popup EULA when you first run firefox.
# If you disable this, the browser will call itself Shiretoki.
ac_add_options --enable-official-branding

# Use the anti-phishing measures (a blacklist of sites).
ac_add_options --enable-safe-browsing

# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries (the resulting binaries will be about 7MB
# bigger).
ac_add_options --enable-strip

# Uncomment this option if you desire support for dual-monitor
# display using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama

# This option identifies the default binary directory of the Xulrunner
# installation and is used to locate Xulrunner's installed files. This
# option is is only used for development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-3.5.2

# Point to the xulrunner libraries - comment these for a standalone browser
ac_add_options --with-system-libxul
ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-1.9.1.7
EOF

 

Note : I uncommented the line --disable-crashreporter

I also changed xulrunner-devel-1.9.1.2 to xulrunner-devel-1.9.1.7

 

If you did not install Xulrunner-1.9.1.2 or NSPR-4.8.2 and NSS-3.12.4, then fix a couple of build errors with the following commands:

patch -Np1 -i ../firefox-3.5.2-provide_system_nss_nspr-1.patch &&
sed 's@stable@unstable@' -i xulrunner/installer/mozilla-js.pc.in 

Compile Firefox by issuing the following commands:

make -f client.mk build

This package does not come with a test suite.

Now, as the root user, install the package:

make -f client.mk install

If you are building firefox on xulrunner, as the root user enter the following symbolic link:

ln -sv /usr/lib/xulrunner-1.9.1.7/plugins \
    /usr/lib/firefox-3.5.7/plugins

Note : changed xulrunner-1.9.1.2 to xulrunner-1.9.1.7 , firefox-3.5.2 to firefox-3.5.7

If you've elected to use the included NSPR and NSS, while still the root user, complete the installation with the following commands:

for DL in \
    libnss3.so libnssutil3.so libsmime3.so libssl3.so libsoftokn3.so \
    libplds4.so libplc4.so libnspr4.so
do
    ln -sv xulrunner-1.9.1.7/$DL /usr/lib/$DL
done
Note : changed xulrunner-1.9.1.2 to xulrunner-1.9.1.7

Command Explanations

make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass the configuration settings to the configure command. make uses the client.mk file to get initial configuration and setup parameters, then depending on the target parameter (build or install), either runs the configure script and compiles the package or installs the package.

ln -sv /usr/lib/xulrunner-1.9.1.2/plugins /usr/lib/firefox-3.5.2/plugins: Firefox looks for plugins in its own directory, but when building on xulrunner the plugins were installed by that package.

[Tip]

Tip

If you upgrade firefox, ensure that any additional plugins are moved to the plugin directory of the new version.

Configuring Firefox

No specific configuration is required as long as the firefox script is in the user's path. If Firefox is installed in a non-standard location, then make a symlink to the firefox script in the /usr/bin directory.

If your Window or Desktop Manager does not allow you to configure a default mail client, you can add a configuration parameter to Firefox so that an email client will start when you click on a mailto: URL. There are two parameters you need to check. The procedure to check or modify any of the configuration parameters is quite simple and the instructions here can be used to view or modify any of the parameters.

First, open the configuration dialog by entering about:config in the address bar. This will display a list of the configuration preferences and information related to each one. You can use the “Filter:” bar to enter search criteria and narrow down the listed items. Changing a preference can be done using two methods. One, if the preference has a boolean value (True/False), simply double-click on the preference to toggle the value and two, for other preferences simply right-click on the desired line, choose “Modify” from the menu and change the value. Creating new preference items is accomplished in the same way, except choose “New” from the menu and provide the desired data into the fields when prompted.

The two configuration preference items you need to check so that Firefox uses a specified default mail client are the network.protocol-handler.external.mailto which should be set to True and the network.protocol-handler.app.mailto which should be set to the path of the desired mail client, e.g., /usr/bin/thunderbird.

[Tip]

Tip

There is a multitude of configuration parameters you can tweak to customize Firefox. A very extensive and up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.

Many applications look for netscape when they need to open a browser. You may wish to make the following symlink for convenience (as the root user).

ln -v -sf firefox /usr/bin/netscape

For installing various Firefox plugins, refer to Mozdev's PluginDoc Project. If you have the JDK-6 Update 18 already installed, create the following link as the root user to utilize the installed Java plugin:

ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
    /usr/lib/firefox-3.5.7/plugins

Note : changed from 3.5.2 to 3.5.7

Some packages install Mozilla plugins into the default system-wide directory /usr/lib/mozilla/plugins. If you have not already done this for Xulrunner create symbolic links in the Firefox plugin directory /usr/lib/firefox-3.5.2/plugins to the files in the default plugin directory (you should link to the actual files and not other links). Alternatively, you can move or copy the files in the default plugin directory to the Firefox plugin directory. An example of creating a symbolic link is shown below. Create the links as the root user:

ln -v -s ../../mozilla/plugins/<plugin.so> \
    /usr/lib/firefox-3.5.7/plugins
Note : changed from 3.5.2 to 3.5.7

Contents

Installed Programs: firefox and firefox-config
Installed Libraries: Numerous libraries, browser components, plugins, extensions, and helper modules installed in /usr/lib/firefox-3.5.2
Installed Directories: /usr/include/firefox-3.5.2, /usr/lib/firefox-3.5.2, and /usr/share/idl/firefox-3.5.2

Short Descriptions

firefox

is a shell script that sets up the environment and calls the firefox-bin binary.

firefox-config

determines the compile and linker flags that should be used to compile and link programs that use Firefox libraries and browser components.

Last updated on 2009-11-02 00:40:51 +0000


 
End
Comments