Navigation: Nautilus / Development |
Nautilus
Nautilus internals
Please see nautilus-internals.pdf, it's a little bit outdated (ignore references to Bonobo for example) but it explains a lot of this in more detail.
|-- ChangeLog # what happend (also see svn log) |-- INSTALL # installation instructions |-- MAINTAINERS # the people working on Nautilus |-- docs | |-- nautilus-internals.pdf # some very old documentation |-- eel # the eel library of helper functions |-- libnautilus-extension # the public API, exposed to the outside world | |-- nautilus-file-info.c # exposes Nautilus's private nautilus-file.c |-- libnautilus-private # this is Nautilus's internals, never exposed | |-- nautilus-file.c # one of the most important files |-- po # translation files |-- src # main source, lots of dialogs etc. | |-- nautilus-main.c # main | |-- file-manager # file manager views and dialogs | |-- fm-directory-view.c # base class for directory views | |-- fm-icon-view.c # icon view | |-- fm-list-view.c # list view | |-- fm-properties-window.c # file properties dialog |-- test # tests
Getting Nautilus
Checking out from Git is the best way. See http://live.gnome.org/Git
git clone git://git.gnome.org/nautilus
Building Nautilus
Manually
Requirements
These are all the dependencies for building GNOME in its entirety.
sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev gtk-doc-tools libjasper-dev libnl-dev ppp-dev libdv4-dev uuid-dev libpcre3-dev libsqlite3-dev libpurple-dev libcurl4-gnutls-dev libxul-dev
You can also try using sudo apt-get build-dep nautilus.
Building
You don't have to make install when building, you can simply run Nautilus from the build directory.
./autogen.sh --prefix /usr make ./src/nautilus --no-desktop .
Using JHBuild
See Jhbuild
JHBuild allows you to setup a separate environment for development. You don't have to jhbuild bootstrap nor do a sanitycheck. Your ~/.jhbuildrc should be a copy of sample.jhbuildrc.
jhbuild buildone glib jhbuild buildone gvfs jhbuild buildone gnome-python jhbuild build nautilus # this will fetch and build all dependencies and will take hours jhbuild buildone nautilus-python
If anybody can figure out which dependencies specifically are needed just to build Nautilus (things that are outdated) please update the instructions above.
You should also be able to build a normal Nautilus from the JHBuild shell (see above).