<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Appendix G. Working with CVS</title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Programming with gtkmm"> <link rel="up" href="index.html" title="Programming with gtkmm"> <link rel="prev" href="apf.html" title="Appendix F. Drawing With GDK"> <link rel="next" href="apgs02.html" title="Installing and Using the CVS version of gtkmm"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">Appendix G. Working with CVS</th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="apf.html"><img src="../icons/prev.png" alt="Prev"></a> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <a accesskey="n" href="apgs02.html"><img src="../icons/next.png" alt="Next"></a> </td> </tr> </table> <hr> </div> <div class="appendix" lang="en"> <div class="titlepage"><div><div><h2 class="title"> <a name="sec-appendix_working_with_cvs"></a>Appendix G. Working with CVS</h2></div></div></div> <div class="toc"> <p><b>Table of Contents</b></p> <ul> <li><span class="sect1"><a href="apg.html#sec-setting_up_jhbuild">Setting up jhbuild</a></span></li> <li><span class="sect1"><a href="apgs02.html">Installing and Using the CVS version of <span class="application">gtkmm</span></a></span></li> </ul> </div> <p> If you are interested in helping out with the development of <span class="application">gtkmm</span>, or fixing a bug in <span class="application">gtkmm</span>, you'll probably need to build the development version of <span class="application">gtkmm</span>. You don't want to install a development version over your stable version, you want to install it alongside your existing <span class="application">gtkmm</span> installation. </p> <p> The easiest way to do this is using <a class="ulink" href="http://www.gnome.org/~jamesh/jhbuild.html" target="_top">jhbuild</a>. <span class="application">jhbuild</span> is a program that makes building GNOME software much easier by calculating dependencies and building things in the correct order. This section will give a brief explanation of how to set up jhbuild to build and install <span class="application">gtkmm</span> from CVS. For up-to-date information on <span class="application">jhbuild</span>, please refer to the <a class="ulink" href="http://www.gnome.org/~jamesh/jhbuild.html" target="_top">jhbuild website</a>. If you need assistance using <span class="application">jhbuild</span>, you should ask for help on the <a class="ulink" href="http://mail.gnome.org/mailman/listinfo/gnome-love" target="_top">gnome-love mailing list</a>. </p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"> <tr> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../icons/note.png"></td> <th align="left">Note</th> </tr> <tr><td align="left" valign="top"><p> Note that to build <span class="application">gtkmm</span> from <span class="application">CVS</span>, you'll need to build all of its dependencies from CVS as well. <span class="application">jhbuild</span> makes this easier than it would normally be, but it will take quite a while to build and install them all. </p></td></tr> </table></div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="sec-setting_up_jhbuild"></a>Setting up jhbuild</h2></div></div></div> <p> To set up <span class="application">jhbuild</span>, follow the basic installation instructions from the <a class="ulink" href="http://www.gnome.org/~jamesh/jhbuild.html" target="_top">jhbuild manual</a>. After you've gotten <span class="application">jhbuild</span> installed, you should copy the sample <span class="application">jhbuild</span> configuration file into your home directory by executing the following command from the <span class="application">jhbuild</span> directory: <span class="command"><strong>$ cp sample.jhbuildrc ~/.jhbuildrc</strong></span> </p> <p> The <span class="application">gtkmm</span> module is defined in the GNOME moduleset (i.e. <code class="filename">gnome-2.xx.modules</code>, so edit your <code class="filename">.jhbuildrc</code> file and set your moduleset setting to the latest version of GNOME like so: </p> <pre class="programlisting">moduleset = 'gnome-2.16'</pre> <p> </p> <p> After setting the correct moduleset, you need to tell <span class="application">jhbuild</span> which module or modules to build. To build <span class="application">gtkmm</span> and all of its dependencies, set <code class="varname">modules</code> like so: </p> <pre class="programlisting">modules = [ 'gtkmm', ]</pre> <p> </p> <p> You can build all GNOME C++ modules by setting the <code class="varname">modules</code> variable to the meta-package named <code class="literal">meta-gnome-c++</code> or build all of the core GNOME modules with <code class="literal">meta-gnome-desktop</code>. The <code class="varname">modules</code> variable specifies which modules that will be built when you don't explicitly specify anything on the command line. You can always build a different moduleset later by specifying it on the commandline (e.g. <span class="command"><strong>jhbuild build gtkmm</strong></span>). </p> <p> Note that the GNOME moduleset is most likely set up to build the branch of <span class="application">gtkmm</span> that will be included with that GNOME release, so it may not build <span class="application">gtkmm</span> HEAD by default. The branch name is specified in the <code class="literal">revision</code> attribute of the <code class="literal">cvsmodule</code> element. In order to build the HEAD version of <span class="application">gtkmm</span>, edit your moduleset file and delete the <code class="literal">revision</code> attribute. </p> <div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important: Setting a prefix"> <tr> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../icons/important.png"></td> <th align="left">Setting a prefix</th> </tr> <tr><td align="left" valign="top"><p> By default, <span class="application">jhbuild</span>'s configuration is configured to install all software built with <span class="application">jhbuild</span> under the <code class="filename">/opt/gnome2</code> prefix. You can choose a different prefix, but it is recommended that you keep this prefix different from other software that you've installed (don't set it to <code class="filename">/usr</code>!) This way you can keep using your stable versions without conflict and use the CVS versions when you want to. You may want to choose a prefix that your user account has write access to so that you don't need to run <span class="application">jhbuild</span> as <code class="literal">root</code>. </p></td></tr> </table></div> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="apf.html"><img src="../icons/prev.png" alt="Prev"></a> </td> <td width="20%" align="center"> </td> <td width="40%" align="right"> <a accesskey="n" href="apgs02.html"><img src="../icons/next.png" alt="Next"></a> </td> </tr> <tr> <td width="40%" align="left" valign="top">Appendix F. Drawing With GDK </td> <td width="20%" align="center"><a accesskey="h" href="index.html"><img src="../icons/home.png" alt="Home"></a></td> <td width="40%" align="right" valign="top"> Installing and Using the CVS version of <span class="application">gtkmm</span> </td> </tr> </table> </div> </body> </html>