Go to file
Robey Pointer 8efb99a531 Change the download_progress and download_failed signals to pass a
* components/services/install/idl/trilobite-eazel-install.idl:
	* components/services/install/lib/eazel-install-corba-callback.c:
	(impl_download_progress), (impl_download_failed):
	* components/services/install/lib/eazel-install-corba-types.c:
	(corba_packagedatastruct_from_packagedata):
	* components/services/install/lib/eazel-install-object.c:
	(eazel_install_fetch_remote_package_list),
	(eazel_install_emit_download_progress),
	(eazel_install_emit_download_progress_default),
	(eazel_install_emit_download_failed),
	(eazel_install_emit_download_failed_default):
	* components/services/install/lib/eazel-install-protocols.c:
	(http_fetch_remote_file), (ftp_fetch_remote_file),
	(gnome_vfs_xfer_callback), (gnome_vfs_fetch_remote_file),
	(local_fetch_remote_file), (eazel_install_fetch_file),
	(eazel_install_fetch_package):
	* components/services/install/lib/eazel-install-protocols.h:
	* components/services/install/lib/eazel-install-public.h:

	Change the download_progress and download_failed signals to pass a
	PackageData struct (and not a char*) just like every other signal,
	now that we can do that.  Fix a missing bytesize fill-in in one of
	the corba conversion functions.  Also, make the non-slim build use
	the file-rename trick from the bootstrap installer, to ensure that
	uncompleted downloads are never treated like valid package files.

	* components/rpmview/nautilus-rpm-view-install.c:
	(nautilus_rpm_view_download_progress_signal),
	(nautilus_rpm_view_download_failed):
	* components/services/install/command-line/eazel-alt-install-corba.
	c: (eazel_download_progress_signal), (download_failed),
	(something_failed):

	Fix rpm view and command-line install to use the new download
	signal signatures.

	* components/services/install/nautilus-view/nautilus-service-instal
	l-view.c: (nautilus_service_install_downloading),
	(nautilus_service_install_preflight_check),
	(nautilus_service_install_download_failed),
	(nautilus_service_install_installing),
	(nautilus_service_install_done),
	(nautilus_service_install_view_update_from_uri):

	Use the new download signal signatures to draw a nifty progress
	bar for the overall download (where 90% of most users' time will
	be spent in this view).  Scale the progress bar to match the
	package files' expected sizes (softcat bug to be fixed in 1.0).
	Leave the throbber on during the downloads so they can be
	aborted.  Don't offer to erase rpms if the package was already
	installed (and therefore not downloaded).
