summaryrefslogtreecommitdiff
path: root/HACKING
blob: 6647b167fef309067fba0c02a14101ae9e6e9b06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
====================
0: Table of Contents
====================

0: Table of Contents
1: Intro
2: Module Listing
3: Distribution Specific Notes
4: m4 macro and aclocal issues
5: Issues When Running Nautilus

========
1: Intro
========

To build Nautilus without interfering with an existing Gnome install,
you will need to build several components from CVS into a separate
prefix.

For example, you could install these components into /usr/local/gnome2
or /usr/local/nautilus. Do do this, make sure to specify these with
the --prefix= option to autogen.sh or configure.

Specifically, you will need to:

* Install all the needed modules into your selected prefix.

NOTE:  more documentation is in docs/

* All patches should go through nautilus-list@lists.eazel.com.

=================
2: Module Listing
=================

NOTE the development libraries in helix gnome 1.2, are not adequate,
you need the versions from CVS. (as of  Wed Jun 14 13:48:35 PDT 2000,
you can use glib, gtk+, imlib, gtk-engine, gnome-xml, gnome-libs from
Helix Gnome ) also modern version of RedHat come with a new popt,

Nautilus currently requires the following modules from GNOME CVS
(built in the given order):

    module             branch             configure options      dist.
    ------             ------             -----------------      -----
    popt:              <1.5, but not from GNOME CVS, see below>  RH6.2
    glib:              glib-1-2                                  HC1.2
    gtk+:              gtk-1-2                                   HC1.2
    imlib:             HEAD                                      HC1.2
    gnome-xml:         LIB_XML_1_X                               HC1.2
    ORBit:             orbit-stable-0-5
    gnome-libs:        gnome-libs-1-0     --enable-prefer-db1    HC1.2
    gnome-http:        HEAD
    oaf:               HEAD
    gconf:             HEAD
    gdk-pixbuf:        HEAD               --enable-canvas-pixbuf
    gnome-print:       GNOME_PRINT_0_20
    control-center     control-center-1-0
    gnome-vfs:         HEAD               --enable-oaf=yes
    bonobo:            HEAD               --enable-oaf=yes
    gtkhtml:           HEAD
    eog:               HEAD               --enable-oaf=yes
    xpdf:              HEAD
    medusa:            HEAD
    nautilus:          HEAD

RH6.2 == Version from Red Hat 6.2 OK
HC1.2 == Version from Helix Code Gnome 1.2 OK

=============================
3: Distribution Specfic Notes
=============================

Other libraries needed:

Here is what has been tested
You will also need the library package that is associated with each development package,
these versions are for RedHat 6.2 and Debian "potato":

library         RedHat                   Debian                          Implied Version
--------------  ----------------------   ------------------------------  ------------------
audiofile       audiofile-devel-0.1.9-3  libaudiofile-dev (0.1.9-0.1)    0.1.9
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
w3c-libwww      w3c-libwww-devel-5.2.8-4 libw3c-libwww-dev (5.2.8-1)     5.2.8
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

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

Other modules for Debian users: using potato, or possibly woody

	- You'll need libwww, which can be found at:

	ftp://ftp.internatif.org/pub/debian/UNOFFICIAL/libw3c-libwww5_5.2.8-1_i386.deb
	ftp://ftp.internatif.org/pub/debian/UNOFFICIAL/libw3c-libwww-dev_5.2.8-1_i386.deb

If you need to get a copy of popt from source: 

	CVSROOT=:pserver:anonymous@cvs.rpm.org:/cvs/devel
	The default passwd is a carriage return.  You should do a cvs co popt

==============================
4: m4 macro and aclocal issues
==============================

m4 macros have issues.  Trying to install multiple versions of them on you system can be very tricky.
While building these libraries you will place following m4 macros into "your prefix"/share/aclocal
directory.  Note you will generally get errors with -I

	glib.m4
	gtk.m4
	imlib.m4
	libIDL.m4
	ORBit.m4
	libart.m4
	gnet.m4
	oaf.m4
	gconf.m4
	gdk-pixbuf.m4

One ugly but functional way to make this work is to symlink your system m4 files into your
First you need to make the directory where they will live.

	mkdir -p "your prefix"/share/aclocal

Then you need to link all the m4 files from your system aclocal directory to the new one.

	for file in `ls /usr/share/alocal/*m4`
	do
		ln -s $file "your prefix"/share/aclocal/
	done
	
Then you want to remove the m4 file for any of the things you are building.

	for link in glib.m4 gtk.m4 imlib.m4 libIDL.m4 ORBit.m4\
		    libart.m4 gnet.m4 oaf.m4 gconf.m4 gdk-pixbuf.m4
	do
		rm "your prefix"/$link
	done
		
* Build and install nautilus into your selected prefix.

===============================
5: Issues When Running Nautilus
===============================

Also, you need to do a "killall oafd; killall gconfd" before
running Nautilus if OAF or GConf changed.

===============================
6: Using the leak checker
===============================

Nautilus is set up to use the libleakcheck.so leak checking libary. To
use it run nautilus with LD_PRELOAD set to the path to the installed
libleakcheck.so libary. For example, if you are using a
bourne-compatible shell, like bash, you can run nautilus this way to
run with leak checking:

LD_PRELOAD=/gnome/libs/libleakcheck.so /gnome/bin/nautilus