<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD GNOME Project: GNOME Development Branch FAQ">
<!ENTITY email "freebsd-gnome">
<!ENTITY % navinclude.gnome "INCLUDE">
]>
<html>
  &header;

  <h2>Contents</h2>
    <ol>
     <li> <a href="#q1">What are development versions of GNOME all about?</a>
     <li> <a href="#q2">Should I track development versions?</a>
     <li> <a href="#q3">How do I obtain development versions of GNOME stuff?</a>
     <li> <a href="#q4">How do I keep everything up-to-date and in sync?</a>
     <li> <a href="#q5">What should I do when something does not work?</a>
     <li> <a href="#q6">How can I help with the development versions?</a>
     <li> <a href="#q7">What is the current state of development GNOME on
       FreeBSD</a>
    </ol>

  <h2>Full Text </h2>

    <ol>
<!-- Q1 -->
      <li style="padding-bottom: 0.5em"><a name="q1"></a>
        <p><b>What are development versions of GNOME all about?</b></p>
<!-- A1 -->
        <p>The development versions are the packages released by the GNOME
          project that will eventually become the stable (release) versions.
	  There are three working branches of GNOME development:</p>
        <ol>
          <li><b>STABLE</b> - The applications and libraries in the stable
	    branch are considered "release quality," and are the versions that
	    appear in the FreeBSD ports tree.  The current stable version is
	    GNOME &gnomever;.</li>
          <li><b>DEVELOPMENT</b> - In between stable releases are development
            releases.  Traditionally, GNOME development releases have odd minor
	    numbers (e.g. 2.3, &gnomedevelver;, 2.(n*2)-1).  Development releases will
	    become stable releases, and move from alpha to beta quality during
	    their lifecycle. The development releases need testing by FreeBSD
	    users to minimize the number of surprises when the new stable
	    versions are committed to the FreeBSD CVS tree. This document is
	    about the development branch.  The current development branch
	    is GNOME &gnomedevelver;.</li>
	  <li><b>GIT</b> - Often newer-than-new, the GIT master versions of GNOME
            applications and libraries are alpha quality, or often completely
            unbuildable.  The FreeBSD GNOME project pays attention to, but
	    does not track the alpha quality code.</li>
        </ol>
      </li>

<!-- Q2 -->
      <li style="padding-bottom: 0.5em"><a name="q2"></a>
        <p><b>Should I track GNOME development versions?</b></p>
<!-- A2 -->
        <p>If you are looking for a stable environment, absolutely not.  Please
          only track the GNOME &gnomedevelver; branch if you wish to help identify bugs
	  and improve the FreeBSD GNOME project.  You will find little
	  sympathy if a development-quality GNOME application eats your
	  homework.</p>
      </li>

<!-- Q3 -->
      <li style="padding-bottom: 0.5em"><a name="q3"></a>
        <p><b>How do I obtain the development versions of GNOME stuff?</b></p>
<!-- A3 -->
        <p><a href="mailto:marcus@FreeBSD.org">Marcus</a> maintains a
	  CVS repository where all the development versions of
	  the GNOME components for FreeBSD are housed.  Instructions for
	  how to check out the development ports module and how to merge it
	  into the FreeBSD ports tree reside on the entrance page to his
	  repository.  Please read carefully the instructions at
	  <a href="http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi">http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi</a>.
        </p>

	<p>During the development cycle, FreeBSD-specific caveats and
	  other useful information will be sent to <a
	  href="mailto:marcuscom-devel@marcuscom.com">
	    marcuscom-devel@marcuscom.com</a>.  If you are tracking
	  the GNOME development branch, you <b>must</b> <a
	  href="http://www.marcuscom.com/mailman/listinfo/marcuscom-devel">
	  subscribe</a> to this list.  You should also consider <a
	  href="http://lists.freebsd.org/mailman/listinfo/freebsd-gnome">
	  subscribing</a> to <a
	  href="mailto:&email;@FreeBSD.org">&email;@FreeBSD.org</a>.</p>

	<p>In order to help with bug reports, be sure to add the following
	  to <tt>/etc/make.conf</tt> so that gdb back traces contain
	  useful information:</p>
