gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r1749 - in GNUnet: . doc src/util


From: grothoff
Subject: [GNUnet-SVN] r1749 - in GNUnet: . doc src/util
Date: Thu, 18 Aug 2005 21:34:39 -0700 (PDT)

Author: grothoff
Date: 2005-08-18 21:34:37 -0700 (Thu, 18 Aug 2005)
New Revision: 1749

Modified:
   GNUnet/PLATFORMS
   GNUnet/README
   GNUnet/README.fr
   GNUnet/UPDATING
   GNUnet/doc/README.mysql
   GNUnet/doc/memoryuse.txt
   GNUnet/src/util/dso.c
Log:
updating docs, some stuff for valgrinding

Modified: GNUnet/PLATFORMS
===================================================================
--- GNUnet/PLATFORMS    2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/PLATFORMS    2005-08-19 04:34:37 UTC (rev 1749)
@@ -3,7 +3,7 @@
 Let us know if you know more about it then we do.  The test is quite
 easy.  Run "make check" and "gnunet-transport-check" *after*
 configuring GNUnet (including placing a valid gnunet.conf into
-~/.gnunet and /etc/gnunet.conf).  That should yield all the
+~/.gnunet and /etc/gnunetd.conf).  That should yield all the
 information necessary (assuming it compiles).
 
 
@@ -26,7 +26,7 @@
 - unknown
 
 OS X (10.3.7, PowerPC):
-- perfect (needs libextractor > 0.5.2)
+- perfect
 
 Solaris:
 - unknown

Modified: GNUnet/README
===================================================================
--- GNUnet/README       2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/README       2005-08-19 04:34:37 UTC (rev 1749)
@@ -20,6 +20,26 @@
 http://www.gnu.org/projects/GNUnet/ and http://gnunet.org/.
 
 
+Dependencies:
+=============
+
+For the impatient, here is the list of immediate dependencies for
+running GNUnet:
+
+- libextractor >= 0.5.3
+- libcrypt     >= 1.2
+- libgmp       >= 4.0
+- mysql >= 4.1 OR sqlite >= 3.0
+- libltdl (from libtool)
+
+Recommended autotools for compiling the SVN version are:
+- autoconf >= 2.59
+- automake >= 1.9.4
+- libtool  >= 1.5.8
+
+See also README.debian for a list of Debian packages.
+
+
 How to install?
 ===============
 
@@ -27,6 +47,7 @@
 system.  For a more detailed description, read the installation
 instructions on the webpage at http://gnunet.org/documentation.php3.
 
