mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-11-05 16:04:31 +00:00
a05dbb3dcb
* README: Update cvs tags for gnome-vfs, librsvg, eel.
361 lines
14 KiB
Text
361 lines
14 KiB
Text
This file contains build instructions for Nautilus, the GNOME shell
|
|
and file manager. At some point we probably should move these to
|
|
INSTALL or HACKING and put an explanation of what Nautilus is here in
|
|
README instead.
|
|
|
|
====================
|
|
0: Table of contents
|
|
====================
|
|
|
|
0: Table of contents
|
|
1: Hacking
|
|
2: Introduction
|
|
3: Distribution-specific notes
|
|
4: Compiling
|
|
5: Issues when running Nautilus
|
|
6: Mozilla support
|
|
7: FreeType issues
|
|
|
|
==========
|
|
1: Hacking
|
|
==========
|
|
|
|
If you would like to hack on Nautilus, or have patches, please send
|
|
mail to the Nautilus maintainer: Darin Adler <darin@eazel.com>.
|
|
Patches should also be sent to the Nautilus mailing list:
|
|
<nautilus-list@lists.eazel.com>
|
|
|
|
The HACKING file contains other things you should know when hacking on
|
|
Nautilus and when contributing code. Please, make sure you check the
|
|
coding style document in docs/style-guide.html and other documents
|
|
found in the "docs" directory.
|
|
|
|
===============
|
|
2: Introduction
|
|
===============
|
|
|
|
To build Nautilus without interfering with an existing GNOME install,
|
|
you will need to build several components either from CVS or from
|
|
tarballs into a separate prefix. Detailed instructions on how
|
|
to accomplish this are available in section 4.
|
|
|
|
==============================
|
|
3: Distribution-specific notes
|
|
==============================
|
|
|
|
The following describes the libraries that Nautilus hackers use for
|
|
development and what we have tested with. At the moment, we make no
|
|
guarantees one way or another about whether Nautilus will work with
|
|
other versions.
|
|
|
|
You will also need the library package that is associated with each
|
|
development package, these versions are for Red Hat 6.2 and Debian
|
|
"potato":
|
|
|
|
library Red Hat Debian approx. version
|
|
-------------- ------------------------ ------------------------------ ------------------
|
|
audiofile audiofile-devel-0.1.9-3 libaudiofile-dev (0.1.9-0.1) 0.1.9
|
|
esound esound-0.2.20 ? 0.2
|
|
libc glibc-devel-2.1.3-15 libc6-dev (2.1.3-10) 2.1.3
|
|
libc++ egcs-c++-1.1.2-30 libstdc++2.10-dev (2.95.2-12) 2.9.0, 2.10
|
|
libjpeg libjpeg-devel-6b-10 libjpeg62-dev (6b-1.2) 6b 1.0-1.2
|
|
libpng libpng-devel-1.0.5-3 libpng2-dev (1.0.5-1) 1.0.5
|
|
libtiff libtiff-devel-3.5.4-5 libtiff3g-dev (3.5.4-5) 3.5.4
|
|
libungif libungif-devel-4.1.0-4 libungif3g-dev (3.0-3) 3.0 or 4.1.0
|
|
Xlib XFree86-devel-3.3.6-20 xlib6g-dev (3.3.6-7) 3.3.6
|
|
zlib zlib-devel-1.1.3-6 zlib1g-dev (1.1.3-5) 1.1.3
|
|
freetype2 freetype2-devel-1.0beta8 ? 1.0beta8
|
|
scrollkeeper scrollkeeper-0.1.0-1 ? 0.1.0
|
|
|
|
Other modules for Red Hat users:
|
|
|
|
- For most modules, the versions in Red Hat 6.1 or 6.2 will do (listed above).
|
|
- ORBit requires popt-1.5, which can be fetched from:
|
|
|
|
ftp://ftp.valinux.com/pub/mirrors/redhat/rawhide/i386/RedHat/RPMS/popt-1.5-0.45.i386.rpm
|
|
ftp://ftp.valinux.com/pub/mirrors/redhat/redhat/redhat-6.2/i386/RedHat/RPMS/popt-1.5-0.48.i386.rpm
|
|
|
|
- FreeType packages are available here:
|
|
|
|
http://developer.eazel.com/eazel-hacking/updates/redhat62/freetype2/freetype-2.0.1-4.i386.rpm
|
|
http://developer.eazel.com/eazel-hacking/updates/redhat62/freetype2/freetype-devel-2.0.1-4.i386.rpm
|
|
|
|
- ScrollKeeper source and packages are available here:
|
|
|
|
http://sourceforge.net/project/showfiles.php?group_id=11543
|
|
|
|
Replace "redhat62" with "redhat70" if you are using RedHat Linux 7.0.
|
|
|
|
Other modules for Debian users: using potato, or possibly woody
|
|
|
|
If you need to get a copy of popt from source:
|
|
|
|
CVSROOT=:pserver:anonymous@cvs.rpm.org:/cvs/devel
|
|
The default password is a carriage return. You should do a cvs co popt
|
|
|
|
Which RPM version you need depends on your distribution. If you have
|
|
Red Hat 6.2, you need at least 3.0.4. If you have Red Hat 7.0, you
|
|
need 4.0. Unfortunately, the released rpms from RedHat have bug (a
|
|
header file is missing), so for Red Hat 7.0 you will need the Eazel
|
|
Hacking rpm's for RPM, available from:
|
|
|
|
http://developer.eazel.com/eazel-hacking/updates/redhat70/rpm/
|
|
|
|
=====================
|
|
4: Compiling from cvs
|
|
=====================
|
|
|
|
NOTE: Instructions on compiling from tarballs should be extracted from
|
|
the copy of Nautilus inside the tarball, not here in CVS.
|
|
|
|
Compiling from cvs a lot of work, and some packages may not compile at
|
|
any given moment when you check them out.
|
|
|
|
First, make sure you have installed the packages detailed below. If
|
|
you are running GNOME from binaries (Helix Code or your native
|
|
distribution binaries), please make sure you have installed the
|
|
corresponding development packages. (i.e.: the *-devel packages which
|
|
provide the necessary C header files.
|
|
|
|
Then, make sure you have no old version of the packages nautilus
|
|
depends on on your system. You can check the version of the relevant
|
|
packages by trying to execute "package-config --version" (ie:
|
|
gnome-config --version will report gnome-libs version, gconf-config
|
|
--version will report gconf's version).
|
|
|
|
The following lists the packages and the versions that are required.
|
|
|
|
module branch configure options
|
|
------ ------ -----------------
|
|
popt: <1.5, not from GNOME CVS, see above>
|
|
rpm <see above>
|
|
glib: glib-1-2
|
|
gtk+: gtk-1-2
|
|
imlib: HEAD
|
|
gnome-xml: LIBXML_1_8_10_REAL
|
|
ORBit: orbit-stable-0-5
|
|
gnome-libs: gnome-libs-1-0 --enable-prefer-db1
|
|
gnome-http: HEAD
|
|
xml-i18n-tools: HEAD
|
|
oaf: oaf-stable-0-6
|
|
gconf: gconf-1-0 --disable-debug
|
|
gdk-pixbuf: HEAD --enable-canvas-pixbuf
|
|
gnome-print: GNOME_PRINT_0_25
|
|
control-center control-center-1-0
|
|
gnome-vfs: gnome-vfs-1
|
|
bonobo: HEAD
|
|
medusa: HEAD
|
|
librsvg: librsvg-1-0
|
|
eel: eel-1-0
|
|
nautilus: HEAD
|
|
|
|
One difference between tarball and cvs compilation is that when you
|
|
get stuff from cvs, you don't get a configure script. This script has
|
|
to be generated. This script is usually generated with the help of
|
|
another script available from cvs named "autogen.sh". For those
|
|
interested, "autogen.sh" will run in turn aclocal, automake, autoconf
|
|
and configure. You thus need versions of the GNU tools for the
|
|
following packages:
|
|
|
|
package version command
|
|
------- ------- -------
|
|
automake 1.4 automake --version
|
|
autoconf 2.13 autoconf --version
|
|
|
|
Earlier versions might work but no one has tested them.
|
|
|
|
You will need to create the ${prefix}/share/aclocal directory
|
|
before compiling any package and setup the following environment
|
|
variable:
|
|
|
|
export ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ${prefix}/share/aclocal"
|
|
|
|
We assume you want to install these packages in another prefix than
|
|
/usr since you want to keep a working system. For the following, we
|
|
assume you are installing in /usr/local. ie: ${prefix}=/usr/local
|
|
|
|
Redefine your PATH environment variable:
|
|
export PATH=$PATH:${prefix}/bin
|
|
|
|
Redefine your LD_LIBRARY_PATH environment variable:
|
|
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${prefix}/lib
|
|
|
|
Redefine your GNOME_PATH environment variable:
|
|
|
|
export GNOME_PATH=$GNOME_PATH:${prefix}
|
|
|
|
In the order defined above and with the specific options detailed
|
|
above for each package, you should run the autogen scripts:
|
|
|
|
./autogen.sh --prefix=${prefix} <special-options>
|
|
|
|
Then:
|
|
|
|
make
|
|
|
|
Then get root and:
|
|
|
|
make install.
|
|
|
|
===============================
|
|
5: Issues when running Nautilus
|
|
===============================
|
|
|
|
There's a script named nautilus-clean.sh, at the top level of the
|
|
Nautilus sources. If OAF or GConf changes, you may need to run this
|
|
script to get Nautilus to work properly. One way to invoke it is like
|
|
this:
|
|
|
|
./nautilus-clean.sh -x
|
|
|
|
==================
|
|
6: Mozilla support
|
|
==================
|
|
|
|
Nautilus includes support for browsing HTML content on the local
|
|
computer as well as remote web servers. HTML content is handled by the
|
|
Nautilus Mozilla component. This component can be optionally built
|
|
with Nautilus. It is automatically enabled at configure time if
|
|
Mozilla development libraries are detected on your system.
|
|
|
|
The recommended version of Mozilla for use with Nautilus is 0.9.1.
|
|
|
|
The latest Mozilla packages can be found here:
|
|
|
|
ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla0.9.1/
|
|
|
|
After installing these packages (RPMs for example) you can build Nautilus
|
|
with Mozilla support as follows:
|
|
|
|
cd nautilus
|
|
rm -f config.cache config.status
|
|
./configure
|
|
|
|
The configure script should automatically detect and use the Mozilla
|
|
development libraries.
|
|
|
|
Alternatively, you can build Mozilla from source and use that. Lets
|
|
say that you built Mozilla in /foo/bar. You can build nautilus with
|
|
support for that Mozilla build as follows:
|
|
|
|
cd nautilus
|
|
rm -f config.cache config.status
|
|
./configure --with-mozilla-lib-place=/foo/bar/mozilla/dist/bin
|
|
--with-mozilla-include-place=/foo/bar/mozilla/dist/include
|
|
|
|
NOTE: The above configure command should be issued in one line. It is
|
|
split into two lines in this document for readability.
|
|
|
|
NOTE: If you are building mozilla from source (NOT from the rpm), you
|
|
need to do some environment setup for the Mozilla component:
|
|
|
|
export MOZILLA_FIVE_HOME=/foo/bar/mozilla/dist/bin
|
|
export LD_LIBRARY_PATH=/foo/bar/mozilla/dist/bin:$LD_LIBRARY_PATH
|
|
|
|
If you experience linking problems (e.g. undefined reference to
|
|
`nsString type_info node'), please note that both applications
|
|
(mozilla and nautilus) must be compiled not only with the same version
|
|
of compiler, but also with the same compiler flags. Download the right
|
|
mozilla package for your distribution (see upper).
|
|
|
|
If you have built Mozilla from source, Mozilla by default adds
|
|
CXXFLAGS -fno-rtti and -fno-exceptions or -fno-handle-exceptions
|
|
(depends on gcc version). You have two chances to make things in
|
|
sync:
|
|
|
|
1) Compile mozilla with this .mozconfig script: (You must place it in
|
|
your home directory):
|
|
|
|
# sh
|
|
# Build configuration script
|
|
#
|
|
# See http://www.mozilla.org/build/unix.html for build instructions.
|
|
#
|
|
|
|
# Options for 'configure' (same as command-line options).
|
|
ac_add_options --disable-tests
|
|
ac_add_options --disable-debug
|
|
ac_add_options --enable-strip-libs
|
|
ac_add_options --enable-cpp-rtti
|
|
ac_add_options --disable-mailnews
|
|
ac_add_options --enable-optimize
|
|
|
|
2) Configure mozilla with standard configure script and compile it.
|
|
Before configuring Nautilus set proper CXXFLAGS. For example with
|
|
latest gcc it means:
|
|
|
|
CXXFLAGS='-fno-rtti -fno-exceptions'
|
|
export CXXFLAGS
|
|
|
|
For more, see configure.in in mozilla source. You can save some space
|
|
by disabling RTTI.
|
|
|
|
As an alternative, if you don't want to use the Nautilus web page
|
|
viewer that uses Mozilla, you can disable the Mozilla component (even
|
|
if Mozilla development libraries are installed in your system) as
|
|
follows:
|
|
|
|
./configure --disable-mozilla-component
|
|
|
|
Mike Fleming has written some useful information about common
|
|
Mozilla problems and how to fix them. This information can be
|
|
found in the Nautilus Support FAQ:
|
|
|
|
http://magritte.eazel.com/support/nautilus-faq.html
|
|
|
|
==================
|
|
7: FreeType issues
|
|
==================
|
|
|
|
Nautilus includes support for rendering anti aliased text (smooth
|
|
mode).For smooth mode to work, Nautilus needs to detect and use
|
|
FreeType2 in your system.
|
|
|
|
To learn more about FreeType2, please see:
|
|
|
|
http://freetype.sourceforge.net/
|
|
|
|
If you are using a RedHat 6.x or greater system, then you can easily
|
|
add FreeType2 support by installing the rpms found here:
|
|
|
|
http://developer.eazel.com/eazel-hacking/updates/redhat62/freetype2
|
|
|
|
Replace "redhat62" with "redhat70" if you are using RedHat Linux 7.0.
|
|
|
|
Originally, the Freetype 2 rpm that we used for Nautilus was called "freetype2".
|
|
Now that RedHat 7.1 is is coming around, they have included freetype 2 in their
|
|
distribution. They called the rpm "freetype-2" (Freetype Version 2). Their
|
|
freetype-2 rpm contains both Freetype version 1 and Freetype version 2. In
|
|
order to avoid naming conflicts, we have renamed our freetype2 rpm to freetype-2.
|
|
This will cause problems for people upgrading from our old rpms to our new ones.
|
|
To remove the old rpms,
|
|
|
|
1) su
|
|
<password>
|
|
2) rpm -e --nodeps freetype2 freetype2-devel
|
|
3) Install the new Freetype-2 rpms: rpm -Uvh freetype*2.0.1*.rpm
|
|
|
|
=======================
|
|
8: Scrollkeeper support
|
|
=======================
|
|
|
|
Scrollkeeper is the documentation cataloging system based on document metadata.
|
|
It works with Nautilus to manage the documentation of installed packages
|
|
on your system.
|
|
|
|
Nautilus documentation is set up with metadata needed by Scrollkeeper. In order
|
|
to get the docs fully installed by Scrollkeeper the latest Scrollkeeper has to be
|
|
installed from here:
|
|
|
|
http://sourceforge.net/project/showfiles.php?group_id=11543
|
|
|
|
This is needed for building and for installing Nautilus.
|
|
|
|
The RPM installs below /usr. Scrollkeeper does a pre-install during build. Here it
|
|
doesnt matter where Scrollkeeper is installed.
|
|
|
|
At Nautilus install time Scrollkeeper installs the docs only if the metadata
|
|
is in $prefix/share/omf. This will be correct only if Nautilus and Scrollkeeper
|
|
are installed below the same prefix. If the Nautilus docs are not in the Nautilus
|
|
help sidebar then this did not happen.
|