2001-01-22 09:37:14 +00:00
applets Fix imminent build bustage. Updates for NautilusImage api changes. 2001-01-11 23:48:32 +00:00
components Change the download_progress and download_failed signals to pass a 2001-01-22 09:37:14 +00:00
cut-n-paste-code reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-10 01:32:49 +00:00
data removed added added modified added added added added added added added 2001-01-22 07:26:35 +00:00
docs Some FIXME cleanup. 2001-01-05 02:03:34 +00:00
helper-scripts FIX from the pr2 branch. 2000-11-04 06:22:49 +00:00
helper-utilities reviewed by: Darin Adler <darin@eazel.com> 2000-12-15 22:30:54 +00:00
icons A whole mess of files checked in to add a new color variation 2001-01-22 09:19:55 +00:00
libnautilus reviewed by: John Sullivan <sullivan@eazel.com> 2001-01-18 19:26:03 +00:00
libnautilus-adapter Use NAUTILUS_ADAPTER_FACTORY_IDL' instead of NAUTUILUS_ADAPTER_FACTORY_IDL' in 2000-11-16 17:50:37 +00:00
libnautilus-extensions reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-22 07:33:05 +00:00
libnautilus-private reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-22 07:33:05 +00:00
librsvg reviewed by: Pavel Cisler <pavel@eazel.com> 2000-11-30 00:06:07 +00:00
nautilus-installer Change the bootstrap installer download function to use the new gnome-http 2001-01-19 01:10:48 +00:00
po Updates evolution/po/da.po gal/po/da.po galeon/po/da.po gconf/po/da.po 2001-01-22 05:09:19 +00:00
src reviewed by: <arik@gnome.org> (Wincing) 2001-01-22 05:56:46 +00:00
test reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-19 01:39:57 +00:00
user-guide Fix bug 4619. fdl of nautilus collides with help from gnome-core. This is 2000-11-09 19:10:30 +00:00
.cvsignore reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-21 02:23:49 +00:00
acconfig.h reviewed by: John Sullivan <sullivan@eazel.com> 2001-01-09 02:05:41 +00:00
AUTHORS Updated based on running check-THANKS.pl Fixed some typos in people's 2000-11-13 16:22:19 +00:00
autogen.sh reviewed by: John Sullivan <sullivan@eazel.com> 2001-01-20 02:25:55 +00:00
ChangeLog Change the download_progress and download_failed signals to pass a 2001-01-22 09:37:14 +00:00
ChangeLog-20000414 Added appropriate copyright notices. 2000-04-14 06:40:27 +00:00
ChangeLog-20000625 New script to make sure we're giving credit appropriately - should be run 2000-09-24 17:32:34 +00:00
ChangeLog-20000831 New script to make sure we're giving credit appropriately - should be run 2000-09-24 17:32:34 +00:00
ChangeLog-20001018 xml-i18n-toolized Nautilus (plus a bit of other cleanup) as part 2001-01-05 13:10:51 +00:00
check-config-h.pl Added "." parameter to "find" so it works with non-GNU versions of find. 2000-05-09 00:57:17 +00:00
check-FIXME.pl Remove HAVE_POPT_H define since the bug in OAF that we were working around 2000-11-29 00:24:32 +00:00
check-headers-in-Makefile.pl Ran check-headers-in-Makefile since we had some problems 2000-12-01 02:30:15 +00:00
check-POTFILES.pl reviewed by: John Sullivan <sullivan@eazel.com> 2000-12-19 21:47:03 +00:00
check-signals.pl Wrote a script to check for people who forget to call 2000-08-03 18:40:39 +00:00
check-THANKS.pl reviewed by: John Sullivan <sullivan@eazel.com> 2000-12-19 21:47:03 +00:00
configure.in A whole mess of files checked in to add a new color variation 2001-01-22 09:19:55 +00:00
COPYING.LIB Just adding copyright/license notices, and a copy of the LGPL. 1999-12-07 19:59:42 +00:00
CVSVERSION New file, used to detect whether we are configuring a cvs version or a 2000-08-08 01:36:50 +00:00
HACKING Fixed typo. 2000-10-12 01:45:05 +00:00
MAINTAINERS Changed to the new Nautilus list instead of the old secret list. 2000-04-27 22:54:19 +00:00
Makefile.am reviewed by: Pavel Cisler <pavel@eazel.com> 2001-01-21 02:23:49 +00:00
Makefile.shared Fixed bug 4057 (clicking the back button while opening a huge 2000-10-30 19:22:43 +00:00
nautilus-clean.sh fixed bug 4369, throbber frozen during long refresh, by making the 2001-01-16 03:44:40 +00:00
nautilus-launch-icon.png Fix bug 4155. Nautilus Panel launching icon installed in the wrong place. 2000-10-29 00:28:47 +00:00
nautilus.desktop.in Added new file The desktop file is soon going to be generated. 2001-01-20 21:12:31 +00:00
nautilus.spec.in A whole mess of files checked in to add a new color variation 2001-01-22 09:19:55 +00:00
NEWS reviewed by: Maciej Stachowiak <mjs@eazel.com> 2000-12-29 01:06:28 +00:00
README reviewed by: Maciej Stachowiak <mjs@eazel.com> 2000-12-29 01:06:28 +00:00
RENAMING reviewed by: Rebecca Schulman <rebecka@eazel.com> 2001-01-04 23:30:43 +00:00
RPMs-README Fixed bug 1891 (calling set_title before report_load_underway has 2000-08-11 21:33:11 +00:00
THANKS Updated based on running check-THANKS.pl Fixed some typos in people's 2000-11-13 16:22:19 +00:00
TODO reviewed by: Maciej Stachowiak <mjs@eazel.com> 2000-12-29 01:06:28 +00:00

This file contains build instructions for Nautilus, the GNOME shell
and file manager.

====================
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

Other modules for Red Hat users: either 6.1 or 6.2

        - 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/freetype2/freetype2-1.0beta8-0_eazel_1.i386.rpm
	http://developer.eazel.com/eazel-hacking/updates/freetype2/freetype2-devel-1.0beta8-0_eazel_1.i386.rpm

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

============
4: Compiling
============

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).

        Compiling from tarballs.
        ------------------------
If you are compiling from tarballs, (ie: using released versions of
nautilus and the relevant packages), you want to follow the
instructions below.

The following lists the packages and the versions they should report.

    module             version            configure options       dist.
    ------             ------             -----------------       ----- 
    rpm                <see below>        --enable-eazel-services RH6.2 or higher
    popt:              <1.5, but not from GNOME CVS, see below>   RH6.2
    glib:              1.2.8                                      HC1.2
    gtk+:              1.2.8                                      HC1.2
    imlib:             1.9.8.1                                    HC1.2
    gnome-xml:         1.8.10                                     HC1.2
    ORBit:             0.5.5                                      HC1.2
    gnome-libs:        1.2.7              --enable-prefer-db1     HC1.2
    gnome-http:        1.0.7					  HC1.2
    oaf:               0.6.2 			                  HC1.2
    gconf:             0.11
    gdk-pixbuf:        0.9.0              --enable-canvas-pixbuf  HC1.2
    gnome-print:       0.24					  HC1.2
    control-center     1.2.2					  HC1.2
    gnome-vfs:         HEAD 
    bonobo:            0.26					  HC
    libglade:          0.14				  	  HC1.2
    libunicode:        0.4					  HC
    medusa:            HEAD
    ammonite:          HEAD
    nautilus:          0.2   

RH6.2 == Version from Red Hat 6.2 OK
HC1.2 == Version from Helix Code Gnome 1.2 OK
HC == Helix Code may be from Evolution Preview

If you are running Helix Code's GNOME, you should not need recompile
the packages marked "HC1.2" provided you have installed the
corresponding development packages.

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, you should run the configure scripts with: "./configure
--prefix=${prefix} --special-options" Then, run make; get root and run
make install.

You should get a running nautilus soon after. :)

        Compiling from cvs.
        -------------------
