Contents
1. GNOME Love
GNOME Love is the place to learn how to start contributing to GNOME. These pages are full guidance that will help you to become a member of the GNOME community. You can also get help from existing GNOME contributors and find tasks to get started on.
1.1. Getting Started as a GNOME Contributor
Welcome to GNOME! This is a great place to learn new skills, make friends, have fun and be a part of an inspirational Free Software project. This getting started guide explains the most essential things that you need to know to start participating and contributing.
Learning your way around - get a guided tour of the most important parts of the project.
Finding tasks - how to find things to work on in GNOME. This covers both coding and non-coding tasks.
General advice - general advice and tips on becoming a GNOME contributor.
Building & running the latest development code with JHBuild - whether you want to try the latest features or contribute to the coding effort, using the latest development code is an essential step.
Contributing code by submitting patches - the essential steps to submit a code contribution.
Mentors - a list of nice folks who can help you with your first contribution.
1.2. Getting Help and Advice
To get further help and advice, please join us on the GNOME Love mailing list and IRC channel (#gnome-love on GIMPNet / irc.gnome.org). You can also contact nice folks who can provide informal mentorship for specific projects they are working on.
1.3. Development Guidance and Tutorials
GNOME Developer Center has up to date advice and tutorials on developing for GNOME. It provides quick guides on getting started in different languages and links to current developer documentation.
Newcomers tutorial has a step-by-step guide to the process of contributing to GNOME.
GNOME University started out in October 2012 to teach people how to contribute to GNOME in C. Feel free to join it.
Other resources can be found below.
1.3.1. General Resources
Please maintain consistency when adding a new reference to keep this page as clear as possible.
GTK+ and Glade3 GUI Programming Tutorial. An introduction to GTK+ and Glade3 development using C or Python.
Perl Gtk3 Tutorial. An introduction to programming in Perl with GTK3.
An outdated Getting Started Guide for those interested in developing with GNOME has not been updated for a few years. Warning: This guide mentions outdated technologies (CVS instead of Git, gconf instead of GSettings/dconf, libglade instead of Gtk, etc). A new guide is in the making for GNOME 3.6. The outdated guide currently contains:
- Quick overviews of the important tools you need to use and websites you should be aware of
- Programming tutorials in C, C++, Perl, and Python for using Glade/libglade and gconf (with gtk+ being learned along the way)
- Debugging tutorials covering gdb, strace, and valgrind (specifically memcheck)
- Detailed guide on building GNOME from CVS (use of jhbuild)
- A "What in the world is that?!?" section to help explain all the cryptic but common tools, libraries, and filenames.
Capturing Stack Traces: If you are trying to fix a specific bug in GNOME that is a crash, this guide explains how to obtain a stack trace --one of the first important pieces of information needed in most cases to move towards fixing the problem.
1.3.2. Tips & Tricks
1.3.3. GUI
GtkUIManager tutorial for making Menus and Toolbars
Drag and drop tutorial for your GTK+ applications
XDS tutorial for implementing "drag to save" in GTK+ applications
GtkTreeView tutorial by Tim-Philipp Muller
GtkTextView tutorial by Vijay Kumar
1.3.4. Other
GOptions tutorial for easy command line parsing
Integrating existing software with GNOME (installing mime types, thumbnailers, etc..)
Debug-stepping through GTK+ code (Debian/Ubuntu only)
Using and Building C/C++ apps/libraries with automake and autoconf
1.3.5. Books
Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
{en} The Official GNOME 2 Developer's Guide (quite outdated)
{de} GNOME 2.0: Das Entwickler-HandbuchAndrew Krause wrote another book, dedicated to GTK+ 2 development.
{en} Foundations of GTK+ Development
Havoc Pennington wrote a book in a tutorial style about developing GTK+ and GNOME applications.
{en} GTK+/Gnome Application Development (ISBN: 0735700788) (partially outdated)
GNOME uses SGML with DocBook DTD for documentation (though we slowly move to Mallard). This free book by Norman Walsh and Leonard Muellner is a resource for learning DocBook.
{en} DocBook: The Definitive Guide (ISBN: 1565925807)
GNOME uses Autoconf, Automake, and Libtool for building source. This free book by Gary V. Vaughan, Ben Elliston, Tom Tromey, and Ian Lance Taylor describes how to use these sometimes seemingly-arcane tools.
{en} GNU Autoconf, Automake, and Libtool (ISBN: 1578701902)
The first published book on developing with GTK+ by Eric Harlow. A guide with examples and explanation.
{en} Developing Linux Applications with GTK+ and GDK (ISBN: 0735700214) (might be outdated)
A book on CORBA programming that gives a great overall view of what CORBA is and how to use it. Even though it is C++ oriented, it maps over to C easily, but be sure that you have the CORBA C specification as well. Please note that CORBA/Bonobo has been deprecated in GNOME and new applications should not use this anymore but D-Bus instead.
{en} Advanced CORBA Programming with C++ - by Michi Henning and Steve Vinoski. (ISBN: 0201379279)
1.4. Internationalization
Internationalization tutorial by Malcolm Tredinnick
1.4.1. GNOME Love Days
The underlying idea behind this, is to have one special day for a given task, for example finding bugs, or improving a specific part of GNOME... On this day, someone will stay on the #gnome-love irc channel to give some support and help you on this task.