gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [gnunet] 13/75: doc: stagging file 'FROM_SOURCE' with old r


From: gnunet
Subject: [GNUnet-SVN] [gnunet] 13/75: doc: stagging file 'FROM_SOURCE' with old repetive instructions
Date: Thu, 09 Aug 2018 23:58:10 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

commit 63775bc55d68efd8d88e0204da99c3e2f3a4e7a0
Author: Nils Gillmann <address@hidden>
AuthorDate: Wed Jun 6 12:19:00 2018 +0000

    doc: stagging file 'FROM_SOURCE' with old repetive instructions
    
    Signed-off-by: Nils Gillmann <address@hidden>
---
 doc/FROM_SOURCE | 1423 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1423 insertions(+)

diff --git a/doc/FROM_SOURCE b/doc/FROM_SOURCE
new file mode 100644
index 000000000..074b6a91e
--- /dev/null
+++ b/doc/FROM_SOURCE
@@ -0,0 +1,1423 @@
address@hidden Build instructions for Ubuntu 12.04 using Git
address@hidden Build instructions for Ubuntu 12.04 using Git
+
address@hidden
+* Install the required build tools::
+* Install libgcrypt 1.6 and libgpg-error::
+* Install gnutls with DANE support::
+* Install libgnurl::
+* Install libmicrohttpd from Git::
+* Install libextractor from Git::
+* Install GNUnet dependencies::
+* Build GNUnet::
+* Install the GNUnet-gtk user interface from Git::
address@hidden menu
+
address@hidden  Install the required build tools
address@hidden  Install the required build tools
+
+First, make sure Git is installed on your system:
+
address@hidden
+$ sudo apt-get install git
address@hidden example
+
+Install the essential buildtools:
+
address@hidden
+$ sudo apt-get install automake autopoint autoconf libtool
address@hidden example
+
address@hidden Install libgcrypt 1.6 and libgpg-error
address@hidden Install libgcrypt 1.6 and libgpg-error
+
address@hidden source installation - libgpg-error}
+
address@hidden Install gnutls with DANE support
address@hidden Install gnutls with DANE support
+
address@hidden @bullet
address@hidden @ref{generic source installation - nettle}
address@hidden @ref{generic source installation - ldns}
address@hidden @ref{generic source installation - libunbound/unbound}
address@hidden @ref{generic source installation - gnutls}
address@hidden @ref{generic source installation - libgcrypt}
address@hidden itemize
+
address@hidden Install libgnurl
address@hidden Install libgnurl
+
+Follow the @ref{generic source installation - libgnurl}.
+
address@hidden Install libmicrohttpd from Git
address@hidden Install libmicrohttpd from Git
+
address@hidden
+$ git clone https://gnunet.org/git/libmicrohttpd
+$ cd libmicrohttpd/
+$ ./bootstrap
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
address@hidden  Install libextractor from Git
address@hidden  Install libextractor from Git
+
+Install libextractor dependencies:
+
address@hidden
+$ sudo apt-get install zlib1g-dev libgsf-1-dev libmpeg2-4-dev \
+ libpoppler-dev libvorbis-dev libexiv2-dev libjpeg-dev \
+ libtiff-dev libgif-dev libvorbis-dev libflac-dev libsmf-dev \
+ g++
address@hidden example
+
+Build libextractor:
+
address@hidden
+$ git clone https://gnunet.org/git/libextractor
+$ cd libextractor
+$ ./bootstrap
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
address@hidden Install GNUnet dependencies
address@hidden Install GNUnet dependencies
+
address@hidden
+$ sudo apt-get install libidn11-dev libunistring-dev libglpk-dev \
+ libpulse-dev libbluetooth-dev libsqlite-dev
address@hidden example
+
+Install libopus:
+
address@hidden
+$ wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
+$ tar xf opus-1.1.tar.gz
+$ cd opus-1.1/
+$ ./configure
+$ sudo make install ; cd ..
address@hidden example
+
+Choose one or more database backends:
+
+SQLite3:
address@hidden
+$ sudo apt-get install libsqlite3-dev
address@hidden example
+MySQL:
address@hidden
+$ sudo apt-get install libmysqlclient-dev
address@hidden example
+PostgreSQL:
address@hidden
+$ sudo apt-get install libpq-dev postgresql
address@hidden example
+
+
+
address@hidden Build GNUnet
address@hidden Build GNUnet
+
+
+
address@hidden
+* Configuring the installation path::
+* Configuring the system::
+* Installing components requiring sudo permission::
+* Build::
address@hidden menu
+
address@hidden Configuring the installation path
address@hidden Configuring the installation path
+
+You can specify the location of the GNUnet installation by setting the
+prefix when calling the configure script with @code{--prefix=DIRECTORY}
+
address@hidden
+$ export PATH=$PATH:DIRECTORY/bin
address@hidden example
+
address@hidden Configuring the system
address@hidden Configuring the system
+
+Please make sure NOW that you have created a user and group 'gnunet'
+and additionally a group 'gnunetdns':
+
address@hidden
+$ sudo addgroup gnunet
+$ sudo addgroup gnunetdns
+$ sudo adduser gnunet
address@hidden example
+
+Each GNUnet user should be added to the 'gnunet' group (may
+require fresh login to come into effect):
+
address@hidden
+$ sudo useradd -G  gnunet
address@hidden example
+
address@hidden Installing components requiring sudo permission
address@hidden Installing components requiring sudo permission
+
+Some components, like the nss plugin required for GNS, may require root
+permissions. To allow these few components to be installed use:
+
address@hidden
+$ ./configure --with-sudo
address@hidden example
+
address@hidden Build
address@hidden Build
+
address@hidden
+$ git clone https://gnunet.org/git/gnunet/
+$ cd gnunet/
+$ ./bootstrap
address@hidden example
+
+Use the required configure call including the optional installation prefix
address@hidden or the sudo permissions:
+
address@hidden
+$ ./configure [ --with-sudo | --with-prefix=PREFIX ]
address@hidden example
+
address@hidden
+$ make; sudo make install
address@hidden example
+
+After installing it, you need to create an empty configuration file:
+
address@hidden
+mkdir ~/.gnunet; touch ~/.gnunet/gnunet.conf
address@hidden example
+
+And finally you can start GNUnet with:
+
address@hidden
+$ gnunet-arm -s
address@hidden example
+
address@hidden Install the GNUnet-gtk user interface from Git
address@hidden Install the GNUnet-gtk user interface from Git
+
+
+Install depencies:
+
address@hidden
+$ sudo apt-get install libgtk-3-dev libunique-3.0-dev libgladeui-dev \
+ libqrencode-dev
address@hidden example
+
+Build GNUnet (with an optional prefix) and execute:
+
address@hidden
+$ git clone https://gnunet.org/git/gnunet-gtk/
+$ cd gnunet-gtk/
+$ ./bootstrap
+$ ./configure [--prefix=PREFIX] --with-gnunet=DIRECTORY
+$ make; sudo make install
address@hidden example
+
address@hidden Build Instructions for Microsoft Windows Platforms
address@hidden Build Instructions for Microsoft Windows Platforms
+
address@hidden
+* Introduction to building on MS Windows::
+* Requirements::
+* Dependencies & Initial Setup::
+* GNUnet Installation::
+* Adjusting Windows for running and testing GNUnet::
+* Building the GNUnet Installer::
+* Using GNUnet with Netbeans on Windows::
address@hidden menu
+
address@hidden Introduction to building on MS Windows
address@hidden Introduction to building on MS Windows
+
+
+This document is a guide to building GNUnet and its dependencies on
+Windows platforms. GNUnet development is mostly done under GNU/Linux and
+especially git checkouts may not build out of the box.
+We regret any inconvenience, and if you have problems, please report
+them.
+
address@hidden Requirements
address@hidden Requirements
+
+The Howto is based upon a @strong{Windows Server 2008 32bit}
address@hidden, @strong{sbuild} and thus a
address@hidden://www.mingw.org/wiki/MSYS, MSYS+MinGW}
+(W32-GCC-Compiler-Suite + Unix-like Userland) installation. sbuild
+is a convenient set of scripts which creates a working msys/mingw
+installation and installs most dependencies required for GNUnet.
+
+As of the point of the creation of these instructions,
+GNUnet @strong{requires} a Windows @strong{Server} 2003 or
+newer for full feature support.
+Windows Vista and later will also work, but
address@hidden version can not run a VPN-Exit-Node} as the NAT
+features have been removed as of Windows Vista.
+
address@hidden TODO: We should document Windows 10!
address@hidden It seems like the situation hasn't changed with W10
+
address@hidden Dependencies & Initial Setup
address@hidden Dependencies & Initial Setup
+
+
address@hidden @bullet
+
address@hidden
+Install a fresh version of @strong{Python 2.x}, even if you are using a
+x64-OS, install a 32-bit version for use with sbuild.
+Python 3.0 is currently incompatible.
+
address@hidden
+Install your favorite @uref{http://code.google.com/p/tortoisegit/, git} &
address@hidden://tortoisesvn.net/, subversion}-clients.
+
address@hidden
+You will also need some archive-manager like
address@hidden://www.7-zip.org/, 7zip}.
+
address@hidden
+Pull a copy of sbuild to a directory of your choice, which will be used
+in the remainder of this guide. For now, we will use
address@hidden:\gnunet\sbuild\}
+
address@hidden
+in @file{sbuild\src\mingw\mingw32-buildall.sh}, comment out the packages
address@hidden and @strong{gnunet-gtk-svn}, as we don't want sbuild
+to compile/install those for us.
+
address@hidden
+Follow LRN's sbuild installation instructions.-
address@hidden itemize
+
+Please note that sbuild may (or will most likely) fail during
+installation, thus you really HAVE to @strong{check the logfiles} created
+during the installation process.
+Certain packages may fail to build initially due to missing dependencies,
+thus you may have to
address@hidden those with binary-versions initially}. Later on once
+dependencies are satisfied you can re-build the newer package versions.
+
address@hidden is normal that you may have to repeat this step multiple times
+and there is no uniform way to fix all compile-time issues, as the
+build-process of many of the dependencies installed are rather unstable
+on win32 and certain releases may not even compile at all.}
+
+Most dependencies for GNUnet have been set up by sbuild, thus we now
+should add the @file{bin/} directories in your new msys and mingw
+installations to PATH. You will want to create a backup of your finished
+msys-environment by now.
+
address@hidden GNUnet Installation
address@hidden GNUnet Installation
+
+First, we need to launch our msys-shell, you can do this via
+
address@hidden:\gnunet\sbuild\msys\msys.bat}
+
+You might wish to take a look at this file and adjust some
+login-parameters to your msys environment.
+
+Also, sbuild added two pointpoints to your msys-environment, though those
+might remain invisible:
+
address@hidden @bullet
+
address@hidden
+/mingw, which will mount your mingw-directory from sbuild/mingw and the
+other one is
+
address@hidden
+/src which contains all the installation sources sbuild just compiled.
address@hidden itemize
+
+Check out the current GNUnet sources (git HEAD) from the
+GNUnet repository "gnunet.git", we will do this in your home directory:
+
address@hidden clone https://gnunet.org/git/gnunet/ ~/gnunet}
+
+Now, we will first need to bootstrap the checked out installation and then
+configure it accordingly.
+
address@hidden
+cd ~/gnunet
+./bootstrap
+STRIP=true CPPFLAGS="-DUSE_IPV6=1 -DW32_VEH" CFLAGS="$CFLAGS -g -O2" \
+./configure --prefix=/ --docdir=/share/doc/gnunet \
+--with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw \
+--with-libcurl=/mingw --with-extractor=/mingw --with-sqlite=/mingw \
+--with-microhttpd=/mingw --with-plibc=/mingw --enable-benchmarks \
+--enable-expensivetests --enable-experimental --with-qrencode=/mingw \
+--enable-silent-rules --enable-experimental 2>&1 | tee -a ./configure.log
address@hidden example
+
+The parameters above will configure for a reasonable GNUnet installation
+to the your msys-root directory.
+Depending on which features your would like to build or you may need to
+specify additional dependencies. Sbuild installed most libs into
+the /mingw subdirectory, so remember to prefix library locations with
+this path.
+
+Like on a unixoid system, you might want to use your home directory as
+prefix for your own GNUnet installation for development, without tainting
+the buildenvironment. Just change the "prefix" parameter to point towards
+~/ in this case.
+
+Now it's time to compile GNUnet as usual. Though this will take some time,
+so you may fetch yourself a coffee or some Mate now...
+
address@hidden
+make ; make install
address@hidden example
+
address@hidden Adjusting Windows for running and testing GNUnet
address@hidden Adjusting Windows for running and testing GNUnet
+
+Assuming the build succeeded and you
address@hidden the bin directory of your GNUnet to PATH}, you can now use
+your gnunet-installation as usual.
+Remember that UAC or the windows firewall may popup initially, blocking
+further execution of gnunet until you acknowledge them.
+
+You will also have to take the usual steps to get peer-to-peer (p2p)
+software running properly (port forwarding, ...),
+and GNUnet will require administrative permissions as it may even
+install a device-driver (in case you are using gnunet-vpn and/or
+gnunet-exit).
+
address@hidden Building the GNUnet Installer
address@hidden Building the GNUnet Installer
+
+The GNUnet installer is made with
address@hidden://nsis.sourceforge.net/, NSIS}.
+The installer script is located in @file{contrib\win} in the
+GNUnet source tree.
+
address@hidden Using GNUnet with Netbeans on Windows
address@hidden Using GNUnet with Netbeans on Windows
+
+TODO
+
address@hidden Build instructions for Debian 7.5
address@hidden Build instructions for Debian 7.5
+
+
+These are the installation instructions for Debian 7.5. They were tested
+using a minimal, fresh Debian 7.5 AMD64 installation without non-free
+software (no contrib or non-free).
+By "minimal", we mean that during installation, we did not select any
+desktop environment, servers or system utilities during the "tasksel"
+step. Note that the packages and the dependencies that we will install
+during this chapter take about 1.5 GB of disk space.
+Combined with GNUnet and space for objects during compilation, you should
+not even attempt this unless you have about 2.5 GB free after the minimal
+Debian installation.
+Using these instructions to build a VM image is likely to require a
+minimum of 4-5 GB for the VM (as you will likely also want a desktop
+manager).
+
+GNUnet's security model assumes that your @file{/home} directory is
+encrypted. Thus, if possible, you should encrypt your home partition
+(or per-user home directory).
+
+Naturally, the exact details of the starting state for your installation
+should not matter much. For example, if you selected any of those
+installation groups you might simply already have some of the necessary
+packages installed.
+We did this for testing, as this way we are less likely to forget to
+mention a required package.
+Note that we will not install a desktop environment, but of course you
+will need to install one to use GNUnet's graphical user interfaces.
+Thus, it is suggested that you simply install the desktop environment of
+your choice before beginning with the instructions.
+
+
+
address@hidden
+* Update::
+* Stable? Hah!::
+* Update again::
+* Installing packages::
+* Installing dependencies from source::
+* Installing GNUnet from source::
+* But wait there is more!::
address@hidden menu
+
address@hidden Update
address@hidden Update
+
+After any installation, you should begin by running
+
address@hidden
+# apt-get update ; apt-get upgrade
address@hidden example
+
+to ensure that all of your packages are up-to-date. Note that the "#" is
+used to indicate that you need to type in this command as "root"
+(or prefix with "sudo"), whereas "$" is used to indicate typing in a
+command as a normal user.
+
address@hidden Stable? Hah!
address@hidden Stable? Hah!
+
+Yes, we said we start with a Debian 7.5 "stable" system. However, to
+reduce the amount of compilation by hand, we will begin by allowing the
+installation of packages from the testing and unstable distributions as
+well.
+We will stick to "stable" packages where possible, but some packages will
+be taken from the other distributions.
+Start by modifying @file{/etc/apt/sources.list} to contain the
+following (possibly adjusted to point to your mirror of choice):
+
address@hidden
+# These were there before:
+deb http://ftp.de.debian.org/debian/ wheezy main
+deb-src http://ftp.de.debian.org/debian/ wheezy main
+deb http://security.debian.org/ wheezy/updates main
+deb-src http://security.debian.org/ wheezy/updates main
+deb http://ftp.de.debian.org/debian/ wheezy-updates main
+deb-src http://ftp.de.debian.org/debian/ wheezy-updates main
+
+# Add these lines (feel free to adjust the mirror):
+deb http://ftp.de.debian.org/debian/ testing main
+deb http://ftp.de.debian.org/debian/ unstable main
address@hidden example
+
+The next step is to create/edit your @file{/etc/apt/preferences}
+file to look like this:
+
address@hidden
+Package: *
+Pin: release a=stable,n=wheezy
+Pin-Priority: 700
+
+Package: *
+Pin: release o=Debian,a=testing
+Pin-Priority: 650
+
+Package: *
+Pin: release o=Debian,a=unstable
+Pin-Priority: 600
address@hidden example
+
+You can read more about Apt Preferences here and here.
+Note that other pinnings are likely to also work for GNUnet, the key
+thing is that you need some packages from unstable (as shown below).
+However, as unstable is unlikely to be comprehensive (missing packages)
+or might be problematic (crashing packages), you probably want others
+from stable and/or testing.
+
address@hidden Update again
address@hidden Update again
+
+Now, run again@
+
address@hidden
+# apt-get update@
+# apt-get upgrade@
address@hidden example
+
+to ensure that all your new distribution indices are downloaded, and
+that your pinning is correct: the upgrade step should cause no changes
+at all.
+
address@hidden Installing packages
address@hidden Installing packages
+
+We begin by installing a few Debian packages from stable:@
+
address@hidden
+# 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 libexiv2-dev libflac-dev libgif-dev libglib2.0-dev \
+  libgtk-3-dev libmagic-dev libjpeg8-dev libmpeg2-4-dev libmp4v2-dev \
+  librpm-dev libsmf-dev libtidy-dev libtiff5-dev libvorbis-dev \
+  libogg-dev zlib1g-dev g++ gettext libgsf-1-dev libunbound-dev \
+  libqrencode-dev libgladeui-dev nasm texlive-latex-extra \
+  libunique-3.0-dev gawk miniupnpc libfuse-dev libbluetooth-dev
address@hidden example
+
+After that, we install a few more packages from unstable:@
+
address@hidden
+# apt-get install -t unstable nettle-dev libgstreamer1.0-dev \
+  gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
+  libgstreamer-plugins-base1.0-dev
address@hidden example
+
address@hidden Installing dependencies from source
address@hidden Installing dependencies from source
+
+Next, we need to install a few dependencies from source.
+You might want to do this as a "normal" user and only run the
address@hidden install} steps as root (hence the @code{sudo} in the
+commands below). Also, you do this from any
+directory. We begin by downloading all dependencies, then extracting the
+sources, and finally compiling and installing the libraries.
+
+For these steps, follow the instructions given in the
+installation from source instruction in this order:
+
address@hidden @bullet
address@hidden @ref{generic source installation - libav}
address@hidden @ref{generic source installation - libextractor}
address@hidden @ref{generic source installation - libgpg-error}
address@hidden @ref{generic source installation - libgcrypt}
address@hidden @ref{generic source installation - gnutls}
address@hidden @ref{generic source installation - libmicrohttpd}
address@hidden @ref{generic source installation - libgnurl}
address@hidden itemize
+
address@hidden Installing GNUnet from source
address@hidden Installing GNUnet from source
+
+
+For this, simply follow the generic installation instructions from
+here.
+
address@hidden But wait there is more!
address@hidden But wait there is more!
+
+So far, we installed all of the packages and dependencies required to
+ensure that all of GNUnet would be built.
+However, while for example the plugins to interact with the MySQL or
+Postgres databases have been created, we did not actually install or
+configure those databases. Thus, you will need to install
+and configure those databases or stick with the default Sqlite database.
+Sqlite is usually fine for most applications, but MySQL can offer better
+performance and Postgres better resillience.
+
+
address@hidden Installing GNUnet from Git on Ubuntu 14.4
address@hidden Installing GNUnet from Git on Ubuntu 14.4
+
address@hidden the required build tools:}
+
address@hidden
+$ sudo apt-get install git automake autopoint autoconf
address@hidden example
+
address@hidden the required dependencies}
+
address@hidden
+$ sudo apt-get install libltdl-dev libgpg-error-dev libidn11-dev \
+ libunistring-dev libglpk-dev libbluetooth-dev libextractor-dev \
+ libmicrohttpd-dev libgnutls28-dev
address@hidden example
+
address@hidden one or more database backends}
+
address@hidden @bullet
+
address@hidden SQLite3:
+
address@hidden
+$ sudo apt-get install libsqlite3-dev
address@hidden example
+
address@hidden MySQL:
+
address@hidden
+$ sudo apt-get install libmysqlclient-dev
address@hidden example
+
address@hidden PostgreSQL:
+
address@hidden
+$ sudo apt-get install libpq-dev postgresql
address@hidden example
+
address@hidden itemize
+
address@hidden the optional dependencies for gnunet-conversation:}
+
address@hidden
+$ sudo apt-get install gstreamer1.0 libpulse-dev libopus-dev
address@hidden example
+
address@hidden the libgrypt 1.6.1:}
+
address@hidden @bullet
+
address@hidden For Ubuntu 14.04:
+
address@hidden
+$ sudo apt-get install libgcrypt20-dev
address@hidden example
+
address@hidden For Ubuntu older 14.04:
+
address@hidden
+$ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.bz2
+$ tar xf libgcrypt-1.6.1.tar.bz2
+$ cd libgcrypt-1.6.1
+$ ./configure
+$ sudo make install
+$ cd ..
address@hidden example
+
address@hidden itemize
+
address@hidden libgnurl}
+
address@hidden GNUnet}
+
address@hidden
+$ git clone https://gnunet.org/git/gnunet/
+$ cd gnunet/
+$ ./bootstrap
address@hidden example
+
+If you want to:
+
address@hidden @bullet
+
address@hidden Install to a different directory:
+
address@hidden
+--prefix=PREFIX
address@hidden example
+
address@hidden
+Have sudo permission, but do not want to compile as root:
+
address@hidden
+--with-sudo
address@hidden example
+
address@hidden
+Want debug message enabled:
+
address@hidden
+--enable-logging=verbose
address@hidden example
+
address@hidden itemize
+
+
address@hidden
+$ ./configure [ --with-sudo | --prefix=PREFIX | --enable-logging=verbose]
+$ make; sudo make install
address@hidden example
+
+After installing it, you need to create an empty configuration file:
+
address@hidden
+touch ~/.config/gnunet.conf
address@hidden example
+
+And finally you can start GNUnet with
+
address@hidden
+$ gnunet-arm -s
address@hidden example
+
address@hidden Build instructions for Debian 8
address@hidden Build instructions for Debian 8
address@hidden FIXME: I -> we
+
+These are the installation instructions for Debian 8. They were tested
+sing a fresh Debian 8 AMD64 installation without non-free software (no
+contrib or non-free). During installation, I only selected "lxde" for the
+desktop environment.
+Note that the packages and the dependencies that we will install during
+this chapter take about 1.5 GB of disk space. Combined with GNUnet and
+space for objects during compilation, you should not even attempt this
+unless you have about 2.5 GB free after the Debian installation.
+Using these instructions to build a VM image is likely to require a
+minimum of 4-5 GB for the VM (as you will likely also want a desktop
+manager).
+
+GNUnet's security model assumes that your @code{/home} directory is
+encrypted.
+Thus, if possible, you should encrypt your entire disk, or at least just
+your home partition (or per-user home directory).
+
+Naturally, the exact details of the starting state for your installation
+should not matter much.
+For example, if you selected any of those installation groups you might
+simply already have some of the necessary packages installed. Thus, it is
+suggested that you simply install the desktop environment of your choice
+before beginning with the instructions.
+
+
address@hidden
+* Update Debian::
+* Installing Debian Packages::
+* Installing Dependencies from Source2::
+* Installing GNUnet from Source2::
+* But wait (again) there is more!::
address@hidden menu
+
address@hidden Update Debian
address@hidden Update Debian
+
+After any installation, you should begin by running
+
address@hidden
+# apt-get update
+# apt-get upgrade
address@hidden example
+
+to ensure that all of your packages are up-to-date. Note that the "#" is
+used to indicate that you need to type in this command as "root" (or
+prefix with "sudo"), whereas "$" is used to indicate typing in a command
+as a normal user.
+
address@hidden Installing Debian Packages
address@hidden Installing Debian Packages
+
+We begin by installing a few Debian packages from stable:
+
address@hidden
+# 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 \
+libtidy-dev libvorbis-dev libogg-dev zlib1g-dev g++ gettext \
+libgsf-1-dev libunbound-dev libqrencode-dev libgladeui-dev nasm \
+texlive-latex-extra libunique-3.0-dev gawk miniupnpc libfuse-dev \
+libbluetooth-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
+libgstreamer-plugins-base1.0-dev nettle-dev libextractor-dev \
+libgcrypt20-dev libmicrohttpd-dev
address@hidden example
+
address@hidden Installing Dependencies from Source2
address@hidden Installing Dependencies from Source2
+
+Yes, we said we start with a Debian 8 "stable" system, but because Debian
+linked GnuTLS without support for DANE, we need to compile a few things,
+in addition to GNUnet, still by hand. Yes, you can run GNUnet using the
+respective Debian packages, but then you will not get DANE support.
+
+Next, we need to install a few dependencies from source. You might want
+to do this as a "normal" user and only run the @code{make install} steps
+as root (hence the @code{sudo} in the commands below). Also, you do this
+from any directory. We begin by downloading all dependencies, then
+extracting the sources, and finally compiling and installing the
+libraries:
+
address@hidden
+$ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.12.tar.xz
+$ tar xvf gnutls-3.3.12.tar.xz
+$ cd gnutls-3.3.12 ; ./configure ; make ; sudo make install ; cd ..
address@hidden example
+
+For the installation and compilation of libgnurl/gnURL refer to
+the generic installation section,
address@hidden source installation - libgnurl}.
+
address@hidden Installing GNUnet from Source2
address@hidden Installing GNUnet from Source2
+
+For this, simply follow the generic installation instructions from@
+here.
+
address@hidden But wait (again) there is more!
address@hidden But wait (again) there is more!
+
+So far, we installed all of the packages and dependencies required to
+ensure that all of GNUnet would be built. However, while for example the
+plugins to interact with the MySQL or Postgres databases have been
+created, we did not actually install or configure those databases.
+Thus, you will need to install and configure those databases or stick
+with the default Sqlite database. Sqlite is usually fine for most
+applications, but MySQL can offer better performance and Postgres better
+resillience.
+
address@hidden Build instructions for macOS
address@hidden Build instructions for macOS
address@hidden FIXME: I -> we
+
+These are the installation guidelines for macOS.
+They were tested on macOS High Sierra.
+
address@hidden
+* Installing dependencies::
+* Compile from Source::
address@hidden menu
+
address@hidden Installing dependencies
address@hidden Installing dependencies
+
+First, install XCode in the newest version.
+See https://developer.apple.com/xcode/.
+
+Install Homebrew (https://brew.sh) and then install the dependencies listed 
above.
+If a dependency does not exists in brew, you need to compile it from source.
+
address@hidden
+# brew install <dependency>
address@hidden example
+
address@hidden Compile from Source
address@hidden Compile from Source
+
+Before you start building GNUnet, you need to setup your environment.
+This means that you have to make sure the proper tools are used in the build 
process.
+For example, after installing texinfo you need to make sure the new texinfo is 
actually used:
+
address@hidden
+# echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile 
address@hidden example
+
+Note: brew tells you the appropriate command when executing
+
address@hidden
+# brew info texinfo
address@hidden example
+
+This may also be necessary for the gettext package.
+
+Before you start compiling, you need to make sure gcc is used and not the 
clang compile of your macOS system.
+On my system, gcc was actually ``gcc-7'' and gcc pointed to the clang compiler.
+
address@hidden
+# export CC=gcc-7
address@hidden example
+
+After this the standard compile instructions apply.
+
address@hidden @node Build instructions for OpenBSD 6.2
address@hidden @section Build instructions for OpenBSD 6.2
+
address@hidden Outdated build instructions for previous revisions
address@hidden Outdated build instructions for previous revisions
+
+This chapter contains a collection of outdated, older installation guides.
+They are mostly intended to serve as a starting point for writing
+up-to-date instructions and should not be expected to work for
+GNUnet 0.10.x.
+A set of older installation instructions can also be found in the
+file @file{doc/outdated-and-old-installation-instructions.txt} in the
+source tree of GNUnet.
+
+This file covers old instructions which no longer receive security
+updates or any kind of support.
+
address@hidden
+* Installing GNUnet 0.10.1 on Ubuntu 14.04::
+* Building GLPK for MinGW::
+* GUI build instructions for Ubuntu 12.04 using Subversion::
address@hidden * Installation with gnunet-update::
+* Instructions for Microsoft Windows Platforms (Old)::
address@hidden menu
+
+
address@hidden Installing GNUnet 0.10.1 on Ubuntu 14.04
address@hidden Installing GNUnet 0.10.1 on Ubuntu 14.04
+
+Install the required dependencies:
+
address@hidden
+$ sudo apt-get install libltdl-dev libgpg-error-dev libidn11-dev \
+ libunistring-dev libglpk-dev libbluetooth-dev libextractor-dev \
+ libmicrohttpd-dev libgnutls28-dev
address@hidden example
+
+Choose one or more database backends:
+
address@hidden @bullet
+
address@hidden SQLite3
+
address@hidden
+ $ sudo apt-get install libsqlite3-dev@
address@hidden example
+
address@hidden MySQL
+
address@hidden
+$ sudo apt-get install libmysqlclient-dev@
address@hidden example
+
address@hidden PostgreSQL
+
address@hidden
+ $ sudo apt-get install libpq-dev postgresql@
address@hidden example
+
address@hidden itemize
+
+Install the optional dependencies for gnunet-conversation:
+
address@hidden
+ $ sudo apt-get install gstreamer1.0 libpulse-dev libopus-dev
address@hidden example
+
+Install libgcrypt 1.6:
+
address@hidden @bullet
+
address@hidden For Ubuntu 14.04:
+
address@hidden
+$ sudo apt-get install libgcrypt20-dev
address@hidden example
+
address@hidden For Ubuntu older than 14.04:
+
address@hidden
+wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.bz2
+$ tar xf libgcrypt-1.6.1.tar.bz2
+$ cd libgcrypt-1.6.1
+$ ./configure
+$ sudo make install
+$ cd ..
address@hidden example
address@hidden itemize
+
+Install libgnurl:
+
address@hidden source installation - libgnurl}.
+
+Install GNUnet:
+
address@hidden
+$ wget http://ftpmirror.gnu.org/gnunet/gnunet-0.10.1.tar.gz
+$ tar xf gnunet-0.10.1.tar.gz
+$ cd gnunet-0.10.1
address@hidden example
+
+If you want to:
+
address@hidden @bullet
+
address@hidden
+Install to a different directory:
+
address@hidden
+--prefix=PREFIX
address@hidden example
+
address@hidden
+Have sudo permission, but do not want to compile as root:
+
address@hidden
+--with-sudo
address@hidden example
+
address@hidden
+Want debug message enabled:
+
address@hidden
+--enable-logging=verbose
address@hidden example
+
address@hidden itemize
+
address@hidden
+$ ./configure [ --with-sudo | --prefix=PREFIX | --enable-logging=verbose]
+$ make; sudo make install
address@hidden example
+
+After installing it, you need to create an empty configuration file:
+
address@hidden
+touch ~/.config/gnunet.conf
address@hidden example
+
+And finally you can start GNUnet with
+
address@hidden
+$ gnunet-arm -s
address@hidden example
+
address@hidden Building GLPK for MinGW
address@hidden Building GLPK for MinGW
+
+GNUnet now requires the GNU Linear Programming Kit (GLPK).
+Since there's is no package you can install with @code{mingw-get} you
+have to compile it from source:
+
address@hidden @bullet
+
address@hidden Download the latest version from
address@hidden://ftp.gnu.org/gnu/glpk/}
+
address@hidden Unzip the downloaded source tarball using your favourite
+unzipper application In the MSYS shell
+
address@hidden change to the respective directory
+
address@hidden Configure glpk for "i686-pc-mingw32":
+
address@hidden
+./configure '--build=i686-pc-mingw32'
address@hidden example
+
address@hidden run
+
address@hidden
+make install check
address@hidden example
+
address@hidden itemize
+
+MinGW does not automatically detect the correct buildtype so you have to
+specify it manually.
+
+
address@hidden GUI build instructions for Ubuntu 12.04 using Subversion
address@hidden GUI build instructions for Ubuntu 12.04 using Subversion
+
+After installing GNUnet you can continue installing the GNUnet GUI tools:
+
+First, install the required dependencies:
+
address@hidden
+$ sudo apt-get install libgladeui-dev libqrencode-dev
address@hidden example
+
+Please ensure that the GNUnet shared libraries can be found by the linker.
+If you installed GNUnet libraries in a non standard path
+(say GNUNET_PREFIX=/usr/local/lib/), you can
+
address@hidden @bullet
+
address@hidden set the environmental variable permanently to:
+
address@hidden
+LD_LIBRARY_PATH=$GNUNET_PREFIX
address@hidden example
+
address@hidden or add @code{$GNUNET_PREFIX} to @file{/etc/ld.so.conf}
+
address@hidden itemize
+
+Now you can checkout and compile the GNUnet GUI tools:
+
address@hidden
+$ git clone https://gnunet.org/git/gnunet-gtk
+$ cd gnunet-gtk
+$ ./bootstrap
+$ ./configure --prefix=$GNUNET_PREFIX/.. --with-gnunet=$GNUNET_PREFIX/..
+$ make install
address@hidden example
+
address@hidden Instructions for Microsoft Windows Platforms (Old)
address@hidden Instructions for Microsoft Windows Platforms (Old)
+
+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.
+
+The Windows build uses a UNIX emulator for Windows,
address@hidden://www.mingw.org/, MinGW}, to build the executable modules.
+These modules run natively on Windows and do not require additional
+emulation software besides the usual dependencies.
+
+GNUnet development is mostly done under GNU/Linux and especially git
+checkouts may not build out of the box.
+We regret any inconvenience, and if you have problems, please report them.
+
address@hidden
+* Hardware and OS requirements::
+* Software installation::
+* Building libextractor and GNUnet::
+* Installer::
+* Source::
address@hidden menu
+
address@hidden Hardware and OS requirements
address@hidden Hardware and OS requirements
+
address@hidden @bullet
address@hidden Pentium II or equivalent processor, @geq{} 350 MHz
address@hidden 128 MB RAM
address@hidden 600 MB free disk space
address@hidden Windows 2000 or Windows XP are recommended
address@hidden itemize
+
address@hidden Software installation
address@hidden Software installation
+
address@hidden @bullet
+
address@hidden
address@hidden software}@
+
+The software packages GNUnet depends on are usually compressed using UNIX
+tools like @command{tar}, @command{gzip}, @command{xzip} and
address@hidden
+If you do not already have an utility that is able to extract such
+archives, get @uref{http://www.7-zip.org/, 7-Zip}.
+
address@hidden
address@hidden environment}@
+
+The MinGW project provides the compiler toolchain that is used to build
+GNUnet.
+Get the following packages from the
address@hidden://sourceforge.net/projects/mingw/files/, MinGW} project:
+
address@hidden @bullet
+
address@hidden GCC core
address@hidden GCC g++
address@hidden MSYS
address@hidden MSYS Developer Tool Kit (msysDTK)
address@hidden MSYS Developer Tool Kit - msys-autoconf (bin)
address@hidden MSYS Developer Tool Kit - msys-automake (bin)
address@hidden MinGW Runtime
address@hidden MinGW Utilities
address@hidden Windows API
address@hidden Binutils
address@hidden make
address@hidden pdcurses
address@hidden GDB (snapshot)
address@hidden itemize
+
address@hidden @bullet
+
+
address@hidden Install MSYS (to c:\mingw, for example.)@
+Do @strong{not} use spaces in the pathname.
+For example, avoid a location such as @file{c:\program files\mingw}.
+
address@hidden Install MinGW runtime, utilities and GCC to a subdirectory
+(to @file{c:\mingw\mingw}, for example)
+
address@hidden Install the Development Kit to the MSYS directory
+(@file{c:\mingw})
+
address@hidden Create a batch file bash.bat in your MSYS directory with
+the files:
+
address@hidden
+bin\sh.exe --login
address@hidden example
+
+This batch file opens a shell which is used to invoke the build
+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.
+
address@hidden
+Start @command{bash.sh} and rename
address@hidden:\mingw\mingw\lib\libstdc++.la} to avoid problems:
+
address@hidden
+mv /usr/mingw/lib/libstdc++.la /usr/mingw/lib/libstdc++.la.broken
address@hidden example
+
address@hidden
+Unpack the Windows API to the MinGW directory (@file{c:\mingw\mingw\}) and
+remove the declaration of DATADIR from
+(@file{c:\mingw\mingw\include\objidl.h} (lines 55-58)
+
address@hidden
+Unpack autoconf, automake to the MSYS directory (@file{c:\mingw})
+
address@hidden
+Install all other packages to the MinGW directory (@file{c:\mingw\mingw\})
address@hidden itemize
+
+
address@hidden @strong{GNU Libtool}@
+GNU Libtool is required to use shared libraries.
+Get the prebuilt package from here and unpack it to the
+MinGW directory (@file{c:\mingw})
+
address@hidden @strong{Pthreads}@
+GNUnet uses the portable POSIX thread library for multi-threading:
+
address@hidden @bullet
+
address@hidden Save
address@hidden://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/libpthreadGC2.a,
 libpthreadGC2.a}
