nautilus/HACKING
Darin Adler a93b99aba5 Removed a bunch of incorrect calls to bonobo_object_unref. An error in the
* components/hardware/nautilus-hardware-view.c:
	(nautilus_hardware_view_destroy):
	* components/loser/content/nautilus-content-loser.c:
	(nautilus_content_loser_destroy):
	* components/loser/sidebar/nautilus-sidebar-loser.c:
	(nautilus_sidebar_loser_destroy):
	* components/mozilla/nautilus-mozilla-content-view.c:
	(nautilus_mozilla_content_view_destroy):
	* components/music/nautilus-music-view.c:
	(nautilus_music_view_destroy):
	* components/rpmview/nautilus-rpm-view.c:
	(nautilus_rpm_view_destroy):
	* components/sample/nautilus-sample-content-view.c:
	(nautilus_sample_content_view_destroy):
	* components/services/time/nautilus-view/trilobite-eazel-time-view.c:
	(trilobite_eazel_time_view_destroy):
	* components/tree/nautilus-tree-view.c:
	(nautilus_tree_view_destroy):
	Removed a bunch of incorrect calls to bonobo_object_unref.
	An error in the sample can be an insidious thing.

	* components/tree/main.c: (tree_object_destroyed),
	(tree_make_object), (main): Removed some stray debugging stuff.

	* libnautilus-extensions/Makefile.am: Got rid of the grid
	* libnautilus-extensions/nautilus-icon-private.h: Got rid of the
	grid.
	* libnautilus-extensions/nautilus-icon-container.c:
	(keyboard_icon_reveal_timeout_callback): Took out unneeded use of
	thread locking macros. Maybe someday I'll regret this, but we can
	add them back then.
	(get_all_icon_bounds): Added shared function.
	(update_scroll_region): Renamed set_scroll_region and made it use
	the shared function. Also got rid of grid code.
	(resort): Got rid of grid code.
	(lay_down_icons): Got rid of grid code.
	(relayout): Made it lay down new icons before doing any layout
	work. Also made sure it doesn't do the resort while stretching.
	(reload_icon_positions): Got rid of grid code.
	(rubberband_select): Got rid of grid code. This was the one place
	that it might have made things a little faster but probably not
	due to the complexity of what it was doing.
	(rubberband_timeout_callback): Took out unneeded use of thread
	locking macros. Maybe someday I'll regret this, but we can add
	them back then.
	(destroy): Got rid of grid code.
	(world_width_changed): Got rid of grid code.
	(nautilus_icon_container_initialize): Got rid of grid code and
	an extra idle cycle that wasn't needed.
	(nautilus_icon_container_clear): Got rid of grid code and added
	code to update the scroll region on clear.
	(icon_destroy): Got rid of grid code.
	(assign_icon_position), (finish_adding_icon),
	(finish_adding_new_icons), (finish_adding_new_icons_callback),
	(nautilus_icon_container_add): Replaced old idle code with
	something specific to adding new icons. This does the proper
	layout for manual as well as automatic layout cases.

	* libnautilus-extensions/nautilus-background.h:
	* libnautilus-extensions/nautilus-background.c:
	(nautilus_background_initialize_class): Made two signals instead
	of one. One for when the background's settings change and another
	for when the appearance changes.
	(nautilus_background_set_color): Emit both signals.
	(load_image_callback): Emit only the appearance change signal.
	(nautilus_background_set_tile_image_uri): Emit both signals.
	(nautilus_get_widget_background): Connect to the
	appearance_changed signal.
	* libnautilus-extensions/nautilus-directory-background.c:
	(nautilus_connect_background_to_directory_metadata):
	Connect to the settings_changed signal.
	* src/file-manager/fm-directory-view.c:
	(fm_directory_view_real_merge_menus): Connect to the
	settings_changed signal.
	* src/nautilus-sidebar.c: (nautilus_sidebar_update_info): Connect
	to the appearance_changed signal.
	* components/music/nautilus-music-view.c:
	(nautilus_music_view_set_up_background): Connect to the
	settings_changed signal.

	* HACKING: Gratuitious reformatting.
	* RENAMING: Added notes about how we do renaming, at the request
	of one of the hackers.

	* nautilus-clean.sh: Added nautilus-tree-view to the things that
	are killed, and made gratuitous changes to the script.
2000-06-27 00:52:50 +00:00

173 lines
6.1 KiB
Plaintext

====================
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/
=================
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: HEAD
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, GConf, or any of the .oafinfo files
in any module changed.
* All patches should go through nautilus-list@lists.eazel.com.
===============================
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