Compiling from cvs usually requires more work and some packages may
not compile. Do so at your own risk!!

The following lists the packages and the versions that are required.

    module             branch             configure options      dist.
    ------             ------             -----------------      -----
    rpm                <see below>       --enable-eazel-services RH6.2 or higher
    popt:              <1.5, but not from GNOME CVS, see below>  RH6.2
    glib:              glib-1-2
    gtk+:              gtk-1-2
    imlib:             HEAD
    gnome-xml:         LIB_XML_1_BRANCH
    ORBit:             orbit-stable-0-5
    gnome-libs:        gnome-libs-1-0     --enable-prefer-db1
    gnome-http:        HEAD
    oaf:               oaf-stable-0-6
    gconf:             gconf-1-0          --disable-debug
    gdk-pixbuf:        HEAD               --enable-canvas-pixbuf
    gnome-print:       HEAD
    control-center     control-center-1-0
    gnome-vfs:         HEAD
    bonobo:            HEAD
    ammonite           HEAD
    xpdf:              HEAD
    medusa:            HEAD
    nautilus:          HEAD

RH6.2 == Version from Red Hat 6.2 OK

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.

Once you have these tools, you need to follow the compilation
instructions detailed above for tarballs but instead of running
"./configure --stuff", you will run "./autogen.sh --stuff". Using this
also requires you 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"

Besides these differences, building from CVS should be otherwise
like building from released packages as described above.

Which RPM version you need depends on your distro. If you have
RedHat6.2, you need at least 3.0.4. If you have RedHat7.0, you need
4.0. Unfortunately, the released rpms from RedHat have bug (a header
file is missing), so for RedHat7.0 you will need the EazelHacking
rpm's for RPM, available from 

	http://developer.eazel.com/eazel-hacking/updates/redhat70/rpm/

===============================
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.

Mozilla M18 is required for the Mozilla component to build.

The easiest way to get the Mozilla development libraries, is to use
Chris Blizzard's Mozilla rpms.  These can be fetched over here:

http://developer.eazel.com/eazel-hacking/updates/mozilla/mozilla-M18-4.i386.rpm
http://developer.eazel.com/eazel-hacking/updates/mozilla/mozilla-devel-M18-4.i386.rpm

After installing these rpms, 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 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

Finally, you can disable the Mozilla component (even if Mozilla
development libraries are installed in your system) as follows:

./configure --disable-mozilla-component

===============================
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/freetype2

We will soon have additional autoconf flags for supporting FreeType2
builds in arbitrary locations.

We will also soon have the equivalent Debian packages.