# This file contains pieces from chapter/installation.texi for systems where the LTS or otherwise support # ended. They can be useful for people trying to write new installation instructions for those systems. # In particual this covers: # - FreeBSD 8 # - Mac OS X Tiger # - Fedora 8 # - Gentoo with GNUnet 0.9 # # Sources for LTS and support ranges: # https://www.freebsd.org/security/security.html#sup # https://support.microsoft.com/en-us/help/17140/lifecycle-faq-general-policy-questions # Mac products, OS is supposedly similar (no official statements exist): https://web.archive.org/web/20160706101225/https://support.apple.com/en-us/HT201624 # https://wiki.debian.org/LTS # https://www.ubuntu.com/info/release-end-of-life @node Build instructions for Gentoo @subsection Build instructions for Gentoo This page describes how to install GNUnet 0.9 on Gentoo. Since the GNUnet 0.9 ebuilds are not in the official portage tree yet, we need to add them to the local portage overlay. All the commands below should be executed as root. Specify your local portage directory in the /etc/make.conf, for example:@ @code{$ echo 'PORTDIR_OVERLAY="/usr/local/portage"' >> /etc/make.conf} Create directories for the ebuilds:@ @code{$ mkdir -p /usr/local/portage/media-libs/libextractor /usr/local/portage/net-p2p/gnunet/files} Download the latest ebuilds, init and config files from here and put them into respective directories:@ @code{$ cp libextractor-0.6.2.ebuild /usr/local/portage/media-libs/libextractor@ $ cp gnunet-0.9.2.ebuild /usr/local/portage/net-p2p/gnunet@ $ cp gnunet-0.9.2.conf gnunet-0.9.2.confd gnunet-0.9.2.initd /usr/local/portage/net-p2p/gnunet/files} Generate Manifest files for the ebuilds:@ @code{$ cd /usr/local/portage/net-p2p/gnunet@ $ ebuild gnunet-0.9.2.ebuild digest@ $ cd /usr/local/portage/media-libs/libextractor@ $ ebuild libextractor-0.6.2.ebuild digest} Unmask GNUnet and dependencies in the /etc/portage/package.keywords. For example, if you use x86-64 architecture, add the following lines:@ @code{net-p2p/gnunet ~amd64@ media-libs/libextractor ~amd64@ net-libs/libmicrohttpd ~amd64@ net-misc/curl ~amd64} Add either sqlite or mysql USE-flag in the /etc/portage/package.use:@ @code{net-p2p/gnunet sqlite} Now everything is ready to install GNUnet:@ @code{$ emerge -av gnunet} Use /etc/init.d/gnunet to start/stop GNUnet. @node Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . @c %**end of header @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ GNUnet installation on Fedora 8/Planetlab nodes can be done as following: 1. Install the build tools to build GNUnet@ @example sudo yum -y -t --nogpgcheck install gcc make automake autoconf gettext-devel \ texinfo zlib-devel subversion@ @end example 2. Install the GNUnet dependencies@ @example sudo yum -y -t --nogpgcheck install gnutls-devel gnutls-devel libgcrypt-devel \ sqlite-devel postgresql-devel mysql-devel libgsf-devel libvorbis-devel \ libidn-devel @end example 3. Install outdated dependencies from source@ libtool@ @code{@ wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ tar xvfz libtool-2.4.2.tar.gz@ cd libtool-2.4.2@ ./configure@ sudo make install@ } libtool@ @code{@ wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ tar xvfz libtool-2.4.2.tar.gz@ cd libtool-2.4.2@ ./configure@ sudo make install@ } glpk@ @code{@ wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ tar xvfz glpk-4.47.tar.gz@ cd glpk-4.47@ ./configure@ sudo make install@ } libgpg-error@ @code{@ wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2@ tar xvfj libgpg-error-1.10.tar.bz2@ cd libgpg-error-1.10@ ./configure --prefix=/usr@ sudo make install@ } libgcrypt@ @code{@ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2@ tar xvfj libgcrypt-1.5.0.tar.tar.bz2@ cd libgcrypt-1.5.0@ ./configure --prefix=/usr@ sudo make install@ } libcurl@ @code{@ wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ tar xvfz curl-7.26.0.tar.gz@ cd curl-7.26.0@ ./configure@ sudo make install@ } libunistring@ @code{@ wget http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.3.tar.gz@ tar xvfz libunistring-0.9.3.tar.gz@ cd libunistring-0.9.3@ ./configure@ sudo make install@ } 4. Remove conflicting packages@ @code{@ sudo rpm -e --nodeps libgcrypt libgpg-error@ } 4. Install libextractor@ @code{@ wget ftp://ftp.gnu.org/gnu/libextractor/libextractor-0.6.3.tar.gz@ tar xvfz libextractor-0.6.3.tar.gz@ cd libextractor-0.6.3@ ./configure@ sudo make install@ } 5. Install libmicrohttpd and dependencies nettle@ @code{@ wget http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz@ tar xvfz nettle-2.5.tar.gz@ cd nettle-2.5@ ./configure@ sudo make install@ } GnuTLS@ @code{@ wget http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.20.tar.bz2@ tar xvfj gnutls-2.12.20.tar.bz2@ cd gnutls-2.12.20@ ./configure --without-p11-kit@ sudo make install@ } libmicrohttpd@ @code{@ wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.21.tar.gz@ tar xvfz libmicrohttpd-0.9.21.tar.gz@ cd libmicrohttpd-0.9.21@ ./configure@ sudo make install@ } 6. Set GNUnet prefix and add to PATH@ @code{@ export GNUNET_PREFIX=@ export PATH=$PATH:$GNUNET_PREFIX/bin@ } 7. Install GNUnet from svn@ @example export LD_LIBRARY_PATH=/usr/local/lib@ svn co https://gnunet.org/svn/gnunet@ cd gnunet@ libtoolize@ ./bootstrap@ ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr/local \ --with-curl=/usr/local --with-mysql=/usr/lib/mysql --enable-logging=verbose@ make install@ @end example Done! @node Build instructions for FreeBSD 8 @subsection Build instructions for FreeBSD 8 To get GNUnet 0.9 to compile on FreeBSD (at least FreeBSD 8.0):@ in order to install the library @code{libiconv}, at first change the directory to your ports directory, e.g.@ @code{@ $ cd /usr/ports/@ }@ following that, go to the install file of @code{libiconv} and install it,@ @code{@ $ cd converters/libiconv,@ $ make install@ } after that, change the directory to where you will check out @code{libextractor} and GNUnet, and install latest @code{libextractor},@ first of all, checkout @code{libextractor}, e.g.@ @code{@ $ svn co https://gnunet.org/svn/Extractor@ }@ then change the directory into which it was checked out, e.g.@ @code{@ $ cd Extractor@ }@ before the installation, you should do following steps,@ @example $ ./bootstrap@ $ ./configure --with-ltdl-include=/usr/local/include \ --with-ltdl-lib=/usr/local/lib@ @end example if these steps complete successfully, you can install the library,@ @example $ make install@ @end example to check out the GNUnet, you should do the similar steps as @code{libextractor}, firstly, change back to starting directory, e.g.@ @code{@ $ cd ../@ }@ Set the following environmental variables:@ @code{@ export CPPFLAGS="-I/usr/local/include"@ export LDFLAGS="-L/usr/local/lib"@ }@ next, checkout GNUnet using@ @code{@ $ svn co https://gnunet.org/svn/gnunet@ }@ then change directory into newly checked out directory,@ @code{@ $ cd gnunet@ }@ at last, start to install GNUnet,@ @example $ ./bootstrap@ $ ./configure --with-ltdl-include=/usr/local/include \ --with-ltdl-lib=/usr/local/lib --with-extractor=/usr/local ## NOTE: you may not need the --with-extractor option!@ $ make install @end example @node Basic installation for Mac OS X @subsection Basic installation for Mac OS X This documentation may be outdated! This page is providing guidelines for users trying to install GNUnet on Mac OS X.@ Mainly users trying to install GNUnet by building source code are the most welcome readers.@ The steps below are tested on an Intel Architecture running Mac OS X Tiger (10.4.11). Ideally they should work on other Mac boxes with different configurations as all the configuration done for it is dependent on @uref{http://www.macports.org/, MacPorts} For having GNUnet installed successfully, some dependencies should be firstly resolved: @itemize @bullet @item Install/Update your @uref{http://developer.apple.com/tools/xcode/, Xcode} version 3.2.1 or later for Snow Leopard, 3.1.4 or later for Leopard, or 2.5 for Tiger. @item Download and install @uref{http://www.macports.org/, MacPorts}.@ Now you are ready for installing GNunet dependencies. @item First, you'd better make sure that: /opt/local/bin and /opt/local/sbin are available in your PATH. (For doing so, open a terminal and type:@ @example $ echo $PATH @end example and examine the output of it). If the paths are not available in your environment, you have to add them (You can add them by editing your .profile file in your home directory, append them to the PATH line). Then type: @example $ source ~/.profile @end example and re-examine the echo command output. @item Use MacPorts to download and install the dependencies:@ The libraries are: @itemize @bullet @item @uref{http://trac.macports.org/browser/trunk/dports/www/libmicrohttpd/Portfile, libmicrohttpd.} @item @uref{http://trac.macports.org/browser/trunk/dports/devel/libgcrypt/Portfile, libgcrypt.} @item @uref{http://trac.macports.org/browser/trunk/dports/net/curl/Portfile, libcurl.} @item @uref{http://trac.macports.org/browser/trunk/dports/devel/libtool/Portfile, libltdl.} @item @uref{http://trac.macports.org/browser/trunk/dports/databases/sqlite3/Portfile, SQlite.} @item libunistring @item glpk @end itemize The port command is as follows:@ @example port install libmicrohttpd libgcrypt curl libtool sqlite3 linunistring glpk @end example One of the dependencies, the libextractor, should be explicitly installed, since the version available from macports is outdated to work with GNUnet. To install the latest libextractor: @itemize @bullet @item Install the Subversion Client:@ For more information about Subversion visit: @uref{http://subversion.tigris.org/, http://subversion.tigris.org/} @example # port install subversion @end example @item Use Subversion to download the latest Extractor: @example $ svn checkout https://gnunet.org/svn/Extractor @end example @item Go to the installation directory of the Extractor, compile and install it: @example $ ./bootstrap $ export CPPFLAGS="-I/opt/local/include" $ export LDFLAGS="-L/opt/local/lib" $ ./configure --prefix=/opt/local $ make # make install @end example @end itemize @item Now, your system is ready to install GNunet. If you downloaded GNUnet by checking it out from svn, you should start by running the bootstrap script. Open a terminal pointing to the GNUnet directory and type:@ @example $ ./bootstrap @end example @item Run the configure script: @example $ export CPPFLAGS="-I/opt/local/include" $ export LDFLAGS="-L/opt/local/lib" $ ./configure --prefix=/tmp/gnunet_build @end example GNUnet will be installed in the directory /tmp/gnunet_build (Of course that installation path can be changed).@ The CPPFLAGS and LDFLAGS are mentioned in order to inform the compiler and the linker to lookup headers and libraries in /opt/local/include and /opt/local/lib. @item Compile@ @example $ make @end example @item Install GNUnet @example # make install @end example @end itemize @node Basic Installation for Fedora/PlanetLab nodes running Fedora 12 @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 12 @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ GNUnet installation on Fedora 8/Planetlab nodes can be done as following: 1. Install the build tools to build GNUnet@ @example sudo yum -y -t --nogpgcheck install gcc make autoconf gettext-devel \ texinfo subversion@ @end example 2. Install the GNUnet dependencies@ @example sudo yum -y -t --nogpgcheck install libunistring-devel libunistring-devel \ libgcrypt-devel zlib-devel sqlite-devel postgresql-devel mysql-devel \ libgsf-devel libvorbis-devel@ @end example 3. Install outdated dependencies from source@ libtool@ @example wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ tar xvfz libtool-2.4.2.tar.gz@ cd libtool-2.4.2@ ./configure@ sudo make install@ @end example glpk@ @example wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ tar xvfz glpk-4.47.tar.gz@ cd glpk-4.47@ ./configure@ sudo make install@ @end example libcurl@ @example wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ tar xvfz curl-7.26.0.tar.gz@ cd curl-7.26.0@ ./configure@ sudo make install@ @end example 4. Install libextractor@ @example svn co https://gnunet.org/svn/libextractor@ cd libextractor@ libtoolize@ ./bootstrap@ ./configure@ sudo make install@ @end example 5. Install libmicrohttpd@ @example svn co https://gnunet.org/svn/libmicrohttpd@ cd libmicrohttpd@ libtoolize@ ./bootstrap@ ./configure@ sudo make install@ @end example 6. Set GNUnet prefix and add to PATH@ @example export GNUNET_PREFIX=@ export PATH=$PATH:$GNUNET_PREFIX/bin@ @end example 7. Install GNUnet from svn@ @example export LD_LIBRARY_PATH=/usr/local/lib@ svn co https://gnunet.org/svn/gnunet@ cd gnunet@ libtoolize@ ./bootstrap@ ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr \ --with-mysql=/usr/lib/mysql --enable-logging=verbose@ make install@ @end example Done! @node Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . @c %**end of header @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ GNUnet installation on Fedora 8/Planetlab nodes can be done as following: 1. Install the build tools to build GNUnet@ @example sudo yum -y -t --nogpgcheck install gcc make automake autoconf gettext-devel \ texinfo zlib-devel subversion@ @end example 2. Install the GNUnet dependencies@ @example sudo yum -y -t --nogpgcheck install gnutls-devel gnutls-devel libgcrypt-devel \ sqlite-devel postgresql-devel mysql-devel libgsf-devel libvorbis-devel \ libidn-devel @end example 3. Install outdated dependencies from source@ libtool@ @code{@ wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ tar xvfz libtool-2.4.2.tar.gz@ cd libtool-2.4.2@ ./configure@ sudo make install@ } libtool@ @code{@ wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ tar xvfz libtool-2.4.2.tar.gz@ cd libtool-2.4.2@ ./configure@ sudo make install@ } glpk@ @code{@ wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ tar xvfz glpk-4.47.tar.gz@ cd glpk-4.47@ ./configure@ sudo make install@ } libgpg-error@ @code{@ wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2@ tar xvfj libgpg-error-1.10.tar.bz2@ cd libgpg-error-1.10@ ./configure --prefix=/usr@ sudo make install@ } libgcrypt@ @code{@ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2@ tar xvfj libgcrypt-1.5.0.tar.tar.bz2@ cd libgcrypt-1.5.0@ ./configure --prefix=/usr@ sudo make install@ } libcurl@ @code{@ wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ tar xvfz curl-7.26.0.tar.gz@ cd curl-7.26.0@ ./configure@ sudo make install@ } libunistring@ @code{@ wget http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.3.tar.gz@ tar xvfz libunistring-0.9.3.tar.gz@ cd libunistring-0.9.3@ ./configure@ sudo make install@ } 4. Remove conflicting packages@ @code{@ sudo rpm -e --nodeps libgcrypt libgpg-error@ } 4. Install libextractor@ @code{@ wget ftp://ftp.gnu.org/gnu/libextractor/libextractor-0.6.3.tar.gz@ tar xvfz libextractor-0.6.3.tar.gz@ cd libextractor-0.6.3@ ./configure@ sudo make install@ } 5. Install libmicrohttpd and dependencies nettle@ @code{@ wget http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz@ tar xvfz nettle-2.5.tar.gz@ cd nettle-2.5@ ./configure@ sudo make install@ } GnuTLS@ @code{@ wget http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.20.tar.bz2@ tar xvfj gnutls-2.12.20.tar.bz2@ cd gnutls-2.12.20@ ./configure --without-p11-kit@ sudo make install@ } libmicrohttpd@ @code{@ wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.21.tar.gz@ tar xvfz libmicrohttpd-0.9.21.tar.gz@ cd libmicrohttpd-0.9.21@ ./configure@ sudo make install@ } 6. Set GNUnet prefix and add to PATH@ @code{@ export GNUNET_PREFIX=@ export PATH=$PATH:$GNUNET_PREFIX/bin@ } 7. Install GNUnet from svn@ @example export LD_LIBRARY_PATH=/usr/local/lib@ svn co https://gnunet.org/svn/gnunet@ cd gnunet@ libtoolize@ ./bootstrap@ ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr/local \ --with-curl=/usr/local --with-mysql=/usr/lib/mysql --enable-logging=verbose@ make install@ @end example Done!