mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-08-25 02:36:07 +00:00
![Darin Adler](/assets/img/avatar_default.png)
Fixed bug 2802 (copy all metadata, not just certain items). There are still a few loose ends but it's basically there. Fixed bug 5296 (Hardware overview should be localized). Fixed bug 5299 (Spacing problems with sizes in bytes). * libnautilus-extensions/nautilus-directory-metafile.c: (get_file_node): Used a local variable for the hash table to make the code more readable because the full expression is too long. Removed the half-baked attempt at using xmlNode objects to represent "changes" data, which no longer seems a likely direction. (nautilus_directory_metafile_destroy): Local variable for hash table. (nautilus_directory_get_file_metadata): Return NULL, not FALSE, since the function returns char *, not gboolean. (nautilus_directory_rename_file_metadata): Local variable for hash table. Also added a FIXME for a case that won't work. (apply_file_changes): Broke out so it can be used elsewhere. (apply_one_file_changes): This is now the version that has the hash table iterator function interface. (nautilus_directory_get_integer_file_metadata): Use sscanf instead of atoi so we can do error checking. (nautilus_directory_copy_file_metadata): Removed the old code that copied fixed keys and wrote new code that copies all the metadata. (nautilus_directory_remove_file_metadata): Local variable for hash table. * icons/arlo/arlo.xml: Added an explicit H offset of 0 for the zoom control. It was inheriting the default theme's offset of -2. This seems to indicate a design problem with the "fall back on default" approach for themes, but for now it's nice to have the zoom control looking right again. * src/nautilus-window-menus.c: (help_menu_about_nautilus_callback): Use the real copyright character, not "(C)". * src/file-manager/fm-desktop-icon-view.c (find_and_update_home_link), (place_home_directory): Mark the "darin's Home" string for localization. Needs improvement beyond this, because just tacking "'s Home" onto the login name is probably no good. * components/hardware/nautilus-hardware-view.c: (read_proc_info): Tweak code style a bit. Use g_string_free (FALSE) instead of g_strdup and g_string_free (TRUE). (get_CPU_description): Make this a little more localizable by adding a strdup format string instead of appending things. Added FIXMEs about additional problems. (get_RAM_description): Add a little reality checking on the value read from the file and make a little more localizable. (get_IDE_description): Change to use the gnome-vfs file size formatting functions in the right way. The old code had been changed to not use them at all, probably because the first cut at this code was using it wrong and ran into a 32-bit limit. Use g_string_free (FALSE) instead of g_strdup and g_string_free (TRUE). * po/POTFILES.in: Marked nautilus-hardware-view.c as needing localization. * components/help/converters/gnome-db2html2/sect-elements.c: (sect_informaltable_start_element): Fixed a runaway string literal. * libnautilus-extensions/nautilus-directory-async.c: Moved the constants to the top of the file and put the compile-time switches at the top of the constants section. * NEWS: Removed out of date news. * README: Fixed a typo. * TODO: Removed out of date tasks.
313 lines
12 KiB
Plaintext
313 lines
12 KiB
Plaintext
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.
|
|
|