+(x86) or
address@hidden://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}).
+
address@hidden Save
address@hidden://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/pthreadGC2.dll,
 pthreadGC2.dll}
+(x86) or
address@hidden://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}).
+
address@hidden Download all header files from
address@hidden://sources.redhat.com/pub/pthreads-win32/dll-latest/include/, 
include/}
+to the @file{include} directory (@file{c:\mingw\mingw\include}).
address@hidden itemize
+
+
address@hidden @strong{GNU MP}@
+GNUnet uses the GNU Multiple Precision library for special cryptographic
+operations. Get the GMP binary package from the
address@hidden://sourceforge.net/projects/mingwrep/, MinGW repository} and
+unpack it to the MinGW directory (@file{c:\mingw\mingw})
+
address@hidden @strong{GNU Gettext}@
+GNU gettext is used to provide national language support.
+Get the prebuilt package from hereand unpack it to the MinGW
+directory (@file{c:\mingw\mingw})
+
address@hidden @strong{GNU iconv}@
+GNU Libiconv is used for character encoding conversion.
+Get the prebuilt package from here and unpack it to the MinGW
+directory (@file{c:\mingw\mingw}).
+
address@hidden @strong{SQLite}@
+GNUnet uses the SQLite database to store data.
+Get the prebuilt binary from here and unpack it to your MinGW directory.
+
address@hidden @strong{MySQL}@
+As an alternative to SQLite, GNUnet also supports MySQL.
+
address@hidden @bullet
+
address@hidden Get the binary installer from the
address@hidden://dev.mysql.com/downloads/mysql/4.1.html#Windows, MySQL project}
+(version 4.1), install it and follow the instructions in
address@hidden
+
address@hidden  Create a temporary build directory (@file{c:\mysql})
+
address@hidden Copy the directories @file{include\} and @file{lib\} from the
+MySQL directory to the new directory
+
address@hidden Get the patches from
address@hidden://bugs.mysql.com/bug.php?id=8906&files=1, Bug #8906} and
address@hidden://bugs.mysql.com/bug.php?id=8872&files=1, Bug #8872} (the
+latter is only required for MySQL
+
address@hidden
+patch -p 0
address@hidden example
+
address@hidden Move @file{lib\opt\libmysql.dll} to @file{lib\libmysql.dll}
+
address@hidden  Change to @file{lib\} and create an import library:
+
address@hidden
+dlltool --input-def ../include/libmySQL.def \
+--dllname libmysql.dll \
+--output-lib libmysqlclient.a -k
address@hidden example
+
address@hidden  Copy include\* to include\mysql\
+
address@hidden  Pass @code{--with-mysql=/c/mysql} to
address@hidden/configure} and copy @file{libmysql.dll}
+to your PATH or GNUnet's @file{bin} directory
address@hidden itemize
+
+
address@hidden @strong{GTK+}@
address@hidden and @command{libextractor} depend on GTK.
+Get the the binary and developer packages of @command{atk},
address@hidden, @command{gtk}, @command{iconv},
address@hidden, @command{pango} from
address@hidden://ftp.gtk.org/pub/gtk/v2.6/win32, gtk.org} and unpack them
+to the MinGW directory (@file{c:\mingw\mingw}).
address@hidden FIXME: The URL below for pkg-config seems wrong.
+Get @uref{http://www.gtk.org/download/win32.php, pkg-config} and
address@hidden and unpack them to the MinGW directory
+(@file{c:\mingw\mingw}).
+Here is an all-in-one package for the
address@hidden://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!
+
address@hidden @strong{Glade}@
address@hidden and @command{gnunet-setup} were created using
+this interface builder
+
address@hidden @bullet
+
address@hidden Get the Glade and libglade (-bin and -devel) packages
+(without GTK!) from
address@hidden://gladewin32.sourceforge.net/, GladeWin32} and unpack them to
+the MinGW directory (@file{c:\mingw\mingw}).
+
address@hidden Get @command{libxml} from here and unpack it to the MinGW
+directory (@file{c:\mingw\mingw}).
address@hidden itemize
+
address@hidden FIXME: URLs
address@hidden @strong{zLib}@
address@hidden requires @command{zLib} to decompress some file
+formats. GNUnet uses it to (de)compress meta-data.
+Get zLib from here (Signature) and unpack it to the MinGW directory
+(@file{c:\mingw\mingw}).
+
address@hidden @strong{Bzip2}@
address@hidden also requires @command{Bzip2} to
+decompress some file formats.
+Get the Bzip2 (binary and developer package) from
address@hidden://gnuwin32.sourceforge.net/packages/bzip2.htm, GnuWin32} and
+unpack it to the MinGW directory (@file{c:\mingw\mingw}).
+
address@hidden @strong{Libgcrypt}@
address@hidden provides the cryptographic functions used by GNUnet.
+Get Libgcrypt from @uref{ftp://ftp.gnupg.org/gcrypt/libgcrypt/, here},
+compile and place it in the MinGW directory
+(@file{c:\mingw\mingw}). Currently libgcrypt @geq{} 1.4.2 is required to
+compile GNUnet.
+
address@hidden @strong{PlibC}@
+PlibC emulates Unix functions under Windows. Get PlibC from here and
+unpack it to the MinGW directory (c:\mingw\mingw)
+
address@hidden @strong{OGG Vorbis}@
address@hidden Vorbis} is used to extract meta-data from @file{.ogg} files.
+Get the packages
address@hidden://www.gnunet.org/libextractor/download/win/libogg-1.1.4.zip, 
libogg}
+and
address@hidden://www.gnunet.org/libextractor/download/win/libvorbis-1.2.3.zip, 
libvorbis}
+from the
address@hidden://ftp.gnu.org/gnu/libextractor/libextractor-w32-1.0.0.zip, 
libextractor win32 build}
+and unpack them to the MinGW directory (c:\mingw\mingw).
+
address@hidden @strong{Exiv2}@
+(lib)Exiv2 is used to extract meta-data from files with Exiv2 meta-data.
+Download
address@hidden://www.gnunet.org/libextractor/download/win/exiv2-0.18.2.zip, 
Exiv2}
+and unpack it to the MSYS directory (c:\mingw).
address@hidden itemize
+
address@hidden Building libextractor and GNUnet
address@hidden Building libextractor and GNUnet
+
+Before you compile @command{libextractor} or @command{GNUnet},
+be sure to set @code{PKG_CONFIG_PATH}:
+
address@hidden
+export PKG_CONFIG_PATH=/mingw/lib/pkgconfig
address@hidden example
+
address@hidden
address@hidden Installation Handbook}, for basic instructions on building
address@hidden and @command{GNUnet}.
+By default, all modules that are created in this way contain
+debug information and are quite large. To compile release versions
+(small and fast) set the variable @code{CFLAGS}:
+
address@hidden
+export CFLAGS='-O2 -march=pentium -fomit-frame-pointer'
+./configure --prefix=$HOME --with-extractor=$HOME
address@hidden example
+
address@hidden Installer
address@hidden Installer
+
+The GNUnet installer is made with
address@hidden://nsis.sourceforge.net/, NSIS}. The installer script is
+located in @file{contrib\win} in the GNUnet source tree.
+
address@hidden Source
address@hidden Source
+
address@hidden FIXME: URL... or: WHERE is HERE?
+The sources of all dependencies are available here.

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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