From: ng0 Date: Tue, 24 Oct 2017 12:36:58 +0000 (+0000) Subject: doc: fix uref's etc X-Git-Tag: gnunet-0.11.0rc0~101^2~12 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6930d230e65a724f02224d5ff13bea87967350f8;p=oweals%2Fgnunet.git doc: fix uref's etc --- diff --git a/doc/documentation/chapters/developer.texi b/doc/documentation/chapters/developer.texi index 45e12146b..09f62aa00 100644 --- a/doc/documentation/chapters/developer.texi +++ b/doc/documentation/chapters/developer.texi @@ -110,8 +110,7 @@ following links: @c ** FIXME: Link to files in source, not online. @c ** FIXME: Where is the Java tutorial? @itemize @bullet -@item @uref{https://gnunet.org/git/gnunet.git/plain/doc/gnunet-c-tutoria -l.pdf, GNUnet C tutorial} +@item @uref{https://gnunet.org/git/gnunet.git/plain/doc/gnunet-c-tutorial.pdf, GNUnet C tutorial} @item GNUnet Java tutorial @end itemize @@ -129,8 +128,8 @@ The public subsystems on the GNUnet server that help developers are: @item The Version control system keeps our code and enables distributed development. Only developers with write access can commit code, everyone else is encouraged to submit patches to the -@uref{https://lists.gnu.org/mailman/listinfo/gnunet-developers, -GNUnet-developers mailinglist}. +@uref{https://lists.gnu.org/mailman/listinfo/gnunet-developers, GNUnet-developers mailinglist} +. @item The GNUnet bugtracking system is used to track feature requests, open bug reports and their resolutions. Anyone can report bugs, only developers can claim to have fixed them. @@ -698,7 +697,7 @@ gnunet-daemon-hostlist) and no GNUnet management port libgnunet_plugin_transport_tcp) @end itemize -@c *********************************************************************** +@cindex Coding style @node Coding style @subsection Coding style @@ -708,21 +707,29 @@ libgnunet_plugin_transport_tcp) @item C99 struct initialization is fine @item declare only one variable per line, so@ +@noindent +instead of + @example -int i; int j; +int i,j; @end example @noindent -instead of +write: @example -int i,j; +int i; +int j; @end example +@c TODO: include actual example from a file in source + +@noindent This helps keep diffs small and forces developers to think precisely about -the type of every variable. Note that @code{char *} is different from -@code{const char*} and @code{int} is different from @code{unsigned int} -or @code{uint32_t}. Each variable type should be chosen with care. +the type of every variable. +Note that @code{char *} is different from @code{const char*} and +@code{int} is different from @code{unsigned int} or @code{uint32_t}. +Each variable type should be chosen with care. @item While @code{goto} should generally be avoided, having a @code{goto} to the end of a function to a block of clean up @@ -784,21 +791,27 @@ if (NULL == (value = lookup_function())) @{ deep(er) nesting. Thus, we would write: @example -next = head; while (NULL != (pos = next)) @{ - next = pos->next; if (! should_free (pos)) - continue; +next = head; +while (NULL != (pos = next)) @{ + next = pos->next; + if (! should_free (pos)) + continue; GNUNET_CONTAINER_DLL_remove (head, tail, pos); - GNUNET_free (pos); @} + GNUNET_free (pos); + @} @end example instead of @example next = head; while (NULL != (pos = next)) @{ - next = pos->next; if (should_free (pos)) @{ + next = pos->next; + if (should_free (pos)) @{ /* unnecessary nesting! */ GNUNET_CONTAINER_DLL_remove (head, tail, pos); - GNUNET_free (pos); @} @} + GNUNET_free (pos); + @} + @} @end example @item We primarily use @code{for} and @code{while} loops. @@ -825,7 +838,9 @@ use @code{for}, even if it involves linked lists: @example /* simple iteration over a linked list */ -for (pos = head; NULL != pos; pos = pos->next) +for (pos = head; + NULL != pos; + pos = pos->next) @{ use (pos); @} @@ -835,14 +850,15 @@ for (pos = head; NULL != pos; pos = pos->next) @item The first argument to all higher-order functions in GNUnet must be declared to be of type @code{void *} and is reserved for a closure. We do not use inner functions, as trampolines would conflict with setups that -use non-executable stacks.@ The first statement in a higher-order -function, which unusually should be part of the variable declarations, -should assign the @code{cls} argument to the precise expected type. -For example: +use non-executable stacks. +The first statement in a higher-order function, which unusually should +be part of the variable declarations, should assign the +@code{cls} argument to the precise expected type. For example: @example int callback (void *cls, char *args) @{ - struct Foo *foo = cls; int other_variables; + struct Foo *foo = cls; + int other_variables; /* rest of function */ @} @@ -890,9 +906,10 @@ way, more code will fit on the screen). @section Build-system If you have code that is likely not to compile or build rules you might -want to not trigger for most developers, use "if HAVE_EXPERIMENTAL" in -your Makefile.am. Then it is OK to (temporarily) add non-compiling (or -known-to-not-port) code. +want to not trigger for most developers, use @code{if HAVE_EXPERIMENTAL} +in your @file{Makefile.am}. +Then it is OK to (temporarily) add non-compiling (or known-to-not-port) +code. If you want to compile all testcases but NOT run them, run configure with the @code{--enable-test-suppression} option. @@ -907,11 +924,10 @@ If you want to obtain code coverage results, run configure with the @code{--enable-coverage} option and run the @file{coverage.sh} script in the @file{contrib/} directory. -@c *********************************************************************** +@cindex gnunet-ext @node Developing extensions for GNUnet using the gnunet-ext template @section Developing extensions for GNUnet using the gnunet-ext template - For developers who want to write extensions for GNUnet we provide the gnunet-ext template to provide an easy to use skeleton. @@ -943,7 +959,7 @@ environmental variable @code{LD_LIBRARY_PATH} by using export LD_LIBRARY_PATH=/path/to/gnunet/lib @end example -@c *********************************************************************** +@cindex writing testcases @node Writing testcases @section Writing testcases @@ -966,8 +982,10 @@ containing the testcase. For a testcase testing the code in @file{foo.c} the @file{Makefile.am} would contain the following lines: @example -check_PROGRAMS = test_foo TESTS = $(check_PROGRAMS) test_foo_SOURCES = -test_foo.c test_foo_LDADD = $(top_builddir)/src/util/libgnunetutil.la +check_PROGRAMS = test_foo +TESTS = $(check_PROGRAMS) +test_foo_SOURCES = test_foo.c +test_foo_LDADD = $(top_builddir)/src/util/libgnunetutil.la @end example Naturally, other libraries used by the testcase may be specified in the @@ -990,7 +1008,7 @@ typically necessary to run @code{make install} before running any testcases. Thus the canonical command @code{make check install} has to be changed to @code{make install check} for GNUnet. -@c *********************************************************************** +@cindex TESTING library @node GNUnet's TESTING library @section GNUnet's TESTING library @@ -1028,7 +1046,7 @@ hosts. * Testing with multiple processes:: @end menu -@c *********************************************************************** +@cindex TESTING API @node API @subsection API @@ -1162,7 +1180,10 @@ static void run (void *cls, GNUNET_PROGRAM_run (argc, argv, "NAME-OF-TEST", - "nohelp", options, &run, cls); + "nohelp", + options, + &run, + cls); @end example @@ -1240,7 +1261,7 @@ which the value is measured, for instance "kb/s" or "kb of RAM/node". If you wish to use Gauger for your own project, you can grab a copy of the latest stable release or check out Gauger's Subversion repository. -@c *********************************************************************** +@cindex TESTBED Subsystem @node GNUnet's TESTBED Subsystem @section GNUnet's TESTBED Subsystem @@ -1301,10 +1322,17 @@ following substitutions are supported @end itemize Note that the substitution placemark is replaced only when the -corresponding field is available and only once. Specifying @code{%u@@%h} -doesn't work either. If you want to user username substitutions for SSH +corresponding field is available and only once. Specifying +@example +%u@atchar{}%h +@end example +doesn't work either. +If you want to user username substitutions for SSH use the argument @code{-l} before the username substitution. -Ex: @code{ssh -l %u -p %p %h} +For exmaple: +@example +ssh -l %u -p %p %h +@end example The testbed API and the helper communicate through the helpers stdin and stdout. As the helper is started through a remote shell on remote hosts @@ -1324,7 +1352,8 @@ Since the testbed API executes the remote shell as a non-interactive shell, certain scripts like .bashrc, .profiler may not be executed. If this is the case testbed API can be forced to execute an interactive shell by setting up the environmental variable -`GNUNET_TESTBED_RSH_CMD_SUFFIX' to a shell program. +@code{GNUNET_TESTBED_RSH_CMD_SUFFIX} to a shell program. + An example could be: @example @@ -1353,7 +1382,7 @@ Testbed API can accessed by including the * Hosts file format:: * Topology file format:: * Testbed Barriers:: -* Automatic large-scale deployment of GNUnet in the PlanetLab testbed:: +* Automatic large-scale deployment in the PlanetLab testbed:: * TESTBED Caveats:: @end menu @@ -1400,11 +1429,12 @@ random links are to be given topology where peer connectivity follows power law - new peers are connected with high probabililty to well connected peers. @footnote{See Emergence of Scaling in Random Networks. Science 286, -509-512, 1999.} +509-512, 1999 +(@uref{https://gnunet.org/git/bibliography.git/plain/docs/emergence_of_scaling_in_random_networks__barabasi_albert_science_286__1999.pdf, pdf})} @item @code{GNUNET_TESTBED_TOPOLOGY_FROM_FILE}: The topology information -is loaded from a file. The path to the file has to be given. See Topology -file format for the format of this file. +is loaded from a file. The path to the file has to be given. +@xref{Topology file format} for the format of this file. @item @code{GNUNET_TESTBED_TOPOLOGY_NONE}: No topology @end itemize @@ -1415,6 +1445,7 @@ the variable @code{OVERLAY_TOPOLOGY} to the following values in the configuration passed to Testbed API functions @code{GNUNET_TESTBED_test_run()} and @code{GNUNET_TESTBED_run()}: + @itemize @bullet @item @code{CLIQUE} @item @code{RING} @@ -1442,7 +1473,7 @@ how many peers a peer should be atleast connected to. Similarly, the topology @code{FROM_FILE} requires the option @code{OVERLAY_TOPOLOGY_FILE} to contain the path of the file containing the topology information. This option is ignored for the rest of the -topologies. See Topology file format for the format of this file. +topologies. @xref{Topology file format} for the format of this file. @c *********************************************************************** @node Hosts file format @@ -1464,7 +1495,9 @@ These functions require the hosts file to be of the following format: host, the hostname of the host and the port number to use for the remote shell program. All thee values should be given. @item These details should be given in the following format: -@code{@@:} +@example +@@: +@end example @end itemize Note that having canonical hostnames may cause problems while resolving @@ -1484,7 +1517,8 @@ newline characters are ignored. The API will then try to connect each origin peer to the target peer. For example, the following file will result in 5 overlay connections: -[2->1], [3->1],[4->3], [0->3], [2->0]@ @code{@ 1:2|3@ 3:4| 0@ 0: 2@ } +[2->1], [3->1],[4->3], [0->3], [2->0]@ +@code{@ 1:2|3@ 3:4| 0@ 0: 2@ } @c *********************************************************************** @node Testbed Barriers @@ -1610,9 +1644,9 @@ message from its upward propagation --- the upward propagation is needed for ensuring that the barrier is reached by all the controllers and the downward propagation is for triggering that the barrier is crossed. -@c *********************************************************************** -@node Automatic large-scale deployment of GNUnet in the PlanetLab testbed -@subsection Automatic large-scale deployment of GNUnet in the PlanetLab testbed +@cindex PlanetLab testbed +@node Automatic large-scale deployment in the PlanetLab testbed +@subsection Automatic large-scale deployment in the PlanetLab testbed PlanetLab is as a testbed for computer networking and distributed systems research. It was established in 2002 and as of June 2010 was composed of @@ -1653,14 +1687,17 @@ best. @c FIXME: Is there an official, safer way instead of blind-piping a @c script? @c FIXME: Use newer pypi URLs below. -Install Distribute for python:@ @code{@ curl -http://python-distribute.org/distribute_setup.py | sudo python@ } +Install Distribute for python: + +@example +curl http://python-distribute.org/distribute_setup.py | sudo python +@end example Install Distribute for zope.interface <= 3.8.0 (4.0 and 4.0.1 will not work): @example -export PYPI="https://pypi.python.org/packages/source" +export PYPI=@value{PYPI-URL} wget $PYPI/z/zope.interface/zope.interface-3.8.0.tar.gz tar zvfz zope.interface-3.8.0.tar.gz cd zope.interface-3.8.0 @@ -1769,7 +1806,7 @@ terminal and then in the opened session run it again. If you were not asked for a password on either login, then you should be good to go. -@c *********************************************************************** +@cindex TESTBED Caveats @node TESTBED Caveats @subsection TESTBED Caveats @@ -1969,6 +2006,7 @@ variables will propagate them to all other services. "GNUNET_LOG" and "GNUNET_FORCE_LOG" variables must contain a specially formatted @strong{logging definition} string, which looks like this:@ +@c FIXME: Can we close this with [/component] instead? @example [component];[file];[function];[from_line[-to_line]];loglevel[/component...] @end example @@ -2811,44 +2849,51 @@ configuration file, which are not found in the server API. The dual to the service/server API is the client API, which can be used to access services. -The most common way to start a service is to use the GNUNET_SERVICE_run -function from the program's main function. GNUNET_SERVICE_run will then -parse the command line and configuration files and, based on the options -found there, start the server. It will then give back control to the main +The most common way to start a service is to use the +@code{GNUNET_SERVICE_run} function from the program's main function. +@code{GNUNET_SERVICE_run} will then parse the command line and +configuration files and, based on the options found there, +start the server. It will then give back control to the main program, passing the server and the configuration to the -GNUNET_SERVICE_Main callback. GNUNET_SERVICE_run will also take care of -starting the scheduler loop. If this is inappropriate (for example, -because the scheduler loop is already running), GNUNET_SERVICE_start and -related functions provide an alternative to GNUNET_SERVICE_run. +@code{GNUNET_SERVICE_Main} callback. @code{GNUNET_SERVICE_run} +will also take care of starting the scheduler loop. +If this is inappropriate (for example, because the scheduler loop +is already running), @code{GNUNET_SERVICE_start} and +related functions provide an alternative to @code{GNUNET_SERVICE_run}. When starting a service, the service_name option is used to determine which sections in the configuration file should be used to configure the -service. A typical value here is the name of the src/ sub-directory, for -example "statistics". The same string would also be given to -GNUNET_CLIENT_connect to access the service. +service. A typical value here is the name of the @file{src/} +sub-directory, for example "@file{statistics}". +The same string would also be given to +@code{GNUNET_CLIENT_connect} to access the service. Once a service has been initialized, the program should use the -GNUNET_SERVICE_Main callback to register message handlers using -GNUNET_SERVER_add_handlers. The service will already have registered a -handler for the "TEST" message. +@code{GNUNET_SERVICE_Main} callback to register message handlers +using @code{GNUNET_SERVER_add_handlers}. +The service will already have registered a handler for the +"TEST" message. -The option bitfield (enum GNUNET_SERVICE_Options) determines how a service -should behave during shutdown. There are three key strategies: +@fnindex GNUNET_SERVICE_Options +The option bitfield (@code{enum GNUNET_SERVICE_Options}) +determines how a service should behave during shutdown. +There are three key strategies: @table @asis -@item instant (GNUNET_SERVICE_OPTION_NONE) Upon receiving the shutdown +@item instant (@code{GNUNET_SERVICE_OPTION_NONE}) +Upon receiving the shutdown signal from the scheduler, the service immediately terminates the server, closing all existing connections with clients. -@item manual -(GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN) The service does nothing by itself +@item manual (@code{GNUNET_SERVICE_OPTION_MANUAL_SHUTDOWN}) +The service does nothing by itself during shutdown. The main program will need to take the appropriate action by calling GNUNET_SERVER_destroy or GNUNET_SERVICE_stop (depending on how the service was initialized) to terminate the service. This method is used by gnunet-service-arm and rather uncommon. -@item soft -(GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN) Upon receiving the shutdown signal -from the scheduler, the service immediately tells the server to stop +@item soft (@code{GNUNET_SERVICE_OPTION_SOFT_SHUTDOWN}) +Upon receiving the shutdown signal from the scheduler, +the service immediately tells the server to stop listening for incoming clients. Requests from normal existing clients are still processed and the server/service terminates once all normal clients have disconnected. Clients that are not expected to ever disconnect (such @@ -3699,7 +3744,8 @@ miniscule in practice --- as long as a connection is used for a significant number of messages. @multitable @columnfractions .20 .15 .15 .15 .15 .15 -@headitem Transport @tab UDP @tab TCP @tab SMTP (Purdue sendmail) @tab SMTP (RH 8.0) @tab SMTP (SGL qmail) +@headitem Transport @tab UDP @tab TCP @tab SMTP (Purdue sendmail) +@tab SMTP (RH 8.0) @tab SMTP (SGL qmail) @item 11 bytes @tab 31 ms @tab 55 ms @tab 781 s @tab 77 s @tab 24 s @item 407 bytes @tab 37 ms @tab 62 ms @tab 789 s @tab 78 s @tab 25 s @item 1,221 bytes @tab 46 ms @tab 73 ms @tab 804 s @tab 78 s @tab 25 s @@ -4225,8 +4271,7 @@ then adds fundamental security to the connections: @itemize @bullet @item confidentiality with so-called perfect forward secrecy; we use -ECDHE@footnote{@uref{http://en.wikipedia.org/wiki/Elliptic_curve_ -Diffie%E2%80%93Hellman, Elliptic-curve Diffie---Hellman}} +ECDHE@footnote{@uref{http://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman, Elliptic-curve Diffie---Hellman}} powered by Curve25519 @footnote{@uref{http://cr.yp.to/ecdh.html, Curve25519}} for the key exchange and then use symmetric encryption, encrypting with both AES-256 @@ -4240,8 +4285,7 @@ variant of ECDSA @item integrity protection (using SHA-512 @footnote{@uref{http://en.wikipedia.org/wiki/SHA-2, SHA-512}} to do encrypt-then-MAC -@footnote{@uref{http://en.wikipedia.org/wiki/Authenticated_encryption, -encrypt-then-MAC}}) +@footnote{@uref{http://en.wikipedia.org/wiki/Authenticated_encryption, encrypt-then-MAC}}) @item Replay @footnote{@uref{http://en.wikipedia.org/wiki/Replay_attack, replay}} protection (using nonces, timestamps, challenge-response, @@ -4491,8 +4535,7 @@ public-private key pair and signs the corresponding @code{EphemeralKeyMessage} with its long-term key (which we usually call the peer's identity; the hash of the public long term key is what results in a @code{struct GNUNET_PeerIdentity} in all GNUnet APIs. The ephemeral -key is ONLY used for an ECDHE@footnote{@uref{http://en.wikipedia.org/wiki/ -Elliptic_curve_Diffie%E2%80%93Hellman, Elliptic-curve Diffie---Hellman}} +key is ONLY used for an ECDHE@footnote{@uref{http://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman, Elliptic-curve Diffie---Hellman}} exchange by the CORE service to establish symmetric session keys. A peer will use the same @code{EphemeralKeyMessage} for all peers for @code{REKEY_FREQUENCY}, which is usually 12 hours. After that time, it @@ -4502,8 +4545,7 @@ fresh symmetric session keys. Note that peers independently decide on when to discard ephemeral keys; it is not a protocol violation to discard keys more often. Ephemeral keys are also never stored to disk; restarting a peer will thus always create a fresh ephemeral key. The use of ephemeral -keys is what provides @uref{http://en.wikipedia.org/wiki/Forward_secrecy, -forward secrecy}. +keys is what provides @uref{http://en.wikipedia.org/wiki/Forward_secrecy, forward secrecy}. Just before transmission, the @code{EphemeralKeyMessage} is patched to reflect the current sender_status, which specifies the current state of @@ -4550,11 +4592,11 @@ All functions related to the key exchange and encryption/decryption of messages can be found in @file{gnunet-service-core_kx.c} (except for the cryptographic primitives, which are in @file{util/crypto*.c}). Given the key material from ECDHE, a Key derivation function -@footnote{@uref{https://en.wikipedia.org/wiki/Key_derivation_function, Key -derivation function}} is used to derive two pairs of encryption and -decryption keys for AES-256 and TwoFish, as well as initialization vectors -and authentication keys (for HMAC@footnote{@uref{https://en.wikipedia.org/ -wiki/HMAC, HMAC}}). The HMAC is computed over the encrypted payload. +@footnote{@uref{https://en.wikipedia.org/wiki/Key_derivation_function, Key derivation function}} +is used to derive two pairs of encryption and decryption keys for AES-256 +and TwoFish, as well as initialization vectors and authentication keys +(for HMAC@footnote{@uref{https://en.wikipedia.org/wiki/HMAC, HMAC}}). +The HMAC is computed over the encrypted payload. Encrypted messages include an iv_seed and the HMAC in the header. Each encrypted message in the CORE service includes a sequence number and @@ -4786,10 +4828,10 @@ GNUnet's NSE protocol avoids these drawbacks. The NSE subsystem is designed to be resilient against these attacks. -It uses @uref{http://en.wikipedia.org/wiki/Proof-of-work_system, proofs -of work} to prevent one peer from impersonating a large number of -participants, which would otherwise allow an adversary to artifically -inflate the estimate. +It uses @uref{http://en.wikipedia.org/wiki/Proof-of-work_system, proofs of work} +to prevent one peer from impersonating a large number of participants, +which would otherwise allow an adversary to artifically inflate the +estimate. The DoS protection comes from the time-based nature of the protocol: the estimates are calculated periodically and out-of-time traffic is either ignored or stored for later retransmission by benign peers. @@ -8196,8 +8238,8 @@ strings, one in each line. @noindent You can create regular expressions and search strings for every AS in the Internet using the attached scripts. You need one of the -@uref{http://data.caida.org/datasets/routing/routeviews-prefix2as/, CAIDA -routeviews prefix2as} data files for this. Run +@uref{http://data.caida.org/datasets/routing/routeviews-prefix2as/, CAIDA routeviews prefix2as} +data files for this. Run @example create_regex.py diff --git a/doc/documentation/chapters/installation.texi b/doc/documentation/chapters/installation.texi index 6feb2f4dc..6d7b7f926 100644 --- a/doc/documentation/chapters/installation.texi +++ b/doc/documentation/chapters/installation.texi @@ -79,8 +79,7 @@ to work against GNU nettle > 2.7, due to some API updatings done by nettle. Thus it should be compiled against nettle 2.7 and, in case you get some error on the reference to `rpl_strerror' being undefined, follow the instructions on -@uref{http://lists.gnupg.org/pipermail/gnutls-devel/2013-November/00 -6588.html, this} +@uref{http://lists.gnupg.org/pipermail/gnutls-devel/2013-November/006588.html, this} post (and the link inside it)).} @item @uref{https://gnunet.org/gnurl, gnURL} libgnurl @geq{} 7.34.0 @footnote{must be compiled after @code{GnuTLS}} @@ -1554,7 +1553,7 @@ installations. An interesting to-be-implemented-feature of gnunet-update is that these updates are propagated through GNUnet's peer-to-peer network. More information about gnunet-update can be found at @c FIXME: Use correct cgit URL -@uref{https://gnunet.org/git/gnunet-update/README}. +@uref{https://gnunet.org/git/gnunet-update.git/tree/plain/README}. While the project is still under development, we have implemented the following features which we believe may be helpful for users and we @@ -1777,22 +1776,24 @@ GNUnet uses the portable POSIX thread library for multi-threading..@ @item -Save @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86 -/libpthreadGC2.a, libpthreadGC2.a} (x86) or @uref{ftp://sources.redhat.c -om/pub/pthreads-win32/dll-latest/lib/x64/libpthreadGC2.a, libpthreadGC2. -a} (x64) as libpthread.a into the lib directory (c:\mingw\mingw\lib\libpt -hread.a) +Save +@uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/libpthreadGC2.a, libpthreadGC2.a} +(x86) or +@uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x64/libpthreadGC2.a, libpthreadGC2.a} +(x64) as libpthread.a into the @file{lib} +directory (@file{c:\mingw\mingw\lib\libpthread.a}). @item -Save @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86 -/pthreadGC2.dll, pthreadGC2.dll} (x86) or @uref{ftp://sources.redhat.c -om/pub/pthreads-win32/dll-latest/lib/x64/pthreadGC2.dll, libpthreadGC2.a} -(x64) into the MinGW bin directory (c:\mingw\mingw\bin) +Save +@uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/pthreadGC2.dll, pthreadGC2.dll} +(x86) or +@uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x64/pthreadGC2.dll, libpthreadGC2.a} +(x64) into the MinGW @file{bin} directory (@file{c:\mingw\mingw\bin}). @item -Download all header files from @uref{ftp://sources.redhat.com/pub/pthread -s-win32/dll-latest/include/, include/} to the @file{include} directory -(c:\mingw\mingw\include) +Download all header files from +@uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/include/, include/} +to the @file{include} directory (@file{c:\mingw\mingw\include}). @end itemize @@ -1883,9 +1884,8 @@ Get @uref{http://www.gtk.org/download/win32.php, pkg-config} and libpng and unpack them to the MinGW directory (c:\mingw\mingw)@ @ Here is an all-in-one package for -@uref{http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bu -ndle_2.24.10-20120208_win32.zip, gtk+dependencies}. -Do not overwrite any existing files! +@uref{http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip, gtk+dependencies} +. Do not overwrite any existing files! @item @strong{Glade}@ @@ -1947,14 +1947,11 @@ directory (c:\mingw\mingw) OGG Vorbis is used to extract meta-data from .ogg files@ @ Get the packages -@uref{http://www.gnunet.org/libextractor/download/win/libogg-1.1.4.zip, -libogg} +@uref{http://www.gnunet.org/libextractor/download/win/libogg-1.1.4.zip, libogg} and -@uref{http://www.gnunet.org/libextractor/download/win/libvorbis-1.2.3.zip, -libvorbis} +@uref{http://www.gnunet.org/libextractor/download/win/libvorbis-1.2.3.zip, libvorbis} from the -@uref{http://ftp.gnu.org/gnu/libextractor/libextractor-w32-1.0.0.zip, -libextractor win32 build} +@uref{http://ftp.gnu.org/gnu/libextractor/libextractor-w32-1.0.0.zip, libextractor win32 build} and unpack them to the MinGW directory (c:\mingw\mingw) @item @@ -1963,8 +1960,7 @@ and unpack them to the MinGW directory (c:\mingw\mingw) (lib)Exiv2 is used to extract meta-data from files with Exiv2 meta-data@ @ Download -@uref{http://www.gnunet.org/libextractor/download/win/exiv2-0.18.2.zip, -Exiv2} +@uref{http://www.gnunet.org/libextractor/download/win/exiv2-0.18.2.zip, Exiv2} and unpack it to the MSYS directory (c:\mingw) @end itemize @@ -2959,15 +2955,13 @@ ProxyPassReverse https://gnunet.foo.org:4433/ @noindent More information about the apache mod_proxy configuration can be found -at @uref{http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass, -http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass} +here: @uref{http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass} +. @strong{Configure your nginx HTTPS webserver} Since nginx does not support chunked encoding, you first of all have to -install @code{chunkin}:@ -@uref{http://wiki.nginx.org/HttpChunkinModule, -http://wiki.nginx.org/HttpChunkinModule} +install @code{chunkin}: @uref{http://wiki.nginx.org/HttpChunkinModule}. To enable chunkin add: diff --git a/doc/documentation/chapters/philosophy.texi b/doc/documentation/chapters/philosophy.texi index c4572e6df..3ebdf473e 100644 --- a/doc/documentation/chapters/philosophy.texi +++ b/doc/documentation/chapters/philosophy.texi @@ -178,8 +178,7 @@ different addresses. Binding messages expire after at most a week (the timeout can be shorter if the user configures the node appropriately). This expiration ensures that the network will eventually get rid of outdated advertisements.@footnote{More details can be found in -@uref{https://gnunet.org/transports, A Transport Layer Abstraction for -Peer-to-Peer Networks}} +@uref{https://gnunet.org/transports, A Transport Layer Abstraction for Peer-to-Peer Networks}} @cindex Resource Sharing @node Accounting to Encourage Resource Sharing @@ -300,8 +299,7 @@ GNUnet we do not have to indirect the replies if we don't think we need more traffic to hide our own actions. This increases the efficiency of the network as we can indirect less under -higher load.@footnote{More details can be found in @uref{https://gnunet. -org/gap, this paper}} +higher load.@footnote{More details can be found in @uref{https://gnunet.org/gap, this paper}} @cindex Deniability @node Deniability diff --git a/doc/documentation/gnunet.texi b/doc/documentation/gnunet.texi index cbceccbb3..6222cf314 100644 --- a/doc/documentation/gnunet.texi +++ b/doc/documentation/gnunet.texi @@ -6,15 +6,16 @@ @documentencoding UTF-8 @settitle GNUnet Reference Manual @exampleindent 2 +@urefbreakstyle before @c %**end of header @include version.texi @c Set Versions which might be used in more than one place: -@set GNUNET-DIST-URL https://ftp.gnu.org/gnu/gnunet/ -@set GNUNET-VERSION 0.10.1 +@set GNUFTP-URL https://ftp.gnu.org/gnu/gnunet +@set PYPI-URL https://pypi.python.org/packages/source @set GNURL-VERSION-CURRENT 7.55.1 -@set GNURL-DIST-URL https://gnunet.org/sites/default/files/ +@set GNUNET-DIST-URL https://gnunet.org/sites/default/files/ @c @set OPENPGP-SIGNING-KEY-ID @copying