gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r5416 - GNUnet/doc/manual


From: gnunet
Subject: [GNUnet-SVN] r5416 - GNUnet/doc/manual
Date: Mon, 6 Aug 2007 15:05:48 -0600 (MDT)

Author: durner
Date: 2007-08-06 15:05:46 -0600 (Mon, 06 Aug 2007)
New Revision: 5416

Modified:
   GNUnet/doc/manual/manual.texi
Log:
add section "Building from source"

Modified: GNUnet/doc/manual/manual.texi
===================================================================
--- GNUnet/doc/manual/manual.texi       2007-08-06 20:25:48 UTC (rev 5415)
+++ GNUnet/doc/manual/manual.texi       2007-08-06 21:05:46 UTC (rev 5416)
@@ -243,11 +243,11 @@
 must be translated to machine code ("compiled") in order to get
 actual software which can be executed. Compiling GNUnet from source is
 usually not difficult, but it is certainly not as easy as installing a
-binary package. @xref{Compiling}. The advantage over binary packages is that
+binary package. @xref{Building from source}. The advantage over binary 
packages is that
 it is always possible to get the newest version of GNUnet this way. This is
 not only true for regular releases of GNUnet, users are also able to
 download the development source code the instant changes are made by the
-developers. @xref{SVN}.
+developers. @xref{Getting the source}.
 
 @node Virtual appliance
 @subsection Virtual appliance
@@ -261,4 +261,128 @@
 However, the virtual appliance that is downloadable from the GNUnet homepage
 also suffers from outdated binary packages.
 
address@hidden Building from source
address@hidden Building from source
+
+This chapter describes how to build the GNUnet software from source.
+
address@hidden Getting the source
address@hidden Getting the source
+
+Every release of GNUnet and its related tools (such as @sc{gnunet-gtk},
address@hidden and @sc{gnunet-fuse}) is at least provided in source form
+(@dfn{"source release"}).
+A @dfn{release} is a particular stage of development which is considered to
+be reasonably stable and usable. New releases are announced on the mailinglists
+(see @ref{Mailinglists}) and can be obtained from the download page at
address@hidden://gnunet.org/download.php3}, section "source code".
+
+If you experience problems with the latest release of you want to try the
+latest developments, you can
+get the source from the @sc{Subversion repository}. It always
+contains the latest development code and may thus be less stable and/or usable 
than
+usual releases. Also, it requires additional preparation, see below.
+
+The current development version can be address@hidden subversion
+client is required; it is available from @uref{http://subversion.tigris.org}}
+using this command:
address@hidden
+svn checkout https://gnunet.org/svn/GNUnet
address@hidden
+The last line of the output will usually look similar to:
address@hidden
+Checked out revision 5403.
address@hidden
+
address@hidden Preparing the source
address@hidden Preparing the source
+
+One of GNUnet's technical goals is to run on as many operating systems and
+hardware architectures as possible. To achieve this goal, GNUnet uses
+GNU autoconf to adapt the source to a particular environment. Also, it
+helps to determine which optional and mandatory 3rd party libraries are
+installed.
+
+If GNUnet's source was retrieved from the Subversion
+repository, autoconf has to be initialized first by executing the
+following script in the GNUnet/ directory:
address@hidden
+./bootstrap
address@hidden
+Source releases are pre-bootstrapped, so there is no need to execute the
+above command there.
+
address@hidden Determining system specifics
address@hidden Determining system specifics
+
+The first step of the actual build process is to determine the specifics
+of the system GNUnet will run on. This is largely done automatically, but
+the process needs some hints under special circumstances.
+
+To see which libraries are missing, simply run
address@hidden
+./configure
address@hidden
+and watch the output.
+
address@hidden Dependency issues
address@hidden Dependency issues
+
+This section details the most common error messages and warnings that may be 
encountered during
+execution of the GNU autoconf script "configure". It must be noted that
+automatic determination of installed libraries sometimes fails, see below on 
how
+to point the configure script to a specific location. Also, so-called
address@hidden packages} are not sufficient, the build process requires the
+presence of @dfn{developer packages}, which usually have "-dev" appended to
+their names (e.g. "libcurl-dev").
+
address@hidden
+       @item GNUnet only works with shared libraries. address@hidden
+                               The configure script has been invoked with the 
parameter
+                               --enable-shared=no. GNUnet plugins have to be 
shared libraries, so this
+                               will not work.
+       @item The VPN application cannot be compiled on your address@hidden
+                               VPNs over GNUnet currently only work on Linux, 
because the code uses
+                               functionality that is only provided by this 
operating system. This may
+                               change in the future.
+       @item GNUnet needs address@hidden
+                               GNU libgcrypt is employed by GNUnet for 
cryptographic operations, so
+                               this dependency is mandatory. libgcrypt is 
available for most platforms,
+                               installation should be straightforward.
+       @item GNUnet requires address@hidden
+                               libcurl is used to download contact data of 
other GNUnet peers to
+                               establish connections to them. Because GNUnet 
is usually used in
+                               P2P mode, this dependency is marked as 
mandatory. libcurl is available
+                               on all platforms, installing it should be easy 
to do.
+       @item GNUnet requires address@hidden
+                               Metadata of files are retrieved via GNU 
libextractor. It's available
+                               for all platforms GNUnet runs on and its 
dependencies are mostly
+                               optional (even in binary form), so installing 
should not be
+                               problematic.
+       @item GNUnet requires address@hidden
+                               GNU MP provides primitives for advanced 
cryptography used by GNUnet.
+                               The library has no dependecies besides the C 
runtime library and
+                               is available for a number for platforms. 
Installing should be
+                               trivial.
+       @item GNUnet requires address@hidden
+                               zlib is a compression library used by GNUnet to 
transmit data
+                               in an efficient way. It has been ported to a 
diverse set of
+                               platforms and has no major dependencies itself. 
Installation
+                               should be easy.
+       @item GNUnet requires SQLite or address@hidden
+                               GNUnet relies on relational databases for 
content storage. If neither
+                               SQLite nor a MySQL client is found on your 
system, this error message
+                               is issued. The former is easier to install (no 
dependencies besides
+                               the C runtime library, no manual setup 
required), the latter provides
+                               better performance.
+       @item Compiling GNUnet requires standard UNIX headers address@hidden
+                               This error message is most likely issued on yet 
unsupported platforms
+                               or if this system lacks the pthreads package.
+       @item Compiling GNUnet requires gmp.h (from the GNU MP library, 
libgmp)address@hidden
+                               See "GNUnet requires libgmp" above.
+
address@hidden itemize
+
address@hidden 
+
 @bye





reply via email to

[Prev in Thread] Current Thread [Next in Thread]