instructions you should be able to install and then start user-interfaces
to interact with the network.
-Note: This manual is far from complete, and we welcome informed
-contributions, be it in the form of new chapters or insightful comments.
+Note: This manual is far from complete, and we welcome contributions, be
+it in the form of new chapters or insightful comments.
@menu
* Dependencies::
* Build instructions for Debian 7.5::
* Installing GNUnet from Git on Ubuntu 14.4::
* Build instructions for Debian 8::
+@c * Build instructions for OpenBSD 6.2::
* Outdated build instructions for previous revisions::
@c * Portable GNUnet::
* The graphical configuration interface::
These applications must be installed for various experimental or otherwise
optional features such as @command{gnunet-conversation},
-and @command{gnunet-gtk} (most of these features are only build if you
+and @command{gnunet-conversation-gtk} (most of these features are only build if you
configure GNUnet with @command{--enable-experimental}):
@itemize @bullet
@command{./configure} command.
@code{DEBUG}-level log messages are in English only and
should only be useful for developers (or for filing
-really detailed bug reports).
+really detailed bug reports).
Finally, you probably want to compile @command{gnunet-gtk}, which
includes @command{gnunet-setup} (a graphical tool for
to specify a different port number in their personal configuration file.
Finally, the user should perform the basic initial setup for the GNU Name
-System (GNS). This is done by running two commands:
+System (GNS) certificate authority. This is done by running:
@example
-$ gnunet-gns-import.sh
$ gnunet-gns-proxy-setup-ca
@end example
@c FIXME: Document new behavior.
You might want to make sure that @file{/lib/libnss_gns.so.2} exists on
-your system, it should have been created during the installation.
+your system, it should have been created during the installation.
@node Build instructions for Ubuntu 12.04 using Git
@section Build instructions for Ubuntu 12.04 using Git
@end example
@noindent
-and rerun the gpg --verify command.
+and rerun the gpg --verify command.
@example
$ tar xvf gnurl-7.57.0.tar.xz
We begin by installing a few Debian packages from stable:
@example
-# apt-get install gcc make python-zbar libltdl-dev libsqlite3-dev \
+# apt-get install gcc make python-zbar libltdl-dev libsqlite3-dev \
libunistring-dev libopus-dev libpulse-dev openssl libglpk-dev texlive \
libidn11-dev libmysqlclient-dev libpq-dev libarchive-dev libbz2-dev \
libflac-dev libgif-dev libglib2.0-dev libgtk-3-dev libmpeg2-4-dev \
applications, but MySQL can offer better performance and Postgres better
resillience.
+@c @node Build instructions for OpenBSD 6.2
+@c @section Build instructions for OpenBSD 6.2
+
@node Outdated build instructions for previous revisions
@section Outdated build instructions for previous revisions
@item Unzip the downloaded source tarball using your favourite
unzipper application In the MSYS shell
-@item change to the respective directory
+@item change to the respective directory
@item Configure glpk for "i686-pc-mingw32":
This document is a @b{DEPRECATED} installation guide for GNUnet on
Windows.
It will not work for recent GNUnet versions, but maybe it will be of
-some use if problems arise.
+some use if problems arise.
The Windows build uses a UNIX emulator for Windows,
@uref{http://www.mingw.org/, MinGW}, to build the executable modules.
* Installer::
* Source::
@end menu
-
+
@node Hardware and OS requirements
@subsubsection Hardware and OS requirements
processes.
MinGW's standard shell (@command{msys.bat}) is not suitable
because it opens a separate console window.
-On Vista, @command{bash.bat} needs to be run as Administrator.
+On Vista, @command{bash.bat} needs to be run as Administrator.
@item
Start @command{bash.sh} and rename
@item @strong{SQLite}@
GNUnet uses the SQLite database to store data.
-Get the prebuilt binary from here and unpack it to your MinGW directory.
+Get the prebuilt binary from here and unpack it to your MinGW directory.
@item @strong{MySQL}@
As an alternative to SQLite, GNUnet also supports MySQL.
--output-lib libmysqlclient.a -k
@end example
-@item Copy include\* to include\mysql\
+@item Copy include\* to include\mysql\
@item Pass @code{--with-mysql=/c/mysql} to
@command{./configure} and copy @file{libmysql.dll}
@item @strong{GTK+}@
-@command{gnunet-gtk} and @command{libextractor} depend on GTK.
+@command{gnunet-fs-gtk} and @command{libextractor} depend on GTK.
Get the the binary and developer packages of @command{atk},
@command{glib}, @command{gtk}, @command{iconv},
@command{gettext-runtime}, @command{pango} from
. Do not overwrite any existing files!
@item @strong{Glade}@
-@command{gnunet-gtk} and @command{gnunet-setup} were created using
+@command{gnunet-*-gtk} and @command{gnunet-setup} were created using
this interface builder
@itemize @bullet
(small and fast) set the variable @code{CFLAGS}:
@example
-export CFLAGS='-O2 -march=pentium -fomit-frame-pointer'
+export CFLAGS='-O2 -march=pentium -fomit-frame-pointer'
./configure --prefix=$HOME --with-extractor=$HOME
@end example
@subsubsection Source
@c FIXME: URL
-The sources of all dependencies are available here.
+The sources of all dependencies are available here.
@c @node Portable GNUnet
@c @section Portable GNUnet
@end itemize
In addition authentication at the proxy with username and password can be
-configured.
+configured.
To configure proxy support for the hostlist client in the
@command{gnunet-setup} tool, select the "hostlist" tab and select
@item Access mysql as root:
@example
-$ mysql -u root -p
+$ mysql -u root -p
@end example
@noindent
@subsubsection Reverse Proxy - Configure your Apache2 HTTPS webserver
We assume that you already have an HTTPS server running, if not please
-check how to configure a HTTPS host. An easy to use example is the
-@file{apache2/sites-available/default-ssl} example configuration file.
+check how to configure a HTTPS host. An uncomplicated to use example
+is the example configuration file for Apache2/HTTPD provided in
+@file{apache2/sites-available/default-ssl}.
In the respective HTTPS @code{server config},@code{virtual host} or
@code{directory} section add the following lines:
@noindent
More information about the apache mod_proxy configuration can be found
-here: @uref{http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass}
-.
+in the Apache documentation@footnote{@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}}
@node Reverse Proxy - Configure your nginx HTTPS webserver
@subsubsection Reverse Proxy - 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}.
+install the @code{chunkin} module@footnote{@uref{http://wiki.nginx.org/HttpChunkinModule, http://wiki.nginx.org/HttpChunkinModule}}
To enable chunkin add:
In the @code{server} section add:
@example
-location /bar/
-@{
+location /bar/ @{
proxy_pass http://gnunet.foo.org:1080/;
proxy_buffering off;
proxy_connect_timeout 5; # more than http_server
* GNS Proxy Setup::
* Setup of the GNS CA::
* Testing the GNS setup::
-* Automatic Shortening in the GNU Name System::
@end menu
First of all, GNS needs to be integrated with the operating system. Most
of this section is about the operating system level integration.
-Additionally, each individual user who wants to use the system must also
-initialize their GNS zones. This can be done by running (after starting
-GNUnet)
-
-@example
-$ gnunet-gns-import.sh
-@end example
-
-@noindent
-after the local GNUnet peer has been started. Note that the namestore (in
-particular the namestore database backend) should not be reconfigured
-afterwards (as records are not automatically migrated between backends).
-
The remainder of this chapter will detail the various methods for
configuring the use of GNS with your operating system.
curl 7.56.0 (x86_64-unknown-linux-gnu) libcurl/7.56.0 \
GnuTLS/3.5.13 zlib/1.2.11 libidn2/2.0.4
Release-Date: 2017-10-08
-Protocols: http https
+Protocols: http https
Features: AsynchDNS IDN IPv6 Largefile NTLM SSL libz \
TLS-SRP UnixSockets HTTPS-proxy
@end example
the SSL functionality of the proxy:
@example
-$ gnunet-namestore -a -e "1 d" -n "homepage" -t A -V 131.159.74.67
-$ gnunet-namestore -a -e "1 d" -n "homepage" -t LEHO -V "gnunet.org"
+$ gnunet-identity -C test
+$ gnunet-namestore -a -e "1 d" -n "homepage" \
+ -t A -V 131.159.74.67 -z test
+$ gnunet-namestore -a -e "1 d" -n "homepage" \
+ -t LEHO -V "gnunet.org" -z test
@end example
@noindent
Icecat) you also have to go to @code{about:config} and set the key
@code{network.proxy.socks_remote_dns} to @code{true}.
-When you visit @code{https://homepage.gnu/}, you should get to the
+When you visit @code{https://homepage.test/}, you should get to the
@code{https://gnunet.org/} frontpage and the browser (with the correctly
configured proxy) should give you a valid SSL certificate for
@code{homepage.gnu} and no warnings. It should look like this:
@c FIXME: Image does not exist, create it or save it from Drupal?
@c @image{images/gnunethpgns.png,5in,, picture of homepage.gnu in Webbrowser}
-@node Automatic Shortening in the GNU Name System
-@subsubsection Automatic Shortening in the GNU Name System
-
-This page describes a possible option for 'automatic name shortening',
-which you can choose to enable with the GNU Name System.
-
-When GNS encounters a name for the first time, it can use the 'NICK'
-record of the originating zone to automatically generate a name for the
-zone. If automatic shortening is enabled, those auto-generated names will
-be placed (as private records) into your personal 'shorten' zone (to
-prevent confusion with manually selected names).
-Then, in the future, if the same name is encountered again, GNS will
-display the shortened name instead (the first time, the long name will
-still be used as shortening typically happens asynchronously as looking up
-the 'NICK' record takes some time). Using this feature can be a convenient
-way to avoid very long @code{.gnu} names; however, note that names from
-the shorten-zone are assigned on a first-come-first-serve basis and should
-not be trusted. Furthermore, if you enable this feature, you will no
-longer see the full delegation chain for zones once shortening has been
-applied.
@node Configuring the GNUnet VPN
@subsection Configuring the GNUnet VPN
be owned by group "gnunetdns" unless that group already exists (!).
An alternative name for the "gnunetdns" group can be specified using the
@code{--with-gnunetdns=GRPNAME} configure option.
-