+
 If you install from source, you need to install libextractor
 first (download from http://gnunet.org/libextractor/).  Then
 you can start the actual GNUnet compilation process with:
@@ -34,17 +55,22 @@
 $ ./configure --prefix=$HOME --with-extractor=$HOME
 $ make
 # make install
+# gnunet-setup -d
 # gnunetd 
 
 This will compile and install GNUnet to ~/bin/, ~/lib/ and ~/man/.
-Starting gnunetd as root the first time will allow the daemon to
-create the default configuration file in /etc/gnunetd.conf.  If you do
-not want to run GNUnet as root, add a user gnunet and give it write
-permissions to /var/lib/GNUnet (and start gnunetd as that user in the
-future).  Note that additional, per-user configuration files
-(~/.gnunet/gnunet.conf) will be created the first time a user starts a
-GNUnet user interface.  For more general information about the GNU
-build process read the INSTALL file.
+gnunet-setup will create the daemon configuration (-d); this step is
+interactive.  You can run gnunet-setup as root for a system-wide
+installation or as a particular user to create a personal
+installation.  If you do not want to run gnunetd as root, gnunet-setup
+can be used to add a user "gnunet".  Data will then be stored in
+/var/lib/GNUnet and gnunetd will run as that user.  Note that
+additional, per-user configuration files (~/.gnunet/gnunet.conf) also
+need to be created by each user by running gnunet-setup without the -d
+option.  Depending on your operating system the wizards of
+gnunet-setup can also be used to create an init script that starts
+gnunetd each time the system boots.  For more general information
+about the GNU build process read the INSTALL file.
 
 GNUnet requires the GNU MP library (http://www.gnu.org/software/gmp/)
 and libgcrypt.  You can specify the path to libgcrypt by passing
@@ -59,22 +85,7 @@
 
 $ aclocal -I /usr/local/share/aclocal
 
-In order to start a "permanent" node, you should create a new user
-"gnunet" and start "gnunetd" as that user whenever the system boots.
-The file contrib/initgnunet in the source distribution contains a
-script that may be helpful for that purpose.  Note that you will have
-to enable the service by creating the appropriate links to start
-gnunetd at boot time (if that is desired).
 
-For file sharing GNUnet needs to store data in a database. We
-currently support MySQL and SQLite.
-
-libextractor >= 0.5.0 is required
-autoconf >= 2.59 is  recommended for compiling the SVN version.
-automake >= 1.9.4 is recommended for compiling the SVN version.
-libtool >= 1.5.8 is  recommended for compiling the SVN version.
-
-
 Configuration
 =============
 
@@ -84,16 +95,15 @@
 and "~/.gnunet/gnunet.conf" (whichever applies).
 
 If you want to use a different configuration file, pass the name of
-the configuration file as an argument with the option -c to any GNUnet
-application.  Sending a SIGHUP to the gnunetd process will cause
-gnunetd to re-read the configuration file.  Note that not all options
-can be changed at run-time this way (e.g. to change any port number,
-you must fully restart gnunetd).
+the configuration file as an argument with the option "-c" to any
+GNUnet application.  Sending a SIGHUP to the gnunetd process will
+cause gnunetd to re-read the configuration file.  Note that not all
+options can be changed at runtime this way (e.g. to change any port
+number, you must fully restart gnunetd).
 
 In order to use the SMTP transport service, you should read
-http://gnunet.org/smtp.php3 first!  Note that if you have a
-globally addressable IP or full control over your NAT box, the TCP or
-UDP services will suffice.
+http://gnunet.org/smtp.php3 first!  Note that SMTP should never
+be required, it is just a neat technical idea at this point.
 
 
 Usage
@@ -102,7 +112,7 @@
 First, you must obtain an initial list of GNUnet hosts.  Knowing a
 single peer is sufficient since after that GNUnet propagates
 information about other peers.  Note that the default "gnunetd.conf"
-contains a URL from where gnunetd downloads an initial hostlist
+contains URLs from where gnunetd downloads an initial hostlist
 whenever it is started.  If you want to create an alternative URL for
 others to use, the file can be generated on any machine running
 gnunetd by periodically executing

Modified: GNUnet/README.fr
===================================================================
--- GNUnet/README.fr    2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/README.fr    2005-08-19 04:34:37 UTC (rev 1749)
@@ -1,3 +1,5 @@
+THIS TRANSLATION IS OUTDATED.  PLEASE ALSO READ THE ENGLISH VERSION!
+
                      Bienvenue sous GNUnet
 
 
@@ -99,7 +101,7 @@
 �galement vous servir d'un simple r�pertoire, mais ce sera lent.
 
 autoconf >= 2.57 est recommand� pour compiler la version CVS.
-libextractor >= 0.3.6 est fortement recommand�.
+libextractor >= 0.5.3 est fortement recommand�.
 
 
 Configuration

Modified: GNUnet/UPDATING
===================================================================
--- GNUnet/UPDATING     2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/UPDATING     2005-08-19 04:34:37 UTC (rev 1749)
@@ -9,6 +9,16 @@
 you're on your own.
 
 
+0.7.0pre4 and 0.7.0pre5 to 0.7.0pre6
+====================================
+
+Run
+
+$ gnunet-update
+
+(as the same user that also runs gnunetd).
+
+
 0.7.0pre1 and 0.7.0pre2 to 0.7.0pre3
 ====================================
 

Modified: GNUnet/doc/README.mysql
===================================================================
--- GNUnet/doc/README.mysql     2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/doc/README.mysql     2005-08-19 04:34:37 UTC (rev 1749)
@@ -61,38 +61,38 @@
      "ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock"
      so there may be some additional trouble depending on your mysql setup.]
 
- REPAIRING TABLES 
+REPAIRING TABLES 
 
- - Its probably healthy to check your tables for inconsistencies
-   every now and then.
- - If you get odd SEGVs on gnunetd startup, it might be that the mysql
-   databases have been corrupted. 
- - The tables can be verified/fixed in two ways;
-   1) by shutting down mysqld (mandatory!) and running 
-   # myisamchk -r *.MYI 
-   in /var/lib/mysql/gnunet/ (or wherever the tables are stored).
-   Another repair command is "mysqlcheck". The usable command
-   may depend on your mysql build/version. Or,
-   2) by executing 
-   mysql> REPAIR TABLE gn070;
+- Its probably healthy to check your tables for inconsistencies
+  every now and then.
+- If you get odd SEGVs on gnunetd startup, it might be that the mysql
+  databases have been corrupted. 
+- The tables can be verified/fixed in two ways;
+  1) by shutting down mysqld (mandatory!) and running 
+  # myisamchk -r *.MYI 
+  in /var/lib/mysql/gnunet/ (or wherever the tables are stored).
+  Another repair command is "mysqlcheck". The usable command
+  may depend on your mysql build/version. Or,
+  2) by executing 
+  mysql> REPAIR TABLE gn070;
 
