title: which packages are compiled into gnumail-providers.jar, and what are JAR the dependencies?
body: <p>In order to compile <code>gnu.mail.provider</code> and <code>gnu.mail.treeutil</code> <strong>into</strong> <code>gnumail-providers.jar</code> what are the dependencies and what are the packages which should be compiled?</p>
  
  <p><em>More importantly, are those the packages which go into this JAR? <strong>And</strong>, what needs to be on the classpath to build this JAR correctly?</em></p>
  
  <p>Below follows what I think GNU is doing.  GNU makes all their projects build from make, so for <a href="http://savannah.gnu.org/svn/?group=classpathx" rel="nofollow">classpathx</a> the <a href="http://article.gmane.org/gmane.comp.java.classpath.extensions.javamail/692" rel="nofollow">instructions</a> are:</p>
  
  <pre><code>svn co svn://svn.savannah.gnu.org/classpathx/trunk classpathx cd
  classpathx/activation ./configure &amp;&amp; make &amp;&amp; sudo make install cd
  ../inetlib ./configure &amp;&amp; make &amp;&amp; sudo make install cd ../mail ./configure
  &amp;&amp; make &amp;&amp; sudo make install
  </code></pre>
  
  <p>1.) what are the JAR dependencies for building <code>gnumail-providers.jar</code>?</p>
  
  <p>2.) which source code package(s) should be compiled to build <code>gnumail-providers.jar</code>?</p>
  
  <p>Looking at what Ubuntu does, <code>apt-get install libgnuinet-java libgnujaf-java libgnumail-java</code> installs:</p>
  
  <pre><code>/usr/share/java/inetlib.jar
  /usr/share/java/activation.jar
  /usr/share/java/gnumail-providers.jar
  /usr/share/java/gnumail.jar
  </code></pre>
  
  <p>It's a little bit odd because <code>libgnumail-java</code> installs both <code>gnumail.jar</code> and <code>gnumail-providers.jar</code>, and I'm not quite sure why those are separate, and what the dependencies are.</p>
  
  <p><code>jar -tf /usr/share/java/gnumail.jar</code> shows packages <code>gnu.mail</code> as well as <code>javax.mail</code>, so that JAR is limited to the source code for those packages, at most?</p>
  
  <p>Alternately,</p>
  
  <p><code>jar -tf /usr/share/java/gnumail-providers.jar</code> is more specific, with <code>gnu.mail.providers</code> and <code>gnu.mail.treeutil</code>, which all seems a bit odd.</p>
  
  <p>Why are <strong>some</strong>, but not all, <code>gnu.mail</code> packages built into a seperate JAR from the main JAR?
  The over-ridden (if that's the correct term) <code>javax.mail</code> is packaged in the same JAR as <code>gnu.mail</code>, but why?</p>
  
  <p>That <code>gnu.mail</code> is split and packaged into two separate JAR's seems unusual, as does the way <code>javax.mail</code> ends up with <code>gnu.mail</code> and not in a JAR of its own.</p>
  
  <p>In a larger way, is this a normal way of packaging JAR's?</p>
  
  <p>In the more practical sense, in order to compile <code>gnu.mail.provider</code> and <code>gnu.mail.treeutil</code> <strong>into</strong> <code>gnumail-providers.jar</code> what are the dependencies and what are the packages which should be compiled? </p>
  
  <p>It seems odd that a subset of a package hierarchy is compiled into a JAR to sit alongside its brethren, but is that what's happening?</p>