<pre>
WITH_DEBUG=yes
</pre>
	<p>GNOME has an excellent guide for getting <a href="http://live.gnome.org/GettingTraces">
	  useful back traces</a>.</p>
      </li>

<!-- Q4 -->
      <li style="padding-bottom: 0.5em"><a name="q4"></a>
        <p><b>How do I keep everything up-to-date and in sync?</b></p>
<!-- A4 -->
        <p>The short answer is that you need to use the <tt>marcusmerge</tt>
	  script to merge the development tree with the FreeBSD ports tree.
	  The <tt>marcusmerge</tt> script is available
	  <a href="http://www.marcuscom.com/downloads/marcusmerge">
	  here</a>, and a man page on using the script is available
	  <a href="http://www.marcuscom.com/marcusmerge.8.html">
	  here</a>.  This script will merge the development ports tree
	  into your main ports tree.  From there, you can use
	  <tt>portupgrade</tt> or <tt>portmaster</tt> to upgrade from
	  &gnomever; to &gnomedevelver; and stay up-to-date afterwards.

	<p>The long answer is that keeping up-to-date with the GNOME
	  development branch is complicated.  Sometimes components change
	  in a way that makes <tt>portupgrade</tt> or <tt>portmaster</tt>
	  fail, or causes strange end results. If you plan to track the
	  development branch, it is a good idea to join the
	  <a href="http://lists.FreeBSD.org/mailman/listinfo/freebsd-gnome">
	  freebsd-gnome</a> mailing list, as well as to join the
	  <em>#freebsd-gnome</em> IRC channel on FreeNode
	  (<tt>irc.freenode.net</tt>).</p>

        <p>If all of this sounds scary, or you need a desktop that
	  "Just Works," you should stick with the stable GNOME branch.</p>
      </li>

<!-- Q5 -->
      <li style="padding-bottom: 0.5em"><a name="q5"></a>
        <p><b>What should I do when something does not work?</b></p>
<!-- A5 -->
        <p>It depends.  If you think the problem is truly a bug with the
	  GNOME component, you can report a bug using <b>bug-buddy</b> or
	  the GNOME <a href="http://bugzilla.gnome.org">Bugzilla</a>
	  interface.  If you think the problem lies in a FreeBSD port, or
	  is FreeBSD-specific, send email to
	  <a href="mailto:&email;@FreeBSD.org">&email;@FreeBSD.org</a>,
	  or report the problem on the <em>#freebsd-gnome</em> IRC
	  channel on FreeNode.</p>

        <p>Please forward all relevant bug IDs to
	  <a href="mailto:&email;@FreeBSD.org">&email;@FreeBSD.org</a>
	  so we can keep track of known issues.  Thanks!</p>
      </li>

<!-- Q6 -->
      <li style="padding-bottom: 0.5em"><a name="q6"></a>
        <p><b>How can I help with the development versions?</b></p>
<!-- A6 -->
	<p>Now that work on &gnomedevelver; has started, we need
	  people to install it, and test things.  If you are compiling
	  &gnomedevelver; by hand, be sure to build <a
	  href="&base;/gnome/docs/bugging.html">debugging symbols</a>.
	  Package users will have these symbols already.</p>
      </li>

<!-- Q7 -->
      <li style="padding-bottom: 0.5em"><a name="q7"></a>
        <p><b>What is the current state of development GNOME on FreeBSD?</b></p>
<!-- A7 -->
        <p>We have just cleared out the MarcusCom ports tree after
	  merging &gnomever; into the FreeBSD ports tree.  Stay tuned
	  for the start of &gnomedevelver; work.</p>
      </li>
    </ol>
  &footer;
</body>
</html>