- EFFICIENCY ISSUES
+EFFICIENCY ISSUES
 
- If you suffer from too slow index/insert speeds, 
- you might try to define /etc/gnunetd.conf option
+If you suffer from too slow index/insert speeds, 
+you might try to define /etc/gnunetd.conf option
 
-   [MYSQL]
-   MYSQL_DELAYED = YES
+  [MYSQL]
+  MYSQL_DELAYED = YES
 
- for small efficiency boost. The option will let MySQL bundle multiple 
- inserts before actually writing them to disk. You shouldn't use this 
- option unless you're an (my)sql expert and really know what you're doing. 
- Especially, if you run into any trouble due to this, you're on your own.
+for small efficiency boost. The option will let MySQL bundle multiple 
+inserts before actually writing them to disk. You shouldn't use this 
+option unless you're an (my)sql expert and really know what you're doing. 
+Especially, if you run into any trouble due to this, you're on your own.
 
- PROBLEMS?
+PROBLEMS?
 
- If you have problems related to the mysql module, your best 
- friend is probably the mysql manual. The first thing to check 
- is that mysql is basically operational, that you can connect 
- to it, create tables, issue queries etc.
+If you have problems related to the mysql module, your best friend is
+probably the mysql manual. The first thing to check is that mysql is
+basically operational, that you can connect to it, create tables,
+issue queries etc.
 

Modified: GNUnet/doc/memoryuse.txt
===================================================================
--- GNUnet/doc/memoryuse.txt    2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/doc/memoryuse.txt    2005-08-19 04:34:37 UTC (rev 1749)
@@ -30,5 +30,10 @@
   many seconds (typically the longer you can afford to wait,
   the more likely you are to actually observe a relevant event
   in the trace -- and make sure to actually USE gnunetd while
-  tracing for leaks).
+  tracing for leaks). 
+  One more note about using valgrind.  Since GNUnet uses
+  plugins that are unloaded on shutdown, the memory traces
+  are likely to be garbeled if nothing is done.  Setting
+  the VALGRIND option will disable unloading plugins (see
+  src/util/dso.c) and thus improve the traces significantly.
 

Modified: GNUnet/src/util/dso.c
===================================================================
--- GNUnet/src/util/dso.c       2005-08-19 04:13:20 UTC (rev 1748)
+++ GNUnet/src/util/dso.c       2005-08-19 04:34:37 UTC (rev 1749)
@@ -27,6 +27,7 @@
 #include "platform.h"
 #include "gnunet_util.h"
 
+static int using_valgrind;
 
 static char * old_dlsearchpath = NULL;
 
@@ -62,7 +63,8 @@
   lt_dlsetsearchpath(old_dlsearchpath);
   if (old_dlsearchpath != NULL)
     free(old_dlsearchpath);
-  lt_dlexit ();
+  if (0 != using_valgrind) 
+    lt_dlexit ();  
 }
 
 
@@ -104,9 +106,13 @@
 void unloadDynamicLibrary(void * libhandle) {
   /* when valgrinding, comment out these lines
      to get decent traces for memory leaks on exit */
-  lt_dlclose(libhandle);
-  if (0 != lt_dlexit())
-    LOG_STRERROR(LOG_WARNING, "lt_dlexit");
+  if (0 != getConfigurationInt("GNUNETD",
+                              "VALGRIND")) {
+    lt_dlclose(libhandle);
+    if (0 != lt_dlexit())
+      LOG_STRERROR(LOG_WARNING, "lt_dlexit");
+  } else
+    using_valgrind = 1;
 }
 
 void * trybindDynamicMethod(void * libhandle,





reply via email to

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